/* ════════════════════════════════════════════════════════════════
   ATP Design Tokens v2 (Sprint 8 — Repaginada Premium)
   Sucede tokens.css adicionando: gradient mesh, glassmorphism,
   sombras coloridas, dark sections, motion premium.
   Carregado depois de tokens.css — só sobrescreve onde precisa.
   ════════════════════════════════════════════════════════════════ */

/* ────────────────────────────────────────────────────────────────
   OVERRIDE: legacy --theme-* vars apontam para atp-* — propaga em cascata
   para todas as 100+ regras .theme-btn, .banner-section, etc.
   ──────────────────────────────────────────────────────────────── */
:root {
    --theme-color-light: #ffffff;
    --theme-color-dark: var(--atp-purple-900);
    --theme-color-gray: var(--atp-gray-50);
    --theme-color1: var(--atp-gold-500);  /* era #e0a91e (vibrante), agora #d4922f (sóbrio) */
    --theme-color2: var(--atp-purple-600); /* já era #400c6d */
    --theme-light-background: var(--atp-gray-50);
    --theme-black: var(--atp-gray-900);
    --headings-color: var(--atp-purple-700);
    --primary-color: var(--atp-purple-600);
    --secondary-color: var(--atp-gold-500);
    --bg-color: var(--atp-bg);
    --text-color: var(--atp-text);
}

:root {
    /* ═══ Gradient mesh (Hero premium) ═══ */
    --atp-mesh-1: var(--atp-purple-700);
    --atp-mesh-2: var(--atp-purple-500);
    --atp-mesh-3: var(--atp-gold-400);
    --atp-mesh-4: var(--atp-gray-50);

    /* ═══ Glassmorphism medido ═══ */
    --atp-glass-bg-light: rgba(255, 255, 255, 0.65);
    --atp-glass-bg-dark:  rgba(19, 19, 19, 0.55);
    --atp-glass-border-light: rgba(255, 255, 255, 0.18);
    --atp-glass-border-dark:  rgba(255, 255, 255, 0.08);
    --atp-glass-blur: blur(20px) saturate(180%);

    /* ═══ Sombras coloridas premium ═══ */
    --atp-shadow-purple-glow: 0 0 40px -8px rgba(64, 12, 109, 0.45);
    --atp-shadow-gold-glow:   0 0 40px -8px rgba(212, 146, 47, 0.45);
    --atp-shadow-card-hover:  0 24px 60px -16px rgba(64, 12, 109, 0.28),
                               0 0 0 1px rgba(64, 12, 109, 0.06);

    /* ═══ Elevation scale premium (substitui shadow-xs..xl quando precisar de cor) ═══ */
    --atp-elev-1: 0 1px 2px rgba(19,19,19,.06), 0 0 0 1px rgba(19,19,19,.03);
    --atp-elev-2: 0 4px 8px rgba(19,19,19,.08), 0 0 0 1px rgba(19,19,19,.04);
    --atp-elev-3: 0 10px 24px rgba(19,19,19,.12), 0 0 0 1px rgba(19,19,19,.05);
    --atp-elev-4: 0 24px 48px rgba(19,19,19,.18), 0 0 0 1px rgba(19,19,19,.06);
    --atp-elev-5: 0 40px 80px rgba(19,19,19,.24), 0 0 0 1px rgba(19,19,19,.07);

    /* ═══ Tipografia v2 — adicionar variable axes ═══ */
    --atp-font-heading-var: 'Jost', system-ui, -apple-system, sans-serif;

    /* Hero scale ampliado (até 96px) */
    --atp-text-hero-mobile:  clamp(2.25rem, 8vw, 3.5rem);
    --atp-text-hero-desktop: clamp(3rem, 6vw + 1rem, 6rem);

    /* ═══ Motion v2 ═══ */
    --atp-ease-elastic: cubic-bezier(0.68, -0.55, 0.265, 1.55);
    --atp-ease-smooth:  cubic-bezier(0.25, 0.46, 0.45, 0.94);

    /* ═══ Gradient utilitário ═══ */
    --atp-grad-primary: linear-gradient(135deg, var(--atp-purple-700) 0%, var(--atp-purple-500) 100%);
    --atp-grad-accent:  linear-gradient(135deg, var(--atp-gold-500) 0%, var(--atp-gold-400) 100%);
    --atp-grad-premium: linear-gradient(135deg,
        var(--atp-purple-700) 0%,
        var(--atp-purple-500) 35%,
        var(--atp-purple-300) 60%,
        var(--atp-gold-400) 100%
    );
}

/* ════════════════════════════════════════════════════════════════
   GRADIENT MESH HERO — três conic-gradients sobrepostos com blur
   ════════════════════════════════════════════════════════════════ */

.atp-hero-mesh {
    position: relative;
    isolation: isolate;
    background: var(--atp-gray-900);
    overflow: hidden;
}

.atp-hero-mesh::before,
.atp-hero-mesh::after,
.atp-hero-mesh > .atp-hero-mesh-blob {
    content: '';
    position: absolute;
    inset: -20%;
    z-index: -1;
    filter: blur(80px) saturate(140%);
    opacity: 0.85;
    pointer-events: none;
}
.atp-hero-mesh::before {
    background: conic-gradient(from 90deg at 30% 30%,
        var(--atp-mesh-1) 0%,
        var(--atp-mesh-2) 30%,
        transparent 60%);
    animation: meshFloat1 24s ease-in-out infinite alternate;
}
.atp-hero-mesh::after {
    background: conic-gradient(from -45deg at 75% 70%,
        var(--atp-mesh-3) 0%,
        var(--atp-mesh-2) 35%,
        transparent 65%);
    opacity: 0.65;
    animation: meshFloat2 32s ease-in-out infinite alternate;
}

@keyframes meshFloat1 {
    0%   { transform: translate(0, 0) rotate(0deg) scale(1); }
    100% { transform: translate(8%, -6%) rotate(20deg) scale(1.15); }
}
@keyframes meshFloat2 {
    0%   { transform: translate(0, 0) rotate(0deg) scale(1); }
    100% { transform: translate(-10%, 8%) rotate(-25deg) scale(1.2); }
}

@media (prefers-reduced-motion: reduce) {
    .atp-hero-mesh::before,
    .atp-hero-mesh::after { animation: none !important; }
}

