/* Márcia Santiago · site definitivo
   Identidade: Id Marcia-aprovada.pdf. Títulos em Libre Baskerville, textos em Libre Franklin.
   As três animações de rolagem ficam em seções .palco (altura longa) com um .palco-fixo que gruda na tela. */

@font-face{font-family:"Libre Baskerville";src:url("../fonts/libre-baskerville.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Baskerville";src:url("../fonts/libre-baskerville-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url("../fonts/libre-franklin.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --papel:#F6F1EB; --linho:#E6DDD1; --blush:#F1DEDA; --rose:#C8A7A0; --rose-tinta:#9c7a72;
  --salvia:#90A894; --floresta:#627665; --pedra:#878581; --nevoa:#CFD0CB;
  --tinta:#3E3C39; --tinta-suave:#6b6863; --branco:#FFFDFA;
  --titulo:"Libre Baskerville", Georgia, "Times New Roman", serif;
  --texto:"Libre Franklin", "Helvetica Neue", Arial, sans-serif;
  --lateral:clamp(20px,5vw,72px);
  --largura:1240px;
  --topo-h:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--topo-h)}
html,body{overflow-x:clip}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--texto);font-weight:300;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--titulo);font-weight:400;line-height:1.18;margin:0;text-wrap:balance;letter-spacing:-.005em}
h2{font-size:clamp(30px,4.2vw,52px)}
h3{font-size:clamp(20px,1.9vw,24px)}
em{font-family:var(--titulo);font-style:italic;color:var(--rose-tinta)}
p{margin:0}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pular{position:absolute;left:-999px;top:8px;background:var(--floresta);color:#fff;padding:10px 16px;z-index:100}
.pular:focus{left:8px}
:focus-visible{outline:2px solid var(--floresta);outline-offset:3px}
.sobretitulo{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--floresta);font-weight:500;margin-bottom:18px}

.botao{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--floresta);color:#fff;text-decoration:none;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;padding:17px 30px;border:1px solid var(--floresta);transition:background .3s,color .3s;cursor:pointer;font-family:var(--texto)}
.botao:hover{background:transparent;color:var(--floresta)}
.botao-pequeno{padding:11px 18px;font-size:10.5px}
.botao-claro{background:var(--papel);color:var(--tinta);border-color:var(--papel)}
.botao-claro:hover{background:transparent;color:var(--papel)}
.link-sublinhado{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}

.secao{max-width:var(--largura);margin:0 auto;padding:clamp(80px,11vw,150px) var(--lateral)}
.secao-topo{max-width:760px;margin-bottom:clamp(40px,6vw,72px)}

/* Topo */
.topo{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--topo-h);padding:0 var(--lateral);padding-top:env(safe-area-inset-top,0px);transition:background .4s,box-shadow .4s,transform .4s}
.topo.solido{background:rgba(246,241,235,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(62,60,57,.08)}
.topo-marca img{width:150px;height:auto}
.topo-nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px)}
.topo-nav a{white-space:nowrap}
.topo-nav a:not(.botao){font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;font-weight:500;color:var(--tinta)}
.topo-nav a:not(.botao):hover{color:var(--rose-tinta)}
.topo-direita{display:flex;align-items:center;gap:clamp(16px,2vw,30px)}
.idioma{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.18em;font-weight:500}
.idioma a{text-decoration:none;color:var(--pedra);padding:4px 0;border-bottom:1px solid transparent;transition:color .3s}
.idioma a:hover{color:var(--rose-tinta)}
.idioma a[aria-current]{color:var(--tinta);border-bottom-color:var(--rose)}
.idioma span{color:var(--linho)}
.topo-menu{display:none;background:none;border:0;width:44px;height:44px;position:relative;cursor:pointer}
.topo-menu span:not(.sr){position:absolute;left:10px;right:10px;height:1px;background:var(--tinta);transition:transform .3s}
.topo-menu span:nth-child(1){top:18px}.topo-menu span:nth-child(2){top:26px}
.topo-menu[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.topo-menu[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.menu-celular{position:fixed;inset:0;z-index:45;background:var(--papel);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:var(--topo-h) 24px 40px}
.menu-celular a:not(.botao){font-family:var(--titulo);font-size:26px;text-decoration:none}
.menu-celular .botao{margin-top:14px}

/* Palcos das animações */
.palco{position:relative;height:var(--palco-h,480vh)}
.palco-fixo{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.quadros{position:absolute;inset:0;width:100%;height:100%;display:block}
.quadros-reserva{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
[data-de]{transition:opacity .5s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js [data-de]{opacity:0;transform:translateY(18px)}
.js [data-de].visivel{opacity:1;transform:none}

/* Animação 1 · convite */
.convite{--palco-h:520vh;background:var(--blush)}
.convite-abertura{position:absolute;left:50%;transform:translateX(-50%);bottom:clamp(18px,3.5vh,34px);text-align:center;z-index:2;background:rgba(246,241,235,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:14px 26px 12px;white-space:nowrap}
.js .convite-abertura[data-de]{transform:translate(-50%,18px)}
.js .convite-abertura[data-de].visivel{transform:translateX(-50%)}
.convite-abertura .sobretitulo{color:var(--tinta);margin-bottom:12px}
.rolar{display:inline-flex;flex-direction:column;align-items:center;gap:12px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--tinta-suave)}
.rolar i{width:1px;height:30px;background:linear-gradient(var(--tinta-suave),transparent);animation:rolar 2.2s ease-in-out infinite}
@keyframes rolar{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}}
.convite-texto{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--topo-h) clamp(28px,12vw,200px) 40px;z-index:2}
.convite-simbolo{width:clamp(110px,12vw,170px);margin-bottom:clamp(18px,3vh,32px);opacity:.92}
.convite-texto h1{font-size:clamp(34px,5.4vw,76px);line-height:1.12;color:var(--tinta)}
.convite-texto h1 span{display:block}
.convite-texto h1 em{display:block}
.convite-sub{max-width:520px;margin-top:clamp(18px,3vh,28px);font-size:clamp(15px,1.3vw,17px);color:var(--tinta-suave)}
.convite-acoes{display:flex;flex-wrap:wrap;gap:22px 30px;align-items:center;justify-content:center;margin-top:clamp(24px,4vh,40px)}

/* Sobre */
.sobre{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,110px);align-items:center}
.sobre-foto figure{margin:0;position:relative}
.sobre-foto img{width:100%;aspect-ratio:4/5;object-fit:cover}
.sobre-foto figure::after{content:"";position:absolute;inset:auto -22px -22px auto;width:62%;height:62%;border:1px solid var(--rose);z-index:-1}
figcaption,.credito{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--pedra);margin-top:12px}
.sobre-texto h2{margin-bottom:28px}
.sobre-texto p+p{margin-top:18px}
.sobre-texto p{max-width:60ch;color:var(--tinta-suave)}
.assinatura-texto{font-family:var(--titulo);font-style:italic;font-size:22px;color:var(--rose-tinta)!important;margin-top:26px!important}
.numeros{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:44px 0 0;padding-top:30px;border-top:1px solid var(--linho)}
.numeros dt{font-family:var(--titulo);font-size:clamp(24px,2.6vw,34px);color:var(--tinta);line-height:1.1}
.numeros dd{margin:8px 0 0;font-size:13px;color:var(--pedra);line-height:1.45}

/* Serviços */
.servicos{border-top:1px solid var(--linho)}
.servicos-lista{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,44px)}
.servico-foto{margin:0 0 26px}
.servico-foto figcaption{margin-top:10px}
.servico img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.servico:hover img{transform:scale(1.015)}
.servico-num{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-tinta);font-weight:500;margin-bottom:10px}
.servico h3{margin-bottom:14px}
.servico p{font-size:15.5px;color:var(--tinta-suave)}
.servico .servico-frase{font-family:var(--titulo);font-style:italic;color:var(--tinta);margin-top:16px;font-size:16px}
.servicos-outros{margin-top:clamp(56px,7vw,90px);padding-top:36px;border-top:1px solid var(--linho);display:grid;grid-template-columns:200px 1fr;gap:24px}
.servicos-outros ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 12px}
.servicos-outros li{border:1px solid var(--linho);padding:9px 16px;font-size:14px;color:var(--tinta-suave);background:var(--branco)}

