/*
 * style.css — SAT Club Tramandaí
 * Versão unificada: paleta azul SAT #194c89 aplicada em todo o site.
 * Complementa o Tailwind CDN (customizado no header.php).
 *
 * ÍNDICE:
 *  1.  Tokens (variáveis CSS)
 *  2.  Reset & Base
 *  3.  Tipografia — section-tag, fontes display
 *  4.  Layout — classes de seção (fundos alternados)
 *  5.  Header — camadas, logo, nav-link, dropdown, hamburger
 *  6.  Menu Mobile off-canvas
 *  7.  Botões
 *  8.  Hero — overlays, linhas decorativas, animações de entrada
 *  9.  Seção Stats (azul sólido)
 * 10.  Seção Estrutura — cards
 * 11.  Seção Planos — cards, destaque, badge
 * 12.  Seção Vídeo
 * 13.  Galeria masonry
 * 14.  Formulário de contato + mapa
 * 15.  Footer
 * 16.  FAB WhatsApp
 * 17.  Animações (Intersection Observer + hero)
 * 18.  Utilitários & Responsividade
 */

/* ══════════════════════════════════════════════════════════════════════
   1. TOKENS — Design Tokens Centrais
   ══════════════════════════════════════════════════════════════════════ */
:root {
    /* Paleta SAT — idêntica ao tailwind.config */
    --sat-900: #071426;
    --sat-800: #0d2d52;
    --sat-700: #194c89;   /* Cor institucional */
    --sat-600: #1e5fa8;
    --sat-500: #2478cc;
    --sat-400: #4192d9;
    --sat-300: #7db8eb;
    --sat-200: #b3d6f5;
    --sat-100: #d9ecfb;
    --sat-50:  #eef6fe;

    /* Dourado institucional — cor de acento da marca */
    --sat-gold:       #fcd600;
    --sat-gold-dark:  #d4b800;
    --sat-gold-light: #fde94d;

    /* Glow / sombra azul */
    --glow-blue: rgba(25, 76, 137, 0.18);

    /* Bordas */
    --border-xs:  rgba(25, 76, 137, 0.12);
    --border-sm:  rgba(25, 76, 137, 0.22);
    --border-md:  rgba(25, 76, 137, 0.36);

    /* Sombras — levemente mais suaves para look mais limpo */
    --shadow-sm:  0 1px 4px rgba(13, 45, 82, 0.06), 0 4px 16px rgba(13, 45, 82, 0.07);
    --shadow-md:  0 4px 20px rgba(13, 45, 82, 0.11), 0 10px 40px rgba(13, 45, 82, 0.10);
    --shadow-lg:  0 10px 48px rgba(13, 45, 82, 0.17), 0 24px 72px rgba(13, 45, 82, 0.13);
    --shadow-blue:0 0 36px rgba(25, 76, 137, 0.16);

    /* Fontes */
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body:    'DM Sans', system-ui, sans-serif;

    /* Raios — hierarquia inspirada em princípios editoriais:
       quanto maior o componente, maior o raio; inputs e tags têm raios menores */
    --r-xs:   4px;    /* reservado para badges internos muito pequenos */
    --r-sm:   8px;    /* inputs, icon-wraps */
    --r-md:   12px;   /* cards de conteúdo */
    --r-lg:   16px;   /* containers maiores (vídeo, mapa) */
    --r-full: 9999px; /* pills: tags, badges, botões arredondados */

    /* Espaçamento — base 4px, tokens nomeados */
    --sp-1:  4px;
    --sp-2:  8px;
    --sp-3:  12px;
    --sp-4:  16px;
    --sp-5:  20px;
    --sp-6:  24px;
    --sp-8:  32px;
    --sp-12: 48px;
    --sp-16: 64px;
    --sp-24: 96px;   /* padding vertical padrão de seção */

    /* Transições — ease-in-out garante retorno tão suave quanto a entrada */
    --t:      .22s ease-in-out;
    --t-base: .22s ease-in-out;   /* alias de --t */
    --t-slow: .32s ease-in-out;   /* cards/translate — mais curto mas simétrico */
}

/* ══════════════════════════════════════════════════════════════════════
   2. RESET & BASE
   ══════════════════════════════════════════════════════════════════════ */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background-color: #ffffff;
    color: var(--sat-800);
    font-family: var(--font-body);
    overflow-x: hidden;
}

/* Scrollbar temática */
::-webkit-scrollbar       { width: 5px; }
::-webkit-scrollbar-track { background: var(--sat-50); }
::-webkit-scrollbar-thumb { background: var(--sat-400); border-radius: var(--r-full); }

