/* VLB - TEMA NOVO para as subpaginas (22/10/2026).
   Mesmo visual da pagina /novo/ (novo/assets/novo.css): cores, fontes, cabecalho, rodape, cartoes e botoes.
   So vale dentro de body.tn (quem tem o cookie vlb_tema=novo). O style.css antigo continua carregado,
   porque o conteudo das paginas usa as classes dele; aqui ele e "repintado" por cima.
   Regras de cada pagina ficam no fim, agrupadas por pagina (body.tn-pg-<pasta>). */

/* ================= TOKENS (os nomes antigos do style.css tambem sao remapeados) ================= */
body.tn {
    --bg: #05060f;
    --bg-2: #080914;
    --card: rgba(232, 234, 246, .03);
    --line: rgba(232, 234, 246, .08);
    --line-2: rgba(232, 234, 246, .16);
    --text: #e8eaf6;
    --muted: rgba(232, 234, 246, .70);
    --faint: rgba(232, 234, 246, .54);
    --blue: #178efe;
    --blue-t: #4aa8ff;
    --purple: #a235ed;
    --purple-t: #c98bff;
    --green: #2ee6a8;
    --pink: #ff5fb8;
    --disp: 'Outfit', system-ui, sans-serif;
    --sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --gutter: clamp(16px, 4vw, 48px);
    /* nomes do style.css antigo */
    --bg-soft: #080914;
    --panel: #080914;
    --panel-2: rgba(232, 234, 246, .03);
    --accent: #4aa8ff;
    --accent-2: #178efe;
    --accent-3: #a235ed;
    --shadow: 0 24px 60px rgba(0, 0, 0, .35);

    margin: 0;
    background: var(--bg);
    color: var(--text);
    font: 400 16px/1.6 var(--sans);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
body.tn.tn-menu-aberto { overflow: hidden; }
.tn :focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.tn-skip { position: absolute; left: -9999px; top: 8px; z-index: 300; background: var(--text); color: var(--bg) !important; padding: 10px 16px; border-radius: 8px; font-weight: 700; }
.tn-skip:focus { left: 12px; }
.tn-wrap { max-width: 1360px; margin: 0 auto; padding: 0 var(--gutter); }

/* ================= BOTOES DO TEMA ================= */
.tn .tn-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    height: 44px; padding: 0 20px; border-radius: 8px; min-width: 0;
    font: 700 14px/1 var(--disp); text-decoration: none; cursor: pointer;
    border: 1px solid transparent; transition: transform .18s, background .2s, border-color .2s, opacity .2s;
}
.tn .tn-btn:hover { transform: translateY(-1px); }
.tn .tn-btn-light { background: var(--text); color: var(--bg); }
.tn .tn-btn-light:hover { opacity: .9; }

/* ================= FAIXA DO OSGRID ================= */
.tn .tn-faixa {
    display: block; text-align: center; padding: 10px 16px;
    background: linear-gradient(90deg, rgba(23, 142, 254, .22), rgba(162, 53, 237, .22));
    border-bottom: 1px solid var(--line-2);
    color: var(--text); font: 600 14px/1.45 var(--sans); text-decoration: none;
}
.tn .tn-faixa b { color: #ffd166; }
.tn .tn-faixa:hover { background: linear-gradient(90deg, rgba(23, 142, 254, .32), rgba(162, 53, 237, .32)); color: #fff; }

/* ================= CABECALHO ================= */
.tn .tn-top {
    position: sticky; top: 0; z-index: 1000;
    background: rgba(5, 6, 15, .88);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--line);
    font-family: var(--sans);
}
.tn .tn-top.solid { background: rgba(5, 6, 15, .94); box-shadow: 0 10px 30px rgba(0, 0, 0, .35); }
.tn .tn-top-in { max-width: 1440px; margin: 0 auto; height: 68px; padding: 0 var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tn .tn-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; flex: none; color: var(--text); }
.tn .tn-brand picture { display: block; flex: none; }
.tn .tn-brand img { width: 46px; height: 46px; display: block; }
.tn .tn-brand b { font: 800 15px/1 var(--disp); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; color: var(--text); }
.tn .tn-nav { display: flex; align-items: center; gap: 2px; }
.tn .tn-nav > a, .tn .tn-dd > button {
    display: flex; align-items: center; gap: 6px; padding: 8px 13px; border-radius: 8px;
    color: var(--muted); font: 500 13.5px/1 var(--sans); text-decoration: none;
    background: none; border: 0; cursor: pointer; transition: color .2s;
}
.tn .tn-nav > a:hover, .tn .tn-dd > button:hover, .tn .tn-dd.open > button { color: var(--text); opacity: 1; }
.tn .tn-nav > a[aria-current="page"], .tn .tn-dd.is-here > button { color: var(--text); box-shadow: inset 0 -2px 0 var(--blue); border-radius: 8px 8px 0 0; }
.tn .tn-dd { position: relative; }
.tn .tn-dd svg { width: 10px; height: 10px; opacity: .6; transition: transform .2s; }
.tn .tn-dd.open svg { transform: rotate(180deg); }
.tn .tn-dd-panel {
    position: absolute; top: calc(100% + 8px); left: 0; min-width: 210px; display: none;
    background: rgba(8, 9, 20, .98); border: 1px solid var(--line-2); border-radius: 12px; padding: 6px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .55);
}
.tn .tn-dd-panel::before { content: ""; position: absolute; inset: -10px 0 auto; height: 10px; }
.tn .tn-dd:hover .tn-dd-panel, .tn .tn-dd:focus-within .tn-dd-panel, .tn .tn-dd.open .tn-dd-panel { display: block; }
.tn .tn-dd-panel a { display: block; padding: 10px 12px; border-radius: 8px; color: var(--muted); font: 500 14px/1.3 var(--sans); text-decoration: none; white-space: nowrap; }
.tn .tn-dd-panel a:hover, .tn .tn-dd-panel a[aria-current="page"] { background: rgba(232, 234, 246, .06); color: var(--text); opacity: 1; }
.tn .tn-top-act { display: flex; align-items: center; gap: 8px; flex: none; }
.tn .tn-enter { color: var(--muted); font: 500 13.5px/1 var(--sans); text-decoration: none; padding: 8px 12px; }
.tn .tn-enter:hover { color: var(--text); }
.tn .tn-top-act .tn-btn { height: 38px; padding: 0 16px; font-size: 13.5px; }
.tn .tn-nav .tn-only-m { display: none; }
.tn .tn-burger { display: none; width: 42px; height: 42px; border-radius: 10px; border: 1px solid var(--line-2); background: transparent; color: var(--text); cursor: pointer; align-items: center; justify-content: center; padding: 0; }
.tn .tn-burger svg { width: 20px; height: 20px; }

