/* ---------- Tokens ---------- */
:root{
  --green:#01322c;            /* fundo do logo */
  --green-deep:#00241f;
  --green-2:#0b4136;
  --chair:#4a6a45;            /* verde das cadeiras */
  --chair-soft:#dfe6d8;
  --cream:#f3ede2;            /* paredes */
  --paper:#faf7f1;
  --wood:#8a5a33;             /* bancadas de nogueira */
  --wood-dark:#3e2716;
  --wood-light:#d2aa80;
  --ink:#15201c;
  --muted:#55615c;
  --line:#e0d7c7;
  --on-dark:#f3ede2;
  --on-dark-muted:#b7c6bf;
  --silver:linear-gradient(180deg,#f4f6f4 0%,#a7b8b1 100%);
  --wrap:1240px;
  --gutter:clamp(20px,4.5vw,56px);
  --head:84px;
  --serif:"Instrument Serif","Times New Roman",serif;
  --cond:"Antonio","Arial Narrow",sans-serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,.7,.18,1);
  --pill:999px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0;text-wrap:pretty}
::selection{background:var(--wood-light);color:var(--green-deep)}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:400;line-height:1;letter-spacing:-.01em;text-wrap:balance}
em{font-style:italic}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.label{font:400 .95rem/1 var(--cond);letter-spacing:.22em;text-transform:uppercase;color:var(--wood)}
.dark .label{color:var(--wood-light)}
.dark{background:var(--green);color:var(--on-dark)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-80px;z-index:200;background:var(--cream);color:var(--green);padding:12px 16px;border-radius:8px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--wood-light);outline-offset:4px;border-radius:4px}

/* ---------- Botões ---------- */
.btn{--bg:var(--green);--fg:var(--on-dark);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:52px;padding:.85em 1.6em;border-radius:var(--pill);border:1px solid transparent;background:var(--bg);color:var(--fg);font:600 1rem/1.1 var(--body);text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--wood);transform:translateY(101%);border-radius:inherit;transition:transform .45s var(--ease)}
.btn:hover::before{transform:none}
/* O texto só muda de cor depois que o fundo de madeira cobre o botão (evita texto branco sobre creme) */
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -16px rgba(0,0,0,.45);color:#fff;transition:transform .25s var(--ease),color .25s var(--ease) .15s,box-shadow .3s var(--ease)}
.btn:active{transform:translateY(0) scale(.97)}
.btn svg{width:20px;height:20px;flex:none}
.btn .arrow{transition:transform .3s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}
.btn-cream{--bg:var(--cream);--fg:var(--green)}
.btn-line{--bg:transparent;--fg:currentColor;border-color:currentColor}
.dark .btn-line{--fg:var(--on-dark);border-color:rgba(243,237,226,.45)}
.link{font-weight:600;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:2px;transition:background-size .35s var(--ease)}
.link:hover{background-size:0 1px;background-position:100% 100%}