/* Seleção de texto */
::selection { background: var(--sat-700); color: #fff; }

/* ══════════════════════════════════════════════════════════════════════
   3. TIPOGRAFIA — section-tag, display
   ══════════════════════════════════════════════════════════════════════ */
.font-display { font-family: var(--font-display); }

/* Pílula de categoria de seção — sobre fundo claro */
.section-tag {
    display: inline-block;
    font-size: .6rem;
    letter-spacing: .46em;
    text-transform: uppercase;
    font-weight: 600;
    font-family: var(--font-body);
    color: var(--sat-600);
    border: 1px solid rgba(252, 214, 0, 0.55);
    padding: .32rem 1.1rem;
    border-radius: var(--r-full);
    background: rgba(252, 214, 0, 0.07);
}

/* Pílula sobre fundo escuro (seção vídeo) */
.section-tag-dark {
    display: inline-block;
    font-size: .6rem;
    letter-spacing: .46em;
    text-transform: uppercase;
    font-weight: 600;
    font-family: var(--font-body);
    color: var(--sat-gold);
    border: 1px solid rgba(252, 214, 0, 0.38);
    padding: .32rem 1.1rem;
    border-radius: var(--r-full);
    background: rgba(252, 214, 0, 0.07);
}

/* ══════════════════════════════════════════════════════════════════════
   4. LAYOUT — fundos de seção alternados
   ══════════════════════════════════════════════════════════════════════ */
.section-light { background-color: #f5f9ff; }
.section-white { background-color: #ffffff; }
.section-dark  { background-color: var(--sat-900); }
.section-stats {
    background: linear-gradient(135deg, var(--sat-600) 0%, var(--sat-700) 60%, var(--sat-800) 100%);
    padding-top: 4rem;
    padding-bottom: 4rem;
    position: relative;
    overflow: hidden;
}
.section-stats::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 20% 50%, rgba(252, 214, 0, 0.08) 0%, transparent 60%),
                radial-gradient(ellipse at 80% 50%, rgba(65, 146, 217, 0.12) 0%, transparent 60%);
    pointer-events: none;
}

/* ══════════════════════════════════════════════════════════════════════
   5. HEADER — camadas, logo, nav-link, dropdown, chevron
   ══════════════════════════════════════════════════════════════════════ */
#site-header { background: #0d2d52; }

/* Topbar: fundo azul sólido */
.topbar-layer {
    background: #071e3d;
    color: rgba(179, 214, 245, 0.8);
}
.topbar-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px; height: 30px;
    border-radius: 8px;
    color: rgba(179, 214, 245, 0.85);
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.08);
    transition: background var(--t), color var(--t), border-color var(--t), transform var(--t);
}
.topbar-social:hover { color: #fff; transform: translateY(-1px); }
.topbar-social.social-ig:hover  { background: #e1306c; border-color: #e1306c; }
.topbar-social.social-fb:hover  { background: #1877f2; border-color: #1877f2; }
.topbar-social.social-yt:hover  { background: #ff0000; border-color: #ff0000; }

/* Azul sólido ao rolar */
#site-header.scrolled {
    background: #0d2d52;
    border-bottom: 1px solid rgba(65, 146, 217, 0.22);
    box-shadow: 0 4px 32px rgba(7, 20, 38, 0.55);
}
#site-header.scrolled #topbar { display: none !important; }

/* Logo */
.logo-wrap  { text-decoration: none; gap: 10px; }
.logo-img   {
    height: 44px;
    width: auto;
    max-width: 80px;       /* evita logo muito largo em logotipos horizontais */
    object-fit: contain;
    filter: drop-shadow(0 1px 6px rgba(252,214,0,.35));
    transition: filter var(--t);
    flex-shrink: 0;
}
.logo-wrap:hover .logo-img { filter: drop-shadow(0 1px 10px rgba(252,214,0,.6)); }
.logo-sat   {
    color: var(--sat-gold);
    font-family: var(--font-display);
    transition: color var(--t);
    text-shadow: 0 1px 8px rgba(252, 214, 0, 0.25);
}
.logo-sub   { color: rgba(125, 184, 235, 0.5); }
.logo-wrap:hover .logo-sat { color: var(--sat-gold-light); }

/* Fundo hero — foto real da sede SAT */
.hero-bg-img {
    background-color: #0d2d52; /* azul sólido enquanto imagem carrega */
    background-image: url('/assets/img/hero-bg.jpg');
    background-size: cover;
    background-position: center 40%; /* foca na fachada e não no céu */
    background-repeat: no-repeat;
}

/* Links de nav */
.nav-link {
    font-size: .85rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.85);
    transition: color var(--t), background-color var(--t);
    text-decoration: none;
    cursor: pointer;
    background: none;
    border: none;
    font-family: var(--font-body);
}
.nav-link:hover           { color: var(--sat-300); }
.nav-link[aria-current]   { color: var(--sat-300); font-weight: 500; }

/* Chevron de dropdown — gira ao abrir */
.nav-chevron { transition: transform var(--t); }
.group\/dd:hover .nav-chevron { transform: rotate(180deg); }

/* Dropdown desktop */
.nav-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 220px;
    background: rgba(9, 24, 50, 0.97);
    border: 1px solid rgba(65, 146, 217, 0.20);
    border-radius: var(--r-sm);
    padding: .5rem 0;
    backdrop-filter: blur(16px);
    box-shadow: 0 8px 32px rgba(7, 20, 38, 0.6);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity var(--t), visibility var(--t), transform var(--t);
    list-style: none;
    z-index: 100;
}
.group\/dd:hover .nav-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nav-dd-item {
    display: block;
    padding: .6rem 1.25rem;
    font-size: .84rem;
    color: rgba(179, 214, 245, 0.82);
    text-decoration: none;
    transition: all var(--t);
    border-left: 2px solid transparent;
}
.nav-dd-item:hover {
    color: #fff;
    background: rgba(65, 146, 217, 0.10);
    border-left-color: var(--sat-400);
    padding-left: 1.5rem;
}

/* Hambúrguer */
.hamburger-line {
    display: block;
    width: 22px;
    height: 2px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 2px;
    transition: all var(--t);
    transform-origin: center;
}
#menu-toggle.open .hamburger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#menu-toggle.open .hamburger-line:nth-child(2) { opacity: 0; transform: scaleX(0); }
#menu-toggle.open .hamburger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ══════════════════════════════════════════════════════════════════════
   6. MENU MOBILE OFF-CANVAS
   ══════════════════════════════════════════════════════════════════════ */
/* z-55: acima do header (z-50) para o painel cobrir a navbar ao abrir */
.mobile-menu-overlay { z-index: 55; }

.mobile-panel {
    background: var(--sat-900);
    border-left: 1px solid rgba(65, 146, 217, 0.14);
    transform: translateX(100%);
    transition: transform var(--t-slow);
    /* Garante que o painel fique acima do backdrop */
    position: relative;
    z-index: 56;
}
.mobile-menu-overlay.open .mobile-panel {
    transform: translateX(0);
}

.mobile-nav-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .7rem 0;
    font-size: .95rem;
    font-weight: 400;
    color: rgba(179, 214, 245, 0.85);
    border-bottom: 1px solid rgba(65, 146, 217, 0.10);
    text-decoration: none;
    cursor: pointer;
    background: none;
    border-left: none;
    border-right: none;
    border-top: none;
    font-family: var(--font-body);
    width: 100%;
    list-style: none;
    transition: color var(--t);
}
.mobile-nav-item:hover { color: #fff; }
.mobile-nav-item.highlight { color: var(--sat-300); font-weight: 500; }

/* Chevron mobile — gira ao abrir o details */
.mobile-chevron { transition: transform var(--t); flex-shrink: 0; }
details[open] > summary .mobile-chevron { transform: rotate(180deg); }

/* Submenu mobile */
.mobile-submenu {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .35rem 0 .5rem .75rem;
    border-left: 2px solid rgba(65, 146, 217, 0.2);
    margin-left: .25rem;
}
.mobile-sub-item {
    display: block;
    padding: .45rem .75rem;
    font-size: .84rem;
    color: rgba(125, 184, 235, 0.65);
    text-decoration: none;
    border-radius: var(--r-sm);
    transition: all var(--t);
}
.mobile-sub-item:hover {
    color: var(--sat-200);
    background: rgba(65, 146, 217, 0.08);
}

/* Remove seta padrão do summary */
.mobile-accordion > summary::-webkit-details-marker { display: none; }
.mobile-accordion > summary { outline: none; }

/* ══════════════════════════════════════════════════════════════════════
   7. BOTÕES
   ══════════════════════════════════════════════════════════════════════ */

/*
 * SISTEMA DE BOTÕES — anatomia padronizada
 * Touch target mínimo: 44px (height implícita via padding + line-height)
 * Padding base: var(--sp-4) vertical × var(--sp-6) horizontal
 * Um botão primário por viewport — confiante e definitivo.
 */

/* Base compartilhada — evita repetição entre variantes */
.btn-sat,
.btn-outline-hero,
.btn-outline-blue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    font-family: var(--font-body);
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .015em;
    line-height: 1.4;
    cursor: pointer;
    text-decoration: none;
    border: none;
    transition: all var(--t);
    min-height: 44px;             /* WCAG touch target */
}

