/*
 * Variações dos modelos do site. As cores, a fonte e os arredondamentos vêm das variáveis
 * geradas pelo painel (Aparência); aqui ficam as diferenças de estrutura de cada modelo.
 * Classes no <body>: tema-{modelo}, topo-{formato}, cabecalho-{claro|escuro|vidro}, cartoes-{escuro|cor|claro|contorno},
 * secoes-{padrao|alternado|escuro}, rodape-{escuro|claro|cor}, botoes-{padrao|sombra|gradiente|caixa},
 * letras-{padrao|grande|maiusculo} e destaques-{cartao|faixa|soltos|linha}, definidas em Tema::MODELOS.
 */

/* Cabeçalho claro */

.cabecalho-claro .site-header {
  color: var(--ink);
  background: #fff;
  border-bottom-color: var(--line);
}
.cabecalho-claro .site-header.is-scrolled { box-shadow: 0 10px 30px color-mix(in srgb, var(--brand-navy-deep) 10%, transparent); }
.cabecalho-claro .main-nav a { color: var(--ink); }
.cabecalho-claro .main-nav a:hover { color: var(--brand-blue); background: var(--page); }
.cabecalho-claro .main-nav .nav-icon { color: var(--brand-blue); }
.cabecalho-claro .header-phone { color: var(--ink); }
.cabecalho-claro .header-phone-copy span { color: var(--muted); }
.cabecalho-claro .nav-toggle { color: var(--ink); border-color: var(--line); }
.cabecalho-claro .secure-badge { color: var(--muted); }
.cabecalho-claro .secure-badge .icon { color: var(--accent-ink); }
.cabecalho-claro .utility-bar { background: var(--brand-navy); }
@media (max-width: 960px) {
  .cabecalho-claro .main-nav { background: #fff; border-bottom-color: var(--line); }
  .cabecalho-claro .main-nav a { border-bottom-color: var(--line); }
}

/* Topo imersivo: foto em tela cheia */

.topo-imersivo .hero-media { width: 100%; background-position: 65% center; }
.topo-imersivo .hero-media::after {
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--brand-navy-deep) 94%, transparent) 0%, color-mix(in srgb, var(--brand-navy-deep) 70%, transparent) 38%, color-mix(in srgb, var(--brand-navy-deep) 10%, transparent) 75%),
    linear-gradient(0deg, color-mix(in srgb, var(--brand-navy-deep) 80%, transparent) 0%, color-mix(in srgb, var(--brand-navy-deep) 0%, transparent) 40%);
}
.topo-imersivo .hero-inner { min-height: clamp(600px, 80vh, 780px); }
.topo-imersivo .hero h1 { font-size: clamp(40px, 4.8vw, 68px); font-weight: 800; }
.topo-imersivo .hero-kicker {
  display: inline-flex;
  padding: 6px 14px;
  border: 1px solid color-mix(in srgb, var(--brand-orange) 45%, transparent);
  border-radius: 999px;
  color: var(--brand-orange);
  background: color-mix(in srgb, var(--brand-orange) 10%, transparent);
  font-size: 14px;
}

/* Topo com moldura: fundo claro e foto emoldurada */

.topo-moldura .hero { color: var(--ink); background: var(--page); }
.topo-moldura .hero-media {
  top: 40px;
  right: max(32px, calc((100% - 1240px) / 2));
  bottom: 92px;
  width: min(46%, 640px);
  border-radius: calc(var(--radius) * 2);
  overflow: hidden;
  background-position: center;
  box-shadow: 0 30px 60px color-mix(in srgb, var(--brand-navy-deep) 18%, transparent);
}
.topo-moldura .hero-media::after { background: linear-gradient(0deg, color-mix(in srgb, var(--brand-navy-deep) 25%, transparent), transparent 40%); }
.topo-moldura .hero-copy { max-width: min(560px, 48%); }
.topo-moldura .hero-kicker { color: var(--brand-blue); }
.topo-moldura .hero-highlight { color: var(--accent-ink); }
.topo-moldura .hero-lead { color: var(--muted); }
.topo-moldura .hero-cep { border: 1px solid var(--line); box-shadow: 0 16px 34px color-mix(in srgb, var(--brand-navy-deep) 10%, transparent); }
.topo-moldura .hero-cep-links { color: var(--muted); }
.topo-moldura .hero-cep-links a { color: var(--ink); }
.topo-moldura .hero-cep-links a:hover { color: var(--brand-blue); }
.topo-moldura .hero-cep-error { color: var(--danger); }
.topo-moldura .hero-price span, .topo-moldura .hero-price small { color: var(--muted); }

/* Topo vitrine: título centralizado sobre a foto */

.topo-vitrine .hero-media { width: 100%; background-position: center 35%; }
.topo-vitrine .hero-media::after {
  background:
    radial-gradient(ellipse 60% 70% at center, color-mix(in srgb, var(--brand-navy-deep) 88%, transparent) 0%, color-mix(in srgb, var(--brand-navy-deep) 62%, transparent) 60%, color-mix(in srgb, var(--brand-navy-deep) 40%, transparent) 100%),
    linear-gradient(0deg, color-mix(in srgb, var(--brand-navy-deep) 90%, transparent) 0%, transparent 35%);
}
.topo-vitrine .hero-inner { justify-content: center; min-height: clamp(600px, 78vh, 760px); }
.topo-vitrine .hero-copy { max-width: 840px; text-align: center; }
.topo-vitrine .hero h1 { font-size: clamp(40px, 4.8vw, 66px); }
.topo-vitrine .hero-lead { margin-inline: auto; max-width: 640px; }
.topo-vitrine .hero-cep { margin-inline: auto; }
.topo-vitrine .hero-cep-links { justify-content: center; }
.topo-vitrine .hero-price { justify-items: center; }

/* Topo dividido: metade cor sólida, metade foto */