/* Animação 2 · mesa */
.mesa{--palco-h:460vh;background:#efe7dd}
.mesa-veu{position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,241,235,.96) 0%,rgba(246,241,235,.86) 30%,rgba(246,241,235,0) 58%);z-index:1;pointer-events:none}
.mesa-texto{position:absolute;z-index:2;top:0;bottom:0;left:var(--lateral);width:min(440px,40vw);display:flex;flex-direction:column;justify-content:center;padding-top:var(--topo-h)}
.mesa-texto h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:clamp(18px,3vh,30px)}
.etapas{list-style:none;margin:0;padding:0;display:grid;gap:clamp(4px,1vh,10px)}
.etapas li{display:grid;grid-template-columns:34px 1fr;gap:12px;opacity:.28;transform:none!important;transition:opacity .5s}
.etapas li.visivel{opacity:1}
.etapas li span{font-family:var(--titulo);font-size:13px;color:var(--rose-tinta);padding-top:3px}
.etapas h3{font-size:clamp(15px,1.35vw,18px);line-height:1.3}
.etapas p{font-size:13.5px;color:var(--tinta-suave);line-height:1.5;max-height:0;overflow:hidden;opacity:0;transition:max-height .6s ease,opacity .5s ease}
.etapas li.atual p{max-height:5em;opacity:1;margin-top:4px}
.mesa-frase{font-family:var(--titulo);font-size:clamp(22px,2.4vw,30px);margin-top:clamp(18px,3vh,28px)}

/* Animação 3 · galeria */
.galeria{--palco-h:900vh;background:var(--papel)}
.galeria-cena{position:absolute;inset:0}
.galeria-cena canvas{display:block;width:100%!important;height:100%!important}
.galeria-titulo{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(246,241,235,.96) 30%,rgba(246,241,235,.7) 60%,rgba(246,241,235,0) 85%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2;pointer-events:none;padding:0 24px}
.galeria-titulo h2{font-size:clamp(38px,6vw,84px)}
.galeria-titulo p:last-child{margin-top:16px;color:var(--tinta-suave);font-size:15px}
.galeria-legenda{position:absolute;left:var(--lateral);bottom:clamp(28px,6vh,60px);z-index:2;pointer-events:none;transition:opacity .4s}
.galeria-legenda.vazia{opacity:0}
.galeria-casal{font-family:var(--titulo);font-size:clamp(22px,2.4vw,32px);line-height:1.2}
.galeria-local{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--pedra);margin-top:6px}
.galeria-credito{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-tinta);margin-top:4px}
.galeria-fim{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;text-align:center;z-index:3;background:rgba(62,60,57,.42);color:var(--papel);padding:0 24px}
.galeria-fim h2 em{color:var(--blush)}
.galeria-fim:not(.visivel){pointer-events:none}

/* Destaque e imprensa */
.destaque{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(40px,7vw,100px);border-top:1px solid var(--linho)}
.destaque h2{margin-bottom:18px}
.destaque-lead{font-family:var(--titulo);font-style:italic;font-size:clamp(18px,1.7vw,22px);color:var(--rose-tinta);margin-bottom:24px}
.destaque-texto>p:not(.sobretitulo):not(.destaque-lead){color:var(--tinta-suave);max-width:62ch}
.destaque-texto>p+p{margin-top:16px}
.destaque blockquote{margin:36px 0 0;padding:28px 0 0 28px;border-left:1px solid var(--rose)}
.destaque blockquote p{font-family:var(--titulo);font-size:clamp(19px,1.8vw,23px);line-height:1.5}
cite{display:block;font-style:normal;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--floresta);margin-top:16px;font-weight:500}
.imprensa{background:var(--branco);border:1px solid var(--linho);padding:clamp(28px,3vw,40px);align-self:start}
.imprensa ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.imprensa li a{display:block;font-family:var(--titulo);font-size:19px;text-decoration:none;padding:10px 0;border-bottom:1px solid var(--linho);transition:color .3s}
.imprensa li a:hover{color:var(--rose-tinta)}
.imprensa li a span{display:block;font-family:var(--texto);font-size:12px;color:var(--pedra);margin-top:2px;line-height:1.35}
.depo-google{margin-left:auto;align-self:center}
.imprensa-nota{margin-top:22px;font-size:13.5px;color:var(--pedra);line-height:1.55}
.destaque-fotos{grid-column:1/-1;margin:clamp(8px,2vw,24px) 0 0;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(10px,1.4vw,18px)}
.destaque-fotos img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.destaque-fotos .destaque-maior{grid-row:span 2;aspect-ratio:auto;height:0;min-height:100%}
.destaque-fotos figcaption{grid-column:1/-1;margin-top:2px}

