/* =========================================================
   ARBORIUM ALPHAGRAN — hotsite
   Paleta e tipografia extraídas do book oficial:
   vinho #523537 · branco · preto · madeira · areia
   Playfair Display (títulos) · Archivo (textos) · Montserrat (números)
   ========================================================= */
/* fontes do book, hospedadas localmente (licença SIL OFL) */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 500;font-display:swap;src:url("../fonts/playfair-display-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 500;font-display:swap;src:url("../fonts/playfair-display-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/archivo-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/archivo-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/archivo-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/montserrat-latin-500-normal.woff2") format("woff2")}
:root{
  --wine:#523537;
  --wine-deep:#3d2628;
  --wine-soft:#6b4a4c;
  --ink:#1b1513;
  --ink-soft:#4b423e;
  --wood:#b9824f;
  --wood-light:#d9b48a;
  --sand:#f4efe7;
  --sand-2:#e9e0d2;
  --white:#fff;
  --line:rgba(27,21,19,.14);
  --line-light:rgba(255,255,255,.22);
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --num:"Montserrat","Archivo",sans-serif;
  --ease:cubic-bezier(.22,.8,.2,1);
  --wrap:1280px;
  --gut:clamp(20px,4.500vw,56px);
  --header-h:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.7;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-loading,body.is-locked{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,p,figure,blockquote{margin:0}
strong,b{font-weight:600}
:focus-visible{outline:2px solid var(--wood);outline-offset:3px}
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut)*2);margin-inline:auto;padding-inline:var(--gut)}
.section{padding-block:clamp(72px,10vw,150px);position:relative}

/* ---------- tipografia ---------- */
.kicker{font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--wine);margin-bottom:22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.kicker::before{content:"";width:44px;height:1px;background:currentColor;flex:none}
.kicker--light{color:var(--wood-light)}
.title{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.200vw,58px);line-height:1.120;letter-spacing:-.010em;color:var(--ink);margin-bottom:28px;text-wrap:balance}
.title em{font-style:italic;color:var(--wine)}
.title--light{color:var(--white)}
.title--light em{color:var(--wood-light)}
.text{color:var(--ink-soft);max-width:56ch;margin-bottom:18px}
.text--light{color:rgba(255,255,255,.800)}
.note{font-size:12px;color:#8a807a;margin-top:28px;letter-spacing:.020em}
.section-head{max-width:820px;margin-bottom:clamp(36px,5vw,64px)}
.section-head--split{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.section-head--split>div:first-child{max-width:820px}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.200em;text-transform:uppercase;padding:19px 30px;border:1px solid transparent;border-radius:0;position:relative;overflow:hidden;transition:color .45s var(--ease),border-color .45s var(--ease),background-color .45s var(--ease),transform .45s var(--ease);isolation:isolate;text-align:center;line-height:1.300}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.500;transition:transform .45s var(--ease);flex:none}
.btn .ico-wa{fill:currentColor;stroke:none;width:20px;height:20px}
.btn:hover svg:not(.ico-wa){transform:translateX(5px)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn--light{background:var(--white);color:var(--wine)}
.btn--light::before{background:var(--wood)}
.btn--light:hover{color:var(--white)}
.btn--ghost{border-color:rgba(255,255,255,.550);color:var(--white)}
.btn--ghost::before{background:var(--white)}
.btn--ghost:hover{color:var(--wine);border-color:var(--white)}
.btn--dark-ghost{border-color:var(--ink);color:var(--ink)}
.btn--dark-ghost::before{background:var(--ink)}
.btn--dark-ghost:hover{color:var(--white)}
.btn--wa{background:#1faa59;color:#fff}
.btn--wa::before{background:#128c48}
.btn--sm{padding:13px 20px;font-size:10.500px}
.btn--block{width:100%}
.link-arrow{display:inline-flex;align-items:center;gap:12px;font-weight:600;font-size:12px;letter-spacing:.200em;text-transform:uppercase;color:var(--wine);padding-bottom:8px;border-bottom:1px solid currentColor;margin-top:14px}
.link-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.500;transition:transform .4s var(--ease)}
.link-arrow:hover svg{transform:translateX(6px)}

/* ---------- preloader / progresso ---------- */
.preloader{position:fixed;inset:0;z-index:200;background:var(--wine);display:grid;place-items:center;align-content:center;gap:32px;transition:opacity .9s var(--ease),visibility .9s}
.preloader img{width:120px;height:auto;animation:breath 2.200s ease-in-out infinite}
.preloader__line{width:120px;height:1px;background:rgba(255,255,255,.200);position:relative;overflow:hidden}
.preloader__line::after{content:"";position:absolute;inset:0;background:var(--wood-light);transform:translateX(-100%);animation:load 1.400s var(--ease) infinite}
body:not(.is-loading) .preloader{opacity:0;visibility:hidden}
@keyframes breath{50%{opacity:.550;transform:scale(.970)}}
@keyframes load{to{transform:translateX(100%)}}
.progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--wood);transform:scaleX(0);transform-origin:left;z-index:120}

