/* ============ Sua Marca Studio ============ */
:root{
  --cream:#F5ECE4;
  --cream-2:#EFE1D7;
  --blush:#EAD2CB;
  --rose:#A84C60;
  --rose-soft:#D9A3AE;
  --gold:#B08D57;
  --ink:#2B1B22;
  --ink-soft:#5E4A52;
  --plum:#2A1620;
  --plum-2:#3A212C;
  --on-plum:#F5ECE4;
  --on-plum-soft:#CDB9BC;

  --serif:"Cormorant Garamond", "Times New Roman", serif;
  --sans:"Hanken Grotesk", system-ui, sans-serif;

  --ease-out:cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out:cubic-bezier(0.77, 0, 0.175, 1);

  --gutter:clamp(20px, 5vw, 72px);
  --header-h:72px;
}

*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;
  -webkit-tap-highlight-color:transparent;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 8px);
}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font:400 1.0625rem/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}
input,textarea{font-size:16px}
address{font-style:normal}
[hidden]{display:none !important}

::selection{background:var(--rose);color:#fff}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px;border-radius:4px}
.book :focus-visible,.foot :focus-visible{outline-color:var(--rose-soft)}
html{scrollbar-width:thin;scrollbar-color:var(--rose-soft) var(--cream)}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--cream)}
::-webkit-scrollbar-thumb{background:var(--rose-soft);border-radius:10px;border:2px solid var(--cream)}

.wrap{width:100%;max-width:1360px;margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px}
.skip:focus{top:12px}

h1,h2{
  font-family:var(--serif);
  font-weight:500;
  font-style:italic;
  line-height:.98;
  letter-spacing:-0.02em;
  text-wrap:balance;
}
h2{font-size:clamp(2.6rem, 6.4vw, 5.6rem)}