/* Depoimentos */
.depoimentos{border-top:1px solid var(--linho);max-width:none;padding-left:0;padding-right:0}
.depoimentos .secao-topo{max-width:var(--largura);margin-left:auto;margin-right:auto;padding:0 var(--lateral)}
.depo-nota{margin-top:14px;font-size:13px;color:var(--pedra)}
.depo-trilho{display:flex;gap:clamp(18px,2.4vw,32px);overflow-x:auto;scroll-snap-type:x mandatory;padding:4px max(var(--lateral),calc((100vw - var(--largura))/2 + var(--lateral))) 24px;scrollbar-width:none}
.depo-trilho::-webkit-scrollbar{display:none}
.depo{flex:0 0 min(440px,82vw);scroll-snap-align:start;margin:0;background:var(--branco);border:1px solid var(--linho);padding:clamp(28px,3vw,42px);display:flex;flex-direction:column;justify-content:space-between}
.depo p{font-family:var(--titulo);font-size:clamp(17px,1.5vw,19px);line-height:1.6}
.depo p::before{content:"“";display:block;font-size:56px;line-height:.6;color:var(--rose);margin-bottom:10px}
.depo-controles{display:flex;gap:10px;max-width:var(--largura);margin:16px auto 0;padding:0 var(--lateral)}
.depo-controles button{width:46px;height:46px;border:1px solid var(--linho);background:transparent;font-size:22px;cursor:pointer;color:var(--tinta);transition:background .3s}
.depo-controles button:hover{background:var(--branco)}

/* Perguntas */
.perguntas{border-top:1px solid var(--linho);max-width:960px}
.faq details{border-bottom:1px solid var(--linho)}
.faq summary{list-style:none;cursor:pointer;padding:24px 44px 24px 0;font-family:var(--titulo);font-size:clamp(17px,1.6vw,21px);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:20px;font-size:26px;color:var(--rose-tinta);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 26px;color:var(--tinta-suave);max-width:70ch}

