/* ==========================================================================
   Home — fiel ao protótipo Figma
   ========================================================================== */

/* ---------- HERO (banner) ---------- */
.home-hero { padding-top: 0; }
.home-hero__band {
  position: relative;                 /* overflow visível: homem/estrelas saem do banner */
  width: min(1820px, 96vw); margin-inline: auto;
  aspect-ratio: 1858 / 480;
  border-radius: var(--in-radius-lg);
  background: var(--in-red);          /* fallback; cada slide pinta o próprio fundo */
  container-type: inline-size;        /* unidades cqw escalam com a largura do banner */
}

/* Carrossel — slides com fade */
.home-hero__slides { position: absolute; inset: 0; }
.home-hero__slide { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .5s ease; border-radius: var(--in-radius-lg); }
.home-hero__slide.is-active { opacity: 1; pointer-events: auto; }

/* Fundo por slide (completo e simples) — sobrescrito por style inline com o gradiente/cor do banner */
.home-hero__slide--completo, .home-hero__slide--simple { background: var(--in-red); }
.home-hero__slide--completo::before, .home-hero__slide--simple::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  background: radial-gradient(60% 120% at 30% 40%, rgba(255,255,255,.06), transparent 60%);
  pointer-events: none;
}

/* Layout imagem estática (upload desktop/mobile, banner inteiro clicável) */
.home-hero__slide--estatico { overflow: hidden; }
.hero-static { display: block; width: 100%; height: 100%; }
.hero-static picture, .hero-static img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Imagem com elemento vazando para cima: a imagem preenche a largura, fica
   ancorada à base e transborda apenas para cima (PNG transparente). Sem
   encolher nem criar padding lateral. */
.home-hero__slide--estatico.has-vazar { overflow: visible; }
.hero-static--over { position: relative; display: block; overflow: visible; }
.hero-static--over picture { position: absolute; left: 0; right: 0; bottom: 0; display: block; height: auto; overflow: visible; }
.hero-static--over img { display: block; width: 100%; height: auto; object-fit: contain; }

/* Estrelas (vazam do banner) */
.hero-star { position: absolute; z-index: 4; pointer-events: none; }
.hero-star--1 { left: -2.5%; top: -11%; width: 8%; }
.hero-star--2 { right: -1.5%; top: 66%; width: 6.8%; }

/* Torcedor (recorte, vaza no topo, alinhado à base) */
.home-hero__photo { position: absolute; left: 16.5%; bottom: 0; width: 31.5%; height: auto; z-index: 2; }

