/* Base do site — utilitários Tailwind vêm do CDN; aqui ficam os blocos do construtor */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f-body);color:var(--c-text);background:var(--c-cream);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:inline-block;vertical-align:middle}
a{color:inherit}
h1,h2,h3,h4,h5,h6{font-family:var(--f-head);margin:0;line-height:1.1;font-weight:600}

/* seção */
.sec{position:relative;isolation:isolate;overflow:hidden;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center}
.sec-bg,.sec-ov,.sec-fade{position:absolute;inset:0;z-index:-2}
.sec-fade{z-index:-1;pointer-events:none}
.sec-bg{background-size:cover;background-repeat:no-repeat;background-position:var(--bx,50%) var(--by,50%)}
.sec-ov{z-index:-1}
.sec-bg.plx{background-attachment:fixed}
@media(max-width:1023px){.sec-bg.plx{background-attachment:scroll}}
.sec-in{width:100%;max-width:1320px;margin-left:auto;margin-right:auto;padding:clamp(72px,10vh,120px) clamp(22px,6vw,88px)}
.sec-row{--g:clamp(28px,5vw,72px);display:flex;flex-wrap:wrap;gap:var(--g)}
.col{display:flex;flex-direction:column;min-width:0;flex:0 0 auto;max-width:100%}