/* ---------- Cabeçalho ---------- */
.head{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--head);color:var(--on-dark);transition:background-color .4s var(--ease),height .4s var(--ease),box-shadow .4s var(--ease)}
/* Sem o main.js o cabeçalho não sabe da rolagem: fica com fundo verde para o menu claro não sumir sobre as seções claras */
html:not(.ready) .head{background:var(--green)}
/* Fundo opaco no mesmo verde do fundo do logo (#01322c), para o logo não destacar da barra */
.head.scrolled{background:var(--green);--head:72px;height:72px;box-shadow:0 10px 30px -20px rgba(0,0,0,.6)}
.head .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:block;flex:none;line-height:0}
.brand img{height:60px;width:auto;transition:height .4s var(--ease)}
.head.scrolled .brand img{height:52px}
.nav{display:flex;align-items:center;gap:36px}
.nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.nav ul a{position:relative;display:block;padding:12px 0;text-decoration:none;font-weight:500;font-size:.97rem}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav ul a:hover::after,.nav ul a[aria-current="true"]::after{transform:scaleX(1);transform-origin:left}
.nav .btn{min-height:46px;padding:.7em 1.3em}
.menu-btn{display:none;align-items:center;gap:10px;background:none;border:1px solid rgba(243,237,226,.4);color:var(--on-dark);border-radius:var(--pill);min-height:44px;padding:0 18px;font:600 .95rem var(--body);cursor:pointer}
.menu-btn i{display:block;width:16px;height:1px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor;transition:box-shadow .3s,transform .3s}
.menu-btn[aria-expanded="true"] i{box-shadow:none;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] i::after{content:"";display:block;width:16px;height:1px;background:currentColor;transform:rotate(90deg)}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--green);color:var(--on-dark);min-height:100svh;padding:calc(var(--head) + clamp(24px,5vh,56px)) 0 clamp(40px,7vh,72px);overflow:hidden}
.hero::before{content:"";position:absolute;inset:auto -10% -40% 30%;height:80%;background:radial-gradient(closest-side,rgba(74,106,69,.35),transparent);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,80px);align-items:center;min-height:calc(100svh - var(--head) - clamp(64px,12vh,128px))}
.hero-copy{display:flex;flex-direction:column;gap:clamp(20px,3vh,32px)}
.hero .label{text-wrap:balance;line-height:1.4}
.hero h1{font-size:clamp(3.3rem,7.6vw,7.4rem);line-height:.92;letter-spacing:-.02em}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .ln > span{display:block}
.hero h1 em{color:var(--wood-light)}
.hero .intro{max-width:31em;font-size:clamp(1.05rem,1.3vw,1.2rem);color:var(--on-dark-muted)}
.hero .intro strong{color:var(--on-dark);font-weight:500}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-meta{display:flex;flex-wrap:wrap;gap:12px 28px;padding-top:24px;border-top:1px solid rgba(243,237,226,.16);font-size:.95rem;color:var(--on-dark-muted)}
.hero-meta b{display:block;font:300 1.35rem/1.1 var(--cond);letter-spacing:.04em;color:var(--on-dark);text-transform:uppercase}
.hero-meta a{text-decoration:underline;text-decoration-color:rgba(243,237,226,.35);text-underline-offset:4px}
.hero-meta a b{text-decoration:none}
.hero-meta a:hover{text-decoration-color:var(--wood-light)}
.hero-meta a:hover b{color:var(--wood-light)}
.stars{color:#e0bd78;letter-spacing:.12em}

.hero-visual{position:relative;justify-self:end;width:min(100%,520px)}
.capsule{position:relative;overflow:hidden;border-radius:var(--pill)}
.hero-photo{aspect-ratio:5/7.4;border-radius:var(--pill)}
.hero-photo img{position:absolute;inset:-6% 0 0 0;width:100%;height:106%;object-fit:cover;object-position:60% 50%;will-change:transform}
.hero-ring{position:absolute;inset:-18px;border:1px solid rgba(210,170,128,.35);border-radius:var(--pill);pointer-events:none}
.hero-card{position:absolute;left:-56px;bottom:56px;background:var(--cream);color:var(--ink);border-radius:20px;padding:18px 22px;box-shadow:0 24px 50px -24px rgba(0,0,0,.6);min-width:220px}
.hero-card .label{font-size:.82rem;color:var(--wood)}
.hero-card p{font:400 1.7rem/1.05 var(--serif);margin-top:8px}
.hero-card small{display:block;color:var(--muted);font-size:.9rem;margin-top:4px}
.scroll-cue{position:absolute;left:calc(50% + 40px);bottom:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font:300 .78rem var(--cond);letter-spacing:.25em;text-transform:uppercase;color:var(--on-dark-muted);text-decoration:none}
.scroll-cue::after{content:"";width:1px;height:36px;background:linear-gradient(var(--wood-light),transparent);animation:drip 2.4s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* Entrada do hero */
.js .hero h1 .ln > span{transform:translateY(105%)}
.js .hero .fade{opacity:0;transform:translateY(16px)}
.js .hero-photo{clip-path:inset(100% 0 0 0 round 300px)}
.js .hero-card,.js .hero-ring{opacity:0}
.loaded .hero h1 .ln > span{transform:none;transition:transform 1.1s var(--ease)}
.loaded .hero h1 .ln:nth-child(2) > span{transition-delay:.08s}
.loaded .hero h1 .ln:nth-child(3) > span{transition-delay:.16s}
.loaded .hero .fade{opacity:1;transform:none;transition:opacity .9s var(--ease) .35s,transform .9s var(--ease) .35s}
.loaded .hero-photo{clip-path:inset(0 0 0 0 round 300px);transition:clip-path 1.4s var(--ease) .1s}
.loaded .hero-ring{opacity:1;transition:opacity 1.2s ease .9s}
.loaded .hero-card{opacity:1;transition:opacity .8s ease 1s}
.loaded .hero-card{animation:float 7s ease-in-out 2s infinite}
@keyframes float{50%{transform:translateY(-8px)}}

/* ---------- Faixa de marcas (estática, discreta) ---------- */
.brands{background:var(--cream);border-bottom:1px solid var(--line);padding:18px 0}
.brands-inner{display:flex;align-items:center;justify-content:space-between;gap:12px 32px;flex-wrap:wrap}
.brands-label{font:400 .85rem/1.2 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--wood)}
.brands-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;list-style:none;margin:0;padding:0;font:400 .95rem/1.2 var(--cond);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.brands-list li{display:flex;align-items:center}
.brands-list li + li::before{content:"";width:4px;height:4px;margin:0 14px;border-radius:50%;background:var(--wood-light)}

/* ---------- Revelações ao rolar ---------- */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}
.js [data-reveal="img"]{opacity:1;transform:none;clip-path:inset(14% 0 0 0);transition:clip-path 1.3s var(--ease)}
.js [data-reveal="img"] img,.js [data-reveal="img"] video{transform:scale(1.12);transition:transform 1.6s var(--ease)}
.js [data-reveal="img"].in{clip-path:inset(0 0 0 0)}
/* O vídeo é arredondado à parte pelo navegador: o recorte da entrada precisa seguir a mesma curva */
.js .bride-art[data-reveal="img"]{clip-path:inset(14% 0 0 0 round 28px)}
.js .bride-art[data-reveal="img"].in{clip-path:inset(0 0 0 0 round 28px)}
.js [data-reveal="img"].in img,.js [data-reveal="img"].in video{transform:none}
[data-delay="1"]{transition-delay:.1s !important}
[data-delay="2"]{transition-delay:.2s !important}