/* Contato */
.contato{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:clamp(40px,6vw,90px);border-top:1px solid var(--linho)}
.contato-intro h2{margin-bottom:22px}
.contato-intro>p{color:var(--tinta-suave)}
.contato-idioma{margin-top:16px;font-family:var(--titulo);font-size:18px}
.contato-canais{list-style:none;margin:34px 0 0;padding:28px 0 0;border-top:1px solid var(--linho);display:grid;gap:14px}
.contato-canais li{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:baseline}
.contato-canais span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--pedra)}
.contato-canais a{text-decoration:none;font-size:16px;word-break:break-word}
.contato-canais a:hover{color:var(--rose-tinta)}
.formulario{background:var(--branco);border:1px solid var(--linho);padding:clamp(24px,3.4vw,48px)}
.formulario fieldset{border:0;margin:0 0 30px;padding:0}
.formulario legend{font-family:var(--titulo);font-size:20px;margin-bottom:20px;display:flex;align-items:baseline;gap:12px}
.formulario legend span{font-family:var(--texto);font-size:11px;letter-spacing:.2em;color:var(--rose-tinta)}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.campos label{display:flex;flex-direction:column;gap:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pedra);font-weight:500;min-width:0}
.campos .largo{grid-column:1/-1}
.formulario input,.formulario select,.formulario textarea{font:inherit;font-size:16px;letter-spacing:0;text-transform:none;color:var(--tinta);background:var(--papel);border:1px solid var(--linho);padding:13px 14px;border-radius:0;width:100%;font-weight:300;appearance:none;-webkit-appearance:none}
.formulario select{background-image:linear-gradient(45deg,transparent 50%,var(--pedra) 50%),linear-gradient(135deg,var(--pedra) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.formulario input:focus,.formulario select:focus,.formulario textarea:focus{outline:none;border-color:var(--floresta);background:var(--branco)}
.formulario .invalido{border-color:#b45a4f}
.isca{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.consentimento{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--tinta-suave);margin-top:22px;line-height:1.5}
.consentimento input{width:18px!important;height:18px;flex:0 0 18px;margin-top:2px;padding:0!important;appearance:auto!important;-webkit-appearance:checkbox!important;accent-color:var(--floresta)}
.formulario-aviso{margin-top:16px;font-size:14.5px;min-height:1.5em}
.formulario-aviso.ok{color:var(--floresta)}
.formulario-aviso.erro{color:#a24e44}
.campos .campo-data{display:flex;flex-direction:column;gap:8px;min-width:0}
.campo-data>label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pedra);font-weight:500}
.data-caixa{position:relative}
.data-caixa input{padding-right:50px;cursor:pointer}
.cal-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:transparent;color:var(--floresta);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;transition:background .3s}
.cal-btn:hover{background:rgba(144,168,148,.15)}
.cal{position:absolute;left:0;top:calc(100% + 8px);z-index:30;width:316px;max-width:calc(100vw - 40px);background:var(--branco);border:1px solid var(--linho);box-shadow:0 18px 44px -18px rgba(62,60,57,.35),0 2px 8px rgba(62,60,57,.06);padding:18px 16px 14px;animation:calEntra .35s ease;text-transform:none;letter-spacing:0;font-weight:300;color:var(--tinta)}
@keyframes calEntra{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.cal-topo{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-titulo{font-family:var(--titulo);font-size:17px}
.cal-nav{width:32px;height:32px;border-radius:50%;border:1px solid var(--linho);background:var(--branco);color:var(--floresta);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;line-height:1;transition:border-color .3s,background .3s}
.cal-nav:hover:not([disabled]){border-color:var(--rose);background:var(--papel)}
.cal-nav[disabled]{opacity:.35;cursor:default}
.cal-grade{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.cal-semana{font-size:10.5px;font-weight:500;letter-spacing:.14em;color:var(--pedra);padding:4px 0 8px}
.cal-dia{height:38px;border:0;background:transparent;border-radius:50%;font-family:var(--texto);font-weight:300;font-size:14px;color:var(--tinta);cursor:pointer;transition:background .25s,color .25s}
.cal-dia:hover:not([disabled]){background:var(--blush)}
.cal-dia.hoje{box-shadow:inset 0 0 0 1px var(--rose)}
.cal-dia.sel{background:var(--floresta);color:var(--papel);font-weight:500}
.cal-dia[disabled]{color:#c9c7c1;cursor:default}
.cal-pe{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--linho)}
.cal-link{border:0;background:none;font-family:var(--texto);font-size:13px;color:var(--floresta);cursor:pointer;padding:4px 0;border-bottom:1px solid var(--salvia)}
.cal-link.cal-fechar{color:var(--pedra);border-bottom-color:transparent}

/* Rodapé */
.rodape{background:var(--tinta);color:#d9d3cc;text-align:center;padding:72px var(--lateral) 56px;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:10px}
.rodape img{filter:brightness(0) invert(.92);opacity:.85;margin-bottom:8px}
.rodape-nome{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:#fff}
.rodape a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25)}
.rodape-creditos,.rodape-copy{font-size:12px;color:#a8a29a;max-width:640px}
.rodape-creditos{margin-top:14px}

.whats-flutuante{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:40;width:54px;height:54px;border-radius:50%;background:var(--floresta);display:grid;place-items:center;box-shadow:0 10px 30px -10px rgba(40,50,42,.5);transition:transform .3s,opacity .4s}
.whats-flutuante svg{width:26px;height:26px;fill:#fff}
.whats-flutuante:hover{transform:scale(1.06)}
.whats-flutuante.oculto{opacity:0;pointer-events:none}
.cal-aberto .whats-flutuante{opacity:0;pointer-events:none}

/* Celular e tablet */
/* Menu completo só cabe em telas largas; abaixo disso, o botão de menu */
@media (max-width:1180px){
  .topo-nav{display:none}
  .topo-menu{display:block}
}
@media (max-width:980px){
  .sobre,.destaque,.contato{grid-template-columns:1fr}
  .sobre-foto{max-width:520px}
  .servicos-lista{grid-template-columns:1fr;max-width:560px}
  .servicos-outros{grid-template-columns:1fr}
  .mesa-veu{background:linear-gradient(0deg,rgba(246,241,235,.97) 0%,rgba(246,241,235,.9) 40%,rgba(246,241,235,0) 70%)}
  .mesa-texto{left:20px;right:20px;width:auto;top:auto;bottom:0;justify-content:flex-end;padding:0 0 calc(28px + env(safe-area-inset-bottom,0px))}
  .etapas li:not(.atual){display:none}
  .etapas li.atual{animation:etapa .5s ease}
  .mesa-texto h2{margin-bottom:14px}
}
@keyframes etapa{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (max-width:620px){
  body{font-size:16px}
  .sobre-foto figure::after{inset:auto -10px -10px auto}
  .convite-abertura{padding:12px 18px 10px}
  .convite-abertura .sobretitulo{font-size:10px;letter-spacing:.2em}
  .topo-marca img{width:124px}
  .numeros{grid-template-columns:1fr;gap:16px}
  .campos{grid-template-columns:1fr}
  .imprensa ul{grid-template-columns:1fr 1fr}
  .destaque-fotos{grid-template-columns:1fr 1fr}
  .destaque-fotos .destaque-maior{grid-column:1/-1;grid-row:auto;aspect-ratio:4/5;height:auto;min-height:0}
  .contato-canais li{grid-template-columns:1fr;gap:2px}
  .convite-texto{padding-left:28px;padding-right:28px}
}

/* Quem pede menos movimento vê tudo parado */
@media (prefers-reduced-motion:reduce){
  .palco{height:auto}
  .palco-fixo{position:relative;height:auto;min-height:100svh}
  .quadros{display:none}
  .quadros-reserva{display:block}
  .js [data-de]{opacity:1;transform:none}
  .etapas li{opacity:1}
  .etapas li p{max-height:none;opacity:1}
  .galeria-cena{display:none}
  .rolar i{animation:none}
}

/* ============================================================
   Páginas internas (geradas pelo painel): Sobre, Serviços, Portfólio,
   cada casamento, Imprensa, Depoimentos, Perguntas, Blog, Contato,
   Privacidade e 404. Mesma identidade da página inicial.
   ============================================================ */
.pagina-interna .topo{background:rgba(246,241,235,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(62,60,57,.08)}
.topo-nav a[aria-current]:not(.botao){color:var(--rose-tinta)}
.pagina{padding-top:var(--topo-h)}
.pagina-cabecalho{max-width:900px;margin:0 auto;padding:clamp(56px,8vw,110px) var(--lateral) 0;text-align:center}
.pagina-ramo{width:clamp(90px,9vw,120px);margin:0 auto 22px;opacity:.9}
.pagina-cabecalho h1{font-size:clamp(34px,5vw,62px);line-height:1.14}
.pagina-cabecalho h1 em{display:inline}
.pagina-intro{margin-top:20px;color:var(--tinta-suave);max-width:62ch}
.pagina-cabecalho .pagina-intro{margin-left:auto;margin-right:auto;font-size:clamp(16px,1.3vw,18px)}
.pagina-cabecalho+.secao{padding-top:clamp(48px,7vw,96px)}
.texto-longo p{color:var(--tinta-suave);max-width:64ch}
.texto-longo p+p{margin-top:18px}
.texto-longo .abre{font-family:var(--titulo);font-size:clamp(19px,1.8vw,24px);line-height:1.5;color:var(--tinta)}
.sobre-mais,.servicos-mais,.destaque-mais,.perguntas-mais{margin-top:30px}
.servicos-mais{text-align:center;margin-top:clamp(40px,5vw,60px)}
.galeria-fim-acoes{display:flex;flex-wrap:wrap;gap:20px 28px;align-items:center;justify-content:center}
.galeria-fim .link-sublinhado{color:var(--papel)}

/* Faixa final com o convite para o orçamento */
.chamada{max-width:none;background:var(--blush);text-align:center;display:flex;flex-direction:column;align-items:center;gap:30px;padding-top:clamp(70px,9vw,120px);padding-bottom:clamp(70px,9vw,120px)}
.chamada h2{max-width:780px}

/* Sobre */
.sobre-pagina{align-items:start}
.sobre-pagina .sobre-foto{position:sticky;top:calc(var(--topo-h) + 32px)}
.blocos-texto{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);border-top:1px solid var(--linho)}
.bloco-texto h2{font-size:clamp(26px,2.8vw,36px);margin-bottom:24px}
.bloco-texto p:not(.sobretitulo){color:var(--tinta-suave);max-width:60ch}
.bloco-texto p+p{margin-top:16px}
.equipe{max-width:900px;text-align:center;border-top:1px solid var(--linho)}
.equipe-texto{font-family:var(--titulo);font-size:clamp(20px,2vw,26px);line-height:1.55}
.faixa-imprensa{border-top:1px solid var(--linho);text-align:center;padding-top:clamp(56px,7vw,90px);padding-bottom:clamp(56px,7vw,90px)}
.faixa-imprensa ul{list-style:none;margin:0 0 30px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px}
.faixa-imprensa a:not(.link-sublinhado){font-family:var(--titulo);font-size:clamp(19px,1.8vw,24px);text-decoration:none;color:var(--tinta-suave);transition:color .3s}
.faixa-imprensa a:not(.link-sublinhado):hover{color:var(--rose-tinta)}

/* Serviços */
.servico-detalhe{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,110px);align-items:start;border-top:1px solid var(--linho)}
.pagina-cabecalho+.servico-detalhe{border-top:0}
.servico-detalhe.invertido .servico-detalhe-foto{order:2}
.servico-detalhe-foto{margin:0;position:sticky;top:calc(var(--topo-h) + 32px)}
.servico-detalhe-foto img{width:100%;aspect-ratio:4/5;object-fit:cover}
.servico-detalhe-texto h2{margin-bottom:24px}
.servico-detalhe-texto>p:not(.servico-num):not(.servico-frase){color:var(--tinta-suave);max-width:62ch}
.servico-detalhe-texto>p+p{margin-top:16px}
.inclui{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--linho)}
.inclui li{position:relative;padding:14px 0 14px 26px;border-bottom:1px solid var(--linho);font-size:15.5px;color:var(--tinta-suave);line-height:1.6}
.inclui li::before{content:"";position:absolute;left:2px;top:24px;width:9px;height:9px;border-radius:50%;border:1px solid var(--rose)}
.inclui strong{font-weight:500;color:var(--tinta)}
.servico-detalhe .servico-frase{font-family:var(--titulo);font-style:italic;font-size:clamp(18px,1.6vw,21px);line-height:1.5;color:var(--rose-tinta);margin-top:30px}
.servicos-outros-pagina{margin-top:0}
.processo-pagina{border-top:1px solid var(--linho)}
.etapas-pagina{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(32px,5vw,72px)}
.etapas-pagina li{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:26px 0;border-top:1px solid var(--linho)}
.etapa-num{font-family:var(--titulo);font-size:20px;color:var(--rose-tinta);line-height:1.2}
.etapas-pagina h3{margin-bottom:8px}
.etapas-pagina p{font-size:15.5px;color:var(--tinta-suave)}
.processo-pagina .mesa-frase{margin-top:clamp(40px,5vw,60px);text-align:center}

/* Portfólio e blog: grades de cartões */
.grade-casamentos,.grade-blog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(36px,4vw,56px) clamp(20px,2.4vw,34px)}
.cartao-casamento,.cartao-post{display:flex;flex-direction:column;text-decoration:none;color:var(--tinta)}
.cartao-foto{display:block;overflow:hidden;background:var(--linho)}
.cartao-foto img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.cartao-post .cartao-foto img{aspect-ratio:3/2}
.cartao-casamento:hover .cartao-foto img,.cartao-post:hover .cartao-foto img{transform:scale(1.03)}
.cartao-texto{display:flex;flex-direction:column;gap:8px;padding-top:18px}
.cartao-casal,.cartao-titulo{font-family:var(--titulo);font-size:clamp(21px,1.9vw,25px);line-height:1.25;transition:color .3s}
.cartao-casamento:hover .cartao-casal,.cartao-post:hover .cartao-titulo{color:var(--rose-tinta)}
.cartao-local,.cartao-data{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--pedra)}
.cartao-resumo{font-size:15px;color:var(--tinta-suave);line-height:1.6}
.cartao-post .link-sublinhado{align-self:flex-start;margin-top:6px;color:var(--floresta)}
.vazio{grid-column:1/-1;text-align:center;color:var(--pedra)}

/* Cada casamento */
.pagina-casamento .casamento-capa{position:relative;height:calc(88vh - var(--topo-h));height:calc(88svh - var(--topo-h));min-height:420px;overflow:hidden;background:var(--linho);color:var(--branco)}
.casamento-capa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.casamento-capa::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(40,36,32,.6) 0%,rgba(40,36,32,.18) 45%,rgba(40,36,32,0) 70%)}
.casamento-capa-texto{position:absolute;left:var(--lateral);right:var(--lateral);bottom:clamp(32px,6vh,64px);z-index:2;max-width:var(--largura);margin:0 auto}
.casamento-capa-texto .sobretitulo{color:var(--blush);margin-bottom:12px}
.casamento-capa h1{font-size:clamp(38px,6vw,82px);line-height:1.08}
.casamento-intro{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,7vw,110px);align-items:start}
.casamento-intro:not(:has(.casamento-historia)) .casamento-ficha{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 28px}
.casamento-ficha{margin:0}
.casamento-ficha div{padding:14px 0;border-top:1px solid var(--linho)}
.casamento-ficha dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--pedra)}
.casamento-ficha dd{margin:4px 0 0;font-family:var(--titulo);font-size:18px;line-height:1.4}
.casamento-video{padding-top:0}
.video-moldura{position:relative;aspect-ratio:16/9;background:var(--tinta)}
.video-moldura iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.casamento-galeria{max-width:1500px;margin:0 auto;padding:0 var(--lateral) clamp(60px,8vw,110px)}
.grade-fotos{columns:3 300px;column-gap:clamp(10px,1.2vw,16px)}
.foto-item{display:block;width:100%;margin:0 0 clamp(10px,1.2vw,16px);padding:0;border:0;background:var(--linho);cursor:zoom-in;break-inside:avoid}
.foto-item img{width:100%;transition:opacity .3s}
.foto-item:hover img{opacity:.88}
.galeria-credito-final{text-align:center;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pedra);margin-top:22px}
.casamento-fornecedores{border-top:1px solid var(--linho)}
.casamento-fornecedores ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 12px}
.casamento-fornecedores li{border:1px solid var(--linho);padding:9px 16px;font-size:14px;color:var(--tinta-suave);background:var(--branco)}
.casamento-fornecedores a{text-decoration:none}
.casamento-navegacao{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;border-top:1px solid var(--linho);padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px)}
.casamento-ant,.casamento-prox{text-decoration:none;font-family:var(--titulo);font-size:clamp(18px,1.7vw,22px);transition:color .3s}
.casamento-prox{text-align:right}
.casamento-ant:hover,.casamento-prox:hover{color:var(--rose-tinta)}
.casamento-ant span,.casamento-prox span{display:block;font-family:var(--texto);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--pedra);margin-bottom:4px}