/* ════════════════════════════════════════════════════════════════
   HERO SCROLLYTELLING — vídeo background + sticky pin + scroll-driven currentTime
   Section ocupa 200vh; .__inner é sticky 100vh; vídeo cobre o pin.
   ════════════════════════════════════════════════════════════════ */

/* Sprint 10.9: vídeo BG fixed atrás de hero + marquee + bento
   z-index 1 (acima do page-wrapper bg que tem z=99 mas cria stacking context).
   Conteúdo sobre o vídeo usa z-index 2+ */
.atp-video-bg {
    position: fixed;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
    background: var(--atp-purple-900) url('../../../../uploads/atp-hero/astronaut-poster.jpg') center/cover no-repeat;
    transition: opacity 0.4s ease;
    will-change: opacity;
}
.atp-video-bg.is-faded { opacity: 0; }
.atp-video-bg__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}
.atp-video-bg__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg,
            rgba(19, 6, 51, 0.55) 0%,
            rgba(19, 6, 51, 0.30) 35%,
            rgba(19, 6, 51, 0.40) 70%,
            rgba(19, 6, 51, 0.65) 100%),
        radial-gradient(ellipse at 30% 50%,
            rgba(64, 12, 109, 0.40) 0%,
            transparent 70%);
}

.atp-hero-scroll {
    position: relative;
    height: 100vh;
    width: 100%;
    background: transparent;
    z-index: 1;
    margin-top: 0;
}

/* Topbar floating na home — sobre o vídeo, transparente, fixo no topo (flutua sempre) */
body.home .atp-topbar--floating,
body.page-id-14 .atp-topbar--floating,
.atp-topbar--floating {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 200;
}
/* Body com topbar floating não precisa padding-top (hero hero-scroll já compensa internamente) */
body.home { padding-top: 0; }

/* Em outras páginas, topbar é sticky (comportamento original do nav) */
.atp-topbar:not(.atp-topbar--floating) {
    position: sticky;
    top: 0;
    z-index: var(--atp-z-sticky);
}

/* Variant DARK GLASS do nav (Home: nav vazado escuro sobre vídeo) */
.atp-nav--dark-glass {
    position: relative;
    background: rgba(19, 6, 51, 0.35) !important;
    backdrop-filter: blur(24px) saturate(180%);
    -webkit-backdrop-filter: blur(24px) saturate(180%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}
.atp-nav--dark-glass .atp-nav__logo,
.atp-nav--dark-glass .atp-nav__brand,
.atp-nav--dark-glass .atp-nav__brand em,
.atp-nav--dark-glass .atp-nav__link {
    color: var(--atp-white) !important;
}
.atp-nav--dark-glass .atp-nav__link:hover,
.atp-nav--dark-glass .atp-nav__link:focus-visible {
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--atp-gold-300) !important;
}
.atp-nav--dark-glass .atp-nav__toggle span {
    background: var(--atp-white) !important;
}
.atp-nav--dark-glass .atp-nav__brand em {
    background: var(--atp-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
}
/* CTA mantém o gradiente dourado nas duas variantes */

/* Mega-menu sobre dark glass — fundo light continua claro pra leitura */
.atp-nav--dark-glass .atp-nav__mega { color: var(--atp-text); }

/* Estado is-scrolled: nav volta a ser light glass quando user scrolla além do hero */
.atp-nav--dark-glass.is-scrolled {
    background: rgba(255, 255, 255, 0.85) !important;
    border-bottom-color: var(--atp-glass-border-light) !important;
}
.atp-nav--dark-glass.is-scrolled .atp-nav__logo,
.atp-nav--dark-glass.is-scrolled .atp-nav__brand,
.atp-nav--dark-glass.is-scrolled .atp-nav__link {
    color: var(--atp-text) !important;
}
.atp-nav--dark-glass.is-scrolled .atp-nav__brand em {
    background: var(--atp-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
}
.atp-nav--dark-glass.is-scrolled .atp-nav__link:hover {
    background: var(--atp-purple-50) !important;
    color: var(--atp-brand) !important;
}
.atp-nav--dark-glass.is-scrolled .atp-nav__toggle span {
    background: var(--atp-brand) !important;
}

/* Announcement banner com leve transparência sobre vídeo */
.atp-topbar--floating .atp-announcement {
    background: rgba(64, 12, 109, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Hero content centralizado vertical, com gap menor entre blocos para caber em 100vh */
body.home .atp-hero-scroll__content,
.atp-hero-scroll .atp-hero-scroll__content {
    padding: var(--atp-space-8) var(--atp-space-6);
}
.atp-hero-scroll__content .atp-hero__metrics {
    margin-bottom: var(--atp-space-5);
    gap: var(--atp-space-5);
}
.atp-hero-scroll__content .atp-hero__metric-value {
    font-size: var(--atp-text-xl);
}
.atp-hero-scroll__content .atp-hero__subtitle {
    margin-bottom: var(--atp-space-5);
    font-size: clamp(1rem, 1.2vw, 1.125rem);
    max-width: 52ch;
}
.atp-hero-scroll__content .atp-hero__eyebrow {
    margin-bottom: var(--atp-space-4);
}
@media (max-width: 768px) {
    body.home .atp-hero-scroll__content,
    .atp-hero-scroll .atp-hero-scroll__content {
        padding: 90px var(--atp-space-4) var(--atp-space-6);
    }
}

/* Overlay equilibrado: legível mas vídeo ainda visível */
.atp-hero-scroll__overlay {
    background:
        linear-gradient(180deg,
            rgba(19, 6, 51, 0.55) 0%,
            rgba(19, 6, 51, 0.20) 35%,
            rgba(19, 6, 51, 0.25) 70%,
            rgba(19, 6, 51, 0.55) 100%),
        radial-gradient(ellipse at 25% 50%,
            rgba(64, 12, 109, 0.30) 0%,
            transparent 70%) !important;
}

.atp-hero-scroll__inner {
    /* SEM sticky CSS: ScrollTrigger pin gerencia (evita conflito) */
    position: relative;
    top: 0;
    height: 100vh;
    width: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    isolation: isolate;
}

.atp-hero-scroll__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

.atp-hero-scroll__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg,
            rgba(19, 6, 51, 0.55) 0%,
            rgba(19, 6, 51, 0.35) 40%,
            rgba(19, 6, 51, 0.65) 100%),
        radial-gradient(ellipse at 30% 50%,
            rgba(64, 12, 109, 0.5) 0%,
            transparent 60%);
    pointer-events: none;
}

.atp-hero-scroll__content {
    position: relative;
    z-index: 2;
    max-width: var(--atp-container);
    width: 100%;
    margin: 0 auto;
    padding: var(--atp-space-12) var(--atp-space-6);
    color: var(--atp-text-inverse);
}

.atp-hero-scroll__hint {
    position: absolute;
    left: 50%;
    bottom: var(--atp-space-8);
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--atp-space-2);
    color: rgba(255, 255, 255, 0.7);
    font-size: var(--atp-text-xs);
    letter-spacing: var(--atp-tracking-wide);
    text-transform: uppercase;
    animation: atpHintBounce 2s ease-in-out infinite;
}

.atp-hero-scroll__hint svg { animation: atpHintBounceArrow 2s ease-in-out infinite; }

@keyframes atpHintBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); opacity: .85; }
    50%      { transform: translateX(-50%) translateY(8px); opacity: 1; }
}
@keyframes atpHintBounceArrow {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(4px); }
}