/* ---------- Seções ---------- */
section{position:relative}
.sec{padding-block:clamp(72px,9vw,128px)}
.sec-title{font-size:clamp(2.6rem,5.6vw,5rem);line-height:.98}
.sec-title em{color:var(--wood)}
.dark .sec-title em{color:var(--wood-light)}
.lede{font-size:clamp(1.05rem,1.3vw,1.2rem);color:var(--muted);max-width:32em}
.dark .lede{color:var(--on-dark-muted)}

/* ---------- Percurso pelo espaço ---------- */
.journey{background:var(--green);color:var(--on-dark)}
.journey-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px)}
.journey-aside{position:sticky;top:calc(var(--head) + 40px);align-self:start;display:flex;flex-direction:column;gap:28px;padding-bottom:40px}
.journey-aside .sec-title{font-size:clamp(2.6rem,4.6vw,4.4rem)}
.journey-aside .lede{max-width:28em}
.stops{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid rgba(243,237,226,.14)}
.stops li{border-bottom:1px solid rgba(243,237,226,.14)}
.stops a{display:grid;grid-template-columns:52px 1fr;align-items:baseline;gap:0 8px;padding:18px 0;text-decoration:none;color:var(--on-dark-muted);transition:color .4s var(--ease)}
.stops .n{font:300 1rem var(--cond);letter-spacing:.12em;color:var(--on-dark-muted);transition:color .4s}
.stops .t{font:400 clamp(1.6rem,2.2vw,2rem)/1.1 var(--serif);transition:transform .45s var(--ease)}
.stops .d{grid-column:2;display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.stops .d > span{overflow:hidden;font-size:1rem;color:var(--on-dark-muted);line-height:1.6}
.stops li.on a{color:var(--on-dark)}
.stops li.on .n{color:var(--wood-light)}
.stops li.on .t{transform:translateX(6px)}
.stops li.on .d{grid-template-rows:1fr}
.stops li.on .d > span{padding-top:8px}
.stops a:hover{color:var(--on-dark)}
.journey-media{display:flex;flex-direction:column;gap:clamp(56px,9vw,120px);padding-top:8px}
.stop-fig{margin:0;position:relative}
.stop-fig .frame{position:relative;overflow:hidden;background:var(--green-2)}
.stop-fig img{width:100%;height:100%;object-fit:cover}
.stop-fig:nth-child(1) .frame{aspect-ratio:3/4.4;border-radius:var(--pill);width:72%}
.stop-fig:nth-child(2) .frame{aspect-ratio:1/1;border-radius:24px;width:100%}
.stop-fig:nth-child(3) .frame{aspect-ratio:4/4.6;border-radius:24px;width:78%;margin-left:auto}
.stop-fig:nth-child(4) .frame{aspect-ratio:3/4;border-radius:24px;width:84%}
.stop-fig .tag{position:absolute;bottom:24px;right:20px;z-index:2;background:rgba(1,50,44,.82);backdrop-filter:blur(6px);color:var(--on-dark);border-radius:var(--pill);padding:8px 16px;font:300 .9rem var(--cond);letter-spacing:.16em;text-transform:uppercase}
.stop-fig:nth-child(3) .tag{right:auto;left:calc(22% + 20px)}
.stop-fig:nth-child(1) .tag{right:auto;left:50%;transform:translateX(-50%);white-space:nowrap}
.stop-text{display:none}
.journey-hint{display:none;font:300 .9rem var(--cond);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-muted)}