/* Foto ampliada */
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(30,28,26,.95);display:flex;align-items:center;justify-content:center;padding:56px 64px}
.lightbox-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.lightbox button{position:absolute;background:none;border:0;color:var(--papel);cursor:pointer;font-size:42px;line-height:1;width:56px;height:56px;display:grid;place-items:center;opacity:.8;transition:opacity .3s}
.lightbox button:hover{opacity:1}
.lightbox-fechar{top:8px;right:8px;font-size:36px!important}
.lightbox-ant{left:4px;top:50%;transform:translateY(-50%)}
.lightbox-prox{right:4px;top:50%;transform:translateY(-50%)}

/* Imprensa */
.lista-imprensa ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,3vw,44px)}
.lista-imprensa li a{display:flex;flex-direction:column;gap:6px;padding:24px 0;border-top:1px solid var(--linho);text-decoration:none;height:100%}
.lista-imprensa li img{max-height:34px;width:auto;margin-bottom:6px}
.imprensa-veiculo{font-family:var(--titulo);font-size:clamp(21px,1.9vw,25px);transition:color .3s}
.lista-imprensa li a:hover .imprensa-veiculo{color:var(--rose-tinta)}
.imprensa-assunto{font-size:13.5px;color:var(--pedra)}
.lista-imprensa .imprensa-nota{margin-top:36px;text-align:center}
.destaque-imprensa{grid-template-columns:1fr}
.destaque-imprensa .destaque-texto{max-width:780px}

