/*
 * INTERPRO — Premium UI layer
 * Visual-only overrides. Business rules, PHP/JS behavior and element IDs are preserved.
 */

:root {
  --ip-ink: #07111f;
  --ip-navy: #091a2d;
  --ip-navy-2: #0d2742;
  --ip-blue: #1677ff;
  --ip-blue-2: #0b5ed7;
  --ip-cyan: #2cc8ff;
  --ip-teal: #10b7a6;
  --ip-green: #22c55e;
  --ip-white: #ffffff;
  --ip-surface: #ffffff;
  --ip-surface-soft: #f5f8fc;
  --ip-text: #10233b;
  --ip-muted: #64758b;
  --ip-border: rgba(20, 52, 86, .11);
  --ip-shadow-sm: 0 10px 30px rgba(6, 24, 44, .08);
  --ip-shadow-md: 0 20px 54px rgba(6, 24, 44, .13);
  --ip-shadow-lg: 0 34px 90px rgba(2, 17, 36, .22);
  --ip-radius-sm: 14px;
  --ip-radius-md: 20px;
  --ip-radius-lg: 28px;
  --ip-ease: cubic-bezier(.2,.7,.2,1);
}

html { scroll-padding-top: 88px; }

body.page-home,
body.page-tv,
body.page-combos,
body.page-apps,
body.page-policy {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* =========================================================
   Shared navigation
   ========================================================= */
body.page-home .navbar,
body.page-tv .navbar,
body.page-combos .navbar,
body.page-apps .navbar {
  min-height: 76px;
  padding: 9px 0;
  background: rgba(5, 18, 34, .88) !important;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 14px 40px rgba(0,0,0,.16) !important;
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
}

body.page-home .navbar .container,
body.page-tv .navbar .container,
body.page-combos .navbar .container,
body.page-apps .navbar .container {
  gap: 20px;
}

body.page-home .navbar-brand,
body.page-tv .navbar-brand,
body.page-combos .navbar-brand,
body.page-apps .navbar-brand {
  position: relative;
  padding-left: 14px;
  color: #fff !important;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.08;
}

body.page-home .navbar-brand::before,
body.page-tv .navbar-brand::before,
body.page-combos .navbar-brand::before,
body.page-apps .navbar-brand::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 4px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--ip-cyan), var(--ip-blue));
  box-shadow: 0 0 20px rgba(44,200,255,.35);
}

body.page-home .navbar-brand small,
body.page-tv .navbar-brand small,
body.page-combos .navbar-brand small,
body.page-apps .navbar-brand small {
  margin-top: 5px;
  color: rgba(255,255,255,.62) !important;
  font-size: .66rem;
  letter-spacing: .07em;
}

body.page-home .navbar-nav,
body.page-tv .navbar-nav,
body.page-combos .navbar-nav,
body.page-apps .navbar-nav { gap: 2px; }

body.page-home .navbar-dark .navbar-nav .nav-link,
body.page-tv .navbar-dark .navbar-nav .nav-link,
body.page-combos .navbar-dark .navbar-nav .nav-link,
body.page-apps .navbar-dark .navbar-nav .nav-link {
  position: relative;
  padding: 10px 12px;
  border-radius: 11px;
  color: rgba(255,255,255,.78);
  font-size: .91rem;
  font-weight: 650;
  transition: color .22s ease, background .22s ease, transform .22s ease;
}

body.page-home .navbar-dark .navbar-nav .nav-link:hover,
body.page-tv .navbar-dark .navbar-nav .nav-link:hover,
body.page-combos .navbar-dark .navbar-nav .nav-link:hover,
body.page-apps .navbar-dark .navbar-nav .nav-link:hover {
  color: #fff;
  background: rgba(255,255,255,.075);
  transform: translateY(-1px);
}

body.page-tv .navbar-nav .nav-item:nth-child(3) .nav-link,
body.page-combos .navbar-nav .nav-item:nth-child(4) .nav-link {
  color: #fff;
  background: linear-gradient(135deg, rgba(22,119,255,.22), rgba(44,200,255,.12));
  box-shadow: inset 0 0 0 1px rgba(85,183,255,.18);
}

body.page-home .navbar-toggler,
body.page-tv .navbar-toggler,
body.page-combos .navbar-toggler,
body.page-apps .navbar-toggler {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  padding: 8px 10px;
  background: rgba(255,255,255,.045);
  box-shadow: none !important;
}

/* =========================================================
   Shared buttons
   ========================================================= */
body.page-home .btn,
body.page-tv .btn,
body.page-combos .btn,
body.page-apps .btn {
  font-weight: 750;
  border-radius: 13px;
  letter-spacing: -.01em;
  transition: transform .22s var(--ip-ease), box-shadow .22s ease, filter .22s ease, background .22s ease;
}

body.page-home .btn:hover,
body.page-tv .btn:hover,
body.page-combos .btn:hover,
body.page-apps .btn:hover { transform: translateY(-2px); }