/* ---------- Serviços ---------- */
.services{background:var(--cream)}
.svc-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:24px 64px;align-items:end;margin-bottom:clamp(40px,6vw,72px)}
.svc-top .label{grid-column:1/-1}
.svc-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(32px,5vw,72px);align-items:start}
.svc-list{border-top:1px solid var(--line)}
.svc-row{border-bottom:1px solid var(--line)}
.svc-head{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:baseline;gap:6px 16px;padding:clamp(24px,3vw,34px) 0 18px}
.svc-head .n{font:300 1rem var(--cond);letter-spacing:.14em;color:var(--wood)}
.svc-head .name{font:400 clamp(2.2rem,3.6vw,3.2rem)/1 var(--serif);letter-spacing:-.015em}
.svc-head .hint{grid-column:2;font-size:.98rem;color:var(--muted)}
.svc-body{padding:0 0 clamp(26px,3vw,36px) 80px;display:flex;flex-direction:column;gap:18px}
.svc-body p{color:var(--muted);max-width:34em}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 20px 0 14px;border-radius:var(--pill);border:1px solid #cdbfa8;background:var(--paper);color:var(--ink);font:500 1rem var(--body);cursor:pointer;transition:background-color .3s,border-color .3s,color .3s,transform .25s var(--ease)}
.chip::before{content:"";width:20px;height:20px;border-radius:50%;border:1px solid #b9a98f;background:center/12px no-repeat;transition:background-color .3s,border-color .3s}
.chip:hover{border-color:var(--green);transform:translateY(-2px)}
.chip:active{transform:scale(.97)}
.chip[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:var(--on-dark)}
.chip[aria-pressed="true"]::before{background-color:var(--wood-light);border-color:var(--wood-light);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2 5 8.5l4.5-5' fill='none' stroke='%2301322c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.svc-works{margin:6px 0 0;display:flex;flex-direction:column;gap:10px;max-width:520px}
.svc-works-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.svc-works img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:20px;background:var(--paper)}
.svc-works--3{max-width:640px}
.svc-works--3 .svc-works-grid{grid-template-columns:repeat(3,1fr)}
.svc-works--3 img{aspect-ratio:4/5}
.svc-works figcaption{font:400 .9rem var(--cond);letter-spacing:.16em;text-transform:uppercase;color:var(--wood)}

.plan{position:sticky;top:calc(var(--head) + 28px);background:var(--green);color:var(--on-dark);border-radius:32px;overflow:hidden;box-shadow:0 40px 80px -50px rgba(1,50,44,.8)}
.plan-photo{position:relative;aspect-ratio:16/11;overflow:hidden}
.plan-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.plan-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(1,50,44,.95))}
.plan-photo .tag{position:absolute;left:24px;bottom:16px;z-index:2;font:300 .85rem var(--cond);letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark)}
.plan-body{padding:20px 28px 28px;display:flex;flex-direction:column;gap:16px}
.plan h3{font-size:2rem}
.plan-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;min-height:36px}
.plan-list li{animation:pop .35s var(--ease)}
.plan-x{display:inline-flex;align-items:center;gap:8px;min-height:36px;background:rgba(243,237,226,.1);border:1px solid rgba(243,237,226,.18);border-radius:var(--pill);padding:4px 10px 4px 14px;color:var(--on-dark);font:400 .93rem var(--body);cursor:pointer;transition:background-color .3s,border-color .3s}
.plan-x::after{content:"";width:10px;height:10px;background:linear-gradient(45deg,transparent 45%,currentColor 45%,currentColor 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,currentColor 45%,currentColor 55%,transparent 55%);opacity:.7}
.plan-x:hover{background:rgba(243,237,226,.18);border-color:rgba(243,237,226,.4)}
.plan-x:hover::after{opacity:1}
.plan-list .empty{background:none;border:0;padding:6px 0;color:var(--on-dark-muted);animation:none}
@keyframes pop{from{opacity:0;transform:scale(.85)}}
.plan .btn{width:100%}
.plan small{color:var(--on-dark-muted);font-size:.9rem;text-align:center}