@media (prefers-reduced-motion: reduce) {
    .atp-hero-scroll__hint, .atp-hero-scroll__hint svg { animation: none; }
}

/* Mobile: vídeo continua mas sem scrub-scroll (libera scroll natural) */
@media (max-width: 768px) {
    .atp-hero-scroll { height: 100vh; }
    .atp-hero-scroll__inner { position: relative; }
    .atp-hero-scroll__video { animation: atpVideoLoop 15s linear infinite; }
}

/* ════════════════════════════════════════════════════════════════
   WORD ANIMATION HERO (Tinuiti style)
   ════════════════════════════════════════════════════════════════ */

.atp-word-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    user-select: none;
    opacity: 0.04; /* mais sutil — ajuste pós-feedback */
    mix-blend-mode: overlay;
}
.atp-word-bg__row {
    display: flex;
    gap: 2rem;
    white-space: nowrap;
    font-family: var(--atp-font-heading);
    font-weight: 900;
    font-size: clamp(4rem, 12vw, 12rem);
    line-height: 0.85;
    letter-spacing: -0.04em;
    color: var(--atp-purple-100);
    animation: wordSlide 60s linear infinite;
}
.atp-word-bg__row:nth-child(2) {
    animation-direction: reverse;
    animation-duration: 75s;
    color: var(--atp-gold-300);
    opacity: 0.8;
}
@keyframes wordSlide {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .atp-word-bg__row { animation: none; }
}

/* ════════════════════════════════════════════════════════════════
   HERO PREMIUM — layout
   ════════════════════════════════════════════════════════════════ */

.atp-hero {
    position: relative;
    min-height: 90vh;
    display: flex;
    align-items: center;
    padding: var(--atp-space-24) var(--atp-space-4);
    overflow: hidden;
    color: var(--atp-text-inverse);
}
.atp-hero__inner {
    max-width: var(--atp-container);
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.atp-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-2);
    background: var(--atp-glass-bg-dark);
    border: 1px solid var(--atp-glass-border-dark);
    backdrop-filter: var(--atp-glass-blur);
    -webkit-backdrop-filter: var(--atp-glass-blur);
    padding: var(--atp-space-2) var(--atp-space-4);
    border-radius: var(--atp-radius-full);
    color: var(--atp-gold-300);
    font-size: var(--atp-text-sm);
    font-weight: var(--atp-weight-medium);
    letter-spacing: var(--atp-tracking-wide);
    text-transform: uppercase;
    margin-bottom: var(--atp-space-6);
}
.atp-hero__title {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    /* Sprint 10: reduzido para garantir caber em 100vh com métricas + CTAs */
    font-size: clamp(2rem, 3.5vw + 0.5rem, 3.75rem);
    line-height: 1.05;
    letter-spacing: -0.04em;
    margin: 0 0 var(--atp-space-5);
    max-width: 22ch;
}
.atp-hero__title .atp-line {
    display: block;
    overflow: hidden;
}
.atp-hero__title em {
    background: var(--atp-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-style: normal;
}
.atp-hero__subtitle {
    font-size: clamp(1.125rem, 1.5vw, 1.375rem);
    line-height: var(--atp-leading-snug);
    color: rgba(255, 255, 255, 0.85);
    max-width: 56ch;
    margin: 0 0 var(--atp-space-8);
}
.atp-hero__metrics {
    display: flex;
    flex-wrap: wrap;
    gap: var(--atp-space-6);
    margin-bottom: var(--atp-space-8);
}
.atp-hero__metric {
    display: flex;
    flex-direction: column;
    gap: var(--atp-space-1);
}
.atp-hero__metric-value {
    font-family: var(--atp-font-mono);
    font-size: var(--atp-text-2xl);
    font-weight: var(--atp-weight-extrabold);
    color: var(--atp-gold-400);
    line-height: 1;
}
.atp-hero__metric-label {
    font-size: var(--atp-text-xs);
    color: rgba(255, 255, 255, 0.7);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
}
.atp-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--atp-space-4);
    align-items: center;
}
.atp-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-2);
    padding: var(--atp-space-4) var(--atp-space-8);
    border-radius: var(--atp-radius-full);
    font-family: var(--atp-font-body);
    font-weight: var(--atp-weight-semibold);
    font-size: var(--atp-text-base);
    letter-spacing: var(--atp-tracking-wide);
    text-decoration: none;
    cursor: pointer;
    border: 0;
    transition: transform var(--atp-duration-base) var(--atp-ease),
                box-shadow var(--atp-duration-base) var(--atp-ease),
                background var(--atp-duration-base) var(--atp-ease);
    will-change: transform;
}
.atp-btn--primary {
    background: var(--atp-grad-accent);
    color: var(--atp-purple-900);
    box-shadow: var(--atp-shadow-gold-glow);
}
.atp-btn--primary:hover,
.atp-btn--primary:focus-visible {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 0 60px -8px rgba(212, 146, 47, 0.65);
}
.atp-btn--ghost {
    background: var(--atp-glass-bg-dark);
    color: var(--atp-white);
    border: 1px solid var(--atp-glass-border-light);
    backdrop-filter: var(--atp-glass-blur);
    -webkit-backdrop-filter: var(--atp-glass-blur);
}
.atp-btn--ghost:hover,
.atp-btn--ghost:focus-visible {
    background: rgba(255, 255, 255, 0.15);
    transform: translateY(-3px);
}
.atp-btn[data-magnetic] { will-change: transform; }
.atp-btn .atp-arrow {
    transition: transform var(--atp-duration-base) var(--atp-ease-spring);
}
.atp-btn:hover .atp-arrow { transform: translateX(4px); }