/* ---------- header ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px;padding-inline:var(--gut);color:var(--white);transition:background-color .5s var(--ease),box-shadow .5s,transform .5s var(--ease),height .5s var(--ease)}
.header.is-solid{background:rgba(61,38,40,.940);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(255,255,255,.080);--header-h:64px}
.header.is-hidden{transform:translateY(-100%)}
.header__brand{display:flex;flex-direction:column;line-height:1;gap:6px}
.header__brand-name{font-family:var(--sans);font-weight:500;font-size:17px;letter-spacing:.420em}
.header__brand-sub{font-size:8.500px;letter-spacing:.560em;opacity:.750;font-weight:500}
.nav{display:flex;gap:clamp(16px,2.200vw,34px);font-size:11px;font-weight:500;letter-spacing:.220em;text-transform:uppercase}
.nav a{position:relative;padding:8px 0;opacity:.880;transition:opacity .3s}
.nav a::after{content:"";position:absolute;left:0;bottom:2px;width:100%;height:1px;background:var(--wood-light);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover,.nav a.is-current{opacity:1}
.nav a:hover::after,.nav a.is-current::after{transform:scaleX(1);transform-origin:left}
.nav__cta-mobile{display:none}
.burger{display:none;width:44px;height:44px;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:1px;background:currentColor;transition:transform .4s var(--ease),top .4s var(--ease)}
.burger span:first-child{top:18px}.burger span:last-child{top:26px}
.burger[aria-expanded="true"] span:first-child{top:22px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:22px;transform:rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:var(--white);background:var(--ink);overflow:hidden}
.hero__slides,.hero__slide,.hero__veil{position:absolute;inset:0}
.hero__slide{opacity:0;transition:opacity 1.800s ease}
.hero__slide.is-active{opacity:1}
.hero__slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.020)}
.hero__slide.is-active img{animation:kenburns 9s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.140)}to{transform:scale(1.020)}}
.hero__veil{background:linear-gradient(90deg,rgba(27,16,14,.780) 0%,rgba(27,16,14,.380) 48%,rgba(27,16,14,.050) 100%),linear-gradient(0deg,rgba(27,16,14,.720) 0%,rgba(27,16,14,0) 42%),linear-gradient(180deg,rgba(27,16,14,.500) 0%,rgba(27,16,14,0) 24%)}
.hero__content{position:relative;z-index:2;padding:calc(var(--header-h) + 40px) var(--gut) 48px;max-width:calc(var(--wrap) + var(--gut)*2);width:100%;margin-inline:auto}
.hero__logo{width:clamp(74px,7vw,104px);margin-bottom:clamp(24px,3.500vw,44px)}
.hero__kicker{margin-bottom:20px}
.hero__kicker::before{display:none}
.hero__kicker i{width:36px;height:1px;background:currentColor;display:block}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(52px,9.500vw,148px);line-height:.980;letter-spacing:-.025em;margin-bottom:clamp(22px,3vw,36px)}
.hero__title em{font-style:italic;color:var(--wood-light);padding-right:.060em}
.hero__title .line{display:block;overflow:hidden;padding-bottom:.100em;margin-bottom:-.100em}
.hero__title .line>span{display:block;transform:translateY(110%);transition:transform 1.300s var(--ease)}
.hero__title .line:nth-child(2)>span{transition-delay:.140s;padding-left:clamp(28px,7vw,120px)}
.hero__lead{max-width:54ch;font-size:clamp(15px,1.250vw,18px);color:rgba(255,255,255,.880);margin-bottom:clamp(26px,3vw,40px)}
.hero__lead strong{color:var(--white)}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.hero__logo,.hero__kicker,.hero__lead,.hero__actions{opacity:0;transform:translateY(24px);transition:opacity 1.100s var(--ease),transform 1.100s var(--ease)}
.hero__kicker{transition-delay:.150s}.hero__lead{transition-delay:.550s}.hero__actions{transition-delay:.700s}
body.is-ready .hero__logo,body.is-ready .hero__kicker,body.is-ready .hero__lead,body.is-ready .hero__actions{opacity:1;transform:none}
body.is-ready .hero__title .line>span{transform:none}
.hero__foot{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:20px var(--gut) 26px;border-top:1px solid var(--line-light);max-width:calc(var(--wrap) + var(--gut)*2);width:100%;margin-inline:auto}
.hero__caption{font-size:10px;letter-spacing:.260em;text-transform:uppercase;opacity:.700}
.hero__dots{display:flex;gap:10px}
.hero__dots button{width:34px;height:20px;position:relative}
.hero__dots button::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(255,255,255,.350)}
.hero__dots button::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--white);transform:scaleX(0);transform-origin:left}
.hero__dots button.is-active::after{animation:dot 7s linear forwards}
@keyframes dot{to{transform:scaleX(1)}}
.hero__scroll{justify-self:end;display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.300em;text-transform:uppercase}
.hero__scroll i{width:1px;height:38px;background:rgba(255,255,255,.300);position:relative;overflow:hidden;display:block}
.hero__scroll i::after{content:"";position:absolute;left:0;top:0;width:100%;height:50%;background:var(--white);animation:scrolldot 2s var(--ease) infinite}
@keyframes scrolldot{from{transform:translateY(-100%)}to{transform:translateY(200%)}}

/* ---------- marquee ---------- */
.marquee{background:var(--wine);color:var(--white);overflow:hidden;padding:20px 0;border-top:1px solid rgba(255,255,255,.080)}
.marquee__track{display:flex;align-items:center;gap:38px;width:max-content;animation:marquee 38s linear infinite;font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.800vw,24px);white-space:nowrap}
.marquee__track b{color:var(--wood-light);font-size:10px;font-style:normal}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- reveals ---------- */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity 1.100s var(--ease),transform 1.100s var(--ease);transition-delay:var(--d,0s)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="img"]{opacity:1;transform:none}
[data-reveal="img"] img{clip-path:inset(0 0 100% 0);transform:scale(1.150);transition:clip-path 1.500s var(--ease),transform 1.900s var(--ease)}
[data-reveal="img"].in img{clip-path:inset(0 0 0 0);transform:scale(1)}
[data-reveal="img"] figcaption{opacity:0;transition:opacity 1s 1s}
[data-reveal="img"].in figcaption{opacity:1}
.frame{position:relative;overflow:hidden;background:var(--sand-2)}
.frame img{width:100%;height:100%;object-fit:cover}
.frame img[data-parallax]{position:absolute;left:0;top:-10%;height:120%}
.frame figcaption{position:absolute;left:16px;bottom:14px;font-size:9px;letter-spacing:.260em;text-transform:uppercase;color:rgba(255,255,255,.850);text-shadow:0 1px 6px rgba(0,0,0,.500)}