/* ---------- Dia da Noiva ---------- */
.bride{background:var(--paper)}
.bride-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:center}
/* Bloco na proporção do vídeo (720×1280 = 9:16), sem cortar o vídeo; limitado pela altura da tela */
.bride-art{position:relative;margin:0;justify-self:end;width:min(100%,380px,calc((100svh - 140px) * 9 / 16));aspect-ratio:9/16;border-radius:28px;overflow:hidden;background:var(--cream);box-shadow:0 40px 80px -50px rgba(1,50,44,.6)}
.bride-art img,.bride-art video{display:block;width:100%;height:100%;object-fit:cover}
/* Foto de espera é mais larga (446×568): o enquadramento mantém o rosto e a garrafa */
.bride-art .bride-still{object-position:78% 50%}
.bride-art video{position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease)}
.js [data-reveal="img"] .bride-video{transition:opacity .6s var(--ease),transform 1.6s var(--ease)}
.bride-art.is-playing video,.bride-art.has-frame video{opacity:1}
.bride-toggle{position:absolute;right:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:0 12px;justify-content:center;border:1px solid rgba(243,237,226,.35);border-radius:var(--pill);background:rgba(1,50,44,.78);color:var(--on-dark);font:600 .9rem var(--body);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color .3s var(--ease)}
.bride-toggle[hidden]{display:none}
.bride-toggle:hover{background:rgba(1,50,44,.95)}
.bride-toggle:focus-visible{outline:2px solid var(--on-dark);outline-offset:3px}
.bride-toggle svg{width:18px;height:18px;flex:none}
.bride-toggle .i-pause,.bride-art.is-playing .bride-toggle .i-play{display:none}
.bride-art.is-playing .bride-toggle .i-pause{display:block}
.bride-toggle-txt{padding-right:4px}
.bride-art.is-playing .bride-toggle-txt,.bride-art.was-played .bride-toggle-txt{display:none}
.bride-text{display:flex;flex-direction:column;align-items:flex-start;gap:22px;max-width:30em}
.bride-lead{font:400 clamp(1.5rem,2.2vw,2rem)/1.2 var(--serif);color:var(--ink);text-wrap:balance}
.bride-note{color:var(--muted)}
/* ---------- Avaliação ---------- */
.proof{background:var(--wood-dark);color:var(--on-dark);overflow:hidden}
.proof::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 85% 20%,rgba(210,170,128,.18),transparent 70%);pointer-events:none}
.proof-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,6vw,96px);align-items:center}
.proof .big{font:400 clamp(3rem,6vw,5.5rem)/.95 var(--serif);letter-spacing:-.02em;margin-top:24px}
.proof .big em{color:var(--wood-light)}
.proof-stars{display:flex;gap:10px;margin:26px 0 0}
.proof-stars svg{width:clamp(28px,3vw,40px);height:auto;fill:#e0bd78}
.js .proof-stars svg{opacity:0;transform:scale(.4) rotate(-30deg);transition:opacity .5s,transform .7s var(--ease)}
.js .proof-stars.in svg{opacity:1;transform:none}
.proof-stars.in svg:nth-child(2){transition-delay:.08s}
.proof-stars.in svg:nth-child(3){transition-delay:.16s}
.proof-stars.in svg:nth-child(4){transition-delay:.24s}
.proof-stars.in svg:nth-child(5){transition-delay:.32s}
.proof .label{color:var(--wood-light)}
.proof-side{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.proof-side p{color:#d9c9b6;font-size:1.1rem}
.proof .btn{--bg:var(--cream);--fg:var(--wood-dark)}
.proof .btn::before{background:var(--wood-light)}
.proof .btn:hover{color:var(--wood-dark)}
.partner{display:flex;align-items:center;gap:16px;padding-top:24px;border-top:1px solid rgba(243,237,226,.16);width:100%}
.partner b{font:300 1.4rem/1.1 var(--cond);letter-spacing:.06em;text-transform:uppercase}
.partner span{display:block;color:#d9c9b6;font-size:.95rem}

/* ---------- Como agendar ---------- */
.book{background:var(--paper)}
.book-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;margin-bottom:clamp(48px,7vw,88px)}
.book-top .label{grid-column:1/-1}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:34px;height:1px;background:var(--line)}
.steps::after{content:"";position:absolute;left:0;right:0;top:34px;height:1px;background:var(--wood);transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease) .2s}
.steps.in::after{transform:scaleX(1)}
.steps li{position:relative;display:flex;flex-direction:column;gap:14px}
/* Os números já nascem verdes; só a linha é desenhada ao entrar na tela */
.steps .dot{width:68px;height:68px;border-radius:50%;background:var(--green);display:grid;place-items:center;font:300 1.5rem var(--cond);color:var(--on-dark);position:relative;z-index:1}
.steps h3{font-size:clamp(1.8rem,2.6vw,2.3rem);margin-top:10px}
.steps p{color:var(--muted);max-width:22em}

/* ---------- Visite ---------- */
.visit{background:var(--green);color:var(--on-dark)}
.visit-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:stretch}
.visit .addr{font:400 clamp(2.8rem,5.4vw,5rem)/.98 var(--serif);letter-spacing:-.02em;margin:22px 0 10px}
.visit .addr em{color:var(--wood-light)}
.visit .city{font:300 1.2rem var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-muted)}
.hours{margin:44px 0 40px;border-top:1px solid rgba(243,237,226,.16)}
.hours div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid rgba(243,237,226,.16)}
.hours dt{font-size:1.05rem}
.hours dd{margin:0;font:300 1.5rem var(--cond);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.hours-note{margin:-24px 0 36px;font-size:.95rem;color:var(--on-dark-muted)}
.hours div.today dt::after{content:"hoje";margin-left:12px;font:600 .72rem var(--body);letter-spacing:.1em;text-transform:uppercase;background:var(--wood-light);color:var(--green);padding:3px 9px;border-radius:var(--pill);vertical-align:middle}
.visit-actions{display:flex;flex-wrap:wrap;gap:12px}
.visit-social{margin-top:16px;color:var(--on-dark-muted)}
.visit-social a{display:inline-block;padding-block:11px;background-position:0 calc(100% - 9px)}
.map-frame{position:relative;min-height:440px;border-radius:32px;overflow:hidden;background:var(--green-2)}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.55) sepia(.12) contrast(1.02)}