/* Card de oferta (rosado) — 22.1% largura, left 47.3%, top 15.8% (Figma) */
.hero-offer {
  position: absolute; left: 47.3%; top: 15.8%; width: 22.1%; z-index: 3;
  display: flex; flex-direction: column; align-items: flex-start; gap: .8cqw;
  background: linear-gradient(120deg, #fff 62%, #FDE3E6 100%);
  border-radius: 1.4cqw; padding: 1.3cqw 1.6cqw; box-shadow: 0 1cqw 3cqw rgba(120,0,10,.18);
}
.hero-offer__row { display: flex; align-items: center; gap: .9cqw; }
.hero-offer__flash { flex-shrink: 0; width: 2.8cqw; height: 2.8cqw; border-radius: .9cqw; background: var(--in-red-50); color: var(--in-red); display: grid; place-items: center; }
.hero-offer__flash svg { width: 55%; height: 55%; }
.hero-offer__speed { color: var(--in-red); font-weight: 500; font-size: 1.3cqw; line-height: 1; white-space: nowrap; }
.hero-offer__speed b { font-weight: 700; font-size: 2.1cqw; }
.hero-offer__price { color: var(--in-ink); font-weight: 700; font-size: 2.1cqw; line-height: 1; }
.hero-offer__price small { font-weight: 500; color: var(--in-muted); font-size: .9cqw; }
.hero-offer__cta { font-size: 1.05cqw; padding: .75cqw 2cqw; box-shadow: 0 .6cqw 1.6cqw rgba(202,10,34,.35); }

/* Badge Bora Brasil (sobrepõe ~10% direitos do card) — left 59.6%, top 2.9%, w 20.1% (Figma) */
.home-hero__badge { position: absolute; left: 59.6%; top: 2.9%; width: 20.1%; z-index: 4; filter: drop-shadow(0 .6cqw 1.4cqw rgba(0,0,0,.25)); }

/* Tagline (centro, abaixo do card) — left 49%, top 63% (Figma) */
.home-hero__tagline { position: absolute; left: 49%; top: 68.5%; z-index: 2; margin: 0; color: #fff; font-weight: 500; font-size: 1.94cqw; line-height: 1.06; }
.home-hero__tagline strong { font-weight: 700; }

/* Setas */
.hero-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 3cqw; height: 3cqw; min-width: 34px; min-height: 34px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.8); background: transparent; color: #fff; font-size: 1.8cqw; line-height: 1; display: grid; place-items: center; }
.hero-arrow:hover { background: rgba(255,255,255,.15); }
.hero-arrow--prev { left: 1.5%; } .hero-arrow--next { right: 1.5%; }

/* Layout simples (texto + oferta + imagem lateral opcional) */
.home-hero__slide--simple { display: flex; align-items: center; justify-content: space-between; }
/* Conteúdo alinhado ao grid central (--in-container), independente da largura da faixa. */
.hero-simple { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; padding-left: max(var(--in-gutter), calc((100cqw - var(--in-container)) / 2 + var(--in-gutter))); padding-right: clamp(24px, 4cqw, 64px); color: #fff; max-width: 62%; }
.home-hero__slide--simple.has-media .hero-simple { max-width: 58%; }
.hero-simple__eyebrow { color: #fff; opacity: .9; }
.hero-simple__title { font-size: clamp(1.8rem, 5cqw, 3.4rem); font-weight: 500; line-height: 1.12; margin: 12px 0 22px; color: #fff; }
.hero-simple__title strong { font-weight: 700; color: var(--in-yellow); }
.hero-simple__offer { display: inline-flex; align-items: baseline; gap: .3em; flex-wrap: wrap; margin-bottom: 22px; }
.hero-simple__price { color: #fff; font-size: 1.5cqw; display: inline-flex; align-items: baseline; gap: .3em; }
.hero-simple__price small { font-size: 1cqw; opacity: .85; }
.hero-simple__cta.in-btn--primary { align-self: flex-start; background: #fff; color: var(--in-red); }
.hero-simple__cta.in-btn--primary:hover { background: var(--in-yellow); color: var(--in-ink); }
/* Imagem lateral: centralizada verticalmente, à direita, com cantos arredondados */
.hero-simple__media { position: absolute; right: clamp(16px, 3cqw, 40px); top: 0; bottom: 0; width: 40%; display: flex; align-items: center; justify-content: flex-end; z-index: 1; pointer-events: none; }
.hero-simple__media img { max-height: 82%; max-width: 100%; width: auto; height: auto; object-fit: cover; object-position: center; border-radius: var(--in-radius-lg); }

/* Dots */
.home-hero__dots { display: flex; gap: 8px; justify-content: center; margin-top: 18px; }
.home-hero__dots button { width: 9px; height: 9px; padding: 0; border: none; border-radius: 50%; background: var(--in-red-100); cursor: pointer; transition: .2s ease; }
.home-hero__dots button.is-active { background: var(--in-red); width: 24px; border-radius: var(--in-radius-pill); }

/* Hero responsivo: abaixo de 720px vira layout empilhado simples */
@media (max-width: 720px) {
  /* A banda acompanha a altura do slide ativo (o inativo fica sobreposto p/ o fade). */
  .home-hero__band { aspect-ratio: auto; min-height: 0; display: block; overflow: hidden; }
  .home-hero__slides { position: relative; width: 100%; }
  .home-hero__slide.is-active { position: relative; }
  /* Completo/simples mantêm uma altura mínima confortável; imagem huga o conteúdo. */
  .home-hero__slide--completo.is-active, .home-hero__slide--simple.is-active { min-height: 470px; }
  /* Slides são absolutos (cobrem o padding da banda), então o padding fica neles. */
  .home-hero__slide--completo { display: flex; flex-direction: column; justify-content: center; padding: 28px 24px; }
  .home-hero__photo { position: absolute; width: 62%; left: auto; right: -10%; bottom: 0; opacity: .32; z-index: 0; }
  .hero-offer { position: relative; left: auto; top: auto; z-index: 2; width: auto; max-width: 280px; margin-bottom: 20px; gap: 10px; padding: 16px 18px; border-radius: 16px; }
  .hero-offer__flash { width: 36px; height: 36px; border-radius: 10px; }
  .hero-offer__speed { font-size: 1.05rem; } .hero-offer__speed b { font-size: 1.7rem; }
  .hero-offer__price { font-size: 1.5rem; } .hero-offer__price small { font-size: .72rem; }
  .hero-offer__cta { font-size: .88rem; padding: .7em 1.6em; }
  .home-hero__badge { position: relative; left: auto; top: auto; z-index: 2; width: 150px; margin-bottom: 18px; filter: none; }
  .home-hero__tagline { position: relative; z-index: 2; left: auto; top: auto; font-size: 1.6rem; }
  .hero-star, .hero-arrow { display: none; }
  /* Simples no mobile: texto ocupa tudo, imagem lateral escondida */
  .hero-simple { max-width: 100%; padding-inline: 24px; }
  .home-hero__slide--simple.has-media .hero-simple { max-width: 100%; }
  .hero-simple__media { display: none; }
  .hero-simple__price { font-size: 1.3rem; } .hero-simple__price small { font-size: .8rem; }
  /* Imagem estática: mostra a imagem inteira (reduz proporcionalmente, sem cortar). */
  .home-hero__slide--estatico { border-radius: var(--in-radius-lg); overflow: hidden; }
  .home-hero__slide--estatico .hero-static,
  .home-hero__slide--estatico .hero-static picture { height: auto; }
  .home-hero__slide--estatico .hero-static img { height: auto; object-fit: contain; }
  /* Vazar para cima também no mobile: imagem ancora à base e transborda só no topo. */
  .home-hero__slide--estatico.has-vazar { overflow: visible; }
  .hero-static--over picture { position: static; }
}

/* ---------- PLANOS ---------- */
.plans__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 8px; }
.plans__title { color: var(--in-red); font-size: clamp(1.5rem, 2.4vw, 2rem); margin: 10px 0 8px; }
.plans__sub { max-width: 620px; color: var(--in-body); }
.plans__city { text-align: right; flex-shrink: 0; }
.plans__city span { display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--in-muted); }
.plans__city span svg { color: var(--in-red); }
.plans__city-select { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; background: none; border: none; padding: 0; color: var(--in-ink); font-size: 1rem; font-weight: 700; font-family: inherit; cursor: pointer; }
.plans__city-select svg { color: var(--in-muted); }
.plans__tabs { display: flex; flex-wrap: nowrap; gap: 28px; border-bottom: 1px solid var(--in-border); margin: 24px 0 36px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.plans__tabs::-webkit-scrollbar { display: none; }
.plans__tab { flex: 0 0 auto; white-space: nowrap; background: none; border: none; padding: 0 0 14px; font-size: 1.05rem; color: var(--in-muted); font-weight: 500; border-bottom: 3px solid transparent; margin-bottom: -1px; cursor: pointer; }
.plans__tab.is-active { color: var(--in-ink); font-weight: 700; border-color: var(--in-ink); }

/* Carrossel de planos — full-bleed, scroll fluido */
.plans__carousel { position: relative; margin-top: 36px; }
.plans__track {
  --plans-inset: calc(var(--in-gutter) + max(0px, (100vw - 1250px) / 2));
  display: none; gap: 32px; align-items: flex-start;
  overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding-block: 6px;
  /* 1º card alinhado ao grid de 1250; vaza full-width à direita */
  padding-left: var(--plans-inset);
  padding-right: clamp(16px, 4vw, 72px);
  scroll-padding-left: var(--plans-inset);
  scrollbar-width: none; -ms-overflow-style: none;
}
.plans__track.is-active { display: flex; }
.plans__track::-webkit-scrollbar { display: none; }
.plans__nav {
  position: absolute; top: 42%; transform: translateY(-50%); z-index: 5;
  width: 56px; height: 56px; border: none; border-radius: 50%;
  background: #7B7B7B; color: #fff; line-height: 1;
  display: grid; place-items: center; cursor: pointer; box-shadow: var(--in-shadow-soft);
  transition: background .18s ease;
}
.plans__nav:hover { background: var(--in-ink); }
.plans__nav .chev { width: 12px; height: 18px; }
.plans__nav--prev { left: clamp(10px, 2.2vw, 36px); }
.plans__nav--next { right: clamp(10px, 2.2vw, 36px); }

.plan-card { flex: 0 0 clamp(288px, 30vw, 500px); scroll-snap-align: start; border: 1px solid var(--in-border); border-radius: var(--in-radius-lg); background: #fff; overflow: hidden; container-type: inline-size; }
.plan-card--featured { border: 2px solid var(--in-red); box-shadow: var(--in-shadow-card); }
.plan-card__top { display: flex; justify-content: space-between; align-items: center; padding: 16px 22px; background: var(--in-bg-gray); }
.plan-card--featured .plan-card__top { background: var(--in-red); }
.plan-card__badge { font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--in-ink); }
.plan-card--featured .plan-card__badge { color: #fff; }
.plan-card__discount { background: var(--in-red); color: #fff; font-size: .72rem; font-weight: 700; padding: 5px 12px; border-radius: var(--in-radius-pill); white-space: nowrap; }
.plan-card--featured .plan-card__discount { background: #fff; color: var(--in-red); }
.plan-card__body { padding: 26px 22px; }
.plan-card__speed { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
@container (min-width: 360px) { .plan-card__speed { flex-wrap: nowrap; } }
.plan-card__flash { flex-shrink: 0; background: var(--in-red-50); color: var(--in-red); width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; }
.plan-card__flash svg { width: 22px; height: 22px; }
.plan-card__speed strong { color: var(--in-red); font-size: clamp(40px, 18cqw, 66px); font-weight: 700; line-height: .9; letter-spacing: -.02em; }
.plan-card__speed em { color: var(--in-red); font-style: normal; font-weight: 700; font-size: clamp(14px, 5.5cqw, 22px); }
.plan-card__speed small { margin-left: auto; color: var(--in-muted); font-size: .8rem; line-height: 1.4; text-align: left; display: flex; flex-direction: column; }
.plan-card__speed small span { white-space: nowrap; }
/* Telefonia (sem velocidade): ícone + Título superior no lugar da velocidade. */
.plan-card__headline { display: flex; align-items: center; gap: 12px; }
.plan-card__headline-title { color: var(--in-red); font-size: clamp(20px, 8cqw, 28px); font-weight: 700; line-height: 1.1; letter-spacing: -.01em; }
.plan-card__price { margin: 20px 0 0; padding-top: 20px; border-top: 1px solid var(--in-border-soft); }
.plan-card__from { display: block; font-size: 1rem; color: var(--in-muted); margin-bottom: 2px; }
.plan-card__from s { color: var(--in-muted); }
.plan-card__fixed { display: block; font-size: 1.15rem; color: var(--in-ink); font-weight: 500; margin-bottom: 2px; }
.plan-card__value { color: var(--in-ink); font-size: clamp(22px, 9cqw, 34px); font-weight: 400; display: inline-flex; align-items: baseline; }
.plan-card__value strong { font-size: clamp(40px, 18cqw, 66px); font-weight: 700; letter-spacing: -.02em; }
.plan-card__value small { font-size: .9rem; color: var(--in-muted); font-weight: 500; }
.plan-card__note { display: inline-block; background: var(--in-yellow-50); color: #7a5a00; font-size: .8rem; padding: 6px 12px; border-radius: var(--in-radius-pill); margin: 6px 0 16px; }
.plan-card__features { display: grid; gap: 10px; margin: 0 0 18px; }
.plan-card__features li { display: flex; align-items: center; gap: 8px; font-size: .92rem; color: var(--in-body); }
.in-check { flex-shrink: 0; }
.plan-card__streaming { border-top: 1px solid var(--in-border-soft); padding-top: 16px; margin-bottom: 16px; }
.plan-card__streaming h4, .plan-card__bonus h4 { color: var(--in-red); font-size: .95rem; margin: 0 0 12px; }
/* Tira horizontal de logos. Quando os logos estouram a largura, o JS clona o
   conjunto e aplica .is-marquee para um deslize contínuo e suave em loop. */
.plan-card__logos { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; overflow-x: auto; background: var(--in-red-50); padding: 12px 14px; border-radius: var(--in-radius); scrollbar-width: none; -ms-overflow-style: none; }
.plan-card__logos::-webkit-scrollbar { display: none; }
.plan-card__logos.is-marquee { overflow: hidden; }
.plan-card__logos-track { display: flex; align-items: center; gap: 8px; width: max-content; will-change: transform; animation: plan-logos-marquee var(--marquee-dur, 20s) linear infinite; }
.plan-card__logos.is-marquee:hover .plan-card__logos-track { animation-play-state: paused; }
@keyframes plan-logos-marquee { to { transform: translateX(calc(-1 * var(--marquee-w, 0px))); } }
@media (prefers-reduced-motion: reduce) { .plan-card__logos-track { animation: none; } }
.plan-card__logo { flex: 0 0 60px; display: grid; place-items: center; }
.plan-card__logo img { display: block; width: 60px; height: 60px; object-fit: contain; border-radius: 10px; }
.plan-card__logo.plan-card__app-name { font-size: .78rem; color: var(--in-ink); text-align: center; }
/* "Você também leva" — item adicional do combo, com mais destaque que os bônus */
.plan-card__leva { border-top: 1px solid var(--in-border-soft); padding-top: 16px; margin-bottom: 16px; }
.plan-card__leva h4 { color: var(--in-red); font-size: 1.05rem; font-weight: 800; margin: 0 0 12px; }
.plan-card__leva-item { display: flex; align-items: center; gap: 14px; background: var(--in-red-50); padding: 12px 14px; border-radius: var(--in-radius); }
.plan-card__leva-item + .plan-card__leva-item { margin-top: 10px; }
.plan-card__leva-logo { flex-shrink: 0; width: 52px; height: 52px; display: grid; place-items: center; }
.plan-card__leva-logo img { width: 52px; height: 52px; object-fit: contain; border-radius: 10px; }
.leva-ico { width: 52px; height: 52px; border-radius: 10px; display: grid; place-items: center; font-size: 1rem; }
.plan-card__leva-name { font-size: .98rem; font-weight: 700; color: var(--in-ink); line-height: 1.25; }
.plan-card__bonus { border-top: 1px solid var(--in-border-soft); padding-top: 16px; }
.plan-card__bonus-item { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: .82rem; color: var(--in-body); }
.bonus-ico { flex-shrink: 0; width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; font-size: .6rem; font-weight: 800; }
.bonus-ico--bit { background: #111; color: #fff; }
.bonus-ico--tag { background: var(--in-red-50); }
.plan-card__bonus-logo { flex-shrink: 0; width: 34px; height: 34px; display: grid; place-items: center; }
.plan-card__bonus-logo img { width: 34px; height: 34px; object-fit: contain; border-radius: 8px; }
.plan-card__cta { width: 100%; justify-content: center; margin-top: 8px; }
.plan-card__footnote { font-size: .72rem; color: var(--in-muted); text-align: center; margin: 12px 0 0; }
.plans__disclaimer { font-size: .72rem; color: var(--in-muted); text-align: center; max-width: 900px; margin: 40px auto 0; line-height: 1.6; }
/* Rodapé legal por aba/segmento: só o da aba ativa aparece. */
.plans__disclaimer[data-plans-disclaimer] { display: none; }
.plans__disclaimer[data-plans-disclaimer].is-active { display: block; }

/* ---------- DEPOIMENTOS ---------- */
.testimonials { background: var(--in-bg-gray); }
.testimonials__inner { display: grid; grid-template-columns: 1fr 1.3fr; gap: 48px; align-items: center; }
.testimonials__head .in-eyebrow { color: var(--in-muted); }
.testimonials__head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--in-red); margin-top: 8px; }
.testimonials__grid { display: grid; }                 /* container de páginas empilhadas */
.testimonials__page {
  grid-area: 1 / 1;                                    /* todas as páginas na mesma célula */
  display: grid; grid-template-columns: 1fr 1fr; gap: 26px 20px;
  opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s ease;
}
.testimonials__page.is-active { opacity: 1; visibility: visible; }
.testimonial { margin: 0; }
.testimonial__row { display: flex; align-items: flex-start; gap: 12px; }
.testimonial__avatar { width: 44px; height: 44px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.testimonial__bubble { flex: 1; min-width: 0; background: #fff; border-radius: 14px; padding: 14px 16px; box-shadow: var(--in-shadow-soft); }
.testimonial__stars { color: var(--in-yellow); letter-spacing: 2px; font-size: .85rem; margin-bottom: 6px; }
.testimonial__bubble blockquote { margin: 0; font-size: .9rem; color: var(--in-body); line-height: 1.4; }
.testimonial__meta { margin-top: 12px; margin-left: 56px; }  /* alinha ao balão (avatar 44 + gap 12) */
.testimonial__meta strong { display: block; color: var(--in-ink); font-size: .9rem; }
.testimonial__meta span { color: var(--in-muted); font-size: .82rem; }

/* ---------- COBERTURA ---------- */
.coverage__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.coverage__text h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--in-red); margin: 10px 0 14px; }
.coverage__cta { display: flex; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.coverage__img { border-radius: var(--in-radius-lg); width: 100%; object-fit: cover; box-shadow: var(--in-shadow-card); }

/* ---------- APP ---------- */
.app { background: var(--in-bg-gray); }
.app__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.app__text h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--in-red); margin: 10px 0 14px; }
.app__list { display: grid; gap: 12px; margin: 22px 0; }
.app__list li { display: flex; align-items: center; gap: 10px; font-size: 1rem; color: var(--in-body); }
.app__stores { display: flex; gap: 14px; flex-wrap: wrap; }
/* Imagem de destaque do app (substitui o mockup) */
.app__media { display: flex; justify-content: center; align-items: center; }
.app__media img { max-width: 100%; height: auto; border-radius: var(--in-radius-lg, 24px); }
.app__media--placeholder { min-height: 340px; width: 100%; border: 2px dashed var(--in-line, #d7d7dc); border-radius: var(--in-radius-lg, 24px); color: var(--in-muted); text-align: center; display: grid; place-items: center; padding: 20px; }
/* Cidades em destaque (Cobertura) */
.coverage__cities { margin-top: 22px; }
.coverage__cities-label { display: block; color: var(--in-muted); font-size: .9rem; margin-bottom: 10px; }
.coverage__cities-list { display: flex; flex-wrap: wrap; gap: 10px; }
.coverage__city { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: var(--in-radius-pill, 999px); background: #eef4e6; color: var(--in-green, #65922D); font-size: .9rem; font-weight: 600; }
.coverage__city::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--in-green, #65922D); flex: 0 0 auto; }
a.coverage__city { text-decoration: none; transition: background-color .18s ease, color .18s ease; }
a.coverage__city:hover { background: var(--in-green, #65922D); color: #fff; }
a.coverage__city:hover::before { background: #fff; }
.app__phones { display: flex; justify-content: center; align-items: flex-start; gap: 18px; }
.phone { position: relative; width: 210px; padding: 14px 14px 20px; border-radius: 30px; background: linear-gradient(165deg, #E11228 0%, var(--in-red) 40%, #8E0518 100%); color: #fff; box-shadow: 0 24px 50px rgba(202,10,34,.30); }
.phone:nth-child(2) { margin-top: 34px; }
.phone__status { display: flex; justify-content: space-between; align-items: center; font-size: .68rem; opacity: .9; padding: 2px 6px 10px; }
.phone__status-ico { letter-spacing: -1px; font-size: .6rem; }
.phone__brand { text-align: center; display: flex; flex-direction: column; align-items: center; margin-bottom: 16px; }
.phone__wifi { width: 46px; height: 46px; border-radius: 12px; background: rgba(255,255,255,.18); display: grid; place-items: center; margin-bottom: 8px; }
.phone__brand strong { font-weight: 700; font-size: 1.05rem; }
.phone__brand small { font-weight: 400; font-size: .72rem; opacity: .8; }
.phone__speedcard { background: rgba(255,255,255,.12); border-radius: 14px; padding: 14px 16px; margin-bottom: 14px; }
.phone__speedcard-label { font-size: .68rem; opacity: .8; }
.phone__speed { font-size: 1.7rem; font-weight: 700; margin: 4px 0 10px; }
.phone__speed span { font-size: .78rem; font-weight: 500; opacity: .85; }
.phone__bar { height: 5px; border-radius: 3px; background: rgba(255,255,255,.25); overflow: hidden; }
.phone__bar i { display: block; width: 62%; height: 100%; background: #fff; border-radius: 3px; }
.phone__menu { display: grid; gap: 9px; }
.phone__menu li { display: flex; justify-content: space-between; align-items: center; background: rgba(255,255,255,.12); border-radius: 10px; padding: 12px 14px; font-size: .8rem; }
.phone__menu li span { opacity: .7; }

/* ---------- STREAMING ---------- */
.streaming { padding-block: clamp(30px, 4vw, 50px); }
.streaming__band { width: min(1820px, 96vw); margin-inline: auto; overflow: hidden; border-radius: var(--in-radius-lg); background-size: cover; background-position: right center; padding-block: clamp(40px, 5vw, 64px); }
.streaming__band h2 { color: var(--in-red); font-size: clamp(1.5rem, 2.4vw, 2rem); margin: 10px 0 12px; }
.streaming__band p { max-width: 460px; color: var(--in-body); }
.streaming__foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.streaming__compat { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--in-body); background: #fff; border-radius: var(--in-radius-pill); padding: 12px 20px; box-shadow: var(--in-shadow-soft); }
.streaming__logos { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.streaming__logo { display: grid; place-items: center; background: #fff; border-radius: 12px; width: 70px; height: 48px; box-shadow: var(--in-shadow-soft); }
.streaming__logo img { max-height: 24px; max-width: 52px; width: auto; border-radius: 6px; }

/* ---------- COMBOS ---------- */
.combos__inner { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: center; }
.combos__text h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--in-ink); margin: 10px 0 22px; }
.combos__text h2 u { color: var(--in-red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.combos__cta { display: flex; gap: 14px; flex-wrap: wrap; }
.combos__cards { display: flex; align-items: flex-start; justify-content: center; gap: 12px; }
.combos__plus { align-self: center; flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--in-bg-gray); color: var(--in-muted); font-size: 1.2rem; font-weight: 500; display: grid; place-items: center; }
.combo-card { margin: 0; width: 32%; }
.combo-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--in-radius); }
.combo-card figcaption { padding: 14px 2px 0; }
.combo-card__title { display: inline-block; color: var(--in-ink); font-size: 1.05rem; margin-bottom: 12px; padding-bottom: 6px; border-bottom: 3px solid var(--in-red); }
.combo-card__title--red { border-color: var(--in-red); }
.combo-card__title--orange { border-color: var(--in-orange); }
.combo-card__title--green { border-color: var(--in-green); }
.combo-card figcaption span { display: block; font-size: .82rem; color: var(--in-muted); line-height: 1.5; }

/* ---------- BLOG ---------- */
.home-blog__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; }
.home-blog__head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--in-ink); margin: 0; }
.home-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.blog-card { background: #fff; border: 1px solid var(--in-border-soft); border-radius: var(--in-radius); overflow: hidden; box-shadow: var(--in-shadow-soft); }
.blog-card__thumb { display: block; }
.blog-card__thumb img { width: 100%; height: 200px; object-fit: cover; }
.blog-card__body { padding: 22px; }
.blog-card__cat { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--in-muted); }
.blog-card__body h3 { font-size: 1.05rem; margin: 10px 0 12px; line-height: 1.35; }
.blog-card__body h3 a { color: var(--in-ink); }
.blog-card__body p { font-size: .84rem; color: var(--in-body); margin-bottom: 16px; line-height: 1.6; }
.blog-card__more { color: var(--in-red); font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 960px) {
  .home-blog__grid { grid-template-columns: 1fr; }
  .testimonials__inner, .coverage__inner, .app__inner, .combos__inner { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .plans__head { flex-direction: column; } .plans__city { text-align: left; }
  .plans__tabs { gap: 18px; margin: 16px 0 24px; }
  .plans__tab { font-size: .95rem; padding-bottom: 10px; }
  .testimonials__page { grid-template-columns: 1fr; }
  .combos__cards { flex-direction: column; } .combo-card { width: 100%; }
  .app__phones .phone:nth-child(2) { display: none; }
}

/* Títulos de seção em Medium (não bold) — conforme Figma */
.plans__title,
.testimonials__head h2,
.coverage__text h2,
.app__text h2,
.streaming__band h2,
.combos__text h2,
.home-blog__head h2 { font-weight: 500; }