body.page-home .btn-primary {
  border: 0;
  background: linear-gradient(135deg, var(--ip-blue), #2a8cff);
  box-shadow: 0 14px 32px rgba(22,119,255,.30);
}

body.page-home .btn-success,
body.page-combos .btn-success,
body.page-apps .btn-success {
  border: 0;
  background: linear-gradient(135deg, #1fc85b, #15ad4a);
  color: #fff;
  box-shadow: 0 13px 28px rgba(34,197,94,.22);
}

/* =========================================================
   HOME
   ========================================================= */
body.page-home {
  background:
    radial-gradient(circle at 15% 14%, rgba(44,200,255,.08), transparent 24rem),
    linear-gradient(180deg, #f8fbff 0%, #f3f7fb 100%);
  color: var(--ip-text);
}

body.page-home .hero {
  min-height: 680px;
  height: min(92vh, 860px);
  margin-top: 0;
  padding-top: 76px;
  background-position: center;
  isolation: isolate;
  overflow: hidden;
}

body.page-home .hero::before {
  background:
    linear-gradient(90deg, rgba(2,13,27,.84) 0%, rgba(4,22,43,.69) 42%, rgba(4,23,46,.43) 100%),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.36));
}

body.page-home .hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: auto 0 0;
  height: 180px;
  background: linear-gradient(180deg, transparent, rgba(4,14,27,.18));
  pointer-events: none;
}

body.page-home .hero .container {
  z-index: 2;
  max-width: 950px;
  text-align: left;
}

body.page-home .hero h1 {
  max-width: 850px;
  margin: 0;
  font-size: clamp(2.55rem, 5.3vw, 5.2rem);
  line-height: .98;
  letter-spacing: -.05em;
  font-weight: 850;
  text-wrap: balance;
  text-shadow: 0 15px 45px rgba(0,0,0,.22);
}

body.page-home .hero h1::before {
  content: "INTERPRO ULTRA FIBRA";
  display: block;
  width: fit-content;
  margin-bottom: 18px;
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: #c8efff;
  font-size: .73rem;
  line-height: 1;
  letter-spacing: .16em;
  font-weight: 800;
  backdrop-filter: blur(12px);
}

body.page-home .hero .btn {
  margin-top: 34px !important;
  padding: 14px 24px;
  min-width: 218px;
  font-size: 1rem;
  border-radius: 14px;
}

body.page-home #planos,
body.page-home #sobre,
body.page-home #empresarial,
body.page-home #estrutura,
body.page-home #contato {
  padding-top: 92px;
  padding-bottom: 92px;
}

body.page-home #planos { background: transparent; }

body.page-home #planos h2,
body.page-home #sobre h2,
body.page-home #empresarial h2,
body.page-home #estrutura h2,
body.page-home #contato h2 {
  color: var(--ip-ink);
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 850;
  letter-spacing: -.045em;
}

body.page-home #planos h2::after,
body.page-home #sobre h2::after,
body.page-home #empresarial h2::after,
body.page-home #contato h2::after {
  content: "";
  display: block;
  width: 54px;
  height: 5px;
  margin: 16px auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ip-blue), var(--ip-cyan));
}

body.page-home .plan-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(12,48,82,.09);
  border-radius: var(--ip-radius-lg);
  background: rgba(255,255,255,.96);
  box-shadow: var(--ip-shadow-sm);
  transition: transform .28s var(--ip-ease), box-shadow .28s ease, border-color .28s ease;
}

body.page-home .plan-card::after {
  content: "";
  position: absolute;
  width: 140px;
  height: 140px;
  right: -78px;
  top: 80px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(44,200,255,.16), transparent 68%);
  pointer-events: none;
}

body.page-home .plan-card:hover {
  transform: translateY(-8px);
  border-color: rgba(22,119,255,.22);
  box-shadow: var(--ip-shadow-md);
}

body.page-home .plan-header {
  padding: 18px 22px;
  border-radius: 0;
  background: linear-gradient(135deg, #0b3767, #126bd3 58%, #248bd9);
  font-size: .82rem;
  letter-spacing: .13em;
}

body.page-home .plan-speed {
  margin: 28px 0 8px;
  color: var(--ip-ink);
  font-size: clamp(2.7rem, 5vw, 3.8rem);
  line-height: 1;
  letter-spacing: -.055em;
}

body.page-home .plan-price {
  color: #118a50;
  font-size: 1.65rem;
  letter-spacing: -.035em;
}

body.page-home .plan-desc {
  padding: 18px 28px 8px;
  color: var(--ip-muted);
  line-height: 1.65;
}

body.page-home .plan-footer { padding: 20px 28px 28px; }
body.page-home .plan-footer .btn { width: 100%; padding: 12px 24px; }
body.page-home .plan-notes { color: #8b9aab; line-height: 1.45; }

body.page-home #sobre,
body.page-home #estrutura { background: #fff; }

body.page-home #sobre .row,
body.page-home #estrutura .row {
  align-items: center;
  gap: 0;
}

body.page-home #sobre .text-block {
  color: #40536b;
  font-size: 1.08rem;
  line-height: 1.85;
}

