/* Mansão Mediterrâneo · site de apresentação (celular primeiro) */
:root{
  --river:#1F3A36;--river-deep:#162A27;--river-line:rgba(231,225,221,.16);
  --linen:#E7E1DD;--surface:#F5F2EF;--raised:#FCFAF8;--ink:#2A2420;--muted:#685C53;
  --on-river:#B8C2BE;--caramel:#97755A;--caramel-deep:#76583F;--caramel-light:#C9A98A;
  --line:#D3C8BF;--line-strong:#8F8176;
  --serif:'Cormorant Garamond','Gilda Display',Georgia,serif;--sans:Jost,'Avenir Next',system-ui,sans-serif;
  --pad:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--river-deep);color:var(--linen);font-family:var(--sans);-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,p{margin:0}
.wrap{width:100%;max-width:1440px;margin:0 auto;padding:0 var(--pad)}
.only-desk{display:none!important}
section[id]{scroll-margin-top:72px}

h2{font:400 34px/38px var(--serif);letter-spacing:-.01em;text-wrap:balance}
.h2-sm{font-size:28px;line-height:34px}
.lead{font:300 17px/27px var(--sans)}
.note{font:400 14px/21px var(--sans);color:var(--muted)}

/* Botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;border:1px solid transparent;font:500 16px/20px var(--sans);text-decoration:none;text-align:center;cursor:pointer;transition:transform .15s ease,background-color .2s ease}
.btn:active{transform:scale(.97)}
.btn--sm{min-height:44px;padding:0 20px;font-size:15px}
.btn--linen{background:var(--linen);color:var(--ink)}
.btn--linen:hover{background:var(--raised)}
.btn--caramel{background:var(--caramel-deep);color:var(--raised)}
.btn--caramel:hover{background:#654A34}
.btn--line{border-color:rgba(231,225,221,.5);color:var(--linen)}
.btn--line:hover{background:rgba(231,225,221,.08)}
.btn--line-dark{border-color:var(--line-strong);color:var(--ink)}
.icon-btn{all:unset;box-sizing:border-box;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;cursor:pointer}
.icon-btn--ring{border:1px solid rgba(231,225,221,.4)}
a:focus-visible,button:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--caramel-light);outline-offset:3px}

/* Menu do topo */
.nav{position:fixed;top:0;left:0;right:0;z-index:20;transition:background-color .3s ease,border-color .3s ease;border-bottom:1px solid transparent}
.nav-in{height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-right:12px}
.nav-logo img{width:150px;height:auto}
.nav-links,.nav-cta{display:none}
.nav.is-solid{background:rgba(22,42,39,.82);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--river-line)}

/* Abertura */
.hero{position:relative;height:100svh;min-height:640px;max-height:940px;overflow:hidden;background:var(--river-deep)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,42,39,.62) 0%,rgba(22,42,39,0) 22%,rgba(22,42,39,0) 40%,rgba(22,42,39,.78) 70%,#162A27 100%)}
.hero-in{position:absolute;left:0;right:0;bottom:120px}
.hero h1{font:400 36px/40px var(--serif);letter-spacing:-.01em;color:var(--raised);max-width:330px;text-wrap:balance}
.hero-row p{margin-top:18px;font:300 17px/26px var(--sans);color:var(--linen);max-width:340px}
.hero-btns{display:none}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.rise{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}

/* Ficha */
.facts{background:var(--river-deep);padding:8px 0 40px}
.facts-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.facts-in>div{display:flex;flex-direction:column;gap:4px}
.facts-in>div+div{padding-left:16px;border-left:1px solid var(--river-line)}
.facts b{font:400 40px/42px var(--serif);color:var(--caramel-light)}
.facts span{font:400 14px/19px var(--sans);color:var(--on-river)}