/* ---------- Botões ---------- */
.btn{
  --bg:var(--ink);--fg:var(--cream);
  display:inline-flex;align-items:center;justify-content:center;gap:.7em;
  min-height:52px;padding:0 30px;border-radius:999px;border:1px solid var(--bg);
  background:var(--bg);color:var(--fg);
  font-weight:500;letter-spacing:.01em;white-space:nowrap;
  transition:transform 160ms var(--ease-out), background-color 200ms, color 200ms, border-color 200ms;
  will-change:transform;
}
.btn svg{width:18px;height:18px;transition:transform 300ms var(--ease-out)}
.btn:active{transform:scale(.97)}
.btn--sm{min-height:42px;padding:0 22px;font-size:.95rem}
.btn--ghost{--bg:transparent;--fg:currentColor;border-color:currentColor;opacity:.85}
.btn--wa{--bg:var(--rose);--fg:#fff}
.btn--wa svg{width:20px;height:20px}
.link{
  display:inline-block;font-weight:500;padding:12px 2px;
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;
  transition:background-size 300ms var(--ease-out);
}
@media (hover:hover) and (pointer:fine){
  .btn:hover{--bg:var(--rose);border-color:var(--rose)}
  .btn--wa:hover{--bg:#8E3C4F;border-color:#8E3C4F}
  .btn--ghost:hover{--bg:currentColor;opacity:1}
  .btn:hover svg{transform:translateX(4px)}
  .link:hover{background-size:0 1px;background-position:100% 100%}
}

/* ---------- Abertura ---------- */
.curtain{
  position:fixed;inset:0;z-index:300;background:var(--plum);color:var(--on-plum);
  display:grid;place-items:center;
  transition:clip-path 1000ms var(--ease-in-out);
  clip-path:inset(0 0 0 0);
}
.curtain.is-open{clip-path:inset(0 0 100% 0);pointer-events:none}
.curtain.is-gone{display:none}
.curtain__word{font:italic 500 clamp(3rem,10vw,7rem)/1 var(--serif);display:flex;overflow:hidden;padding-bottom:.12em}
.curtain__word span{display:block;transform:translateY(110%);animation:rise 800ms var(--ease-out) forwards}
.curtain__word .sp{width:.3em}
@keyframes rise{to{transform:none}}
html:not(.js) .curtain{display:none}
.js .curtain{animation:curtainFailsafe 1ms 5s forwards}
@keyframes curtainFailsafe{to{opacity:0;visibility:hidden}}

/* ---------- Cabeçalho ---------- */
.top{
  position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:0 var(--gutter);
  transition:transform 400ms var(--ease-out), background-color 300ms, backdrop-filter 300ms;
}
.top.is-solid{background:rgba(245,236,228,.82);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 1px 0 rgba(43,27,34,.08)}
.top.is-hidden{transform:translateY(-100%)}
.brand{display:flex;align-items:center;gap:10px;font:italic 600 1.6rem/1 var(--serif)}
.brand__mark{width:30px;height:30px;color:var(--rose)}
.nav{display:flex;gap:34px;font-size:.95rem;font-weight:500}
.nav a{padding:10px 0;background:linear-gradient(var(--rose),var(--rose)) 0 100%/0 1px no-repeat;transition:background-size 300ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.nav a:hover{background-size:100% 1px}}
@media (max-width:820px){.nav{display:none}}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:100svh;padding:calc(var(--header-h) + 28px) var(--gutter) 0;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:0 4vw;
  overflow:hidden;isolation:isolate;
  background:
    radial-gradient(60% 50% at 78% 38%, var(--blush) 0, transparent 70%),
    var(--cream);
}
.petals{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero__wordmark{
  position:absolute;left:0;right:0;bottom:-.17em;z-index:-1;text-align:center;white-space:nowrap;
  font:italic 500 clamp(6rem,23vw,22rem)/1 var(--serif);letter-spacing:-0.04em;
  color:transparent;-webkit-text-stroke:1px rgba(168,76,96,.4);
  user-select:none;
}
.hero__copy{align-self:center;padding-bottom:9vh;max-width:640px;z-index:2}
.hero h1{font-size:clamp(3.3rem,8.2vw,8rem);line-height:.92}
.hero__lead{margin-top:28px;max-width:40ch;color:var(--ink-soft);font-size:1.15rem}
.hero__cta{margin-top:34px;display:flex;align-items:center;flex-wrap:wrap;gap:12px 26px}
.hero__scroll{position:absolute;left:var(--gutter);bottom:22px;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);writing-mode:vertical-rl;display:none}
.hero__stage{--main-w:min(34vw,470px,calc((100svh - 150px) * .69));position:relative;align-self:stretch;min-height:560px}

.ph{position:relative;overflow:hidden;background:var(--blush)}
.ph img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.arch{border-radius:999px 999px 0 0}
.arch--main{position:absolute;right:6%;bottom:0;width:var(--main-w);aspect-ratio:3/4.3}
.arch--main img{object-position:50% 14%}
.arch--left{position:absolute;left:0;bottom:16%;width:min(15vw,210px);aspect-ratio:3/4.3;border-radius:999px;z-index:2;box-shadow:0 24px 50px -22px rgba(43,27,34,.45)}
.arch--right{position:absolute;right:0;top:12%;width:min(12vw,170px);aspect-ratio:3/4.3;border-radius:999px;z-index:2;box-shadow:0 24px 50px -22px rgba(43,27,34,.45)}
.owner{position:absolute;right:calc(6% + 14px);bottom:5%;z-index:3;display:grid;gap:2px;width:max-content;padding:14px 20px 15px;border-radius:18px;background:rgba(245,236,228,.86);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 20px 40px -20px rgba(43,27,34,.5)}
.owner b{font:italic 600 1.35rem/1.1 var(--serif)}
.owner span{font-size:.85rem;color:var(--ink-soft);white-space:nowrap}
.badge{
  position:absolute;left:12%;top:14%;z-index:3;width:116px;height:116px;border-radius:50%;
  background:var(--ink);color:var(--cream);display:grid;place-items:center;
  transition:transform 200ms var(--ease-out), background-color 200ms;
}
.badge:active{transform:scale(.96)}
.badge>svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 22s linear infinite}
.badge text{font:500 10.4px var(--sans);letter-spacing:.17em;text-transform:uppercase;fill:currentColor}
.badge__arrow svg{width:26px;height:26px}
@keyframes spin{to{transform:rotate(360deg)}}
@media (hover:hover) and (pointer:fine){.badge:hover{background:var(--rose);transform:scale(1.06) rotate(-6deg)}}