/* Depoimentos */
.lista-depoimentos{columns:2 380px;column-gap:clamp(20px,2.6vw,36px)}
.depo-grande{flex:none;width:auto;margin:0 0 clamp(20px,2.6vw,36px);break-inside:avoid;display:block}
.depo-grande cite{margin-top:22px}
.depo-acoes{display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;border-top:1px solid var(--linho);padding-top:clamp(56px,7vw,90px);padding-bottom:clamp(56px,7vw,90px)}
.depo-acoes p{color:var(--tinta-suave)}
.depo-acoes p .link-sublinhado{margin-left:6px;color:var(--floresta)}

/* Perguntas */
.perguntas-pagina{border-top:0}

/* Blog: post */
.post{max-width:820px;margin:0 auto;padding:clamp(56px,8vw,110px) var(--lateral) clamp(60px,8vw,100px)}
.post-cabecalho{text-align:center;margin-bottom:clamp(36px,5vw,56px)}
.post-cabecalho .sobretitulo a{text-decoration:none}
.post-cabecalho h1{font-size:clamp(32px,4.4vw,54px);line-height:1.15}
.post-resumo{font-family:var(--titulo);font-style:italic;font-size:clamp(18px,1.7vw,22px);line-height:1.5;color:var(--rose-tinta);margin-top:22px}
.post-capa{margin:0 calc(-1 * min(120px,6vw)) clamp(40px,5vw,60px)}
.post-capa img{width:100%;aspect-ratio:3/2;object-fit:cover}
.post-corpo p{margin-top:20px}
.post-corpo h2{font-size:clamp(24px,2.6vw,32px);margin:clamp(40px,5vw,56px) 0 4px}
.post-corpo ul{margin:20px 0 0;padding:0;list-style:none;border-top:1px solid var(--linho)}
.post-corpo li{position:relative;padding:11px 0 11px 24px;border-bottom:1px solid var(--linho);color:var(--tinta-suave);line-height:1.6}
.post-corpo li::before{content:"";position:absolute;left:2px;top:21px;width:8px;height:8px;border-radius:50%;border:1px solid var(--rose)}
.post-corpo a{color:var(--floresta)}
.post-foto{margin:36px 0}
.post-foto.retrato{max-width:520px;margin-left:auto;margin-right:auto}
.relacionados{border-top:1px solid var(--linho)}

/* Contato, privacidade e 404 */
.pagina-contato .contato{border-top:0}
.privacidade{max-width:860px}
.privacidade h2{font-size:clamp(22px,2.2vw,28px);margin:40px 0 12px}
.privacidade h2:first-child{margin-top:0}
.nao-encontrada{text-align:center;min-height:calc(70vh - var(--topo-h));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px}
.num404{font-family:var(--titulo);font-size:clamp(90px,16vw,180px);line-height:1;color:var(--rose)}
.bloco404{max-width:560px;display:flex;flex-direction:column;align-items:center;gap:14px}
.bloco404 h1,.bloco404 h2{font-size:clamp(24px,3vw,34px)}
.bloco404 p{color:var(--tinta-suave)}
.bloco404+.bloco404{padding-top:30px;border-top:1px solid var(--linho)}