/* O seu fim de semana */
.weekend{background:var(--river);padding:56px 0 24px}
.weekend-head{display:flex;flex-direction:column;gap:14px;max-width:340px}
.weekend-head h2{color:var(--raised)}
.weekend-head p{font:300 17px/27px var(--sans);color:var(--on-river)}
.timeline{position:relative;list-style:none;margin:44px 0 0;padding:0 0 0 28px}
.tl-line,.tl-fill{position:absolute;left:4px;top:10px;bottom:40px;width:1px;background:var(--river-line)}
.tl-fill{background:var(--caramel-light);transform-origin:top;transform:scaleY(1)}
@supports (animation-timeline: view()){
  .tl-fill{animation:fill linear both;animation-timeline:view();animation-range:entry 30% cover 70%}
  @keyframes fill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
}
.timeline li{position:relative;padding-bottom:48px}
.timeline li::before{content:"";position:absolute;left:-28px;top:18px;width:9px;height:9px;border-radius:999px;background:var(--river);border:1px solid var(--caramel-light)}
.tl-day{font:400 15px/20px var(--sans);color:var(--on-river)}
.tl-time{margin-top:2px;font:400 64px/64px var(--serif);letter-spacing:-.02em;color:var(--caramel-light)}
.tl-text{margin:14px 0 18px;font:300 18px/28px var(--sans);color:var(--linen);max-width:300px}
.thumb{all:unset;box-sizing:border-box;display:block;position:relative;overflow:hidden;border-radius:4px;cursor:zoom-in;width:100%;background:#2B4641}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.thumb picture{display:block;width:100%;height:100%}
.thumb:hover img{transform:scale(1.035)}
.timeline .thumb{aspect-ratio:4/5}
.timeline .thumb--wide{aspect-ratio:4/3}
.cap{display:none}

/* A casa */
.house{background:var(--river);padding:40px 0 64px}
.house-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.house-head h2{color:var(--raised)}
.house-head>span{font:400 14px/20px var(--sans);color:var(--on-river)}
.scroller{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad);scroll-padding:0 var(--pad);scrollbar-width:none}
.scroller::-webkit-scrollbar{display:none}
.gallery{margin-top:20px}
.gcol{display:contents}
.gallery figure{margin:0;flex:0 0 76%;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}
.gallery .thumb{aspect-ratio:4/5}
.gallery figcaption{font:400 14px/20px var(--sans);color:var(--on-river)}

/* Simulador */
.calc{position:relative;margin-top:-28px;border-radius:28px 28px 0 0;background:var(--linen);color:var(--ink);padding:56px 0 48px}
.calc .lead{margin-top:12px;color:var(--muted)}
.seg{margin-top:28px;display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface);border:1px solid var(--line);max-width:420px}
.seg button{all:unset;box-sizing:border-box;flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;font:500 15px/20px var(--sans);cursor:pointer;color:var(--ink);transition:background-color .2s ease,color .2s ease}
.seg button[aria-checked="true"]{background:var(--ink);color:var(--raised)}
.steppers{margin-top:12px}
.step-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.step-row b{display:block;font:500 16px/22px var(--sans)}
.step-row small{display:block;font:400 14px/20px var(--sans);color:var(--muted)}
.step-ctl{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.step-ctl output{min-width:30px;text-align:center;font:400 24px/28px var(--serif);font-variant-numeric:tabular-nums}
.step-btn{all:unset;box-sizing:border-box;width:44px;height:44px;border-radius:999px;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s ease,background-color .2s ease}
.step-btn:hover{background:rgba(42,36,32,.05)}
.step-btn:active{transform:scale(.92)}
.step-btn[disabled]{opacity:.3;cursor:not-allowed}
.calc .note{margin-top:18px}
.calc-result{margin-top:24px}
.total{padding:24px;border-radius:20px;background:var(--river);color:var(--linen);display:flex;flex-direction:column;gap:6px}
.total .t-label,.total .t-pp,.total .t-rest{font:400 15px/22px var(--sans);color:var(--on-river)}
.total .t-val{font:400 52px/56px var(--serif);letter-spacing:-.02em;color:var(--raised);font-variant-numeric:tabular-nums}
.total .t-row{display:flex;justify-content:space-between;gap:12px;font:400 15px/22px var(--sans)}
.total .t-row:first-of-type{margin-top:14px;padding-top:14px;border-top:1px solid var(--river-line)}
.total .t-row b{font-weight:500;font-variant-numeric:tabular-nums}
.total .t-rest{display:flex;justify-content:space-between}
.total .btn{margin-top:16px;width:100%}
.big-group{font:400 26px/32px var(--serif);color:var(--raised)}

/* Quartos */
.rooms{background:var(--surface);color:var(--ink);padding:56px 0 48px}
.rooms-head{display:flex;flex-direction:column;gap:12px}
.rooms-head .lead{color:var(--muted)}
.rooms-grid{margin-top:24px}
.rooms-grid figure{margin:0;flex:0 0 82%;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}
.rooms-grid .thumb{aspect-ratio:4/3}
.rooms-grid figcaption b{display:block;font:400 20px/26px var(--serif)}
.rooms-grid figcaption span{display:block;font:400 14px/20px var(--sans);color:var(--muted)}

/* Incluso */
.included{background:var(--surface);color:var(--ink);padding:8px 0 56px}
.included ul{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
.included li{padding:14px 0;border-top:1px solid var(--line);font:400 16px/22px var(--sans)}
.included .note{margin-top:12px}

/* Vista de cima */
.drone{position:relative;height:640px;overflow:hidden;background:var(--river-deep)}
.drone>img,.drone>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.drone-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,42,39,.1) 30%,rgba(22,42,39,.9) 100%)}
.play{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:999px;background:rgba(252,250,248,.94);display:flex;align-items:center;justify-content:center}
.drone-in{position:absolute;left:0;right:0;bottom:36px;display:flex;flex-direction:column;gap:10px}
.drone-in h2{color:var(--raised)}
.drone-in p{font:300 17px/27px var(--sans)}