@media (max-width:820px){
  .hero{grid-template-columns:1fr;padding-top:calc(var(--header-h) + 12px);gap:0}
  .hero__copy{padding-bottom:20px}
  .hero__stage{min-height:min(118vw,560px);margin-inline:calc(var(--gutter) * -1)}
  .arch--main{right:auto;left:calc(50% - min(31vw,150px));width:min(62vw,300px)}
  .arch--left{left:var(--gutter);bottom:12%;width:26vw}
  .arch--right{right:var(--gutter);top:6%;width:22vw}
  .owner{right:auto;left:var(--gutter);bottom:4%;padding:11px 16px 12px}
  .badge{left:auto;right:var(--gutter);top:auto;bottom:10%;width:96px;height:96px}
  .badge text{font-size:9.6px}
  .hero__wordmark{font-size:34vw;bottom:auto;top:46%}
}

/* ---------- Faixa ---------- */
.marquee{background:var(--plum);color:var(--on-plum);overflow:hidden;padding:26px 0;border-block:1px solid rgba(255,255,255,.08)}
.marquee__track{display:flex;align-items:center;gap:34px;width:max-content;animation:slide 38s linear infinite;padding-left:34px}
.marquee span{font:italic 500 clamp(2rem,4.6vw,3.8rem)/1 var(--serif);white-space:nowrap}
.marquee i{width:10px;height:10px;border-radius:50% 50% 50% 0;background:var(--rose-soft);rotate:-45deg;flex:none}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- Manifesto ---------- */
.manifesto{padding:clamp(100px,18vw,240px) var(--gutter);display:grid;place-items:center;background:var(--cream)}
.manifesto__text{
  max-width:19em;font:italic 500 clamp(2rem,4.8vw,4.3rem)/1.12 var(--serif);letter-spacing:-.01em;text-wrap:balance;text-align:left;
}
.js .manifesto__text .w{color:rgba(43,27,34,.2);transition:color 320ms ease-out}
.js .manifesto__text .w.on{color:var(--ink)}
.manifesto__text .w.accent.on{color:var(--rose)}

/* ---------- Serviços ---------- */
.services{padding:clamp(40px,8vw,120px) 0 clamp(90px,12vw,170px);position:relative;background:var(--cream)}
.services__hint{margin:18px 0 clamp(36px,6vw,70px);color:var(--ink-soft)}
.svc{border-top:1px solid rgba(43,27,34,.18)}
.svc li{border-bottom:1px solid rgba(43,27,34,.18)}
.svc a{
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:8px 32px;
  padding:clamp(22px,3.2vw,40px) 0;
  transition:padding 400ms var(--ease-out), color 250ms;
}
.svc__name{font:italic 500 clamp(2.2rem,5.4vw,4.8rem)/1 var(--serif);letter-spacing:-.02em}
.svc__desc{color:var(--ink-soft);max-width:38ch}
.svc__go{
  display:grid;place-items:center;width:54px;height:54px;border-radius:50%;border:1px solid rgba(43,27,34,.3);
  transition:background-color 250ms, color 250ms, transform 400ms var(--ease-out), border-color 250ms;
}
.svc__go svg{width:20px;height:20px}
.svc__thumb{display:none}
@media (hover:hover) and (pointer:fine){
  .svc:hover li{opacity:.4}
  .svc li{transition:opacity 300ms}
  .svc:hover li:hover{opacity:1}
  .svc li:hover a{padding-left:20px;color:var(--rose)}
  .svc li:hover .svc__go{background:var(--rose);border-color:var(--rose);color:#fff;transform:rotate(-45deg)}
}
@media (max-width:760px){
  .svc a{grid-template-columns:72px minmax(0,1fr) auto;grid-template-areas:"t n g" "t d g";align-items:center;gap:2px 16px}
  .svc__thumb{display:block;grid-area:t;width:72px;height:96px;border-radius:999px 999px 8px 8px;overflow:hidden}
  .svc__thumb img{width:100%;height:100%;object-fit:cover}
  .svc__name{grid-area:n;font-size:2rem}
  .svc__desc{grid-area:d;font-size:.95rem;line-height:1.4}
  .svc__go{grid-area:g;width:44px;height:44px}
}
.peek{position:fixed;left:0;top:0;z-index:50;width:min(22vw,300px);aspect-ratio:3/4.2;pointer-events:none;opacity:0;scale:.9;transition:opacity 220ms ease-out, scale 300ms var(--ease-out);will-change:transform}
.peek.is-on{opacity:1;scale:1}
.peek__frame{width:100%;height:100%;border-radius:999px 999px 8px 8px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(43,27,34,.5)}
.peek img{width:100%;height:100%;object-fit:cover}
@media (hover:none),(max-width:760px){.peek{display:none}}

/* ---------- Galeria ---------- */
.gallery{background:var(--blush);position:relative}
.gallery__inner{padding:clamp(70px,10vw,140px) 0}
.gallery__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(32px,5vw,64px)}
.gallery__head h2{max-width:11em}
.gallery__note{color:var(--ink-soft)}
.gallery__note .is-mouse{display:none}
.gallery__viewport{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--gutter);padding-inline:var(--gutter);scrollbar-width:none;touch-action:pan-x pan-y}
.gallery__viewport::-webkit-scrollbar{display:none}
.gallery__track{display:flex;align-items:flex-end;gap:clamp(14px,2vw,28px);width:max-content;padding-right:var(--gutter)}
.gallery__track li{flex:none;width:clamp(210px,24vw,340px);aspect-ratio:3/4.1;border-radius:999px 999px 10px 10px;scroll-snap-align:start}
.gallery__track li.tall{aspect-ratio:3/4.8;width:clamp(230px,27vw,380px)}
.gallery__track img{pointer-events:none;user-select:none;-webkit-user-drag:none;transition:scale 900ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .gallery__track li:hover img{scale:1.06}
  .gallery__note .is-mouse{display:inline}
  .gallery__note .is-touch{display:none}
  .gallery__viewport{scroll-snap-type:none;cursor:grab;-webkit-user-select:none;user-select:none}
  .gallery__viewport.is-drag{cursor:grabbing}
}

