
:root{
  --bg:#121110; --surface:#1c1b19; --surface-2:#252320;
  --ink:#ece9e2; --muted:#bdb7ab; --gold:#c9a45e;
  --paper:#ebe8e1; --paper-2:#dedad1; --paper-ink:#151413;
  --accent:#c9a45e; --accent-ink:#151413;
  --m:clamp(16px,2.8vw,40px);
  --display:"Playfair Display", Georgia, serif;
  --text:"Source Sans 3", system-ui, sans-serif;
  --s-sm:15px; --s-body:17px; --s-lg:clamp(22px,2.4vw,34px); --s-xl:clamp(36px,4.4vw,64px);
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--text);font-size:var(--s-body);line-height:1.55;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
::selection{background:var(--gold);color:var(--paper-ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-0.02em;line-height:1.02;text-wrap:balance}
.btn{display:inline-flex;align-items:center;gap:.6em;min-height:52px;padding:0 28px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:17px;text-decoration:none;border:0;cursor:pointer;transition:transform .25s var(--ease),background-color .25s}
.btn:hover{transform:translateY(-2px);background:#d8b56f}
.btn:active{transform:translateY(1px) scale(.98)}
.link{text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px;transition:color .2s}
.link:hover{color:var(--gold)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;background:var(--bg);padding:0 var(--m);display:grid;grid-template-rows:auto 1fr auto}
.top{display:flex;justify-content:space-between;align-items:center;padding-top:24px;font-size:var(--s-sm)}
.mono{font-family:var(--display);font-weight:700;font-size:var(--s-body);color:var(--gold);text-decoration:none;letter-spacing:-.01em}
.top nav{display:flex;gap:28px}
.top nav a{text-decoration:none;color:var(--muted);transition:color .2s}
.top nav a:hover{color:var(--ink)}
.hero h1{align-self:start;margin-top:6vh;font-size:clamp(96px,min(21vw,36vh),340px);font-weight:800;letter-spacing:-0.045em;line-height:.84}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln span{display:block}
.hero h1 .ln:first-child{color:var(--ink)}
.hero h1 .ln:nth-child(2){color:var(--gold)}
.hero .what{font-size:var(--s-lg);line-height:1.3;color:var(--ink);margin-bottom:20px;max-width:30ch}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;padding-bottom:40px}
.hero-foot p{max-width:42ch;color:var(--muted)}
.hero-foot p.what{color:var(--ink);font-size:var(--s-lg)}

/* ---------- intro staircase ---------- */
.intro{background:var(--gold);color:var(--paper-ink);min-height:80svh;display:grid;grid-template-columns:1fr 22vw;gap:4vw;align-items:center;padding:120px var(--m)}
.stair{font-family:var(--display);font-weight:700;font-size:var(--s-lg);line-height:1.12;letter-spacing:-.02em}
.stair span{display:block}
.stair span:nth-child(2){padding-left:5vw}.stair span:nth-child(3){padding-left:10vw}.stair span:nth-child(4){padding-left:15vw}.stair span:nth-child(5){padding-left:20vw}
.intro figure{display:grid;gap:16px;align-self:start;margin-top:4px}
.intro figure img{aspect-ratio:3/2;object-fit:cover;width:100%}
.intro figcaption{font-size:var(--s-sm);line-height:1.4}
.intro .note{grid-column:1/-1;max-width:52ch;font-weight:600}

/* ---------- features split ---------- */
.areas{display:grid;grid-template-columns:1fr 1fr;min-height:90svh}
.areas .cell{background:var(--paper);color:var(--paper-ink);padding:120px var(--m) 56px;display:flex;flex-direction:column;justify-content:space-between;gap:64px}
.zig{font-size:var(--s-xl)}
.zig span{display:block}
.zig span:nth-child(2){text-align:right}
.zig{max-width:none}
.cell-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.cell-foot p{max-width:34ch}
.rows{display:grid;grid-auto-rows:1fr}
.row{display:grid;grid-template-columns:5fr 4fr 3fr;gap:24px;padding:36px 28px;align-items:start}
.row:nth-child(odd){background:var(--surface)}
.row:nth-child(even){background:var(--surface-2)}
.row h3{font-size:var(--s-lg)}
.row p{font-size:var(--s-body);color:var(--ink)}
.row ul{list-style:none;font-size:var(--s-sm);color:var(--muted);display:grid;gap:4px}
.row a{font-size:var(--s-sm);display:inline-block;margin-top:10px}

/* ---------- painting band ---------- */
.band{position:relative;height:88svh;overflow:hidden;background:#000}
.band img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 2.4s var(--ease)}
.band.in img{transform:scale(1)}
.band-cap{position:absolute;left:var(--m);bottom:32px;right:var(--m);display:flex;justify-content:space-between;gap:24px;align-items:flex-end}
.band-cap h2{font-size:var(--s-xl);color:#fff;max-width:24ch}
.band-cap p{color:#fff;font-size:var(--s-sm);max-width:34ch;text-align:right}
.band::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;background:rgba(0,0,0,.42);pointer-events:none}
.band-cap{z-index:1}

/* ---------- itinerary slip ---------- */
.route{background:var(--surface);padding:140px var(--m) 120px;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.route-text{grid-column:1/6}
.route-text h2{font-size:var(--s-xl);margin-bottom:28px}
.route-text p{max-width:38ch;margin-bottom:18px}
.route-text p.small{color:var(--muted);font-size:var(--s-sm)}
.slip{grid-column:7/12;background:var(--paper);color:var(--paper-ink);padding:36px 32px 64px;font-size:var(--s-body);font-variant-numeric:tabular-nums;clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),97.5% 100%,95% calc(100% - 14px),92.5% 100%,90% calc(100% - 14px),87.5% 100%,85% calc(100% - 14px),82.5% 100%,80% calc(100% - 14px),77.5% 100%,75% calc(100% - 14px),72.5% 100%,70% calc(100% - 14px),67.5% 100%,65% calc(100% - 14px),62.5% 100%,60% calc(100% - 14px),57.5% 100%,55% calc(100% - 14px),52.5% 100%,50% calc(100% - 14px),47.5% 100%,45% calc(100% - 14px),42.5% 100%,40% calc(100% - 14px),37.5% 100%,35% calc(100% - 14px),32.5% 100%,30% calc(100% - 14px),27.5% 100%,25% calc(100% - 14px),22.5% 100%,20% calc(100% - 14px),17.5% 100%,15% calc(100% - 14px),12.5% 100%,10% calc(100% - 14px),7.5% 100%,5% calc(100% - 14px),2.5% 100%,0 calc(100% - 14px))}
.slip-title{font-family:var(--display);font-weight:700;font-size:var(--s-lg);margin-bottom:4px}
.slip-sub{font-size:var(--s-sm);margin-bottom:8px}
.slip h3{font-family:var(--text);font-weight:600;font-size:var(--s-body);letter-spacing:0;margin-top:28px;margin-bottom:6px}
.slip dl{display:grid;gap:6px}
.slip dl div{display:flex;align-items:baseline;gap:8px}
.slip dt{flex:0 1 auto}
.slip dd{flex:0 0 auto;text-align:right}
.slip dl div::after{content:none}
.lead{flex:1 1 24px;min-width:24px;align-self:baseline;height:4px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4'%3E%3Ccircle cx='2' cy='2' r='1.5' fill='%23151413'/%3E%3C/svg%3E");background-size:8px 4px;background-repeat:repeat-x;opacity:.55;order:1}
.slip dt{order:0}.slip dd{order:2}
.slip .total{margin:32px -32px 0;background:var(--paper-ink);color:var(--paper);min-height:44px;display:flex;justify-content:space-between;align-items:center;padding:10px 32px;font-weight:600}

/* ---------- IR calculator ---------- */
.ir{background:var(--bg);padding:140px var(--m) 140px}
.ir-head{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start;margin-bottom:80px}
.ir-head h2{grid-column:1/6;font-size:var(--s-xl)}
.ir-head p{grid-column:7/13;max-width:58ch}
.ir-head p + p{grid-column:7/13}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.spec label,.spec .cap{display:block;font-size:var(--s-sm);color:var(--muted);margin-top:18px;max-width:46ch}
.spec b{color:var(--ink);font-weight:600}
.spec .num{font-family:var(--display);font-weight:700;font-size:clamp(56px,8.6vw,124px);line-height:.95;letter-spacing:-.035em;display:flex;align-items:baseline;gap:.12em;white-space:nowrap}
.spec .cur{font-size:.42em;color:var(--muted);letter-spacing:0}
.spec input{font:inherit;color:var(--ink);background:var(--surface);border:0;border-bottom:3px solid var(--gold);width:100%;min-width:0;padding:0 .1em;letter-spacing:inherit;border-radius:0;transition:background-color .2s}
.spec input:focus{outline:none;background:var(--surface-2)}
.spec.out .num{color:var(--gold)}
.ir-foot{margin-top:72px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.ir-foot p{max-width:60ch;font-size:var(--s-sm);color:var(--muted)}

/* ---------- urban / rural ---------- */
.places{background:var(--paper);color:var(--paper-ink);padding:160px var(--m)}
.places h2{font-size:var(--s-xl);max-width:16ch;margin-bottom:56px}
.duo{display:grid;grid-template-columns:7fr 5fr;gap:24px;align-items:end}
.duo figure img{width:100%;object-fit:cover}
.duo figure:first-child img{aspect-ratio:16/10}
.duo figure:last-child img{aspect-ratio:4/5}
.duo figcaption{margin-top:16px;max-width:44ch}
.duo figcaption b{font-family:var(--display);font-size:var(--s-lg);display:block;margin-bottom:4px}

/* ---------- faq ---------- */
.faq{background:var(--surface);padding:160px var(--m);display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.faq h2{grid-column:1/4;font-size:var(--s-lg)}
.faq .cols{grid-column:5/13;columns:2;column-gap:56px}
.faq .cols p{break-inside:avoid;margin-bottom:22px}
.faq .cols b{font-weight:600;color:var(--gold)}

/* ---------- contact ---------- */
.contact{background:var(--bg)}
.crow{display:flex;align-items:flex-end;min-height:150px;padding:0 var(--m) 24px;font-family:var(--display);font-size:var(--s-xl);line-height:1.02;letter-spacing:-.025em;text-decoration:none}
.crow:nth-child(odd){background:var(--surface)}
.crow:nth-child(even){background:var(--bg)}
a.crow{transition:color .2s}
a.crow:hover{color:var(--gold)}
.crow.go{background:var(--gold);color:var(--paper-ink);gap:24px;align-items:center;padding-top:24px}
.crow.go .round{width:.95em;height:.95em;border-radius:50%;background:var(--paper-ink);color:var(--gold);display:inline-grid;place-items:center;transition:transform .3s var(--ease)}
.crow.go:hover .round{transform:translateX(8px) rotate(-12deg)}
.crow.go:hover{color:var(--paper-ink)}
.crow.go svg{width:42%;height:42%}

/* ---------- footer ---------- */
footer{background:var(--paper);color:var(--paper-ink);display:grid;gap:120px;padding:56px var(--m) 20px}
.fcols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;font-size:var(--s-sm)}
.fcols ul{list-style:none;display:grid;gap:4px}
.fcols li:first-child{font-weight:600}
.fcols li{color:#4a453c}.fcols li:first-child{color:var(--paper-ink)}
.fcols a{text-decoration:none}.fcols a:hover{text-decoration:underline}
.wordmark{display:block;width:100%}
.wordmark text{font-family:var(--display);font-weight:800;fill:var(--paper-ink)}
.legal{font-size:13px;display:flex;flex-direction:column;gap:6px;margin-top:12px;color:#3a362f}
.legal a{color:inherit}

/* ---------- motion ---------- */
.js .hero h1 .ln span{transform:translateY(105%);transition:transform .9s var(--ease)}
.js .hero h1 .ln:nth-child(2) span{transition-delay:.11s}
.js .hero.ready h1 .ln span{transform:none}
.js .hero .what,.js .hero-foot,.js .top{opacity:0;transform:translateY(16px);transition:opacity .7s .55s,transform .7s .55s var(--ease)}
.js .hero.ready .what,.js .hero.ready .hero-foot,.js .hero.ready .top{opacity:1;transform:none}
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important}
  .js .hero h1 .ln span,.js .rv,.js .hero .what,.js .hero-foot,.js .top{transform:none!important;opacity:1!important}
  .band img{transform:none}
}

/* ---------- tablet / phone ---------- */
@media (max-width:1000px){
  .areas{grid-template-columns:1fr}
  .row{grid-template-columns:1fr 1fr}
  .row ul{grid-column:1/-1;display:block}
  .row ul li{display:inline}
  .row ul li:not(:last-child)::after{content:", "}
  .route-text{grid-column:1/-1}
  .slip{grid-column:1/-1;max-width:560px}
  .faq h2{grid-column:1/-1}
  .faq .cols{grid-column:1/-1}
}
@media (max-width:700px){
  :root{--s-body:17px}
  .top nav a:not(:last-child){display:none}
  .hero h1{margin-top:16vh;font-size:clamp(64px,21vw,120px)}
  .hero-foot{flex-direction:column;align-items:flex-start;padding-bottom:28px;gap:20px}
  .intro{grid-template-columns:1fr;padding:96px var(--m)}
  
  .stair span:nth-child(2){padding-left:4vw}.stair span:nth-child(3){padding-left:8vw}.stair span:nth-child(4){padding-left:12vw}.stair span:nth-child(5){padding-left:16vw}
  .intro figure{grid-template-columns:1fr 1fr}
  .intro figcaption{grid-column:1/-1}
  .areas .cell{padding-top:96px;padding-bottom:72px;gap:40px}
  
  .cell-foot{flex-direction:column;align-items:flex-start}
  .row{grid-template-columns:1fr;gap:12px;padding:28px var(--m)}
  .band{height:72svh}
  .band-cap{flex-direction:column;align-items:flex-start}
  .band-cap p{text-align:left}
  .route,.ir,.places,.faq{padding-top:112px;padding-bottom:112px}
  .slip{padding:28px 20px 56px}
  .slip .total{margin:28px -20px 0;padding:10px 20px}
  .ir-head{display:block;margin-bottom:56px}
  .ir-head h2{margin-bottom:24px}
  .specs{grid-template-columns:1fr;gap:48px}
  .spec .num{font-size:clamp(48px,15vw,80px)}
  .duo{grid-template-columns:1fr;gap:48px}
  .faq .cols{columns:1}
  .crow{min-height:84px;padding-bottom:16px}
  .fcols{grid-template-columns:1fr 1fr;row-gap:32px}
}

/* ---------- multi-page additions ---------- */
.top nav a[aria-current=page]{color:var(--gold)}
.top nav .s{display:none}
.hero.sub h1{font-size:clamp(64px,min(13vw,24vh),210px);margin-top:10vh}
.about{background:var(--paper);color:var(--paper-ink);padding:140px var(--m);display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.about .who{grid-column:1/6;display:grid;gap:40px}
.about h2{font-size:var(--s-xl)}
.about .who img{width:100%;max-width:420px;aspect-ratio:4/5;object-fit:cover}
.about .txt{grid-column:7/13;display:grid;gap:18px;max-width:60ch}
.about .sig{font-family:var(--display);font-size:var(--s-lg);font-weight:700}
.about .sig small{display:block;font-family:var(--text);font-weight:400;font-size:var(--s-sm);margin-top:4px}
.pages{background:var(--bg);padding:0 0 0}
.pages a{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:40px var(--m);text-decoration:none;font-family:var(--display);font-weight:700;font-size:var(--s-xl);letter-spacing:-.025em;line-height:1.05;transition:color .2s,background-color .2s}
.pages a:nth-child(odd){background:var(--surface)}
.pages a:hover{color:var(--gold)}
.pages a span{font-family:var(--text);font-weight:400;font-size:var(--s-body);letter-spacing:0;color:var(--muted);max-width:34ch;text-align:right}
.biglist{background:var(--gold);color:var(--paper-ink);padding:140px var(--m)}
.biglist h2{font-size:var(--s-xl);margin-bottom:48px;max-width:20ch}
.biglist ul{list-style:none;columns:2;column-gap:48px;font-family:var(--display);font-weight:700;font-size:var(--s-lg);line-height:1.25}
.biglist li{break-inside:avoid;padding:6px 0}
.biglist p{margin-top:48px;max-width:62ch;font-weight:600}
.docs{background:var(--paper);color:var(--paper-ink);padding:140px var(--m);display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.docs h2{grid-column:1/5;font-size:var(--s-xl)}
.docs .list{grid-column:6/13;display:grid;gap:28px}
.docs .list div{display:grid;grid-template-columns:2fr 3fr;gap:24px}
.docs .list h3{font-size:var(--s-lg);line-height:1.15}
.region{background:var(--paper);color:var(--paper-ink);padding:140px var(--m)}
.region h2{font-size:var(--s-xl);margin-bottom:48px;max-width:18ch}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.strip img{aspect-ratio:4/5;object-fit:cover;width:100%}
.strip figcaption{margin-top:12px;font-size:var(--s-sm)}
.region>p{margin-top:40px;max-width:60ch}
@media (max-width:1000px){
  .strip{grid-template-columns:1fr 1fr}
  .about .who,.about .txt,.docs h2,.docs .list{grid-column:1/-1}
}
@media (max-width:700px){
  .top nav{gap:16px}
  .top nav a:not(:last-child){display:inline}
  .top nav .l{display:none}.top nav .s{display:inline}
  .top nav a.home{display:none}
  .hero.sub h1{font-size:clamp(48px,15vw,80px);margin-top:14vh}
  .about,.biglist,.docs,.region{padding-top:104px;padding-bottom:104px}
  .pages a{flex-direction:column;gap:8px;padding:32px var(--m)}
  .pages a span{text-align:left}
  .biglist ul{columns:1}
  .docs .list div{grid-template-columns:1fr;gap:6px}
}

/* ---------- botão fixo de WhatsApp ---------- */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:50;display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 24px 0 18px;border-radius:999px;background:var(--paper-ink);color:var(--gold);border:2px solid var(--gold);font-weight:600;font-size:var(--s-body);text-decoration:none;opacity:0;visibility:hidden;transform:translateY(24px);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s .35s,background-color .2s,color .2s}
.wa-float svg{width:24px;height:24px;flex:none}
.wa-float .s{display:none}
.wa-float.on{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s,background-color .2s,color .2s}
.wa-float:hover{background:var(--gold);color:var(--paper-ink)}
.wa-float:active{transform:scale(.97)}
html:not(.js) .wa-float{opacity:1;visibility:visible;transform:none;pointer-events:auto}
@media (max-width:700px){
  .wa-float{right:16px;bottom:16px;padding:0 20px 0 16px}
  .wa-float .l{display:none}.wa-float .s{display:inline}
}
@media (prefers-reduced-motion:reduce){.wa-float{transform:none}}

.doors{padding-top:120px}
.doors h2{font-size:var(--s-lg);padding:0 var(--m) 32px}
@media (max-width:700px){.doors{padding-top:88px}}

/* ---------- aviso de cookies ---------- */
.cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:720px;margin:0 auto;background:var(--paper);color:var(--paper-ink);padding:20px 24px;border-radius:12px;border:2px solid var(--gold);display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cookie p{font-size:var(--s-sm);max-width:52ch}
.cookie div{display:flex;gap:12px;align-items:center}
.cookie .btn{min-height:44px;padding:0 22px}
.cbtn{background:none;border:0;font:inherit;font-size:var(--s-sm);text-decoration:underline;cursor:pointer;color:inherit;min-height:44px}
/* ---------- página de texto ---------- */
.legal-page{background:var(--paper);color:var(--paper-ink);padding:140px var(--m) 120px}
.legal-page h2{font-size:var(--s-lg);margin:40px 0 12px}
.legal-page p,.legal-page li{max-width:70ch;margin-bottom:12px}
.legal-page ul{padding-left:20px}