/* Como reservar */
.book{background:var(--river);padding:56px 0}
.book h2{color:var(--raised)}
.book-btns{display:flex;flex-direction:column;gap:10px;margin-top:28px;order:3}
.book-head{display:flex;flex-direction:column}
.steps{list-style:none;margin:28px 0 0;padding:0}
.steps li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:18px 0;border-top:1px solid var(--river-line)}
.steps .n{font:400 30px/32px var(--serif);color:var(--caramel-light)}
.steps b{display:block;font:500 17px/24px var(--sans);color:var(--raised)}
.steps li>span>span{display:block;margin-top:4px;font:300 16px/25px var(--sans);color:var(--on-river)}
.book .wrap{display:flex;flex-direction:column}
.book .book-head{display:contents}
.book .steps{order:2}

/* Como chegar e perguntas */
.info{background:var(--surface);color:var(--ink);padding:56px 0}
.h2-md{font-size:34px;line-height:38px}
.arrive .lead{margin-top:12px;color:var(--muted)}
.trips{margin:24px 0 28px;display:flex;flex-direction:column;gap:16px}
.trip-top{display:flex;justify-content:space-between;gap:12px;font:400 16px/22px var(--sans)}
.trip-top span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}
.trip-bar{margin-top:8px;height:3px;border-radius:3px;background:var(--line)}
.trip-bar i{display:block;height:3px;border-radius:3px;background:var(--caramel)}
.arrive .btn{width:100%}
.faq{margin-top:56px}
.faq h2{margin-bottom:12px}
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 0;cursor:pointer;font:400 21px/28px var(--serif);color:var(--ink)}
.plus{flex:0 0 auto;width:28px;height:28px;position:relative}
.plus::before,.plus::after{content:"";position:absolute;left:7px;right:7px;top:13px;height:1.5px;background:var(--caramel-deep);transition:transform .25s ease}
.plus::after{transform:rotate(90deg)}
.faq-q[aria-expanded="true"] .plus::after{transform:rotate(0)}
.faq-a{margin:-4px 0 20px;font:300 17px/27px var(--sans);color:var(--muted)}

/* Rodapé */
.foot{background:var(--river-deep);padding:48px 0 136px}
.foot-in{display:flex;flex-direction:column;gap:22px}
.foot img{width:200px;height:auto}
.foot p{margin-top:22px;font:300 16px/25px var(--sans);color:var(--on-river);max-width:420px}
.foot-links{display:flex;flex-direction:column;gap:4px;font:400 16px/24px var(--sans)}
.foot-links a{padding:10px 0}

/* Barra fixa (celular) */
.bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:15;padding:10px 10px 10px 20px;border-radius:999px;background:rgba(252,250,248,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 30px rgba(22,42,39,.28);display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink)}
.bar span{display:block;font:400 12px/16px var(--sans);color:var(--muted);white-space:nowrap}
.bar b{font:400 21px/25px var(--serif);font-weight:400;white-space:nowrap}
.bar small{font:400 13px/16px var(--sans);color:var(--muted)}
.bar>div{min-width:0}
.bar .btn{min-height:50px;padding:0 18px;flex:0 0 auto;font-size:15px}

/* Camadas: menu e foto em tela cheia */
.sheet{position:fixed;inset:0;z-index:40;animation:fade .25s ease both}
.sheet[hidden]{display:none}
@keyframes fade{from{opacity:0}to{opacity:1}}
.menu{background:var(--river-deep);padding:12px 24px calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column}
.menu-top{display:flex;align-items:center;justify-content:space-between;margin-right:-12px}
.menu-top img{width:150px;height:auto}
.menu-links{margin-top:40px;display:flex;flex-direction:column}
.menu-links a{padding:14px 0;border-bottom:1px solid var(--river-line);font:400 30px/36px var(--serif);text-decoration:none}
.menu-btns{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.lightbox{background:#0F1E1C;display:flex;flex-direction:column}
.lb-top{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 24px;font:400 15px/20px var(--sans);font-variant-numeric:tabular-nums}
.lb-img{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 0}
.lb-img img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px}
.lb-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px calc(28px + env(safe-area-inset-bottom))}
.lb-bottom>span{font:400 22px/28px var(--serif)}
.lb-bottom>div{display:flex;gap:8px}
body.lock{overflow:hidden}