/* ---------- manifesto ---------- */
.manifesto__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);align-items:center}
.manifesto__poem{font-family:var(--serif);font-style:italic;font-size:clamp(19px,1.900vw,25px);line-height:1.600;color:var(--wine);padding-left:24px;border-left:1px solid var(--wine);margin-bottom:30px}
.manifesto__media{position:relative;padding-bottom:70px;padding-right:44px}
.frame--tall{aspect-ratio:4/5}
.frame--small{position:absolute;left:-12%;bottom:0;width:42%;aspect-ratio:3/4;box-shadow:0 30px 60px -20px rgba(27,21,19,.450);border:8px solid var(--white)}
.vertical-word{position:absolute;right:0;top:0;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--serif);font-size:clamp(20px,2.200vw,30px);color:var(--ink);letter-spacing:.010em;white-space:nowrap}

/* ---------- números ---------- */
.numbers{background:var(--sand);border-block:1px solid var(--line)}
.numbers__grid{display:grid;grid-template-columns:repeat(5,1fr)}
.number{padding:clamp(34px,4vw,60px) clamp(14px,2vw,30px);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.number:first-child{border-left:0;padding-left:0}
.number strong{font-family:var(--serif);font-weight:400;font-size:clamp(44px,5vw,76px);line-height:1;color:var(--wine);display:flex;align-items:baseline;gap:6px;font-variant-numeric:lining-nums tabular-nums}
.number strong small{font-family:var(--num);font-weight:500;font-size:13px;letter-spacing:.080em;color:var(--ink)}
.number>span{font-size:13px;line-height:1.500;color:var(--ink-soft);max-width:22ch}

/* ---------- arquitetura ---------- */
.arq__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,8vw,130px);align-items:center}
.arq__img{aspect-ratio:974/1499;max-height:88vh;justify-self:center;width:100%}
.arq__logo{width:74px;margin-bottom:34px}
.quote{font-family:var(--serif);font-style:italic;font-size:clamp(18px,1.600vw,22px);line-height:1.550;color:var(--ink);margin-top:34px;padding-top:30px;border-top:1px solid var(--line);max-width:50ch}
.quote cite{display:block;margin-top:16px;font-family:var(--sans);font-style:normal;font-size:10.500px;letter-spacing:.300em;text-transform:uppercase;color:var(--wine);font-weight:600}