/* Primário SAT — azul sólido, ação principal */
.btn-sat {
    background: linear-gradient(135deg, var(--sat-600) 0%, var(--sat-700) 100%);
    color: #fff;
    border: none;
    box-shadow: 0 2px 8px rgba(25, 76, 137, 0.28), 0 6px 20px rgba(25, 76, 137, 0.18);
    padding: var(--sp-3) var(--sp-6);
}
.btn-sat:hover {
    background: linear-gradient(135deg, var(--sat-500) 0%, var(--sat-600) 100%);
    box-shadow: 0 4px 14px rgba(25, 76, 137, 0.38), 0 10px 28px rgba(25, 76, 137, 0.22);
    transform: translateY(-2px);
    color: #fff;
}
.btn-sat:active  { transform: translateY(0); box-shadow: 0 2px 8px rgba(25, 76, 137, 0.25); }
.btn-sat:focus-visible { outline: 2px solid var(--sat-300); outline-offset: 3px; }

/* Outline branco — secundário sobre fundos escuros (hero) */
.btn-outline-hero {
    background: transparent;
    color: rgba(255, 255, 255, 0.9);
    border: 1.5px solid rgba(125, 184, 235, 0.40);
    padding: calc(var(--sp-3) - 1.5px) var(--sp-6);
}
.btn-outline-hero:hover {
    border-color: rgba(255, 255, 255, 0.65);
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    transform: translateY(-2px);
}
.btn-outline-hero:active  { transform: translateY(0); }
.btn-outline-hero:focus-visible { outline: 2px solid var(--sat-300); outline-offset: 3px; }

/* Outline azul — secundário sobre fundos claros */
.btn-outline-blue {
    background: transparent;
    color: var(--sat-700);
    border: 1.5px solid var(--sat-700);
    padding: calc(var(--sp-3) - 1.5px) var(--sp-6);
}
.btn-outline-blue:hover {
    background: var(--sat-700);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(25, 76, 137, 0.24);
}
.btn-outline-blue:active  { transform: translateY(0); }
.btn-outline-blue:focus-visible { outline: 2px solid var(--sat-500); outline-offset: 3px; }

/* ══════════════════════════════════════════════════════════════════════
   8. HERO — overlays, linhas decorativas, animações de entrada
   ══════════════════════════════════════════════════════════════════════ */
#hero { background-color: var(--sat-900); }

.hero-overlay-main {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(7, 20, 38, 0.62) 0%,
        rgba(10, 30, 56, 0.46) 50%,
        rgba(7, 20, 38, 0.96) 100%
    );
}
.hero-overlay-side {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(7, 20, 38, 0.52) 0%,
        transparent 55%
    );
}