/* ---------- Computador ---------- */
@media (min-width:1024px){
  :root{--pad:80px}
  .only-desk{display:revert!important}
  .only-mob{display:none!important}
  section[id]{scroll-margin-top:76px}
  h2{font-size:52px;line-height:56px;letter-spacing:-.015em}
  .h2-sm{font-size:40px;line-height:46px}
  .h2-md{font-size:44px;line-height:50px}
  .lead{font-size:19px;line-height:30px}

  .nav{background:rgba(22,42,39,.55);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--river-line)}
  .nav-in{height:76px;padding-right:var(--pad);justify-content:center;gap:64px}
  .nav-logo img{width:170px}
  .nav-links{display:flex;gap:28px}
  .nav-links a{font:400 15px/20px var(--sans);text-decoration:none;padding:12px 2px;border-bottom:1px solid transparent;transition:border-color .2s ease}
  .nav-links a:hover{border-bottom-color:var(--caramel-light)}
  .nav-cta{display:flex;align-items:center;gap:20px}
  .nav-price{font:400 14px/18px var(--sans);color:var(--on-river);white-space:nowrap}
  .nav-price b{font:400 19px/22px var(--serif);color:var(--raised)}
  .nav-burger{display:none}

  .hero{height:100vh;max-height:none;min-height:680px}
  .hero-shade{background:linear-gradient(90deg,rgba(22,42,39,.82) 0%,rgba(22,42,39,.35) 45%,rgba(22,42,39,0) 70%),linear-gradient(180deg,rgba(22,42,39,.45) 0%,rgba(22,42,39,0) 25%,rgba(22,42,39,0) 65%,#162A27 100%)}
  .hero-in{bottom:88px}
  .hero h1{font-size:62px;line-height:66px;letter-spacing:-.015em;max-width:640px}
  .hero-row{margin-top:32px}
  .hero-row p{display:none}
  .hero-btns{display:flex;gap:12px}

  .facts{padding:8px 0 72px}
  .facts-in{grid-template-columns:repeat(4,minmax(0,1fr))}
  .facts-in>div+div{padding-left:28px}
  .facts b{font-size:56px;line-height:58px}
  .facts span{font-size:16px;line-height:22px;margin-top:2px}

  .weekend{padding:120px 0 72px}
  .weekend-in{display:grid;grid-template-columns:420px minmax(0,1fr);gap:96px;align-items:start}
  .weekend-head{position:sticky;top:148px;gap:20px;max-width:none}
  .weekend-head p{font-size:19px;line-height:30px}
  .weekend-head .btn{align-self:flex-start;margin-top:12px}
  .timeline{margin:0;padding-left:56px}
  .tl-line,.tl-fill{top:14px;bottom:56px}
  .timeline li{padding-bottom:88px}
  .timeline li::before{left:-56px;top:24px;width:11px;height:11px}
  .tl-day{font-size:16px;line-height:22px}
  .tl-time{margin-top:4px;font-size:104px;line-height:100px;letter-spacing:-.03em}
  .tl-text{margin:22px 0 28px;font-size:21px;line-height:32px;max-width:520px}
  .timeline .thumb,.timeline .thumb--wide{aspect-ratio:16/10}

  .house{padding:40px 0 128px}
  .house-head>span{font-size:15px}
  .gallery{margin:36px auto 0;max-width:1440px;padding:0 var(--pad);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start;overflow:visible}
  .gcol{display:flex;flex-direction:column;gap:14px;margin-top:var(--off,0)}
  .gallery figure{flex:none}
  .gallery figcaption{display:none}
  .gallery .r34{aspect-ratio:3/4}
  .gallery .r45{aspect-ratio:4/5}
  .cap{display:block;position:absolute;left:16px;bottom:14px;padding:6px 12px;border-radius:999px;background:rgba(22,42,39,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--linen);font:400 14px/18px var(--sans);opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}
  .thumb:hover .cap,.thumb:focus-visible .cap{opacity:1;transform:none}

  .calc{margin-top:-40px;border-radius:40px 40px 0 0;padding:120px 0}
  .calc-in{display:grid;grid-template-columns:minmax(0,1fr) 480px;gap:96px;align-items:start}
  .calc .lead{margin-top:16px}
  .seg{margin-top:40px}
  .seg button{min-height:46px}
  .step-row{padding:18px 0;gap:24px}
  .step-row b{font-size:17px;line-height:24px}
  .step-row small{font-size:15px;line-height:21px}
  .step-ctl{gap:14px}
  .step-ctl output{min-width:36px;font-size:28px;line-height:32px}
  .calc .note{font-size:15px;line-height:23px;max-width:560px}
  .calc-result{margin-top:0;position:sticky;top:124px}
  .total{padding:40px;border-radius:28px;gap:8px;box-shadow:0 30px 60px -30px rgba(22,42,39,.55)}
  .total .t-val{font-size:76px;line-height:80px}
  .total .t-row,.total .t-rest{font-size:16px;line-height:24px}
  .total .t-row:first-of-type{margin-top:20px;padding-top:20px}
  .total .btn{margin-top:24px}

  .rooms{padding:120px 0 64px}
  .rooms-head{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:end}
  .rooms-grid{margin:48px auto 0;max-width:1440px;padding:0 var(--pad);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;overflow:visible}
  .rooms-grid figure{flex:none;gap:14px}
  .rooms-grid .thumb{aspect-ratio:4/5}
  .rooms-grid figcaption b{font-size:22px;line-height:28px}
  .rooms-grid figcaption span{font-size:15px;line-height:21px}

  .included{padding:56px 0 120px}
  .included-in{display:grid;grid-template-columns:420px minmax(0,1fr);gap:96px}
  .included ul{margin:0;column-gap:48px}
  .included li{padding:18px 0;font-size:19px;line-height:26px}
  .included .note{font-size:16px;line-height:25px;margin-top:16px}

  .drone{height:760px}
  .play{top:44%;width:96px;height:96px}
  .drone-in{bottom:64px;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:48px}
  .drone-in p{font-size:19px;line-height:30px;max-width:560px;text-align:right}

  .book{padding:120px 0}
  .book .wrap{display:block}
  .book .book-head{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:48px}
  .book-btns{flex-direction:row;gap:12px;margin:0}
  .steps{margin-top:56px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
  .steps li{display:flex;flex-direction:column;gap:14px;padding:28px 0 0}
  .steps .n{font-size:56px;line-height:56px}
  .steps b{font-size:19px;line-height:26px}
  .steps li>span>span{font-size:17px;line-height:27px;margin-top:14px}

  .info{padding:120px 0}
  .info-in{display:grid;grid-template-columns:460px minmax(0,1fr);gap:112px;align-items:start}
  .arrive .lead{font-size:18px;line-height:28px}
  .trips{margin:32px 0 36px;gap:20px}
  .trip-top{font-size:17px;line-height:24px}
  .arrive .btn{width:auto}
  .faq{margin-top:0}
  .faq h2{margin-bottom:20px}
  .faq-q{padding:22px 0;font-size:23px;line-height:30px;gap:24px}
  .faq-a{margin:-6px 0 24px;font-size:18px;line-height:29px;max-width:640px}

  .foot{padding:88px 0 72px}
  .foot-in{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:48px}
  .foot img{width:240px}
  .foot p{font-size:17px;line-height:27px}
  .foot-links{flex-direction:row;gap:36px;font-size:17px}

  .bar,.menu{display:none!important}
  .lightbox{display:grid;grid-template-columns:96px minmax(0,1fr) 96px;grid-template-rows:76px minmax(0,1fr) 88px}
  .lightbox[hidden]{display:none}
  .lb-top{grid-column:1/4;padding:0 26px 0 40px}
  .lb-img{grid-column:2;grid-row:2}
  .lb-bottom{grid-column:1/4;grid-row:2/4;display:contents}
  .lb-bottom>span{grid-column:2;grid-row:3;align-self:center;text-align:center;font-size:26px;line-height:32px}
  .lb-bottom>div{display:contents}
  [data-lb-prev]{grid-column:1;grid-row:2;justify-self:center;align-self:center;width:56px;height:56px}
  [data-lb-next]{grid-column:3;grid-row:2;justify-self:center;align-self:center;width:56px;height:56px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rise,.sheet,.tl-fill{animation:none}
  .thumb img{transition:none}
}

/* Diferenciais */
.diffs{background:var(--surface);color:var(--ink);padding:56px 0 64px}
.diffs-head{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.diffs-grid{display:grid;grid-template-columns:1fr;gap:36px}
.diff{display:flex;flex-direction:column;gap:12px;min-width:0}
.diff .thumb{aspect-ratio:4/5}
.diff h3{margin:4px 0 0;font:400 25px/30px var(--serif)}
.diff p{margin:0;font:400 16px/25px var(--sans);color:var(--muted)}
.diff-ph{aspect-ratio:4/5;border-radius:4px;background:var(--river);color:var(--on-river);display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font:500 13px/18px var(--sans);letter-spacing:.12em;text-transform:uppercase}
@media (min-width:1024px){
  .diffs{padding:120px 0}
  .diffs-head{flex-direction:row;justify-content:space-between;align-items:end;margin-bottom:48px}
  .diffs-head .lead{max-width:420px}
  .diffs-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
}

/* A casa em vídeo */
.clips{background:var(--river-deep);color:var(--linen);padding:56px 0 64px}
.clips-head{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.clips-head .lead{color:var(--on-river)}
.clips-grid figure{margin:0;flex:0 0 68%;scroll-snap-align:start;display:flex;flex-direction:column;gap:12px}
.clip{aspect-ratio:9/16;overflow:hidden;background:var(--river)}
.clip video{width:100%;height:100%;object-fit:cover}
.clips-grid figcaption{font:400 19px/24px var(--serif)}
@media (min-width:1024px){
  .clips{padding:120px 0}
  .clips-head{flex-direction:row;justify-content:space-between;align-items:end;margin-bottom:48px}
  .clips-head .lead{max-width:440px}
  .clips-grid{margin:0 auto;max-width:1440px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;overflow:visible}
  .clips-grid figure{flex:none}
  .clips-grid figcaption{font-size:22px;line-height:28px}
}

/* ===== Refinamento de direção de arte (06/11) ===== */
:where(a,button,input,summary,[tabindex]):focus-visible{outline:2px solid var(--caramel-light);outline-offset:3px}

/* Espaço de festa: painel tipográfico enquanto não há foto */
.diff-type{aspect-ratio:4/5;border-radius:4px;background:var(--river);color:var(--linen);display:flex;flex-direction:column;justify-content:flex-end;gap:14px;padding:28px;position:relative;overflow:hidden}
.diff-type::before{content:"";position:absolute;inset:18px;border:1px solid var(--river-line);border-radius:2px;pointer-events:none}
.dt-k{font:500 12px/16px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--caramel-light)}
.dt-t{font:300 34px/1.05 var(--serif);color:var(--raised);max-width:11ch}
.dt-l{font:400 14px/20px var(--sans);color:var(--on-river)}

/* Ficha: número em cima, descrição embaixo, tamanho único */
.facts b{font-weight:300}
.facts-in{column-gap:0}
.facts-in>div{min-width:0}
.facts span{max-width:22ch}

/* Um só padrão de cantos: retos nas fotos e cards, pílula só nos botões */
.calc{margin-top:0;border-radius:0}
.total{border-radius:6px}

/* Rodapé com chamada */
.foot-links .btn{align-self:flex-start;margin-bottom:8px}

/* Entrada suave das seções */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Tablet (640–1023 px) */
@media (min-width:640px) and (max-width:1023px){
  :root{--pad:40px}
  h2{font-size:42px;line-height:46px}
  .hero h1{font-size:48px;line-height:52px;max-width:520px}
  .hero-row p{max-width:520px;font-size:18px;line-height:28px}
  .facts b{font-size:48px;line-height:50px}
  .diffs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px}
  .gallery figure{flex-basis:44%}
  .clips-grid figure{flex-basis:38%}
  .rooms-grid figure{flex-basis:46%}
  .timeline .thumb,.timeline .thumb--wide{aspect-ratio:16/10;max-width:620px}
  .tl-text{max-width:520px}
  .drone{height:560px}
  .included ul{column-gap:40px}
  .steps li{grid-template-columns:56px minmax(0,1fr)}
}

@media (min-width:1024px){
  /* Menu com reserva sempre visível */
  .nav-in{justify-content:space-between;gap:40px}
  .nav-links{gap:26px}
  .btn-nav{min-height:44px;padding:0 22px;font-size:14px}

  /* Abertura: título maior e frase de apoio */
  .hero h1{font-size:clamp(64px,5.4vw,84px);line-height:1;letter-spacing:-.02em;max-width:15ch}
  .hero-row{display:flex;flex-direction:column;gap:28px}
  .hero-row p{display:block;margin-top:0;max-width:46ch;font-size:19px;line-height:30px;color:var(--linen)}
  .hero-in{bottom:120px}

  /* Ficha alinhada */
  .facts-in>div.only-desk{display:flex!important}
  .facts b{font-size:clamp(40px,3.4vw,52px);line-height:1.05;white-space:nowrap}
  .facts span{font-size:15px;line-height:22px}

  /* Galeria em grade regular */
  .gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
  .gcol{display:contents}
  .gallery .r34,.gallery .r45,.gallery .thumb{aspect-ratio:4/5}

  .diff-type{padding:36px}
  .dt-t{font-size:clamp(30px,2.6vw,40px)}

  .foot-links{align-items:center}
  .foot-links .btn{margin:0}
}

/* Menu esmaecido ao rolar (computador): volta ao normal com o mouse ou o teclado */
@media (min-width:1024px) and (hover:hover){
  .nav{transition:opacity .45s ease,background-color .45s ease,border-color .45s ease}
  .nav.is-dim{opacity:.28;background:rgba(22,42,39,.35);border-bottom-color:transparent}
  .nav.is-dim:hover,.nav.is-dim:focus-within{opacity:1;background:rgba(22,42,39,.82);border-bottom-color:var(--river-line)}
}
@media (prefers-reduced-motion:reduce){.nav{transition:none}}

/* Rodapé completo */
.foot{padding:56px 0 128px}
.foot-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 24px}
.foot-brand{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.foot-brand p{margin:0}
.foot-col{display:flex;flex-direction:column;gap:2px}
.foot-col h3{margin:0 0 10px;font:500 12px/16px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--caramel-light)}
.foot-col a{padding:8px 0;font:400 16px/22px var(--sans);color:var(--linen);text-decoration:none;transition:color .2s ease}
.foot-col a:hover{color:var(--caramel-light)}
.foot-col:last-child{grid-column:1/-1}
.soc{display:inline-flex;align-items:center;gap:12px}
.soc svg{flex:0 0 auto;width:22px;height:22px;padding:9px;box-sizing:content-box;border:1px solid var(--river-line);border-radius:999px;transition:border-color .2s ease,background-color .2s ease}
.soc:hover svg{border-color:var(--caramel-light);background:rgba(201,169,138,.08)}
.foot-addr{margin-top:8px;font:300 15px/22px var(--sans);color:var(--on-river)}
.foot-legal{margin-top:48px;padding-top:24px;border-top:1px solid var(--river-line);display:flex;flex-direction:column;gap:12px;font:400 14px/20px var(--sans);color:var(--on-river)}
.foot-legal-links{display:flex;flex-wrap:wrap;gap:8px 24px}
.foot-legal a{color:var(--on-river);text-decoration:none;padding:6px 0}
.foot-legal a:hover{color:var(--linen);text-decoration:underline;text-underline-offset:4px}
@media (min-width:640px){
  .foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-col:last-child{grid-column:auto}
}
@media (min-width:1024px){
  .foot{padding:96px 0 40px}
  .foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:56px}
  .foot-brand{grid-column:auto}
  .foot-brand img{width:220px}
  .foot-legal{margin-top:72px;flex-direction:row;justify-content:space-between;align-items:center}
}

/* Assinatura Fora do Papel */
.fdp{display:inline-flex;align-items:center;gap:8px;padding:6px 0;color:var(--on-river);text-decoration:none!important;transition:color .2s ease}
.fdp-by{font:400 13px/18px var(--sans)}
.fdp-mark{display:block;color:#F5F5F2;flex:0 0 auto}
.fdp-name{font:800 15px/1 'Bricolage Grotesque',var(--sans);letter-spacing:-.03em;color:#F5F5F2}
.fdp:hover .fdp-name{color:#FFB020}
@media (min-width:1024px){
  .foot-legal{display:grid;grid-template-columns:1fr auto 1fr;gap:24px}
  .foot-legal-links{justify-content:center}
  .fdp{justify-self:end}
}

/* Botões que só aparecem no computador mantêm o texto centralizado */
@media (min-width:1024px){
  .btn.only-desk{display:inline-flex!important}
}

/* Simulador: explicação do feriado */
.seg{max-width:480px}
.seg-hint{margin:10px 0 0;font:400 14px/21px var(--sans);color:var(--muted);max-width:480px}

/* Menu esmaecido: a barra continua sólida e só o conteúdo dela esmaece, para não "fantasmar" sobre a página */
@media (min-width:1024px) and (hover:hover){
  .nav.is-dim{opacity:1;background:rgba(22,42,39,.88);border-bottom-color:transparent}
  .nav .nav-in{transition:opacity .45s ease}
  .nav.is-dim .nav-in{opacity:.35}
  .nav.is-dim:hover .nav-in,.nav.is-dim:focus-within .nav-in{opacity:1}
}

/* Como chegar com mapa animado */
.arrive-sec{background:var(--surface);color:var(--ink);padding:56px 0 24px}
.arrive-grid{display:flex;flex-direction:column;gap:32px}
.kicker{display:block;margin-bottom:12px;font:500 12px/16px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--caramel-deep)}
.arrive .lead{margin-top:14px;color:var(--muted)}
.trips-label{margin:28px 0 0;font:500 12px/16px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.arrive .trips{margin-top:14px}
.map-card{margin:0;position:relative;border-radius:4px;overflow:hidden;background:var(--river-deep);aspect-ratio:4/5;max-height:620px}
.map{position:absolute;inset:0}
.map--off{background:linear-gradient(160deg,#1F3A36,#162A27)}
.map-ui{position:absolute;left:16px;right:16px;top:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;pointer-events:none}
.map-pin-label{padding:8px 14px;border-radius:999px;background:rgba(22,42,39,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--linen);font:400 13px/18px var(--sans);letter-spacing:.02em}
.map-replay{all:unset;pointer-events:auto;cursor:pointer;padding:8px 14px;border-radius:999px;background:var(--raised);color:var(--ink);font:500 13px/18px var(--sans);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.map-replay:focus-visible{outline:2px solid var(--caramel-light);outline-offset:3px}
.mk-city{display:flex;flex-direction:column;align-items:center;padding:6px 10px;border-radius:4px;background:rgba(22,42,39,.85);border:1px solid rgba(201,169,138,.35);color:var(--linen);font:400 12px/16px var(--sans);text-align:center;transition:opacity .6s ease;white-space:nowrap}
.mk-city b{font:400 15px/18px var(--serif);color:var(--raised)}
.mk-city span{color:var(--caramel-light)}
.is-close .mk-city{opacity:0;pointer-events:none}
.mk-house{display:flex;flex-direction:column;align-items:center;gap:8px}
.mk-house-dot{width:16px;height:16px;border-radius:999px;background:var(--caramel-light);box-shadow:0 0 0 6px rgba(201,169,138,.25),0 0 0 14px rgba(201,169,138,.1);order:2}
.mk-house-tag{order:1;padding:8px 14px;border-radius:999px;background:var(--raised);color:var(--ink);font:400 16px/20px var(--serif);white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .6s ease,transform .6s ease}
.is-close .mk-house-tag{opacity:1;transform:none}
@media (prefers-reduced-motion:no-preference){.is-close .mk-house-dot{animation:pulse 2.4s ease-out infinite}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(201,169,138,.45),0 0 0 0 rgba(201,169,138,.2)}100%{box-shadow:0 0 0 14px rgba(201,169,138,0),0 0 0 28px rgba(201,169,138,0)}}
.maplibregl-ctrl-attrib{font-size:10px!important;background:rgba(245,242,239,.75)!important}
.info{padding-top:40px}
@media (min-width:640px) and (max-width:1023px){.map-card{aspect-ratio:16/11}}
@media (min-width:1024px){
  .arrive-sec{padding:120px 0 40px}
  .arrive-grid{display:grid;grid-template-columns:420px minmax(0,1fr);gap:80px;align-items:center}
  .map-card{aspect-ratio:auto;height:620px;max-height:none}
  .info{padding-top:80px}
  .info-in{display:block;max-width:880px}
}
.map-card .map{position:absolute;inset:0;width:100%;height:100%}
.map-replay[hidden]{display:none}
.map-pin-label,.map-replay{white-space:nowrap}
@media (max-width:639px){.map-pin-label{display:none}.map-ui{justify-content:flex-end}}

/* Foto em tela cheia (refeita) */
.lightbox{display:flex;flex-direction:column;background:#0D1A18;overflow:hidden}
.lightbox[hidden]{display:none}
.lb-bg{position:absolute;inset:-60px;background-size:cover;background-position:center;filter:blur(48px) saturate(1.15);opacity:.32;transform:scale(1.08);pointer-events:none}
.lb-top,.lb-stage,.lb-thumbs{position:relative;z-index:1}
.lb-top{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 24px;font:400 14px/20px var(--sans);letter-spacing:.08em;color:var(--on-river);font-variant-numeric:tabular-nums}
.lb-stage{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;gap:20px;padding:0 16px}
.lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0}
.lb-fig img{display:block;max-width:100%;max-height:calc(100svh - 210px);width:auto;height:auto;object-fit:contain;border-radius:2px;box-shadow:0 30px 80px rgba(0,0,0,.5);transition:opacity .35s ease}
.lb-fig img.is-loading{opacity:0}
.lb-fig figcaption{font:400 22px/28px var(--serif);color:var(--linen);text-align:center}
.lb-nav{display:none!important}
.lb-thumbs{flex:0 0 auto;display:flex;gap:8px;overflow-x:auto;padding:14px 16px calc(18px + env(safe-area-inset-bottom));scrollbar-width:none;justify-content:flex-start}
.lb-thumbs::-webkit-scrollbar{display:none}
.lb-th{all:unset;box-sizing:border-box;flex:0 0 auto;width:56px;height:56px;border-radius:2px;overflow:hidden;cursor:pointer;opacity:.45;outline:1px solid transparent;outline-offset:2px;transition:opacity .2s ease,outline-color .2s ease}
.lb-th img{width:100%;height:100%;object-fit:cover;display:block}
.lb-th:hover{opacity:.8}
.lb-th.is-on{opacity:1;outline-color:var(--caramel-light)}
.lb-th:focus-visible{outline:2px solid var(--caramel-light)}
@media (min-width:1024px){
  .lightbox{display:flex}
  .lightbox[hidden]{display:none}
  .lb-top{padding:16px 26px 8px 40px}
  .lb-stage{gap:32px;padding:0 32px}
  .lb-nav{display:flex!important;flex:0 0 auto;width:56px;height:56px;background:rgba(13,26,24,.4);transition:background-color .2s ease,border-color .2s ease}
  .lb-nav:hover{background:rgba(201,169,138,.15);border-color:var(--caramel-light)}
  .lb-fig img{max-height:calc(100vh - 250px)}
  .lb-fig figcaption{font-size:26px;line-height:32px}
  .lb-thumbs{justify-content:center;padding:18px 40px 26px}
  .lb-th{width:72px;height:72px}
}

.map-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Selo das imagens de projeto (renders) */
.diff .thumb{position:relative}
.thumb-tag{position:absolute;left:12px;top:12px;padding:6px 10px;border-radius:999px;background:rgba(22,42,39,.78);color:var(--linen);font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