/* ---------- lazer ---------- */
.lazer{background:var(--ink);color:var(--white);overflow:hidden}
.lazer::before{content:"";position:absolute;inset:0;background:url("../img/tx-madeira.webp") center/cover;opacity:.090;pointer-events:none}
.lazer .wrap{position:relative}
.lazer__stage{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(30px,5vw,80px);align-items:stretch}
.lazer__list{counter-reset:lz;display:flex;flex-direction:column;justify-content:space-between}
.lazer__list li{counter-increment:lz;border-bottom:1px solid rgba(255,255,255,.120)}
.lazer__list button{width:100%;text-align:left;display:flex;align-items:baseline;gap:18px;padding:clamp(9px,1.100vw,15px) 0;font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.100vw,30px);line-height:1.200;color:rgba(255,255,255,.420);transition:color .5s var(--ease),padding-left .5s var(--ease)}
.lazer__list button::before{content:counter(lz,decimal-leading-zero);font-family:var(--num);font-style:normal;font-size:10px;letter-spacing:.200em;color:var(--wood-light);opacity:.700;min-width:22px}
.lazer__list button:hover,.lazer__list button.is-active{color:var(--white);padding-left:16px}
.lazer__view{position:relative;min-height:520px;overflow:hidden;background:#0f0b0a}
.lazer__imgs,.lazer__imgs img{position:absolute;inset:0;width:100%;height:100%}
.lazer__imgs img{object-fit:cover;opacity:0;transform:scale(1.080);transition:opacity 1.100s var(--ease),transform 6s ease-out}
.lazer__imgs img.is-active{opacity:1;transform:scale(1)}
.lazer__info{position:absolute;left:0;right:0;bottom:0;padding:70px clamp(20px,3vw,40px) 30px;background:linear-gradient(0deg,rgba(15,11,10,.880),rgba(15,11,10,0));display:flex;flex-direction:column;gap:10px}
.lazer__count{font-family:var(--num);font-size:10px;letter-spacing:.300em;color:var(--wood-light)}
.lazer__tag{font-size:clamp(11px,1vw,13px);font-weight:500;letter-spacing:.280em;text-transform:uppercase;line-height:1.800;max-width:52ch}
.lazer__bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.120)}
.lazer__bar i{display:block;height:100%;background:var(--wood-light);transform:scaleX(0);transform-origin:left}
.lazer__bar i.run{animation:dot 5.500s linear forwards}
.lazer__cards{display:none}

/* ---------- CTA band ---------- */
.cta-band{position:relative;padding-block:clamp(80px,11vw,160px);color:var(--white);background:var(--wine-deep) url("../img/tx-madeira-curvas.webp") center/cover;text-align:center;isolation:isolate}
.cta-band::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(45,24,22,.820),rgba(45,24,22,.600));z-index:-1}
.cta-band__inner{display:flex;flex-direction:column;align-items:center}
.cta-band .kicker::after{content:"";width:44px;height:1px;background:currentColor}
.cta-band .title{max-width:20ch;font-size:clamp(28px,3.800vw,52px)}
.cta-band__actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:10px}

/* ---------- galeria ---------- */
.galeria{background:var(--white)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-size:10.500px;font-weight:600;letter-spacing:.220em;text-transform:uppercase;padding:12px 18px;border:1px solid var(--line);color:var(--ink-soft);transition:all .4s var(--ease)}
.chip:hover{border-color:var(--wine);color:var(--wine)}
.chip.is-active{background:var(--wine);border-color:var(--wine);color:var(--white)}
.gal{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(150px,17vw,250px);grid-auto-flow:dense;gap:clamp(8px,1vw,14px)}
.gal__item{position:relative;overflow:hidden;cursor:zoom-in;grid-column:span 4;background:var(--sand-2);display:block;width:100%;height:100%}
.gal__item--wide{grid-column:span 8;grid-row:span 2}
.gal__item--tall{grid-row:span 2}
.gal__item--half{grid-column:span 6}
.gal__item--full{grid-column:span 12;grid-row:span 2}
.gal__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.400s var(--ease),filter .8s}
.gal__item:hover img{transform:scale(1.070)}
.gal__item::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(27,16,14,.720),rgba(27,16,14,0) 55%);opacity:0;transition:opacity .6s var(--ease)}
.gal__item:hover::after,.gal__item:focus-visible::after{opacity:1}
.gal__cap{position:absolute;left:20px;right:20px;bottom:16px;z-index:2;color:var(--white);display:flex;justify-content:space-between;align-items:flex-end;gap:12px;opacity:0;transform:translateY(12px);transition:all .6s var(--ease);text-align:left}
.gal__item:hover .gal__cap,.gal__item:focus-visible .gal__cap{opacity:1;transform:none}
.gal__cap b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(17px,1.600vw,23px)}
.gal__cap i{width:34px;height:34px;border:1px solid rgba(255,255,255,.600);border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:18px;line-height:1;flex:none}
.gal__item.is-hidden{display:none}

