/* LAS CASAS DE LA PENÍNSULA · V1 */
:root{
  --ivory:#FFFDF7; --paper:#FAF7EF; --sage:#5F7161; --sage-d:#4C5B4E; --sage-l:#EDF0EC;
  --gold:#8A6D3B; --gold-l:#B79A6B; --ink:#2B2B28; --muted:#6C6C64;
  --serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --maxw:1180px; --textw:700px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--sage-d);text-decoration:none}
a:hover{color:var(--gold)}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:#fff;padding:.5rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.text{max-width:var(--textw);margin-left:auto;margin-right:auto}

/* ---------- Header ---------- */
header.site{position:sticky;top:0;background:rgba(255,253,247,.94);backdrop-filter:blur(4px);border-bottom:1px solid #E7E2D4;z-index:50}
.hd{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;max-width:var(--maxw);margin:0 auto}
.brand{font-weight:600;letter-spacing:.14em;font-size:15px;color:var(--sage);text-transform:uppercase;white-space:nowrap}
nav.main{display:flex;gap:26px;align-items:center}
nav.main a{font-size:15.5px;letter-spacing:.05em;color:var(--ink)}
nav.main a[aria-current="page"]{color:var(--gold);border-bottom:1px solid var(--gold)}
.langs{display:flex;gap:10px;font-size:13.5px;letter-spacing:.08em}
.langs a{color:var(--muted)} .langs a[aria-current="true"]{color:var(--gold);font-weight:600}
.burger{display:none;background:none;border:0;padding:6px;cursor:pointer}
.burger span{display:block;width:22px;height:2px;background:var(--sage);margin:5px 0}
#nav-toggle{display:none}
@media(max-width:860px){
  nav.main{display:none}
  .burger{display:block}
  #nav-toggle:checked ~ nav.main{display:flex;position:absolute;left:0;right:0;top:100%;background:var(--ivory);flex-direction:column;padding:18px 22px 24px;border-bottom:1px solid #E7E2D4;gap:16px}
}

/* ---------- Hero ---------- */
.hero{padding:9vh 20px 6vh;text-align:center}
.hero h1{font-size:clamp(34px,6vw,60px);font-weight:600;letter-spacing:.1em;color:var(--sage);margin:0 0 10px;text-transform:uppercase;line-height:1.08}
.hero .claim{font-style:italic;color:var(--gold);font-size:clamp(18px,2.4vw,23px);margin:0 0 26px}
.hero .poem{font-size:clamp(18px,2.2vw,22px);line-height:1.7;max-width:640px;margin:0 auto 30px}
.hero .poem b{font-weight:600}
.cta{display:inline-block;border:1px solid var(--gold);color:var(--gold);padding:12px 26px;letter-spacing:.12em;font-size:14.5px;text-transform:uppercase;transition:background .25s,color .25s}
.cta:hover{background:var(--gold);color:#fff}
.cta.solid{background:var(--sage);border-color:var(--sage);color:#fff}
.cta.solid:hover{background:var(--sage-d)}

/* ---------- Section basics ---------- */
section{padding:64px 0}
.kicker{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-size:14px;font-weight:600;margin:0 0 14px;text-align:center}
h2.sec{font-size:clamp(26px,3.6vw,38px);font-weight:600;color:var(--sage);text-align:center;margin:0 0 18px;line-height:1.15}
.lead{text-align:center;font-size:clamp(18px,2.2vw,21px);max-width:720px;margin:0 auto}
.center{text-align:center}
.italic{font-style:italic}
.gold{color:var(--gold)} .sagec{color:var(--sage)}
hr.orn{border:0;width:84px;border-top:1px solid var(--gold);margin:26px auto}

/* ---------- Manifesto ---------- */
.manifesto{background:var(--paper);border-top:1px solid #EDE7D8;border-bottom:1px solid #EDE7D8}
.manifesto .big{font-size:clamp(24px,3.4vw,34px);color:var(--sage);font-weight:600;text-align:center;line-height:1.25;margin:0 0 18px}

/* ---------- RouteLine ---------- */
.routeline{display:flex;align-items:flex-start;justify-content:center;gap:0;margin:34px auto;max-width:820px}
.routeline .stop{flex:1;text-align:center;position:relative;padding-top:26px;min-width:0}
.routeline .stop::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:12px;height:12px;border-radius:50%;background:var(--gold)}
.routeline .stop::after{content:"";position:absolute;top:13px;left:calc(50% + 12px);right:calc(-50% + 12px);border-top:2px dotted var(--gold-l)}
.routeline .stop:last-child::after{display:none}
.routeline .t{display:block;font-size:13px;letter-spacing:.14em;color:var(--gold);text-transform:uppercase;font-weight:600}
.routeline .n{display:block;font-size:15px;color:var(--ink)}
.routeline .l{display:block;font-size:13.5px;font-style:italic;color:var(--muted)}
@media(max-width:640px){
  .routeline{flex-direction:column;gap:0;max-width:none;padding-left:8px}
  .routeline .stop{text-align:left;padding:0 0 26px 30px}
  .routeline .stop::before{left:0;top:6px;transform:none}
  .routeline .stop::after{left:5px;top:20px;right:auto;bottom:-2px;width:0;border-top:0;border-left:2px dotted var(--gold-l)}
}

/* ---------- Map ---------- */
.mapwrap{max-width:760px;margin:0 auto}
.mapwrap svg{width:100%;height:auto}
.map-stop circle.dot{fill:var(--gold)}
.map-stop:hover circle.halo,.map-stop:focus circle.halo{fill:rgba(138,109,59,.18)}
.map-stop text{font-family:var(--serif)}
.maplist{list-style:none;padding:0;margin:18px auto 0;max-width:640px;text-align:center;font-size:16px}
.maplist li{display:inline-block;margin:4px 10px}
.maplist .tt{color:var(--gold);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:12.5px;margin-right:6px}

/* ---------- Territory chapters ---------- */
.chapter{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center;padding:44px 0;border-top:1px solid #EDE7D8}
.chapter:first-of-type{border-top:0}
.chapter:nth-of-type(even) .ch-img{order:2}
.ch-img{background:var(--sage-l);border-radius:4px;overflow:hidden}
.ch-img svg,.ch-img img{width:100%;height:auto}
.ch-tt{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-weight:600;font-size:14px;margin:0 0 4px}
.ch-claim{font-style:italic;color:var(--sage);font-size:20px;margin:0 0 8px}
.ch-name{font-size:26px;font-weight:600;margin:0 0 4px}
.ch-loc{color:var(--muted);font-style:italic;margin:0 0 14px;font-size:16px}
.ch-body{font-size:18.5px}
.more{display:inline-block;margin-top:14px;color:var(--gold);letter-spacing:.1em;font-size:14.5px;text-transform:uppercase}
.more::after{content:" \2192"}
@media(max-width:780px){.chapter{grid-template-columns:1fr;gap:22px}.chapter:nth-of-type(even) .ch-img{order:0}}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;max-width:980px;margin:30px auto 0}
.step .num{font-size:15px;color:var(--gold);letter-spacing:.2em;font-weight:600}
.step h3{font-size:21px;margin:.35rem 0 .4rem;color:var(--sage);font-weight:600}
.step p{margin:0;font-size:17.5px}
@media(max-width:760px){.steps{grid-template-columns:1fr;gap:22px}}

/* ---------- Principles ---------- */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 34px;max-width:1020px;margin:26px auto 0}
.principle h3{font-size:18.5px;color:var(--sage);margin:0 0 4px;font-weight:600}
.principle p{margin:0;font-size:16.5px;color:var(--ink)}
@media(max-width:820px){.principles{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.principles{grid-template-columns:1fr}}

/* ---------- Journeys ---------- */
.journeys{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1020px;margin:30px auto 0}
.jcard{border:1px solid #E7E0CF;background:var(--paper);padding:26px 24px;border-radius:4px;display:flex;flex-direction:column}
.jcard .d{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-weight:600;font-size:13.5px}
.jcard h3{margin:.4rem 0 .4rem;font-size:22px;color:var(--sage);font-weight:600}
.jcard p{margin:0 0 14px;font-size:17px}
.jcard .more{margin-top:auto}
@media(max-width:820px){.journeys{grid-template-columns:1fr}}

/* ---------- Stories ---------- */
.stories{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1020px;margin:30px auto 0}
.scard{border-top:2px solid var(--gold);padding-top:14px}
.scard .cat{color:var(--gold);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.scard h3{margin:.35rem 0 .45rem;font-size:21px;font-weight:600;line-height:1.25}
.scard h3 a{color:var(--ink)} .scard h3 a:hover{color:var(--gold)}
.scard p{margin:0;font-size:16.5px;color:var(--muted)}
@media(max-width:820px){.stories{grid-template-columns:1fr}}

/* ---------- House page ---------- */
.hhero{padding:60px 20px 30px;text-align:center}
.hhero .tt{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font-weight:600;font-size:14px}
.hhero h1{font-size:clamp(32px,5vw,50px);color:var(--sage);font-weight:600;margin:.3rem 0 .2rem}
.hhero .loc{color:var(--muted);font-style:italic}
.hhero .claim{font-style:italic;color:var(--gold);font-size:clamp(19px,2.4vw,23px);margin-top:10px}
.hero-img{max-width:980px;margin:26px auto 0;border-radius:4px;overflow:hidden;background:var(--sage-l)}
.hsec{padding:46px 0}
.hsec h2{font-size:clamp(24px,3vw,32px);color:var(--sage);font-weight:600;margin:0 0 16px;text-align:center}
.hsec .text p{margin:0 0 16px;font-size:18.5px}
.hosts{display:grid;grid-template-columns:280px 1fr;gap:36px;align-items:center;max-width:880px;margin:0 auto}
.hosts .portrait{background:var(--sage-l);border-radius:4px;overflow:hidden}
.hosts h3{color:var(--sage);font-size:22px;margin:0 0 8px;font-weight:600}
@media(max-width:720px){.hosts{grid-template-columns:1fr;max-width:440px}}
.recs{max-width:680px;margin:0 auto;padding-left:0;list-style:none}
.recs li{padding:12px 0 12px 26px;position:relative;border-bottom:1px solid #EDE7D8;font-size:18px}
.recs li::before{content:"";position:absolute;left:2px;top:20px;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1020px;margin:0 auto}
.gal .ph{background:var(--sage-l);border-radius:4px;overflow:hidden}
@media(max-width:720px){.gal{grid-template-columns:1fr 1fr}}
.nextstop{background:var(--paper);border-top:1px solid #EDE7D8;border-bottom:1px solid #EDE7D8}
.ns-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:920px;margin:0 auto}
.ns{padding:22px;border:1px solid #E7E0CF;border-radius:4px;background:var(--ivory)}
.ns .dir{color:var(--gold);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.ns h3{margin:.3rem 0 .2rem;font-size:21px;color:var(--sage);font-weight:600}
.ns p{margin:0;font-size:16px;color:var(--muted);font-style:italic}
@media(max-width:680px){.ns-grid{grid-template-columns:1fr}}
.official{text-align:center;padding:56px 20px}
.official .note{color:var(--muted);font-size:15.5px;font-style:italic;margin-top:14px}
.press{color:var(--muted);font-size:15.5px;font-style:italic;text-align:center;max-width:680px;margin:10px auto 0}

/* ---------- Article ---------- */
.article{max-width:var(--textw);margin:0 auto;padding:56px 20px}
.article .cat{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-weight:600;font-size:13px;text-align:center;display:block}
.article h1{font-size:clamp(30px,4.4vw,42px);color:var(--sage);font-weight:600;text-align:center;line-height:1.15;margin:.4rem 0 1rem}
.article .excerpt{font-style:italic;text-align:center;color:var(--muted);font-size:19px;margin-bottom:28px}
.article .body p{font-size:19px;margin:0 0 18px}
.backlink{display:block;text-align:center;margin-top:34px}

/* ---------- Footer ---------- */
footer.site{border-top:1px solid #E7E2D4;background:var(--paper);padding:40px 20px 30px;text-align:center}
footer .brand{display:block;margin-bottom:6px}
footer .claim{font-style:italic;color:var(--gold);font-size:16px;margin:0 0 18px}
footer nav{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-bottom:14px}
footer nav a{font-size:15px;color:var(--ink)}
footer .langs{justify-content:center;margin-bottom:14px}
footer .copy{color:var(--muted);font-size:13.5px}

/* ---------- Utilities ---------- */
.ratio-32{aspect-ratio:3/2}.ratio-45{aspect-ratio:4/5}.ratio-11{aspect-ratio:1/1}.ratio-169{aspect-ratio:16/9}
.ph svg,.ch-img svg,.hero-img svg,.portrait svg{width:100%;height:100%}