/* Rodapé: links das páginas */
.rodape-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:10px 0 6px;font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.rodape-links a{border-bottom:0;color:#d9d3cc}
.rodape-links a:hover{color:#fff}

@media (max-width:980px){
  .blocos-texto,.servico-detalhe,.casamento-intro,.etapas-pagina{grid-template-columns:1fr}
  .servico-detalhe.invertido .servico-detalhe-foto{order:0}
  .servico-detalhe-foto,.sobre-pagina .sobre-foto{position:relative;top:auto;max-width:560px}
  .grade-casamentos,.grade-blog,.lista-imprensa ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .grade-casamentos,.grade-blog,.lista-imprensa ul{grid-template-columns:1fr}
  .casamento-navegacao{grid-template-columns:1fr 1fr}
  .casamento-navegacao .link-sublinhado{grid-column:1/-1;grid-row:2;justify-self:center}
  .lightbox{padding:56px 8px}
  .lightbox-ant,.lightbox-prox{top:auto;bottom:6px;transform:none}
  .post-capa{margin-left:0;margin-right:0}
  .pagina-casamento .casamento-capa{height:70svh}
}
.casamento-capa-texto{text-shadow:0 1px 18px rgba(30,26,22,.45)}

/* ===== Fundos das seções na paleta da Márcia =====
   Linho (serviços, etapas, textos do Sobre, fornecedores), blush (depoimentos),
   sálvia clara (orçamento) e verde floresta escuro (destaque e imprensa).
   O fundo vai de ponta a ponta da tela (sombra + recorte), mesmo com a seção
   limitada à largura do conteúdo. Cores de texto ajustadas para manter o
   contraste mínimo de leitura (4,5:1 no texto pequeno). */
.servicos,.processo-pagina,.blocos-texto,.casamento-fornecedores{--fundo:#E6DDD1}
.depoimentos{--fundo:#F6F1EB}
.contato{--fundo:#E2E7DF}
.destaque,.faixa-imprensa{--fundo:#4f6153}
.servicos,.processo-pagina,.blocos-texto,.casamento-fornecedores,.depoimentos,.contato,.destaque,.faixa-imprensa{
  background:var(--fundo);box-shadow:0 0 0 100vmax var(--fundo);clip-path:inset(0 -100vmax);border-top:0}
:is(.servicos,.processo-pagina,.blocos-texto,.casamento-fornecedores,.depoimentos,.contato,.destaque,.faixa-imprensa)+.secao{border-top:0}

/* tons claros (linho, blush, sálvia): textos um pouco mais escuros */
:is(.servicos,.processo-pagina,.blocos-texto,.casamento-fornecedores,.depoimentos,.contato){--tinta-suave:#5d5a56;--pedra:#625f5b;--rose-tinta:#765850}
:is(.servicos,.processo-pagina,.blocos-texto,.casamento-fornecedores,.depoimentos,.contato) .sobretitulo{color:#4a5c4e}
:is(.servicos,.processo-pagina,.blocos-texto,.casamento-fornecedores,.depoimentos,.contato) :is(.servicos-outros,.contato-canais){border-top-color:rgba(62,60,57,.14)}
.depoimentos .depo,.depoimentos .depo-controles button{border-color:rgba(200,167,160,.55)}
.depoimentos .depo-controles button:hover{background:var(--branco)}
.contato .formulario{border-color:rgba(98,118,101,.22)}

/* verde floresta: texto claro */
.destaque,.faixa-imprensa{color:#F6F1EB;--rose:#C8A7A0}
:is(.destaque,.faixa-imprensa) .sobretitulo{color:#F1DEDA}
.destaque h2,.destaque blockquote p{color:#F6F1EB}
.destaque h2 em{color:#F1DEDA}
.destaque .destaque-lead{color:#F1DEDA}
.destaque .destaque-texto>p:not(.sobretitulo):not(.destaque-lead){color:#ece5dd}
.destaque blockquote{border-left-color:rgba(241,222,218,.55)}
.destaque cite{color:#F1DEDA}
.destaque .destaque-fotos figcaption{color:#e3d9cf}
:is(.destaque,.faixa-imprensa) .link-sublinhado{color:#F6F1EB;border-bottom-color:rgba(241,222,218,.6)}
:is(.destaque,.faixa-imprensa) .link-sublinhado:hover{color:#F1DEDA}
.destaque .imprensa{border-color:transparent;color:var(--tinta)}
.destaque .imprensa .sobretitulo{color:var(--floresta)}
.faixa-imprensa a:not(.link-sublinhado){color:#ece5dd}
.faixa-imprensa a:not(.link-sublinhado):hover{color:#F1DEDA}
/* botão do WhatsApp com anel claro, para não sumir sobre o verde do destaque */
.whats-flutuante{box-shadow:0 0 0 2px rgba(246,241,235,.92),0 10px 30px -10px rgba(40,50,42,.5)}
/* Pedido de orçamento em duas cores só: fundo sálvia e formulário branco
   (os campos também brancos, com borda fina, em vez do papel). */
.contato .formulario input,.contato .formulario select,.contato .formulario textarea{background-color:var(--branco);border-color:rgba(98,118,101,.3)}
.contato .formulario input:focus,.contato .formulario select:focus,.contato .formulario textarea:focus{border-color:var(--floresta)}
/* Perguntas frequentes em branco, de ponta a ponta */
.perguntas{--fundo:#FFFDFA;background:var(--fundo);box-shadow:0 0 0 100vmax var(--fundo);clip-path:inset(0 -100vmax);border-top:0}
.perguntas+.secao{border-top:0}
/* Perguntas frequentes: entrada lenta de cada pergunta e resposta que abre devagar (site.js) */
.faq-resposta{overflow:hidden}
.faq-anima .faq details{opacity:0;transform:translateY(24px);transition:opacity 1.2s ease,transform 1.4s cubic-bezier(.2,.7,.2,1)}
.faq-anima .faq details.faq-visivel{opacity:1;transform:none}
.faq-anima .faq summary::after{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
/* Pedido de orçamento: "O que acontece depois", com uma linha que se desenha
   de um passo ao outro e um ponto que desce devagar por ela (site.js liga a
   classe .ativo quando a seção aparece e mede onde a linha termina). Só no
   computador, onde sobra espaço ao lado do formulário. */
.contato-passos{margin-top:44px;padding-top:30px;border-top:1px solid rgba(62,60,57,.14)}
.contato-passos ol{list-style:none;margin:10px 0 0;padding:0;position:relative}
.contato-passos li{display:grid;grid-template-columns:41px 1fr;gap:20px;padding:12px 0;position:relative}
.contato-passos li:not(:last-child)::before{content:"";position:absolute;left:20px;top:33px;bottom:-33px;width:1px;background:var(--rose);transform-origin:top}
.contato-passos ol::after{content:"";position:absolute;left:17px;top:30px;width:7px;height:7px;border-radius:50%;background:var(--floresta);opacity:0;pointer-events:none;z-index:2}
.passo-num{width:41px;height:41px;border-radius:50%;border:1px solid var(--rose);background:var(--fundo,var(--papel));display:grid;place-items:center;font-size:11px;letter-spacing:.1em;color:var(--rose-tinta);position:relative;z-index:1}
.contato-passos h3{font-size:19px;margin:9px 0 6px}
.contato-passos li p{font-size:15px;line-height:1.6;color:var(--tinta-suave);max-width:40ch}
.js .contato-passos li{opacity:0;transform:translateY(14px);transition:opacity 1.1s ease,transform 1.3s cubic-bezier(.2,.7,.2,1)}
.js .contato-passos li::before{transform:scaleY(0);transition:transform 1.1s cubic-bezier(.45,0,.2,1)}
.js .contato-passos .passo-num{transform:scale(.6);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.js .contato-passos.ativo li,.js .contato-passos.ativo .passo-num,.js .contato-passos.ativo li::before{opacity:1;transform:none}
.js .contato-passos.ativo li:nth-child(1)::before{transition-delay:.5s}
.js .contato-passos.ativo li:nth-child(2),.js .contato-passos.ativo li:nth-child(2) .passo-num{transition-delay:1.3s}
.js .contato-passos.ativo li:nth-child(2)::before{transition-delay:1.8s}
.js .contato-passos.ativo li:nth-child(3),.js .contato-passos.ativo li:nth-child(3) .passo-num{transition-delay:2.6s}
.contato-passos.ativo ol::after{animation:passoDesce 6s ease-in-out 3.6s infinite}
@keyframes passoDesce{0%{top:30px;opacity:0}15%{opacity:.8}85%{opacity:.8}100%{top:var(--fim,calc(100% - 40px));opacity:0}}
@media (max-width:980px){.contato-passos{display:none}}
@media (prefers-reduced-motion:reduce){
  .js .contato-passos li,.js .contato-passos li::before,.js .contato-passos .passo-num{transform:none;opacity:1;transition:none}
  .contato-passos.ativo ol::after{animation:none}
}
/* Caixinha de autorização: desenhada pelo site, no verde do botão "Enviar pedido"
   (antes o navegador desenhava e ela aparecia cinza-escuro) */
.formulario .consentimento input{appearance:none!important;-webkit-appearance:none!important;width:20px!important;height:20px;flex:0 0 20px;margin-top:1px;border:1.5px solid var(--floresta)!important;border-radius:2px;background:var(--branco) center/13px 13px no-repeat!important;cursor:pointer;transition:background-color .25s}
.formulario .consentimento input:checked{background-color:var(--floresta)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 8.4l3 3 6.6-6.8' fill='none' stroke='%23FFFDFA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}
.formulario .consentimento input:focus-visible{outline:2px solid var(--floresta);outline-offset:3px}
.formulario .consentimento input.invalido{border-color:#a5423a!important}

/* "Também realizo": cada serviço é um cartão de papel colado com um pedaço de
   fita crepe (washi) nas cores da paleta. Ao aparecer na tela, os cartões
   caem um por um, assentam levemente tortos e a fita é "esticada" por cima.
   site.js liga a classe .colado e numera os cartões (--i). */
.servicos-outros ul{gap:30px 22px;padding-top:12px}
.servicos-outros li{--r:-1.2deg;--fita:rgba(200,167,160,.78);--fr:-3deg;position:relative;border:0;background:var(--branco);box-shadow:0 1px 2px rgba(62,60,57,.08),0 10px 22px -14px rgba(62,60,57,.35);transform:rotate(var(--r));transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.servicos-outros li:nth-child(4n+2){--r:.9deg;--fita:rgba(144,168,148,.72);--fr:2.5deg}
.servicos-outros li:nth-child(4n+3){--r:-.4deg;--fita:rgba(232,201,194,.92);--fr:-1.5deg}
.servicos-outros li:nth-child(4n+4){--r:1.3deg;--fita:rgba(214,198,178,.9);--fr:3.5deg}
.servicos-outros li::before{content:"";position:absolute;left:50%;top:-11px;width:58px;height:20px;margin-left:-29px;background:var(--fita);background-image:repeating-linear-gradient(90deg,rgba(255,253,250,.18) 0 2px,transparent 2px 6px),linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 60%);clip-path:polygon(0 8%,6% 0,12% 10%,18% 2%,24% 9%,30% 0,100% 0,100% 0,94% 100%,88% 90%,82% 98%,76% 89%,70% 100%,0 100%);transform:rotate(var(--fr));transform-origin:center;box-shadow:0 1px 1px rgba(62,60,57,.06);pointer-events:none}
.servicos-outros li:hover{transform:rotate(0deg) translateY(-3px);box-shadow:0 2px 4px rgba(62,60,57,.08),0 16px 28px -16px rgba(62,60,57,.4)}
/* entrada */
.js .servicos-outros ul.fita li{opacity:0;transform:translateY(-26px) rotate(calc(var(--r) * 4)) scale(1.03);transition:opacity .7s ease calc(var(--i,0) * .14s),transform 1s cubic-bezier(.3,1.35,.5,1) calc(var(--i,0) * .14s),box-shadow .5s}
.js .servicos-outros ul.fita li::before{transform:rotate(var(--fr)) scaleX(0);opacity:0;transition:transform .55s cubic-bezier(.2,.7,.2,1) calc(var(--i,0) * .14s + .55s),opacity .2s ease calc(var(--i,0) * .14s + .55s)}
.js .servicos-outros ul.fita.colado li{opacity:1;transform:rotate(var(--r))}
.js .servicos-outros ul.fita.colado li::before{transform:rotate(var(--fr)) scaleX(1);opacity:1}
.js .servicos-outros ul.fita.colado li:hover{transform:rotate(0deg) translateY(-3px);transition-delay:0s}
@media (prefers-reduced-motion:reduce){
  .js .servicos-outros ul.fita li,.js .servicos-outros ul.fita li::before{opacity:1;transition:none}
  .js .servicos-outros ul.fita li{transform:rotate(var(--r))}
  .js .servicos-outros ul.fita li::before{transform:rotate(var(--fr))}
}
/* "Também realizo" em duas linhas: as colunas são metade da quantidade de
   serviços (site.js calcula --cols), todos os cartões com a mesma largura.
   No celular, duas colunas. */
.servicos-outros ul.fita{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));grid-auto-rows:1fr;gap:30px 20px}
.servicos-outros ul.fita li{display:flex;align-items:center;line-height:1.4}
@media (max-width:620px){.servicos-outros ul.fita{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}}

/* "Como eu trabalho" (mesa) sem solavanco: a descrição de cada etapa abre e
   fecha pela altura de verdade (grade de 0fr a 1fr), com o mesmo tempo de
   antes, em vez de pular pelo max-height e pela margem. No celular, as etapas
   ficam empilhadas no mesmo lugar e trocam por transparência, sem o bloco
   mudar de altura de repente. Velocidade e animação continuam as mesmas. */
.etapas li>div{display:grid;grid-template-rows:auto 0fr;transition:grid-template-rows .6s ease}
.etapas li.atual>div{grid-template-rows:auto 1fr}
.etapas p,.etapas li.atual p{max-height:none;min-height:0;margin-top:0}
.etapas p::before{content:"";display:block;height:4px}
@media (max-width:980px){
  .etapas{display:grid}
  .etapas li,.etapas li:not(.atual){display:grid;grid-area:1/1}
  .mesa .etapas li:not(.atual){opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s}
  .mesa .etapas li.atual{visibility:visible}
}
@media (prefers-reduced-motion:reduce){
  .etapas li>div{grid-template-rows:auto 1fr;transition:none}
}
/* Convite (abertura) mais rápido no celular: menos rolagem para abrir
   (mesma animação, mesmos textos, só o percurso mais curto) */
@media (max-aspect-ratio:9/10){.convite{--palco-h:330vh}}

/* Celular, "Como eu trabalho": todas as etapas ficam visíveis, com a descrição,
   numa coluna que sobe por cima da animação da mesa (site.js move a coluna).
   Um véu claro deixa o texto legível sem esconder a mesa. */
@media (max-width:980px) and (prefers-reduced-motion:no-preference){
  .js .mesa .mesa-texto{top:0;bottom:auto;justify-content:flex-start;padding:0 0 40px;will-change:transform;transform:translate3d(0,100vh,0)}
  .js .mesa .mesa-veu{display:none}
  /* o degradê claro faz parte da coluna de texto e sobe junto com ela:
     só clareia a mesa onde as frases estão passando */
  .js .mesa .mesa-texto::before{content:"";position:absolute;z-index:-1;left:-20px;right:-20px;top:-22vh;bottom:-22vh;background:linear-gradient(180deg,rgba(246,241,235,0) 0%,rgba(246,241,235,.84) 22vh,rgba(246,241,235,.84) calc(100% - 22vh),rgba(246,241,235,0) 100%);pointer-events:none}
  .js .mesa .mesa-texto{text-shadow:0 0 14px rgba(246,241,235,.9)}
  .js .mesa .etapas{display:grid;gap:16px}
  .js .mesa .etapas li,.js .mesa .etapas li:not(.atual){grid-area:auto;opacity:1;visibility:visible;animation:none;transition:none}
  .js .mesa .etapas li>div{grid-template-rows:auto 1fr;transition:none}
  .js .mesa .etapas p{opacity:1;transition:none}
  .js .mesa .mesa-texto [data-de]{opacity:1;transform:none;transition:none}
  .js .mesa .etapas h3{font-size:18px}
  .js .mesa .etapas p{font-size:14.5px}
}

/* Título "Casamentos reais": só as letras, sem a camada de degradê atrás (pedido do Fabio, 07/10/2026). */
.galeria-titulo{background:none}

/* "Casamentos reais": o título fica na frente das fotos, mas começa embaixo delas
   (parte de baixo da tela) e sobe até sair por cima (pedido do Fabio, 07/10/2026). */
.js .galeria-titulo{justify-content:flex-start;padding-top:71vh;padding-top:71svh}
@media (max-aspect-ratio:9/10){.js .galeria-titulo{padding-top:65vh;padding-top:65svh}}

/* Seção da Márcia (Sobre, na página inicial): fundo branco, de ponta a ponta (pedido do Fabio, 07/10/2026). */
.sobre{--fundo:#FFFDFA;background:var(--fundo);box-shadow:0 0 0 100vmax var(--fundo);clip-path:inset(0 -100vmax)}