/* ---------- plantas ---------- */
.plantas{background:var(--sand)}
.plantas__intro{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(36px,7vw,110px);align-items:center}
.plantas__introimg{aspect-ratio:4/5;max-width:440px}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin-bottom:clamp(24px,3vw,44px)}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;padding:18px clamp(14px,2vw,28px);text-align:left;position:relative;color:var(--ink-soft);transition:color .4s;display:flex;flex-direction:column;gap:2px}
.tab b{font-family:var(--serif);font-weight:400;font-size:clamp(20px,2vw,28px);line-height:1.100;color:inherit}
.tab span{font-size:10px;letter-spacing:.220em;text-transform:uppercase;font-weight:600}
.tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--wine);transform:scaleX(0);transition:transform .5s var(--ease)}
.tab.is-active,.tab:hover{color:var(--wine)}
.tab.is-active::after{transform:scaleX(1)}
.plan{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(24px,4vw,64px);align-items:start}
.plan__imgs{background:var(--white);padding:clamp(14px,2.500vw,36px);display:grid;gap:18px;box-shadow:0 40px 80px -50px rgba(27,21,19,.350)}
.plan__imgs--two{grid-template-columns:1fr 1fr}
.plan__img{position:relative;cursor:zoom-in;display:block;width:100%}
.plan__img img{width:100%;height:auto;animation:planIn .9s var(--ease) both}
.plan__img span{display:block;text-align:center;font-size:10px;letter-spacing:.260em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px;font-weight:600}
.plan__zoom{position:absolute;right:8px;top:8px;width:40px;height:40px;border-radius:50%;background:var(--wine);color:#fff;display:grid;place-items:center;font-size:20px;opacity:.900;transition:transform .4s var(--ease)}
.plan__img:hover .plan__zoom{transform:scale(1.120)}
@keyframes planIn{from{opacity:0;transform:scale(.960)}to{opacity:1;transform:none}}
.plan__info{animation:planIn .9s var(--ease) both}
.plan__area{font-family:var(--serif);font-size:clamp(52px,6vw,88px);line-height:1;color:var(--wine);display:flex;align-items:baseline;gap:8px}
.plan__area small{font-family:var(--num);font-size:15px;color:var(--ink);letter-spacing:.060em}
.plan__type{font-size:11px;letter-spacing:.300em;text-transform:uppercase;font-weight:600;color:var(--ink);margin:10px 0 22px}
.plan__specs{display:flex;gap:26px;padding:18px 0;border-block:1px solid var(--line);margin-bottom:22px;flex-wrap:wrap}
.plan__specs li{font-size:13px;color:var(--ink-soft);line-height:1.400}
.plan__specs b{display:block;font-family:var(--serif);font-weight:400;font-size:26px;color:var(--ink)}
.plan__feats{display:grid;gap:10px;margin-bottom:28px}
.plan__feats li{position:relative;padding-left:22px;font-size:14.500px;color:var(--ink-soft);line-height:1.500}
.plan__feats li::before{content:"";position:absolute;left:0;top:.700em;width:10px;height:1px;background:var(--wine)}

/* ---------- penthouse ---------- */
.pent{position:relative;min-height:min(94vh,900px);display:flex;align-items:flex-end;color:var(--white);overflow:hidden;background:var(--ink)}
.pent__bg{position:absolute;left:0;top:-10%;width:100%;height:120%;object-fit:cover;object-position:30% center}
.pent__veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(27,16,14,.550) 0%,rgba(27,16,14,0) 40%)}
.pent__inner{position:relative;padding-block:clamp(28px,5vw,72px);display:flex;justify-content:flex-end}
.pent__box{width:100%;max-width:540px;background:rgba(61,38,40,.860);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:clamp(28px,3.500vw,52px);border:1px solid rgba(255,255,255,.140)}
.pent .title{font-size:clamp(30px,3.400vw,48px)}
.pent__list{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 30px}
.pent__list li{font-size:10px;letter-spacing:.200em;text-transform:uppercase;font-weight:600;padding:10px 14px;border:1px solid rgba(255,255,255,.350)}

/* ---------- diferenciais ---------- */
.difs{background:var(--wine);color:var(--white)}
.difs__logo{width:84px;opacity:.900}
.difs__grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-light);border-left:1px solid var(--line-light)}
.dif{border-right:1px solid var(--line-light);border-bottom:1px solid var(--line-light);padding:clamp(22px,2.600vw,38px);min-height:clamp(170px,15vw,220px);display:flex;flex-direction:column;justify-content:space-between;gap:26px;position:relative;overflow:hidden;transition:color .5s var(--ease)}
.dif::before{content:"";position:absolute;inset:0;background:var(--sand);transform:translateY(101%);transition:transform .65s var(--ease)}
.dif:hover::before{transform:none}
.dif>*{position:relative}
.dif:hover{color:var(--wine)}
.dif__n{font-family:var(--num);font-size:10px;letter-spacing:.260em;color:var(--wood-light);transition:color .5s}
.dif:hover .dif__n{color:var(--wood)}
.dif__t{font-family:var(--serif);font-size:clamp(17px,1.500vw,21px);line-height:1.350}
.dif__t small{display:block;font-family:var(--sans);font-size:12.500px;line-height:1.550;opacity:.750;margin-top:8px}

/* ---------- JMF ---------- */
.jmf__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,7vw,120px);align-items:start}
.timeline{position:relative;padding-left:28px;border-left:1px solid var(--line)}
.timeline li{position:relative;display:grid;grid-template-columns:118px 1fr;gap:16px;padding:13px 0;align-items:baseline;border-bottom:1px solid var(--line)}
.timeline li::before{content:"";position:absolute;left:-32px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--white);border:1px solid var(--wine);transform:translateY(-50%)}
.timeline b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:19px;color:var(--wine)}
.timeline span{font-size:11px;letter-spacing:.220em;text-transform:uppercase;font-weight:500;color:var(--ink-soft)}
.timeline .is-now{border-bottom:0}
.timeline .is-now::before{background:var(--wine);box-shadow:0 0 0 6px rgba(82,53,55,.150);animation:pulse 2.200s ease-out infinite}
.timeline .is-now b,.timeline .is-now span{color:var(--ink);font-weight:600}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(82,53,55,.400)}100%{box-shadow:0 0 0 14px rgba(82,53,55,0)}}