/* ---------- Agendamento ---------- */
.book{background:var(--plum);color:var(--on-plum);padding:clamp(80px,12vw,170px) 0;position:relative;overflow:clip}
.book::before{content:"";position:absolute;right:-12vw;top:-10vw;width:48vw;aspect-ratio:3/4.3;border-radius:999px 999px 0 0;border:1px solid rgba(217,163,174,.2);pointer-events:none}
.book::after{content:"";position:absolute;right:-6vw;top:-4vw;width:36vw;aspect-ratio:3/4.3;border-radius:999px 999px 0 0;border:1px solid rgba(217,163,174,.14);pointer-events:none}
.book__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,100px);align-items:start;position:relative;z-index:1}
.book__intro{position:sticky;top:calc(var(--header-h) + 24px)}
.book__intro h2{font-size:clamp(2.5rem,5vw,4.6rem)}
.book__intro>p{margin-top:22px;max-width:34ch;color:var(--on-plum-soft)}
.sum{margin-top:36px;padding:24px 26px;border:1px solid rgba(245,236,228,.18);border-radius:22px;background:rgba(245,236,228,.04)}
.sum h3{font:italic 500 1.5rem/1 var(--serif);margin-bottom:14px}
.sum dl{display:grid;gap:10px}
.sum dl div{display:grid;grid-template-columns:90px 1fr;gap:12px;font-size:.98rem}
.sum dt{color:var(--on-plum-soft)}
.sum dd{font-weight:500}