/* ════════════════════════════════════════════════════════════════
   ANNOUNCEMENT BANNER (KlientBoost style)
   ════════════════════════════════════════════════════════════════ */

.atp-announcement {
    background: var(--atp-grad-primary);
    color: var(--atp-white);
    padding: var(--atp-space-2) var(--atp-space-4);
    text-align: center;
    font-size: var(--atp-text-sm);
    font-weight: var(--atp-weight-medium);
    letter-spacing: var(--atp-tracking-wide);
    overflow: hidden;
    position: relative;
}
.atp-announcement__rotator {
    display: flex;
    transition: transform 600ms var(--atp-ease-smooth);
}
.atp-announcement__item {
    flex: 0 0 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--atp-space-2);
}
.atp-announcement strong { color: var(--atp-gold-300); }

/* ════════════════════════════════════════════════════════════════
   MARQUEE INFINITO de logos
   ════════════════════════════════════════════════════════════════ */

.atp-marquee {
    --marquee-duration: 40s;
    overflow: hidden;
    background: var(--atp-bg-soft);
    padding: var(--atp-space-10) 0;
    position: relative;
    mask-image: linear-gradient(90deg,
        transparent 0%, black 8%, black 92%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg,
        transparent 0%, black 8%, black 92%, transparent 100%);
}
.atp-marquee__title {
    text-align: center;
    color: var(--atp-text-muted);
    font-size: var(--atp-text-sm);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
    margin-bottom: var(--atp-space-6);
}
.atp-marquee__track {
    display: flex;
    gap: var(--atp-space-16);
    width: max-content;
    animation: marqueeScroll var(--marquee-duration) linear infinite;
    align-items: center;
}
.atp-marquee:hover .atp-marquee__track {
    animation-play-state: paused;
}
.atp-marquee__item {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 64px;
    min-width: 180px;
    color: var(--atp-gray-500);
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-bold);
    font-size: var(--atp-text-xl);
    letter-spacing: -0.02em;
    filter: grayscale(1);
    opacity: 0.65;
    transition: filter var(--atp-duration-base) var(--atp-ease),
                opacity var(--atp-duration-base) var(--atp-ease),
                color var(--atp-duration-base) var(--atp-ease);
    text-decoration: none;
}
.atp-marquee__item:hover {
    filter: grayscale(0);
    opacity: 1;
    color: var(--atp-brand);
}
.atp-marquee__item img {
    max-height: 48px;
    width: auto;
}
@keyframes marqueeScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(calc(-50% - var(--atp-space-16) / 2)); }
}
@media (prefers-reduced-motion: reduce) {
    .atp-marquee__track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
    }
}

/* ════════════════════════════════════════════════════════════════
   STATS STRIP (counters animados)
   ════════════════════════════════════════════════════════════════ */

.atp-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--atp-space-8);
    padding: var(--atp-space-12) var(--atp-space-4);
    max-width: var(--atp-container);
    margin: 0 auto;
}
.atp-stats__item {
    text-align: center;
}
.atp-stats__value {
    font-family: var(--atp-font-mono);
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: var(--atp-weight-extrabold);
    line-height: 1;
    color: var(--atp-brand);
    letter-spacing: -0.03em;
    display: block;
    margin-bottom: var(--atp-space-2);
}
.atp-stats__value::before {
    content: attr(data-prefix);
    color: var(--atp-accent);
    margin-right: 0.05em;
}
.atp-stats__value::after {
    content: attr(data-suffix);
    color: var(--atp-accent);
    margin-left: 0.05em;
}
.atp-stats__label {
    font-size: var(--atp-text-sm);
    color: var(--atp-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
}

/* ════════════════════════════════════════════════════════════════
   BENTO GRID + Tilt + Spotlight
   ════════════════════════════════════════════════════════════════ */

.atp-bento {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: var(--atp-space-6);
    max-width: var(--atp-container);
    margin: var(--atp-space-16) auto;
    padding: 0 var(--atp-space-4);
}
.atp-bento__card {
    grid-column: span 4;
    background: var(--atp-bg);
    border: 1px solid var(--atp-border);
    border-radius: var(--atp-radius-2xl);
    padding: var(--atp-space-8);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transform-style: preserve-3d;
    perspective: 1000px;
    transition: transform var(--atp-duration-base) var(--atp-ease),
                box-shadow var(--atp-duration-base) var(--atp-ease),
                border-color var(--atp-duration-base) var(--atp-ease);
    --spotlight-x: 50%;
    --spotlight-y: 50%;
    text-decoration: none;
    color: inherit;
}
.atp-bento__card--featured {
    grid-column: span 8;
    background: var(--atp-grad-primary);
    color: var(--atp-text-inverse);
    border-color: transparent;
}
.atp-bento__card--wide {
    grid-column: span 6;
}
.atp-bento__card::before {
    content: '';
    position: absolute;
    inset: -1px;
    z-index: -1;
    background: radial-gradient(
        circle 280px at var(--spotlight-x) var(--spotlight-y),
        rgba(212, 146, 47, 0.32) 0%,
        transparent 70%
    );
    opacity: 0;
    transition: opacity var(--atp-duration-base) var(--atp-ease);
    pointer-events: none;
    border-radius: inherit;
}
.atp-bento__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--atp-shadow-card-hover);
    border-color: var(--atp-purple-200);
}
.atp-bento__card:hover::before { opacity: 1; }
.atp-bento__icon {
    width: 56px;
    height: 56px;
    border-radius: var(--atp-radius-lg);
    background: var(--atp-purple-50);
    color: var(--atp-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--atp-space-5);
    transition: transform var(--atp-duration-base) var(--atp-ease-spring);
}
.atp-bento__card--featured .atp-bento__icon {
    background: rgba(255,255,255,0.15);
    color: var(--atp-gold-300);
}
.atp-bento__card:hover .atp-bento__icon { transform: scale(1.1) rotate(-5deg); }
.atp-bento__icon svg { width: 28px; height: 28px; }
.atp-bento__title {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    font-size: var(--atp-text-2xl);
    margin: 0 0 var(--atp-space-3);
    line-height: var(--atp-leading-tight);
}
.atp-bento__desc {
    font-size: var(--atp-text-base);
    color: var(--atp-text-muted);
    line-height: var(--atp-leading-snug);
    margin: 0 0 var(--atp-space-4);
}
.atp-bento__card--featured .atp-bento__desc { color: rgba(255,255,255,0.85); }
.atp-bento__link {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-2);
    color: var(--atp-brand);
    font-weight: var(--atp-weight-semibold);
    font-size: var(--atp-text-sm);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
}
.atp-bento__card--featured .atp-bento__link { color: var(--atp-gold-300); }

