:root{color-scheme:dark;
  --bg:#0f1012; --bg2:#17191c; --card:#1d2024; --line:#2c3036;
  --text:#f2f2f2; --muted:#a3a8b0;
  --red:#d4a72c; --red2:#e8bd45; --gold:#e3b53b; --accent-ink:#111;
  --ok:#2fa866; --radius:14px;
  --light:#f6f4ef; --light-text:#1b1b1b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 Inter,system-ui,sans-serif}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:Oswald,Impact,sans-serif;letter-spacing:.5px;line-height:1.15;margin:0 0 .5em}
h2{font-size:clamp(1.7rem,4vw,2.4rem);text-transform:uppercase}
h3{font-size:1.2rem}
.wrap{max-width:1140px;margin:0 auto;padding:0 16px}
.muted{color:var(--muted)}
.small{font-size:.875rem}

/* Botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;border:0;border-radius:999px;padding:.75em 1.4em;font:600 1rem Inter,sans-serif;cursor:pointer;text-decoration:none;transition:transform .15s,background .15s;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn-red{background:var(--red);color:var(--accent-ink)}
.btn-red:hover{background:var(--red2)}
.btn-gold{background:var(--gold);color:#1a1a1a;box-shadow:0 0 0 0 rgba(217,165,40,.6);animation:pulse 2.6s infinite}
.btn-gold:hover{background:#ecb833}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--muted)}
.btn-sm{padding:.45em .9em;font-size:.875rem}
.btn-danger{background:transparent;color:#ff6b7d;border:1px solid #5a2630}
.btn-danger:hover{background:#3a1820}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(217,165,40,.55)}70%{box-shadow:0 0 0 12px rgba(217,165,40,0)}100%{box-shadow:0 0 0 0 rgba(217,165,40,0)}}

/* Topo */
.topbar{position:sticky;top:0;z-index:20;background:rgba(15,16,18,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;gap:20px;height:72px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:Oswald,sans-serif;font-size:1.35rem}
.brand img{height:52px;width:52px;border-radius:50%;object-fit:cover}
.logo-mark{width:48px;height:48px;border-radius:50%;background:#000;color:var(--gold);display:grid;place-items:center;font:700 1.4rem Oswald,sans-serif;border:2px solid var(--gold);box-shadow:inset 0 0 0 4px #000,inset 0 0 0 6px var(--gold)}
.nav{display:flex;gap:18px;margin-left:auto}
.nav a{text-decoration:none;color:var(--muted);font-weight:500}
.nav a:hover{color:var(--text)}
@media (max-width:860px){.nav{display:none}.topbar .btn{margin-left:auto}}

/* Hero */
.hero{position:relative;min-height:78vh;display:flex;align-items:center;overflow:hidden;
  background:radial-gradient(circle at 75% 30%,rgba(212,167,44,.35),transparent 55%),linear-gradient(160deg,#16171a 0%,#0b0b0c 100%)}
/* círculo do topo agora é .hero-orbita (animado) */
.hero .wrap{position:relative;z-index:1;padding-top:60px;padding-bottom:60px}
.kicker{display:inline-block;color:var(--gold);font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:.85rem;margin-bottom:12px}
.hero h1{font-size:clamp(2.6rem,8vw,5.2rem);text-transform:uppercase;max-width:12ch}
.hero h1 span{color:var(--red2)}
.hero p{font-size:1.15rem;color:#d4d6da;max-width:52ch}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

section.block{padding:84px 0}
section.alt{background:var(--bg2)}
section.light{background:linear-gradient(180deg,#141210,#0f1012);color:var(--text);border-top:1px solid #2a2416;border-bottom:1px solid #2a2416}
section.light .muted{color:var(--muted)}
.section-head{max-width:680px;margin-bottom:40px}

/* Benefícios */
.benefits{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.benefit{background:var(--card);border-radius:var(--radius);padding:22px;border:1px solid #3a3020;transition:border-color .2s,transform .2s}
.benefit:hover{border-color:var(--gold);transform:translateY(-2px)}
.benefit .ico{font-size:1.8rem;margin-bottom:8px}
.benefit h3{color:var(--gold);margin-bottom:.3em}
.benefit p{margin:0;color:#c9ccd1;font-size:.95rem}

/* Galeria */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:12px}
.gallery figure{margin:0;position:relative;border-radius:var(--radius);overflow:hidden;background:linear-gradient(135deg,#241d0c,#1d2024)}
.gallery figure:nth-child(1){grid-column:span 2;grid-row:span 2}
.gallery figure:nth-child(4){grid-column:span 2}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.8));font-weight:600}
.ph{position:absolute;inset:0;display:grid;place-items:center;font-size:2.4rem;opacity:.35}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.gallery figure:nth-child(4){grid-column:span 1}}

/* GTMA */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.split ul{padding-left:1.2em}
.split li{margin:.4em 0}
.seal{aspect-ratio:1;border-radius:50%;border:3px solid var(--gold);display:grid;place-items:center;text-align:center;background:radial-gradient(circle,#241d0c,#0f1012 70%);max-width:360px;margin:auto;width:100%}
.seal strong{font:700 clamp(3rem,9vw,5rem) Oswald,sans-serif;color:var(--gold);display:block}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* CTA */
.cta{text-align:center;background:linear-gradient(120deg,var(--red),#8a6a14);color:#111}
.cta h2{margin-bottom:.3em}
.cta .hero-actions{justify-content:center}

/* Rodapé */
.footer{background:#08090a;padding:56px 0 24px;border-top:3px solid var(--red)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.footer h3{color:var(--gold);font-size:1rem;text-transform:uppercase}
.footer p{margin:.3em 0;color:var(--muted)}
.footer a{text-decoration:none}
.footer a:hover{color:var(--text)}
.socials{display:flex;gap:10px;flex-wrap:wrap}
.socials a{border:1px solid var(--line);border-radius:999px;padding:.35em .9em;font-size:.9rem;color:var(--muted)}
.copy{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);color:#6c7179;font-size:.85rem;text-align:center}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:30;width:58px;height:58px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.4);text-decoration:none;font-size:1.7rem}

/* Login */
.center-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(circle at 30% 20%,rgba(212,167,44,.25),transparent 50%),var(--bg)}
.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:32px}
.login-card .brand{justify-content:center;margin-bottom:18px}
.demo{margin-top:22px;padding:14px;border-radius:10px;background:var(--bg2);font-size:.85rem;color:var(--muted)}
.demo code{color:var(--text)}

/* Formulários */
label{display:block;font-size:.85rem;font-weight:600;color:var(--muted);margin:0 0 4px}
input,select,textarea{width:100%;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:.7em .85em;font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
textarea{min-height:90px;resize:vertical}
.field{margin-bottom:14px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}
.form-grid .full{grid-column:1/-1}
.error{color:#ff6b7d;font-size:.9rem;min-height:1.2em;margin:.2em 0 .6em}

/* Área logada */
.app-bar{background:var(--bg2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.app-bar .wrap{display:flex;align-items:center;gap:14px;height:64px}
.app-bar .who{margin-left:auto;text-align:right;line-height:1.2}
.app-bar .who small{color:var(--muted);display:block;font-size:.8rem}
.page{padding:28px 0 64px}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-width:0}
.card h3{display:flex;align-items:center;gap:8px;text-transform:uppercase;font-size:1.05rem;color:var(--gold)}
.welcome{display:flex;gap:20px;align-items:center;flex-wrap:wrap;background:linear-gradient(120deg,#241d0c,var(--card));}
.welcome h1{font-size:clamp(1.6rem,4vw,2.3rem);margin:0}
.dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.dl dt{color:var(--muted);font-size:.9rem}
.dl dd{margin:0;overflow-wrap:anywhere}

/* Faixa */
.belt{display:inline-flex;align-items:center;gap:10px;font-weight:700}
.belt i{display:inline-block;width:64px;height:14px;border-radius:3px;position:relative;box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.belt i::after{content:"";position:absolute;right:10px;top:0;bottom:0;width:10px;background:rgba(0,0,0,.75)}
.belt.big i{width:120px;height:22px}
.belt.big{font-size:1.2rem}
.progress{height:10px;background:var(--bg2);border-radius:99px;overflow:hidden;margin:8px 0 4px}
.progress b{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold));border-radius:99px}

.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 14px 18px}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--gold)}
.timeline li:last-child{padding-bottom:0}

.list{list-style:none;margin:0;padding:0}
.list li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}
.list .chk{flex:0 0 22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:.8rem;border:2px solid var(--line)}
.list .chk.done{background:var(--ok);border-color:var(--ok)}
.list p{margin:2px 0 0;color:var(--muted);font-size:.9rem}
.list .grow{flex:1;min-width:0}
.empty{color:var(--muted);font-style:italic;padding:8px 0}

.videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.video{background:var(--bg2);border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.video .frame{aspect-ratio:16/9;background:#000;display:grid;place-items:center;color:var(--muted);text-align:center;font-size:.9rem}
.video iframe,.video video{width:100%;height:100%;border:0}
.video .body{padding:12px 14px}
.video h4{margin:0 0 4px}
.tag{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.2em .6em;border-radius:6px;background:var(--line);color:var(--text)}
.tag.exame{background:var(--red);color:var(--accent-ink)}
.tag.evento{background:#2c5d9e}
.tag.passado{background:#444}

.events{display:grid;gap:12px}
.event-item{display:flex;gap:14px;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;text-align:left;color:inherit;font:inherit;width:100%}
.event-item:hover{border-color:var(--gold)}
.datebox{flex:0 0 60px;text-align:center;background:var(--card);border-radius:10px;padding:6px 0;line-height:1.1}
.datebox b{display:block;font:700 1.5rem Oswald,sans-serif;color:var(--gold)}
.datebox small{text-transform:uppercase;font-size:.75rem;color:var(--muted)}
.event-item h4{margin:0 0 2px}

.event-detail{display:grid;grid-template-columns:minmax(0,380px) 1fr;gap:28px;align-items:start}
.poster{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.poster-ph{aspect-ratio:3/4;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;background:linear-gradient(160deg,var(--red),#1a1406 70%);font:700 1.8rem Oswald,sans-serif;text-transform:uppercase}
.poster-ph small{font:600 1rem Inter,sans-serif;color:var(--gold);text-transform:none}
@media (max-width:760px){.event-detail{grid-template-columns:1fr}}
.desc{white-space:pre-wrap}

/* Painel */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.tabs a{padding:.55em 1.1em;border-radius:999px;text-decoration:none;color:var(--muted);border:1px solid var(--line);font-weight:600}
.tabs a.on{background:var(--red);border-color:var(--red);color:var(--accent-ink)}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--bg2)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.toggle{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;color:var(--text);font-weight:500;font-size:1rem;margin:0}
.toggle input{width:20px;height:20px;accent-color:var(--ok);flex:0 0 auto}
.group-title{margin:18px 0 6px;font-size:.9rem;color:var(--muted);text-transform:uppercase}
.back{display:inline-block;margin-bottom:16px;color:var(--muted);text-decoration:none}
.back:hover{color:var(--text)}

#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(120px);background:var(--ok);color:#fff;padding:.7em 1.3em;border-radius:999px;font-weight:600;transition:transform .25s;z-index:100;max-width:calc(100% - 32px)}
#toast.show{transform:translateX(-50%) translateY(0)}
#toast.err{background:var(--red)}
section[id],footer[id]{scroll-margin-top:72px}
.brand span:not(.logo-mark){white-space:nowrap}
@media (max-width:560px){.topbar .brand span:not(.logo-mark),.app-bar .brand span:not(.logo-mark){display:none}}

.field input[readonly]{opacity:.7;cursor:default}
.tag-inativo{display:inline-block;margin-top:4px;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:600;background:rgba(255,255,255,.08);color:var(--muted);border:1px solid var(--line)}
.inativos td{opacity:.75}
/* Relatórios */
.filtros{margin:6px 0 16px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.stats div{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center}
.stats b{display:block;font-family:Oswald,sans-serif;font-size:2rem;color:var(--gold)}
.stats span{font-size:.85rem;color:var(--muted)}
.barra{height:10px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.barra i{display:block;height:100%;background:var(--gold);border-radius:99px}
@media print{body{background:#fff!important;color:#000!important}.app-bar,.tabs,.no-print,#toast,footer{display:none!important}.card{background:#fff!important;border:1px solid #ccc!important;box-shadow:none!important;color:#000!important;break-inside:avoid}.card *{color:#000!important}.stats b{color:#000!important}.barra i{background:#555!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.faixa-bloco{padding:6px 0 14px;border-bottom:1px solid var(--line)}
.faixa-bloco:last-child{border-bottom:0}
.add-cont{margin-top:8px}
.add-cont summary{list-style:none;display:inline-flex;cursor:pointer}
.add-cont summary::-webkit-details-marker{display:none}
.add-cont[open] summary{margin-bottom:10px;border-color:var(--gold);color:var(--gold)}
.add-cont form{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;padding:14px}

/* ===== Gestão completa ===== */
.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid var(--gold);background:#241d0c}
.avatar.vazio{display:inline-grid;place-items:center;font:700 1.1rem Oswald,sans-serif;color:var(--gold)}
.avatar.mini{width:34px;height:34px;font-size:.95rem;border-width:1px}
.avatar.grande{width:88px;height:88px;font-size:2.2rem}
.apto{margin:8px 0 0;font-weight:700;color:#5fd08f}
.ok-txt{color:#5fd08f}
.list .chk.pend{border-color:transparent;font-size:1rem}
.avisos{margin-top:18px;border-color:#6b5414;background:linear-gradient(120deg,#2a2210,var(--card))}
.avisos ul{margin:0;padding-left:1.1em}.avisos li{margin:.2em 0}
.stats-2{grid-template-columns:repeat(2,1fr)}
.st{flex:0 0 auto;align-self:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:.25em .6em;border-radius:6px;border:1px solid}
.st-pago{color:#5fd08f;border-color:#235c3c;background:#12281c}
.st-aberto{color:#e3b53b;border-color:#5c4a17;background:#2a2210}
.st-atrasado{color:#ff8a98;border-color:#5a2630;background:#2a1418}
.list .acoes{flex-wrap:wrap;gap:6px;justify-content:flex-end}
.forma{background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:.35em .4em;font:inherit;font-size:.85rem}
.cobrancas li{flex-wrap:wrap}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.inline-form input,.inline-form select{flex:1 1 180px;min-width:0;background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:.6em .8em;font:inherit}
.busca{flex:1 1 240px;max-width:360px;background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:.55em 1em;font:inherit}
.nowrap{white-space:nowrap}
.tabs.filhos{margin-bottom:14px}
.acesso{border-color:var(--gold)}
/* Chamada */
.chamada{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.chamada-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;user-select:none}
.chamada-item input{width:20px;height:20px;accent-color:var(--ok);flex:0 0 auto}
.chamada-item span{display:flex;flex-direction:column;min-width:0}
.chamada-item small{color:var(--muted)}
.chamada-item.on{border-color:var(--ok);background:#12281c}
/* Galeria do painel e depoimentos */
.galeria-adm{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:16px}
.galeria-adm figure{margin:0;background:var(--bg2);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.galeria-adm img{width:100%;aspect-ratio:4/3;object-fit:cover}
.galeria-adm figcaption{padding:6px 10px;font-size:.85rem;color:var(--muted);flex:1}
.galeria-adm button{margin:0 10px 10px}
.depoimentos{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.depoimento{margin:0;background:var(--card);border:1px solid #3a3020;border-radius:var(--radius);padding:22px;color:var(--text)}
.depoimento p{margin:0 0 12px;font-size:1.02rem}
.depoimento footer{color:var(--gold);font-size:.9rem}
/* Formulário de aula experimental */
.exp-form{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;max-width:820px;margin:22px auto 0}
.exp-form input,.exp-form select{flex:1 1 180px;min-width:0;border:0;border-radius:999px;padding:.8em 1.1em;font:inherit;background:#fff;color:#111}
.exp-form input[name=idade]{flex:0 1 110px}
/* Gráfico */
.grafico{width:100%;height:auto;display:block}
.grafico .base{stroke:var(--line);stroke-width:1}
.grafico .barra-r{fill:var(--gold)}
.grafico .barra-g:hover .barra-r{fill:#f0c95a}
.grafico .eixo{fill:var(--muted);font-size:11px}
.grafico .valor{fill:var(--text);font-size:12px;font-weight:700}
/* Carteirinha */
.carteirinha{border-radius:18px;overflow:hidden;border:2px solid var(--gold);background:linear-gradient(135deg,#17140b,#0f1012 60%);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.ct-topo{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#000;border-bottom:2px solid var(--gold)}
.ct-topo img{width:48px;height:48px;border-radius:50%}
.ct-topo b{display:block;font:700 1.15rem Oswald,sans-serif;color:var(--gold);text-transform:uppercase}
.ct-topo small{color:var(--muted)}
.ct-corpo{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:18px}
.ct-foto{width:96px;height:96px;border-radius:12px;font-size:2.4rem}
.ct-dados{display:flex;flex-direction:column;min-width:0}
.ct-dados small{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;margin-top:6px}
.ct-dados small:first-child{margin-top:0}
.ct-dados b{font-weight:700;overflow-wrap:anywhere}
.ct-qr{width:104px;height:104px;background:#fff;border-radius:8px;padding:4px}
.ct-qr svg{width:100%;height:100%;display:block}
.ct-rodape{padding:10px 18px;font-size:.78rem;color:var(--muted);border-top:1px solid var(--line);text-align:center}
@media (max-width:480px){.ct-corpo{grid-template-columns:auto 1fr}.ct-qr{grid-column:1/-1;justify-self:center}}
/* Certificado */
.certificado{position:relative;background:#fffdf6;color:#1a1a1a;border:10px double #b8901e;border-radius:6px;padding:40px 32px;text-align:center;max-width:960px;margin:0 auto}
.cert-logo{width:110px;height:110px;border-radius:50%}
.cert-kicker{margin:10px 0 0;text-transform:uppercase;letter-spacing:2px;font-size:.8rem;color:#7a6a3a}
.certificado h1{font:700 clamp(1.8rem,5vw,3rem) Oswald,sans-serif;text-transform:uppercase;color:#9a7414;margin:6px 0 18px}
.cert-texto{font-size:1.15rem;margin:8px auto;max-width:680px}
.cert-faixa{margin:14px 0}.cert-faixa .belt{color:#1a1a1a}
.cert-assin{display:flex;justify-content:space-around;gap:24px;margin-top:56px;flex-wrap:wrap}
.cert-assin div{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.9rem;color:#555;min-width:200px}
.cert-assin span{display:block;width:100%;border-top:1px solid #333}
.cert-lema{margin:28px 0 0;font-style:italic;color:#7a6a3a}
@media print{
  .carteirinha,.certificado,.carteirinha *,.certificado *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .page{padding:0!important}
  .certificado{border-width:8px;max-width:none;page-break-inside:avoid}
  .carteirinha *{color:inherit}
}

/* ===== Animação da faixa no Login ===== */
.faixa-anim{--fx-cor:#111;max-width:260px;margin:-4px auto 6px;text-align:center}
.faixa-svg{width:100%;height:auto;display:block;overflow:hidden}
.fx-tecido{fill:var(--fx-cor);stroke:var(--gold);stroke-width:2;transition:fill .45s ease}
.fx-costura{stroke:var(--gold);stroke-width:1;stroke-dasharray:3 4;opacity:.45}
.fx-dobra{fill:none;stroke:var(--gold);stroke-width:1.5;opacity:.6}
.fx-esq{animation:fx-entra-e .6s cubic-bezier(.2,.8,.2,1) both}
.fx-dir{animation:fx-entra-d .6s cubic-bezier(.2,.8,.2,1) both}
.fx-no{transform-box:view-box;transform-origin:160px 42px;animation:fx-no .45s .5s cubic-bezier(.3,1.6,.5,1) both}
.fx-ponta-e,.fx-ponta-d{transform-box:view-box;transform-origin:160px 54px}
.fx-ponta-e{animation:fx-cai-e .5s .8s cubic-bezier(.3,1.4,.5,1) both}
.fx-ponta-d{animation:fx-cai-d .5s .8s cubic-bezier(.3,1.4,.5,1) both}
@keyframes fx-entra-e{from{transform:translateX(-190px);opacity:0}to{transform:none;opacity:1}}
@keyframes fx-entra-d{from{transform:translateX(190px);opacity:0}to{transform:none;opacity:1}}
@keyframes fx-no{from{transform:scale(0) rotate(-25deg)}to{transform:none}}
@keyframes fx-cai-e{from{transform:rotate(55deg);opacity:0}to{transform:none;opacity:1}}
@keyframes fx-cai-d{from{transform:rotate(-55deg);opacity:0}to{transform:none;opacity:1}}
.fx-legenda{min-height:1.4em;margin:4px 0 0;font-weight:700;color:var(--gold);opacity:0;transition:opacity .3s}
/* Login certo: a faixa aperta e ganha a cor */
.faixa-anim.apertar .faixa-svg{animation:fx-aperta .5s ease}
.faixa-anim.apertar .fx-no{animation:fx-no-aperta .5s ease}
.faixa-anim.apertar .fx-legenda{opacity:1}
@keyframes fx-aperta{40%{transform:scaleX(.93)}70%{transform:scaleX(1.02)}}
@keyframes fx-no-aperta{40%{transform:scale(1.18)}}
/* Senha errada: a faixa balança */
.faixa-anim.erro .faixa-svg{animation:fx-erro .45s ease}
@keyframes fx-erro{20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
@media (prefers-reduced-motion:reduce){.faixa-anim *,.faixa-anim{animation:none!important;transition:none!important}}

/* ===== Abertura do site ===== */
#abertura{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;
  background:radial-gradient(circle at 50% 42%,#2a2210 0%,#0b0b0c 62%);color:var(--text);cursor:pointer;transition:opacity .6s ease,transform .6s ease}
#abertura.saindo{opacity:0;transform:scale(1.08);pointer-events:none}
.ab-centro{position:relative;width:min(56vw,230px);aspect-ratio:1}
.ab-anel{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.ab-anel circle{fill:none;stroke:var(--gold);stroke-width:3;stroke-linecap:round;stroke-dasharray:580;stroke-dashoffset:580;animation:ab-desenha .8s 1.15s cubic-bezier(.6,0,.2,1) forwards}
.ab-anel .ab-anel2{stroke-width:1.2;opacity:.5;stroke-dasharray:505;stroke-dashoffset:505;animation-delay:1.3s}
.ab-logo{position:absolute;inset:14%;width:72%;height:72%;border-radius:50%;opacity:0;animation:ab-logo .7s 1.3s cubic-bezier(.2,1.3,.4,1) forwards;box-shadow:0 0 0 rgba(227,181,59,0)}
.ab-corte{position:absolute;left:-30%;top:50%;width:160%;height:3px;background:linear-gradient(90deg,transparent,#fff3c4,var(--gold),transparent);transform:rotate(-24deg) scaleX(0);opacity:0;animation:ab-corte .45s 1.85s ease-out forwards}
.ab-nome{margin:14px 0 0;font:700 clamp(1.3rem,5vw,2.2rem) Oswald,sans-serif;letter-spacing:3px;text-align:center}
.ab-nome span{display:inline-block;opacity:0;transform:translateY(14px);animation:ab-letra .4s calc(1.9s + var(--i) * .035s) ease-out forwards}
.ab-lema{margin:0;color:var(--gold);letter-spacing:4px;text-transform:uppercase;font-size:clamp(.7rem,2.6vw,.9rem);opacity:0;animation:ab-surge .6s 2.6s ease forwards}
.ab-pular{position:absolute;right:16px;bottom:16px;background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.45em 1em;font:600 .85rem Inter,sans-serif;cursor:pointer}
.ab-pular:hover{color:var(--text);border-color:var(--muted)}
@keyframes ab-desenha{to{stroke-dashoffset:0}}
@keyframes ab-logo{0%{opacity:0;transform:scale(.3) rotate(-200deg)}100%{opacity:1;transform:none;box-shadow:0 0 50px rgba(227,181,59,.35)}}
@keyframes ab-corte{0%{opacity:0;transform:rotate(-24deg) scaleX(0)}40%{opacity:1}100%{opacity:0;transform:rotate(-24deg) scaleX(1)}}
@keyframes ab-letra{to{opacity:1;transform:none}}
@keyframes ab-surge{to{opacity:1}}
body.com-abertura{overflow:hidden}

/* Entrada do topo da página inicial (depois da abertura) */
.hero .wrap>*{animation:hero-sobe .8s cubic-bezier(.2,.8,.2,1) both}
.hero .wrap>:nth-child(2){animation-delay:.12s}
.hero .wrap>:nth-child(3){animation-delay:.24s}
.hero .wrap>:nth-child(4){animation-delay:.36s}
body.com-abertura .hero .wrap>*{animation-play-state:paused}
@keyframes hero-sobe{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#abertura{display:none}.hero .wrap>*{animation:none}}

/* Equipamentos se unindo no centro */
.ab-eq{position:absolute;left:50%;top:50%;width:34%;height:34%;margin:-17% 0 0 -17%;overflow:visible;opacity:0;
  animation:ab-une 1.25s var(--d) cubic-bezier(.5,0,.3,1) forwards}
.ab-eq path{fill:rgba(227,181,59,.10);stroke:var(--gold);stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}
.ab-eq .ab-det{fill:none;stroke-width:2.5;opacity:.8}
@keyframes ab-une{
  0%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--r)) scale(1.3)}
  15%{opacity:1}
  70%{opacity:1;transform:translate(calc(var(--dx) * .08),calc(var(--dy) * .08)) rotate(0) scale(1)}
  100%{opacity:0;transform:translate(0,0) scale(.15)}
}

/* ===== Topo animado: equipamentos em órbita + faíscas ===== */
.hero-orbita{position:absolute;right:-8%;bottom:-20%;width:60vw;max-width:720px;aspect-ratio:1;pointer-events:none}
.orb-anel{position:absolute;inset:0;border-radius:50%;border:40px solid rgba(217,165,40,.07);animation:orb-pulsa 6s ease-in-out infinite}
.orb-giro{position:absolute;inset:20px;animation:orb-gira 60s linear infinite}
.orb-item{position:absolute;left:50%;top:50%;width:13%;aspect-ratio:1;margin:-6.5% 0 0 -6.5%;
  transform:rotate(var(--a)) translateY(calc(-1 * min(30vw,360px) + 20px)) rotate(calc(-1 * var(--a)))}
.orb-item svg{width:100%;height:100%;overflow:visible;opacity:.4;animation:orb-desgira 60s linear infinite,orb-flutua 4s ease-in-out infinite;animation-delay:0s,calc(var(--a) / 60deg * -.7s)}
.orb-item path{fill:rgba(227,181,59,.08);stroke:var(--gold);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.orb-item .ab-det{fill:none;stroke-width:2;opacity:.8}
@keyframes orb-gira{to{transform:rotate(360deg)}}
@keyframes orb-desgira{to{rotate:-360deg}}
@keyframes orb-flutua{50%{translate:0 -8px}}
@keyframes orb-pulsa{50%{border-color:rgba(217,165,40,.13);transform:scale(1.015)}}
.hero-faiscas{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-faiscas i{position:absolute;left:var(--x);bottom:-10px;width:var(--s);height:var(--s);border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold);opacity:0;
  animation:faisca var(--t) var(--d) linear infinite}
@keyframes faisca{0%{opacity:0;transform:translateY(0)}10%{opacity:.8}80%{opacity:.4}100%{opacity:0;transform:translate(30px,-80vh)}}
/* Brilho passando no "CONOSCO" */
.hero h1 span{background:linear-gradient(100deg,var(--red2) 0%,var(--red2) 40%,#fff3c4 50%,var(--red2) 60%,var(--red2) 100%);background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:brilho 4.5s 1.2s ease-in-out infinite}
@keyframes brilho{0%{background-position:100% 0}45%,100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.orb-anel,.orb-giro,.orb-item svg,.hero-faiscas,.hero h1 span{animation:none!important}.hero-faiscas{display:none}}