/* ================= RODAPE ================= */
.tn .tn-foot { font-family: var(--sans); color: var(--text); margin-top: 0; }
.tn .tn-foot a { text-decoration: none; }
.tn .tn-foot-hero { border-top: 1px solid rgba(23, 142, 254, .35); background: #000; }
.tn .tn-foot-hero .tn-wrap { display: grid; grid-template-columns: .55fr 1.45fr; gap: 40px; align-items: center; padding-block: clamp(44px, 5vw, 72px); }
.tn .tn-foot-hero picture { display: block; }
.tn .tn-foot-hero img { width: min(220px, 70%); height: auto; margin: 0 auto; display: block; filter: drop-shadow(0 0 40px rgba(162, 53, 237, .3)) drop-shadow(0 0 22px rgba(23, 142, 254, .25)); }
.tn .tn-foot-hero small { display: flex; align-items: center; gap: 12px; font: 700 10.5px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--green); margin-bottom: 18px; }
.tn .tn-foot-hero small::before { content: ""; width: 26px; height: 1px; background: var(--green); }
.tn .tn-foot-hero h2 { font: 800 clamp(30px, 3.8vw, 52px)/1.02 var(--disp); letter-spacing: -.035em; margin: 0 0 18px; color: var(--text); text-shadow: none; }
.tn .tn-foot-hero h2 .tn-dim { color: rgba(232, 234, 246, .42); }
.tn .tn-foot-hero p { color: var(--muted); max-width: 460px; margin: 0; }
.tn .tn-site-foot { background: #000; }
.tn .tn-foot-cols { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.tn .tn-foot-cols > div { padding: 30px 0 34px; }
.tn .tn-foot-cols > div + div { border-left: 1px solid var(--line); padding-left: 30px; }
.tn .tn-foot-cols h3 { font: 700 10.5px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); margin: 0 0 18px; }
.tn .tn-foot-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.tn .tn-foot-cols li { margin: 0; }
.tn .tn-foot-cols a { color: var(--muted); font: 400 14px/1.4 var(--sans); }
.tn .tn-foot-cols a:hover { color: var(--text); opacity: 1; }
.tn .tn-foot-bottom { border-top: 1px solid var(--line); padding: 22px 0 84px; display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 12.5px; color: var(--faint); }
.tn .tn-foot-right { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 20px; }
.tn .tn-foot-bottom a { color: var(--faint); }
.tn .tn-foot-bottom a:hover { color: var(--text); }
.tn .tn-visitas { display: inline-flex; align-items: center; gap: 8px; }
.tn .tn-visitas img { display: inline-block; height: 21px; width: auto; opacity: .75; border-radius: 3px; }

/* ================= REPINTURA GERAL DO CONTEUDO ANTIGO ================= */
.tn .tn-main, .tn .tn-avulsa-conteudo { min-height: 50vh; }
.tn .tn-main :is(h1, h2, h3), .tn .tn-avulsa-conteudo :is(h1, h2, h3) {
    font-family: var(--disp); letter-spacing: -.02em; text-shadow: none;
}
.tn .tn-main h1, .tn .tn-avulsa-conteudo h1 { font-weight: 800; letter-spacing: -.035em; }
.tn .tn-main :is(p, li, td, th, label), .tn .tn-avulsa-conteudo :is(p, li, td, th, label) { font-family: var(--sans); }
.tn .tn-main a:not([class]), .tn .tn-avulsa-conteudo a:not([class]) { color: var(--blue-t); }
.tn .tn-main code, .tn .tn-avulsa-conteudo code { font-family: ui-monospace, 'Cascadia Code', Consolas, monospace; }

/* botoes antigos (style.css) no estilo novo */
.tn .tn-main .btn {
    min-width: 0; padding: 0 24px; height: 50px; border-radius: 10px;
    font: 700 15px/1 var(--disp); letter-spacing: 0; box-shadow: none;
    border: 1px solid transparent; transition: transform .18s, background .2s, border-color .2s, opacity .2s;
}
.tn .tn-main .btn:hover { transform: translateY(-1px); box-shadow: none; }
.tn .tn-main .btn-primary { background: var(--text); color: var(--bg); }
.tn .tn-main .btn-primary:hover { opacity: .9; }
.tn .tn-main .btn-secondary { background: rgba(23, 142, 254, .1); color: var(--blue-t); border-color: rgba(23, 142, 254, .45); }
.tn .tn-main .btn-secondary:hover { background: rgba(23, 142, 254, .18); }
.tn .tn-main .btn-ghost { background: transparent; color: var(--text); border-color: var(--line-2); }
.tn .tn-main .btn-ghost:hover { border-color: rgba(232, 234, 246, .4); background: rgba(232, 234, 246, .04); }

/* rotulos/etiquetas antigos -> rotulo do tema novo */
.tn .tn-main :is(.eyebrow, .hero-badge) {
    background: rgba(5, 6, 15, .55); border: 1px solid var(--line-2); color: var(--green);
    font: 700 11px/1.2 var(--sans); letter-spacing: .14em; border-radius: 999px; padding: 8px 14px;
}
.tn .tn-main .section-heading h2 { font: 800 clamp(30px, 4vw, 52px)/1.05 var(--disp); letter-spacing: -.035em; }
.tn .tn-main :is(.feature-card, .mini-panel, .cta-box) {
    background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; box-shadow: none; backdrop-filter: none;
}
.tn .tn-main .cta-box { background: radial-gradient(circle at 0% 0%, rgba(23, 142, 254, .12), transparent 55%), radial-gradient(circle at 100% 100%, rgba(162, 53, 237, .12), transparent 55%), var(--bg-2); }
.tn .tn-main :is(.intro-section, .highlight-section, .cta-section) { background: transparent; }

/* ================= RESPONSIVO DO CABECALHO E RODAPE ================= */
@media (max-width: 1180px) {
    .tn .tn-nav > a, .tn .tn-dd > button { padding: 8px 9px; }
    .tn .tn-enter { display: none; }
}
@media (max-width: 1020px) {
    .tn .tn-burger { display: inline-flex; }
    .tn .tn-nav {
        position: absolute; top: 100%; left: 0; right: 0; height: calc(100vh - 68px); height: calc(100dvh - 68px);
        display: none; flex-direction: column; align-items: stretch;
        gap: 0; padding: 12px var(--gutter) 40px; background: rgba(5, 6, 15, .98); overflow-y: auto;
    }
    .tn .tn-top.open .tn-nav { display: flex; }
    .tn .tn-nav .tn-only-m { display: flex; }
    .tn .tn-nav > a.tn-only-m.tn-btn { margin-top: 22px; height: 52px; justify-content: center; border-bottom: 0; border-radius: 10px; background: var(--text); color: var(--bg); font: 700 16px/1 var(--disp); padding: 0 20px; }
    .tn .tn-nav > a, .tn .tn-dd > button { padding: 15px 4px; font-size: 16px; border-bottom: 1px solid var(--line); border-radius: 0; width: 100%; justify-content: space-between; }
    .tn .tn-nav > a[aria-current="page"], .tn .tn-dd.is-here > button { box-shadow: inset 3px 0 0 var(--blue); padding-left: 12px; border-radius: 0; }
    .tn .tn-dd-panel { position: static; display: none; box-shadow: none; border: 0; background: transparent; padding: 0 0 8px 10px; }
    .tn .tn-dd:hover .tn-dd-panel { display: none; }
    .tn .tn-dd.open .tn-dd-panel, .tn .tn-dd:focus-within .tn-dd-panel { display: block; }
    .tn .tn-dd-panel::before { display: none; }
    .tn .tn-dd-panel a { font-size: 15px; padding: 12px; }
    .tn .tn-foot-hero .tn-wrap { grid-template-columns: 1fr; }
    .tn .tn-foot-hero img { width: min(160px, 50%); margin: 0; }
    .tn .tn-foot-cols { grid-template-columns: 1fr 1fr; }
    .tn .tn-foot-cols > div:nth-child(3) { border-left: 0; padding-left: 0; }
    .tn .tn-foot-cols > div:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 720px) {
    .tn .tn-brand b { font-size: 13px; letter-spacing: .06em; }
    .tn .tn-top-act .tn-btn { display: none; }
    .tn .tn-foot-cols { grid-template-columns: 1fr; }
    .tn .tn-foot-cols > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
    .tn .tn-faixa { font-size: 13px; padding: 9px 14px; }
}
@media (max-width: 400px) {
    .tn .tn-brand b { font-size: 12px; letter-spacing: .03em; }
}
@media (prefers-reduced-motion: reduce) {
    .tn .tn-btn, .tn .tn-main .btn { transition: none; }
}

/* ======================================================================================
   PAGINAS (regras especificas). Cada bloco vale so para a sua pagina (body.tn-pg-<pasta>).
   ====================================================================================== */

/* ---------- papeis comuns das paginas com header.php (sobre, eventos, suporte, conta, downloads, ilhas,
   termos, privacidade, osgrid, telefone, remoto) ---------- */

/* foto de fundo do topo de cada pagina (no lugar do antigo fundo.png com o brasao) */
body.tn { --tn-foto: url('/assets/img/mundo/vlb-aerea.jpg'); }
body.tn-pg-sobre { --tn-foto: url('/assets/img/mundo/ilha-brasil.jpg'); }
body.tn-pg-eventos { --tn-foto: url('/assets/img/mundo/cabine-dj.jpg'); }
body.tn-pg-suporte { --tn-foto: url('/assets/img/mundo/welcome.jpg'); }
body.tn-pg-conta { --tn-foto: url('/assets/img/mundo/comunidade-casa.jpg'); }
body.tn-pg-downloads { --tn-foto: url('/assets/img/mundo/vlb-boas-vindas.jpg'); }
body.tn-pg-politica-de-privacidade { --tn-foto: url('/assets/img/mundo/vlb-parque.jpg'); }
body.tn-pg-ilhas, body.tn-pg-ilhas-full { --tn-foto: url('/assets/img/mundo/comunidade-aerea.jpg'); }
body.tn-pg-osgrid { --tn-foto: url('/assets/img/mundo/welcome-lojas.jpg'); }

/* topos (heroi) */
.tn .tn-main :is(.about-hero, .events-hero, .support-hero, .privacy-hero, .account-hero, .downloads-hero, .osg-hero, .vlb-section-hero, .compact-hero) {
    position: relative;
    background:
        radial-gradient(circle at 12% 0%, rgba(162, 53, 237, .22), transparent 42%),
        radial-gradient(circle at 88% 8%, rgba(23, 142, 254, .18), transparent 45%),
        linear-gradient(180deg, rgba(5, 6, 15, .66) 0%, rgba(5, 6, 15, .84) 55%, var(--bg) 100%),
        var(--tn-foto) center / cover no-repeat,
        var(--bg);
    border-bottom: 1px solid var(--line);
}
/* topos altos (que envolvem a pagina toda): a foto fica so no alto e some suavemente */
.tn .tn-main :is(.support-hero, .vlb-section-hero) {
    background:
        radial-gradient(circle at 12% 0%, rgba(162, 53, 237, .22), transparent 32%),
        radial-gradient(circle at 88% 4%, rgba(23, 142, 254, .18), transparent 34%),
        linear-gradient(180deg, rgba(5, 6, 15, .62) 0, rgba(5, 6, 15, .9) 420px, var(--bg) 640px),
        var(--tn-foto) center top / 100% auto no-repeat,
        var(--bg);
}
.tn .tn-main :is(.about-hero, .vlb-hero)::after { background: linear-gradient(180deg, transparent, var(--bg)); }
.tn .tn-main :is(.events-hero, .account-hero, .downloads-hero)::before { display: none; }
.tn .tn-main :is(.about-hero, .events-hero, .support-hero, .privacy-hero, .account-hero, .downloads-hero, .osg-hero, .vlb-section-hero, .compact-hero) h1 {
    color: var(--text); font: 800 clamp(40px, 6vw, 80px)/.98 var(--disp); letter-spacing: -.045em; text-shadow: none;
}
.tn .tn-main .about-hero h1 span { color: transparent; background: linear-gradient(90deg, var(--blue-t), var(--purple-t)); -webkit-background-clip: text; background-clip: text; }

/* faixas/secoes: fundo do tema, separadas por linha */
.tn .tn-main :is(.about-section, .events-section, .events-highlight, .events-past, .events-cta, .privacy-section, .account-section,
    .quick-section, .help-section, .downloads-section, .steps-section, .info-section, .osg-section, .vlb-section, .vlb-section-dark,
    .vlb-section-blue, .vlb-section-deep, .tos-page, .legal-page, .phone-page, .vlb-page, .section-band) {
    background: transparent; color: var(--text);
}
.tn .tn-main :is(.about-section, .events-highlight, .events-past, .events-cta, .account-section, .quick-section, .help-section,
    .downloads-section, .steps-section, .info-section, .vlb-section:not(.vlb-section-hero), .phone-section, .section-band) + :is(section, div) {
    border-top: 1px solid var(--line);
}
.tn .tn-main .phone-page {
    background: radial-gradient(circle at 12% 0%, rgba(162, 53, 237, .16), transparent 32%), radial-gradient(circle at 88% 6%, rgba(23, 142, 254, .14), transparent 34%), var(--bg);
}

/* cartoes */
.tn .tn-main :is(.about-number, .about-story-text, .about-card, .event-card, .events-hero-card, .highlight-box, .info-box, .past-card,
    .support-card, .support-form, .remote-support, .remote-sources, .vlb-card, .vlb-center-box, .phone-card, .feature-card, .security-box,
    .cta-strip, .tos-panel, .privacy-document, .account-card, .portal-card, .quick-card, .downloads-card, .download-card, .steps-card,
    .osg-card, .legal-panel, .vlb-step, .vlb-image-card, .vlb-founder, .plans-table) {
    background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; box-shadow: none; backdrop-filter: none;
}
.tn .tn-main :is(.event-card, .portal-card, .quick-card, .download-card, .steps-card, .about-card, .vlb-card, .osg-card, .support-card):hover {
    border-color: var(--line-2); box-shadow: none;
}
/* cartoes de destaque (chamadas) */
.tn .tn-main :is(.about-promise, .cta-box, .help-box, .osg-cta, .vlb-cta) {
    background: radial-gradient(circle at 0% 0%, rgba(23, 142, 254, .14), transparent 55%), radial-gradient(circle at 100% 100%, rgba(162, 53, 237, .14), transparent 55%), var(--bg-2);
    border: 1px solid var(--line-2); border-radius: 20px; box-shadow: none;
}
.tn .tn-main .about-emblem { border-color: var(--line-2); background: radial-gradient(circle, rgba(162, 53, 237, .18), rgba(23, 142, 254, .08) 55%, transparent 70%); }

/* rotulos (pilulas) */
.tn .tn-main :is(.about-kicker, .events-badge, .vlb-eyebrow, .phone-kicker, .tos-kicker, .legal-kicker, .account-badge, .downloads-badge, .osg-kicker, .vlb-kicker) {
    display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px;
    border: 1px solid var(--line-2); background: rgba(5, 6, 15, .55); color: var(--green);
    font: 700 11px/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase;
}
.tn .tn-main :is(.account-eyebrow, .downloads-eyebrow, .section-heading .eyebrow) { color: var(--green); letter-spacing: .14em; }

/* titulos dentro das paginas */
.tn .tn-main :is(.about-heading h2, .section-heading h2, .vlb-heading h2, .vlb-heading h1, .account-heading h2, .downloads-heading h2, .about-promise h2, .cta-box h2, .help-box h2, .info-box h2, .phone-section h2, .privacy-hero h1, .tos-panel h1, .legal-panel h1) {
    color: var(--text); font-family: var(--disp); font-weight: 800; letter-spacing: -.035em; text-shadow: none;
}
.tn .tn-main :is(.tos-panel h2, .legal-panel h2, .feature-card h2, .security-box h2, .cta-strip h2) { color: var(--text); }
.tn .tn-main :is(.tos-panel h2, .legal-panel h2)::before { content: ""; display: inline-block; width: 18px; height: 2px; margin-right: 10px; vertical-align: middle; background: var(--blue); box-shadow: 0 0 8px var(--blue); }

/* texto secundario */
.tn .tn-main :is(.about-heading p, .about-lead, .about-story-text p, .about-card p, .about-promise p, .events-hero p, .section-heading p,
    .event-card p, .info-box p, .highlight-box p, .past-card p, .cta-box p, .support-text, .support-card p, .support-form p, .remote-support p,
    .remote-support li, .vlb-heading p, .vlb-card p, .vlb-list, .vlb-center-box p, .phone-lead, .phone-section p, .tos-panel p, .tos-panel li,
    .legal-panel p, .legal-panel li, .privacy-hero p, .privacy-document, .account-text, .account-heading p, .portal-card p, .quick-card p,
    .help-box p, .portal-card ul, .downloads-text, .downloads-heading p, .download-card p, .steps-card p, .osg-lead, .info-box ul,
    .support-note, .account-note, .download-note, .osg-note, .download-meta, .hash-line, .vlb-smart-info, .trust-panel ul, .phone-summary small) {
    color: var(--muted);
}
.tn .tn-main :is(.privacy-document h2, .privacy-document h3, .about-card h3, .event-card h3, .past-card h3, .portal-card h3, .quick-card h3, .download-card h3, .steps-card h3, .vlb-card h3, .support-card h3, .osg-card h2, .osg-card h3) { color: var(--text); }

/* destaques em cor */
.tn .tn-main :is(.event-meta, .past-card span, .event-location, .remote-config strong, .plans-table th) { color: var(--blue-t); }
.tn .tn-main .about-number strong { color: transparent; background: linear-gradient(90deg, var(--blue-t), var(--purple-t)); -webkit-background-clip: text; background-clip: text; font-family: var(--disp); }
.tn .tn-main .about-card-icon { color: var(--blue-t); background: rgba(23, 142, 254, .12); border: 1px solid rgba(23, 142, 254, .35); }
.tn .tn-main :is(.support-card a, .link-list a, .portal-link, .download-link, .info-links a, .osg-section a:not(.btn), .osg-hero a:not(.btn),
    .tos-panel a, .legal-panel a, .remote-sources a, .vlb-link, .privacy-document a) { color: var(--blue-t); }
.tn .tn-main :is(.tos-note, .legal-note) { border-color: rgba(46, 230, 168, .28); background: rgba(46, 230, 168, .06); color: rgba(232, 234, 246, .86); border-radius: 12px; }
.tn .tn-main .privacy-meta { border-color: var(--line-2); background: rgba(232, 234, 246, .03); color: var(--muted); border-radius: 12px; }
.tn .tn-main .privacy-contact { background: rgba(23, 142, 254, .08); border-radius: 12px; }
.tn .tn-main .vlb-price { background: rgba(46, 230, 168, .06); border: 1px solid rgba(46, 230, 168, .25); color: var(--text); border-radius: 12px; }
.tn .tn-main .vlb-price :is(strong, b) { color: var(--green); }
.tn .tn-main :is(.vlb-warning, .notice) { border-radius: 14px; }
.tn .tn-main :is(.osg-card code, .remote-config code) { background: rgba(0, 0, 0, .35); color: #cfe6ff; }

/* botoes das paginas */
.tn .tn-main :is(.about-button, .event-link, .vlb-btn, .support-form button, .remote-downloads a, .remote-downloads span) {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px;
    border-radius: 10px; border: 1px solid transparent; background: var(--text); color: var(--bg);
    font: 700 15px/1 var(--disp); text-decoration: none; box-shadow: none; filter: none;
    transition: transform .18s, opacity .2s, background .2s, border-color .2s;
}
.tn .tn-main :is(.about-button, .event-link, .vlb-btn, .support-form button, .remote-downloads a):hover { transform: translateY(-1px); opacity: .9; filter: none; }
.tn .tn-main :is(.about-button.secondary, .vlb-btn-secondary, .remote-downloads a.secondary, .remote-downloads span.secondary) {
    background: transparent; color: var(--text); border-color: var(--line-2);
}
.tn .tn-main :is(.about-button.secondary, .vlb-btn-secondary, .remote-downloads a.secondary):hover { border-color: rgba(232, 234, 246, .4); background: rgba(232, 234, 246, .04); opacity: 1; }

/* formularios (suporte) */
.tn .tn-main .support-form :is(input, select, textarea) {
    background: #0b0c18; border: 1px solid var(--line-2); color: var(--text); border-radius: 10px; font-family: var(--sans);
}
.tn .tn-main .support-form :is(input, select, textarea):focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23, 142, 254, .18); }
.tn .tn-main .support-form label { color: rgba(232, 234, 246, .86); }
.tn .tn-main .remote-config div { background: #0b0c18; border-color: var(--line); }
.tn .tn-main .remote-logo { box-shadow: 0 14px 34px rgba(23, 142, 254, .2); }

/* telefone */
.tn .tn-main .phone-screen { background: linear-gradient(180deg, rgba(14, 16, 34, .95), rgba(8, 9, 20, .98)), radial-gradient(circle at 50% 0%, rgba(162, 53, 237, .3), transparent 42%); border-color: var(--line-2); }
.tn .tn-main .phone-status { color: var(--green); }
.tn .tn-main :is(.plans-table th, .plans-table td) { border-bottom-color: var(--line); }
.tn .tn-main .plans-table th { background: rgba(23, 142, 254, .08); }
.tn .tn-main .badge-soft { background: rgba(46, 230, 168, .1); color: var(--green); }
.tn .tn-main .region-list span { border-color: var(--line-2); color: var(--muted); background: var(--card); }

/* guia (ja usa as variaveis do style.css, que o tema remapeia) */
.tn .tn-main .guia .hero { background: radial-gradient(circle at 84% 20%, rgba(23, 142, 254, .2), transparent 32%), radial-gradient(circle at 8% 90%, rgba(162, 53, 237, .16), transparent 36%), var(--bg); border-bottom: 1px solid var(--line); }
.tn .tn-main .guia h1 { background: linear-gradient(180deg, #fff, #c9c6ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tn .tn-main .guia .rule { background: linear-gradient(135deg, var(--blue), var(--purple)); }

/* paginas "em construcao" (loja, videos): conteudo solto dentro do main */
.tn.tn-pg-loja .tn-main, .tn.tn-pg-videos .tn-main { max-width: 1360px; margin: 0 auto; padding: clamp(56px, 8vw, 110px) var(--gutter); }
.tn.tn-pg-loja .tn-main > h1, .tn.tn-pg-videos .tn-main > h1 { font: 800 clamp(40px, 6vw, 72px)/1 var(--disp); margin: 0 0 14px; }
.tn.tn-pg-loja .tn-main > p, .tn.tn-pg-videos .tn-main > p { color: var(--muted); }

.tn .tn-main .support-hero { --tn-foto: url('/assets/img/mundo/welcome.jpg'); }

/* ======================================================================================
   PAGINAS AVULSAS (sem header.php): o cabecalho/rodape entram pelo filtro (vlb_tn_injetar).
   O CSS proprio de cada pagina continua valendo; aqui ele e repintado e protegido.
   ====================================================================================== */

/* protege o cabecalho/rodape do CSS generico das paginas (h1, p, a, button, footer...) */
.tn .tn-top, .tn .tn-foot { margin: 0; text-align: left; font-size: 16px; line-height: 1.6; letter-spacing: normal; text-transform: none; position: relative; z-index: 50; }
.tn .tn-top { position: sticky; z-index: 1000; padding: 0; border-top: 0; border-left: 0; border-right: 0; }
.tn .tn-foot { padding: 0; border: 0; background: #000; color: var(--text); font-family: var(--sans); }
.tn :is(.tn-top, .tn-foot) :is(h2, h3, p, ul, li, small) { text-transform: none; text-shadow: none; }
.tn :is(.tn-top, .tn-foot) p { margin: 0; }
.tn :is(.tn-top, .tn-foot) img { max-width: none; }

/* fundo e fonte do tema em todas as avulsas */
html:has(body.tn-avulsa) { background: #05060f; }
body.tn.tn-avulsa {
    display: block; min-height: 100vh; margin: 0; padding: 0;
    background: radial-gradient(circle at 12% 0%, rgba(162, 53, 237, .14), transparent 34%), radial-gradient(circle at 88% 4%, rgba(23, 142, 254, .12), transparent 36%), var(--bg);
    background-attachment: scroll; color: var(--text); font-family: var(--sans);
}
body.tn.tn-avulsa::before, body.tn.tn-avulsa::after { display: none; }
.tn .tn-avulsa-conteudo { position: relative; z-index: 1; padding-bottom: clamp(40px, 6vw, 80px); }
.tn .tn-avulsa-conteudo :is(h1, h2, h3) { color: var(--text); text-shadow: none; }

/* ---------- comprar (lands, residencial, lote, ilha, paypal, sucesso) ---------- */
.tn-pg-comprar .top-nav { display: none; }
.tn-pg-comprar .page { max-width: 1280px; padding: clamp(28px, 4vw, 56px) var(--gutter) 24px; }
.tn-pg-comprar .hero-box { background: transparent; border: 0; padding: 8px 0 28px; }
.tn-pg-comprar .hero-title { color: var(--text); font: 800 clamp(34px, 5vw, 64px)/1.02 var(--disp); letter-spacing: -.03em; text-shadow: none; }
.tn-pg-comprar .hero-sub { color: var(--muted); font-family: var(--sans); }
.tn-pg-comprar .hero-divider { background: linear-gradient(90deg, transparent, var(--blue), var(--purple), transparent); height: 2px; }
.tn-pg-comprar :is(.cards-wrap, .map-wrap, .content-wrap) { background: transparent; border: 0; }
.tn-pg-comprar :is(.card, .map-card, .pay-card, .buyer-form, .pix-result, .success-card) {
    background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; box-shadow: none;
}
.tn-pg-comprar .card:hover { border-color: rgba(23, 142, 254, .45); box-shadow: 0 18px 40px rgba(0, 0, 0, .35); }
.tn-pg-comprar .card::before { display: none; }
.tn-pg-comprar .card-icon { background: rgba(23, 142, 254, .12); border: 1px solid rgba(23, 142, 254, .4); color: var(--blue-t); box-shadow: none; }
.tn-pg-comprar .card h2 { color: var(--text); font-family: var(--disp); }
.tn-pg-comprar :is(.card .lots, .details-box h3, .detail-value, .success-title) { color: var(--text); }
.tn-pg-comprar :is(.card .desc, .detail-label, .form-label, .success-subtitle, .legend, .help, .info-text span) { color: var(--muted); }
.tn-pg-comprar :is(.btn, .back-btn, .btn-primary) {
    background: var(--text); color: var(--bg); border: 1px solid transparent; border-radius: 10px;
    font-family: var(--disp); font-weight: 700; box-shadow: none; filter: none;
}
.tn-pg-comprar :is(.btn, .back-btn, .btn-primary):hover { opacity: .9; filter: none; }
.tn-pg-comprar .btn.disabled, .tn-pg-comprar .btn.disabled:hover { background: rgba(232, 234, 246, .08); color: var(--faint); opacity: 1; }
.tn-pg-comprar .btn-secondary { background: transparent; color: var(--text); border: 1px solid var(--line-2); border-radius: 10px; font-family: var(--disp); font-weight: 700; }
.tn-pg-comprar .info-bar { background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; box-shadow: none; margin-top: 18px; }
.tn-pg-comprar .info-item { background: var(--card); border-color: var(--line); }
.tn-pg-comprar .info-icon { background: rgba(46, 230, 168, .08); border-color: rgba(46, 230, 168, .3); color: var(--green); }
.tn-pg-comprar .info-text strong { color: var(--text); }
.tn-pg-comprar :is(.details-box, .detail-box, .paypal-box) { background: var(--card); border-color: var(--line); }
.tn-pg-comprar .detail-row { border-bottom-color: var(--line); }
.tn-pg-comprar .form-input { background: #0b0c18; border: 1px solid var(--line-2); color: var(--text); border-radius: 10px; }
.tn-pg-comprar .form-input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23, 142, 254, .18); }
.tn-pg-comprar .pay-btn { font-family: var(--disp); font-weight: 700; border-radius: 10px; }
.tn-pg-comprar .pay-btn.pix { background: var(--green); color: #04130d; }
.tn-pg-comprar .pay-btn.paypal { background: var(--text); color: var(--bg); }
.tn-pg-comprar .pix-result { border-color: rgba(46, 230, 168, .3); }
.tn-pg-comprar .lot-area:hover { background: rgba(23, 142, 254, .22); box-shadow: 0 0 0 3px rgba(74, 168, 255, .35) inset; }
.tn-pg-comprar .legend span { background: var(--card); border-color: var(--line); }
.tn-pg-comprar .map-shell { border: 1px solid var(--line); }
/* sucesso da carteira (VL$) */
.tn-pg-comprar .page > .card .ok { box-shadow: 0 0 24px rgba(46, 230, 168, .35); }
.tn-pg-comprar .info { background: var(--card); border: 1px solid var(--line); }
.tn-pg-comprar .info .label { color: var(--muted); }

/* ---------- download (VLBViewer) e download/windows ---------- */
.tn-pg-download .tn-avulsa-conteudo main { padding-top: clamp(32px, 5vw, 64px); }
.tn-pg-download :is(.box, .card) { background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; box-shadow: none; }
.tn-pg-download h1 { color: var(--text); font: 800 clamp(34px, 5vw, 56px)/1.05 var(--disp); letter-spacing: -.035em; }
.tn-pg-download :is(p, .meta) { color: var(--muted); }
.tn-pg-download main ul, .tn-pg-download .security-note ol { color: rgba(232, 234, 246, .86); }
.tn-pg-download main strong { color: var(--text); }
.tn-pg-download .btn {
    background: var(--text); color: var(--bg); border: 1px solid transparent; border-radius: 10px;
    font-family: var(--disp); font-weight: 700; box-shadow: none;
}
.tn-pg-download .btn:hover { opacity: .9; }
.tn-pg-download :is(.btn.ghost, .btn.secondary) { background: transparent; color: var(--text); border-color: var(--line-2); }
.tn-pg-download .security-note { background: var(--card); border: 1px solid var(--line); border-radius: 14px; }
.tn-pg-download .security-note strong { color: var(--blue-t); }
.tn-pg-download .security-note .safe { color: var(--green); }
.tn-pg-download :is(.security-note pre, code) { background: rgba(0, 0, 0, .35); border-color: var(--line); color: #cfe6ff; }
.tn-pg-download .security-shot { border-color: var(--line); background: var(--card); }
.tn-pg-download .note { border-radius: 14px; }
.tn-pg-download main a:not(.btn) { color: var(--blue-t); }

/* ---------- dedicatoria ---------- */
.tn-pg-dedicatoria .wrap { margin-top: clamp(28px, 5vw, 64px); }
.tn-pg-dedicatoria .card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; padding: clamp(24px, 4vw, 44px); }
.tn-pg-dedicatoria .card h1 { font: 800 clamp(34px, 5vw, 52px)/1.05 var(--disp); letter-spacing: -.035em; }
.tn-pg-dedicatoria .card p { color: rgba(232, 234, 246, .86); font-family: var(--sans); line-height: 1.75; }

/* ---------- suporte/privacidade-remoto ---------- */
.tn-pg-suporte.tn-avulsa .card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; box-shadow: none; }
.tn-pg-suporte.tn-avulsa .card h1 { font: 800 clamp(30px, 4.6vw, 48px)/1.05 var(--disp); letter-spacing: -.035em; }
.tn-pg-suporte.tn-avulsa .card h2 { color: var(--text); font-family: var(--disp); }
.tn-pg-suporte.tn-avulsa .card :is(p, li) { color: rgba(232, 234, 246, .8); }
.tn-pg-suporte.tn-avulsa .card a { color: var(--blue-t); }
.tn-pg-suporte.tn-avulsa .muted { color: var(--faint); }

/* ---------- comprar_land.php (pagina antiga de compra) ---------- */
.tn-pg-comprarland .tn-avulsa-conteudo { text-align: center; padding: 40px var(--gutter) 60px; }
.tn-pg-comprarland .box { background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; }
.tn-pg-comprarland button { background: var(--text); color: var(--bg); border: 0; border-radius: 10px; font-family: var(--disp); font-weight: 700; }

/* ---------- SSHassassin: mantem a identidade propria (vermelho), so acerta o fundo ---------- */
html:has(body.tn-pg-sshassassin) { background: #05060f; }
.tn-pg-sshassassin .langbar { position: relative; z-index: 5; }

/* ---------- cadastro (register/index.php, choose-avatar.php, created.php) ---------- */
.tn-pg-register .top-back, .tn-pg-register .top-brand { display: none; }
.tn-pg-register .page-shell { padding-top: clamp(24px, 4vw, 48px); }
.tn-pg-register .register-card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 30px 80px rgba(0, 0, 0, .45); }
.tn-pg-register .register-left { border-right-color: var(--line); }
.tn-pg-register .register-right { background: var(--bg-2); }
.tn-pg-register .register-right h3 { color: var(--text); font: 800 clamp(26px, 3vw, 36px)/1.1 var(--disp); letter-spacing: -.03em; }
.tn-pg-register .hero-badge { border-color: var(--line-2); background: rgba(5, 6, 15, .55); color: var(--green); font: 700 11px/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.tn-pg-register .hero-box h2 { font-family: var(--disp); letter-spacing: -.035em; }
.tn-pg-register .hero-box h2::first-line { color: var(--blue-t); }
.tn-pg-register .hero-logo-box img { filter: drop-shadow(0 0 30px rgba(162, 53, 237, .35)); }
.tn-pg-register label { color: rgba(232, 234, 246, .86); }
.tn-pg-register :is(input, select) { background: #0b0c18; border: 1px solid var(--line-2); color: var(--text); border-radius: 10px; box-shadow: none; }
.tn-pg-register :is(input, select):focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23, 142, 254, .18); }
.tn-pg-register input::placeholder { color: var(--faint); }
.tn-pg-register .btn-primary { background: var(--text); color: var(--bg); border-radius: 10px; box-shadow: none; font-family: var(--disp); font-weight: 700; }
.tn-pg-register .btn-primary:hover { box-shadow: none; opacity: .9; }
.tn-pg-register .register-links a { color: var(--blue-t); }
.tn-pg-register .privacy-card { background: #0b0c18 !important; border-color: var(--line-2) !important; }
.tn-pg-register .privacy-toggle { background: #0b0c18 !important; }
.tn-pg-register .brand-text p { color: var(--blue-t); }

/* ---------- remoto: topo em duas colunas ---------- */
.tn .tn-main .compact-hero .hero-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr); gap: clamp(28px, 5vw, 64px); align-items: center; padding: clamp(48px, 6vw, 88px) 0; }
.tn .tn-main .compact-hero .hero-actions { justify-content: flex-start; }
.tn .tn-main .compact-hero .hero-media img { width: min(100%, 300px); height: auto; margin: 0 auto; border-radius: 28px; box-shadow: 0 30px 70px rgba(23, 142, 254, .25); }
.tn .tn-main .compact-hero .eyebrow { display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 860px) {
    .tn .tn-main .compact-hero .hero-grid { grid-template-columns: 1fr; }
    .tn .tn-main .compact-hero .hero-media img { width: min(60%, 220px); }
}

/* protege menus/rodape de regras genericas das paginas (ex.: nav a { text-transform: uppercase }) */
.tn :where(.tn-top, .tn-foot) :where(a, button, b, span, small, h2, h3, li) { font-family: inherit; }
.tn :where(.tn-top) :where(a, button) { text-transform: none; letter-spacing: normal; text-decoration: none; }
.tn .tn-top .tn-brand b { font-family: var(--disp); letter-spacing: .1em; text-transform: uppercase; }
.tn .tn-foot-cols :is(a, h3) { font-family: var(--sans); }
.tn .tn-foot-hero h2 { font-family: var(--disp); }

/* ---------- celular: nada pode passar da largura da tela ---------- */
.tn :is(.tn-main, .tn-avulsa-conteudo) code { overflow-wrap: anywhere; word-break: break-word; }
.tn :is(.tn-main, .tn-avulsa-conteudo) pre { max-width: 100%; overflow-x: auto; }
.tn :is(.tn-main, .tn-avulsa-conteudo) pre code { overflow-wrap: normal; word-break: normal; }
.tn-pg-comprar :is(.info-item, .info-text) { min-width: 0; }
.tn-pg-comprar .info-text { overflow-wrap: anywhere; }
@media (max-width: 720px) {
    .tn-pg-comprar .info-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
    .tn-pg-comprar .info-bar { grid-template-columns: minmax(0, 1fr); }
}
.tn-pg-download main :is(p, li, .meta, .note, .security-note) { overflow-wrap: anywhere; }
@media (max-width: 600px) {
    .tn .tn-main .plans-table { display: block; overflow-x: auto; max-width: 100%; }
}