body.page-home #sobre img,
body.page-home #estrutura .img-estrutura {
  border-radius: var(--ip-radius-lg);
  box-shadow: var(--ip-shadow-lg);
}

body.page-home #sobre blockquote {
  margin-top: 26px;
  padding: 20px 22px;
  border: 0;
  border-left: 4px solid var(--ip-blue);
  border-radius: 0 var(--ip-radius-sm) var(--ip-radius-sm) 0;
  background: #f3f8ff;
  color: #415775;
}

body.page-home #missao {
  position: relative;
  max-width: 1040px;
  margin: 78px auto;
  padding: 46px 54px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--ip-radius-lg);
  background:
    radial-gradient(circle at 88% 10%, rgba(44,200,255,.22), transparent 15rem),
    linear-gradient(135deg, #071a30, #0b3156 60%, #0c426c);
  box-shadow: var(--ip-shadow-lg);
  color: #f7fbff;
  font-size: clamp(1.08rem, 2.2vw, 1.35rem);
  line-height: 1.75;
}

body.page-home #missao::before {
  content: "MISSÃO";
  display: block;
  margin-bottom: 14px;
  color: #72ddff;
  font-size: .72rem;
  letter-spacing: .22em;
}

body.page-home #empresarial { background: linear-gradient(180deg, #f6f9fd, #eef4fa); }

body.page-home #empresarial .feature {
  height: 100%;
  padding: 34px 28px;
  border: 1px solid rgba(13,57,96,.09);
  border-radius: var(--ip-radius-md);
  background: rgba(255,255,255,.94);
  box-shadow: var(--ip-shadow-sm);
  transition: transform .26s var(--ip-ease), box-shadow .26s ease;
}

body.page-home #empresarial .feature:hover {
  transform: translateY(-6px);
  box-shadow: var(--ip-shadow-md);
}

body.page-home #empresarial .feature i {
  display: inline-grid;
  width: 70px;
  height: 70px;
  place-items: center;
  margin-bottom: 22px;
  border-radius: 20px;
  background: linear-gradient(145deg, #e8f4ff, #f4fbff);
  color: var(--ip-blue);
  box-shadow: inset 0 0 0 1px rgba(22,119,255,.08);
  font-size: 2rem;
}

body.page-home #empresarial .feature h5 { color: var(--ip-ink); font-size: 1.18rem; }
body.page-home #empresarial .feature p { color: var(--ip-muted); line-height: 1.65; }

body.page-home #estrutura .content-estrutura { padding-left: 56px; }
body.page-home #estrutura .content-estrutura p { color: #4f6278; line-height: 1.8; }
body.page-home #estrutura .badge-anatel {
  padding: 9px 16px;
  background: #e8f8ef;
  color: #137347;
  box-shadow: inset 0 0 0 1px rgba(19,115,71,.11);
}

body.page-home #contato {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 85% 15%, rgba(44,200,255,.10), transparent 20rem),
    #071829;
  color: #fff;
}

body.page-home #contato h2 { color: #fff; }
body.page-home #contato p { color: rgba(255,255,255,.72); line-height: 1.7; }
body.page-home #contato a { color: #77dcff; }

body.page-home footer {
  padding: 34px 0;
  border-top: 1px solid rgba(255,255,255,.07);
  background: #040d17;
  color: rgba(255,255,255,.58);
}
body.page-home footer a { color: #79dfff; }

/* =========================================================
   COMBOS + APPS configurators
   ========================================================= */
body.page-combos,
body.page-apps {
  min-height: 100vh;
  padding-top: 98px;
  background:
    radial-gradient(circle at 15% 0%, rgba(22,119,255,.16), transparent 26rem),
    radial-gradient(circle at 95% 16%, rgba(44,200,255,.08), transparent 24rem),
    linear-gradient(180deg, #06111f 0%, #081625 48%, #07111e 100%);
  color: #edf6ff;
}

body.page-combos > .container.py-5,
body.page-apps > .container.py-5 {
  max-width: 1180px;
  padding-top: 34px !important;
  padding-bottom: 64px !important;
}

body.page-combos h1,
body.page-apps h1 {
  margin-bottom: 14px !important;
  color: #fff;
  font-size: clamp(2.2rem, 5vw, 4rem);
  line-height: 1;
  letter-spacing: -.05em;
  font-weight: 850;
}

body.page-combos .progress,
body.page-apps .progress {
  max-width: 720px;
  height: 6px !important;
  margin: 22px auto 42px !important;
  overflow: visible;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}

body.page-combos .progress-bar,
body.page-apps .progress-bar {
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ip-blue), var(--ip-cyan)) !important;
  box-shadow: 0 0 24px rgba(44,200,255,.32);
  transition: width .35s var(--ip-ease);
}