/* ---------- Dúvidas ---------- */
.faq{background:var(--cream)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px)}
.faq-grid > div:first-child{position:sticky;top:calc(var(--head) + 40px);align-self:start}
.faq-grid .label{margin-bottom:24px}
.qa{margin:0;border-top:1px solid #d5cab7}
.qa > div{padding:24px 0;border-bottom:1px solid #d5cab7}
.qa dt{font:400 clamp(1.4rem,2vw,1.75rem)/1.2 var(--serif)}
.qa dd{margin:8px 0 0;color:var(--muted);max-width:40em}

/* ---------- Fechamento ---------- */
.close{background:var(--green-deep);color:var(--on-dark);text-align:center;overflow:hidden}
.close::before{content:"";position:absolute;left:50%;top:50%;width:min(1100px,140vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(210,170,128,.14);box-shadow:0 0 0 90px rgba(210,170,128,.025),0 0 0 200px rgba(210,170,128,.02);pointer-events:none}
.close .wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:28px}
.close h2{font-size:clamp(3rem,8vw,7.4rem);line-height:.92;letter-spacing:-.02em}
.close h2 em{color:var(--wood-light)}
.close p{color:var(--on-dark-muted);max-width:30em;font-size:1.1rem}
.close .phone{font:300 1.2rem var(--cond);letter-spacing:.14em;color:var(--on-dark-muted);text-decoration:none}

/* ---------- Rodapé ---------- */
.foot{background:var(--green);color:var(--on-dark-muted);border-top:1px solid rgba(243,237,226,.08);padding:56px 0 calc(36px + env(safe-area-inset-bottom));font-size:.95rem}
.foot .wrap{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:40px;align-items:start}
.foot img{height:96px;width:auto}
.foot b{display:block;color:var(--on-dark);font:300 1rem var(--cond);letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px}
/* Área de toque de ~44px sem mudar o espaçamento visível */
.foot a{text-decoration:none;display:inline-block;padding-block:10px;margin-block:-6px}
.foot a:hover{color:var(--on-dark)}
.foot .legal{grid-column:1/-1;padding-top:24px;border-top:1px solid rgba(243,237,226,.08);font-size:.85rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- Barra do celular ---------- */
.mbar{display:none}

/* ---------- Responsivo ---------- */
@media (max-width:1100px){
  .hero-card{left:-24px}
  .foot .wrap{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  :root{--head:70px}
  .head.scrolled{--head:64px;height:64px}
  .brand img{height:52px}
  .head.scrolled .brand img{height:46px}
  .menu-btn{display:inline-flex}
  .nav{position:fixed;inset:0;z-index:-1;background:var(--green);flex-direction:column;align-items:stretch;justify-content:center;gap:28px;padding:calc(var(--head) + 24px) var(--gutter) 40px;clip-path:circle(0 at calc(100% - 52px) 36px);visibility:hidden;transition:clip-path .7s var(--ease),visibility .7s}
  .nav.open{clip-path:circle(150% at calc(100% - 52px) 36px);visibility:visible}
  .nav ul{flex-direction:column;gap:0}
  .nav ul a{font:400 2.6rem/1.1 var(--serif);padding:14px 0;border-bottom:1px solid rgba(243,237,226,.12)}
  .nav ul a::after{display:none}
  .nav .btn{min-height:56px}
  body.menu-open{overflow:hidden}

  .hero{padding-top:calc(var(--head) + 28px);min-height:0}
  .hero-grid{grid-template-columns:1fr;min-height:0;gap:44px}
  .hero h1{font-size:clamp(3rem,13vw,5rem)}
  .hero-visual{justify-self:center;width:min(100%,460px)}
  .hero-photo{aspect-ratio:4/4.8}
  /* No celular o cartão sai de cima da fachada: fica centralizado na borda de baixo, sem cobrir a porta e o letreiro */
  .hero-visual{margin-bottom:28px}
  .hero-card{left:50%;bottom:-28px;translate:-50% 0;padding:12px 20px;min-width:0;width:max-content;white-space:nowrap;text-align:center}
  .hero-card p{font-size:1.35rem}
  .scroll-cue{display:none}

  .journey-grid{grid-template-columns:1fr;gap:40px}
  .journey-aside{position:static;padding-bottom:0}
  .stops{display:none}
  .journey-media{flex-direction:row;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) 12px;scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .journey-media::-webkit-scrollbar{display:none}
  .stop-fig{flex:0 0 min(80%,340px);scroll-snap-align:start}
  .stop-fig .frame{width:100% !important;margin:0 !important;aspect-ratio:3/4 !important;border-radius:24px !important}
  .stop-fig .tag{right:auto !important;left:16px !important;transform:none !important;bottom:16px}
  .journey-hint{display:block}
  .stop-text{display:block;margin-top:20px}
  .stop-text h3{font-size:1.9rem;margin-bottom:8px}
  .stop-text p{color:var(--on-dark-muted)}

  .svc-top,.svc-layout{grid-template-columns:1fr}
  .plan{position:static}
  .plan-photo{display:none}
  .plan-body{padding-top:28px}
  .svc-head{grid-template-columns:40px minmax(0,1fr)}
  .svc-body{padding-left:56px}
  .svc-works--3 .svc-works-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter);scrollbar-width:none}
  .svc-works--3 .svc-works-grid::-webkit-scrollbar{display:none}
  .svc-works--3 img{flex:0 0 min(60%,240px);width:min(60%,240px);min-width:0;scroll-snap-align:start}

  .bride-grid{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
  .bride-text{display:contents}
  .bride-text .label{order:1}
  .bride-text h2{order:2}
  .bride-lead{order:3}
  .bride-art{order:4;margin:8px 0;width:min(100%,400px,calc((100svh - 140px) * 9 / 16))}
  .bride-note{order:5}
  .bride-text .btn{order:6}
  .proof-grid{grid-template-columns:1fr}
  .book-top{grid-template-columns:1fr}
  .book-top .btn{justify-self:start}
  .steps{grid-template-columns:1fr;gap:36px}
  .steps::before,.steps::after{left:34px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .steps::after{transform:scaleY(0);transform-origin:top}
  .steps.in::after{transform:scaleY(1)}
  .steps li{display:grid;grid-template-columns:68px 1fr;gap:4px 20px}
  .steps .dot{grid-row:1/3}
  .steps h3{margin-top:14px}

  .visit-grid{grid-template-columns:1fr}
  .map-frame{min-height:280px;border-radius:28px}
  .faq-grid{grid-template-columns:1fr}
  .faq-grid > div:first-child{position:static}

  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(250,247,241,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line);transition:transform .4s var(--ease)}
  .mbar.is-hidden{transform:translateY(110%)}
  .mbar .btn{width:100%}
  body{padding-bottom:76px}
}
@media (max-width:560px){
  .hero-actions .btn,.visit-actions .btn,.book-top .btn,.close .btn,.bride .btn{width:100%}
  .hero-meta{flex-wrap:nowrap;gap:20px;font-size:.92rem;line-height:1.35}
  .hero-meta > *{flex:1 1 0;min-width:0}
  .hero-meta b{font-size:1.1rem;margin-bottom:2px}
  .foot .wrap{grid-template-columns:1fr}
  /* Marcas: rótulo em cima, nomes centralizados em até duas linhas */
  .brands{padding:16px 0}
  .brands-inner{flex-direction:column;gap:8px;text-align:center}
  /* Sem pontinhos no celular: a lista quebra em duas linhas e o separador ficaria no começo da linha */
  .brands-list{justify-content:center;gap:4px 18px;max-width:300px;font-size:.9rem;letter-spacing:.12em}
  .brands-list li + li::before{display:none}
  /* Serviços sem recuo: botões e fotos usam a largura toda */
  .svc-body{padding-left:0}
  .svc-head{grid-template-columns:32px minmax(0,1fr);gap:4px 12px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
  .js .hero h1 .ln > span,.js .hero .fade,.js .hero-card,.js .hero-ring,.js [data-reveal],.js [data-reveal="img"] img,.js .proof-stars svg{opacity:1 !important;transform:none !important}
  .js [data-reveal="img"] video{transform:none !important}
  .js .hero-photo,.js [data-reveal="img"]{clip-path:none !important}
  .steps::after{transform:none}
}