@media (max-width: 900px) {
    .atp-bento__card,
    .atp-bento__card--featured,
    .atp-bento__card--wide {
        grid-column: span 12;
    }
}

/* ════════════════════════════════════════════════════════════════
   DARK SECTIONS (intercaladas)
   ════════════════════════════════════════════════════════════════ */

.atp-dark-section {
    background: var(--atp-purple-900);
    color: var(--atp-text-inverse);
    padding: var(--atp-space-20) var(--atp-space-4);
    position: relative;
    overflow: hidden;
}
.atp-dark-section::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 70%;
    height: 200%;
    background: radial-gradient(circle, var(--atp-purple-600) 0%, transparent 60%);
    opacity: 0.5;
    pointer-events: none;
    filter: blur(60px);
}
.atp-dark-section h2,
.atp-dark-section h3 { color: var(--atp-text-inverse); }
.atp-dark-section a { color: var(--atp-gold-300); }
.atp-dark-section p { color: rgba(255, 255, 255, 0.85); }

/* ════════════════════════════════════════════════════════════════
   STICKY HEADER GLASS
   ════════════════════════════════════════════════════════════════ */

.atp-header-sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--atp-z-sticky);
    background: var(--atp-glass-bg-light);
    border-bottom: 1px solid var(--atp-glass-border-light);
    backdrop-filter: var(--atp-glass-blur);
    -webkit-backdrop-filter: var(--atp-glass-blur);
    padding: var(--atp-space-3) var(--atp-space-4);
    transform: translateY(-100%);
    transition: transform 300ms var(--atp-ease-smooth);
}
.atp-header-sticky.is-visible {
    transform: translateY(0);
}

/* ════════════════════════════════════════════════════════════════
   MOBILE STICKY BOTTOM BAR (Tier 1 H)
   ════════════════════════════════════════════════════════════════ */

.atp-bottombar {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--atp-z-sticky);
    padding: var(--atp-space-3);
    gap: var(--atp-space-2);
    background: var(--atp-glass-bg-light);
    backdrop-filter: var(--atp-glass-blur);
    -webkit-backdrop-filter: var(--atp-glass-blur);
    border-top: 1px solid var(--atp-border);
}
.atp-bottombar a {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--atp-space-2);
    padding: var(--atp-space-3);
    border-radius: var(--atp-radius-md);
    font-weight: var(--atp-weight-semibold);
    font-size: var(--atp-text-sm);
    text-decoration: none;
}
.atp-bottombar__wa { background: #25D366; color: #fff; }
.atp-bottombar__cta { background: var(--atp-grad-accent); color: var(--atp-purple-900); }
@media (max-width: 768px) { .atp-bottombar { display: flex; } body { padding-bottom: 80px; } }

/* ════════════════════════════════════════════════════════════════
   FAQ ACCORDION premium
   ════════════════════════════════════════════════════════════════ */

.atp-faq {
    max-width: 780px;
    margin: 0 auto;
    padding: var(--atp-space-12) var(--atp-space-4);
}
.atp-faq__item {
    border-bottom: 1px solid var(--atp-border);
    padding: var(--atp-space-5) 0;
}
.atp-faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: var(--atp-font-heading);
    font-size: var(--atp-text-xl);
    font-weight: var(--atp-weight-semibold);
    color: var(--atp-text);
    text-align: left;
    transition: color var(--atp-duration-fast) var(--atp-ease);
}
.atp-faq__question:hover { color: var(--atp-brand); }
.atp-faq__icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    color: var(--atp-brand);
    transition: transform var(--atp-duration-base) var(--atp-ease-spring);
}
.atp-faq__item[aria-expanded="true"] .atp-faq__icon {
    transform: rotate(45deg);
}
.atp-faq__answer {
    overflow: hidden;
    max-height: 0;
    transition: max-height var(--atp-duration-base) var(--atp-ease-smooth);
}
.atp-faq__answer-inner {
    padding-top: var(--atp-space-4);
    color: var(--atp-text-muted);
    font-size: var(--atp-text-base);
    line-height: var(--atp-leading-snug);
}
.atp-faq__item[aria-expanded="true"] .atp-faq__answer {
    max-height: 600px;
}

/* ════════════════════════════════════════════════════════════════
   COOKIE BANNER refinado (already in tokens.css; aprimorar)
   ════════════════════════════════════════════════════════════════ */

.atp-cookie-banner {
    backdrop-filter: var(--atp-glass-blur) !important;
    -webkit-backdrop-filter: var(--atp-glass-blur) !important;
    background: var(--atp-glass-bg-dark) !important;
    border: 1px solid var(--atp-glass-border-dark);
}

/* ════════════════════════════════════════════════════════════════
   UTILITIES
   ════════════════════════════════════════════════════════════════ */

.atp-fade-up { opacity: 0; transform: translateY(24px); transition: opacity 800ms var(--atp-ease), transform 800ms var(--atp-ease); }
.atp-fade-up.is-visible { opacity: 1; transform: translateY(0); }

.atp-blur-reveal { filter: blur(12px); opacity: 0; transition: filter 1000ms var(--atp-ease), opacity 1000ms var(--atp-ease); }
.atp-blur-reveal.is-visible { filter: blur(0); opacity: 1; }