/* Linhas decorativas + label lateral do hero */
.hero-line-top,
.hero-line-bottom {
    width: 1px;
    height: 60px;
    flex-shrink: 0;
}
.hero-line-top    { background: linear-gradient(to bottom, transparent, rgba(252,214,0,.55)); }
.hero-line-bottom { background: linear-gradient(to bottom, rgba(252,214,0,.55), transparent); }

.hero-side-label {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);          /* lê de baixo para cima — padrão lateral esquerdo */
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .38em;
    text-transform: uppercase;
    color: rgba(125, 184, 235, 0.55);
    padding: 14px 0;
    white-space: nowrap;
    user-select: none;
}

/* Seta de scroll — posicionamento via left/translate X no HTML (Tailwind);
   animação só mexe no Y para não conflitar com o translateX do Tailwind */
.scroll-arrow {
    background: none;
    border: none;
    cursor: pointer;
    animation: bounceDown 2.2s ease-in-out infinite;
    will-change: transform;
}
@keyframes bounceDown {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%       { transform: translateX(-50%) translateY(9px); }
}

/* Animações escalonadas de entrada do hero */
.hero-subtitle { animation: heroFadeUp .75s .15s both; }
.hero-title    { animation: heroFadeUp .75s .35s both; }
.hero-desc     { animation: heroFadeUp .75s .55s both; }
.hero-ctas     { animation: heroFadeUp .75s .75s both; }

@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Destaque dourado no título principal */
#hero h1 em {
    color: var(--sat-gold);
    text-shadow: 0 2px 24px rgba(252, 214, 0, 0.22);
}

/* ══════════════════════════════════════════════════════════════════════
   9. SEÇÃO STATS — gradiente azul SAT
   ══════════════════════════════════════════════════════════════════════ */
.stat-num   { color: #fff; }
.stat-label { color: rgba(209, 231, 250, 0.82); font-size: .78rem; letter-spacing: .1em; }

/* Separador vertical entre stats (desktop) */
.stat-item + .stat-item {
    border-left: 1px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 1024px) {
    .stat-item + .stat-item { border-left: none; }
}

/* ══════════════════════════════════════════════════════════════════════
   10. SEÇÃO ESTRUTURA — cards sobre fundo claro
   ══════════════════════════════════════════════════════════════════════ */
.estrutura-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);        /* 12px — card de conteúdo */
    padding: var(--sp-8);
    overflow: hidden;
    transition: transform var(--t-slow), box-shadow var(--t-slow), border-color var(--t-slow);
    box-shadow: var(--shadow-sm);
}
.estrutura-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 0% 0%, rgba(25, 76, 137, .05), transparent 68%);
    opacity: 0;
    transition: opacity var(--t-slow);
}
.estrutura-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: rgba(252, 214, 0, 0.45);
}
.estrutura-card:hover::before { opacity: 1; }

/* Ícone */
.card-icon-wrap {
    width: 44px;
    height: 44px;
    border-radius: var(--r-sm);       /* 8px — icon wrap */
    background: rgba(25, 76, 137, 0.07);
    border: 1px solid rgba(25, 76, 137, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.15rem;
    color: var(--sat-600);
    transition: all var(--t);
}
.estrutura-card:hover .card-icon-wrap {
    background: rgba(252, 214, 0, 0.12);
    border-color: rgba(252, 214, 0, 0.5);
    color: var(--sat-700);
}

/* Linha de acento na base */
.card-accent-line {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2.5px;
    border-radius: 0;
    background: linear-gradient(90deg, transparent 0%, var(--sat-gold) 50%, transparent 100%);
    transform: scaleX(0);
    transition: transform var(--t-slow);
}
.estrutura-card:hover .card-accent-line { transform: scaleX(1); }

/* ══════════════════════════════════════════════════════════════════════
   11. SEÇÃO PLANOS — cards sobre fundo branco
   ══════════════════════════════════════════════════════════════════════ */
.plano-card {
    position: relative;
    background: #f8fbff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);        /* 12px — card de conteúdo */
    padding: var(--sp-8);
    transition: transform var(--t-slow), box-shadow var(--t-slow), border-color var(--t-slow);
    box-shadow: var(--shadow-sm);
}
.plano-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
    border-color: rgba(252, 214, 0, 0.4);
}

.plano-destaque {
    background: #fff;
    border: 2px solid var(--sat-gold);
    box-shadow: 0 0 0 4px rgba(252, 214, 0, 0.09), var(--shadow-md);
}
.plano-destaque:hover {
    border-color: var(--sat-gold-dark);
    box-shadow: 0 0 0 5px rgba(252, 214, 0, 0.13), var(--shadow-lg);
}

.plano-badge {
    display: inline-block;
    background: var(--sat-gold);
    color: var(--sat-800);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .28rem .9rem;
    border-radius: var(--r-full);
    margin-bottom: .85rem;
    box-shadow: 0 2px 10px rgba(252, 214, 0, 0.35);
}

/* Item de feature dentro do plano */
.plano-item {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
}

/* ══════════════════════════════════════════════════════════════════════
   12. SEÇÃO VÍDEO — embed responsivo sobre fundo escuro
   ══════════════════════════════════════════════════════════════════════ */
.video-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    border-radius: var(--r-lg);       /* 16px — container grande */
    overflow: hidden;
    border: 1px solid rgba(65, 146, 217, 0.25);
    box-shadow: var(--shadow-blue), var(--shadow-lg);
}
.video-wrapper iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border: none;
}
.video-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--sat-900) 0%, var(--sat-800) 100%);
    flex-direction: column;
    cursor: pointer;
}
.video-play-btn {
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: white;
    transition: transform var(--t-base), color var(--t-base);
    padding: 0;
}
.video-play-btn:hover { transform: scale(1.1); color: var(--sat-gold); }