/* ---------- corretor ---------- */
.corretor{background:var(--sand);overflow:hidden}
.corretor__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(36px,7vw,110px);align-items:center}
.corretor__photo{position:relative;max-width:420px;width:100%;justify-self:center;aspect-ratio:1}
.corretor__photo img{border-radius:50%;position:relative;z-index:1;box-shadow:0 40px 70px -30px rgba(61,38,40,.550)}
.corretor__ring{position:absolute;inset:-18px;border-radius:50%;border:1px solid var(--wine);opacity:.450}
.corretor__ring::after{content:"";position:absolute;inset:-18px;border-radius:50%;border:1px dashed var(--wood);opacity:.700;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.corretor__data{display:flex;gap:clamp(24px,4vw,56px);margin:26px 0 32px;padding:20px 0;border-block:1px solid var(--line);flex-wrap:wrap}
.corretor__data span{display:block;font-size:10px;letter-spacing:.280em;text-transform:uppercase;font-weight:600;color:var(--wine);margin-bottom:4px}
.corretor__data b{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.200vw,30px);font-variant-numeric:lining-nums}
.corretor__actions{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- localização ---------- */
.local__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(36px,7vw,110px);align-items:center;margin-bottom:clamp(48px,6vw,90px)}
.local__img{aspect-ratio:1/1}
.local__feats{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:30px;border-top:1px solid var(--line)}
.local__feats li{display:flex;align-items:center;gap:14px;padding:18px 12px 18px 0;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.180em;text-transform:uppercase;font-weight:600;line-height:1.500}
.local__feats svg{width:26px;height:26px;fill:none;stroke:var(--wine);stroke-width:1.300;stroke-linecap:round;stroke-linejoin:round;flex:none}
.map{border:1px solid var(--line);background:var(--white)}
.map__head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:clamp(18px,2.500vw,32px)}
.map__head .kicker{margin-bottom:8px}
.map__head p{font-family:var(--serif);font-size:clamp(18px,1.800vw,24px);line-height:1.350}
.map__head .link-arrow{margin-top:0}
.map__frame{height:clamp(340px,44vw,520px);position:relative;background:var(--sand-2)}
.map__frame iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.350) sepia(.120) contrast(1.020)}

