:root{
  --azul:#1f7fd1;--azul-esc:#0f4f8f;--ceu:#e4f2fc;--turq:#2cc3b5;--sol:#ffc42e;--sol-claro:#fff3cc;--coral:#ef5b5b;--verde:#52b46b;
  --tx:#23323f;--mut:#5f7080;--bd:#e2ebf2;--bg:#fffdf8;--r:22px;--sombra:0 10px 30px rgba(15,79,143,.12)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
main{flex:1 0 auto;width:100%}
.footer{flex-shrink:0}
body{margin:0;font:17px/1.65 "Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--tx);background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,.brand,.btn{font-family:"Baloo 2","Nunito",system-ui,sans-serif}
h1,h2,h3{line-height:1.15;color:var(--azul-esc);margin:0 0 .5em}
img{max-width:100%;display:block}
a{color:var(--azul)}a:hover{color:var(--azul-esc)}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px 12px;z-index:99;border-radius:8px}
:focus-visible{outline:3px solid var(--sol);outline-offset:3px}
.eyebrow{display:inline-block;font-weight:800;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--coral);margin-bottom:6px}

/* topo */
.topbar{background:var(--azul-esc);color:#fff;font-size:14px}
.topbar .wrap{display:flex;gap:18px;align-items:center;padding-top:7px;padding-bottom:7px;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none}.topbar a:hover{text-decoration:underline}
.topbar .pt{margin-left:auto;font-weight:800;background:var(--sol);color:#3b2b00;padding:3px 14px;border-radius:99px}
.topbar .pt:hover{background:#ffd259;text-decoration:none;color:#3b2b00}
.header{background:#fff;position:sticky;top:0;z-index:20;box-shadow:0 2px 14px rgba(15,79,143,.08)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--azul-esc);font-weight:800;line-height:1.05;font-size:19px}
.brand small{display:block;font:600 12px "Nunito",sans-serif;color:var(--mut);letter-spacing:.02em}
nav{display:flex;gap:2px;align-items:center}
nav a{padding:9px 14px;border-radius:99px;text-decoration:none;color:var(--tx);font-weight:700;font-size:15px}
nav a:hover{background:var(--ceu);color:var(--azul-esc)}
nav a[aria-current]{background:var(--ceu);color:var(--azul-esc)}
nav .btn-nav{background:var(--coral);color:#fff;margin-left:6px}
nav .btn-nav:hover,nav .btn-nav[aria-current]{background:#d94646;color:#fff}
.burger{display:none;width:46px;height:46px;border-radius:14px;background:var(--ceu);border:0;cursor:pointer;color:var(--azul-esc);font-size:24px}

/* botões */
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--azul);color:#fff;border:0;border-radius:99px;padding:12px 26px;font-weight:700;font-size:18px;text-decoration:none;cursor:pointer;box-shadow:0 6px 0 var(--azul-esc);transform:translateY(0);transition:transform .12s,box-shadow .12s}
.btn:hover{color:#fff;transform:translateY(2px);box-shadow:0 4px 0 var(--azul-esc)}
.btn.sol{background:var(--sol);color:#3b2b00;box-shadow:0 6px 0 #d89c00}.btn.sol:hover{color:#3b2b00;box-shadow:0 4px 0 #d89c00}
.btn.coral{background:var(--coral);box-shadow:0 6px 0 #b83c3c}.btn.coral:hover{box-shadow:0 4px 0 #b83c3c}
.btn.ghost{background:#fff;color:var(--azul-esc);box-shadow:inset 0 0 0 3px var(--azul),0 6px 0 var(--ceu)}
.btn.ghost:hover{color:var(--azul-esc)}
.btn.light{background:#fff;color:var(--azul-esc);box-shadow:0 6px 0 rgba(0,0,0,.18)}.btn.light:hover{color:var(--azul-esc)}
.btns{display:flex;gap:16px;flex-wrap:wrap;margin-top:26px}

/* hero */
.hero{position:relative;background:linear-gradient(160deg,var(--ceu) 0%,#fff7dc 100%);overflow:hidden;padding:54px 0 90px}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;position:relative;z-index:1}
.hero h1{font-size:clamp(34px,5.2vw,58px);margin:.1em 0 .3em}
.hero h1 em{font-style:normal;color:var(--coral);background:linear-gradient(transparent 62%,var(--sol-claro) 62%)}
.hero p.lead{font-size:19px;max-width:560px;color:#38505f}
.selo{display:inline-flex;align-items:center;gap:10px;background:#fff;border-radius:99px;padding:7px 16px 7px 8px;box-shadow:var(--sombra);font-weight:800;font-size:14px;color:var(--azul-esc)}
.selo i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--verde);color:#fff;font-style:normal}
.hero-art{position:relative;min-height:420px}
.blob{position:absolute;overflow:hidden;box-shadow:var(--sombra);border:8px solid #fff;background:var(--ceu)}
.blob img{width:100%;height:100%;object-fit:cover}
.blob.a{width:68%;aspect-ratio:1/1.12;right:0;top:0;border-radius:62% 38% 55% 45%/48% 55% 45% 52%}
.blob.b{width:46%;aspect-ratio:1;left:0;bottom:0;border-radius:50% 50% 42% 58%/55% 45% 55% 45%}
.deco{position:absolute;pointer-events:none}
.sun{width:120px;right:4%;bottom:6%;animation:spin 40s linear infinite}
.dot{border-radius:50%}
@keyframes spin{to{transform:rotate(360deg)}}
.wave{display:block;width:100%;height:auto;position:absolute;left:0;bottom:-1px}

/* seções */
.sec{padding:72px 0}
.sec.center{text-align:center}.sec h2{font-size:clamp(28px,3.6vw,40px)}
.sec .sub{max-width:640px;margin:0 auto 38px;color:var(--mut);font-size:18px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px}
.feat{background:#fff;border-radius:var(--r);padding:28px 24px;box-shadow:var(--sombra);text-align:left;position:relative;overflow:hidden}
.feat .ic{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;font-size:32px;margin-bottom:14px}
.feat:nth-child(1) .ic{background:#ffe6a3}.feat:nth-child(2) .ic{background:#cdeefb}.feat:nth-child(3) .ic{background:#ffd6d6}.feat:nth-child(4) .ic{background:#d3f2dc}
.feat h3{font-size:22px}.feat p{margin:0;color:var(--mut)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split .pic{position:relative}
.split .pic .blob{position:relative;width:100%;aspect-ratio:1/1.05;border-radius:44% 56% 48% 52%/52% 44% 56% 48%}
.split .pic .chip{position:absolute;left:-10px;bottom:24px;background:var(--sol);color:#3b2b00;font:800 18px "Baloo 2",sans-serif;padding:10px 20px;border-radius:99px;box-shadow:var(--sombra);transform:rotate(-4deg)}
.checks{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.checks li{display:flex;gap:12px;align-items:flex-start;font-weight:600}
.checks li:before{content:"✓";flex:none;width:26px;height:26px;border-radius:50%;background:var(--verde);color:#fff;display:grid;place-items:center;font-size:15px;font-weight:800;margin-top:2px}
.bg-ceu{background:var(--ceu)}
.rotina{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.rotina div{background:#fff;border-radius:var(--r);padding:20px;text-align:center;box-shadow:var(--sombra)}
.rotina b{display:block;font:800 22px "Baloo 2",sans-serif;color:var(--coral)}
.rotina span{font-weight:700}
.cta-band{position:relative;background:var(--azul);color:#fff;border-radius:34px;padding:46px;display:flex;gap:30px;align-items:center;justify-content:space-between;flex-wrap:wrap;overflow:hidden}
.cta-band h2{color:#fff;margin:0 0 8px}.cta-band p{margin:0;max-width:560px;opacity:.95}
.cta-band:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:var(--turq);right:-80px;top:-100px;opacity:.55}
.cta-band>*{position:relative}
.cards-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
.info-card{background:#fff;border-radius:var(--r);padding:26px;box-shadow:var(--sombra)}
.info-card h3{font-size:20px}.info-card p{margin:.2em 0}
.page-hero{background:linear-gradient(160deg,var(--ceu),#fff7dc);padding:46px 0 70px;position:relative;overflow:hidden}
.page-hero h1{font-size:clamp(32px,4.4vw,48px);margin:0}.page-hero p{max-width:640px;color:#38505f;margin:.6em 0 0}
.page-hero .upd{font-size:14px;color:var(--mut)}
.prose{padding-top:20px;padding-bottom:60px;max-width:800px}.prose h2{margin-top:1.4em;font-size:28px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:34px;padding-top:34px;padding-bottom:60px}
details{background:#fff;border-radius:18px;padding:14px 20px;margin:12px 0;box-shadow:var(--sombra)}
summary{cursor:pointer;font:700 19px "Baloo 2",sans-serif;color:var(--azul-esc)}details[open] summary{margin-bottom:6px}
.notice{background:var(--sol-claro);border-radius:16px;padding:14px 18px;font-weight:600}
.muted{color:var(--mut);font-size:14px}
.form{display:grid;gap:14px;background:#fff;border-radius:var(--r);padding:26px;box-shadow:var(--sombra)}
.form.row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:end}
label{display:grid;gap:5px;font-weight:700;font-size:15px}
input,select,textarea{font:inherit;padding:12px 14px;border:2px solid var(--bd);border-radius:14px;background:#fff;width:100%;color:var(--tx)}
input:focus,select:focus,textarea:focus{border-color:var(--azul);outline:none}
.hp{position:absolute;left:-9999px}.ok{color:#1c7a4d;font-weight:700}.err{color:#b3261e;font-weight:700}.warn{color:#b26a00}

/* portal */
.portal{padding-top:0;padding-bottom:60px;margin-top:-34px;position:relative;z-index:2}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;background:#fff;border-radius:var(--r);padding:20px;box-shadow:var(--sombra)}
.year h2{margin:34px 0 12px;font-size:30px;display:flex;align-items:center;gap:12px}
.year h2:before{content:"";width:14px;height:14px;border-radius:50%;background:var(--sol)}
.docs{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.doc{display:flex;gap:14px;justify-content:space-between;align-items:center;background:#fff;border-radius:18px;padding:14px 18px;flex-wrap:wrap;box-shadow:0 3px 12px rgba(15,79,143,.07);border-left:6px solid var(--azul)}
.doc[hidden],.year[hidden]{display:none}
.doc-info{display:grid}.doc-info strong{font-size:17px}
.fmts{display:flex;gap:7px;flex-wrap:wrap}
.fmt{font-size:13px;font-weight:800;letter-spacing:.04em;text-decoration:none;color:#fff;padding:8px 13px;border-radius:99px;min-width:56px;text-align:center}
.fmt-pdf{background:#d9453b}.fmt-odt{background:#2b72c2}.fmt-ods{background:#2e9e6b}.fmt-odp{background:#e08a1e}.fmt-txt{background:#5f7080}.fmt-csv{background:#7a4fb3}
.fmt:hover{filter:brightness(.88);color:#fff}
.legend{margin-top:34px;background:var(--ceu);border-radius:var(--r);padding:18px 24px}.legend h3{margin:0 0 4px;font-size:20px}.legend p{margin:0}

/* rodapé */
.footer{background:#0f2f4d;color:#d3e4f1;position:relative;padding-top:64px;margin-top:40px}
.footer .wave{top:-1px;bottom:auto;transform:rotate(180deg)}
.footer a{color:#fff}.footer strong{color:var(--sol);font-family:"Baloo 2",sans-serif;font-size:18px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px}
.copy{text-align:center;font-size:13px;padding:18px;border-top:1px solid #234a6c;margin-top:26px}
.float{position:fixed;right:16px;bottom:16px;z-index:30;display:grid;gap:10px}
.float a{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:26px;text-decoration:none;box-shadow:0 8px 20px rgba(0,0,0,.25)}
.float .wa{background:#25d366}.float .tel{background:var(--coral);display:none}

/* admin */
.admin{background:#f3f7fb}.admin .wrap{padding-top:18px;padding-bottom:18px}.admin .card{margin-bottom:22px;background:#fff;border-radius:var(--r);padding:24px;box-shadow:var(--sombra)}
.login{max-width:420px;padding-top:80px}
.tbl{width:100%;border-collapse:collapse;font-size:15px}.tbl th,.tbl td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--bd);vertical-align:middle}
.acts{white-space:nowrap}.sm{font:inherit;font-size:13px;font-weight:700;padding:6px 12px;border-radius:99px;border:2px solid var(--bd);background:#fff;cursor:pointer}
.sm.danger{color:#b3261e;border-color:#f0c2be}.link{background:none;border:0;color:var(--azul);text-decoration:underline;cursor:pointer;font:inherit}
.log{list-style:none;padding:0}.log li{padding:4px 0}.admin .header .wrap{padding-top:14px;padding-bottom:14px}

/* mobile */
@media(max-width:900px){
  .hero{padding:34px 0 70px}.hero .wrap,.split,.two,.filters{grid-template-columns:1fr}
  .hero-art{min-height:330px;order:-1;max-width:420px;margin:0 auto;width:100%}
  .split{gap:34px}.split .pic{max-width:440px}
  .sec{padding:52px 0}
  .burger{display:block}
  nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:12px 18px 18px;box-shadow:0 14px 24px rgba(15,79,143,.15);border-radius:0 0 22px 22px}
  nav.open{display:flex}nav a{padding:14px 16px;font-size:17px}nav .btn-nav{margin:6px 0 0;text-align:center}
  .header .wrap{position:relative}
  .topbar .wrap>span{display:none}.topbar .pt{margin-left:auto}
  .brand{font-size:17px}.brand small{display:none}.brand img{width:44px;height:44px}
  .cta-band{padding:30px 24px;border-radius:26px}
  .float .tel{display:grid}.float a{width:52px;height:52px}
  .tbl thead{display:none}.tbl tr{display:block;border-bottom:2px solid var(--bd);padding:8px 0}.tbl td{display:block;border:0;padding:3px 0}.acts{white-space:normal}
}
@media(max-width:480px){
  body{font-size:16px}.btn{font-size:17px;padding:12px 22px;width:100%;justify-content:center}.btns{flex-direction:column;gap:14px}
  .doc{flex-direction:column;align-items:flex-start}.fmt{flex:1;min-width:calc(33% - 7px)}.fmts{width:100%}
  .cta-band .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.sun{animation:none}html{scroll-behavior:auto}.btn{transition:none}}

/* galeria de eventos: albuns */
.stats{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 0}
.stats span{background:#fff;border-radius:99px;padding:6px 16px;font-weight:700;box-shadow:var(--sombra)}.stats b{color:var(--coral);font-family:"Baloo 2",sans-serif;font-size:20px}
.album-nav{background:#fffdf8;padding:26px 0 8px}
.album-nav .wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.album-nav a{text-decoration:none;color:var(--tx);font-weight:700;font-size:15px;background:#fff;border:2px solid var(--bd);border-radius:99px;padding:6px 14px;white-space:nowrap}
.album-nav a small{background:var(--ceu);border-radius:99px;padding:1px 8px;margin-left:4px;color:var(--azul-esc);font-weight:800}
.album-nav a:hover,.album-nav a.on{background:var(--azul);border-color:var(--azul);color:#fff}.album-nav a:hover small,.album-nav a.on small{background:rgba(255,255,255,.25);color:#fff}
.album{padding:56px 0 48px;scroll-margin-top:90px;--acc:var(--azul);--acc-bg:var(--ceu)}
.album.alt{background:var(--acc-bg)}
.album.c-coral{--acc:var(--coral);--acc-bg:#ffeceb}.album.c-verde{--acc:var(--verde);--acc-bg:#e6f6ea}.album.c-sol{--acc:#e8a400;--acc-bg:var(--sol-claro)}.album.c-turq{--acc:var(--turq);--acc-bg:#def6f3}.album.c-azul{--acc:var(--azul);--acc-bg:var(--ceu)}
.album-head{display:flex;gap:16px;align-items:center;margin-bottom:22px;flex-wrap:wrap}
.album-ic{width:64px;height:64px;border-radius:20px;background:var(--acc);display:grid;place-items:center;font-size:32px;box-shadow:0 6px 0 rgba(0,0,0,.12)}
.album-head h2{margin:0;font-size:clamp(26px,3.4vw,36px)}.album-head p{margin:2px 0 0;color:var(--mut)}
.album-head>div{flex:1;min-width:220px}
.album-count{background:#fff;border:2px solid var(--acc);color:var(--tx);font-weight:800;border-radius:99px;padding:4px 16px;font-size:14px}
.bento{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.bento li{margin:0;min-width:0}.bento[hidden]{display:none!important}
.bento li.big{grid-column:span 2;grid-row:span 2}
.bento a{display:block;position:relative;width:100%;aspect-ratio:1;border-radius:20px;overflow:hidden;border:5px solid #fff;box-shadow:var(--sombra);background:var(--acc-bg)}
.bento li.big a{height:100%;aspect-ratio:auto}
.bento img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform .35s}
.bento a:hover img{transform:scale(1.06)}
.bento a:after{content:"🔍";position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;font-size:16px;opacity:0;transform:scale(.8);transition:.2s}
.bento a:hover:after,.bento a:focus-visible:after{opacity:1;transform:none}
.more{text-align:center;margin:28px 0 0}
.lb{border:0;padding:0;background:rgba(10,25,40,.94);width:100vw;height:100vh;max-width:none;max-height:none;margin:0;color:#fff}
.lb[open]{display:grid;place-items:center}
.lb::backdrop{background:rgba(10,25,40,.94)}
.lb img{max-width:92vw;max-height:86vh;border-radius:14px;object-fit:contain;touch-action:pan-y}
.lb button{position:absolute;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:34px;line-height:1;width:52px;height:52px;border-radius:50%;cursor:pointer}
.lb button:hover{background:rgba(255,255,255,.3)}
.lb-x{top:14px;right:14px}.lb-p{left:12px;top:50%}.lb-n{right:12px;top:50%}
.lb-c{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-weight:700}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.bento{gap:8px}.bento a{border-width:3px;border-radius:14px}.album{padding:40px 0 34px}.album-count{order:3}.album-ic{width:52px;height:52px;font-size:26px}.lb-p,.lb-n{top:auto;bottom:12px}}
@media(prefers-reduced-motion:reduce){.bento img,.bento a:after{transition:none}}
.adm-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:18px}.adm-gal figure{margin:0;display:grid;gap:6px;justify-items:center}.adm-gal img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}

@media(max-width:600px){.album-nav{padding-top:18px}.album-nav .wrap{gap:8px}.album-nav a{font-size:14px;padding:6px 12px}}

/* quadro: fileira simples (albuns pequenos e fotos extras) */
.bento.flex{display:flex;flex-wrap:wrap;justify-content:center;margin-top:12px}
.bento.flex li{width:calc((100% - (var(--c) - 1) * 12px) / var(--c))}
.bento.flex:first-of-type{margin-top:0}
.bento.flex a{aspect-ratio:4/3}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}.bento.flex li{width:calc((100% - 12px) / 2)}}
@media(max-width:600px){.bento.flex{gap:8px}.bento.flex li{width:calc((100% - 8px) / 2)}}

@media(max-width:900px){.bento li.big{grid-row:span 1}.bento li.big a{height:auto;aspect-ratio:16/11}}
@media(max-width:600px){.bento li.big a{aspect-ratio:4/3}}
.foot-logo{display:block;background:#fff;border-radius:22px;padding:8px;margin-bottom:12px;width:170px;height:auto}.brand img{height:58px;width:auto}