/* ══════════════════════════════════════════════════════════════════════
   13. GALERIA MASONRY (CSS Grid)
   ══════════════════════════════════════════════════════════════════════ */
.galeria-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 220px); /* 3 linhas fixas — sem lacunas */
    gap: 10px;
}
.galeria-item {
    position: relative;
    overflow: hidden;
    border-radius: var(--r-md);
    cursor: pointer;
    background: var(--sat-100);
    border: 1px solid var(--border-xs);
}
.galeria-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .7s ease;
}
.galeria-item:hover img { transform: scale(1.08); }

/* Placeholder quando imagem não existe */
.galeria-placeholder {
    position: absolute;
    inset: 0;          /* preenche 100% do grid-item inclusive em tall/wide */
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--sat-800) 0%, var(--sat-700) 100%);
    color: rgba(255,255,255,0.25);
}

.galeria-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(13, 45, 82, 0.80) 0%, transparent 55%);
    display: flex;
    align-items: flex-end;
    padding: 1rem;
    opacity: 0;
    transition: opacity var(--t);
}
.galeria-overlay span {
    font-size: .82rem;
    font-weight: 500;
    color: #fff;
}
.galeria-item:hover .galeria-overlay { opacity: 1; }

.galeria-tall { grid-row: span 2; }
.galeria-wide { grid-column: span 2; }

/* ══════════════════════════════════════════════════════════════════════
   14. FORMULÁRIO DE CONTATO + MAPA
   ══════════════════════════════════════════════════════════════════════ */
.map-wrapper {
    border-radius: var(--r-lg);       /* 16px — container grande */
    overflow: hidden;
    height: 520px;
    border: 1px solid var(--border-xs);
    box-shadow: var(--shadow-md);
}
.map-wrapper iframe {
    width: 100%;
    height: 100%;
    border: none;
    /* Suaviza para combinar com o tema azul */
    filter: saturate(.7) hue-rotate(192deg) brightness(1.0);
}

/* Linha dupla de campos no formulário */
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-4);
}

.form-group { margin-bottom: var(--sp-4); }

.form-label {
    display: block;
    font-size: .8rem;
    font-weight: 500;
    color: var(--sat-700);
    margin-bottom: var(--sp-1);
    letter-spacing: .02em;
}

.form-input {
    width: 100%;
    background: #f8fbff;
    border: 1.5px solid var(--border-sm);
    border-radius: var(--r-sm);       /* 8px — input */
    padding: .82rem 1.05rem;
    font-family: var(--font-body);
    font-size: .9375rem;
    color: var(--sat-800);
    transition: border-color var(--t), box-shadow var(--t), background var(--t);
    outline: none;
    appearance: none;
}
.form-input::placeholder { color: rgba(65, 146, 217, 0.45); }
.form-input:hover   { border-color: rgba(25, 76, 137, 0.34); }
.form-input:focus   {
    border-color: var(--sat-600);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(25, 76, 137, 0.10);
}
.form-input.error   {
    border-color: #dc2626;
    background: rgba(220, 38, 38, .04);
}

.form-textarea { resize: vertical; min-height: 130px; }

.form-error {
    display: block;
    font-size: .73rem;
    color: #dc2626;
    margin-top: .3rem;
    min-height: 1rem;
}

/* Estados do feedback pós-envio */
#form-feedback.success {
    background: rgba(22, 163, 74, .09);
    border: 1px solid rgba(22, 163, 74, .35);
    color: #15803d;
    border-radius: var(--r-sm);
}
#form-feedback.error {
    background: rgba(220, 38, 38, .09);
    border: 1px solid rgba(220, 38, 38, .35);
    color: #dc2626;
    border-radius: var(--r-sm);
}
#btn-submit.loading { opacity: .72; pointer-events: none; }

/* ══════════════════════════════════════════════════════════════════════
   15. FOOTER
   ══════════════════════════════════════════════════════════════════════ */
.footer-bg {
    background-color: #0e2f55;
    border-top: 1px solid rgba(252, 214, 0, 0.12);
}

.footer-heading {
    font-size: .62rem;
    letter-spacing: .42em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--sat-gold);
    margin-bottom: var(--sp-4);
    opacity: .85;
}