/* ---------- contato ---------- */
.contato{background:var(--wine);color:var(--white);overflow:hidden}
.contato::before{content:"";position:absolute;inset:0;background:url("../img/tx-folha.webp") right center/cover;opacity:.140;mix-blend-mode:luminosity;pointer-events:none}
.contato__grid{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,100px);align-items:center}
.contato__logo{width:88px;margin-bottom:34px}
.contato__perks{display:grid;gap:12px;margin:26px 0 34px}
.contato__perks li{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.220em;text-transform:uppercase;font-weight:600}
.contato__perks li::before{content:"";width:22px;height:1px;background:var(--wood-light)}
.contato__broker{display:flex;align-items:center;gap:14px;padding-top:26px;border-top:1px solid var(--line-light)}
.contato__broker img{width:56px;height:56px;border-radius:50%;border:1px solid rgba(255,255,255,.500)}
.contato__broker p{display:flex;flex-direction:column;line-height:1.400}
.contato__broker b{font-family:var(--serif);font-weight:400;font-size:20px}
.contato__broker span{font-size:10px;letter-spacing:.220em;text-transform:uppercase;opacity:.750}
.form{background:rgba(255,255,255,.060);border:1px solid var(--line-light);padding:clamp(24px,3.500vw,52px);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.form__body{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}
.field--full{grid-column:1/-1}
.field label{display:block;font-size:10px;letter-spacing:.260em;text-transform:uppercase;font-weight:600;color:var(--wood-light);margin-bottom:6px}
.field label small{letter-spacing:.100em;opacity:.700;font-size:10px}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.380);color:var(--white);font:inherit;font-size:16px;padding:10px 0 12px;border-radius:0;transition:border-color .4s;appearance:none;-webkit-appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d9b48a' stroke-width='1.500'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;background-size:18px;padding-right:26px;text-overflow:ellipsis}
.field select option{color:var(--ink);background:var(--white)}
.field textarea{resize:vertical;min-height:54px}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.400)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--wood-light)}
.field.is-invalid input{border-color:#ffb4a8}
.check{display:flex;gap:12px;align-items:flex-start;font-size:12.500px;line-height:1.550;color:rgba(255,255,255,.780);cursor:pointer}
.check input{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid rgba(255,255,255,.600);flex:none;margin:2px 0 0;display:grid;place-items:center;cursor:pointer}
.check input:checked{background:var(--wood-light);border-color:var(--wood-light)}
.check input:checked::after{content:"";width:9px;height:5px;border-left:1.500px solid var(--wine-deep);border-bottom:1.500px solid var(--wine-deep);transform:rotate(-45deg) translateY(-1px)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.form__error{color:#ffc9bf;font-size:13px}
.form__hint{font-size:11.500px;color:rgba(255,255,255,.550);text-align:center;margin-top:-6px}
.form__ok{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px 0}
.form__ok[hidden],.form__error[hidden]{display:none}
.form__ok svg{width:64px;height:64px;fill:none;stroke:var(--wood-light);stroke-width:1.500;stroke-linecap:round;stroke-linejoin:round}
.form__ok svg path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw .9s .3s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.form__ok h3{font-family:var(--serif);font-weight:400;font-size:30px}
.form__ok p{color:rgba(255,255,255,.800);max-width:40ch}

/* ---------- footer ---------- */
.footer{background:var(--wine-deep);color:rgba(255,255,255,.800);padding:clamp(48px,6vw,80px) 0 110px}
.footer__top{display:flex;gap:clamp(28px,5vw,70px);align-items:center;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.120);margin-bottom:30px;flex-wrap:wrap}
.footer__top>img{width:66px}
.footer__cols{display:flex;gap:clamp(22px,4vw,56px);flex-wrap:wrap}
.footer__cols span{display:block;font-size:9.500px;letter-spacing:.280em;text-transform:uppercase;color:var(--wood-light);margin-bottom:4px}
.footer__cols b{font-weight:500;font-size:14px;color:var(--white)}
.footer__legal{font-size:10.500px;line-height:1.750;letter-spacing:.020em;opacity:.620;text-align:justify}
.footer__copy{font-size:10px;letter-spacing:.220em;text-transform:uppercase;opacity:.500;margin-top:24px}

/* ---------- WhatsApp fixo ---------- */
.wa-float{position:fixed;right:clamp(14px,2vw,26px);bottom:clamp(16px,2.500vw,28px);z-index:110;display:flex;align-items:center;gap:12px;transform:translateY(120px);transition:transform .9s var(--ease)}
body.is-ready .wa-float{transform:none}
.wa-float__btn{width:62px;height:62px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 14px 34px -8px rgba(18,140,72,.700);position:relative;transition:transform .4s var(--ease)}
.wa-float__btn svg{width:34px;height:34px}
.wa-float__btn{animation:waPulse 2.400s ease-out infinite}
@keyframes waPulse{0%{box-shadow:0 14px 34px -8px rgba(18,140,72,.700),0 0 0 0 rgba(37,211,102,.550)}100%{box-shadow:0 14px 34px -8px rgba(18,140,72,.700),0 0 0 20px rgba(37,211,102,0)}}
.wa-float:hover .wa-float__btn{transform:scale(1.080)}
.wa-float__bubble{background:var(--white);color:var(--ink);font-size:12.500px;font-weight:500;padding:11px 16px;border-radius:22px 22px 4px 22px;box-shadow:0 12px 30px -10px rgba(0,0,0,.400);opacity:0;transform:translateX(14px);pointer-events:none;transition:all .6s var(--ease);white-space:nowrap}
.wa-float__bubble.is-on,.wa-float:hover .wa-float__bubble{opacity:1;transform:none}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:300;background:rgba(20,13,12,.960);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:clamp(12px,2vw,28px);opacity:0;transition:opacity .45s var(--ease)}
.lb[hidden]{display:none}
.lb.is-open{opacity:1}
.lb__fig{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;min-width:0;min-height:0}
.lb__fig img{max-width:100%;max-height:calc(100svh - 120px);object-fit:contain;transition:opacity .35s,transform .5s var(--ease);background:#fff0}
.lb__fig img.is-plan{background:#fff;padding:clamp(8px,1.500vw,20px)}
.lb__fig img.is-swap{opacity:0;transform:scale(.980)}
.lb__fig figcaption{color:#fff;display:flex;gap:18px;align-items:baseline;font-family:var(--serif);font-style:italic;font-size:18px;text-align:center;flex-wrap:wrap;justify-content:center}
.lb__fig small{font-family:var(--num);font-style:normal;font-size:10px;letter-spacing:.260em;color:var(--wood-light)}
.lb__nav,.lb__close{color:#fff;width:52px;height:52px;border:1px solid rgba(255,255,255,.300);border-radius:50%;display:grid;place-items:center;transition:background-color .3s,color .3s;flex:none}
.lb__nav:hover,.lb__close:hover{background:#fff;color:var(--wine)}
.lb__nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.500}
.lb__close{position:absolute;right:clamp(12px,2vw,28px);top:clamp(12px,2vw,28px);font-size:28px;line-height:1;z-index:2}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:1080px){
  .nav{position:fixed;inset:0;background:var(--wine-deep);flex-direction:column;justify-content:center;align-items:center;gap:26px;font-size:14px;transform:translateY(-100%);transition:transform .7s var(--ease);z-index:-1;visibility:hidden}
  .nav.is-open{transform:none;visibility:visible}
  .nav a{font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:0;font-size:28px;opacity:1}
  .nav .nav__cta-mobile{display:inline-flex;font-family:var(--sans);font-style:normal;font-size:12px;letter-spacing:.200em;text-transform:uppercase;font-weight:600;background:#fff;color:var(--wine);padding:18px 26px;margin-top:12px}
  .nav .nav__cta-mobile::after{display:none}
  .burger{display:block}
  .header__cta{margin-left:auto}
  .numbers__grid{grid-template-columns:repeat(3,1fr)}
  .number:nth-child(4){border-left:0;padding-left:0}
  .number:nth-child(n+4){border-top:1px solid var(--line)}
  .difs__grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  :root{--header-h:66px}
  .manifesto__grid,.arq__grid,.plantas__intro,.plan,.jmf__grid,.corretor__grid,.local__grid,.contato__grid{grid-template-columns:1fr}
  .manifesto__media{order:-1;padding-right:36px;padding-bottom:50px;margin-left:8%}
  .arq__img{max-height:none;max-width:520px}
  .plantas__introimg{max-width:320px}
  .lazer__stage{display:none}
  .lazer__cards{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut)*-1);padding-inline:var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .lazer__cards::-webkit-scrollbar{display:none}
  .lz-card{flex:none;width:min(82vw,420px);scroll-snap-align:center;position:relative;aspect-ratio:4/5;overflow:hidden;background:#0f0b0a}
  .lz-card img{width:100%;height:100%;object-fit:cover}
  .lz-card div{position:absolute;left:0;right:0;bottom:0;padding:70px 20px 22px;background:linear-gradient(0deg,rgba(15,11,10,.920),rgba(15,11,10,0))}
  .lz-card small{font-family:var(--num);font-size:10px;letter-spacing:.260em;color:var(--wood-light)}
  .lz-card b{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:26px;margin:4px 0 8px}
  .lz-card p{font-size:10px;letter-spacing:.220em;text-transform:uppercase;line-height:1.700;opacity:.850}
  .gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:42vw}
  .gal__item,.gal__item--half{grid-column:span 1}
  .gal__item--wide,.gal__item--full{grid-column:span 2;grid-row:span 1}
  .gal__item--tall{grid-row:span 2}
  .gal__cap{opacity:1;transform:none;left:12px;right:12px;bottom:10px}
  .gal__cap i{display:none}
  .gal__cap b{font-size:15px}
  .gal__item::after{opacity:1;background:linear-gradient(0deg,rgba(27,16,14,.650),rgba(27,16,14,0) 45%)}
  .pent{min-height:0;flex-direction:column;align-items:stretch}
  .pent__bg{position:relative;top:0;height:auto;aspect-ratio:4/3;translate:none!important}
  .pent__veil{display:none}
  .pent__inner{padding:0}
  .pent__box{max-width:none;border:0;background:var(--wine-deep)}
  .difs__grid{grid-template-columns:repeat(2,1fr)}
  .dif{min-height:150px}
  .difs__logo{display:none}
  .corretor__photo{max-width:280px}
  .corretor__text{text-align:center}
  .corretor__text .kicker,.corretor__data,.corretor__actions{justify-content:center}
  .corretor__text .text{margin-inline:auto}
  .hero__foot{grid-template-columns:1fr auto}
  .hero__scroll{display:none}
  .lb{grid-template-columns:1fr;padding:10px}
  .lb__nav{position:absolute;bottom:18px;z-index:2}
  .lb__nav--prev{left:calc(50% - 64px)}.lb__nav--next{right:calc(50% - 64px)}
  .lb__fig img{max-height:calc(100svh - 190px)}
  .lb__fig{padding-bottom:70px}
}
@media (max-width:560px){
  .header__cta{display:none}
  .hero__content{padding-bottom:34px}
  .hero__actions .btn{width:100%}
  .hero__caption{font-size:8.500px;letter-spacing:.200em}
  .numbers__grid{grid-template-columns:1fr 1fr}
  .number{padding:26px 14px}
  .number:nth-child(odd){border-left:0;padding-left:0}
  .number:nth-child(even){border-left:1px solid var(--line);padding-left:18px}
  .number:nth-child(n+3){border-top:1px solid var(--line)}
  .number:last-child{grid-column:1/-1}
  .form__body{grid-template-columns:1fr}
  .local__feats{grid-template-columns:1fr}
  .plan__imgs--two{grid-template-columns:1fr}
  .timeline li{grid-template-columns:96px 1fr}
  .wa-float__bubble{display:none}
  .wa-float__btn{width:58px;height:58px}
  .cta-band__actions .btn,.corretor__actions .btn{width:100%}
  .footer__legal{text-align:left}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.010ms!important;animation-iteration-count:1!important;transition-duration:.010ms!important;scroll-behavior:auto!important}
  [data-reveal],[data-reveal] img{opacity:1;transform:none;clip-path:none}
  .hero__title .line>span{transform:none}
}