@media (prefers-reduced-motion: reduce) {
    .atp-fade-up, .atp-blur-reveal { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* Trust seals */
.atp-trust-seals {
    display: flex;
    flex-wrap: wrap;
    gap: var(--atp-space-4);
    align-items: center;
    justify-content: center;
    padding: var(--atp-space-6);
}
.atp-trust-seal {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-2);
    padding: var(--atp-space-2) var(--atp-space-4);
    background: var(--atp-bg);
    border: 1px solid var(--atp-border);
    border-radius: var(--atp-radius-full);
    font-size: var(--atp-text-xs);
    color: var(--atp-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
    font-weight: var(--atp-weight-medium);
}
.atp-trust-seal svg { width: 14px; height: 14px; color: var(--atp-success); }

/* Magnetic button placeholder (JS controla transform) */
.atp-btn[data-magnetic] {
    will-change: transform;
}

/* ════════════════════════════════════════════════════════════════
   NAV PREMIUM (sticky glass + mega menu)
   ════════════════════════════════════════════════════════════════ */

.atp-body { padding-top: 0; }

.atp-nav {
    position: sticky;
    top: 0;
    z-index: var(--atp-z-sticky);
    background: var(--atp-glass-bg-light);
    backdrop-filter: var(--atp-glass-blur);
    -webkit-backdrop-filter: var(--atp-glass-blur);
    border-bottom: 1px solid var(--atp-glass-border-light);
}

.atp-nav__inner {
    max-width: var(--atp-container);
    margin: 0 auto;
    padding: var(--atp-space-3) var(--atp-space-6);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--atp-space-4);
}

.atp-nav__logo { display: flex; align-items: center; text-decoration: none; }
.atp-nav__logo img { max-height: 44px; width: auto; }
.atp-nav__brand {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    font-size: var(--atp-text-lg);
    color: var(--atp-brand);
    letter-spacing: -0.02em;
}
.atp-nav__brand em {
    background: var(--atp-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-style: normal;
}

.atp-nav__menu { display: flex; }
.atp-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: var(--atp-space-2);
}
.atp-nav__item { position: relative; }
.atp-nav__link {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-1);
    padding: var(--atp-space-3) var(--atp-space-4);
    color: var(--atp-text);
    text-decoration: none;
    font-weight: var(--atp-weight-medium);
    font-size: var(--atp-text-sm);
    border-radius: var(--atp-radius-md);
    transition: background var(--atp-duration-fast) var(--atp-ease), color var(--atp-duration-fast) var(--atp-ease);
}
.atp-nav__link:hover,
.atp-nav__link:focus-visible {
    background: var(--atp-purple-50);
    color: var(--atp-brand);
}
.atp-nav__link svg { transition: transform var(--atp-duration-base) var(--atp-ease); }
.atp-nav__item:hover .atp-nav__link svg { transform: rotate(180deg); }

/* Mega menu */
.atp-nav__mega {
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    background: var(--atp-bg);
    border: 1px solid var(--atp-border);
    border-radius: var(--atp-radius-2xl);
    padding: var(--atp-space-6);
    width: 720px;
    max-width: 92vw;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--atp-space-6);
    box-shadow: var(--atp-elev-4);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--atp-duration-base) var(--atp-ease),
                transform var(--atp-duration-base) var(--atp-ease-spring),
                visibility 0s linear var(--atp-duration-base);
    z-index: 10;
}
.atp-nav__item--has-mega:hover .atp-nav__mega,
.atp-nav__item--has-mega:focus-within .atp-nav__mega {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
    transition-delay: 0s;
}
.atp-nav__mega-title {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-bold);
    font-size: var(--atp-text-xs);
    color: var(--atp-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
    margin: 0 0 var(--atp-space-3);
}
.atp-nav__mega-link {
    display: block;
    padding: var(--atp-space-2) var(--atp-space-3);
    color: var(--atp-text);
    text-decoration: none;
    font-size: var(--atp-text-sm);
    font-weight: var(--atp-weight-medium);
    border-radius: var(--atp-radius-md);
    transition: background var(--atp-duration-fast) var(--atp-ease), color var(--atp-duration-fast) var(--atp-ease);
}
.atp-nav__mega-link:hover {
    background: var(--atp-purple-50);
    color: var(--atp-brand);
}
.atp-nav__mega-col--featured {
    background: linear-gradient(135deg, var(--atp-purple-50), transparent);
    border-radius: var(--atp-radius-lg);
    padding: var(--atp-space-4);
    margin: calc(var(--atp-space-4) * -1);
}

.atp-nav__actions { display: flex; align-items: center; gap: var(--atp-space-3); }
.atp-nav__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-2);
    padding: var(--atp-space-3) var(--atp-space-5);
    background: var(--atp-grad-accent);
    color: var(--atp-purple-900);
    border-radius: var(--atp-radius-full);
    font-weight: var(--atp-weight-semibold);
    font-size: var(--atp-text-sm);
    text-decoration: none;
    box-shadow: var(--atp-shadow-gold-glow);
    transition: transform var(--atp-duration-base) var(--atp-ease-spring), box-shadow var(--atp-duration-base) var(--atp-ease);
}
.atp-nav__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 60px -8px rgba(212,146,47,.6);
}

.atp-nav__toggle {
    display: none;
    background: transparent;
    border: 0;
    width: 44px;
    height: 44px;
    cursor: pointer;
    padding: 10px;
    flex-direction: column;
    justify-content: space-between;
    gap: 4px;
}
.atp-nav__toggle span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--atp-brand);
    border-radius: 2px;
    transition: transform var(--atp-duration-base) var(--atp-ease), opacity var(--atp-duration-fast) var(--atp-ease);
}
.atp-nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.atp-nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.atp-nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

@media (max-width: 1024px) {
    .atp-nav__menu { display: none; }
    .atp-nav__toggle { display: flex; }
    .atp-nav__cta span { display: none; }
}
@media (max-width: 640px) {
    .atp-nav__cta { padding: var(--atp-space-3); }
    .atp-nav__cta::after { content: '→'; }
    .atp-nav__cta-text { display: none; }
}