.footer-link {
    display: block;
    font-size: .86rem;
    color: rgba(125, 184, 235, 0.62);
    text-decoration: none;
    padding: .18rem 0;
    transition: color var(--t), padding-left var(--t);
}
.footer-link:hover { color: #fff; padding-left: .3rem; }
.footer-link-accent { color: var(--sat-300) !important; font-weight: 500; }
.footer-link-accent:hover { color: #fff !important; }

.footer-social-link {
    width: 36px;
    height: 36px;
    border-radius: var(--r-full);
    border: 1px solid rgba(65, 146, 217, 0.22);
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(125, 184, 235, 0.65);
    text-decoration: none;
    transition: all var(--t);
}
.footer-social-link:hover {
    border-color: var(--sat-300);
    color: #fff;
    background: rgba(65, 146, 217, 0.12);
    transform: translateY(-2px);
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 1.5rem;
    font-size: .78rem;
    color: rgba(125, 184, 235, 0.40);
}
.footer-bottom a {
    color: rgba(125, 184, 235, 0.48);
    text-decoration: none;
    transition: color var(--t);
}
.footer-bottom a:hover { color: var(--sat-gold); }

/* ══════════════════════════════════════════════════════════════════════
   16. FAB WHATSAPP
   ══════════════════════════════════════════════════════════════════════ */
.whatsapp-fab {
    position: fixed;
    bottom: 28px;
    right: 24px;
    z-index: 60;
    display: flex;
    align-items: center;
    gap: .6rem;
    background: #25D366;
    color: #fff;
    padding: .75rem .9rem;
    border-radius: var(--r-full);
    box-shadow: 0 4px 22px rgba(37, 211, 102, 0.45);
    text-decoration: none;
    font-size: .875rem;
    font-weight: 600;
    transition: all var(--t);
    overflow: hidden;
    max-width: 52px;
}
.whatsapp-fab svg { width: 22px; height: 22px; flex-shrink: 0; }
.whatsapp-fab-label {
    white-space: nowrap;
    opacity: 0;
    max-width: 0;
    overflow: hidden;
    transition: all var(--t-slow);
}
.whatsapp-fab:hover {
    max-width: 200px;
    padding-right: 1.4rem;
    box-shadow: 0 7px 28px rgba(37, 211, 102, 0.58);
    transform: translateY(-2px);
}
.whatsapp-fab:hover .whatsapp-fab-label {
    opacity: 1;
    max-width: 120px;
}

/* ══════════════════════════════════════════════════════════════════════
   17. ANIMAÇÕES — Intersection Observer + hero
   ══════════════════════════════════════════════════════════════════════ */
/* Entrada: opacidade + deslize para cima.
   :not(.aos-done) garante que, após a animação de entrada terminar,
   a regra seja removida do elemento — liberando a transição de hover
   definida pelo componente (ex.: .estrutura-card, .plano-card). */
[data-aos]:not(.aos-done) {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .65s ease, transform .65s ease;
}
[data-aos].visible:not(.aos-done) {
    opacity: 1;
    transform: translateY(0);
}

/* Delays escalonados para filhos consecutivos */
[data-aos]:nth-child(2):not(.aos-done) { transition-delay: .10s; }
[data-aos]:nth-child(3):not(.aos-done) { transition-delay: .20s; }
[data-aos]:nth-child(4):not(.aos-done) { transition-delay: .30s; }
[data-aos]:nth-child(5):not(.aos-done) { transition-delay: .40s; }
[data-aos]:nth-child(6):not(.aos-done) { transition-delay: .50s; }

/* Stat items com delay por índice (via inline style no PHP) */
.stat-item:not(.aos-done) {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .58s ease, transform .58s ease;
}
.stat-item.visible:not(.aos-done) { opacity: 1; transform: translateY(0); }

/* ══════════════════════════════════════════════════════════════════════
   18. UTILITÁRIOS & RESPONSIVIDADE
   ══════════════════════════════════════════════════════════════════════ */

/* Focus visível global (acessibilidade) */
:focus-visible {
    outline: 2px solid var(--sat-400);
    outline-offset: 2px;
}

/* Galeria responsiva */
@media (max-width: 900px) {
    .galeria-grid        { grid-template-columns: repeat(2, 1fr); }
    .galeria-wide        { grid-column: span 2; }
    .galeria-tall        { grid-row: span 1; }
}
@media (max-width: 560px) {
    .galeria-grid        { grid-template-columns: 1fr; grid-auto-rows: 200px; }
    .galeria-wide,
    .galeria-tall        { grid-column: span 1; grid-row: span 1; }
}

/* Mapa responsivo */
@media (max-width: 1024px) { .map-wrapper { height: 380px; } }
@media (max-width: 640px)  { .map-wrapper { height: 300px; } }

/* Formulário: colapsa linha dupla em mobile */
@media (max-width: 560px)  { .form-row { grid-template-columns: 1fr; } }

/* WhatsApp FAB simplificado em mobile */
@media (max-width: 640px) {
    .whatsapp-fab-label { display: none; }
    .whatsapp-fab       { max-width: 52px !important; padding-right: .9rem !important; }
    .whatsapp-fab:hover { transform: none; }
}

/* Redução de movimento (acessibilidade) */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }
}

/* ══════════════════════════════════════════════════════════════════════
   19. SUBPÁGINAS — componentes compartilhados
   ══════════════════════════════════════════════════════════════════════ */

/* Hero de subpágina: menor que o hero da home, compensa o header fixo */
.page-hero {
    padding-top:    calc(76px + var(--sp-16));
    padding-bottom: var(--sp-16);
    position: relative;
    overflow: hidden;
}
.page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 60%, rgba(252,214,0,.06) 0%, transparent 55%),
                radial-gradient(ellipse at 80% 20%, rgba(65,146,217,.10) 0%, transparent 55%);
    pointer-events: none;
}

/* Breadcrumb */
.breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-size: .78rem;
    color: rgba(125, 184, 235, 0.55);
    margin-bottom: var(--sp-6);
    flex-wrap: wrap;
}
.breadcrumb a {
    color: rgba(125, 184, 235, 0.55);
    text-decoration: none;
    transition: color var(--t);
}
.breadcrumb a:hover     { color: var(--sat-300); }
.breadcrumb-sep         { opacity: .35; }
.breadcrumb-current     { color: var(--sat-gold); }

/* Card de evento */
.evento-card {
    background: #fff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-slow), box-shadow var(--t-slow), border-color var(--t-slow);
    display: flex;
    flex-direction: column;
}
.evento-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: rgba(252,214,0,.4);
}

/* Container da imagem — aspect ratio fixo com imagem cobrindo 100% */
.evento-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--sat-100);
    display: block;
    overflow: hidden;   /* garante que img não vaze no border-radius */
    flex-shrink: 0;
}
.evento-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--t-slow);
}
.evento-card:hover .evento-img img {
    transform: scale(1.04);
}
.evento-img-placeholder {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, var(--sat-100), var(--sat-200));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--sat-400);
}