/* widgets */
.w{max-width:100%}
.w+.w{margin-top:16px}
.hd{font-size:clamp(2.3rem,5vw,3.6rem);font-weight:600;letter-spacing:-.005em;line-height:1.08}
.tx{font-size:1.06rem;font-weight:400}
.tx strong,.tx b{font-weight:700}
.rich p{margin:0 0 .85em}.rich p:last-child{margin-bottom:0}
.rich ul,.rich ol{margin:0 0 1em 1.3em;padding:0}.rich ul{list-style:disc}.rich ol{list-style:decimal}
.rich a{text-decoration:underline;text-underline-offset:3px}
.rich h1,.rich h2,.rich h3,.rich h4{margin:.4em 0 .4em}
.rich blockquote{border-left:3px solid var(--c-primary);margin:1em 0;padding:.2em 1em;font-style:italic}
.im{display:block;overflow:hidden;max-width:100%;--z:1;position:relative}
.im img{display:block;width:100%;height:auto;object-position:var(--ox,50%) var(--oy,50%);transform:scale(var(--z));transform-origin:var(--ox,50%) var(--oy,50%);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.im a{display:block;height:100%}
.hzw:hover img{transform:scale(calc(var(--z) * 1.05))}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.95em 1.9em;border-radius:999px;font-weight:700;font-size:.86rem;letter-spacing:.09em;text-decoration:none;text-transform:uppercase;transition:transform .25s,box-shadow .25s,background-color .25s,color .25s;cursor:pointer;border:2px solid transparent;line-height:1.2}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(0,0,0,.45)}
.btn-solid{background:var(--c-primary);color:#fff}
.btn-outline{background:transparent;border-color:currentColor;color:var(--c-primary)}
.btn-ghost{background:transparent;color:var(--c-primary)}
.btn-sm{padding:.6em 1.2em;font-size:.78rem}
.ib{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.ib-i{width:84px;height:84px;border-radius:999px;background:var(--c-cream);color:var(--c-primary);display:flex;align-items:center;justify-content:center;transition:transform .3s}
.ib:hover .ib-i{transform:translateY(-4px) scale(1.05)}
.ib-i i{font-size:2rem}.ib-i img{width:44px;height:44px;object-fit:contain}.ib-i svg{width:44px;height:44px}
.ib-t{font-family:var(--f-body);font-size:.98rem;font-weight:700;line-height:1.35}
.ib-p{margin:0;font-size:.92rem;opacity:.85}
.sp{height:40px}
.dv{border:0;border-top:2px solid var(--c-primary);margin:0 auto;width:80px}
.vid{position:relative;width:100%;border-radius:14px;overflow:hidden}.vid iframe,.vid video{position:absolute;inset:0;width:100%;height:100%;border:0}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gal a:hover img{transform:scale(1.03)}
.ul{list-style:none;margin:0;padding:0;display:grid;gap:.5em 2em}.ul li{display:flex;gap:.6em;align-items:flex-start}.li-i{color:var(--c-primary);flex:none;margin-top:.25em}
.soc{display:flex;flex-wrap:wrap;gap:10px;justify-content:inherit}
.soc a{display:inline-flex;width:44px;height:44px;border-radius:999px;align-items:center;justify-content:center;background:var(--c-primary);color:#fff;text-decoration:none;transition:transform .25s}.soc a:hover{transform:translateY(-3px)}
.w-social{text-align:inherit}.w-social .soc{justify-content:center}
.acc details{border-bottom:1px solid rgba(127,127,127,.3);padding:.9em 0}.acc summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1em}
.acc summary::after{content:'+';font-size:1.3em;line-height:1;color:var(--c-primary)}.acc details[open] summary::after{content:'–'}.acc details .rich{padding-top:.6em}
.ph{border:2px dashed rgba(127,127,127,.5);padding:28px;text-align:center;font-size:.85rem;opacity:.7;border-radius:10px}

/* cabeçalho */
#hdr{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:fixed;top:0;left:0;right:0;z-index:50;transition:background-color .3s,box-shadow .3s,padding .3s;color:#fff}
.hdr-in{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:20px}
.logo img{display:block;width:auto}
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,26px)}
.nav a{white-space:nowrap}
.nav a:not(.btn){text-decoration:none;font-weight:600;font-size:.92rem;position:relative;padding:4px 0}
.nav a:not(.btn)::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--c-primary);transition:width .3s}
.nav a:not(.btn):hover::after,.nav a.on::after{width:100%}
#hdr.lh .logo{transition:opacity .3s}#hdr.lh:not(.solid) .logo{opacity:0;pointer-events:none}
#hdr{transition:transform .45s cubic-bezier(.2,.7,.2,1),background-color .3s,box-shadow .3s}
@media(min-width:1101px){#hdr.hat:not(.scrolled){transform:translateY(-110%);pointer-events:none}}
@media(max-width:1100px){#hdr.hatm:not(.scrolled){transform:translateY(-110%);pointer-events:none}}
#hdr.solid{box-shadow:0 6px 24px -12px rgba(0,0,0,.3)}
#hdr.solid .hdr-in{padding-top:8px;padding-bottom:8px}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;flex-direction:column;gap:6px;align-items:center;justify-content:center}
.burger span{display:block;width:26px;height:2px;background:currentColor;transition:transform .3s,opacity .3s}
#hdr.solid .burger{color:#5f5e5c}
@media(max-width:1100px){
 .burger{display:flex}
 .nav{position:fixed;inset:0 0 auto 0;top:0;padding:90px 28px 30px;background:var(--c-dark);flex-direction:column;align-items:flex-start;gap:18px;transform:translateY(-105%);transition:transform .4s cubic-bezier(.2,.7,.2,1);z-index:-1;box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
 .nav a:not(.btn){color:#fff!important;font-size:1.15rem}
 body.nav-open .nav{transform:none}
 body.nav-open .burger{color:#fff;position:relative;z-index:2}
 body.nav-open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
 body.nav-open .burger span:nth-child(2){opacity:0}
 body.nav-open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}

/* pontos de navegação (auto-scroll) */
#dots{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:12px}
#dots a{width:11px;height:11px;border-radius:99px;background:rgba(255,255,255,.55);border:2px solid var(--c-primary);display:block;transition:transform .3s,background .3s;position:relative}
#dots a.on{background:var(--c-primary);transform:scale(1.35)}
#dots a span{position:absolute;right:22px;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--c-dark);color:#fff;font-size:.72rem;padding:3px 9px;border-radius:5px;opacity:0;pointer-events:none;transition:opacity .2s}
#dots a:hover span{opacity:1}
@media(max-width:900px){#dots{display:none}}

/* animações de entrada */
.js [data-anim]{opacity:0;transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--ad,0ms),transform .9s cubic-bezier(.2,.7,.2,1) var(--ad,0ms)}
.js [data-anim=fade-up]{transform:translateY(40px)}
.js [data-anim=slide-up]{transform:translateY(80px)}
.js [data-anim=fade-down]{transform:translateY(-40px)}
.js [data-anim=fade-left]{transform:translateX(-60px)}
.js [data-anim=fade-right]{transform:translateX(60px)}
.js [data-anim=zoom-in]{transform:scale(.88)}
.js [data-anim].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js [data-anim]{opacity:1!important;transform:none!important;transition:none}html{scroll-behavior:auto}}

/* lightbox */
#lbx{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:100;display:none;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}
#lbx.open{display:flex}#lbx img{max-height:92vh;max-width:96vw;border-radius:8px}

/* barra de progresso */
#prog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--c-primary);z-index:60}

/* galeria em carrossel */
.galw{position:relative}
.gal.sl{display:flex;gap:var(--gp,16px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px;-webkit-overflow-scrolling:touch}
.gal.sl::-webkit-scrollbar{display:none}
.gal.sl>*{flex:0 0 calc((100% - (var(--n,3) - 1) * var(--gp,16px)) / var(--n,3));scroll-snap-align:start;min-width:0}
.gal.sl img{width:100%;height:auto}
.gnav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:99px;border:0;background:rgba(255,250,244,.95);color:var(--c-dark);font-size:26px;line-height:1;cursor:pointer;box-shadow:0 8px 22px -8px rgba(0,0,0,.45);z-index:2;transition:transform .2s,background .2s}
.gnav:hover{background:var(--c-primary);color:#fff}
.gnav.gp{left:-10px}.gnav.gn{right:-10px}
@media(max-width:639px){.gnav{width:38px;height:38px;font-size:22px}.gnav.gp{left:2px}.gnav.gn{right:2px}}

/* ajuste automático à altura da tela: só texto/espaçamentos encolhem (logo e fotos não) */
.sec[style*="--fit"] .w:not(.w-image):not(.w-spacer):not(.w-gallery){zoom:var(--fit)}

/* botão voltar ao topo (só aparece depois de rolar) */
#totop{position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);width:48px;height:48px;border-radius:999px;border:0;background:var(--c-primary);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:45;box-shadow:0 12px 28px -10px rgba(0,0,0,.55);opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .3s,transform .3s,visibility .3s,background .2s}
#totop.show{opacity:1;visibility:visible;transform:none}
#totop:hover{background:var(--c-dark);transform:translateY(-3px)}