body.page-combos .section-box,
body.page-apps .section-box {
  position: relative;
  overflow: hidden;
  padding: 30px;
  border: 1px solid rgba(124,190,255,.11);
  border-radius: var(--ip-radius-lg);
  background: linear-gradient(160deg, rgba(17,44,72,.88), rgba(9,27,46,.92));
  box-shadow: 0 24px 60px rgba(0,0,0,.22);
  backdrop-filter: blur(16px);
}

body.page-combos .section-box h4,
body.page-apps .section-box h4,
body.page-apps .section-box h5 {
  color: #fff;
  font-weight: 800;
  letter-spacing: -.025em;
}

body.page-combos .option-btn,
body.page-apps .option-btn {
  position: relative;
  min-height: 58px;
  margin-bottom: 10px;
  padding: 15px 17px;
  border: 1px solid rgba(126,175,222,.17);
  border-radius: 15px;
  background: rgba(3,14,27,.50);
  color: #dceafa;
  text-align: left;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
  transition: transform .2s var(--ip-ease), border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

body.page-combos .option-btn:hover,
body.page-apps .option-btn:hover {
  transform: translateY(-2px);
  border-color: rgba(44,200,255,.48);
  background: rgba(15,48,78,.75);
  box-shadow: 0 10px 24px rgba(0,0,0,.13);
}

body.page-combos .option-btn.active,
body.page-apps .option-btn.active {
  border-color: #43d7ff;
  background: linear-gradient(135deg, #0f75d8, #1496cb);
  color: #fff;
  box-shadow: 0 12px 30px rgba(20,132,216,.25), inset 0 0 0 1px rgba(255,255,255,.08);
}

body.page-combos .premium,
body.page-apps .premium { border-color: rgba(44,200,255,.38); }

body.page-combos .badge-status,
body.page-apps .badge-status,
body.page-combos .badge-tv,
body.page-apps .badge-tv {
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 4px 12px rgba(0,0,0,.10);
}

body.page-combos .price-box,
body.page-apps .price-box {
  position: relative;
  min-height: 280px;
  padding: 40px;
  overflow: hidden;
  border: 1px solid rgba(87,191,255,.16);
  border-radius: var(--ip-radius-lg);
  background:
    radial-gradient(circle at 80% 10%, rgba(44,200,255,.13), transparent 12rem),
    linear-gradient(155deg, rgba(6,21,38,.96), rgba(7,31,52,.96));
  box-shadow: 0 26px 68px rgba(0,0,0,.28);
}

body.page-combos .price-box::before,
body.page-apps .price-box::before {
  content: "RESUMO DA SUA ESCOLHA";
  display: block;
  margin-bottom: 16px;
  color: #6fd9ff;
  font-size: .70rem;
  font-weight: 800;
  letter-spacing: .17em;
}

body.page-combos .price-value,
body.page-apps .price-value {
  color: #55dcff;
  font-size: clamp(2.6rem, 6vw, 4rem);
  letter-spacing: -.055em;
  text-shadow: 0 0 35px rgba(44,200,255,.18);
}

body.page-combos .selo-economia,
body.page-apps .selo-economia {
  border: 1px solid rgba(59,227,125,.18);
  background: rgba(34,197,94,.14);
  color: #8cf3b1;
}

body.page-combos #provaSocial,
body.page-apps #provaSocial { color: rgba(229,242,255,.68); }

body.page-combos #whatsBtn,
body.page-apps #whatsBtn {
  min-height: 54px;
  padding: 14px 23px;
  border-radius: 15px;
}

body.page-apps .categoria-btn {
  margin-top: 6px;
  border: 1px solid rgba(101,180,236,.14);
  border-radius: 15px;
  background: rgba(4,20,37,.64);
  color: #7ddcff;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

body.page-apps .categoria-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(44,200,255,.42);
  background: rgba(15,49,80,.72);
}

body.page-apps .apps-grid {
  grid-template-columns: repeat(auto-fill,minmax(128px,1fr));
  gap: 12px;
  padding: 12px 0 4px;
}

body.page-apps .app-card {
  min-height: 126px;
  height: auto;
  padding: 13px;
  border: 1px solid rgba(119,177,222,.15);
  border-radius: 17px;
  background: rgba(4,18,33,.62);
  color: #e6f2ff;
  transition: transform .2s var(--ip-ease), border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

body.page-apps .app-card:hover {
  transform: translateY(-4px);
  border-color: rgba(44,200,255,.52);
  background: rgba(15,47,76,.75);
  box-shadow: 0 14px 28px rgba(0,0,0,.16);
}

body.page-apps .app-card.active {
  border-color: #59dcff;
  background: linear-gradient(145deg, #0e6ebd, #148db6);
  color: #fff;
  box-shadow: 0 14px 32px rgba(18,130,190,.25);
}

body.page-apps .app-logo { filter: drop-shadow(0 4px 10px rgba(0,0,0,.18)); }
body.page-apps .app-name { font-size: .82rem; line-height: 1.2; }

body.page-apps .floating-resume {
  min-height: 76px;
  padding: 11px max(18px, calc((100vw - 1160px)/2));
  border-top: 1px solid rgba(80,196,255,.20);
  background: rgba(4,15,27,.92);
  box-shadow: 0 -18px 50px rgba(0,0,0,.30);
  backdrop-filter: blur(20px) saturate(140%);
}
body.page-apps #resumePreco { color: #62ddff; }

/* Offer modal shared */
body.page-combos #ofertaModal .modal-content,
body.page-apps #ofertaModal .modal-content {
  background:
    radial-gradient(circle at 50% 25%, rgba(22,119,255,.22), transparent 24rem),
    radial-gradient(circle at 80% 80%, rgba(44,200,255,.12), transparent 20rem),
    #050f1d !important;
}

body.page-combos #ofertaModal .modal-content::before,
body.page-apps #ofertaModal .modal-content::before {
  content: "";
  position: absolute;
  width: min(520px, 88vw);
  height: min(520px, 88vw);
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(255,255,255,.015), 0 0 0 140px rgba(255,255,255,.01);
  pointer-events: none;
}

body.page-combos #ofertaModal .text-success,
body.page-apps #ofertaModal .text-success { color: #55dcff !important; }

body.page-combos #ofertaModal .btn-success,
body.page-apps #ofertaModal .btn-success {
  background: linear-gradient(135deg, var(--ip-blue), #159bd0);
  box-shadow: 0 18px 38px rgba(22,119,255,.24);
}

/* =========================================================
   TV
   ========================================================= */
body.page-tv {
  min-height: 100vh;
  padding-top: 76px;
  background:
    radial-gradient(circle at 15% 5%, rgba(22,119,255,.14), transparent 26rem),
    linear-gradient(180deg, #06111f, #0a1727 58%, #07111e);
  color: #edf6ff;
}

body.page-tv .hero-tv {
  position: relative;
  overflow: hidden;
  padding: 122px 20px 104px;
  background:
    radial-gradient(circle at 16% 28%, rgba(44,200,255,.18), transparent 20rem),
    radial-gradient(circle at 85% 12%, rgba(69,105,255,.20), transparent 24rem),
    linear-gradient(135deg, #071a30, #0d3761 58%, #0a2848);
}

body.page-tv .hero-tv::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 80px;
  background: linear-gradient(180deg, transparent, rgba(4,15,28,.42));
}

body.page-tv .hero-tv h1 {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  max-width: 900px;
  font-size: clamp(2.7rem, 6vw, 5.4rem);
  line-height: .98;
  letter-spacing: -.055em;
  font-weight: 850 !important;
}

body.page-tv .hero-tv .lead {
  position: relative;
  z-index: 1;
  color: rgba(237,246,255,.72);
  font-size: clamp(1rem, 2.1vw, 1.3rem);
}

body.page-tv section.py-5 { padding-top: 82px !important; padding-bottom: 100px !important; }
body.page-tv section.py-5 h2 {
  margin-bottom: 52px !important;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 850;
  letter-spacing: -.045em;
}

body.page-tv .tv-card {
  height: 100%;
  border: 1px solid rgba(100,180,238,.13);
  border-radius: 22px;
  background: linear-gradient(160deg, rgba(17,45,74,.94), rgba(8,25,43,.96));
  box-shadow: 0 20px 50px rgba(0,0,0,.20);
  transition: transform .25s var(--ip-ease), box-shadow .25s ease, border-color .25s ease, opacity .25s ease;
}

body.page-tv .row:hover .tv-card { opacity: .72; }
body.page-tv .row .tv-card:hover {
  z-index: 3;
  opacity: 1;
  transform: translateY(-8px) scale(1.015);
  border-color: rgba(65,202,255,.36);
  box-shadow: 0 30px 70px rgba(0,0,0,.34);
}

body.page-tv .tv-card img {
  height: 240px;
  padding: 24px;
  background:
    radial-gradient(circle at 50% 50%, rgba(44,200,255,.08), transparent 65%),
    #07111e;
}

body.page-tv .tv-body { padding: 24px 22px 28px; }
body.page-tv .tv-body h5 { font-size: 1.08rem; letter-spacing: -.02em; }
body.page-tv .tv-body p { color: rgba(237,246,255,.63) !important; }
body.page-tv .tv-body small { color: #65dcff !important; font-weight: 750; }

/* =========================================================
   WhatsApp floating action
   ========================================================= */
body.page-home .whatsapp-fixed,
body.page-tv .whatsapp-fixed {
  right: 24px;
  bottom: 24px;
  width: 62px;
  height: 62px;
  border: 1px solid rgba(255,255,255,.24);
  background: linear-gradient(145deg, #31d967, #1db854);
  box-shadow: 0 18px 38px rgba(19,169,72,.32), inset 0 1px 0 rgba(255,255,255,.28);
  transition: transform .22s var(--ip-ease), box-shadow .22s ease;
}
body.page-home .whatsapp-fixed:hover,
body.page-tv .whatsapp-fixed:hover {
  transform: translateY(-4px) scale(1.04);
  box-shadow: 0 22px 44px rgba(19,169,72,.40);
}

/* =========================================================
   Privacy policy
   ========================================================= */
body.page-policy {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 0%, rgba(44,200,255,.11), transparent 25rem),
    linear-gradient(180deg, #f5f9fd, #edf3f8);
  color: #2b4057;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.75;
}

body.page-policy header {
  position: relative;
  overflow: hidden;
  padding: 82px 20px 72px;
  background:
    radial-gradient(circle at 80% 20%, rgba(44,200,255,.16), transparent 20rem),
    linear-gradient(135deg, #061727, #0b3155 62%, #0b4067);
  color: #fff;
}

body.page-policy header::after {
  content: "PRIVACIDADE • TRANSPARÊNCIA • SEGURANÇA";
  display: block;
  margin-top: 16px;
  color: #75dcff;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .17em;
}

body.page-policy header h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.4rem, 5vw, 4rem);
  letter-spacing: -.05em;
  font-weight: 850;
}
body.page-policy header p { color: rgba(255,255,255,.64); }

body.page-policy section {
  max-width: 940px;
  margin: -28px auto 64px;
  padding: 46px clamp(24px,5vw,58px);
  border: 1px solid rgba(16,58,96,.09);
  border-radius: 26px;
  background: rgba(255,255,255,.98);
  box-shadow: var(--ip-shadow-md);
}

body.page-policy section h2 {
  margin-top: 38px;
  color: #0b3155;
  font-size: 1.22rem;
  font-weight: 800;
  letter-spacing: -.02em;
}
body.page-policy section h2:first-child { margin-top: 0; }
body.page-policy section p,
body.page-policy section li { color: #506379; }
body.page-policy section li { margin-bottom: 5px; }
body.page-policy footer {
  margin-top: 0;
  padding: 26px 20px;
  background: #06111f;
  color: rgba(255,255,255,.58);
}

/* =========================================================
   Wi-Fi generator: refinement only
   ========================================================= */
body.page-wifi {
  background:
    radial-gradient(circle at 12% 9%, rgba(44,200,255,.15), transparent 29%),
    radial-gradient(circle at 87% 84%, rgba(16,183,166,.13), transparent 31%),
    linear-gradient(145deg, #edf6fa 0%, #f8fbfd 48%, #eaf2f7 100%);
}

body.page-wifi .container {
  border-color: rgba(255,255,255,.92);
  box-shadow: 0 30px 90px rgba(5,26,48,.16);
}

body.page-wifi .brand-mark {
  background: linear-gradient(145deg, #0a3155, #1478b9 58%, #13afaa);
  box-shadow: 0 14px 30px rgba(15,116,176,.22);
}

body.page-wifi .secure-badge {
  box-shadow: inset 0 0 0 1px rgba(13,110,160,.05);
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 991.98px) {
  body.page-home .navbar-collapse,
  body.page-tv .navbar-collapse,
  body.page-combos .navbar-collapse,
  body.page-apps .navbar-collapse {
    margin-top: 10px;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 16px;
    background: rgba(4,16,30,.92);
  }

  body.page-home .hero .container { text-align: center; }
  body.page-home .hero h1::before { margin-left: auto; margin-right: auto; }
  body.page-home #estrutura .content-estrutura { padding-left: 28px; }
}

@media (max-width: 767.98px) {
  body.page-home .navbar,
  body.page-tv .navbar,
  body.page-combos .navbar,
  body.page-apps .navbar { min-height: 70px; }

  body.page-home .navbar-brand small,
  body.page-tv .navbar-brand small,
  body.page-combos .navbar-brand small,
  body.page-apps .navbar-brand small {
    max-width: 220px;
    white-space: normal;
    line-height: 1.25;
  }

  body.page-home .hero {
    min-height: 650px;
    height: 88vh;
    padding-inline: 14px;
  }

  body.page-home .hero h1 { font-size: clamp(2.35rem, 11vw, 3.6rem); }
  body.page-home .hero .btn { width: min(100%, 320px); }

  body.page-home #planos,
  body.page-home #sobre,
  body.page-home #empresarial,
  body.page-home #estrutura,
  body.page-home #contato { padding-top: 70px; padding-bottom: 70px; }

  body.page-home #missao {
    margin: 50px 14px;
    padding: 34px 24px;
    border-radius: 22px;
  }

  body.page-home #estrutura .content-estrutura { padding-left: 0; margin-top: 30px; }

  body.page-combos,
  body.page-apps { padding-top: 82px; }
  body.page-combos > .container.py-5,
  body.page-apps > .container.py-5 { padding-inline: 14px; }
  body.page-combos .section-box,
  body.page-apps .section-box,
  body.page-combos .price-box,
  body.page-apps .price-box { padding: 22px; border-radius: 22px; }

  body.page-apps .apps-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.page-apps .floating-resume { gap: 12px; padding: 10px 13px; }
  body.page-apps #resumePreco { font-size: 1.15rem; }

  body.page-tv .hero-tv { padding: 92px 18px 76px; }
  body.page-tv section.py-5 { padding-top: 62px !important; padding-bottom: 80px !important; }
  body.page-tv .row:hover .tv-card { opacity: 1; }
  body.page-tv .row .tv-card:hover { transform: translateY(-5px); }

  body.page-policy header { padding: 62px 20px 54px; }
  body.page-policy section { margin: -22px 14px 42px; padding: 34px 22px; border-radius: 22px; }
}

@media (max-width: 420px) {
  body.page-home .navbar-brand,
  body.page-tv .navbar-brand,
  body.page-combos .navbar-brand,
  body.page-apps .navbar-brand { max-width: calc(100vw - 90px); font-size: .94rem; }
  body.page-home .navbar-brand small,
  body.page-tv .navbar-brand small,
  body.page-combos .navbar-brand small,
  body.page-apps .navbar-brand small { font-size: .57rem; }

  body.page-apps .apps-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  body.page-apps .app-card { min-height: 116px; padding: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* =========================================================
   PREMIUM PERFORMANCE EDITION — v2
   Cleaner visual depth with cheaper paint/compositing.
   ========================================================= */
html { scroll-behavior: auto !important; }

:root {
  --ip-shadow-sm: 0 6px 18px rgba(6, 24, 44, .065);
  --ip-shadow-md: 0 10px 28px rgba(6, 24, 44, .09);
  --ip-shadow-lg: 0 16px 40px rgba(2, 17, 36, .12);
}

/* Fixed/translucent surfaces: solid alpha backgrounds avoid expensive live blur. */
body.page-home .navbar,
body.page-tv .navbar,
body.page-combos .navbar,
body.page-apps .navbar {
  background: #071522 !important;
  box-shadow: 0 5px 18px rgba(0,0,0,.11) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.page-home .hero h1::before {
  background: rgba(7,21,34,.72);
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Keep motion intentional and short; avoid "floating" everything on hover. */
body.page-home .btn,
body.page-tv .btn,
body.page-combos .btn,
body.page-apps .btn {
  transition: background-color .14s ease, border-color .14s ease, color .14s ease, opacity .14s ease !important;
}
body.page-home .btn:hover,
body.page-tv .btn:hover,
body.page-combos .btn:hover,
body.page-apps .btn:hover { transform: none !important; }

body.page-home .navbar-dark .navbar-nav .nav-link,
body.page-tv .navbar-dark .navbar-nav .nav-link,
body.page-combos .navbar-dark .navbar-nav .nav-link,
body.page-apps .navbar-dark .navbar-nav .nav-link {
  transition: color .14s ease, background-color .14s ease !important;
}
body.page-home .navbar-dark .navbar-nav .nav-link:hover,
body.page-tv .navbar-dark .navbar-nav .nav-link:hover,
body.page-combos .navbar-dark .navbar-nav .nav-link:hover,
body.page-apps .navbar-dark .navbar-nav .nav-link:hover { transform: none !important; }

/* Home: premium by typography, spacing and borders rather than effects. */
body.page-home {
  background: linear-gradient(180deg, #f8fafc 0%, #f2f6fa 100%);
}
body.page-home .hero h1 { text-shadow: 0 8px 24px rgba(0,0,0,.18); }
body.page-home .plan-card,
body.page-home #empresarial .feature {
  box-shadow: 0 6px 18px rgba(6,24,44,.06) !important;
  transition: border-color .14s ease, box-shadow .14s ease !important;
  contain: paint;
}
body.page-home .plan-card::after { display: none; }
body.page-home .plan-card:hover,
body.page-home #empresarial .feature:hover {
  transform: none !important;
  border-color: rgba(22,119,255,.24);
  box-shadow: 0 9px 24px rgba(6,24,44,.085) !important;
}
body.page-home #sobre img,
body.page-home #estrutura .img-estrutura,
body.page-home #missao { box-shadow: var(--ip-shadow-lg) !important; }
body.page-home #missao {
  background: linear-gradient(135deg, #071a30, #0b3156 66%, #0b3a60);
}

/* Configurators: no glass blur, no endless glow; active selection stays clear. */
body.page-combos,
body.page-apps {
  background: linear-gradient(180deg, #06111f 0%, #091827 48%, #07111e 100%);
}
body.page-combos .progress-bar,
body.page-apps .progress-bar {
  box-shadow: none !important;
  transition: width .16s ease-out !important;
}
body.page-combos .section-box,
body.page-apps .section-box {
  background: linear-gradient(160deg, #102b47, #091b2e) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.15) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.page-combos .option-btn,
body.page-apps .option-btn,
body.page-apps .categoria-btn,
body.page-apps .app-card {
  transition: border-color .12s ease, background-color .12s ease, color .12s ease !important;
  box-shadow: none !important;
}
body.page-combos .option-btn:hover,
body.page-apps .option-btn:hover,
body.page-apps .categoria-btn:hover,
body.page-apps .app-card:hover {
  transform: none !important;
  box-shadow: none !important;
}
body.page-combos .option-btn.active,
body.page-apps .option-btn.active,
body.page-apps .app-card.active {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08) !important;
}
body.page-combos .price-box,
body.page-apps .price-box {
  background: linear-gradient(155deg, #061526, #08243a) !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.18) !important;
}
body.page-combos .price-value,
body.page-apps .price-value { text-shadow: none !important; }
body.page-apps .app-logo { filter: none !important; }
body.page-apps .floating-resume {
  background: #071522 !important;
  box-shadow: 0 -5px 18px rgba(0,0,0,.16) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.page-combos .pulse,
body.page-apps .pulse { animation: none !important; }
body.page-combos #tvSection,
body.page-apps #tvSection {
  transform: none !important;
  transition: opacity .12s linear !important;
}
body.page-combos #ofertaModal .modal-content::before,
body.page-apps #ofertaModal .modal-content::before { box-shadow: none !important; }
body.page-combos #ofertaModal .btn-success,
body.page-apps #ofertaModal .btn-success { box-shadow: 0 7px 18px rgba(22,119,255,.16) !important; }

/* TV: remove parent hover dimming which repaints an entire grid. */
body.page-tv { background: linear-gradient(180deg, #06111f, #0a1727 58%, #07111e); }
body.page-tv .tv-card {
  box-shadow: 0 8px 22px rgba(0,0,0,.14) !important;
  transition: border-color .14s ease, box-shadow .14s ease !important;
  contain: paint;
}
body.page-tv .row:hover .tv-card { opacity: 1 !important; }
body.page-tv .row .tv-card:hover {
  transform: none !important;
  border-color: rgba(65,202,255,.34);
  box-shadow: 0 11px 28px rgba(0,0,0,.19) !important;
}

/* Floating contact: static premium button, no scaling choreography. */
body.page-home .whatsapp-fixed,
body.page-tv .whatsapp-fixed {
  box-shadow: 0 8px 22px rgba(19,169,72,.24) !important;
  transition: box-shadow .14s ease, opacity .14s ease !important;
}
body.page-home .whatsapp-fixed:hover,
body.page-tv .whatsapp-fixed:hover {
  transform: none !important;
  box-shadow: 0 10px 26px rgba(19,169,72,.30) !important;
}

/* Policy + Wi-Fi tool: lighter cards, no live glass rendering. */
body.page-policy { background: linear-gradient(180deg, #f5f8fb, #eef3f7); }
body.page-policy section { box-shadow: 0 10px 30px rgba(5,26,48,.08) !important; }
body.page-wifi::before,
body.page-wifi::after { display: none !important; }
body.page-wifi .container {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 12px 34px rgba(5,26,48,.10) !important;
}
body.page-wifi .brand-mark { box-shadow: 0 7px 18px rgba(15,116,176,.15) !important; }
body.page-wifi .button,
body.page-wifi .wifi-item,
body.page-wifi input {
  transition-duration: .12s !important;
}

/* On coarse pointers there is no value in hover choreography. */
@media (hover: none), (pointer: coarse) {
  body.page-home .plan-card,
  body.page-home #empresarial .feature,
  body.page-tv .tv-card,
  body.page-apps .app-card,
  body.page-combos .option-btn,
  body.page-apps .option-btn { transition: none !important; }
}

/* =========================================================
   PREMIUM MOTION EDITION — v3
   Smooth again, without returning to heavy scroll effects.
   ========================================================= */
html {
  scroll-behavior: smooth !important;
  scroll-padding-top: 92px;
}

body.page-home section[id],
body.page-home #hero {
  scroll-margin-top: 92px;
}

/* One-shot section reveal. IntersectionObserver adds/removes no work while scrolling. */
.premium-motion-ready .premium-reveal {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity .46s ease-out var(--reveal-delay, 0ms),
    transform .46s cubic-bezier(.22,.72,.28,1) var(--reveal-delay, 0ms) !important;
}

.premium-motion-ready .premium-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Softer interaction feedback, still GPU-cheap. */
body.page-home .plan-card,
body.page-home #empresarial .feature,
body.page-tv .tv-card {
  transition:
    border-color .20s ease,
    box-shadow .20s ease,
    transform .20s cubic-bezier(.22,.72,.28,1) !important;
}

@media (hover: hover) and (pointer: fine) {
  body.page-home .plan-card:hover,
  body.page-home #empresarial .feature:hover,
  body.page-tv .tv-card:hover {
    transform: translate3d(0, -3px, 0) !important;
  }
}

body.page-combos #tvSection,
body.page-apps #tvSection {
  transition: opacity .20s ease-out, transform .20s ease-out !important;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .premium-motion-ready .premium-reveal,
  .premium-motion-ready .premium-reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