/* Corpo do card — definição única (rem rule duplicada foi removida) */
.evento-body {
    padding: var(--sp-5) var(--sp-6);  /* 20px cima/baixo, 24px esq/dir */
    flex: 1;
    display: flex;
    flex-direction: column;
}
.evento-meta-item {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
}
.evento-card h3 {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--sat-800);
    margin-bottom: var(--sp-3);
    line-height: 1.35;
}
.evento-card p {
    font-size: .875rem;
    color: var(--sat-600);
    line-height: 1.6;
    flex: 1;
}
.evento-footer {
    margin-top: var(--sp-4);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--border-xs);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    flex-wrap: wrap;
}
.evento-tipo-badge {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: .22rem .75rem;
    border-radius: var(--r-full);
    background: rgba(25,76,137,.08);
    color: var(--sat-600);
    border: 1px solid var(--border-xs);
}

/* Card de informativo */
.informativo-card {
    background: #fff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);
    padding: var(--sp-6);
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-slow), box-shadow var(--t-slow), border-color var(--t-slow);
    display: flex;
    gap: var(--sp-6);
    align-items: flex-start;
}
.informativo-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: rgba(252,214,0,.4);
}
.informativo-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--r-sm);
    background: rgba(252,214,0,.10);
    border: 1px solid rgba(252,214,0,.35);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--sat-700);
    flex-shrink: 0;
}
.informativo-card h3 {
    font-size: .975rem;
    font-weight: 600;
    color: var(--sat-800);
    margin-bottom: var(--sp-1);
}
.informativo-card p  {
    font-size: .85rem;
    color: var(--sat-600);
    line-height: 1.55;
}
.informativo-data {
    font-size: .72rem;
    color: var(--sat-500);
    margin-bottom: var(--sp-2);
}

/* Card de ex-presidente */
.presidente-card {
    background: #fff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);
    padding: var(--sp-6) var(--sp-4);
    text-align: center;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-slow), box-shadow var(--t-slow);
}
.presidente-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}
.presidente-avatar {
    width: 80px;
    height: 80px;
    border-radius: var(--r-full);
    background: linear-gradient(135deg, var(--sat-100), var(--sat-200));
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--sp-4);
    color: var(--sat-400);
    border: 2px solid var(--border-sm);
}
.presidente-avatar img {
    width: 100%;
    height: 100%;
    border-radius: var(--r-full);
    object-fit: cover;
}
.presidente-card h3 {
    font-size: .9rem;
    font-weight: 600;
    color: var(--sat-800);
    margin-bottom: var(--sp-1);
    line-height: 1.3;
}
.presidente-gestao {
    font-size: .72rem;
    color: var(--sat-gold);
    font-weight: 600;
    letter-spacing: .06em;
}

/* Card de atividade */
.atividade-card {
    background: #fff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-slow), box-shadow var(--t-slow), border-color var(--t-slow);
}
.atividade-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: rgba(252,214,0,.4);
}
.atividade-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    background: var(--sat-100);
    overflow: hidden;
    display: block;
}
.atividade-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.atividade-body {
    padding: var(--sp-6);
}
.atividade-body h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--sat-800);
    margin-bottom: var(--sp-2);
}
.atividade-body p {
    font-size: .875rem;
    color: var(--sat-600);
    line-height: 1.6;
}

/* ── Aliases e complementos para subpáginas ──────────────────────── */

/* Evento: desc + meta acessíveis via classe semântica */
.evento-desc {
    font-size: .875rem;
    color: var(--sat-600);
    line-height: 1.6;
    flex: 1;
}
.evento-meta {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--sp-3);
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
}
.evento-meta li {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-size: .8rem;
    color: var(--sat-600);
}
/* NOTA: .evento-body definido na seção 19 — sem duplicata */