/* Mobile menu drawer */
.atp-mobile-menu {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(100%, 380px);
    z-index: calc(var(--atp-z-sticky) + 10);
    background: var(--atp-bg);
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 400ms var(--atp-ease-smooth);
    box-shadow: var(--atp-elev-5);
    padding: var(--atp-space-20) var(--atp-space-6) var(--atp-space-8);
}
.atp-mobile-menu[hidden] { display: block !important; }
.atp-mobile-menu.is-open { transform: translateX(0); }
.atp-mobile-menu__inner { display: flex; flex-direction: column; gap: var(--atp-space-2); }
.atp-mobile-menu__group {
    margin: var(--atp-space-4) 0 var(--atp-space-1);
    font-size: var(--atp-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
    color: var(--atp-text-muted);
    font-weight: var(--atp-weight-bold);
}
.atp-mobile-menu a {
    display: block;
    padding: var(--atp-space-3);
    color: var(--atp-text);
    text-decoration: none;
    border-radius: var(--atp-radius-md);
    font-weight: var(--atp-weight-medium);
}
.atp-mobile-menu a:hover { background: var(--atp-purple-50); color: var(--atp-brand); }
.atp-mobile-menu__cta {
    margin-top: var(--atp-space-6);
    text-align: center;
    color: var(--atp-purple-900) !important;
}
.atp-mobile-menu__contact {
    margin-top: var(--atp-space-8);
    padding-top: var(--atp-space-6);
    border-top: 1px solid var(--atp-border);
    display: flex;
    flex-direction: column;
    gap: var(--atp-space-2);
}
.atp-mobile-menu__contact a {
    display: flex;
    align-items: center;
    gap: var(--atp-space-2);
    color: var(--atp-text-muted);
    font-size: var(--atp-text-sm);
}

/* ════════════════════════════════════════════════════════════════
   PAGE HERO PREMIUM (para páginas internas, NÃO Home)
   ════════════════════════════════════════════════════════════════ */

.atp-page-hero {
    position: relative;
    padding: var(--atp-space-24) var(--atp-space-4) var(--atp-space-20);
    color: var(--atp-text-inverse);
    text-align: center;
    overflow: hidden;
    isolation: isolate;
    background: var(--atp-gray-900);
}
.atp-page-hero__inner {
    max-width: 880px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.atp-page-hero__breadcrumb {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-2);
    color: rgba(255,255,255,.65);
    font-size: var(--atp-text-sm);
    margin-bottom: var(--atp-space-4);
}
.atp-page-hero__breadcrumb a { color: var(--atp-gold-300); text-decoration: none; }
.atp-page-hero__breadcrumb a:hover { color: var(--atp-gold-400); }
.atp-page-hero__title {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    font-size: clamp(2rem, 5vw + 1rem, 4.5rem);
    line-height: 1.1;
    letter-spacing: -0.04em;
    margin: 0 0 var(--atp-space-4);
}
.atp-page-hero__title em {
    background: var(--atp-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-style: normal;
}
.atp-page-hero__subtitle {
    font-size: var(--atp-text-lg);
    color: rgba(255,255,255,.85);
    line-height: var(--atp-leading-snug);
    max-width: 640px;
    margin: 0 auto var(--atp-space-6);
}

/* ════════════════════════════════════════════════════════════════
   FOOTER PREMIUM (5 colunas modular)
   ════════════════════════════════════════════════════════════════ */

.atp-footer {
    background: var(--atp-purple-900);
    color: rgba(255,255,255,.85);
    padding-top: var(--atp-space-20);
    position: relative;
    overflow: hidden;
}
.atp-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60%;
    background: radial-gradient(circle at 80% 0%, var(--atp-purple-600) 0%, transparent 60%);
    opacity: 0.4;
    pointer-events: none;
}
.atp-footer__inner {
    max-width: var(--atp-container);
    margin: 0 auto;
    padding: 0 var(--atp-space-6);
    position: relative;
}
.atp-footer__grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1.5fr;
    gap: var(--atp-space-10);
    margin-bottom: var(--atp-space-12);
}
@media (max-width: 1024px) {
    .atp-footer__grid { grid-template-columns: repeat(2, 1fr); gap: var(--atp-space-8); }
}
@media (max-width: 640px) {
    .atp-footer__grid { grid-template-columns: 1fr; }
}

.atp-footer__brand h3 {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    font-size: var(--atp-text-2xl);
    color: var(--atp-white);
    margin: 0 0 var(--atp-space-3);
    letter-spacing: -0.02em;
}
.atp-footer__brand h3 em { color: var(--atp-gold-400); font-style: normal; }
.atp-footer__brand p {
    font-size: var(--atp-text-sm);
    line-height: var(--atp-leading-snug);
    margin-bottom: var(--atp-space-4);
}

.atp-footer__col h4 {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-bold);
    font-size: var(--atp-text-sm);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
    color: var(--atp-gold-300);
    margin: 0 0 var(--atp-space-4);
}
.atp-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--atp-space-2); }
.atp-footer__col a {
    color: rgba(255,255,255,.75);
    text-decoration: none;
    font-size: var(--atp-text-sm);
    transition: color var(--atp-duration-fast) var(--atp-ease);
}
.atp-footer__col a:hover { color: var(--atp-white); }

.atp-footer__newsletter form {
    display: flex;
    gap: var(--atp-space-2);
    margin-top: var(--atp-space-3);
}
.atp-footer__newsletter input {
    flex: 1;
    padding: var(--atp-space-3);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: var(--atp-radius-md);
    background: rgba(255,255,255,.05);
    color: var(--atp-white);
    font-family: inherit;
    font-size: var(--atp-text-sm);
}
.atp-footer__newsletter input::placeholder { color: rgba(255,255,255,.5); }
.atp-footer__newsletter button {
    padding: var(--atp-space-3) var(--atp-space-5);
    border: 0;
    border-radius: var(--atp-radius-md);
    background: var(--atp-grad-accent);
    color: var(--atp-purple-900);
    font-weight: var(--atp-weight-semibold);
    cursor: pointer;
    font-size: var(--atp-text-sm);
}

.atp-footer__social {
    display: flex;
    gap: var(--atp-space-3);
    margin-top: var(--atp-space-4);
}
.atp-footer__social a {
    width: 40px;
    height: 40px;
    border-radius: var(--atp-radius-full);
    background: rgba(255,255,255,.08);
    color: var(--atp-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--atp-duration-fast) var(--atp-ease), transform var(--atp-duration-fast) var(--atp-ease);
}
.atp-footer__social a:hover {
    background: var(--atp-gold-500);
    color: var(--atp-purple-900);
    transform: translateY(-2px);
}

.atp-footer__bottom {
    border-top: 1px solid rgba(255,255,255,.08);
    padding: var(--atp-space-6) 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--atp-space-3);
    color: rgba(255,255,255,.5);
    font-size: var(--atp-text-xs);
}