.wiz{background:var(--cream);color:var(--ink);border-radius:32px;padding:clamp(22px,3.4vw,44px);box-shadow:0 40px 80px -30px rgba(0,0,0,.55)}
.wiz__steps{display:flex;gap:6px;margin-bottom:30px;font-size:.88rem;font-weight:500;color:var(--ink-soft)}
.wiz__steps li{flex:1;display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:2px solid rgba(43,27,34,.12);transition:border-color 400ms var(--ease-out), color 300ms}
.wiz__steps span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid currentColor;font-size:.78rem;transition:background-color 300ms, color 300ms}
.wiz__steps li.is-on,.wiz__steps li.is-done{color:var(--ink);border-color:var(--rose)}
.wiz__steps li.is-on span,.wiz__steps li.is-done span{background:var(--rose);border-color:var(--rose);color:#fff}
@media (max-width:520px){.wiz__steps{font-size:0}.wiz__steps li{justify-content:center}.wiz__steps span{font-size:.78rem}}

.step{display:none}
.step.is-on{display:block;animation:stepIn 380ms var(--ease-out)}
@keyframes stepIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.step__q{font:italic 500 clamp(1.7rem,3vw,2.3rem)/1.1 var(--serif);margin-bottom:20px}
.step__q small{font:400 .95rem var(--sans);color:var(--ink-soft);font-style:normal;margin-left:6px}
.step__q--2{margin-top:30px}
.step__note{margin-top:16px;font-size:.9rem;color:var(--ink-soft)}

.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{
  min-height:48px;padding:0 22px;border-radius:999px;border:1px solid rgba(43,27,34,.28);background:transparent;font-weight:500;
  display:inline-flex;align-items:center;gap:10px;
  transition:transform 160ms var(--ease-out), background-color 220ms, color 220ms, border-color 220ms;
}
.chip::before{content:"";width:14px;height:14px;border-radius:50%;border:1px solid currentColor;transition:background-color 200ms, box-shadow 200ms}
.chip:active{transform:scale(.96)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.chip[aria-pressed="true"]::before{background:var(--rose-soft);border-color:var(--rose-soft)}
@media (hover:hover) and (pointer:fine){.chip:hover{border-color:var(--rose);color:var(--rose)}.chip[aria-pressed="true"]:hover{color:var(--cream);border-color:var(--ink)}}

.days{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;margin-inline:-2px;scrollbar-width:thin;scroll-snap-type:x proximity}
.day{
  flex:none;scroll-snap-align:start;width:72px;padding:12px 0 14px;border-radius:999px 999px 18px 18px;
  border:1px solid rgba(43,27,34,.25);background:transparent;display:grid;gap:2px;justify-items:center;line-height:1.1;
  transition:transform 160ms var(--ease-out), background-color 220ms, color 220ms, border-color 220ms;
}
.day small{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}
.day b{font:italic 500 2rem/1 var(--serif)}
.day em{font-style:normal;font-size:.74rem;color:var(--rose)}
.day:active{transform:scale(.96)}
.day[aria-checked="true"]{background:var(--rose);border-color:var(--rose);color:#fff}
.day[aria-checked="true"] small,.day[aria-checked="true"] em{color:#fff}
@media (hover:hover) and (pointer:fine){.day:hover{border-color:var(--rose)}}

.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}
.slot{min-height:46px;border-radius:14px;border:1px solid rgba(43,27,34,.25);background:transparent;font-weight:500;font-variant-numeric:tabular-nums;transition:transform 160ms var(--ease-out), background-color 220ms, color 220ms, border-color 220ms}
.slot:active{transform:scale(.96)}
.slot[aria-checked="true"]{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.slot[disabled]{opacity:.35;text-decoration:line-through;cursor:not-allowed}
@media (hover:hover) and (pointer:fine){.slot:not([disabled]):hover{border-color:var(--rose)}}

.field{display:grid;gap:8px;margin-bottom:18px}
.field>span{font-weight:500}
.field small{font-weight:400;color:var(--ink-soft)}
.field input,.field textarea{width:100%;padding:15px 18px;border-radius:16px;border:1px solid rgba(43,27,34,.28);background:#fff8f3;resize:vertical;transition:border-color 200ms, box-shadow 200ms}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 3px rgba(168,76,96,.18)}
.field.is-bad input{border-color:#B3261E}
.err{font-style:normal;font-size:.9rem;color:#B3261E}

.wiz__nav{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:30px}
.wiz__nav .btn--ghost{margin-right:auto}
@media (max-width:480px){.wiz__nav{flex-wrap:wrap}.wiz__nav .btn{flex:1 1 auto;padding:0 18px}.wiz__nav .btn--ghost{margin-right:0;flex:0 0 auto}}
.wiz__err{margin-top:14px;color:#B3261E;font-size:.95rem;text-align:right}

@media (max-width:900px){
  .book__grid{grid-template-columns:1fr}
  .book__intro{position:static}
  .sum{display:none}
}

/* ---------- Visite ---------- */
.visit{padding:clamp(80px,12vw,170px) 0;background:var(--cream)}
.visit__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,7vw,120px);align-items:center}
.arch--visit{width:100%;aspect-ratio:3/4.3;box-shadow:0 40px 70px -35px rgba(43,27,34,.5)}
.visit address{margin-top:26px;font-size:1.3rem;line-height:1.4}
.hours{margin-top:26px;max-width:380px;border-top:1px solid rgba(43,27,34,.18)}
.hours li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid rgba(43,27,34,.18);font-variant-numeric:tabular-nums}
.hours li.today{color:var(--rose);font-weight:600}
.visit__cta{margin-top:34px;display:flex;align-items:center;flex-wrap:wrap;gap:10px 26px}
@media (max-width:820px){.visit__grid{grid-template-columns:1fr}.arch--visit{max-width:380px}}

/* ---------- Dúvidas ---------- */
.faq{padding:clamp(40px,8vw,120px) 0 clamp(90px,12vw,170px);background:var(--cream)}
.faq__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(30px,6vw,100px)}
.faq h2{font-size:clamp(2.4rem,4.8vw,4.2rem)}
.faq details{border-top:1px solid rgba(43,27,34,.18)}
.faq details:last-child{border-bottom:1px solid rgba(43,27,34,.18)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font:italic 500 clamp(1.4rem,2.4vw,1.9rem)/1.15 var(--serif);touch-action:manipulation}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;background:
  linear-gradient(var(--rose),var(--rose)) center/100% 1.5px no-repeat,
  linear-gradient(var(--rose),var(--rose)) center/1.5px 100% no-repeat;transition:transform 300ms var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{overflow:hidden}
.faq details p{padding:0 0 26px;max-width:52ch;color:var(--ink-soft)}
.faq details[open]>div{animation:fold 360ms var(--ease-out)}
@keyframes fold{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (max-width:820px){.faq__grid{grid-template-columns:1fr}}

/* ---------- Rodapé ---------- */
.foot{background:var(--plum);color:var(--on-plum);padding:clamp(60px,9vw,120px) 0 36px;overflow:hidden}
.foot__word{font:italic 500 clamp(5rem,22vw,20rem)/.9 var(--serif);letter-spacing:-.04em;text-align:center;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(217,163,174,.45);margin-bottom:40px;padding-bottom:.1em}
.foot__row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px 30px;color:var(--on-plum-soft);font-size:.95rem}
.foot__row p:last-child{display:flex;gap:24px}
.foot__row a{padding:8px 0;color:var(--on-plum);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size 300ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.foot__row a:hover{background-size:100% 1px}}

/* ---------- Barra fixa mobile ---------- */
.dock{
  position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom, 0px));z-index:90;
  height:56px;border-radius:999px;background:var(--rose);color:#fff;font-weight:500;
  display:none;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 18px 40px -12px rgba(168,76,96,.7);
  transform:translateY(140%);visibility:hidden;transition:transform 450ms var(--ease-out), visibility 0s 450ms;
}
.dock svg{width:18px;height:18px}
.dock.is-on{transform:none;visibility:visible;transition-delay:0s}
.dock:active{scale:.98}
@media (max-width:820px){.dock{display:flex}.foot{padding-bottom:100px}}

/* ---------- Cursor ---------- */
.cursor{
  position:fixed;left:0;top:0;z-index:250;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;
  border:1px solid var(--rose);pointer-events:none;opacity:0;
  display:grid;place-items:center;
  transition:width 250ms var(--ease-out), height 250ms var(--ease-out), margin 250ms var(--ease-out), background-color 250ms, opacity 250ms;
}
.cursor.is-on{opacity:1}
.cursor.is-big{width:84px;height:84px;margin:-42px 0 0 -42px;background:var(--rose);border-color:var(--rose)}
.cursor span{font-size:.78rem;font-weight:500;color:#fff;opacity:0;transition:opacity 200ms;letter-spacing:.04em}
.cursor.is-big span{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- Revelações ---------- */
.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity 800ms var(--ease-out), transform 800ms var(--ease-out);transition-delay:var(--d,0ms)}
.js [data-reveal].in{opacity:1;transform:none}
.js [data-split] .ln{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .04em .14em;margin:-.08em -.04em -.14em}
.js [data-split] .ln>span{display:inline-block;transform:translateY(112%);transition:transform 1000ms var(--ease-out);transition-delay:calc(var(--i) * 70ms)}
.js [data-split].in .ln>span{transform:none}
.js [data-arch] img{clip-path:inset(100% 0 0 0);scale:1.25;transition:clip-path 1300ms var(--ease-in-out), scale 1600ms var(--ease-out);transition-delay:var(--d,0ms)}
.js [data-arch].in img{clip-path:inset(0 0 0 0);scale:1}
.js .hero [data-reveal],.js .hero [data-split],.js .hero [data-arch]{transition-delay:calc(var(--d,0ms) + 0ms)}

/* ---------- Movimento reduzido ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important}
  .marquee__track{animation:none}
  .badge>svg{animation:none}
  .js [data-reveal]{transform:none;transition:opacity 300ms}
  .js [data-split] .ln>span{transform:none}
  .js [data-arch] img{clip-path:none;scale:1}
  .curtain{display:none}
}