/* ── Downloads — regulamentos e alvarás ──────────────────────────── */
.download-section-header {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding-bottom: var(--sp-4);
    border-bottom: 2px solid var(--border-xs);
    margin-bottom: var(--sp-6);
}
.download-section-header h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--sat-800);
}
.download-section-header span {
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--sat-500);
    margin-left: auto;
}
.download-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-3);
}
@media (min-width: 560px) {
    .download-grid { grid-template-columns: repeat(2, 1fr); }
}
.download-item {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-4);
    background: #fff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);
    text-decoration: none;
    transition: border-color var(--t), box-shadow var(--t), transform var(--t-slow);
    color: inherit;
}
.download-item:hover {
    border-color: var(--sat-400);
    box-shadow: var(--shadow-sm);
    transform: translateX(4px);
}
.download-icon {
    width: 42px;
    height: 42px;
    border-radius: var(--r-sm);
    background: rgba(25, 76, 137, 0.07);
    border: 1px solid rgba(25, 76, 137, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--sat-600);
    flex-shrink: 0;
    transition: background var(--t), color var(--t);
}
.download-item:hover .download-icon {
    background: var(--sat-700);
    color: #fff;
    border-color: var(--sat-700);
}
.download-info {
    flex: 1;
    min-width: 0;
}
.download-info h4 {
    font-size: .85rem;
    font-weight: 600;
    color: var(--sat-800);
    line-height: 1.35;
    margin-bottom: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.download-info span {
    font-size: .7rem;
    color: var(--sat-500);
    letter-spacing: .02em;
    display: flex;
    align-items: center;
    gap: 4px;
}
.download-arrow {
    color: var(--sat-400);
    flex-shrink: 0;
    transition: color var(--t), transform var(--t);
}
.download-item:hover .download-arrow {
    color: var(--sat-600);
    transform: translateX(2px);
}
/* Badge de categoria de download */
.download-category {
    margin-top: var(--sp-10);
}
.download-category:first-child { margin-top: 0; }

/* Informativo: thumb + body */
.informativo-thumb {
    width: 88px;
    min-width: 88px;
    height: 88px;
    border-radius: var(--r-sm);
    overflow: hidden;
    background: linear-gradient(135deg, var(--sat-100), var(--sat-200));
    flex-shrink: 0;
}
.informativo-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.informativo-body { flex: 1; }

/* Presidente: foto + body (aliases de avatar/gestao) */
.presidente-foto {
    width: 80px;
    height: 80px;
    border-radius: var(--r-full);
    background: linear-gradient(135deg, var(--sat-100), var(--sat-200));
    overflow: hidden;
    margin: 0 auto var(--sp-3);
    border: 2px solid var(--border-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--sat-400);
}
.presidente-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.presidente-body {
    padding: 0 var(--sp-2);
}
.presidente-body h3 {
    font-size: .875rem;
    font-weight: 600;
    color: var(--sat-800);
    line-height: 1.3;
    margin-bottom: var(--sp-1);
}

/* Tabela comparativa de planos */
.tabela-planos {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}
.tabela-planos th {
    padding: var(--sp-4);
    text-align: center;
    font-weight: 600;
    color: var(--sat-800);
    border-bottom: 2px solid var(--border-sm);
    background: #f8fbff;
}
.tabela-planos th:first-child {
    text-align: left;
    color: var(--sat-600);
    font-weight: 500;
}
.tabela-planos td {
    padding: var(--sp-3) var(--sp-4);
    border-bottom: 1px solid var(--border-xs);
    color: var(--sat-700);
    text-align: center;
}
.tabela-planos td:first-child {
    text-align: left;
    color: var(--sat-800);
    font-size: .825rem;
}
.tabela-planos tr:last-child td { border-bottom: none; }
.tabela-planos tr:nth-child(even) td { background: #fafcff; }
.tabela-check   { color: #16a34a; }
.tabela-destaque-col { background: rgba(252,214,0,.05) !important; }

/* FAQ accordion */
.faq-item {
    border-bottom: 1px solid var(--border-xs);
}
.faq-item:first-child { border-top: 1px solid var(--border-xs); }
.faq-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    padding: var(--sp-6) 0;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: .95rem;
    font-weight: 600;
    color: var(--sat-800);
    text-align: left;
    transition: color var(--t);
}
.faq-toggle:hover { color: var(--sat-600); }
.faq-toggle[aria-expanded="true"] { color: var(--sat-700); }
.faq-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--sat-gold);
    transition: transform var(--t);
}
.faq-toggle[aria-expanded="true"] .faq-icon { transform: rotate(45deg); }
.faq-body {
    font-size: .9rem;
    color: var(--sat-600);
    line-height: 1.7;
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s ease, padding .4s ease;
}
.faq-body.open {
    max-height: 400px;
    padding-bottom: var(--sp-6);
}

/* CTA Band — faixa de conversão no fim das subpáginas */
.cta-band {
    background: linear-gradient(135deg, var(--sat-700) 0%, var(--sat-800) 100%);
    border-radius: var(--r-lg);
    padding: var(--sp-12) var(--sp-8);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.cta-band::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 20% 50%, rgba(252,214,0,.08) 0%, transparent 60%);
    pointer-events: none;
}
.cta-band h2 { color: #fff; }
.cta-band p  { color: rgba(179,214,245,.8); }

/* Estrutura card expandido (para estrutura.php) */
.estrutura-full-card {
    background: #fff;
    border: 1px solid var(--border-xs);
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-slow), box-shadow var(--t-slow);
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.estrutura-full-card:nth-child(even) { direction: rtl; }
.estrutura-full-card:nth-child(even) > * { direction: ltr; }
.estrutura-full-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}
.estrutura-full-img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    background: linear-gradient(135deg, var(--sat-100), var(--sat-200));
    display: block;
}
.estrutura-full-body {
    padding: var(--sp-8);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.estrutura-full-body h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sat-800);
    margin-bottom: var(--sp-3);
}
.estrutura-full-body p {
    font-size: .9rem;
    color: var(--sat-600);
    line-height: 1.7;
}
@media (max-width: 768px) {
    .estrutura-full-card              { grid-template-columns: 1fr; direction: ltr; }
    .estrutura-full-card:nth-child(even) { direction: ltr; }
    .estrutura-full-img               { min-height: 200px; }
}

/* Conteudo genérico (conteudos.php) */
.content-body {
    font-size: .9375rem;
    line-height: 1.8;
    color: var(--sat-700);
    max-width: 72ch;
}
.content-body h2, .content-body h3 { color: var(--sat-800); margin: var(--sp-8) 0 var(--sp-3); }
.content-body p  { margin-bottom: var(--sp-4); }
.content-body ul { padding-left: var(--sp-6); margin-bottom: var(--sp-4); }
.content-body li { margin-bottom: var(--sp-2); }
.content-body img { max-width: 100%; border-radius: var(--r-md); margin: var(--sp-6) 0; }

/* Grid de listas */
.list-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-4); }
.list-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }
.list-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); }
@media (max-width: 1024px) { .list-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px)  {
    .list-grid-3, .list-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px)  {
    .list-grid-2, .list-grid-3, .list-grid-4 { grid-template-columns: 1fr; }
}
