/* =============================================
   RESET & BASE
   ============================================= */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Montserrat', Arial, sans-serif; -webkit-font-smoothing: antialiased; }

/* =============================================
   HIERARQUIA TIPOGRÁFICA
   ============================================= */
.sec-eyebrow { display:inline-block; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; margin-bottom:10px; }
.sec-h2 { font-size:38px; font-weight:900; line-height:1.1; letter-spacing:-0.5px; text-transform:uppercase; }
.sec-lead { font-size:15px; font-weight:600; line-height:1.65; }
.sec-body { font-size:13px; font-weight:500; line-height:1.75; }

/* =============================================
   PALETA
   ============================================= */
:root {
    --azul:      #3B82F6;
    --azul-deep: #1D4ED8;
    --azul-bg:   #0f172a;
    --verde:     #25D366;
    --branco:    #F8FAFC;
    --cinza-bg:  #F1F5F9;
    --roxo:      #7C3AED;
    --roxo-deep: #6D28D9;
}

/* =============================================
   HEADER
   ============================================= */
header { background:var(--azul-bg); padding:12px 20px; position:fixed; top:0; left:0; width:100%; z-index:100; }
.header-container { max-width:1200px; margin:auto; display:flex; justify-content:space-between; align-items:center; }
.logo a { display:inline-block; }
.logo img { height:56px; width:auto; display:block; }
nav ul { display:flex; list-style:none; gap:16px; align-items:center; flex-wrap:wrap; }
nav a { color:rgba(255,255,255,0.82); text-decoration:none; font-size:12px; font-weight:600; letter-spacing:0.01em; transition:color 0.2s; text-transform:lowercase; }
nav a:hover { color:#fff; }
.nav-aluno { background:#2563eb; color:#fff !important; padding:6px 12px; border-radius:6px; transition:background 0.2s !important; }
.nav-aluno:hover { background:#1d4ed8 !important; }

/* =============================================
   BOTÕES GLOBAIS
   ============================================= */
.btn-ciano,.btn-verde { display:inline-block; padding:12px 24px; border-radius:8px; text-decoration:none; font-size:13px; font-weight:800; text-transform:lowercase; transition:transform 0.2s,box-shadow 0.2s,background 0.2s; letter-spacing:0.01em; border:none; cursor:pointer; }
.btn-ciano { background:var(--azul); color:#fff; box-shadow:0 4px 16px rgba(59,130,246,0.35); }
.btn-ciano:hover { background:var(--azul-deep); transform:translateY(-2px); box-shadow:0 8px 24px rgba(29,78,216,0.45); }
.btn-verde { background:var(--verde); color:#fff; box-shadow:0 4px 16px rgba(37,211,102,0.30); }
.btn-verde:hover { background:#1fba58; transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,211,102,0.40); }

/* =============================================
   HERO — 1 tela
   ============================================= */
.hero { min-height:100vh; padding-top:80px; overflow:hidden; background-image:url('fundo.jpg'); background-size:cover; background-position:center top; display:flex; align-items:center; position:relative; }
.hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to right,rgba(10,15,35,0.02) 0%,rgba(10,15,35,0.10) 35%,rgba(10,15,35,0.68) 55%,rgba(10,15,35,0.90) 100%); z-index:0; }
.hero-content { position:relative; z-index:2; max-width:1200px; margin:0 auto; width:90%; display:flex; justify-content:flex-end; }
.hero-text { max-width:520px; color:white; }
.hero-text h1 { font-size:56px; line-height:1.06; font-weight:900; margin-bottom:20px; letter-spacing:-1px; text-transform:uppercase; color:var(--branco); }
.destaque-ciano { color:var(--azul); display:inline-block; }
.hero-text h2 { font-size:15px; font-weight:600; margin-bottom:12px; color:rgba(248,250,252,0.80); }
.hero-description { font-size:13px; line-height:1.75; margin-bottom:28px; color:rgba(248,250,252,0.62); font-weight:500; max-width:440px; }
.hero-buttons { display:flex; gap:12px; flex-wrap:wrap; }

/* animações */
.anim-left { opacity:0; transform:translateX(-70px); animation:fromLeft 0.8s cubic-bezier(0.22,1,0.36,1) forwards; animation-delay:0.2s; }
.anim-top { opacity:0; transform:translateY(-40px); animation:fromTop 0.7s cubic-bezier(0.22,1,0.36,1) forwards; animation-delay:0.6s; }
.anim-left-slow { opacity:0; transform:translateX(-50px); animation:fromLeft 0.8s cubic-bezier(0.22,1,0.36,1) forwards; animation-delay:0.9s; }
.anim-bottom { opacity:0; transform:translateY(40px); animation:fromBottom 0.7s cubic-bezier(0.22,1,0.36,1) forwards; animation-delay:1.2s; }
@keyframes fromLeft   { to { opacity:1; transform:translateX(0); } }
@keyframes fromTop    { to { opacity:1; transform:translateY(0); } }
@keyframes fromBottom { to { opacity:1; transform:translateY(0); } }

.reveal-on-scroll { opacity:0; transform:translateY(24px); transition:opacity 0.7s cubic-bezier(0.22,1,0.36,1),transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.reveal-on-scroll.reveal { opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion:reduce) {
    .anim-left,.anim-top,.anim-left-slow,.anim-bottom { animation:none; opacity:1; transform:none; }
    .reveal-on-scroll { opacity:1; transform:none; transition:none; }
}

/* =============================================
   MÉTODO — 1 tela, fundo branco
   AJUSTE: conteúdo redistribuído para preencher
   verticalmente sem espaço vazio embaixo
   ============================================= */
.metodo { background:#fff; padding:48px 48px; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:100vh; gap:8px; }
.metodo-cards { display:flex; flex-wrap:wrap; gap:24px; align-items:stretch; justify-content:center; width:100%; }
.metodo-intro,.metodo-funciona {
    flex:1 1 480px;
    max-width:580px;
    border-radius:20px;
    padding:56px 48px;
    position:relative;
    overflow:hidden;
    box-shadow:0 12px 32px rgba(15,23,42,0.08);
    transition:transform 0.35s cubic-bezier(0.22,1,0.36,1),box-shadow 0.35s;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.metodo-intro:hover,.metodo-funciona:hover { transform:translateY(-6px); box-shadow:0 20px 40px rgba(15,23,42,0.14); }
.reveal-on-scroll.reveal:hover { transform:translateY(-6px); }
.metodo-funciona.reveal-on-scroll { transition-delay:0.1s; }
.metodo-intro { background:linear-gradient(160deg,var(--roxo-deep) 0%,#4C1D95 100%); }
.metodo-intro::before { content:''; position:absolute; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle,rgba(167,139,250,0.18) 0%,rgba(167,139,250,0) 70%); top:-80px; right:-80px; }
.metodo-intro-content { position:relative; z-index:1; }
.metodo-eyebrow { display:inline-block; font-size:11px; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:#C4B5FD; margin-bottom:12px; }
.metodo-intro h2 { font-size:30px; font-weight:900; line-height:1.12; letter-spacing:-0.5px; color:var(--branco); text-transform:uppercase; margin-bottom:12px; }
.metodo-tagline { font-size:15px; font-weight:700; color:#DDD6FE; margin-bottom:18px; }
.metodo-lead { font-size:15px; line-height:1.65; color:rgba(248,250,252,0.70); font-weight:500; margin-bottom:28px; }
.metodo-pilares { display:grid; grid-template-columns:1fr; gap:26px; margin-bottom:32px; }
.pilar-titulo { font-size:16px; font-weight:800; color:var(--branco); margin-bottom:5px; display:flex; align-items:center; gap:9px; min-height:18px; }
.pilar-titulo::before { content:''; width:7px; height:7px; border-radius:50%; background:#C4B5FD; flex-shrink:0; }
.pilar-texto { font-size:14px; line-height:1.6; color:rgba(248,250,252,0.62); font-weight:500; }
.typewriter-txt { border-right:2px solid #C4B5FD; white-space:pre-wrap; overflow:hidden; display:inline-block; vertical-align:top; }
.typewriter-txt.typing-done { border-right:none; }
.metodo-mockup-wrap { display:flex; justify-content:center; margin-top:8px; }
.metodo-mockup { display:block; width:100%; max-width:420px; height:auto; border-radius:14px; }
.metodo-funciona { background:linear-gradient(160deg,#1E3A5F 0%,#16304F 100%); }
.metodo-funciona::before { content:''; position:absolute; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle,rgba(59,130,246,0.16) 0%,rgba(59,130,246,0) 70%); bottom:-90px; left:-90px; }
.metodo-funciona-content { position:relative; z-index:1; }
.metodo-funciona .metodo-eyebrow { color:var(--azul); }
.metodo-funciona h2 { font-size:24px; font-weight:900; line-height:1.18; letter-spacing:-0.5px; color:var(--branco); text-transform:uppercase; margin-bottom:30px; }
.passo-list { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.passo { display:flex; flex-direction:column; gap:12px; padding:38px 24px; border-radius:14px; background:#F1F5F9; transition:transform 0.25s,box-shadow 0.25s,background 0.25s; }
.passo:hover { transform:translateY(-3px); background:#fff; box-shadow:0 8px 20px rgba(0,0,0,0.14); }
.passo-numero { width:34px; height:34px; border-radius:8px; background:rgba(59,130,246,0.12); border:1px solid rgba(59,130,246,0.25); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; color:var(--azul-deep); flex-shrink:0; }
.passo-titulo { font-size:15px; font-weight:800; color:#0f172a; margin-bottom:2px; }
.passo-texto { font-size:13px; line-height:1.55; color:rgba(15,23,42,0.62); font-weight:500; }
.secao-cta { display:flex; gap:14px; flex-wrap:wrap; margin-top:32px; }
.secao-cta--grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:32px; }
.secao-cta--grid .btn-ciano,.secao-cta--grid .btn-verde { width:100%; text-align:center; padding:15px 18px; font-size:14px; }

/* =============================================
   QUEM SOU — 1 tela, fundo navy
   AJUSTE: foto principal alinhada ao topo do título,
   mosaico com largura idêntica à foto (340px) e
   altura segura que não invade a seção seguinte
   ============================================= */
.quem-sou { background:var(--azul-bg); padding:96px 48px 64px; min-height:100vh; display:flex; align-items:center; }
.quem-sou__grid { max-width:1180px; margin:0 auto; width:100%; display:grid; grid-template-columns:340px 1fr; gap:64px; align-items:start; }
.quem-sou__left { display:flex; flex-direction:column; gap:24px; }
.quem-sou__foto-principal { width:340px; height:340px; border-radius:14px; overflow:hidden; border:1px solid rgba(255,255,255,0.1); box-shadow:0 12px 36px rgba(0,0,0,0.5); opacity:0; transform:scale(1.03); transition:opacity .9s ease,transform .9s ease; }
.quem-sou__foto-principal.qs-vis { opacity:1; transform:scale(1); }
.quem-sou__foto-principal img { width:100%; height:100%; object-fit:cover; display:block; }
.quem-sou__palco { position:relative; width:340px; height:300px; overflow:hidden; border-radius:8px; }
.qs-f { position:absolute; border-radius:7px; overflow:hidden; border:2px solid rgba(255,255,255,0.11); box-shadow:0 5px 18px rgba(0,0,0,0.55); opacity:0; will-change:transform,opacity; transition:box-shadow .3s,border-color .3s,transform .3s; }
.qs-f img { width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; user-select:none; }
.qs-f:hover { border-color:rgba(96,165,250,0.45) !important; box-shadow:0 12px 32px rgba(0,0,0,0.7),0 0 0 1px rgba(96,165,250,0.2) !important; z-index:50 !important; }
.quem-sou__right { display:flex; flex-direction:column; gap:18px; padding-top:0; }
.qs-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#60A5FA; }
.qs-eyebrow::before { content:''; width:22px; height:1px; background:#60A5FA; }
.qs-headline { font-family:'Montserrat',Arial,sans-serif; font-size:clamp(24px,2.3vw,33px); font-weight:900; line-height:1.15; letter-spacing:-0.5px; text-transform:uppercase; color:#F8FAFC; }
.qs-headline-linha { white-space: nowrap; display: block; }
.qs-destaque { color:#3B82F6; }
.qs-lead { font-size:15px; font-weight:600; line-height:1.7; color:#F8FAFC; }
.qs-body { font-size:13px; font-weight:500; line-height:1.78; color:#94A3B8; }
.qs-quote { padding:16px 20px; border-left:2px solid #A78BFA; border-radius:0 8px 8px 0; background:rgba(167,139,250,.07); font-style:italic; font-size:15px; font-weight:600; line-height:1.62; color:#A78BFA; }
.qs-divider { height:1px; background:rgba(255,255,255,0.07); }
.qs-form-label { font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:#64748B; margin-bottom:10px; }
.qs-creds { display:flex; flex-direction:column; gap:12px; }
.qs-cred { display:flex; align-items:flex-start; gap:9px; font-size:13px; font-weight:500; line-height:1.5; color:#94A3B8; }
.qs-cred::before { content:''; width:5px; height:5px; border-radius:50%; background:#3B82F6; flex-shrink:0; margin-top:7px; }
.qs-cred strong { display:block; color:#F8FAFC; font-weight:700; font-size:13.5px; margin-bottom:1px; }
.qs-stats { display:flex; border:1px solid rgba(255,255,255,0.07); border-radius:10px; overflow:hidden; }
.qs-stat { flex:1; padding:14px 12px; border-right:1px solid rgba(255,255,255,0.07); display:flex; flex-direction:column; gap:4px; }
.qs-stat:last-child { border-right:none; }
.qs-stat__num { font-family:'Montserrat',Arial,sans-serif; font-size:24px; font-weight:900; color:#F8FAFC; line-height:1; }
.qs-stat__num span { color:#60A5FA; }
.qs-stat__lbl { font-size:11px; font-weight:600; color:#64748B; line-height:1.35; }
.qs-ctas { display:flex; gap:12px; flex-wrap:wrap; }

/* ============================================
   CTA PADRÃO — replica o estilo de .qs-ctas
   usado fora dos cards em: Método, Nossa História,
   Cursos e páginas em construção
   ============================================ */
.cta-padrao { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:36px; }
.qs-fi { opacity:0; transform:translateY(16px); transition:opacity .7s ease,transform .7s ease; }
.qs-fi.on { opacity:1; transform:none; }

/* =============================================
   NOSSA HISTÓRIA — 1 tela, fundo cinza claríssimo
   AJUSTE: título e subtítulo ocupam a largura
   inteira da seção (margem a margem)
   ============================================= */
.nossa-historia { background:var(--cinza-bg); padding:88px 48px 32px; min-height:100vh; display:flex; align-items:center; }
.nh-inner { max-width:1180px; margin:0 auto; width:100%; }
.nh-header { display:flex; flex-direction:column; gap:10px; margin-bottom:28px; width:100%; }
.nh-header .sec-eyebrow { color:var(--azul); }
.nh-header .sec-h2 { color:#0f172a; font-size:clamp(26px,3vw,38px); width:100%; }
.nh-lead { font-size:16px; font-weight:600; line-height:1.6; color:#475569; width:100%; }
.nh-grid-2x2 { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(2,120px); gap:14px; width:100%; }
.nh-card { display:flex; flex-direction:row; align-items:stretch; background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 4px 16px rgba(15,23,42,0.07); transition:box-shadow 0.3s,transform 0.3s; height:120px; }
.nh-card:hover { box-shadow:0 10px 28px rgba(15,23,42,0.13); transform:translateY(-3px); }
.nh-card__foto { position:relative; width:150px; flex-shrink:0; height:100%; overflow:hidden; }
.nh-card__foto img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.5s ease; }
.nh-card:hover .nh-card__foto img { transform:scale(1.06); }
.nh-badge { position:absolute; top:8px; left:8px; background:rgba(15,23,42,0.75); color:#fff; font-size:8px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:3px 9px; border-radius:20px; backdrop-filter:blur(4px); }
.nh-badge--ativo { background:var(--azul); }
.nh-card__texto { flex:1; padding:12px 16px; display:flex; flex-direction:column; gap:5px; justify-content:center; overflow:hidden; }
.nh-card__titulo { font-size:13px; font-weight:800; color:#0f172a; line-height:1.2; }
.nh-card__corpo { font-size:11px; font-weight:500; line-height:1.5; color:#475569; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.nh-cta { display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }

/* =============================================
   CURSOS — 1 tela, fundo foto + overlay navy
   AJUSTE: cards centralizados com margens
   simétricas e texto completo visível
   ============================================= */
.cursos { background-image:url('fundo_azul.jpg'); background-size:cover; background-position:center; padding:56px 24px; overflow:hidden; position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.cursos::before { content:''; position:absolute; inset:0; background:rgba(10,15,50,0.72); z-index:0; }
.cursos-header,.categorias-track,.cursos .cta-padrao { position:relative; z-index:1; }
.cursos-header { width:100%; max-width:1180px; margin:0 auto 32px; text-align:center; }
.cursos-header h2 { font-size:38px; font-weight:900; line-height:1.1; letter-spacing:-0.5px; text-transform:uppercase; color:var(--azul); margin-bottom:10px; }
.cursos-lead { font-size:15px; font-weight:600; line-height:1.6; color:rgba(248,250,252,0.85); }
.quebra-mobile { display:none; }
.categorias-track { display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start; gap:18px; width:100%; max-width:1180px; margin:0 auto; }
.categoria-card { flex:0 0 auto; width:180px; min-height:280px; border-radius:18px; overflow:hidden; position:relative; text-decoration:none; display:flex; flex-direction:column; box-shadow:0 8px 20px rgba(0,0,0,0.28); transition:transform 0.3s cubic-bezier(0.22,1,0.36,1),box-shadow 0.3s; }
.categoria-card:hover { transform:translateY(-6px) scale(1.03); box-shadow:0 16px 32px rgba(0,0,0,0.4); z-index:2; }
.categoria-capa { flex:0 0 150px; display:flex; align-items:center; justify-content:center; text-align:center; position:relative; overflow:hidden; }
.categoria-capa img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease; }
.categoria-card:hover .categoria-capa img { transform:scale(1.08); }
.categoria-capa::after { content:''; position:absolute; inset:0; z-index:1; }
.categoria-info { flex:1; background:#fff; padding:16px 14px 18px; display:flex; flex-direction:column; gap:6px; }
.categoria-info h4 { font-size:14px; font-weight:800; color:#0f172a; line-height:1.25; }
.categoria-info p { font-size:11.5px; line-height:1.5; color:rgba(15,23,42,0.62); font-weight:500; }

/* =============================================
   PÁGINAS EM CONSTRUÇÃO
   ============================================= */
.pagina-construcao { min-height:100vh; background-image:url('fundo_azul.jpg'); background-size:cover; background-position:center; display:flex; align-items:center; justify-content:center; position:relative; padding:40px 20px; }
.pagina-construcao::before { content:''; position:absolute; inset:0; background:rgba(10,15,50,0.72); z-index:0; }
.construcao-content { position:relative; z-index:1; text-align:center; color:white; max-width:520px; }
.construcao-icon { font-size:72px; margin-bottom:20px; display:block; animation:balanco 1.5s ease-in-out infinite alternate; }
@keyframes balanco { from { transform:rotate(-8deg); } to { transform:rotate(8deg); } }
.construcao-content h2 { font-size:38px; font-weight:900; margin-bottom:14px; color:var(--azul); text-transform:uppercase; letter-spacing:-0.5px; }
.construcao-content p { font-size:15px; line-height:1.6; color:rgba(255,255,255,0.82); margin-bottom:28px; font-weight:500; }
.construcao-buttons { display:flex; flex-direction:column; gap:12px; align-items:center; }
.construcao-buttons .btn-ciano,.construcao-buttons .btn-verde { width:240px; text-align:center; }

/* =============================================
   CONTATO — 1 tela, fundo branco
   ============================================= */
.contato { background:#fff; padding:56px 48px; display:flex; justify-content:center; align-items:center; min-height:100vh; }
.contato-wrap { width:100%; max-width:1180px; display:flex; flex-direction:column; gap:36px; }
.contato-header { display:flex; flex-direction:column; gap:10px; max-width:780px; }
.contato-header .sec-eyebrow { color:var(--azul); }
.contato-header h2 { font-size:38px; font-weight:900; line-height:1.1; letter-spacing:-0.5px; color:#0f172a; text-transform:uppercase; }
.contato-lead { font-size:15px; font-weight:600; line-height:1.6; color:rgba(15,23,42,0.62); max-width:680px; }
.contato-form { background:#fff; border-radius:24px; padding:44px; box-shadow:0 8px 28px rgba(15,23,42,0.08); display:flex; flex-direction:column; gap:22px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-group { display:flex; flex-direction:column; gap:7px; }
.form-group label { font-size:13px; font-weight:700; color:#0f172a; }
.form-group input[type="text"],.form-group input[type="email"],.form-group input[type="tel"],.form-group textarea { border:1.5px solid #E2E8F0; border-radius:9px; padding:13px 16px; font-family:'Montserrat',Arial,sans-serif; font-size:14px; font-weight:500; color:#0f172a; background:#F8FAFC; transition:border-color 0.2s,background 0.2s; }
.obrig { color:var(--roxo); }
.form-group input:focus,.form-group textarea:focus { outline:none; border-color:var(--azul); background:#fff; }
.form-group textarea { resize:vertical; min-height:80px; }
.form-group-detalhes[hidden] { display:none; }
.form-group-detalhes { animation:fadeInDetalhes 0.3s ease; }
@keyframes fadeInDetalhes { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:translateY(0); } }
.checkbox-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
.checkbox-item { display:flex; align-items:center; gap:9px; border:1.5px solid #E2E8F0; border-radius:9px; padding:13px 14px; cursor:pointer; transition:border-color 0.2s,background 0.2s; font-size:13px; font-weight:600; color:#0f172a; }
.checkbox-item:hover { border-color:#C7D2FE; background:#F8FAFC; }
.checkbox-item input[type="checkbox"] { width:16px; height:16px; accent-color:var(--roxo); flex-shrink:0; }
.checkbox-item:has(input:checked) { border-color:var(--roxo); background:#F5F3FF; }
.form-erro { color:#DC2626; font-size:12px; font-weight:600; }
.btn-form-submit { align-self:flex-start; cursor:pointer; margin-top:6px; padding:15px 32px; font-size:14px; }
.btn-form-submit:disabled { opacity:0.6; cursor:not-allowed; transform:none !important; }
.form-status { font-size:12px; font-weight:700; margin:0; min-height:1.4em; }
.form-status.sucesso { color:#15803D; }
.form-status.erro { color:#DC2626; }

/* =============================================
   FOOTER
   ============================================= */
.site-footer { background:#080e1f; padding:32px 20px; border-top:1px solid rgba(255,255,255,0.08); }
.footer-container { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer-logo a { display:inline-block; }
.footer-logo img { height:44px; width:auto; opacity:0.9; }
.footer-social { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.footer-social-label { color:rgba(255,255,255,0.40); font-size:10px; text-transform:uppercase; letter-spacing:0.12em; margin-right:4px; }
.social-btn { display:flex; align-items:center; gap:7px; padding:8px 14px; border-radius:50px; text-decoration:none; font-size:12px; font-weight:700; transition:transform 0.2s,opacity 0.2s; }
.social-btn:hover { transform:translateY(-2px); opacity:0.88; }
.social-btn svg { width:14px; height:14px; flex-shrink:0; }
.social-fb { background:#1877F2; color:#fff; } .social-fb svg { fill:#fff; }
.social-ig { background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); color:#fff; } .social-ig svg { fill:#fff; }
.social-whats { background:var(--verde); color:#fff; } .social-whats svg { fill:#fff; }
.footer-copy { text-align:right; color:rgba(255,255,255,0.32); font-size:11px; line-height:1.8; }

/* =============================================
   MOBILE
   ============================================= */
@media (max-width:768px) {
    .header-container { flex-direction:column; gap:8px; }
    .logo img { height:44px; }
    nav ul { flex-wrap:wrap; justify-content:center; gap:8px 10px; max-width:300px; margin:0 auto; }
    nav a { font-size:11px; }
    .hero { background-attachment:scroll; background-position:right center; padding-top:110px; }
    .hero::before { background:rgba(10,15,35,0.32); }
    .hero-content { justify-content:center; width:100%; max-width:100%; margin:0; padding:0 20px; }
    .hero-text { max-width:100%; text-align:center; }
    .hero-text h1 { font-size:30px; }
    .hero-text h2 { font-size:14px; }
    .hero-description { font-size:13px; }
    .hero-buttons { flex-direction:column; gap:10px; align-items:center; }
    .hero-buttons .btn-ciano,.hero-buttons .btn-verde { width:100%; text-align:center; padding:13px; }

    .metodo { flex-direction:column; padding:40px 16px; gap:24px; min-height:auto; }
    .metodo-cards { flex-direction:column; gap:16px; }
    .metodo-intro,.metodo-funciona { flex:1 1 auto; padding:32px 24px; max-width:100%; }
    .passo-list { grid-template-columns:1fr; gap:12px; }
    .secao-cta--grid { grid-template-columns:1fr; gap:10px; }
    .cta-padrao { flex-direction:column; align-items:center; }
    .cta-padrao .btn-ciano,.cta-padrao .btn-verde { width:240px; text-align:center; }

    .quem-sou { padding:88px 16px 48px; min-height:auto; }
    .quem-sou__grid { grid-template-columns:1fr; gap:32px; }
    .quem-sou__foto-principal { width:100%; height:auto; aspect-ratio:1/1; max-width:320px; margin:0 auto; }
    .quem-sou__palco { width:100%; max-width:320px; height:265px; margin:0 auto; }
    .qs-headline { font-size:22px; line-height:1.18; text-align:center; }
    .qs-headline-linha { white-space:normal; }
    .qs-stats { flex-wrap:wrap; }

    .nossa-historia { padding:48px 16px; min-height:auto; }
    .nh-header .sec-h2 { font-size:24px; }
    .nh-lead { font-size:14px; }
    .nh-grid-2x2 { grid-template-columns:1fr; grid-template-rows:auto; }
    .nh-card { flex-direction:column; height:auto; }
    .nh-card__foto { width:100%; height:160px; }
    .nh-cta { flex-direction:column; }
    .nh-cta .btn-ciano,.nh-cta .btn-verde { width:100%; text-align:center; }

    .cursos { padding:48px 16px; min-height:auto; }
    .cursos-header { margin-bottom:20px; }
    .cursos-header h2 { font-size:26px; }
    .cursos-lead { font-size:13px; }
    .quebra-mobile { display:inline; }
    .categorias-track { gap:12px; }
    .categoria-card { width:150px; min-height:230px; }

    .contato { padding:40px 16px; min-height:auto; }
    .contato-header { gap:8px; max-width:100%; }
    .contato-header h2 { font-size:26px; }
    .contato-form { padding:22px 16px; gap:16px; }
    .form-row { grid-template-columns:1fr; gap:14px; }
    .checkbox-grid { grid-template-columns:1fr 1fr; gap:9px; }
    .btn-form-submit { width:100%; text-align:center; }

    .construcao-content h2 { font-size:26px; }
    .footer-container { flex-direction:column; align-items:center; text-align:center; gap:18px; }
    .footer-social { flex-direction:column; align-items:center; gap:8px; }
    .social-btn { width:200px; justify-content:center; }
    .footer-copy { text-align:center; }
}
@media (max-width:480px) { .hero-text h1 { font-size:26px; } }
@media (prefers-reduced-motion:reduce) {
    .typewriter-txt { border-right:none; }
    .qs-f,.quem-sou__foto-principal,.qs-fi { transition:none !important; opacity:1 !important; transform:none !important; }
}