.atp-footer__seals {
    display: flex;
    flex-wrap: wrap;
    gap: var(--atp-space-3);
}
.atp-footer__seal {
    display: inline-flex;
    align-items: center;
    gap: var(--atp-space-2);
    padding: var(--atp-space-1) var(--atp-space-3);
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--atp-radius-full);
    font-size: var(--atp-text-xs);
    color: rgba(255,255,255,.85);
}

/* ════════════════════════════════════════════════════════════════
   GENERIC SECTIONS (substituir o style.css legacy)
   ════════════════════════════════════════════════════════════════ */

.atp-section {
    padding: var(--atp-space-20) var(--atp-space-4);
}
.atp-section--soft { background: var(--atp-bg-soft); }
.atp-section__inner { max-width: var(--atp-container); margin: 0 auto; }
.atp-section__header { text-align: center; margin-bottom: var(--atp-space-12); }
.atp-section__title {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    font-size: clamp(1.875rem, 4vw, 3rem);
    color: var(--atp-brand);
    letter-spacing: -0.02em;
    margin: var(--atp-space-3) 0 var(--atp-space-3);
}
.atp-section__lead {
    color: var(--atp-text-muted);
    max-width: 680px;
    margin: 0 auto;
    font-size: var(--atp-text-lg);
    line-height: var(--atp-leading-snug);
}

/* Two-column rich content */
.atp-content-2col {
    display: grid;
    /* minmax(0,...) evita grid blowout: sem isso, conteudo largo (grids
       auto-fit, marquee) explode a coluna alem da viewport */
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: var(--atp-space-12);
    max-width: var(--atp-container);
    margin: 0 auto;
    padding: var(--atp-space-16) var(--atp-space-4);
}
.atp-content-2col__main p,
.atp-content-2col__main li {
    font-size: var(--atp-text-lg);
    line-height: var(--atp-leading-normal);
    color: var(--atp-text);
}
.atp-content-2col__main h2 {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    color: var(--atp-brand);
    margin: var(--atp-space-10) 0 var(--atp-space-4);
    letter-spacing: -0.02em;
}
.atp-content-2col__main h3 {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-bold);
    font-size: var(--atp-text-xl);
    color: var(--atp-text);
    margin: var(--atp-space-8) 0 var(--atp-space-3);
}
.atp-content-2col__main blockquote {
    border-left: 4px solid var(--atp-accent);
    padding-left: var(--atp-space-5);
    margin: var(--atp-space-6) 0;
    color: var(--atp-text-muted);
    font-style: italic;
}
.atp-content-2col__main img { max-width: 100%; height: auto; border-radius: var(--atp-radius-xl); margin: var(--atp-space-6) 0; }

.atp-aside-cta {
    position: sticky;
    top: 100px;
    background: var(--atp-grad-primary);
    color: var(--atp-text-inverse);
    padding: var(--atp-space-6);
    border-radius: var(--atp-radius-2xl);
    align-self: start;
    box-shadow: var(--atp-shadow-purple-glow);
}
.atp-aside-cta h4 {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-extrabold);
    font-size: var(--atp-text-xl);
    color: var(--atp-white);
    margin: 0 0 var(--atp-space-3);
}
.atp-aside-cta p {
    font-size: var(--atp-text-sm);
    color: rgba(255,255,255,.85);
    margin-bottom: var(--atp-space-4);
}
.atp-aside-cta a {
    display: block;
    text-align: center;
    background: var(--atp-gold-500);
    color: var(--atp-purple-900);
    padding: var(--atp-space-3);
    border-radius: var(--atp-radius-md);
    text-decoration: none;
    font-weight: var(--atp-weight-semibold);
}

@media (max-width: 1024px) {
    .atp-content-2col { grid-template-columns: 1fr; }
    .atp-aside-cta { position: static; }
}

/* Blog post-card */
.atp-post-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--atp-space-6);
    max-width: var(--atp-container);
    margin: 0 auto;
    padding: 0 var(--atp-space-4);
}
.atp-post-card {
    background: var(--atp-bg);
    border: 1px solid var(--atp-border);
    border-radius: var(--atp-radius-xl);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform var(--atp-duration-base) var(--atp-ease), box-shadow var(--atp-duration-base) var(--atp-ease);
    display: flex;
    flex-direction: column;
}
.atp-post-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--atp-shadow-card-hover);
}
.atp-post-card__thumb {
    aspect-ratio: 16/10;
    background: var(--atp-gray-100);
    overflow: hidden;
}
.atp-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.atp-post-card__body { padding: var(--atp-space-5); display: flex; flex-direction: column; gap: var(--atp-space-3); flex: 1; }
.atp-post-card__cat {
    font-size: var(--atp-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--atp-tracking-wide);
    color: var(--atp-brand);
    font-weight: var(--atp-weight-bold);
}
.atp-post-card__title {
    font-family: var(--atp-font-heading);
    font-weight: var(--atp-weight-bold);
    font-size: var(--atp-text-xl);
    color: var(--atp-text);
    line-height: var(--atp-leading-tight);
    margin: 0;
}
.atp-post-card__excerpt {
    font-size: var(--atp-text-sm);
    color: var(--atp-text-muted);
    line-height: var(--atp-leading-snug);
    flex: 1;
}
.atp-post-card__meta {
    display: flex;
    gap: var(--atp-space-3);
    align-items: center;
    font-size: var(--atp-text-xs);
    color: var(--atp-text-muted);
    padding-top: var(--atp-space-3);
    border-top: 1px solid var(--atp-border);
}

/* 404 page */
.atp-404 {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--atp-space-20) var(--atp-space-4);
    background: var(--atp-grad-primary);
    color: var(--atp-text-inverse);
}
.atp-404__code {
    font-family: var(--atp-font-mono);
    font-size: clamp(6rem, 18vw, 14rem);
    font-weight: var(--atp-weight-extrabold);
    line-height: 1;
    background: var(--atp-grad-accent);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    margin: 0;
}
.atp-404__title {
    font-family: var(--atp-font-heading);
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: var(--atp-weight-extrabold);
    margin: var(--atp-space-3) 0 var(--atp-space-2);
}
.atp-404__lead { color: rgba(255,255,255,.85); margin-bottom: var(--atp-space-6); }
