/* Cuaderno de piedra: editorial mediterráneo — caliza, verde pinar, Ocre Aledo #D98A3D. */

:root { --background: #f7f3eb; --foreground: #183a35; --card: #fffdf8; --card-foreground: #183a35; --popover: #fffdf8; --popover-foreground: #183a35; --primary: #183a35; --primary-foreground: #fffdf8; --secondary: #ece5d8; --secondary-foreground: #183a35; --muted: #ede8dc; --muted-foreground: #6c756f; --accent: #d98a3d; --accent-foreground: #fffdf8; --destructive: #b94e48; --destructive-foreground: #fff; --border: #d9d1c3; --input: #d9d1c3; --ring: #d98a3d; --radius: 1.2rem; --ink: #183a35; --ink-soft: #31524a; --ochre: #d98a3d; --cream: #f7f3eb; --stone: #ece5d8; --white: #fffdf8; --sand: #bcae98; }
* { box-sizing: border-box; border-color: var(--border); }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--background); color: var(--foreground); font-family: "Manrope", Arial, sans-serif; font-size: 15px; line-height: 1.6; }
a { color: inherit; text-decoration: none; } button, input, textarea { font: inherit; } button, a { -webkit-tap-highlight-color: transparent; } button { cursor: pointer; }
.wide-shell { width: min(1280px, calc(100% - 48px)); margin: 0 auto; }.section { padding: 112px 0; }.section-stone { background: var(--stone); }.section-cream { background: var(--cream); }.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 15px; color: var(--ink-soft); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }.eyebrow span, .eyebrow i { display: block; width: 24px; height: 1px; background: var(--ochre); }.section-heading { max-width: 640px; }.section-heading h2, h1, h2, h3 { margin-top: 0; color: var(--ink); }.section-heading h2, .intro-grid h2, .feature-copy h2, .museum-side h2, .history-grid h2, .route-page-top h2, .flavor-intro h2, .directory-side h2, .planner-head h2, .practical-grid h2, .tailored-card h2, .sale-argument h2 { font-family: "DM Serif Display", Georgia, serif; font-size: clamp(2.5rem, 4.3vw, 4.4rem); font-weight: 400; line-height: .97; letter-spacing: -.04em; }.section-heading em, h1 em, h2 em { color: var(--ochre); font-style: italic; }.section-heading > p:not(.eyebrow) { max-width: 510px; margin: 20px 0 0; color: #52635c; font-size: 16px; }.text-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 28px; color: var(--ink); font-size: 13px; font-weight: 800; }.text-link:hover { color: var(--ochre); }.button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 13px 19px; border: 1px solid transparent; font-size: 12px; font-weight: 800; transition: transform .16s cubic-bezier(.23,1,.32,1), background .16s; }.button:hover { transform: translateY(-2px); }.button:active { transform: scale(.97); }.button-ochre { background: var(--ochre); color: #fff; }.button-ink { background: var(--ink); color: #fff; }.round-button { display: grid; width: 49px; height: 49px; place-items: center; border-radius: 50%; background: var(--ochre); color: #fff; transition: transform .18s; }.round-button:hover { transform: rotate(-25deg); }

/* Barra superior no fija; navegación principal sticky sin ancestros con overflow o transform. */
.sale-strip { background: var(--ochre); color: #fff9ef; }.sale-strip-inner { display: flex; min-height: 34px; align-items: center; justify-content: space-between; gap: 20px; font-size: 10px; letter-spacing: .03em; }.sale-link { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; border-bottom: 1px solid #fff9ef; font-weight: 800; }.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(24,58,53,.14); background: rgba(255,253,248,.96); box-shadow: 0 4px 20px rgba(31,47,42,.07); backdrop-filter: blur(14px); }.header-inner { display: flex; height: 76px; align-items: center; justify-content: space-between; gap: 26px; }.brand { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 8px; }.brand-mark { width: 30px; height: 30px; object-fit: contain; }.brand-name { color: var(--ink); font-family: "DM Serif Display", Georgia, serif; font-size: 24px; letter-spacing: -.06em; }.brand-name > span { color: var(--ochre); font-size: .7em; }.brand-dot { margin-left: 1px; }.desktop-nav { display: flex; align-items: center; gap: 22px; margin-left: auto; }.nav-link { position: relative; color: #45615a; font-size: 12px; font-weight: 700; }.nav-link::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 1px; background: var(--ochre); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .18s; }.nav-link:hover::after { transform: scaleX(1); }.header-cta { display: inline-flex; align-items: center; gap: 7px; padding: 10px 14px; border: 1px solid var(--ink); color: var(--ink); font-size: 11px; font-weight: 800; }.header-cta:hover { background: var(--ink); color: #fff; }.mobile-toggle, .mobile-menu { display: none; }

.home-hero { position: relative; min-height: 700px; color: #fff; isolation: isolate; }.home-hero > img, .hero-veil { position: absolute; inset: 0; width: 100%; height: 100%; }.home-hero > img { object-fit: cover; object-position: center; z-index: -2; }.hero-veil { z-index: -1; background: linear-gradient(90deg, rgba(14,35,31,.78) 0%, rgba(24,58,53,.56) 38%, rgba(25,50,42,.08) 75%), linear-gradient(0deg, rgba(14,35,31,.45), transparent 42%); }.home-hero-inner { display: grid; min-height: 646px; grid-template-columns: 1fr 2fr 1fr; align-items: center; }.hero-coordinates { display: flex; flex-direction: column; gap: 8px; padding-bottom: 70px; color: rgba(255,255,255,.77); font-size: 10px; font-weight: 700; letter-spacing: .16em; writing-mode: vertical-rl; }.hero-content { max-width: 650px; padding: 90px 0 35px; }.hero-content .eyebrow { color: #fff; }.hero-content .eyebrow span { background: var(--ochre); }.hero-content h1 { margin-bottom: 20px; color: #fff; font-family: "DM Serif Display", Georgia, serif; font-size: clamp(4.4rem, 8.5vw, 8.4rem); font-weight: 400; line-height: .78; letter-spacing: -.075em; }.hero-content h1 em { color: #f5c888; }.hero-content > p { max-width: 460px; margin-bottom: 28px; color: rgba(255,255,255,.88); font-size: 17px; line-height: 1.65; }.hero-actions { display: flex; align-items: center; gap: 27px; }.quiet-link { display: inline-flex; align-items: center; gap: 5px; color: #fff; font-size: 12px; font-weight: 800; }.hero-weather { align-self: end; justify-self: end; display: grid; grid-template-columns: auto auto; align-items: center; gap: 0 7px; margin-bottom: 80px; color: #fff; }.hero-weather span { font-family: "DM Serif Display"; font-size: 35px; line-height: 1; }.hero-weather small { grid-column: 1 / -1; margin-top: 6px; color: rgba(255,255,255,.7); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }.hero-bottom { display: flex; align-items: center; justify-content: space-between; padding-bottom: 22px; color: rgba(255,255,255,.75); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }.intro-band { padding: 104px 0; background: var(--cream); }.intro-grid { display: grid; grid-template-columns: 1.2fr 1.1fr .8fr; gap: 70px; align-items: start; }.intro-grid h2 { margin-bottom: 0; }.intro-lead { margin: 0; color: #43574f; font-size: 18px; line-height: 1.75; }.fact-column { display: grid; gap: 17px; border-left: 1px solid var(--sand); padding-left: 25px; }.fact-column div { display: flex; align-items: baseline; gap: 9px; }.fact-column strong { color: var(--ochre); font-family: "DM Serif Display"; font-size: 29px; font-weight: 400; }.fact-column span { color: #66736d; font-size: 10px; line-height: 1.3; }.heading-split { display: grid; max-width: none; grid-template-columns: 1.1fr .9fr; gap: 20px 100px; }.heading-split .eyebrow, .heading-split h2 { grid-column: 1; }.heading-split > p, .heading-split .text-link { grid-column: 2; }.heading-split > p { align-self: end; margin: 0 !important; }.heading-split .text-link { margin-top: 0; }.gateway-grid { display: grid; grid-template-columns: 1.1fr 1.1fr .8fr; gap: 18px; margin-top: 55px; }.image-card { position: relative; display: block; min-height: 264px; color: #fff; isolation: isolate; }.image-card-tall { min-height: 548px; }.image-card img, .image-shade { position: absolute; inset: 0; width: 100%; height: 100%; }.image-card img { object-fit: cover; transition: transform .5s cubic-bezier(.23,1,.32,1); }.image-card:hover img { transform: scale(1.035); }.image-shade { background: linear-gradient(0deg, rgba(13,38,33,.85) 2%, rgba(13,38,33,.1) 68%); }.image-copy { position: absolute; right: 27px; bottom: 25px; left: 27px; }.image-copy > span, .flavor-craft > span { color: #f5c888; font-size: 9px; font-weight: 800; letter-spacing: .14em; }.image-copy h3 { margin: 5px 0; color: #fff; font-family: "DM Serif Display"; font-size: 31px; font-weight: 400; line-height: 1; }.image-copy p { max-width: 215px; margin: 0; color: rgba(255,255,255,.82); font-size: 12px; }.image-copy i { position: absolute; right: 0; bottom: 0; display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; }.gateway-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 18px; }.agenda-tile { display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 8px; padding: 30px; background: var(--ochre); color: #fff; }.agenda-tile span { font-size: 9px; font-weight: 800; letter-spacing: .14em; }.agenda-tile h3 { max-width: 250px; margin: 7px 0 0; color: #fff; font-family: "DM Serif Display"; font-size: 27px; font-weight: 400; line-height: 1; }.agenda-tile p { grid-column: 1 / -1; margin: 12px 0 0; font-size: 12px; }.agenda-tile > svg { align-self: start; }.agenda-tile > svg:last-child { align-self: end; }.gateway-list { display: flex; flex-direction: column; justify-content: space-between; }.gateway-list > a { display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 10px; padding: 17px 0; border-bottom: 1px solid #cbbfae; color: var(--ink); }.gateway-list a > svg:first-child { color: var(--ochre); }.gateway-list a span { display: block; color: #748078; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.gateway-list a b { display: block; font-size: 13px; line-height: 1.35; }.gateway-quote { padding: 20px 4px 0; color: var(--ink-soft); font-family: "DM Serif Display"; font-size: 23px; font-style: italic; line-height: 1.1; }.routes-feature { background: var(--ink); }.routes-feature .section-heading h2, .routes-feature .section-heading p { color: #fff; }.routes-feature .eyebrow { color: #f5c888; }.routes-feature .eyebrow span { background: #f5c888; }.routes-feature .text-link { color: #f5c888; }.routes-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 110px; }.route-stamp { display: flex; gap: 12px; max-width: 345px; margin-top: 80px; padding: 16px; border: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.75); font-size: 11px; line-height: 1.5; }.route-stamp svg { flex: 0 0 auto; color: #f5c888; }.route-stamp b { display: block; color: #fff; }.route-list { border-top: 1px solid rgba(255,255,255,.28); }.route-row { display: grid; grid-template-columns: 40px 1fr auto 21px; align-items: center; gap: 18px; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.28); color: #fff; transition: padding .2s; }.route-row:hover { padding-left: 8px; }.route-number { color: #f5c888; font-family: "DM Serif Display"; font-size: 22px; }.route-type { color: #a9c2b7; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.route-row h3 { margin: 2px 0 3px; color: #fff; font-family: "DM Serif Display"; font-size: 25px; font-weight: 400; line-height: 1; }.route-row p { margin: 0; color: rgba(255,255,255,.66); font-size: 11px; }.route-meta { display: flex; align-items: center; gap: 10px; font-size: 10px; }.route-meta b { padding: 4px 8px; border: 1px solid rgba(255,255,255,.3); font-size: 9px; }.feature-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 110px; align-items: center; }.feature-visual { position: relative; min-height: 550px; }.feature-visual img { width: 88%; height: 100%; object-fit: cover; }.feature-chip { position: absolute; right: 0; bottom: 26px; display: flex; align-items: center; gap: 16px; padding: 18px 21px; background: var(--ochre); color: #fff; }.feature-chip span { font-family: "DM Serif Display"; font-size: 35px; }.feature-chip p { margin: 0; font-size: 12px; line-height: 1.2; }.feature-copy { max-width: 470px; }.feature-copy > p { margin: 20px 0 23px; color: #52635c; font-size: 16px; }.tag-row { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 28px; }.tag-row span { padding: 5px 9px; border: 1px solid #c9bda9; color: #52635c; font-size: 10px; }.heading-inline { display: flex; max-width: none; align-items: flex-end; justify-content: space-between; }.event-strip { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 50px; border-top: 1px solid #b9c3ba; }.event-card { display: grid; grid-template-columns: 52px 1fr; gap: 15px; min-height: 240px; padding: 24px 17px 22px 0; border-right: 1px solid #b9c3ba; transition: background .2s, padding .2s; }.event-card:hover { padding-left: 12px; background: #e4ddd0; }.event-card:nth-child(n+2) { padding-left: 17px; }.event-date { display: flex; flex-direction: column; color: var(--ochre); }.event-date b { font-family: "DM Serif Display"; font-size: 35px; font-weight: 400; line-height: .8; }.event-date span { margin-top: 7px; font-size: 9px; font-weight: 800; letter-spacing: .1em; }.event-tag { color: #61786f; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.event-card h3 { margin: 8px 0; font-family: "DM Serif Display"; font-size: 23px; font-weight: 400; line-height: 1.04; }.event-card p { margin: 0; color: #5c6d65; font-size: 11px; line-height: 1.55; }.event-card > svg { grid-column: 2; align-self: end; color: var(--ochre); }.newsletter-section { padding: 0 0 100px; background: var(--cream); }.newsletter-box { display: flex; align-items: end; justify-content: space-between; gap: 40px; padding: 57px 70px; background: #d5dcd1; }.newsletter-box h2 { margin: 0; font-family: "DM Serif Display"; font-size: clamp(2rem,3.5vw,3.2rem); font-weight: 400; line-height: 1; }.newsletter-box > div > p:last-child { margin: 12px 0 0; color: #52635c; font-size: 13px; }.newsletter-box form { width: min(100%, 330px); }.newsletter-box label { display: block; margin-bottom: 7px; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.newsletter-box form > div { display: flex; border-bottom: 1px solid var(--ink); }.newsletter-box input { width: 100%; border: 0; outline: 0; background: transparent; padding: 10px 0; color: var(--ink); font-size: 13px; }.newsletter-box button { display: grid; width: 42px; place-items: center; border: 0; background: transparent; color: var(--ink); }.newsletter-box small { display: block; margin-top: 10px; color: #63736d; font-size: 9px; line-height: 1.5; }

.page-hero { position: relative; min-height: 510px; isolation: isolate; background: var(--ink); overflow: hidden; }.page-hero::before { position: absolute; right: 4.5%; bottom: 26px; z-index: 2; width: 172px; min-height: 76px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.48); color: #f5c888; content: "37°47′ N\A 1°34′ O\A VILLA · FICHA 01"; white-space: pre-line; font-size: 9px; font-weight: 800; letter-spacing: .12em; line-height: 1.75; background-image: repeating-radial-gradient(ellipse at 25% 120%, transparent 0 8px, rgba(245,200,136,.22) 9px 10px, transparent 11px 18px); }.page-hero-photo, .page-hero-photo::after { position: absolute; inset: 0; z-index: -1; }.page-hero-photo img { width: 100%; height: 100%; object-fit: cover; opacity: .54; }.page-hero-photo::after { content: ""; background: linear-gradient(90deg, rgba(12,35,30,.83), rgba(12,35,30,.35)); }.page-hero-copy { padding-top: 115px; color: #fff; }.page-hero-copy .eyebrow { color: #f5c888; }.page-hero-copy h1 { max-width: 750px; margin-bottom: 17px; color: #fff; font-family: "DM Serif Display"; font-size: clamp(3.5rem, 6.5vw, 6.6rem); font-weight: 400; line-height: .86; letter-spacing: -.06em; }.page-hero-copy h1 em { color: #f5c888; }.page-hero-copy > p { max-width: 560px; margin: 0; color: rgba(255,255,255,.84); font-size: 16px; }.hero-note { display: inline-flex; align-items: center; gap: 7px; margin-top: 26px; color: #f5c888; font-size: 10px; font-weight: 800; letter-spacing: .07em; }.museum-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 130px; }.museum-side { position: sticky; top: 105px; align-self: start; }.museum-side > span { color: var(--ochre); font-size: 10px; font-weight: 800; letter-spacing: .13em; }.museum-side h2 { margin: 12px 0; }.museum-side p { max-width: 300px; color: #5e6e67; font-size: 13px; }.museum-items { border-top: 1px solid #c9bda9; }.museum-item { display: grid; grid-template-columns: 60px 1fr auto; gap: 15px; align-items: center; padding: 32px 0; border-bottom: 1px solid #c9bda9; }.museum-item > span { color: var(--ochre); font-family: "DM Serif Display"; font-size: 30px; }.museum-item p { margin: 0; color: #6a7972; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.museum-item h3 { margin: 4px 0; font-family: "DM Serif Display"; font-size: 30px; font-weight: 400; line-height: 1; }.museum-item div > p:last-child { font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }.history-band { background: #d5dcd1; }.history-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 130px; }.history-grid p { color: #4f6159; font-size: 16px; }.history-grid .button { margin-top: 18px; }.pause-grid, .three-paths { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin-top: 48px; border-top: 1px solid #c6baa8; }.pause-grid article { min-height: 220px; padding: 28px 30px 20px 0; border-right: 1px solid #c6baa8; }.pause-grid article:nth-child(n+2) { padding-left: 30px; }.pause-grid svg { color: var(--ochre); }.pause-grid h3 { margin: 25px 0 5px; font-family: "DM Serif Display"; font-size: 27px; font-weight: 400; }.pause-grid p { max-width: 230px; color: #5c6b65; font-size: 12px; }.mini-plan { display: flex; align-items: center; justify-content: space-between; gap: 30px; width: min(840px, calc(100% - 48px)); margin: 0 auto 105px; padding: 28px 31px; background: var(--ink); color: #fff; }.mini-plan .eyebrow { color: #f5c888; margin-bottom: 6px; }.mini-plan h3 { margin: 0; color: #fff; font-family: "DM Serif Display"; font-size: 29px; font-weight: 400; line-height: 1; }.mini-plan p { margin: 8px 0 0; color: #cbd8d1; font-size: 12px; }.route-page-top { display: flex; align-items: end; justify-content: space-between; gap: 30px; }.route-page-top h2 { margin-bottom: 0; }.filter-bar { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }.filter-bar button { border: 1px solid #c9bda9; background: transparent; padding: 8px 11px; color: #52635c; font-size: 10px; }.filter-bar button.filter-active { border-color: var(--ink); background: var(--ink); color: #fff; }.route-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-top: 52px; }.route-card { display: flex; min-height: 405px; flex-direction: column; padding: 21px; background: var(--white); border: 1px solid #ded5c8; }.route-card-top { display: flex; justify-content: space-between; color: var(--ochre); font-size: 9px; font-weight: 800; letter-spacing: .1em; }.route-card h3 { margin: 36px 0 7px; font-family: "DM Serif Display"; font-size: 30px; font-weight: 400; line-height: .98; }.route-card > p { min-height: 38px; margin: 0; color: #66736d; font-size: 11px; }.route-facts { display: grid; gap: 13px; margin-top: 25px; padding-top: 17px; border-top: 1px solid #e3dbd0; }.info-line { display: flex; align-items: center; gap: 9px; }.info-line > span { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: #e7eee9; color: var(--ink-soft); }.info-line small, .info-line b { display: block; line-height: 1.2; }.info-line small { color: #7a847e; font-size: 9px; }.info-line b { color: var(--ink); font-size: 10px; }.route-card-link { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: auto; padding-top: 17px; color: var(--ink); font-size: 10px; font-weight: 800; }.checklist-band { padding: 70px 0; background: #d5dcd1; color: var(--ink); }.checklist-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 120px; }.checklist-band .eyebrow { color: var(--ink-soft); }.checklist-band .eyebrow span { background: var(--ochre); }.checklist-band h2 { max-width: 410px; color: var(--ink); font-family: "DM Serif Display"; font-size: 45px; font-weight: 400; line-height: 1; }.checklist { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 17px 30px; padding-top: 28px; font-size: 12px; }.checklist span { display: flex; gap: 7px; align-items: center; }.split-article { display: grid; grid-template-columns: 1.1fr .9fr; gap: 90px; align-items: center; }.split-article img { width: 100%; height: 380px; object-fit: cover; }.split-article h2 { margin: 0 0 14px; font-family: "DM Serif Display"; font-size: 45px; font-weight: 400; line-height: 1; }.split-article p { color: #5d6c65; }.agenda-head { display: flex; justify-content: space-between; gap: 40px; align-items: end; }.calendar-rail { display: flex; gap: 8px; }.calendar-rail button { border: 0; background: transparent; padding: 8px; color: #728079; font-size: 10px; font-weight: 800; }.calendar-rail .active { background: var(--ochre); color: #fff; }.event-list { margin-top: 55px; }.event-list-row { display: grid; grid-template-columns: 100px 1fr 220px; gap: 20px; align-items: center; padding: 28px 0; border-top: 1px solid #c5bcad; }.event-date.large b { font-size: 55px; }.event-list-row h3 { margin: 5px 0; font-family: "DM Serif Display"; font-size: 30px; font-weight: 400; line-height: 1; }.event-list-row p { margin: 0; color: #64736c; font-size: 12px; }.event-action { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--ink); font-size: 10px; font-weight: 800; }.participation-card, .tailored-card { display: flex; align-items: center; justify-content: space-between; gap: 50px; padding: 62px; border: 1px solid #cdc3b4; background: var(--white); }.participation-card h2, .tailored-card h2 { max-width: 560px; margin: 0; font-family: "DM Serif Display"; font-size: 46px; font-weight: 400; line-height: 1; }.participation-card p, .tailored-card p { max-width: 590px; color: #5d6c65; }.flavor-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: end; }.flavor-intro h2 { margin-bottom: 0; }.flavor-intro > p { max-width: 480px; margin: 0; color: #52635c; font-size: 16px; }.flavor-grid { display: grid; grid-template-columns: 1.5fr .7fr 1fr; gap: 18px; margin-top: 57px; }.flavor-big { position: relative; min-height: 460px; overflow: hidden; }.flavor-big img { width: 100%; height: 100%; object-fit: cover; }.flavor-big div { position: absolute; right: 25px; bottom: 22px; left: 25px; color: #fff; }.flavor-big span { color: #f5c888; font-size: 9px; font-weight: 800; letter-spacing: .12em; }.flavor-big h3 { max-width: 440px; margin: 7px 0 0; color: #fff; font-family: "DM Serif Display"; font-size: 38px; font-weight: 400; line-height: 1; }.flavor-note { display: flex; flex-direction: column; justify-content: end; padding: 25px; background: var(--ochre); color: #fff; }.flavor-note h3 { color: #fff; font-family: "DM Serif Display"; font-size: 33px; font-weight: 400; line-height: 1; }.flavor-note p { font-size: 11px; }.flavor-craft { position: relative; min-height: 460px; padding: 22px; background: var(--ink); color: #fff; }.flavor-craft img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .52; }.flavor-craft span, .flavor-craft h3 { position: relative; }.flavor-craft h3 { position: absolute; right: 22px; bottom: 20px; left: 22px; color: #fff; font-family: "DM Serif Display"; font-size: 34px; font-weight: 400; line-height: 1; }.three-paths > a { display: grid; grid-template-columns: 1fr auto; gap: 10px; min-height: 220px; padding: 26px 25px 21px 0; border-right: 1px solid #c6baa8; }.three-paths > a:nth-child(n+2) { padding-left: 25px; }.three-paths span { color: var(--ochre); font-family: "DM Serif Display"; font-size: 29px; }.three-paths h3 { grid-column: 1 / -1; margin: 3px 0; font-family: "DM Serif Display"; font-size: 28px; font-weight: 400; line-height: 1; }.three-paths p { grid-column: 1 / -1; margin: 0; color: #63716b; font-size: 12px; }.directory-controls { border-bottom: 1px solid #d3c9b9; background: var(--cream); }.directory-controls-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 20px 0; }.search-stub { display: flex; align-items: center; gap: 8px; color: #6c7973; font-size: 12px; }.category-tabs { display: flex; flex-wrap: wrap; gap: 6px; }.category-tabs button { border: 0; background: transparent; padding: 7px 10px; color: #617069; font-size: 10px; }.category-tabs .active { background: var(--ink); color: #fff; }.directory-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 90px; }.directory-side { position: sticky; top: 105px; align-self: start; }.directory-side h2 { margin: 0 0 15px; }.directory-side p { color: #617069; font-size: 13px; }.directory-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }.place-card { position: relative; min-height: 235px; padding: 24px; border: 1px solid #d6ccbf; background: var(--white); }.place-card:hover { border-color: var(--ochre); }.place-card-no { color: #decdb8; font-family: "DM Serif Display"; font-size: 30px; line-height: 1; }.place-badge { position: absolute; top: 23px; right: 21px; padding: 4px 7px; background: #e6ede7; color: var(--ink-soft); font-size: 9px; font-weight: 800; }.place-card > p { margin: 25px 0 4px; color: #78827c; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }.place-card h3 { margin: 0; font-family: "DM Serif Display"; font-size: 28px; font-weight: 400; line-height: 1; }.place-card small { display: block; margin-top: 7px; color: #627069; font-size: 11px; }.place-card > div:last-child { position: absolute; right: 22px; bottom: 20px; left: 22px; display: flex; justify-content: space-between; align-items: center; color: var(--ink); font-size: 9px; font-weight: 800; }.sponsor-band { padding: 84px 0; background: var(--ink); color: #fff; }.sponsor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }.sponsor-band .eyebrow { color: #f5c888; }.sponsor-band h2 { margin: 0; color: #fff; font-family: "DM Serif Display"; font-size: 47px; font-weight: 400; line-height: 1; }.sponsor-band p { max-width: 510px; color: #cad6d0; font-size: 15px; }.planner-head { display: flex; align-items: end; justify-content: space-between; gap: 45px; }.planner-head h2 { margin-bottom: 0; }.planner-note { display: flex; max-width: 330px; gap: 12px; color: #5f7068; font-size: 11px; }.planner-note svg { flex: 0 0 auto; color: var(--ochre); }.planner-note p { margin: 0; }.plan-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; margin-top: 55px; }.plan-grid article { display: flex; min-height: 365px; flex-direction: column; padding: 27px; border: 1px solid #d5cbbe; background: var(--white); }.plan-grid article.plan-featured { background: var(--ink); border-color: var(--ink); }.plan-grid > article > span { color: var(--ochre); font-family: "DM Serif Display"; font-size: 32px; }.plan-grid h3 { margin: 35px 0 8px; font-family: "DM Serif Display"; font-size: 31px; font-weight: 400; line-height: 1; }.plan-grid p { margin: 0; color: #63716b; font-size: 12px; }.plan-grid ol { display: grid; gap: 7px; margin: 20px 0; padding-left: 18px; color: #5d6c65; font-size: 11px; }.plan-grid a { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; color: var(--ink); font-size: 10px; font-weight: 800; }.plan-featured h3, .plan-featured a { color: #fff; }.plan-featured p, .plan-featured ol { color: #c8d6ce; }.practical-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 120px; }.practical-grid h2 { margin-bottom: 0; }.practical-list { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }.tailored-card { background: #d5dcd1; border: 0; }.tailored-card h2 { margin-bottom: 12px; }
body:has(.route-page-top) .page-hero::before { content: "TRAZADO LOCAL · 04\A 4,8 KM · 02 H\A DIFICULTAD · FÁCIL"; } body:has(.directory-controls) .page-hero::before { content: "FICHA VERIFICABLE\A LOCAL · CONTACTO\A REVISIÓN · ACTIVA"; } body:has(.agenda-head) .page-hero::before { content: "LATIDO LOCAL · 12\A ENE · ABR · AGO · NOV\A FECHAS POR CONFIRMAR"; } body:has(.flavor-intro) .page-hero::before { content: "DESPENSA DE INTERIOR\A UVA · HORNO · ALMENDRA\A OFICIO · MEMORIA"; } body:has(.planner-head) .page-hero::before { content: "PLAN DE BOLSILLO\A 02 H · 01 D · 48 H\A ORIENTACIÓN LOCAL"; }

.article-hero { padding: 115px 0 82px; background: var(--cream); }.back-link { display: inline-block; margin-bottom: 65px; color: #5b6c65; font-size: 11px; font-weight: 800; }.article-hero h1 { max-width: 950px; margin: 0 0 23px; font-family: "DM Serif Display"; font-size: clamp(3.3rem,6vw,6rem); font-weight: 400; line-height: .88; letter-spacing: -.06em; }.article-hero p { max-width: 620px; color: #596b63; font-size: 16px; }.article-main-image { display: block; width: min(1120px, calc(100% - 48px)); height: 540px; margin: 0 auto; object-fit: cover; }.article-body { display: grid; grid-template-columns: 190px minmax(0,680px); justify-content: center; gap: 85px; padding: 85px 24px 120px; }.article-body aside { position: sticky; top: 110px; align-self: start; display: grid; gap: 9px; }.article-body aside span { margin-bottom: 5px; color: #75827b; font-size: 9px; font-weight: 800; letter-spacing: .12em; }.article-body aside a { color: #52635c; font-size: 11px; }.article-body aside a:hover { color: var(--ochre); }.article-body > div { color: #43564e; font-size: 16px; }.article-body .article-lead { color: var(--ink); font-family: "DM Serif Display"; font-size: 27px; line-height: 1.25; }.article-body h2 { margin: 47px 0 13px; font-family: "DM Serif Display"; font-size: 39px; font-weight: 400; line-height: 1; }.article-body blockquote { margin: 36px 0; padding: 20px 25px; border-left: 3px solid var(--ochre); background: #e8e2d6; color: var(--ink); font-family: "DM Serif Display"; font-size: 25px; line-height: 1.12; }.article-body .button { margin-top: 15px; }.sale-page-hero { padding: 120px 0; background: var(--ink); }.sale-page-hero .eyebrow { color: #f5c888; }.sale-page-hero h1 { max-width: 760px; margin: 0 0 20px; color: #fff; font-family: "DM Serif Display"; font-size: clamp(4rem,7vw,7.3rem); font-weight: 400; line-height: .83; letter-spacing: -.065em; }.sale-page-hero h1 em { color: #f5c888; }.sale-page-hero p { max-width: 630px; color: #d3dfd9; font-size: 16px; }.sale-page-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 110px; align-items: start; }.sale-domain { color: var(--ochre); font-family: "DM Serif Display"; font-size: 26px; font-style: italic; }.sale-argument h2 { margin: 16px 0; }.sale-argument > p { max-width: 520px; color: #5f6e67; font-size: 15px; }.sale-points { display: grid; gap: 12px; margin-top: 28px; color: var(--ink); font-size: 12px; font-weight: 700; }.sale-points span { display: flex; align-items: center; gap: 7px; }.sale-points svg { color: var(--ochre); }.contact-card { padding: 35px; background: #e8e2d6; }.contact-card h2 { margin: 0 0 24px; font-family: "DM Serif Display"; font-size: 35px; font-weight: 400; line-height: 1; }.contact-card label { display: block; margin: 14px 0; color: #5e6e66; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.contact-card input, .contact-card textarea { display: block; width: 100%; margin-top: 6px; padding: 10px 0; border: 0; border-bottom: 1px solid #9eab9e; outline: 0; background: transparent; color: var(--ink); font-size: 13px; font-weight: 400; letter-spacing: 0; text-transform: none; }.contact-card textarea { min-height: 80px; resize: vertical; }.contact-card .button { width: 100%; margin-top: 11px; font-size: 10px; }.contact-card small { display: block; margin-top: 13px; color: #68766e; font-size: 9px; }.contact-card small a { color: var(--ink); font-weight: 800; }.sale-proof { padding: 55px 0; background: var(--ochre); color: #fff; }.sale-proof > div > span { font-size: 10px; font-weight: 800; letter-spacing: .14em; }.sale-proof > div > div { display: flex; align-items: baseline; gap: 12px 24px; margin-top: 8px; }.sale-proof b { font-family: "DM Serif Display"; font-size: 54px; font-weight: 400; }.sale-proof p { margin: 0 28px 0 0; font-size: 11px; }

.site-footer { padding-top: 72px; background: #112c28; color: #d7e1db; }.footer-grid { display: grid; grid-template-columns: 1.5fr .6fr .8fr 1fr; gap: 55px; padding-bottom: 65px; }.footer-brand .brand-name { color: #fff; }.site-footer p { color: #aac0b6; font-size: 12px; }.footer-grid > div:not(:first-child) > a { display: block; margin: 9px 0; color: #d7e1db; font-size: 11px; }.footer-label { margin-top: 0; color: #f5c888 !important; font-size: 9px !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.footer-mail { display: inline-flex; align-items: center; gap: 7px; margin-top: 9px; color: #fff; font-size: 11px; font-weight: 800; }.footer-note span { color: #809990; font-size: 9px; }.footer-bottom { display: grid; grid-template-columns: 1fr 1fr auto; gap: 20px; padding: 17px 0; border-top: 1px solid rgba(255,255,255,.16); color: #8ca49a; font-size: 9px; }.footer-bottom span:nth-child(2) { text-align: center; }

@media (prefers-reduced-motion: no-preference) { .image-card, .route-card, .place-card, .event-card, .three-paths > a { transition: transform .22s cubic-bezier(.23,1,.32,1), border-color .22s, background .22s; }.route-card:hover, .place-card:hover { transform: translateY(-4px); }.home-hero-inner > *, .page-hero-copy > * { animation: rise .55s cubic-bezier(.23,1,.32,1) both; }.home-hero-inner > *:nth-child(2), .page-hero-copy > *:nth-child(2) { animation-delay: .06s; } @keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } } }
@media (max-width: 960px) { .desktop-nav, .header-cta { display: none; }.mobile-toggle { display: grid; place-items: center; border: 0; background: transparent; color: var(--ink); }.mobile-menu { display: grid; padding: 15px 24px 22px; border-top: 1px solid #d7cdbf; background: var(--white); }.mobile-menu a { padding: 10px 0; font-size: 13px; font-weight: 800; }.home-hero-inner { grid-template-columns: 1fr 4fr 1fr; }.intro-grid, .routes-layout, .feature-layout, .museum-layout, .history-grid, .directory-layout, .sale-page-grid { gap: 55px; }.intro-grid { grid-template-columns: 1fr 1fr; }.fact-column { grid-column: 1 / -1; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--sand); border-left: 0; padding: 20px 0 0; }.gateway-grid { grid-template-columns: 1fr 1fr; }.gateway-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }.gateway-list > a { padding: 12px 0; }.gateway-quote { display: none; }.route-cards { grid-template-columns: repeat(2,1fr); }.event-strip { grid-template-columns: repeat(2,1fr); }.event-card:nth-child(2) { border-right: 0; }.flavor-grid { grid-template-columns: 1fr 1fr; }.flavor-big { grid-column: 1 / -1; }.directory-side, .museum-side { position: static; }.directory-layout { grid-template-columns: .7fr 1.3fr; }.footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }.footer-note { grid-column: 1 / -1; } }
@media (max-width: 640px) { .wide-shell { width: min(100% - 32px, 1280px); }.section { padding: 70px 0; }.sale-strip-inner { min-height: 45px; align-items: center; font-size: 8px; line-height: 1.35; }.sale-strip-inner > span { max-width: 215px; }.sale-link { font-size: 8px; }.header-inner { height: 64px; }.brand-mark { width: 28px; height: 28px; }.brand-name { font-size: 22px; }.home-hero { min-height: 650px; }.home-hero > img { object-position: 57% center; }.home-hero-inner { min-height: 590px; grid-template-columns: 1fr; }.hero-coordinates, .hero-weather { display: none; }.hero-content { padding-top: 65px; }.hero-content h1 { font-size: clamp(4.2rem,20vw,6rem); }.hero-content > p { font-size: 15px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 19px; }.hero-bottom { padding-bottom: 15px; font-size: 7px; }.hero-bottom span:nth-child(2) { display: none; }.intro-band { padding: 70px 0; }.intro-grid, .feature-layout, .museum-layout, .history-grid, .checklist-grid, .split-article, .flavor-intro, .directory-layout, .sponsor-grid, .practical-grid, .sale-page-grid { grid-template-columns: 1fr; gap: 30px; }.intro-grid h2, .section-heading h2, .feature-copy h2, .museum-side h2, .history-grid h2, .route-page-top h2, .flavor-intro h2, .directory-side h2, .planner-head h2, .practical-grid h2, .tailored-card h2, .sale-argument h2 { font-size: 3rem; }.fact-column { grid-template-columns: 1fr; gap: 8px; }.heading-split { display: block; }.heading-split > p { margin-top: 19px !important; }.gateway-grid { grid-template-columns: 1fr; }.image-card-tall { min-height: 410px; }.gateway-stack { grid-template-rows: 250px 250px; }.gateway-list { grid-template-columns: 1fr; }.routes-layout { grid-template-columns: 1fr; gap: 40px; }.route-stamp { margin-top: 35px; }.route-row { grid-template-columns: 30px 1fr 18px; gap: 10px; }.route-meta { grid-column: 2; grid-row: 2; margin-top: -4px; }.route-arrow { grid-column: 3; grid-row: 1 / span 2; }.route-row h3 { font-size: 23px; }.feature-visual { min-height: 370px; }.feature-visual img { width: 88%; }.feature-copy { max-width: none; }.heading-inline, .route-page-top, .agenda-head, .planner-head, .directory-controls-inner { align-items: flex-start; flex-direction: column; }.event-strip { grid-template-columns: 1fr; }.event-card, .event-card:nth-child(n+2) { min-height: 180px; padding-left: 0; border-right: 0; }.newsletter-section { padding-bottom: 65px; }.newsletter-box { align-items: stretch; flex-direction: column; padding: 35px 27px; }.page-hero { min-height: 445px; }.page-hero::before { right: 16px; bottom: 15px; width: 134px; min-height: 61px; padding: 9px; font-size: 7px; }.page-hero-copy { padding-top: 85px; }.page-hero-copy h1 { font-size: 3.9rem; }.page-hero-copy > p { font-size: 14px; }.museum-item { grid-template-columns: 42px 1fr; }.museum-item > svg { display: none; }.museum-item h3 { font-size: 25px; }.pause-grid, .three-paths { grid-template-columns: 1fr; }.pause-grid article, .pause-grid article:nth-child(n+2), .three-paths > a, .three-paths > a:nth-child(n+2) { min-height: auto; padding: 23px 0; border-right: 0; border-bottom: 1px solid #c6baa8; }.mini-plan { width: calc(100% - 32px); margin-bottom: 70px; }.mini-plan h3 { font-size: 24px; }.filter-bar { justify-content: flex-start; }.route-cards { grid-template-columns: 1fr; }.route-card { min-height: 370px; }.checklist { grid-template-columns: 1fr; padding-top: 0; }.split-article img { height: 280px; }.calendar-rail { width: 100%; overflow-x: auto; }.event-list-row { grid-template-columns: 65px 1fr; }.event-action { grid-column: 2; }.participation-card, .tailored-card { align-items: flex-start; flex-direction: column; padding: 31px 24px; }.participation-card h2, .tailored-card h2 { font-size: 35px; }.flavor-grid { grid-template-columns: 1fr; }.flavor-big, .flavor-craft { min-height: 340px; }.flavor-note { min-height: 260px; }.directory-grid { grid-template-columns: 1fr; }.directory-side { position: static; }.sponsor-band h2 { font-size: 39px; }.plan-grid { grid-template-columns: 1fr; margin-top: 35px; }.practical-list { grid-template-columns: 1fr; }.article-hero { padding: 75px 0 50px; }.article-hero h1 { font-size: 3.8rem; }.article-main-image { height: 310px; }.article-body { grid-template-columns: 1fr; gap: 30px; padding: 50px 24px 75px; }.article-body aside { position: static; grid-template-columns: repeat(3,1fr); }.article-body aside span { grid-column: 1 / -1; }.article-body .article-lead { font-size: 24px; }.sale-page-hero { padding: 80px 0; }.sale-page-hero h1 { font-size: 4.1rem; }.contact-card { padding: 25px; }.sale-proof > div > div { flex-wrap: wrap; }.footer-grid { grid-template-columns: 1fr 1fr; gap: 35px 23px; }.footer-grid > div:first-child, .footer-note { grid-column: 1 / -1; }.footer-bottom { grid-template-columns: 1fr auto; }.footer-bottom span:nth-child(2) { display: none; } }
/* Cuaderno de piedra: la venta conserva relieve, trazo y el contexto del destino. */
.sale-page-hero { position: relative; overflow: hidden; }
.sale-page-hero::after { position: absolute; top: 0; right: 0; width: 42%; height: 100%; content: ""; opacity: .38; background: linear-gradient(135deg, transparent 45%, rgba(217,138,61,.38) 46%, transparent 47%) 0 0/62px 62px, repeating-radial-gradient(ellipse at 100% 100%, transparent 0 22px, rgba(255,255,255,.18) 23px 24px, transparent 25px 42px); }
.sale-page-hero .wide-shell { position: relative; z-index: 1; }
.sale-proof { background: #d5dcd1; color: var(--ink); }
.sale-proof > div > span { color: var(--ink-soft); }
.sale-proof b { color: var(--ochre); }

/* Cuaderno de piedra: el dominio es la firma editorial; la cabecera le da presencia sin invadir la navegación. */
.site-header .brand { gap: 12px; }
.site-header .brand-mark { width: 45px; height: 45px; }
.site-header .brand-name { font-size: 36px; }
@media (max-width: 640px) {
  .site-header .brand { gap: 10px; }
  .site-header .brand-mark { width: 42px; height: 42px; }
  .site-header .brand-name { font-size: 33px; }
  .sale-strip-inner > span { max-width: none; }
  .sale-detail { display: none; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

@media (min-width: 961px) { .mobile-menu { display: none !important; } }
@media (max-width: 960px) { .mobile-menu { display: none; } .mobile-menu.is-open { display: grid; } }