.topo-dividido .hero { background: var(--brand-navy); }
.topo-dividido .hero-media {
  width: 50%;
  clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
  background-position: center;
}
.topo-dividido .hero-media::after { background: linear-gradient(0deg, color-mix(in srgb, var(--brand-navy-deep) 35%, transparent), transparent 40%); }
.topo-dividido .hero-copy { max-width: min(560px, 46%); }
.topo-dividido .hero-kicker {
  color: var(--brand-orange);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Topo em cartão: fundo com brilho em degradê e foto em cartão inclinado */

.topo-cartao .hero {
  background:
    radial-gradient(720px 480px at 8% 0%, color-mix(in srgb, var(--brand-blue) 62%, transparent), transparent 70%),
    radial-gradient(640px 460px at 92% 100%, color-mix(in srgb, var(--brand-orange) 30%, transparent), transparent 70%),
    radial-gradient(560px 380px at 55% 10%, color-mix(in srgb, var(--brand-blue) 40%, var(--brand-orange)), transparent 70%) no-repeat,
    var(--brand-navy-deep);
}
.topo-cartao .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: radial-gradient(rgba(255, 255, 255, .09) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(180deg, #000, transparent 85%);
  mask-image: linear-gradient(180deg, #000, transparent 85%);
}
.topo-cartao .hero-media {
  top: 56px;
  right: max(40px, calc((100% - 1240px) / 2 + 8px));
  bottom: 112px;
  width: min(40%, 540px);
  border-radius: calc(var(--radius) + 10px);
  background-position: center;
  transform: rotate(2.5deg);
  box-shadow: 0 0 0 10px color-mix(in srgb, #fff 8%, transparent), 0 40px 80px rgba(0, 0, 0, .45);
}
.topo-cartao .hero-media::after { border-radius: inherit; background: linear-gradient(0deg, color-mix(in srgb, var(--brand-navy-deep) 45%, transparent), transparent 45%); }
.topo-cartao .hero-copy { max-width: min(580px, 52%); }
.topo-cartao .hero h1 { font-size: clamp(40px, 4.6vw, 64px); font-weight: 700; letter-spacing: -.035em; }
.topo-cartao .hero-highlight {
  background: linear-gradient(90deg, var(--brand-orange), color-mix(in srgb, var(--brand-blue) 35%, #fff));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.topo-cartao .hero-kicker {
  display: inline-flex;
  padding: 6px 14px;
  border-radius: 999px;
  color: #fff;
  background: color-mix(in srgb, #fff 12%, transparent);
  font-size: 14px;
  backdrop-filter: blur(6px);
}
.topo-cartao .hero-cep { border-radius: calc(var(--radius-btn) + 6px); box-shadow: 0 0 0 6px color-mix(in srgb, #fff 10%, transparent), 0 20px 40px rgba(0, 0, 0, .3); }

/* Topo editorial: título grande com serifa e foto panorâmica de ponta a ponta */

.topo-editorial .hero { color: var(--ink); background: var(--page); }
.topo-editorial .hero-media {
  inset: auto 0 0;
  width: 100%;
  height: clamp(280px, 32vw, 460px);
  background-position: center 55%;
}
.topo-editorial .hero-media::after { background: linear-gradient(180deg, var(--page) 0%, transparent 18%); }
.topo-editorial .hero-inner {
  min-height: 0;
  padding-block: 72px calc(clamp(280px, 32vw, 460px) + 56px);
}
.topo-editorial .hero-copy {
  max-width: none;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
  grid-auto-flow: dense;
  column-gap: 64px;
  align-items: start;
}
.topo-editorial .hero-kicker,
.topo-editorial .hero h1 { grid-column: 1 / -1; }
.topo-editorial .hero-lead,
.topo-editorial .hero-price { grid-column: 1; }
.topo-editorial .hero-cep,
.topo-editorial .hero-cep-error,
.topo-editorial .hero-cep-links { grid-column: 2; }
.topo-editorial .hero-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--brand-blue);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.topo-editorial .hero-kicker::before { content: ""; width: 36px; height: 1px; background: currentColor; }
.topo-editorial .hero h1 {
  max-width: 980px;
  margin-top: 18px;
  font-size: clamp(44px, 5.6vw, 82px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.025em;
}
.topo-editorial .hero-highlight { color: var(--brand-blue); }
.topo-editorial .hero-lead { margin-top: 28px; color: var(--muted); }
.topo-editorial .hero-cep { margin-top: 28px; border: 1px solid var(--ink); box-shadow: none; }
.topo-editorial .hero-cep:focus-within { box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-blue) 30%, transparent); }
.topo-editorial .hero-cep-links { color: var(--muted); }
.topo-editorial .hero-cep-links a { color: var(--ink); }
.topo-editorial .hero-cep-links a:hover { color: var(--brand-blue); }
.topo-editorial .hero-cep-error { color: var(--danger); }
.topo-editorial .hero-price { margin-top: 24px; }
.topo-editorial .hero-price span, .topo-editorial .hero-price small { color: var(--muted); }

@media (max-width: 960px) {
  .topo-cartao .hero-media {
    position: relative;
    inset: auto;
    display: block;
    width: auto;
    height: 300px;
    margin: 32px 28px 0;
    transform: rotate(1.5deg);
  }
  .topo-cartao .hero-copy { max-width: 600px; }
  .topo-cartao .hero-inner { padding-top: 40px; }
  .topo-editorial .hero-copy { grid-template-columns: minmax(0, 1fr); max-width: 640px; }
  .topo-editorial .hero-cep,
  .topo-editorial .hero-cep-error,
  .topo-editorial .hero-cep-links { grid-column: 1; }
}
@media (max-width: 760px) {
  .topo-cartao .hero-media { height: 230px; margin: 24px 20px 0; }
  .topo-cartao .hero-inner { padding-block: 28px 96px; }
  .topo-cartao .hero-cep { border-radius: calc(min(var(--radius-btn), 26px) + 8px); }
  .topo-editorial .hero-inner { padding-block: 40px calc(240px + 72px); }
  .topo-editorial .hero-media { height: 240px; }
}

@media (max-width: 960px) {
  .topo-moldura .hero-media {
    position: relative;
    inset: auto;
    display: block;
    width: auto;
    height: 300px;
    margin: 24px 16px 0;
  }
  .topo-moldura .hero-copy, .topo-dividido .hero-copy { max-width: 600px; }
  .topo-moldura .hero-inner { padding-top: 36px; }
  .topo-dividido .hero-media { width: 100%; clip-path: none; }
  .topo-dividido .hero-media::after {
    background: linear-gradient(90deg, color-mix(in srgb, var(--brand-navy) 96%, transparent) 0%, color-mix(in srgb, var(--brand-navy) 80%, transparent) 60%, color-mix(in srgb, var(--brand-navy) 50%, transparent) 100%);
  }
  .topo-imersivo .hero-inner, .topo-vitrine .hero-inner { min-height: 0; }
}
@media (max-width: 760px) {
  .topo-moldura .hero-media { height: 240px; }
  .topo-moldura .hero-inner { padding-block: 28px 96px; }
  .topo-dividido .hero-media { inset: 0 0 auto; height: 300px; }
  .topo-dividido .hero-media::after { background: linear-gradient(180deg, transparent 30%, var(--brand-navy) 100%); }
  .topo-vitrine .hero-copy { text-align: left; }
  .topo-vitrine .hero-cep-links { justify-content: flex-start; }
  .topo-vitrine .hero-price { justify-items: start; }
}

/* Topos claros: textos escuros sobre fundo claro */

.topo-claro .hero, .topo-nuvem .hero { color: var(--ink); }
.topo-claro .hero-kicker, .topo-nuvem .hero-kicker { color: var(--brand-blue); }
.topo-claro .hero-highlight, .topo-nuvem .hero-highlight { color: var(--brand-blue); }
.topo-claro .hero-lead, .topo-nuvem .hero-lead { color: var(--muted); }
.topo-claro .hero-cep, .topo-nuvem .hero-cep { border: 1px solid var(--line); box-shadow: 0 16px 34px color-mix(in srgb, var(--brand-navy-deep) 10%, transparent); }
.topo-claro .hero-cep-links, .topo-nuvem .hero-cep-links { color: var(--muted); }
.topo-claro .hero-cep-links a, .topo-nuvem .hero-cep-links a { color: var(--ink); }
.topo-claro .hero-cep-links a:hover, .topo-nuvem .hero-cep-links a:hover { color: var(--brand-blue); }
.topo-claro .hero-cep-error, .topo-nuvem .hero-cep-error { color: var(--danger); }
.topo-claro .hero-price span, .topo-claro .hero-price small,
.topo-nuvem .hero-price span, .topo-nuvem .hero-price small { color: var(--muted); }

/* Botões e atalhos da chamada nos topos de fundo claro */
:is(.topo-claro, .topo-nuvem, .topo-moldura, .topo-editorial) .hero .chamada-sec { color: var(--ink); background: #fff; border-color: var(--line); }
:is(.topo-claro, .topo-nuvem, .topo-moldura, .topo-editorial) .hero .chamada-sec:hover { border-color: var(--brand-blue); color: var(--brand-blue); }
:is(.topo-claro, .topo-nuvem, .topo-moldura, .topo-editorial) .chamada-vel a { color: var(--ink); background: #fff; border-color: var(--line); box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-navy-deep) 8%, transparent); }
:is(.topo-claro, .topo-nuvem, .topo-moldura, .topo-editorial) .chamada-vel a:hover { border-color: var(--brand-blue); }
:is(.topo-claro, .topo-nuvem, .topo-moldura, .topo-editorial) .chamada-vel span { color: var(--muted); }
.topo-vitrine .hero .chamada-acoes { justify-content: center; }
.topo-vitrine .chamada-vel { margin-inline: auto; }
.topo-editorial .hero .chamada-acoes, .topo-editorial .chamada-vel { grid-column: 2; }
@media (max-width: 960px) {
  .topo-editorial .hero .chamada-acoes, .topo-editorial .chamada-vel { grid-column: 1; }
}
@media (max-width: 760px) {
  .topo-vitrine .hero .chamada-acoes { justify-content: flex-start; }
}

/* Topo claro: fundo branco e foto encostada à direita, sem sobreposição */

.topo-claro .hero { background: #fff; border-bottom: 1px solid var(--line); }
.topo-claro .hero-media { width: 46%; background-position: center; }
.topo-claro .hero-media::after { display: none; }
.topo-claro .hero-copy { max-width: min(560px, 48%); }
.topo-claro .hero h1 { font-weight: 800; letter-spacing: -.035em; }

/* Topo nuvem: céu claro e foto que se dissolve no fundo */

.topo-nuvem .hero { background: linear-gradient(180deg, color-mix(in srgb, var(--brand-blue) 16%, #fff) 0%, var(--page) 100%); }
.topo-nuvem .hero-media {
  width: 62%;
  background-position: 60% center;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 40%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 40%);
}
.topo-nuvem .hero-media::after { background: linear-gradient(0deg, var(--page) 0%, transparent 30%); }
.topo-nuvem .hero-copy { max-width: min(560px, 46%); }

/* Topo em painel: bloco em degradê com cantos arredondados e foto integrada */

.topo-painel .hero { padding-top: 20px; color: #fff; background: var(--page); }
.topo-painel .hero-inner {
  position: relative;
  overflow: hidden;
  min-height: clamp(540px, 68vh, 660px);
  padding: 64px clamp(28px, 4vw, 64px) 120px;
  border-radius: calc(var(--radius) + 8px);
  background:
    radial-gradient(600px 420px at 85% 15%, color-mix(in srgb, var(--brand-orange) 30%, transparent), transparent 70%),
    linear-gradient(115deg, var(--brand-navy-deep) 0%, var(--brand-navy) 42%, var(--brand-blue) 100%);
}
.topo-painel .hero-inner::before {
  content: "";
  position: absolute;
  left: -120px;
  bottom: -180px;
  width: 460px;
  height: 460px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 50%;
  box-shadow: 0 0 0 60px rgba(255, 255, 255, .025), 0 0 0 120px rgba(255, 255, 255, .02);
  pointer-events: none;
}
.topo-painel .hero-media {
  z-index: 1;
  top: 20px;
  right: calc((100% - var(--container)) / 2);
  width: min(50%, 640px);
  border-radius: 0 calc(var(--radius) + 8px) calc(var(--radius) + 8px) 0;
  background-position: center;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
}
.topo-painel .hero-media::after { background: linear-gradient(0deg, color-mix(in srgb, var(--brand-navy-deep) 45%, transparent), transparent 45%); }
.topo-painel .hero-copy { position: relative; z-index: 2; max-width: min(580px, 52%); }
.topo-painel .hero-kicker {
  display: inline-flex;
  padding: 6px 14px;
  border-radius: 999px;
  color: #fff;
  background: color-mix(in srgb, #fff 14%, transparent);
  font-size: 14px;
}
.topo-painel .hero-highlight { color: var(--brand-orange); }

@media (max-width: 960px) {
  .topo-claro .hero-media,
  .topo-nuvem .hero-media {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    height: 280px;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .topo-claro .hero-copy, .topo-nuvem .hero-copy, .topo-painel .hero-copy { max-width: 600px; }
  .topo-claro .hero-inner, .topo-nuvem .hero-inner { min-height: 0; padding-top: 36px; }
  .topo-painel .hero-media {
    top: auto;
    bottom: 0;
    left: calc((100% - var(--container)) / 2);
    width: auto;
    height: 260px;
    border-radius: 0 0 calc(var(--radius) + 8px) calc(var(--radius) + 8px);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 45%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 45%);
  }
  .topo-painel .hero-inner { min-height: 0; padding: 40px 24px 300px; }
}

/* Cabeçalho translúcido, por cima do topo da página inicial */

.cabecalho-vidro .site-header {
  background: color-mix(in srgb, var(--brand-navy-deep) 55%, transparent);
  border-bottom-color: rgba(255, 255, 255, .1);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
}
.cabecalho-vidro .site-header.is-scrolled { background: color-mix(in srgb, var(--brand-navy-deep) 90%, transparent); }
.cabecalho-vidro.page-home main > .hero:first-child { margin-top: -79px; }
.cabecalho-vidro.page-home main > .hero:first-child .hero-inner { padding-top: calc(72px + 79px); }
.cabecalho-vidro.page-home.topo-cartao .hero-media { top: calc(56px + 79px); }
@media (max-width: 960px) {
  .cabecalho-vidro .main-nav { background: var(--brand-navy-deep); }
  .cabecalho-vidro.page-home main > .hero:first-child .hero-inner { padding-top: calc(40px + 79px); }
}

/* Cartões dos planos: cabeçalho escuro (padrão), em cor, claro ou só com contorno */

.cartoes-cor .plan-head { background: linear-gradient(140deg, var(--brand-blue) 0%, var(--brand-navy) 100%); }
.cartoes-claro .plan-head { color: var(--ink); background: color-mix(in srgb, var(--brand-blue) 9%, #fff); }
.cartoes-contorno .plan-head { color: var(--ink); background: #fff; border-bottom: 1px solid var(--line); }
.cartoes-claro .plan-category, .cartoes-claro .plan-unit,
.cartoes-contorno .plan-category, .cartoes-contorno .plan-unit { color: var(--muted); }
.cartoes-claro .plan-category .icon, .cartoes-contorno .plan-category .icon { color: var(--brand-blue); }
.cartoes-contorno .plan-card, .cartoes-contorno .phone-plan, .cartoes-contorno .tv-plan { box-shadow: none; }
.cartoes-contorno .plan-card:hover { border-color: var(--ink); box-shadow: none; }

/* Seções: fundos alternados ou faixas escuras */

.secoes-alternado .section-plans,
.secoes-alternado .section-phone,
.secoes-alternado .section-business,
.secoes-alternado .section-contact { background: color-mix(in srgb, var(--brand-blue) 7%, var(--page)); }
.secoes-alternado .section-usage,
.secoes-alternado .section-extras,
.secoes-alternado .section-steps,
.secoes-alternado .section-app { background: #fff; }

/* Seções escuras: a página inicial inteira em modo escuro, com superfícies em camadas.
   Logos de canais e streamings continuam sobre fundo branco para manter as cores das marcas. */

.page-home.secoes-escuro main {
  --page: var(--brand-navy);
  --surface: color-mix(in srgb, var(--brand-navy) 94%, #fff);
  --surface-2: color-mix(in srgb, var(--brand-navy) 89%, #fff);
  --ink: #eef1f5;
  --muted: #9ba4b0;
  --line: rgba(255, 255, 255, .09);
  --brand-blue: var(--accent-on-dark);
  --accent-ink: var(--accent-on-dark);
  --on-dark-muted: #a3acb8;
  color-scheme: dark;
  color: var(--ink);
  background: var(--page);
}
.page-home.secoes-escuro :is(.highlights, .section-plans, .section-usage, .section-phone, .section-app, .section-extras, .section-business, .section-steps, .section-contact, .rural) { background: var(--page); }
.page-home.secoes-escuro :is(.section-plans, .section-usage, .section-phone, .section-app, .section-extras, .section-business, .section-steps, .section-contact) { border-top: 1px solid var(--line); }

.page-home.secoes-escuro :is(.plan-card, .phone-plan, .tv-plan, .extra-card, .catalog, .contact-card, .store-strip, .store-map, .stores, .contact-form-box, .rural-steps, .highlights-grid, .bento-tile, .app-card, .faq-item, .gov-grid a, .gov-item, .stores-filter button) {
  border-color: var(--line);
  background: var(--surface);
  box-shadow: none;
}
.page-home.secoes-escuro .tv-plan { color: var(--ink); }
.page-home.secoes-escuro :is(.plan-card, .phone-plan, .extra-card, .contact-card, .gov-grid a):hover { border-color: color-mix(in srgb, var(--brand-orange) 45%, transparent); box-shadow: none; }
.page-home.secoes-escuro :is(.plan-card-featured, .phone-plan.is-featured, .tv-plan.is-featured) { border-color: var(--brand-orange); }

.page-home.secoes-escuro :is(.feature-icon, .tile-icon:not(.tile-logo), .highlight-icon, .bento-tile > .tile-icon, .app-actions .icon) {
  color: var(--brand-orange);
  background: color-mix(in srgb, var(--brand-orange) 12%, transparent);
  box-shadow: none;
}
.page-home.secoes-escuro .btn-outline { color: var(--ink); border-color: rgba(255, 255, 255, .22); background: transparent; }
.page-home.secoes-escuro .btn-outline:hover { border-color: var(--ink); background: rgba(255, 255, 255, .06); }
.page-home.secoes-escuro .btn-dark { color: var(--on-cta); background: var(--brand-orange); }
.page-home.secoes-escuro .btn-dark:hover { background: var(--brand-orange-hover); }

/* Topo, destaques e planos */
.page-home.secoes-escuro .hero-cep { border: 1px solid rgba(255, 255, 255, .14); background: var(--surface); box-shadow: 0 20px 40px rgba(0, 0, 0, .4); }
.page-home.secoes-escuro .hero-cep-field input::placeholder { color: var(--muted); }
.page-home.secoes-escuro .destaques-linha .highlights,
.page-home.secoes-escuro .highlights { border-bottom: 1px solid var(--line); }
.page-home.secoes-escuro .highlights-grid { border: 0; background: transparent; }
.page-home.secoes-escuro .audience-switch { border-color: var(--line); background: var(--surface); box-shadow: none; }
.page-home.secoes-escuro .audience-switch button[aria-pressed="true"] { color: var(--on-cta); background: var(--brand-orange); }
.page-home.secoes-escuro .plan-head { color: var(--ink); background: var(--surface-2); border-bottom: 1px solid var(--line); }
.page-home.secoes-escuro .plan-unit { color: var(--muted); }
.page-home.secoes-escuro .plan-apps li { background: var(--surface-2); }

/* Uso, telefonia e TV */
.page-home.secoes-escuro .bento-tile-dark { border-color: color-mix(in srgb, var(--brand-orange) 35%, transparent); background: color-mix(in srgb, var(--brand-orange) 8%, var(--surface)); }
.page-home.secoes-escuro .bento-tile-dark p { color: var(--muted); }
.page-home.secoes-escuro .phone-plan header { border-color: var(--line); }
.page-home.secoes-escuro .tv-form-fields input { border-color: rgba(255, 255, 255, .14); color: var(--ink); background: var(--surface-2); }
.page-home.secoes-escuro .tv-form-fields input::placeholder { color: var(--muted); }
.page-home.secoes-escuro .tv-plan-streaming { background: color-mix(in srgb, var(--brand-orange) 10%, var(--surface)); }
.page-home.secoes-escuro .ch-logo.is-more { color: var(--brand-orange); border-color: var(--line); background: var(--surface-2); }
.page-home.secoes-escuro .ch-logo.is-text, .page-home.secoes-escuro .st-logo.is-text { color: var(--ink); background: var(--surface-2); border-color: var(--line); }
/* Logos: a placa segue data-plate (análise automática), não o tema. */
.page-home.secoes-escuro :is(.ch-logo, .st-logo, .extra-logo, .app-logo, .srow-logo, .review-item-logo, .tvi-logo)[data-plate="claro"]:not(.is-text):not(.is-more) {
  border-color: transparent;
  background: #fff;
}
.page-home.secoes-escuro :is(.ch-logo, .st-logo, .extra-logo, .app-logo, .srow-logo, .review-item-logo, .tvi-logo)[data-plate="escuro"]:not(.is-text):not(.is-more) {
  border-color: transparent;
  background: #10182c;
}
.page-home.secoes-escuro :is(.streaming-card, .alacarte-card) {
  border-color: var(--line);
  background: var(--surface);
}
.page-home.secoes-escuro .streaming-head p,
.page-home.secoes-escuro :is(.streaming-card, .alacarte-card) p { color: var(--muted); }
.page-home.secoes-escuro :is(.streaming-card h4, .alacarte-card h4, .streaming-offer dd, .alacarte-price span) { color: var(--ink); }
.page-home.secoes-escuro :is(.streaming-offer, .alacarte-card .alacarte-price) { border-top-color: var(--line); }
.page-home.secoes-escuro .alacarte-price :is(span small, > small),
.page-home.secoes-escuro .streaming-offer :is(dt, dd small) { color: var(--muted); }
.page-home.secoes-escuro .channels-dialog-head { border-bottom: 1px solid var(--line); background: var(--surface-2); }
.page-home.secoes-escuro .channels-dialog-body { background: var(--surface); }
.page-home.secoes-escuro :is(.channels-dialog-note, .channels-dialog-body h4 small) { background: var(--surface-2); }

/* Aplicativo: maquete do celular em modo escuro */
.page-home.secoes-escuro .app-visual::before { background: radial-gradient(circle, color-mix(in srgb, var(--brand-orange) 16%, transparent) 0%, color-mix(in srgb, var(--brand-orange) 4%, transparent) 50%, transparent 70%); }
.page-home.secoes-escuro .app-phone {
  box-shadow:
    0 1px 1px rgba(255, 255, 255, .35) inset,
    0 -1px 1px rgba(0, 0, 0, .4) inset,
    0 0 0 0.5px rgba(0, 0, 0, .4),
    0 28px 60px rgba(0, 0, 0, .5),
    0 48px 96px rgba(0, 0, 0, .32);
}
.page-home.secoes-escuro .app-screen { background: linear-gradient(180deg, var(--surface-2) 0 196px, var(--page) 196px); }
.page-home.secoes-escuro .app-screen.app-screen-print { background: #000; }
.page-home.secoes-escuro .app-phone-home { background: rgba(255, 255, 255, .3); }

/* Empresas, rural e passos */
.page-home.secoes-escuro .catalog-group h3 { border-bottom-color: var(--line); }
.page-home.secoes-escuro .catalog-group li + li { border-top-color: var(--line); }
.page-home.secoes-escuro .catalog-group a::after { color: var(--muted); }
.page-home.secoes-escuro .business-cta { border: 1px solid var(--line); background: var(--surface-2); }
.page-home.secoes-escuro .business-cta p { color: var(--muted); }
.page-home.secoes-escuro .tile-icon.tile-logo { border-color: var(--line); }

/* Atendimento e formulário */
.page-home.secoes-escuro .contact-card-primary { border-color: color-mix(in srgb, var(--brand-orange) 45%, transparent); background: color-mix(in srgb, var(--brand-orange) 9%, var(--surface)); }
.page-home.secoes-escuro .contact-card-primary :is(.contact-label, small) { color: var(--muted); }
.page-home.secoes-escuro .contact-form-copy { border-color: var(--line); background: var(--surface-2); }
.page-home.secoes-escuro .store-map-frame { background: var(--surface-2); }
.page-home.secoes-escuro .stores.has-map .stores-list { background: var(--page); }
.page-home.secoes-escuro .store-card { border-color: var(--line); background: var(--surface-2); }
.page-home.secoes-escuro .store-pin { border-color: color-mix(in srgb, var(--brand-orange) 45%, transparent); color: var(--brand-orange); background: transparent; }
.page-home.secoes-escuro .stores.has-map .store-card.is-active { border-color: var(--brand-orange); box-shadow: 0 0 0 1px var(--brand-orange); }
.page-home.secoes-escuro .stores.has-map .store-card.is-active .store-pin { border-color: var(--brand-orange); color: var(--on-cta); background: var(--brand-orange); }
.page-home.secoes-escuro button.store-select:hover .store-name { color: var(--brand-orange); }
.page-home.secoes-escuro .store-routes-label .icon { color: var(--brand-orange); }
.page-home.secoes-escuro .route-app { border-color: rgba(255, 255, 255, .16); color: var(--ink); background: var(--surface-2); }
.page-home.secoes-escuro .route-app:hover { border-color: var(--brand-orange); }
.page-home.secoes-escuro .cf-field :is(input, select, textarea) { border-color: rgba(255, 255, 255, .14); color: var(--ink); background: var(--page); }
.page-home.secoes-escuro .cf-field [aria-invalid="true"] { border-color: #ff8a80; }
.page-home.secoes-escuro .cf-error { color: #ff9b91; }
.page-home.secoes-escuro .cf-msg { color: #ffc9c3; background: rgba(255, 99, 88, .12); }
.page-home.secoes-escuro .cf-msg.is-ok { color: #c9f2db; background: rgba(46, 196, 113, .1); }
.page-home.secoes-escuro .cf-msg.is-ok .icon { color: #4ad68a; }

/* Rodapé claro ou colorido */

.rodape-claro .footer-main { color: var(--muted); background: var(--page); border-top: 1px solid var(--line); }
.rodape-claro .footer-block h2, .rodape-claro .footer-app-title { color: var(--ink); }
.rodape-claro .footer-links a, .rodape-claro .footer-contacts a, .rodape-claro .footer-link-button, .rodape-claro .footer-stores strong { color: var(--ink); }
.rodape-claro .footer-links a:hover, .rodape-claro .footer-contacts a:hover, .rodape-claro .footer-link-button:hover { color: var(--brand-blue); }
.rodape-claro .footer-social a { color: var(--ink); border-color: var(--line); background: #fff; }
.rodape-claro .footer-social a:hover, .rodape-claro .footer-social a:focus-visible { color: #fff; border-color: var(--brand-navy); background: var(--brand-navy); }
.rodape-claro .footer-docs .icon { color: var(--brand-blue); }
.rodape-claro .footer-bottom { border-top: 1px solid var(--line); }

.rodape-cor .footer-main {
  color: color-mix(in srgb, var(--brand-blue) 14%, #fff);
  background:
    radial-gradient(900px 420px at 100% 0%, color-mix(in srgb, var(--brand-orange) 22%, transparent), transparent 60%),
    linear-gradient(135deg, var(--brand-blue) 0%, color-mix(in srgb, var(--brand-blue) 35%, var(--brand-navy-deep)) 100%);
}
.rodape-cor .footer-links a:hover, .rodape-cor .footer-contacts a:hover, .rodape-cor .footer-link-button:hover { color: #fff; text-decoration: underline; }
.rodape-cor .footer-docs .icon { color: #fff; }
.rodape-cor .footer-social a { border-color: rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .1); }
.rodape-cor .footer-social a:hover, .rodape-cor .footer-social a:focus-visible { color: var(--brand-blue); border-color: #fff; background: #fff; }

/* Botões: com sombra, em degradê ou em caixa-alta */

.botoes-sombra .btn-primary { box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-orange) 36%, transparent); transition: background .15s ease, box-shadow .2s ease, transform .2s ease; }
.botoes-sombra .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 14px 30px color-mix(in srgb, var(--brand-orange) 46%, transparent); }
.botoes-gradiente .btn-primary { color: #fff; background: linear-gradient(100deg, var(--brand-orange) 0%, color-mix(in srgb, var(--brand-orange) 45%, var(--brand-blue)) 100%); }
.botoes-gradiente .btn-primary:hover { background: linear-gradient(100deg, var(--brand-orange-hover) 0%, color-mix(in srgb, var(--brand-orange-hover) 55%, var(--brand-blue)) 100%); }
.botoes-caixa .btn { font-size: 13.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.botoes-caixa .btn-lg { font-size: 14.5px; }
.botoes-caixa .hero-cep .btn { padding-inline: 16px; font-size: 13px; letter-spacing: .05em; }
.botoes-caixa .btn-primary { transition: background .15s ease, box-shadow .15s ease, transform .15s ease; }
.botoes-caixa .btn-primary:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--brand-navy); }

/* Títulos: maiores ou em caixa-alta */

.letras-grande .section-head h2,
.letras-grande .business-copy h2,
.letras-grande .phone-copy h2,
.letras-grande .steps-copy h2,
.letras-grande .dedicated-copy h2,
.letras-grande .rural-copy h2,
.letras-grande .tv-copy h2 { font-size: clamp(34px, 3.8vw, 54px); font-weight: 800; line-height: 1.04; letter-spacing: -.035em; }
.letras-grande .hero h1 { font-size: clamp(42px, 5.2vw, 74px); font-weight: 800; letter-spacing: -.04em; }
.letras-maiusculo .section-head h2,
.letras-maiusculo .business-copy h2,
.letras-maiusculo .phone-copy h2,
.letras-maiusculo .steps-copy h2,
.letras-maiusculo .dedicated-copy h2,
.letras-maiusculo .rural-copy h2,
.letras-maiusculo .tv-copy h2,
.letras-maiusculo .cta-band h2,
.letras-maiusculo .hero h1 { font-weight: 800; letter-spacing: -.01em; text-transform: uppercase; }
.letras-maiusculo .kicker { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }

/* Destaques abaixo do topo: cartão (padrão), faixa, cartões soltos ou linha */

.destaques-faixa .highlights { background: var(--brand-navy); }
.destaques-faixa .highlights-grid { top: 0; margin-bottom: 0; color: #fff; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.destaques-faixa .highlight { padding-block: 30px; }
.destaques-faixa .highlight + .highlight { border-color: rgba(255, 255, 255, .12); }
.destaques-faixa .highlight div span { color: var(--on-dark-muted); }
.destaques-faixa .highlight-icon { color: var(--on-cta); background: var(--brand-orange); }

.destaques-soltos .highlights-grid { gap: 14px; border: 0; background: transparent; box-shadow: none; }
.destaques-soltos .highlight {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 16px 36px color-mix(in srgb, var(--brand-navy-deep) 10%, transparent);
}
.destaques-soltos .highlight + .highlight { border: 1px solid var(--line); }

.destaques-linha .highlights { background: #fff; border-bottom: 1px solid var(--line); }
.destaques-linha .highlights-grid { top: 0; margin-bottom: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.destaques-linha .highlight { padding-block: 30px; }
.destaques-linha .highlight-icon { color: var(--brand-blue); background: transparent; border: 1px solid var(--line); }

@media (max-width: 1180px) {
  .destaques-faixa .highlight:nth-child(n + 3) { border-top-color: rgba(255, 255, 255, .12); }
  .destaques-soltos .highlight:nth-child(n) { border: 1px solid var(--line); }
}
@media (max-width: 760px) {
  .destaques-faixa .highlights-grid, .destaques-linha .highlights-grid { top: 0; margin-bottom: 0; }
  .destaques-faixa .highlight, .destaques-linha .highlight { padding-block: 18px; }
  .destaques-faixa .highlight + .highlight { border-top-color: rgba(255, 255, 255, .12); }
  .destaques-soltos .highlights-grid { gap: 10px; }
}

/* Detalhes de cada modelo */

.tema-pulsar .plan-head,
.tema-pulsar .channels-dialog-head {
  background: linear-gradient(135deg, var(--brand-navy) 0%, color-mix(in srgb, var(--brand-blue) 35%, var(--brand-navy)) 100%);
}
.tema-pulsar .kicker { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.tema-pulsar .section-head h2, .tema-pulsar .hero h1 { letter-spacing: -.035em; }
.tema-pulsar .highlight-icon { color: var(--on-cta); background: var(--brand-orange); }


.tema-prisma .hero-highlight {
  background: linear-gradient(90deg, var(--brand-orange), color-mix(in srgb, var(--brand-orange) 45%, #fff));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.tema-prisma .plan-head,
.tema-prisma .channels-dialog-head { background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-blue) 140%); }
.tema-prisma .plan-tabs { padding: 5px; border: 0; border-radius: 999px; background: #fff; box-shadow: 0 6px 18px color-mix(in srgb, var(--brand-navy-deep) 8%, transparent); }
.tema-prisma .plan-tabs button { margin: 0; border: 0; border-radius: 999px; }
.tema-prisma .plan-tabs button[aria-selected="true"] { color: #fff; background: var(--brand-navy); }

.tema-campo .kicker { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.tema-campo .section-head h2, .tema-campo .hero h1 { letter-spacing: -.01em; }
.tema-campo .highlights { border-top: 4px solid var(--brand-orange); }
.tema-campo .plan-card-featured, .tema-campo .phone-plan.is-featured, .tema-campo .tv-plan.is-featured { border-color: var(--brand-orange); }
.tema-campo .section-usage, .tema-campo .section-extras, .tema-campo .section-steps, .tema-campo .section-app { background: #fffdf7; }

/* Pulsar: seção de uso em fundo escuro e brilho no plano em destaque */

.tema-pulsar .section-usage { color: #fff; background: var(--brand-navy-deep); }
.tema-pulsar .section-usage .section-head p { color: var(--on-dark-muted); }
.tema-pulsar .section-usage .kicker { color: var(--brand-orange); }
.tema-pulsar .bento-tile { color: var(--ink); border-color: transparent; background: #fff; }
.tema-pulsar .bento-tile-dark { color: #fff; border-color: color-mix(in srgb, #fff 14%, transparent); background: color-mix(in srgb, var(--brand-blue) 22%, var(--brand-navy)); }
.tema-pulsar .plan-card-featured { box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-orange) 18%, transparent), 0 24px 50px color-mix(in srgb, var(--brand-orange) 22%, transparent); }
.tema-pulsar .cta-band { border-top: 0; background: linear-gradient(120deg, var(--brand-navy-deep), color-mix(in srgb, var(--brand-blue) 30%, var(--brand-navy))); }

/* Litoral: ícones redondos e chamada final na cor de destaque */

.tema-litoral .highlight-icon,
.tema-litoral .feature-icon,
.tema-litoral .tile-icon { border-radius: 50%; }
.tema-litoral .highlights-grid { border-radius: calc(var(--radius) + 8px); }
.tema-litoral .cta-band { border-top: 0; background: color-mix(in srgb, var(--brand-blue) 75%, var(--brand-navy)); }
.tema-litoral .cta-band p { color: color-mix(in srgb, var(--brand-blue) 12%, #fff); }
.tema-litoral .bento-overlay { background: linear-gradient(0deg, color-mix(in srgb, var(--brand-navy) 88%, transparent) 0%, color-mix(in srgb, var(--brand-navy) 40%, transparent) 55%, transparent 100%); }

/* Prisma: cartões que sobem ao passar o mouse e chamada final em degradê */

.tema-prisma .plan-card { transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease; }
.tema-prisma .plan-card:hover { transform: translateY(-4px); }
.tema-prisma .highlight-icon { color: #fff; background: linear-gradient(135deg, var(--brand-blue), var(--brand-orange)); }
.tema-prisma .cta-band { border-top: 0; background: linear-gradient(110deg, var(--brand-navy) 0%, color-mix(in srgb, var(--brand-blue) 60%, var(--brand-navy)) 55%, color-mix(in srgb, var(--brand-orange) 55%, var(--brand-navy)) 100%); }

/* Aurora: destaques em cartões soltos, bordas em degradê e selos arredondados */

.tema-aurora .kicker {
  display: inline-flex;
  padding: 5px 12px;
  border-radius: 999px;
  color: var(--brand-blue);
  background: color-mix(in srgb, var(--brand-blue) 10%, #fff);
  font-size: 13.5px;
}
.tema-aurora .kicker-light { color: #fff; background: color-mix(in srgb, #fff 12%, transparent); }
.tema-aurora .section-head h2 { letter-spacing: -.03em; }
.tema-aurora .highlight-icon { color: var(--on-cta); background: linear-gradient(135deg, var(--brand-orange), color-mix(in srgb, var(--brand-orange) 40%, var(--brand-blue))); }
.tema-aurora .plan-head,
.tema-aurora .channels-dialog-head {
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--brand-orange) 40%, transparent), transparent 55%),
    linear-gradient(160deg, var(--brand-blue), var(--brand-navy));
}
.tema-aurora .plan-card-featured,
.tema-aurora .plan-card-featured:hover {
  border-color: transparent;
  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, var(--brand-blue), var(--brand-orange)) border-box;
}
.tema-aurora .plan-ribbon { background: linear-gradient(90deg, var(--brand-orange), color-mix(in srgb, var(--brand-orange) 50%, var(--brand-blue))); }
.tema-aurora .cta-band {
  border-top: 0;
  background:
    radial-gradient(520px 260px at 100% 100%, color-mix(in srgb, var(--brand-orange) 35%, transparent), transparent 70%),
    linear-gradient(110deg, var(--brand-blue), color-mix(in srgb, var(--brand-blue) 45%, var(--brand-navy)));
}
.tema-aurora .cta-band p { color: color-mix(in srgb, var(--brand-blue) 12%, #fff); }

/* Essencial: branco, grafite e verde, sem enfeites; linhas finas no lugar de sombras */

.tema-essencial .kicker { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.tema-essencial .section-head h2,
.tema-essencial .business-copy h2,
.tema-essencial .phone-copy h2,
.tema-essencial .steps-copy h2 { font-weight: 800; letter-spacing: -.03em; }
.tema-essencial .plan-tabs button[aria-selected="true"] { border-bottom-color: var(--ink); }
.tema-essencial .plan-card-featured { border: 2px solid var(--brand-blue); }
.tema-essencial .plan-ribbon { color: #fff; background: var(--brand-blue); }
.tema-essencial .plan-speed, .tema-essencial .plan-price strong { color: var(--ink); }
.tema-essencial .bento-tile:not(.bento-tile-dark) { background: #fff; }
.tema-essencial .btn-primary { box-shadow: none; }
.tema-essencial .cta-band { border-top: 0; background: var(--ink); }
.tema-essencial .cta-band::before { filter: grayscale(1); opacity: .25; }

/* Nacional: painel em degradê, cartões claros que sobem e abas em pílula */

.tema-nacional .kicker {
  display: inline-flex;
  padding: 5px 12px;
  border-radius: 999px;
  color: var(--brand-blue);
  background: color-mix(in srgb, var(--brand-blue) 10%, #fff);
  font-size: 13.5px;
}
.tema-nacional .kicker-light { color: #fff; background: color-mix(in srgb, #fff 14%, transparent); }
.tema-nacional .plan-tabs { padding: 5px; border: 0; border-radius: 999px; background: #fff; box-shadow: 0 6px 18px color-mix(in srgb, var(--brand-navy-deep) 8%, transparent); }
.tema-nacional .plan-tabs button { margin: 0; border: 0; border-radius: 999px; }
.tema-nacional .plan-tabs button[aria-selected="true"] { color: #fff; background: var(--brand-blue); }
.tema-nacional .plan-card { box-shadow: 0 10px 30px color-mix(in srgb, var(--brand-navy-deep) 7%, transparent); transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease; }
.tema-nacional .plan-card:hover { transform: translateY(-4px); }
.tema-nacional .plan-card-featured { border-color: var(--brand-blue); }
.tema-nacional .plan-ribbon { color: #fff; background: linear-gradient(90deg, var(--brand-blue), color-mix(in srgb, var(--brand-blue) 50%, var(--brand-orange))); }
.tema-nacional .plan-speed { color: var(--brand-blue); }
.tema-nacional .highlight-icon,
.tema-nacional .tile-icon:not(.tile-logo) { color: #fff; background: linear-gradient(135deg, var(--brand-blue), color-mix(in srgb, var(--brand-blue) 40%, var(--brand-orange))); }
.tema-nacional .cta-band {
  border-top: 0;
  background:
    radial-gradient(560px 280px at 100% 0%, color-mix(in srgb, var(--brand-orange) 30%, transparent), transparent 70%),
    linear-gradient(115deg, var(--brand-navy-deep), var(--brand-navy) 45%, var(--brand-blue));
}
.tema-nacional .cta-band p { color: color-mix(in srgb, var(--brand-blue) 12%, #fff); }

/* Brasa: laranja forte e botões amarelos */

.tema-brasa .kicker { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-navy); }
.tema-brasa .kicker-light { color: var(--brand-orange); }
.tema-brasa .hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--brand-orange);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
}
.tema-brasa .hero-kicker::before { content: ""; flex: none; width: 24px; height: 2px; background: currentColor; }
.tema-brasa.letras-grande .hero h1 { font-weight: 700; letter-spacing: -.03em; }
.tema-brasa.letras-grande :is(.section-head, .business-copy, .phone-copy, .steps-copy, .dedicated-copy, .rural-copy, .tv-copy) h2 { font-weight: 700; letter-spacing: -.025em; }
.tema-brasa .hero-highlight { color: var(--brand-orange); }
.tema-brasa :is(.hero-lead, .hero-cep-links a, .bento-tile-dark p, .business-cta p, .gov-cta p, .contact-card-primary :is(.contact-label, small), .secure-badge) { color: #fff; }
.tema-brasa .plan-head { background: linear-gradient(150deg, color-mix(in srgb, var(--brand-navy) 82%, var(--brand-orange)) 0%, var(--brand-navy) 55%, var(--brand-navy-deep) 100%); }
.tema-brasa .plan-ribbon { color: var(--on-cta); background: var(--brand-orange); }
.tema-brasa .plan-card-featured, .tema-brasa .phone-plan.is-featured, .tema-brasa .tv-plan.is-featured { border-color: var(--brand-navy); }
.tema-brasa .highlight-icon { color: var(--on-cta); background: var(--brand-orange); }
.tema-brasa .tile-icon:not(.tile-logo), .tema-brasa .feature-icon { color: #fff; background: var(--brand-navy); }
.tema-brasa .plan-tabs button[aria-selected="true"] { border-bottom-color: var(--brand-navy); }
.tema-brasa .cta-band { border-top: 0; background: linear-gradient(110deg, var(--brand-navy-deep), var(--brand-navy) 55%, color-mix(in srgb, var(--brand-navy) 60%, var(--brand-orange))); }

/* Celeste: céu claro, ícones redondos e planos em degradê azul */

.tema-celeste .plan-head { background: linear-gradient(150deg, color-mix(in srgb, var(--brand-blue) 70%, #fff) 0%, var(--brand-blue) 55%, var(--brand-navy) 120%); }
.tema-celeste .plan-category { color: color-mix(in srgb, var(--brand-blue) 8%, #fff); }
.tema-celeste .highlight-icon,
.tema-celeste .feature-icon,
.tema-celeste .tile-icon:not(.tile-logo) { border-radius: 50%; }
.tema-celeste .highlight-icon { color: #fff; background: var(--brand-blue); }
.tema-celeste .plan-tabs button[aria-selected="true"] { color: var(--brand-blue); border-bottom-color: var(--brand-blue); }
.tema-celeste .cta-band { border-top: 0; background: linear-gradient(110deg, var(--brand-blue), color-mix(in srgb, var(--brand-blue) 55%, var(--brand-navy))); }
.tema-celeste .cta-band p { color: color-mix(in srgb, var(--brand-blue) 10%, #fff); }

/* Urbano: preto, branco e verde-limão, cantos retos e contraste alto */

.tema-urbano .hero-kicker::before { width: 36px; height: 3px; background: var(--brand-orange); }
.tema-urbano .hero-highlight {
  padding: 0 .12em;
  color: var(--brand-navy);
  background: var(--brand-orange);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.tema-urbano .hero-cep { border: 2px solid var(--brand-navy); }
.tema-urbano .kicker { color: var(--brand-navy); }
.tema-urbano .kicker::after { content: ""; display: block; width: 32px; height: 3px; margin-top: 8px; background: var(--brand-orange); }
.tema-urbano .section-head-center .kicker::after { margin-inline: auto; }
.tema-urbano .kicker-light { color: var(--brand-orange); }
.tema-urbano .plan-card { border: 2px solid var(--brand-navy); }
.tema-urbano .plan-card:hover { box-shadow: 6px 6px 0 var(--brand-navy); }
.tema-urbano .plan-card-featured { border-color: var(--brand-navy); box-shadow: 6px 6px 0 var(--brand-orange); }
.tema-urbano .plan-ribbon { color: var(--brand-navy); background: var(--brand-orange); letter-spacing: .08em; text-transform: uppercase; }
.tema-urbano .plan-head { background: var(--brand-navy); }
.tema-urbano .plan-speed { color: var(--brand-orange); }
.tema-urbano .highlight-icon { color: var(--brand-navy); background: var(--brand-orange); }
.tema-urbano .tile-icon:not(.tile-logo), .tema-urbano .feature-icon { color: var(--brand-orange); background: var(--brand-navy); }
.tema-urbano .plan-tabs button[aria-selected="true"] { border-bottom-color: var(--brand-navy); }
.tema-urbano .cta-band { border-top: 0; background: var(--brand-navy); }
.tema-urbano .cta-band::before { filter: grayscale(1); opacity: .35; }
.tema-urbano .footer-main { border-top: 6px solid var(--brand-orange); }

/* Eclipse: modo escuro grafite, detalhes em ciano e títulos sem serifa */

.tema-eclipse .kicker,
.tema-eclipse .kicker-light { color: var(--accent-ink); font-size: 14.5px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.tema-eclipse .hero-kicker { padding: 0; border: 0; border-radius: 0; color: var(--brand-orange); background: none; font-size: 15px; font-weight: 600; }
.tema-eclipse .hero h1 { font-weight: 700; line-height: 1.04; letter-spacing: -.035em; }
.tema-eclipse .hero-highlight { color: var(--brand-orange); }
.tema-eclipse .hero-lead { color: #b9c1cc; }
.tema-eclipse .section-head h2,
.tema-eclipse .business-copy h2,
.tema-eclipse .phone-copy h2,
.tema-eclipse .steps-copy h2,
.tema-eclipse .dedicated-copy h2,
.tema-eclipse .rural-copy h2,
.tema-eclipse .tv-copy h2,
.tema-eclipse .cta-band h2 { font-weight: 700; letter-spacing: -.03em; }
.tema-eclipse .plan-speed,
.tema-eclipse .plan-price strong,
.tema-eclipse .phone-plan-price strong,
.tema-eclipse .tv-plan-price strong { font-weight: 700; letter-spacing: -.04em; }
.tema-eclipse .plan-ribbon { font-size: 13px; letter-spacing: 0; text-transform: none; }
.tema-eclipse .plan-apps small,
.tema-eclipse .phone-port .phone-port-label,
.tema-eclipse .streaming-offer dt,
.tema-eclipse .extra-card .extra-kind { font-size: 13px; letter-spacing: 0; text-transform: none; }
.tema-eclipse .tv-status::after { display: none; }
.tema-eclipse .site-header { border-bottom: 1px solid rgba(255, 255, 255, .07); }
.tema-eclipse .cta-band { border-top: 1px solid rgba(255, 255, 255, .08); background: var(--brand-navy); }
.tema-eclipse .cta-band::before { opacity: .35; }
.tema-eclipse .footer-main { border-top: 1px solid rgba(255, 255, 255, .07); }

/* Carrinho: cantos seguem o modelo e a faixa das etapas muda em cada um */

.page-checkout .step-card,
.page-checkout .step-head-plain,
.page-checkout .summary-intro,
.page-checkout .summary-card { border-radius: max(8px, var(--radius)); }

.tema-pulsar .stepper-dot { border-radius: 14px; }
.tema-pulsar .checkout-band::after { background-image: linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px); }
.tema-pulsar .step-icon { color: var(--on-cta); background: var(--brand-orange); box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-orange) 30%, transparent); }

.tema-prisma .stepper::after { background: linear-gradient(90deg, var(--brand-blue), var(--brand-orange)); }
.tema-prisma .step-icon { background: linear-gradient(135deg, var(--brand-blue), var(--brand-orange)); }

.tema-campo .checkout-band { background: var(--brand-navy); border-bottom: 4px solid var(--brand-orange); }
.tema-campo .checkout-band::after { display: none; }
.tema-campo .step-icon { color: var(--brand-orange); background: var(--brand-navy); box-shadow: none; }

.tema-aurora .checkout-band {
  background:
    radial-gradient(700px 300px at 10% -30%, color-mix(in srgb, var(--brand-blue) 70%, transparent), transparent 70%),
    radial-gradient(600px 280px at 95% 130%, color-mix(in srgb, var(--brand-orange) 30%, transparent), transparent 70%),
    var(--brand-navy-deep);
}
.tema-aurora .checkout-band::after { background-image: radial-gradient(rgba(255, 255, 255, .1) 1px, transparent 1px); background-size: 22px 22px; }
.tema-aurora .step-icon { color: var(--on-cta); background: linear-gradient(135deg, var(--brand-orange), color-mix(in srgb, var(--brand-orange) 40%, var(--brand-blue))); }

/* Litoral e Essencial: faixa das etapas clara */

.tema-litoral .checkout-band,
.tema-essencial .checkout-band { color: var(--ink); background: linear-gradient(180deg, color-mix(in srgb, var(--brand-blue) 12%, #fff), var(--page)); }
.tema-essencial .checkout-band { background: #fff; border-bottom: 1px solid var(--line); }
.tema-litoral .checkout-band::after,
.tema-essencial .checkout-band::after { display: none; }
.tema-litoral .stepper::before,
.tema-essencial .stepper::before { background: color-mix(in srgb, var(--brand-navy) 14%, transparent); }
.tema-litoral .stepper li,
.tema-essencial .stepper li,
.tema-litoral .stepper em small,
.tema-essencial .stepper em small { color: var(--muted); }
.tema-litoral .stepper-dot,
.tema-essencial .stepper-dot { color: var(--brand-blue); border-color: color-mix(in srgb, var(--brand-navy) 14%, #fff); background: #fff; }
.tema-litoral .stepper li.is-active,
.tema-essencial .stepper li.is-active,
.tema-litoral .stepper li.is-done,
.tema-essencial .stepper li.is-done { color: var(--ink); }
.tema-litoral .stepper li.is-done .stepper-dot,
.tema-essencial .stepper li.is-done .stepper-dot { color: var(--accent-ink); border-color: var(--brand-orange); background: #fff; }
.tema-litoral .stepper li.is-done:hover .stepper-dot,
.tema-essencial .stepper li.is-done:hover .stepper-dot { background: color-mix(in srgb, var(--brand-orange) 10%, #fff); }
.tema-essencial .step-card,
.tema-essencial .step-head-plain,
.tema-essencial .summary-intro,
.tema-essencial .summary-card { box-shadow: none; }
.tema-essencial .checkout-layout { margin-top: -48px; }
.tema-essencial .step-icon { color: var(--brand-blue); background: transparent; border: 1px solid var(--line); box-shadow: none; }
.tema-litoral .step-icon { border-radius: 50%; }

.tema-nacional .checkout-band { background: linear-gradient(115deg, var(--brand-navy-deep), var(--brand-navy) 45%, var(--brand-blue)); }
.tema-nacional .step-icon { color: #fff; background: linear-gradient(135deg, var(--brand-blue), color-mix(in srgb, var(--brand-blue) 40%, var(--brand-orange))); }
.tema-brasa .checkout-band { background: linear-gradient(110deg, var(--brand-navy-deep), var(--brand-navy) 60%, color-mix(in srgb, var(--brand-navy) 60%, var(--brand-orange))); }
.tema-brasa .step-icon { color: var(--on-cta); background: var(--brand-orange); }
.tema-celeste .checkout-band { background: linear-gradient(110deg, var(--brand-blue), color-mix(in srgb, var(--brand-blue) 50%, var(--brand-navy))); }
.tema-celeste .step-icon { border-radius: 50%; }
.tema-urbano .checkout-band { background: var(--brand-navy); border-bottom: 6px solid var(--brand-orange); }
.tema-urbano .checkout-band::after { display: none; }
.tema-urbano .step-icon { color: var(--brand-navy); background: var(--brand-orange); box-shadow: none; }
.tema-eclipse .checkout-band { background: var(--brand-navy); border-bottom: 1px solid color-mix(in srgb, var(--brand-orange) 35%, transparent); }
.tema-eclipse .checkout-band::after { display: none; }
.tema-eclipse .step-icon { color: var(--brand-blue); background: color-mix(in srgb, var(--brand-blue) 10%, #fff); box-shadow: none; }
