/* Ubuntu e Ubuntu Mono auto-hospedadas (subsets latin + latin-ext, cobrem
   português com acentos) — evita @import bloqueante e vazamento de IP ao
   Google a cada carregamento de página. */
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 300; src: url(/assets/fonts/ubuntu-latin-300-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 300; src: url(/assets/fonts/ubuntu-latin-ext-300-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/ubuntu-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/ubuntu-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 500; src: url(/assets/fonts/ubuntu-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 500; src: url(/assets/fonts/ubuntu-latin-ext-500-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 700; src: url(/assets/fonts/ubuntu-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Ubuntu'; font-style: normal; font-display: swap; font-weight: 700; src: url(/assets/fonts/ubuntu-latin-ext-700-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Ubuntu Mono'; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/ubuntu-mono-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Ubuntu Mono'; font-style: normal; font-display: swap; font-weight: 400; src: url(/assets/fonts/ubuntu-mono-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Ubuntu Mono'; font-style: normal; font-display: swap; font-weight: 700; src: url(/assets/fonts/ubuntu-mono-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Ubuntu Mono'; font-style: normal; font-display: swap; font-weight: 700; src: url(/assets/fonts/ubuntu-mono-latin-ext-700-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
  --navy: #0f0621;
  --navy-soft: #1a0d31;
  --red: #f9423a;
  --red-dark: #dc2f2a;
  --red-darker: #c2281f;
  --paper: #f4f2ef;
  --white: #ffffff;
  --ink: #160d20;
  --muted: #5c5563;
  --line: #ddd8d3;
  --success: #15704a;
  --pad: clamp(24px, 5vw, 86px);
  --max: 1440px;
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; overflow-x: clip; scroll-behavior: smooth; }
body { max-width: 100%; margin: 0; overflow-x: hidden; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: Ubuntu, "Trebuchet MS", sans-serif; }
.skip-link { position: absolute; top: -48px; left: 12px; z-index: 1000; padding: 12px 20px; border-radius: 0 0 10px 10px; background: var(--navy); color: var(--white); font-weight: 700; text-decoration: none; transition: top .15s ease; }
.skip-link:focus { top: 0; }
.eyebrow { margin-bottom: 18px; color: var(--red); font-size: .76rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
body.no-scroll { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
.sr-only { width: 1px; height: 1px; padding: 0; position: absolute; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 700; letter-spacing: -.045em; }

.button { min-height: 50px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 24px; border: 0; border-radius: 999px; cursor: pointer; font-weight: 700; transition: transform .2s cubic-bezier(0.16,1,0.3,1), background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--red-dark); color: var(--white); }
.button-primary:hover { background: var(--red-darker); }
.button-dark { background: var(--navy); color: var(--white); }
.button-light { background: var(--white); color: var(--navy); }
.button-outline { border: 1px solid currentColor; background: transparent; }
.text-link { display: inline-flex; align-items: center; gap: 30px; padding-bottom: 7px; border-bottom: 2px solid currentColor; font-weight: 700; }
.text-link::after, .button[data-arrow]::after { content: "→"; }

.notice { min-height: 40px; padding: 8px var(--pad); display: flex; align-items: center; background: var(--navy); color: rgba(255,255,255,.66); font-size: .82rem; }
.notice__inner { width: min(var(--max), 100%); min-width: 0; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.notice strong { color: var(--white); }
.notice__tools, .notice__contact, .notice__social { display: flex; align-items: center; }
.notice__tools { min-width: 0; gap: 12px; }
.notice__contact { gap: 7px; color: rgba(255,255,255,.8); white-space: nowrap; transition: color .2s ease; }
.notice__contact:hover, .notice__social a:hover { color: var(--white); }
.notice__contact svg, .notice__social svg { width: 15px; height: 15px; display: block; }
.notice__divider { width: 1px; height: 14px; background: rgba(255,255,255,.2); }
.notice__social { gap: 9px; }
.notice__social a { padding: 15px; margin: -15px; display: inline-flex; align-items: center; justify-content: center; color: rgba(255,255,255,.66); transition: color .2s ease; }
.site-header { min-height: 82px; padding: 0 var(--pad); position: relative; z-index: 20; display: grid; grid-template-columns: 176px 1fr auto; align-items: center; gap: 38px; background: var(--white); border-bottom: 1px solid rgba(15,6,33,.08); }
.brand img { width: 128px; max-height: 44px; object-fit: contain; object-position: left center; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.2vw, 36px); }
.main-nav a { padding: 10px 0; color: #4c4551; font-size: .82rem; font-weight: 700; white-space: nowrap; }
.main-nav a[aria-current="page"], .main-nav a:hover { color: var(--red); }
.main-nav .nav-central { padding: 9px 13px; border: 1px solid rgba(249,66,58,.28); border-radius: 999px; color: var(--red); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.city-switch { min-height: 42px; padding: 0 15px; display: inline-flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--navy); cursor: pointer; font-size: .8rem; font-weight: 700; }
.city-switch::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--red); }
.menu-button { display: none; min-height: 44px; padding: 0 12px; border: 0; background: transparent; color: var(--navy); font-weight: 700; }

.location-home { min-height: calc(100svh - 116px); padding: clamp(52px, 8vw, 120px) var(--pad); position: relative; display: grid; align-items: center; overflow: hidden; background: var(--navy); color: var(--white); }
.location-home > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.location-home::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,3,18,.94), rgba(8,3,18,.68) 48%, rgba(8,3,18,.28)), linear-gradient(0deg, rgba(8,3,18,.82), transparent 52%); }
.location-shell { width: min(var(--max), 100%); margin: auto; position: relative; z-index: 2; display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(60px, 9vw, 150px); align-items: center; }
.location-copy h1 { max-width: 780px; margin-bottom: 28px; font-size: clamp(4rem, 7.2vw, 7.6rem); line-height: .88; }
.location-copy > p { max-width: 580px; color: rgba(255,255,255,.72); font-size: 1.08rem; line-height: 1.7; }
.location-proof { margin-top: 44px; display: flex; gap: 34px; align-items: center; color: rgba(255,255,255,.58); font-size: .8rem; }
.google-rating { display: inline-flex; align-items: center; gap: 9px; color: inherit; }
.google-rating img { width: 22px; height: 22px; flex: none; }
.google-rating strong { color: var(--white); font-size: 1.2rem; }
.google-rating.compact { gap: 7px; }
.google-rating.compact img { width: 18px; height: 18px; }
.google-rating.compact strong { font-size: inherit; }
.location-card { padding: clamp(30px, 4vw, 52px); border-radius: 28px; background: rgba(255,255,255,.97); color: var(--ink); box-shadow: 0 35px 100px rgba(5,0,14,.36); }
.location-card h2 { margin-bottom: 12px; font-size: clamp(2rem, 3.2vw, 3rem); }
.location-card > p { color: var(--muted); line-height: 1.6; }
.location-status { min-height: 48px; margin: 20px 0 22px; padding: 13px 16px 13px 42px; position: relative; display: flex; align-items: center; border-radius: 12px; background: #ece9ef; color: #5e5765; font-size: .84rem; }
.location-status::before { content: ""; width: 10px; height: 10px; position: absolute; left: 17px; border: 2px solid var(--red); border-top-color: transparent; border-radius: 50%; }
.location-status[data-state="loading"]::before { animation: spin .8s linear infinite; }
.location-status[data-state="success"] { background: #e4f3eb; color: var(--success); }
.location-status[data-state="success"]::before { content: "✓"; width: auto; height: auto; border: 0; }
.location-status[data-state="error"] { background: #fff0ef; color: #8f312d; }
.location-status[data-state="error"]::before { content: "!"; width: auto; height: auto; border: 0; font-weight: 700; }
@keyframes spin { to { transform: rotate(360deg); } }
.locate-button { width: 100%; margin-bottom: 28px; }
.manual-label { margin-bottom: 12px; display: block; color: var(--muted); font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.city-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.city-grid a { padding: 13px 14px; display: flex; align-items: center; justify-content: space-between; border-radius: 10px; background: var(--paper); font-size: .84rem; font-weight: 700; }
.city-grid a::after { content: "↗"; color: var(--red); }

.city-dialog { width: min(650px, calc(100vw - 28px)); padding: 0; border: 0; border-radius: 24px; background: var(--paper); box-shadow: 0 35px 100px rgba(15,6,33,.4); transition: opacity .28s cubic-bezier(0.16,1,0.3,1); }
.city-dialog::backdrop { background: rgba(15,6,33,.78); backdrop-filter: blur(5px); transition: opacity .28s ease; }
/* Entrada só de opacidade -- nunca `transform` no <dialog> em si: um
   transform aqui cria um novo containing block e quebraria o confete
   (.coverage-dialog__confetti é position:fixed). Fechamento fica instantâneo
   de propósito (menor superfície de risco). */
@starting-style {
  .city-dialog[open] { opacity: 0; }
  .city-dialog[open]::backdrop { opacity: 0; }
}
.city-dialog-inner { padding: 38px; }
.dialog-head { display: flex; align-items: start; justify-content: space-between; gap: 30px; }
.dialog-head h2 { margin-bottom: 10px; font-size: 2.4rem; }
.dialog-head button { width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--white); cursor: pointer; font-size: 1.4rem; }
.city-dialog .city-grid { margin-top: 24px; }

.page-hero { min-height: 660px; padding: 110px var(--pad); position: relative; display: grid; align-items: end; overflow: hidden; background: var(--navy); color: var(--white); }
.page-hero > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.page-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,3,18,.78), rgba(8,3,18,.38) 52%, rgba(8,3,18,.06) 78%), linear-gradient(0deg, rgba(8,3,18,.58), transparent 60%); }
.hero-inner { width: min(var(--max), 100%); margin: 0 auto; position: relative; z-index: 2; }
.hero-inner h1 { max-width: 920px; margin-bottom: 28px; font-size: clamp(3.8rem, 7vw, 7rem); line-height: .9; }
.hero-inner > p { max-width: 610px; margin-bottom: 34px; color: rgba(255,255,255,.74); font-size: 1.08rem; line-height: 1.7; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-meta { margin-top: 42px; display: flex; gap: 28px; color: rgba(255,255,255,.6); font-size: .8rem; }
.hero-meta strong { color: var(--white); }

.coverage-band { padding: 28px var(--pad); background: var(--red-dark); color: var(--white); }
.coverage-band-inner { width: min(var(--max), 100%); margin: auto; display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; }
.coverage-band h2 { margin-bottom: 7px; font-size: clamp(1.7rem, 2.5vw, 2.5rem); }
.coverage-band p { margin-bottom: 0; color: var(--white); font-size: .85rem; }
.coverage-form { min-width: min(100%, 480px); display: flex; gap: 8px; }
.coverage-form input { min-height: 52px; min-width: 230px; flex: 1; padding: 0 18px; border: 0; border-radius: 999px; outline: none; color: var(--ink); }
.coverage-form select { min-height: 52px; padding: 0 16px; border: 0; border-radius: 999px; outline: none; background: var(--white); color: var(--ink); }
.coverage-form input:focus-visible, .coverage-form select:focus-visible { outline: 2px solid var(--red-dark); outline-offset: 2px; }
.coverage-form .button { flex: none; }
.coverage-action { display: flex; justify-content: flex-end; }
.coverage-form .button:disabled { cursor: wait; opacity: .7; transform: none; }
.coverage-feedback { grid-column: 1 / -1; min-height: 20px; margin: -12px 0 0; font-size: .78rem; }
.coverage-feedback:empty { display: none; }
.coverage-feedback[data-state="success"] { color: #fff; font-weight: 700; }
.coverage-feedback[data-state="error"] { color: #fff0aa; font-weight: 700; }
.coverage-feedback[data-state="loading"] { color: #fff; }
.coverage-dialog { width: min(580px, calc(100vw - 32px)); padding: 48px; overflow: visible; border: 0; border-radius: 28px; background: var(--white); color: var(--ink); box-shadow: 0 36px 110px rgba(15,6,33,.45); transition: opacity .28s cubic-bezier(0.16,1,0.3,1); }
.coverage-dialog::backdrop { background: rgba(15,6,33,.76); backdrop-filter: blur(6px); transition: opacity .28s ease; }
/* Mesmo raciocínio do .city-dialog acima: só opacidade, nunca transform (o
   confete é position:fixed dentro deste dialog). Cobre também o dialog do
   checkout, que reusa esta mesma classe (`coverage-dialog checkout-coverage-dialog`). */
@starting-style {
  .coverage-dialog[open] { opacity: 0; }
  .coverage-dialog[open]::backdrop { opacity: 0; }
}
.coverage-dialog__close { width: 44px; height: 44px; position: absolute; z-index: 3; top: 18px; right: 18px; border: 0; border-radius: 50%; background: var(--paper); color: var(--navy); cursor: pointer; font-size: 1.45rem; line-height: 1; }
.coverage-dialog__icon { width: 66px; height: 66px; margin-bottom: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--red); color: var(--white); box-shadow: 0 14px 35px rgba(249,66,58,.28); }
.coverage-dialog__icon svg { width: 30px; height: 30px; }
.coverage-dialog h2 { max-width: 480px; margin-bottom: 18px; font-size: clamp(2.35rem, 5vw, 3.5rem); line-height: .98; }
.coverage-dialog__text { margin-bottom: 24px; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.coverage-dialog__text strong { color: var(--navy); }
.coverage-dialog__note { margin-bottom: 28px; padding: 18px 20px; display: grid; gap: 5px; border-radius: 12px; background: var(--paper); }
.coverage-dialog__note strong { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.coverage-dialog__note span { color: var(--muted); font-size: .9rem; line-height: 1.45; }
.coverage-dialog__actions { display: flex; gap: 10px; }
.coverage-dialog__actions .button-primary { flex: 1; }
/* Sem isto, o atributo `hidden` (usado no popup de número da casa pra
   esconder os botões de resultado até a consulta terminar) é sobrescrito
   pelo `display: flex` acima — mesmo padrão já usado em `.checkout-step[hidden]`. */
.coverage-dialog__actions[hidden] { display: none; }
.coverage-dialog__icon[hidden] { display: none; }
.coverage-dialog__note[hidden] { display: none; }
.coverage-dialog--manual .coverage-dialog__icon { background: var(--navy); box-shadow: 0 14px 35px rgba(15,6,33,.28); }
.coverage-dialog__confetti { position: fixed; z-index: 2; inset: 0; overflow: hidden; pointer-events: none; }
.coverage-dialog__confetti i { width: 9px; height: 15px; position: absolute; top: -24px; left: var(--x); border-radius: 2px; animation: coverage-confetti var(--duration) cubic-bezier(.18,.72,.34,1) var(--delay) forwards; }
@keyframes coverage-confetti {
  0% { opacity: 1; transform: translate3d(0,-20px,0) rotate(0); }
  100% { opacity: 0; transform: translate3d(var(--drift),105vh,0) rotate(var(--spin)); }
}

.section { padding: 110px var(--pad); }
.section-white { background: var(--white); }
.section-dark { background: var(--navy); color: var(--white); }
.section-red { background: var(--red-dark); color: var(--white); }
.section-inner { width: min(var(--max), 100%); margin: auto; }
.section-lead { margin-bottom: 58px; display: grid; grid-template-columns: 1.05fr .75fr; gap: 70px; align-items: end; }
.section-lead h2 { max-width: 850px; margin-bottom: 0; font-size: clamp(3rem, 5vw, 5.4rem); line-height: .95; }
.section-lead > div > p, .section-lead > p { margin-bottom: 0; color: var(--muted); line-height: 1.75; }
.section-dark .section-lead > p, .section-dark .section-lead > div > p { color: rgba(255,255,255,.65); }

.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.plan-card { min-height: 0; padding: clamp(28px, 3vw, 42px); position: relative; display: flex; flex-direction: column; border-top: 4px solid var(--line); background: var(--white); overflow: hidden; }
.plan-card.featured { background: var(--navy); color: var(--white); box-shadow: 0 28px 70px rgba(15,6,33,.18); transform: translateY(-12px); }
.plan-card .tag { min-height: 16px; margin-bottom: 16px; color: var(--red); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.plan-card h3 { margin-bottom: 8px; font-size: clamp(1.5rem, 2vw, 1.9rem); }
.plan-speed { margin: 30px 0 24px; display: flex; align-items: end; gap: 12px; white-space: nowrap; }
.plan-speed strong { font-size: clamp(5.4rem, 7.2vw, 7.6rem); line-height: .68; letter-spacing: -.09em; }
.plan-speed span { margin-bottom: 4px; font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.plan-card ul { margin: 0 0 12px; padding: 20px 0 0; border-top: 1px solid var(--line); list-style: none; }
.featured ul { border-color: rgba(255,255,255,.18); }
.plan-card li { padding: 7px 0; color: var(--muted); font-size: .86rem; }
.featured li { color: rgba(255,255,255,.68); }
.plan-card ul:not(.plan-features) li::before { content: "✓"; margin-right: 9px; color: var(--red); font-weight: 700; }
.plan-features li { display: flex; align-items: center; gap: 12px; }
.feature-icon { width: 32px; height: 32px; padding: 7px; flex: none; border-radius: 50%; background: #fff0ef; color: var(--red); }
.featured .feature-icon { background: rgba(249,66,58,.14); }
.plan-price { margin-top: auto; padding-top: 18px; display: flex; align-items: end; gap: 5px; }
.plan-price strong { font-size: 3.6rem; line-height: .82; letter-spacing: -.07em; }
.plan-price small { margin-bottom: 7px; font-weight: 700; }
.plan-price span { margin: 0 0 4px 2px; color: var(--muted); font-size: .75rem; }
.featured .plan-price span { color: rgba(255,255,255,.6); }
.plan-card .button { width: 100%; margin-top: 22px; }
.plan-card > small:last-child { margin-top: 12px; color: var(--muted); text-align: center; line-height: 1.4; }
.plan-note { margin: -8px 0 22px; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.featured .plan-note { color: rgba(255,255,255,.62); }
.plans-block { margin-top: 100px; padding-top: 90px; border-top: 1px solid var(--line); }
.plans-block .section-lead { margin-bottom: 44px; }
.combo-lead h2 { font-size: clamp(2.8rem, 4.5vw, 4.8rem); }
.combo-speed-tabs { width: fit-content; margin: 0 auto 34px; padding: 6px; display: grid; grid-template-columns: repeat(2, minmax(170px, 1fr)); border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: 0 12px 34px rgba(15,6,33,.06); }
.combo-speed-tabs button { min-height: 64px; padding: 10px 24px; display: grid; place-items: center; gap: 2px; border: 0; border-radius: 13px; background: transparent; color: var(--ink); cursor: pointer; font: inherit; }
.combo-speed-tabs button[aria-selected="true"] { background: var(--navy); color: var(--white); }
.combo-speed-tabs strong { font-size: .95rem; }
.combo-speed-tabs span { color: var(--muted); font-size: .72rem; }
.combo-speed-tabs button[aria-selected="true"] span { color: rgba(255,255,255,.68); }
.combo-speed-tabs button:focus-visible { outline: 3px solid rgba(249,66,58,.28); outline-offset: 3px; }
.combo-card { min-height: 0; }
.combo-card .plan-speed { margin: 25px 0 22px; }
.combo-for { min-height: 54px; margin: 0 0 22px; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.featured .combo-for { color: rgba(255,255,255,.68); }
.combo-breakdown { margin-bottom: 16px; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.featured .combo-breakdown { border-color: rgba(255,255,255,.18); }
.combo-breakdown div { padding: 5px 0; display: flex; justify-content: space-between; gap: 16px; color: var(--muted); font-size: .75rem; }
.featured .combo-breakdown div { color: rgba(255,255,255,.68); }
.combo-breakdown b { color: var(--ink); white-space: nowrap; }
.featured .combo-breakdown b { color: var(--white); }
.combo-detail { margin: 0 0 24px; color: var(--ink); font-size: .82rem; font-weight: 700; line-height: 1.5; }
.featured .combo-detail { color: var(--white); }
.package-stack { margin: 28px 0 0; padding-top: 24px; display: grid; gap: 22px; border-top: 1px solid var(--line); }
.featured .package-stack { border-color: rgba(247,247,247,.14); }
.package-fallback { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.media-package { display: grid; gap: 10px; color: inherit; }
.media-package__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; }
.media-package__head strong { font-size: .94rem; font-weight: 500; line-height: 1.25; }
.media-package__head span { color: var(--muted); font-size: .78rem; line-height: 1.35; text-align: right; }
.featured .media-package__head span { color: #9c97a8; }
.media-package__brands { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; align-items: center; }
.media-brand { min-width: 0; aspect-ratio: 5 / 3; padding: 5px; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid rgba(15,6,33,.06); border-radius: 6px; background: #f7f7f7; }
.media-brand img { width: auto; max-width: 74%; height: auto; max-height: 62%; object-fit: contain; filter: brightness(0); }
.media-brand--tile img { max-width: 52%; max-height: 70%; filter: grayscale(1); }
.media-brand--wide img { max-width: 90%; max-height: 60%; }
.media-brand--count { padding-inline: 4px; border: 1px dashed rgba(15,6,33,.18); background: transparent; font-size: .73rem; font-weight: 700; line-height: 1.2; text-align: center; }
.featured .media-brand { border-color: rgba(247,247,247,.1); background: rgba(247,247,247,.07); }
.featured .media-brand img { filter: brightness(0) invert(1); }
.featured .media-brand--tile img { filter: grayscale(1) invert(1); }
.featured .media-brand--count { border-color: rgba(247,247,247,.22); background: transparent; }
.media-brand[hidden] { display: none; }
.package-toggle { width: fit-content; padding: 0; border: 0; background: none; color: #d8362f; cursor: pointer; font-size: .8rem; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.featured .package-toggle { color: #ff6a63; }
.media-package--compact { padding: 12px 14px; grid-template-columns: 1fr 64px; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.46); }
.media-package--compact .media-package__head { display: grid; gap: 3px; }
.media-package--compact .media-package__head span { text-align: left; }
.media-package--compact .media-package__brands { padding-left: 12px; grid-template-columns: 1fr; border-left: 1px solid var(--line); }
.media-package--compact .media-brand { border: 0; background: transparent; }
.featured .media-package--compact { border-color: rgba(247,247,247,.14); background: rgba(247,247,247,.06); }
.featured .media-package--compact .media-package__brands { border-color: rgba(247,247,247,.14); }
.channel-wordmark { min-height: 32px; display: grid; place-content: center; color: var(--ink); text-align: center; line-height: .82; text-transform: uppercase; }
.featured .channel-wordmark { color: var(--white); }
.channel-wordmark b { font-size: .72rem; letter-spacing: -.04em; }
.channel-wordmark small { font-size: .42rem; font-weight: 700; letter-spacing: .06em; }
.channel-wordmark--cnn b { font-size: 1rem; font-weight: 800; letter-spacing: -.1em; }
.channel-wordmark--cnn small { margin-top: 3px; }
.channel-wordmark--watch b { font-size: .82rem; font-weight: 800; }

/* Vitrine A — cartões: desenho fornecido pela Elevar, adaptado às city pages. */
.plans-showcase { padding-block: clamp(76px, 8vw, 112px); background: #f7f7f7; }
.plans-showcase__inner { width: min(var(--max), 100%); display: flex; flex-direction: column; gap: clamp(52px, 5vw, 72px); }
.plans-showcase__header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; }
.plans-showcase__header > div { max-width: 640px; }
.plans-showcase__header h2 { margin-bottom: 14px; font-size: clamp(2.125rem, 4.4vw, 3.5rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.02; }
.plans-showcase__header h2 span { color: var(--red); }
.plans-showcase__header p:last-child { margin: 0; color: #3a3349; font-size: 1.06rem; font-weight: 300; line-height: 1.5; text-wrap: pretty; }
.plans-help { height: 48px; padding: 0 22px; display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(15,6,33,.18); border-radius: 999px; background: var(--white); font-size: .94rem; font-weight: 500; transition: border-color .2s ease, color .2s ease; }
.plans-help:hover { border-color: var(--navy); }
.plans-help svg { width: 18px; height: 18px; color: var(--red); }
.plan-category { display: flex; flex-direction: column; gap: 24px; }
.plan-category__head { padding-bottom: 16px; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; border-bottom: 1px solid rgba(15,6,33,.1); }
.plan-category__head h3 { margin: 0; font-size: 1.5rem; font-weight: 500; letter-spacing: -.01em; }
.plan-category__head p { margin: 0; color: #3a3349; font-size: .94rem; }
.plan-category__head--combos { align-items: center; }
.plan-category__head--combos > div:first-child { display: grid; gap: 7px; }
.plans-showcase .plan-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.plans-showcase .plan-card { padding: 32px 28px 28px; border: 1px solid rgba(15,6,33,.1); border-radius: 24px; background: var(--white); box-shadow: 0 1px 2px rgba(15,6,33,.04); }
.plans-showcase .plan-card.featured { border-color: rgba(247,247,247,.14); background: var(--navy); box-shadow: 0 24px 48px -24px rgba(15,6,33,.5); transform: none; }
.plans-showcase .plan-card.featured::after { content: ""; width: 184px; aspect-ratio: 135.5 / 155.5; position: absolute; z-index: 0; top: -28px; right: -24px; background: url("/assets/simbolo-vermelho.svg") center / contain no-repeat; opacity: .16; pointer-events: none; }
.plans-showcase .plan-card > * { position: relative; z-index: 1; }
.plans-showcase .plan-card .tag { min-height: auto; margin: 0; color: #d8362f; font-family: "Ubuntu Mono", monospace; font-size: .75rem; font-weight: 500; letter-spacing: .2em; line-height: 1.35; }
.plans-showcase .plan-card.featured .tag { color: #ff6a63; }
.plans-showcase .plan-card h3 { margin: 10px 0 0; font-size: 1.5rem; font-weight: 500; letter-spacing: -.01em; }
.plans-showcase .plan-speed,
.plans-showcase .combo-card .plan-speed { margin: 22px 0 0; align-items: baseline; gap: 10px; }
.plans-showcase .plan-speed strong { font-size: clamp(4rem, 6.5vw, 5.25rem); line-height: .9; letter-spacing: -.05em; }
.plans-showcase .plan-speed span { margin: 0; color: var(--red); font-size: .81rem; font-weight: 500; letter-spacing: .2em; }
.plans-showcase .plan-card ul { margin: 28px 0 0; padding: 24px 0 0; border-color: rgba(15,6,33,.1); }
.plans-showcase .plan-card.featured ul { border-color: rgba(247,247,247,.14); }
.plans-showcase .plan-features { display: flex; flex-direction: column; gap: 12px; }
.plans-showcase .plan-card li { padding: 0; color: #3a3349; font-size: .94rem; }
.plans-showcase .plan-card.featured li { color: #f7f7f7; }
.plans-showcase .feature-icon { width: 16px; height: 16px; padding: 0; border-radius: 0; background: none; color: var(--red); }
.plans-showcase .plan-price { margin-top: auto; padding-top: 32px; gap: 6px; align-items: baseline; }
.plans-showcase .plan-price small { margin: 0; font-size: .88rem; font-weight: 500; }
.plans-showcase .plan-price strong { font-size: 2.75rem; line-height: 1; letter-spacing: -.03em; }
.plans-showcase .plan-price span { margin: 0; color: #3a3349; font-size: .88rem; }
.plans-showcase .plan-card.featured .plan-price span { color: #9c97a8; }
.plan-actions { margin-top: 16px; display: flex; align-items: stretch; gap: 10px; }
.plans-showcase .plan-card .button { width: auto; min-height: 52px; margin: 0; flex: 1; font-size: 1rem; }
.plans-showcase .plan-card > .button { margin-top: 20px; }
.plans-showcase .plan-card:not(.featured) .button { background: var(--navy); color: var(--white); }
.plans-showcase .plan-card.featured .button { background: var(--red-dark); color: var(--white); }
.plan-whatsapp { width: 52px; height: 52px; flex: none; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(15,6,33,.18); border-radius: 999px; transition: border-color .2s ease, color .2s ease; }
.plan-whatsapp:hover { border-color: var(--red); color: var(--red); }
.plan-whatsapp svg { width: 24px; height: 24px; }
.featured .plan-whatsapp { border-color: rgba(247,247,247,.2); }
.plans-showcase .plan-card > small:last-child { margin-top: 12px; color: #3a3349; font-size: .78rem; line-height: 1.45; text-align: left; }
.plans-showcase .plan-card.featured > small:last-child { color: #9c97a8; }
.plans-showcase .condo-style-grid { gap: 16px; }
.plans-showcase .condo-style-grid .plan-card { padding: clamp(28px, 3vw, 42px); border: 0; border-top: 4px solid var(--line); border-radius: 0; box-shadow: none; }
.plans-showcase .condo-style-grid .plan-card.featured { box-shadow: 0 28px 70px rgba(15,6,33,.18); transform: translateY(-12px); }
.plans-showcase .condo-style-grid .plan-card .tag { min-height: 16px; margin-bottom: 16px; font-family: inherit; font-size: .72rem; font-weight: 700; letter-spacing: .1em; line-height: normal; }
.plans-showcase .condo-style-grid .plan-card h3 { margin: 0 0 8px; font-size: clamp(1.5rem, 2vw, 1.9rem); font-weight: 700; letter-spacing: -.045em; }
.plans-showcase .condo-style-grid .plan-speed { margin: 30px 0 24px; align-items: end; gap: 12px; }
.plans-showcase .condo-style-grid .plan-speed strong { font-size: clamp(5.4rem, 7.2vw, 7.6rem); line-height: .68; letter-spacing: -.09em; }
.plans-showcase .condo-style-grid .plan-speed span { margin-bottom: 4px; font-size: .78rem; font-weight: 700; letter-spacing: normal; }
.plans-showcase .condo-style-grid .plan-card ul { margin: 0 0 12px; padding: 20px 0 0; }
.plans-showcase .condo-style-grid .plan-features { gap: 0; }
.plans-showcase .condo-style-grid .plan-card li { padding: 7px 0; font-size: .86rem; }
.plans-showcase .condo-style-grid .feature-icon { width: 32px; height: 32px; padding: 7px; border-radius: 50%; background: #fff0ef; }
.plans-showcase .condo-style-grid .featured .feature-icon { background: rgba(249,66,58,.14); }
.plans-showcase .condo-style-grid .plan-price { padding-top: 18px; align-items: end; gap: 5px; }
.plans-showcase .condo-style-grid .plan-price strong { font-size: 3.6rem; line-height: .82; letter-spacing: -.07em; }
.plans-showcase .condo-style-grid .plan-price small { margin-bottom: 7px; font-weight: 700; }
.plans-showcase .condo-style-grid .plan-price span { margin: 0 0 4px 2px; font-size: .75rem; }
.plans-showcase .condo-style-grid .plan-card > .button { width: 100%; margin-top: 22px; }
.plans-showcase .condo-style-grid .plan-card > small:last-child { text-align: center; }
.plans-showcase .plans-block { margin: 0; padding: 0; border: 0; }
.plan-highlights { display: grid; gap: 20px; margin-top: 20px; }
.plan-highlight { min-height: 310px; position: relative; display: grid; align-items: stretch; overflow: hidden; border-radius: 24px; background: var(--navy); color: var(--white); box-shadow: 0 24px 48px -28px rgba(15,6,33,.55); }
.plan-highlight img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.plan-highlight__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,6,33,.98) 0%, rgba(15,6,33,.88) 38%, rgba(15,6,33,.28) 72%, rgba(15,6,33,.08) 100%); }
.plan-highlight__content { width: min(590px, 58%); padding: clamp(30px, 5vw, 56px); position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.plan-highlight__content > span { color: #ff6a63; font-family: "Ubuntu Mono", monospace; font-size: .75rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.plan-highlight__content h3 { margin: 10px 0 8px; font-size: clamp(1.75rem, 3vw, 2.55rem); line-height: 1.06; }
.plan-highlight__content p { max-width: 490px; margin: 0; color: #d3cfda; line-height: 1.5; }
.plan-highlight__meta { width: 100%; margin-top: 24px; padding: 18px 20px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; background: rgba(255,255,255,.07); backdrop-filter: blur(8px); }
.plan-highlight__meta > strong { max-width: 230px; font-size: clamp(2.2rem, 3.4vw, 3.25rem); font-weight: 700; letter-spacing: -.045em; line-height: .88; }
.plan-highlight__meta div { display: flex; align-items: baseline; gap: 5px; }
.plan-highlight__meta small { color: var(--white); font-size: .9rem; font-weight: 700; }
.plan-highlight__meta em { color: #d3cfda; font-size: .9rem; font-style: normal; }
.plan-highlight__meta b { color: var(--white); font-size: clamp(2.8rem, 4.2vw, 3.8rem); letter-spacing: -.045em; line-height: .86; }
.plan-highlight .button { min-height: 52px; margin-top: 18px; padding-inline: 28px; }
.plans-showcase .combo-speed-tabs { margin: 0; padding: 5px; border-radius: 15px; box-shadow: none; }
.plans-showcase .combo-speed-tabs button { min-height: 54px; padding: 8px 18px; border-radius: 11px; }
.plans-showcase .combo-speed-tabs strong { font-size: .86rem; }
.plans-showcase .combo-speed-tabs span { font-size: .72rem; }
.plans-showcase .combo-card .plan-features { margin-top: 22px; padding-top: 20px; gap: 10px; }
.plans-showcase .combo-card .plan-features li { font-size: .88rem; }
.plans-showcase [data-combo-panel] .plan-features,
.plans-showcase [data-combo-panel] .plan-whatsapp { display: none; }
.plans-showcase [data-combo-panel] .combo-breakdown { margin: 26px 0 16px; }
.plans-showcase [data-combo-panel] .combo-detail { min-height: 40px; }
.plans-showcase [data-combo-panel] .package-stack { margin-top: 0; }
.plans-showcase [data-combo-panel] .plan-actions { margin-top: 20px; }
.plans-showcase [data-combo-panel] .plan-actions .button { width: 100%; }

.condo-teaser { padding: 90px var(--pad); display: grid; grid-template-columns: 1.2fr .8fr; gap: 90px; align-items: center; background: var(--red-dark); color: var(--white); }
.condo-teaser h2 { max-width: 880px; margin-bottom: 0; font-size: clamp(3.2rem, 5.6vw, 6rem); line-height: .92; }
.condo-teaser p { color: var(--white); line-height: 1.7; }
.condo-teaser .button { margin-top: 18px; }

.argument-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.argument-grid article { min-height: 240px; padding: 34px 28px; border-right: 1px solid var(--line); }
.argument-grid article:last-child { border-right: 0; }
.argument-grid span { color: var(--red); font-size: .75rem; font-weight: 700; }
.argument-grid h3 { margin: 52px 0 12px; font-size: 1.35rem; }
.argument-grid p { color: var(--muted); font-size: .86rem; line-height: 1.65; }

.city-seo { display: grid; grid-template-columns: .85fr 1.15fr; gap: 100px; }
.city-seo h2 { margin-bottom: 0; font-size: clamp(3rem, 5vw, 5rem); }
.city-seo-copy { columns: 2; column-gap: 46px; color: var(--muted); line-height: 1.75; }
.city-seo-copy p { break-inside: avoid; }
.districts { margin-top: 46px; padding-top: 32px; border-top: 1px solid var(--line); display: flex; gap: 10px; flex-wrap: wrap; }
.districts span { padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .78rem; }

.condo-hero { min-height: 720px; padding: 100px var(--pad); position: relative; display: grid; align-items: center; overflow: hidden; background: var(--navy); color: var(--white); }
.condo-hero > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.condo-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,3,18,.96) 0%, rgba(8,3,18,.84) 38%, rgba(8,3,18,.2) 72%, rgba(8,3,18,.08)), linear-gradient(0deg, rgba(8,3,18,.55), transparent 55%); }
.condo-hero-inner { width: min(var(--max), 100%); margin: auto; position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 720px) 1fr; gap: 80px; align-items: center; }
.condo-hero h1 { max-width: 900px; margin-bottom: 28px; font-size: clamp(4rem, 7vw, 7.4rem); line-height: .88; }
.condo-hero-copy > p { max-width: 620px; margin-bottom: 34px; color: rgba(255,255,255,.72); font-size: 1.08rem; line-height: 1.7; }
.condo-proof, .business-proof { margin-top: 36px; padding-top: 24px; display: flex; align-items: end; gap: 14px; border-top: 1px solid rgba(255,255,255,.25); }
.condo-proof strong { font-size: clamp(4rem, 7vw, 6.8rem); line-height: .7; letter-spacing: -.08em; }
.condo-proof span { max-width: 170px; color: #ffaaa6; font-size: .86rem; font-weight: 700; line-height: 1.25; }

.process { counter-reset: steps; display: grid; grid-template-columns: repeat(4, 1fr); }
.process article { min-height: 260px; padding: 30px; counter-increment: steps; border-top: 1px solid rgba(255,255,255,.2); border-right: 1px solid rgba(255,255,255,.14); }
.process article::before { content: "0" counter(steps); color: #ff8e89; font-size: .75rem; font-weight: 700; }
.process h3 { margin: 60px 0 12px; font-size: 1.45rem; }
.process p { color: rgba(255,255,255,.6); font-size: .86rem; line-height: 1.65; }

.business-hero { min-height: 700px; padding: 110px var(--pad); position: relative; display: grid; align-items: center; overflow: hidden; background: var(--navy); color: var(--white); }
.business-hero > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.business-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,3,18,.96) 0%, rgba(8,3,18,.82) 40%, rgba(8,3,18,.16) 74%, rgba(8,3,18,.05)), linear-gradient(0deg, rgba(8,3,18,.6), transparent 56%); }
.business-hero-inner { width: min(var(--max), 100%); margin: auto; position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 760px) 1fr; gap: 80px; align-items: end; }
.business-hero h1 { max-width: 890px; margin-bottom: 28px; font-size: clamp(4rem, 7vw, 7.4rem); line-height: .88; }
.business-hero p { max-width: 570px; color: rgba(255,255,255,.78); font-size: 1.08rem; line-height: 1.7; }
.business-proof { color: rgba(255,255,255,.76); font-size: .8rem; font-weight: 700; }
.business-proof span { padding-right: 18px; border-right: 1px solid rgba(255,255,255,.25); }
.business-proof span:last-child { border-right: 0; }
.business-aside { padding: 36px 0 8px 42px; border-left: 1px solid rgba(255,255,255,.38); }
.business-aside strong { display: block; margin-bottom: 24px; font-size: 2rem; }
.business-aside ul { padding: 0; list-style: none; }
.business-aside li { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.solution-list { border-top: 1px solid var(--line); }
.solution-list article { padding: 30px 0; display: grid; grid-template-columns: 90px .8fr 1.2fr; gap: 40px; border-bottom: 1px solid var(--line); align-items: start; }
.solution-list span { color: var(--red); font-size: .75rem; font-weight: 700; }
.solution-list h3 { margin-bottom: 0; font-size: 1.55rem; }
.solution-list p { margin-bottom: 0; color: var(--muted); line-height: 1.7; }

.footer { padding: 76px var(--pad) 34px; background: #090312; color: var(--white); }
.footer-inner { width: min(var(--max), 100%); margin: auto; display: grid; grid-template-columns: 1.25fr repeat(4, minmax(120px, 1fr)); gap: clamp(28px, 4vw, 60px); }
.footer-brand img { width: 160px; }
.footer-brand p { max-width: 320px; margin-top: 22px; color: rgba(255,255,255,.48); font-size: .82rem; line-height: 1.65; }
.footer-brand address { color: rgba(255,255,255,.58); font-size: .78rem; font-style: normal; line-height: 1.65; }
.footer nav { display: flex; flex-direction: column; gap: 11px; }
.footer nav strong { margin-bottom: 8px; color: #ff8e89; font-size: .73rem; letter-spacing: .1em; text-transform: uppercase; }
.footer nav a { color: rgba(255,255,255,.64); font-size: .82rem; }
.footer nav a:hover { color: var(--white); }
.footer nav .footer-subtitle { margin: 12px 0 2px; }
.footer-bottom { width: min(var(--max), 100%); margin: 48px auto 0; padding-top: 24px; display: flex; justify-content: space-between; gap: 24px; border-top: 1px solid rgba(255,255,255,.11); color: rgba(255,255,255,.34); font-size: .75rem; }
.footer-bottom a:hover { color: rgba(255,255,255,.75); }

.section-muted { background: #ebe8e5; }
.content-hero { padding: clamp(84px, 10vw, 150px) var(--pad); overflow: hidden; background: var(--navy); color: var(--white); }
.isp-page .content-hero { position: relative; isolation: isolate; background-color: var(--navy); }
.isp-page .content-hero::before { content: ""; width: 58%; position: absolute; z-index: -2; inset: 0 0 0 auto; background: url("/assets/isp-network-infrastructure.webp") center center / cover no-repeat; opacity: .78; }
.isp-page .content-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, var(--navy) 0%, rgba(15,6,33,.98) 43%, rgba(15,6,33,.72) 69%, rgba(15,6,33,.42) 100%), linear-gradient(0deg, rgba(15,6,33,.72), transparent 50%); }
.content-hero-inner { width: min(var(--max), 100%); margin: auto; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .65fr); gap: clamp(50px, 9vw, 140px); align-items: end; }
.content-hero h1 { max-width: 900px; margin-bottom: 28px; font-size: clamp(4rem, 7vw, 7.2rem); line-height: .88; }
.content-hero-copy > p { max-width: 670px; margin-bottom: 34px; color: rgba(255,255,255,.7); font-size: 1.08rem; line-height: 1.7; }
.content-hero-panel { padding: 30px 0 8px 36px; border-left: 1px solid rgba(255,255,255,.26); }
.isp-page .content-hero-panel { padding: 30px 30px 26px 36px; border-radius: 0 18px 18px 0; background: rgba(15,6,33,.48); backdrop-filter: blur(9px); }
.content-hero-panel strong { display: block; margin-bottom: 18px; color: #ff8e89; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }
.content-hero-panel p { margin-bottom: 22px; color: rgba(255,255,255,.68); line-height: 1.65; }
.content-hero-panel a { display: inline-flex; padding-bottom: 5px; border-bottom: 1px solid rgba(255,255,255,.5); font-weight: 700; }
.about-hero { position: relative; isolation: isolate; min-height: 690px; background-color: var(--navy); }
.about-hero::before { content: ""; position: absolute; z-index: -2; inset: 0 0 0 auto; width: 54%; background: url("/assets/quem-somos-sede-elevar.webp") center 57% / cover no-repeat; }
.about-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, var(--navy) 0%, rgba(15,6,33,.96) 44%, rgba(15,6,33,.38) 70%, rgba(15,6,33,.08) 100%), linear-gradient(0deg, rgba(15,6,33,.38), transparent 55%); }
.about-hero .content-hero-inner { position: relative; z-index: 1; }
.about-hero .content-hero-panel { padding: 30px 30px 26px 36px; border-radius: 0 18px 18px 0; background: rgba(15,6,33,.58); backdrop-filter: blur(9px); }

.service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.service-card { min-height: 300px; padding: clamp(28px, 3vw, 42px); display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 18px; background: var(--white); }
.service-card .service-index { color: var(--red-dark); font-family: "Ubuntu Mono", monospace; font-size: .78rem; }
.service-card h3 { margin: 38px 0 14px; font-size: clamp(1.6rem, 2.4vw, 2.35rem); }
.service-card p { color: var(--muted); line-height: 1.7; }
.service-card ul { margin: auto 0 0; padding: 22px 0 0; display: grid; gap: 9px; border-top: 1px solid var(--line); list-style: none; color: #4c4551; font-size: .86rem; }
.service-card li::before { content: "•"; margin-right: 9px; color: var(--red); }
.service-card-wide { grid-column: 1 / -1; min-height: 230px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: start; }
.service-card-wide h3 { margin-top: 10px; }

.quality-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.quality-grid article { min-height: 210px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.quality-grid h3 { margin: 46px 0 12px; font-size: 1.3rem; }
.quality-grid p { margin-bottom: 0; color: var(--muted); font-size: .86rem; line-height: 1.65; }
.quality-grid span { color: var(--red); font-family: "Ubuntu Mono", monospace; font-size: .75rem; }

.faq-list { display: grid; border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { padding: 24px 42px 24px 0; position: relative; cursor: pointer; list-style: none; font-size: 1.05rem; font-weight: 700; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::before, .faq-list summary::after { content: ""; width: 14px; height: 2px; position: absolute; top: 50%; right: 8px; background: var(--red); border-radius: 1px; transition: transform .2s cubic-bezier(0.16,1,0.3,1); }
.faq-list summary::before { transform: translateY(-50%); }
.faq-list summary::after { transform: translateY(-50%) rotate(90deg); }
.faq-list details[open] summary::after { transform: translateY(-50%) rotate(0deg); }
.faq-list details p { max-width: 850px; padding: 0 42px 24px 0; color: var(--muted); line-height: 1.7; }

.lead-section { background: var(--red-dark); color: var(--white); }
.lead-shell { width: min(var(--max), 100%); margin: auto; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(50px, 8vw, 120px); align-items: start; }
.lead-copy h2 { margin-bottom: 24px; font-size: clamp(3rem, 5vw, 5.4rem); line-height: .94; }
.lead-copy p { color: var(--white); line-height: 1.7; }
.lead-form { padding: clamp(28px, 4vw, 48px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; border-radius: 22px; background: var(--white); color: var(--ink); box-shadow: 0 28px 70px rgba(15,6,33,.2); }
.lead-form label { min-width: 0; display: grid; gap: 8px; color: #413947; font-size: .8rem; font-weight: 700; }
.lead-form input, .lead-form select, .lead-form textarea { width: 100%; min-width: 0; min-height: 52px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); color: var(--ink); font-size: 1rem; outline: 0; }
.lead-form textarea { min-height: 118px; resize: vertical; }
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(249,66,58,.12); }
.lead-form .span-2 { grid-column: 1 / -1; }
.lead-form .button { justify-self: start; }
.lead-form small { color: var(--muted); font-weight: 400; line-height: 1.5; }
.form-status { min-height: 20px; margin: 0; color: var(--success); font-size: .82rem; font-weight: 700; }

.coverage-showcase { min-height: 620px; padding: clamp(30px, 4vw, 58px); display: grid; grid-template-columns: minmax(260px, .62fr) minmax(520px, 1.38fr); gap: clamp(34px, 5vw, 74px); overflow: hidden; border: 1px solid var(--line); background: #d7d6d37a; }
.coverage-copy { display: flex; flex-direction: column; justify-content: center; }
.coverage-copy h3 { margin: 24px 0 22px; font-size: clamp(2.5rem, 4.2vw, 4.6rem); font-weight: 300; line-height: 1.02; letter-spacing: -.035em; }
.coverage-copy h3 em { display: block; color: var(--red); font-style: normal; font-weight: 500; }
.coverage-copy > p { max-width: 340px; color: var(--muted); font-size: 1.06rem; line-height: 1.65; }
.coverage-copy ul { max-width: 300px; margin: 28px 0 24px; padding: 0; list-style: none; }
.coverage-copy li { border-top: 1px solid rgba(15,6,33,.12); }
.coverage-copy a { padding: 10px 0; display: block; font-weight: 500; }
.coverage-copy a:hover { color: var(--red); }
.coverage-copy small { margin-top: auto; color: #5c5563; font-family: "Ubuntu Mono", monospace; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.coverage-map { position: relative; aspect-ratio: 600 / 550; align-self: center; margin: 0; }
.coverage-map__base { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: contain; }
.map-marker { position: absolute; display: flex; align-items: center; gap: 8px; color: var(--navy); font-size: clamp(.72rem, 1.25vw, 1rem); font-weight: 700; white-space: nowrap; transform: translate(-9px,-9px); border-radius: 4px; background: #ffffffe3; padding: 8px 12px; transition: color .2s ease; }
.map-marker img { width: clamp(17px, 2vw, 27px); height: auto; flex: none; object-fit: contain; }
.map-marker:hover { color: var(--red); }
.map-marker--hortolandia { left: 38.39%; top: 34.67%; }
.map-marker--campinas { left: 61.79%; top: 38.67%; }
.map-marker--sumare { left: 38.02%; top: 31.27%; flex-direction: row-reverse; transform: translate(-100%,-9px); }
.map-marker--monte-mor { left: 25.69%; top: 47.57%; }
.map-marker--paulinia { left: 47.49%; top: 15.77%; }
.map-marker--indaiatuba { left: 40.19%; top: 72.57%; }
.map-marker--elias-fausto { left: 16.99%; top: 66.97%; }
/* Pulso de entrada único (ver .is-in-view em site.js) — usa `scale` isolado
   em vez de `transform: scale()` pra compor sem sobrescrever o `transform:
   translate(...)` que cada marcador já tem acima (`--sumare` inclusive). */
.coverage-map.is-in-view .map-marker { animation: marker-pulse .5s cubic-bezier(0.16,1,0.3,1) both; }
.coverage-map.is-in-view .map-marker--campinas { animation-delay: .07s; }
.coverage-map.is-in-view .map-marker--sumare { animation-delay: .14s; }
.coverage-map.is-in-view .map-marker--monte-mor { animation-delay: .21s; }
.coverage-map.is-in-view .map-marker--paulinia { animation-delay: .28s; }
.coverage-map.is-in-view .map-marker--indaiatuba { animation-delay: .35s; }
.coverage-map.is-in-view .map-marker--elias-fausto { animation-delay: .42s; }
@keyframes marker-pulse { from { opacity: 0; scale: .8; } to { opacity: 1; scale: 1; } }

.home-feature { padding: 90px var(--pad); background: var(--white); }
.home-feature-inner { width: min(var(--max), 100%); margin: auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: center; }
.home-feature h2 { margin-bottom: 20px; font-size: clamp(3rem, 5vw, 5.6rem); line-height: .94; }
.home-feature p { color: var(--muted); line-height: 1.7; }
.home-feature-card { padding: 38px; border-radius: 22px; background: var(--red-dark); color: var(--white); }
.home-feature-card strong { display: block; margin-bottom: 14px; font-size: clamp(2.8rem, 5vw, 5rem); line-height: .9; }
.home-feature-card p { color: var(--white); }

.story-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 9vw, 140px); align-items: start; }
.story-grid h2 { margin-bottom: 0; font-size: clamp(3rem, 5vw, 5.2rem); line-height: .95; }
.story-copy { color: var(--muted); font-size: 1.02rem; line-height: 1.85; }
.story-copy p:last-child { margin-bottom: 0; }
.timeline { margin-top: 58px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.timeline article { padding: 30px 30px 0 0; }
.timeline span { color: var(--red); font-family: "Ubuntu Mono", monospace; font-size: .76rem; }
.timeline h3 { margin: 30px 0 12px; }
.timeline p { color: var(--muted); font-size: .86rem; line-height: 1.65; }

.referral-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.referral-steps article { padding: 34px; border-radius: 18px; background: var(--white); }
.referral-steps span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fff0ef; color: var(--red); font-weight: 700; }
.referral-steps h3 { margin: 34px 0 12px; font-size: 1.4rem; }
.referral-steps p { color: var(--muted); font-size: .88rem; line-height: 1.65; }

.document-shell { width: min(1000px, 100%); margin: auto; }
.document-empty { padding: clamp(34px, 6vw, 70px); border: 1px solid var(--line); border-radius: 22px; background: var(--white); text-align: center; }
.document-empty h2 { margin-bottom: 16px; font-size: clamp(2rem, 4vw, 3.5rem); }
.document-empty p { max-width: 680px; margin: 0 auto; color: var(--muted); line-height: 1.7; }
.document-template { margin-top: 22px; padding: 20px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; border: 1px dashed #c7c1ca; border-radius: 14px; text-align: left; }
.document-template strong { display: block; margin-bottom: 5px; }
.document-template small { color: var(--muted); }
.document-template .button { cursor: not-allowed; opacity: .5; }
.privacy-document { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; padding: clamp(28px, 5vw, 50px); border-radius: 22px; background: var(--white); box-shadow: 0 16px 45px rgba(15,6,33,.06); }
.privacy-document h2 { margin-bottom: 10px; font-size: clamp(2rem, 4vw, 3.5rem); }
.privacy-document p { max-width: 660px; margin-bottom: 0; color: var(--muted); line-height: 1.7; }
.privacy-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }

.checkout-page { min-height: 100vh; background: #efedeb; }
.checkout-header { min-height: 78px; padding: 0 var(--pad); display: flex; align-items: center; justify-content: space-between; background: var(--white); border-bottom: 1px solid var(--line); }
.checkout-header img { width: 122px; }
.checkout-header a:last-child { color: var(--muted); font-size: .8rem; font-weight: 700; }
.checkout-top { padding: 42px var(--pad) 0; background: var(--white); }
.checkout-top-inner { width: min(1180px, 100%); margin: auto; }
.checkout-kicker { margin-bottom: 9px; color: var(--muted); font-size: .82rem; }
.checkout-top h1 { margin-bottom: 30px; font-size: clamp(2.2rem, 4vw, 3.8rem); }
.checkout-progress { display: grid; grid-template-columns: repeat(5, 1fr); }
.progress-step { padding: 0 10px 15px 0; position: relative; border-bottom: 3px solid #dfdbd8; color: #9a949c; font-size: .72rem; font-weight: 700; transition: border-color .25s ease, color .25s ease; }
.progress-step::after { content: ""; width: 10px; height: 10px; position: absolute; right: 0; bottom: -6px; border-radius: 50%; background: #dfdbd8; transition: background-color .25s ease; }
.progress-step.is-active, .progress-step.is-done { border-color: var(--red); color: var(--navy); }
.progress-step.is-active::after, .progress-step.is-done::after { background: var(--red); }
.checkout-shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 46px 0 90px; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 44px; align-items: start; }
.checkout-main { min-width: 0; }
.checkout-shell > * { min-width: 0; }
.checkout-step { padding: clamp(28px, 4vw, 46px); background: var(--white); border-radius: 18px; box-shadow: 0 12px 35px rgba(15,6,33,.05); transition: opacity .3s cubic-bezier(0.16,1,0.3,1), transform .3s cubic-bezier(0.16,1,0.3,1); }
.checkout-step[hidden] { display: none; }
@starting-style { .checkout-step:not([hidden]) { opacity: 0; transform: translateY(10px); } }
.checkout-step h2 { margin-bottom: 10px; font-size: 2rem; }
.checkout-step > p { margin-bottom: 30px; color: var(--muted); line-height: 1.6; }
.checkout-notice { margin-bottom: 28px; padding: 14px 16px; border-radius: 10px; background: #fff3f2; color: #6c3431; font-size: .82rem; line-height: 1.55; }
.checkout-notice-error { margin-top: 18px; background: #fff0ef; color: #8f312d; }
.checkout-context-error { margin-block: 48px; }
.checkout-form label { display: flex; flex-direction: column; gap: 8px; color: #413947; font-size: .8rem; font-weight: 700; }
.checkout-form input:not([type="radio"]):not([type="checkbox"]), .checkout-form select { width: 100%; min-height: 52px; padding: 0 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); outline: none; color: var(--ink); }
.checkout-form input:focus, .checkout-form select:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(249,66,58,.12); }
/* Campos preenchidos automaticamente pelo CEP (rua/número/bairro) ficam
   travados por padrão -- o lápis destrava pra corrigir quando o
   preenchimento automático vier errado. */
.field-lockable { position: relative; display: block; }
.field-lockable input[readonly] { padding-right: 48px; background: var(--paper); color: var(--muted); cursor: default; }
.field-lockable input[readonly]:focus { border-color: var(--line); box-shadow: none; }
.field-lockable__edit { position: absolute; top: 50%; right: 4px; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: none; border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer; }
.field-lockable__edit svg { width: 18px; height: 18px; }
.field-lockable__edit:hover { background: var(--paper); color: var(--red); }
.field-lockable__edit[hidden] { display: none; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-grid .span-2 { grid-column: 1 / -1; }
.form-actions { margin-top: 30px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.form-feedback { min-height: 20px; margin: 13px 0 0; color: var(--muted); font-size: .8rem; }
.form-feedback[data-state="error"] { color: #a32823; }
.form-feedback[data-state="success"] { color: var(--success); font-weight: 700; }
.form-feedback[data-state="loading"] { position: relative; padding-left: 22px; }
.form-feedback[data-state="loading"]::before { content: ""; width: 10px; height: 10px; position: absolute; left: 0; top: 50%; margin-top: -5px; border: 2px solid var(--red); border-top-color: transparent; border-radius: 50%; animation: spin .8s linear infinite; }
.product-list { display: grid; gap: 10px; }
.product-group-title { margin: 20px 0 2px; color: var(--navy); font-size: 1rem; }
.product-group-title:first-child { margin-top: 0; }
.checkout-combo-block { margin-top: 20px; display: grid; gap: 10px; }
.checkout-combo-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.checkout-combo-heading .product-group-title { margin: 0; }
.checkout-combo-tabs { padding: 4px; display: grid; grid-template-columns: repeat(2, minmax(112px, 1fr)); gap: 4px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.checkout-combo-tabs button { min-height: 42px; padding: 0 16px; border: 0; border-radius: 10px; background: transparent; color: var(--ink); cursor: pointer; font-weight: 700; }
.checkout-combo-tabs button[aria-selected="true"] { background: var(--navy); color: var(--white); }
.checkout-combo-tabs button:focus-visible { outline: 3px solid rgba(249,66,58,.25); outline-offset: 2px; }
.checkout-combo-panel { display: grid; gap: 10px; }
.product-option { padding: 20px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; border: 1px solid var(--line); border-radius: 14px; cursor: pointer; transition: .2s ease; }
.product-option:hover { border-color: #aaa2ae; }
.product-option.is-selected { border: 2px solid var(--red); background: #fff7f6; }
.product-option input { width: 18px; height: 18px; accent-color: var(--red); }
.product-copy { display: grid; grid-template-columns: 1fr auto; gap: 3px 20px; align-items: baseline; }
.product-copy small { grid-column: 1 / -1; color: var(--red); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.product-copy strong { font-size: 1.05rem; }
.product-copy b { font-size: 1.25rem; }
.product-copy em { grid-column: 1 / -1; color: var(--muted); font-size: .78rem; font-style: normal; font-weight: 400; }
.product-components { grid-column: 1 / -1; margin-top: 7px; padding-top: 8px; display: grid; gap: 4px; border-top: 1px solid var(--line); }
.product-components span { display: flex; justify-content: space-between; gap: 15px; color: var(--muted); font-size: .7rem; }
.product-components b { color: var(--ink); font-size: inherit; white-space: nowrap; }
.product-no-loyalty { grid-column: 1 / -1; color: var(--muted); font-size: .7rem; }
.product-price { display: flex; align-items: baseline; gap: 3px; white-space: nowrap; }
.product-price strong { font-size: 1.5rem; }
.product-price small { color: var(--muted); font-size: .7rem; }
.terms { margin-top: 22px; display: flex !important; flex-direction: row !important; align-items: start; gap: 10px !important; color: var(--muted) !important; font-weight: 400 !important; line-height: 1.5; }
.terms input { margin-top: 3px; accent-color: var(--red); }
.terms a { color: var(--red); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.slot-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.slot-option { min-height: 112px; padding: 18px; display: flex; align-items: start; gap: 12px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.slot-option:has(input:checked) { border: 2px solid var(--red); background: #fff7f6; }
.slot-option input { margin-top: 3px; accent-color: var(--red); }
.slot-option strong { display: block; margin-bottom: 7px; }
.slot-option small { color: var(--muted); }
.review-list { margin: 0; border-top: 1px solid var(--line); }
.review-list div { padding: 20px 0; display: grid; grid-template-columns: .55fr 1fr; gap: 30px; border-bottom: 1px solid var(--line); }
.review-list dt { color: var(--muted); }
.review-list dd { margin: 0; font-weight: 700; }
.order-summary { position: sticky; top: 22px; padding: 28px; border-radius: 18px; background: var(--navy); color: var(--white); box-shadow: 0 18px 50px rgba(15,6,33,.18); }
.summary-heading { padding-bottom: 18px; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.16); }
.summary-heading span { font-weight: 700; }
.summary-heading small { color: #ff8e89; }
.summary-product { padding: 24px 0; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(255,255,255,.16); }
.summary-product small, .summary-product strong { display: block; }
.summary-product small { margin-bottom: 5px; color: rgba(255,255,255,.52); }
.summary-product > b { white-space: nowrap; }
.summary-components { padding: 14px 0; display: grid; gap: 6px; border-bottom: 1px solid rgba(255,255,255,.16); }
.summary-components span { display: flex; justify-content: space-between; gap: 14px; color: rgba(255,255,255,.58); font-size: .7rem; }
.summary-components b { color: var(--white); white-space: nowrap; }
.order-summary dl { margin: 18px 0; }
.order-summary dl div { padding: 5px 0; display: flex; justify-content: space-between; gap: 18px; font-size: .75rem; }
.order-summary dt { color: rgba(255,255,255,.52); }
.order-summary dd { margin: 0; text-align: right; }
.summary-total { padding-top: 18px; display: flex; align-items: end; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.16); }
.summary-total strong { font-size: 1.7rem; }
.order-summary > p { margin: 18px 0 0; color: rgba(255,255,255,.48); font-size: .7rem; line-height: 1.5; }
.order-success { width: min(760px, calc(100% - 48px)); margin: 70px auto; padding: clamp(40px, 7vw, 76px); border-radius: 22px; background: var(--white); text-align: center; box-shadow: 0 20px 60px rgba(15,6,33,.08); }
.success-mark { width: 70px; height: 70px; margin: 0 auto 28px; display: grid; place-items: center; border-radius: 50%; background: #e4f3eb; color: var(--success); font-size: 2rem; font-weight: 700; }
.order-success h2 { margin-bottom: 14px; font-size: clamp(2.4rem, 5vw, 4.5rem); }
.order-success p { color: var(--muted); line-height: 1.7; }
.protocol { margin: 26px auto; padding: 16px; border-radius: 10px; background: var(--paper); font-weight: 700; }
.prototype-note { padding: 10px var(--pad); background: #fff2b5; color: #56470a; text-align: center; font-size: .75rem; }

@media (max-width: 1100px) {
  .site-header { grid-template-columns: 150px 1fr auto; gap: 20px; }
  .main-nav { gap: 13px; }
  .main-nav a { font-size: .76rem; }
  .header-actions .button { display: none; }
  .argument-grid { grid-template-columns: 1fr 1fr; }
  .argument-grid article:nth-child(2) { border-right: 0; }
  .argument-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .quality-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .checkout-shell { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
}

@media (max-width: 1180px) {
  .site-header { grid-template-columns: 1fr auto; }
  .menu-button { display: block; }
  .main-nav { padding: 24px var(--pad); position: absolute; left: 0; right: 0; top: 82px; display: flex; align-items: stretch; flex-direction: column; background: var(--white); box-shadow: 0 20px 35px rgba(15,6,33,.12); visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .22s cubic-bezier(0.16,1,0.3,1), transform .22s cubic-bezier(0.16,1,0.3,1), visibility .22s; }
  .main-nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
  .main-nav a { font-size: .86rem; }
  .main-nav .nav-central { width: fit-content; }
  .header-actions { display: none; }
}

@media (max-width: 860px) {
  .notice { min-height: 40px; padding-inline: 18px; }
  .notice__inner { justify-content: flex-end; gap: 0; }
  .notice__location { display: none; }
  .notice__tools { width: 100%; justify-content: space-between; gap: 10px; }
  .notice__contact { flex: none; }
  .notice__social { flex: none; gap: 8px; }
  .site-header { min-height: 72px; grid-template-columns: 1fr auto; }
  .menu-button { display: block; }
  .main-nav { padding: 24px var(--pad); position: absolute; left: 0; right: 0; top: 72px; display: flex; align-items: stretch; flex-direction: column; background: var(--white); box-shadow: 0 20px 35px rgba(15,6,33,.12); visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .22s cubic-bezier(0.16,1,0.3,1), transform .22s cubic-bezier(0.16,1,0.3,1), visibility .22s; }
  .main-nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
  .header-actions { display: none; }
  .location-shell, .condo-hero-inner, .business-hero-inner { grid-template-columns: 1fr; gap: 60px; }
  .location-home { min-height: 0; }
  .location-copy h1 { font-size: clamp(3.5rem, 13vw, 6rem); }
  .page-hero { min-height: 720px; }
  .coverage-band-inner, .section-lead, .condo-teaser, .city-seo { grid-template-columns: 1fr; gap: 36px; }
  .coverage-form { min-width: 0; }
  .plan-grid { grid-template-columns: 1fr; }
  .plans-showcase__header { align-items: flex-start; flex-direction: column; }
  .plans-showcase .plan-grid { grid-template-columns: 1fr; }
  .plan-category__head--combos { align-items: flex-start; flex-direction: column; }
  .plans-showcase .combo-speed-tabs { width: 100%; }
  .plan-highlight { min-height: 520px; align-items: end; }
  .plan-highlight img { object-position: 64% center; }
  .plan-highlight__overlay { background: linear-gradient(0deg, rgba(15,6,33,.99) 0%, rgba(15,6,33,.91) 48%, rgba(15,6,33,.18) 100%); }
  .plan-highlight__content { width: 100%; padding: 28px 24px; }
  .plan-highlight__meta { grid-template-columns: 1fr; align-items: flex-start; gap: 18px; }
  .plan-highlight__meta > strong { font-size: 2.65rem; }
  .plan-highlight__meta b { font-size: 3.15rem; }
  .plan-card { min-height: 0; }
  .plans-showcase .condo-style-grid .plan-card.featured { transform: none; }
  .combo-card { min-height: 0; }
  .argument-grid, .process { grid-template-columns: 1fr 1fr; }
  .process article:nth-child(2) { border-right: 0; }
  .city-seo-copy { columns: 1; }
  .solution-list article { grid-template-columns: 54px 1fr; }
  .solution-list p { grid-column: 2; }
  .content-hero-inner, .lead-shell, .home-feature-inner, .story-grid { grid-template-columns: 1fr; }
  .coverage-showcase { min-height: 0; grid-template-columns: 1fr; }
  .coverage-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
  .coverage-copy h3, .coverage-copy > p, .coverage-copy small { grid-column: 1 / -1; }
  .coverage-copy ul { width: 100%; max-width: none; grid-column: 1 / -1; columns: 2; column-gap: 32px; }
  .coverage-copy small { margin-top: 10px; }
  .content-hero-panel { padding: 28px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.26); }
  .isp-page .content-hero::before { width: 100%; opacity: .38; }
  .isp-page .content-hero::after { background: linear-gradient(90deg, rgba(15,6,33,.97), rgba(15,6,33,.74)), linear-gradient(0deg, rgba(15,6,33,.86), transparent 55%); }
  .isp-page .content-hero-panel { padding: 26px; border-left: 0; border-radius: 16px; background: rgba(15,6,33,.66); }
  .about-hero { min-height: 0; }
  .about-hero::before { width: 100%; background-position: center 55%; opacity: .58; }
  .about-hero::after { background: linear-gradient(90deg, rgba(15,6,33,.90), rgba(15,6,33,.48)), linear-gradient(0deg, rgba(15,6,33,.72), rgba(15,6,33,.10) 55%, rgba(15,6,33,.58)); }
  .about-hero .content-hero-panel { padding: 26px; border-left: 0; border-radius: 16px; background: rgba(15,6,33,.70); }
  .service-card-wide { grid-template-columns: 1fr; gap: 10px; }
  .timeline { grid-template-columns: 1fr; }
  .referral-steps { grid-template-columns: 1fr; }
  .privacy-document { grid-template-columns: 1fr; }
  .privacy-actions { justify-content: flex-start; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .checkout-shell { grid-template-columns: 1fr; }
  .order-summary { position: static; order: -1; }
}

@media (max-width: 560px) {
  .checkout-combo-heading { align-items: stretch; flex-direction: column; }
  .checkout-combo-tabs { width: 100%; }
  .checkout-combo-tabs button { min-width: 0; }
  :root { --pad: 20px; }
  .brand img { width: 116px; }
  .location-home { padding-block: 70px; }
  .location-copy h1 { font-size: 3.5rem; }
  .location-card { padding: 26px 20px; }
  .city-grid { grid-template-columns: 1fr; }
  .page-hero { min-height: 670px; padding-block: 76px; align-items: end; }
  .hero-inner h1, .condo-hero h1, .business-hero h1 { font-size: 3.6rem; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .coverage-form { flex-direction: column; }
  .coverage-form input { min-width: 0; }
  .coverage-action .button { width: 100%; }
  .coverage-dialog { padding: 38px 24px 26px; border-radius: 22px; }
  .coverage-dialog h2 { font-size: 2.45rem; }
  .coverage-dialog__actions { align-items: stretch; flex-direction: column; }
  .coverage-dialog__actions .button { width: 100%; }
  .section { padding-block: 82px; }
  .plans-showcase { padding-block: 68px; }
  .plans-showcase__inner { gap: 48px; }
  .plans-showcase__header h2 { font-size: 2.5rem; }
  .plans-help { width: 100%; justify-content: center; }
  .section-lead h2, .condo-teaser h2 { font-size: 3.3rem; }
  .plan-card { min-height: 0; padding: 28px 24px; }
  .plans-showcase .plan-card { padding: 28px 24px 24px; }
  .plans-showcase .plan-speed strong { font-size: clamp(4rem, 21vw, 5.25rem); }
  .plans-showcase .plan-card .button { padding-inline: 16px; font-size: .94rem; }
  .plans-block { margin-top: 72px; padding-top: 68px; }
  .combo-speed-tabs { width: 100%; grid-template-columns: 1fr 1fr; }
  .combo-speed-tabs button { min-width: 0; padding-inline: 10px; }
  .combo-card { min-height: 0; }
  .combo-for { min-height: 0; }
  .argument-grid, .process { grid-template-columns: 1fr; }
  .argument-grid article { border-right: 0; border-bottom: 1px solid var(--line); }
  .condo-hero { padding-block: 76px; }
  .condo-hero > img, .business-hero > img { object-position: 62% center; }
  .plan-card.featured { transform: none; }
  .business-aside { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.35); }
  .solution-list article { grid-template-columns: 42px 1fr; gap: 20px; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .service-grid, .quality-grid, .lead-form { grid-template-columns: 1fr; }
  .service-card-wide, .lead-form .span-2 { grid-column: auto; }
  .coverage-showcase { padding: 26px 18px; border-radius: 20px; }
  .coverage-copy { display: flex; flex-direction: column; }
  .coverage-copy h3 { font-size: 2.7rem; }
  .coverage-copy ul { columns: 1; }
  .coverage-map { margin-inline: -10px; }
  .map-marker { gap: 4px; font-size: .64rem; }
  .content-hero h1 { font-size: 3.6rem; }
  .content-hero { padding-block: 76px; }
  .home-feature { padding-block: 76px; }
  .checkout-header { padding-inline: 20px; }
  .checkout-top { padding-inline: 20px; }
  .checkout-progress { min-width: 0; overflow: visible; grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .progress-step { min-width: 0; padding: 0 3px 12px 0; overflow-wrap: anywhere; font-size: .62rem; line-height: 1.2; }
  .checkout-shell { width: calc(100% - 20px); padding-top: 20px; gap: 18px; }
  .checkout-step { min-width: 0; padding: 24px 16px; }
  .checkout-form input:not([type="radio"]):not([type="checkbox"]), .checkout-form select, .lead-form input, .lead-form select, .lead-form textarea { min-width: 0; font-size: 16px; }
  .order-summary { padding: 22px 18px; }
  .product-option { min-width: 0; padding: 16px 12px; gap: 12px; }
  .product-copy, .product-components, .product-components span { min-width: 0; overflow-wrap: anywhere; }
  .form-grid, .slot-list { grid-template-columns: 1fr; }
  .product-option { grid-template-columns: auto 1fr; }
  .product-price { grid-column: 2; }
  .form-grid .span-2 { grid-column: auto; }
  .form-actions { align-items: stretch; flex-direction: column-reverse; }
  .form-actions .button { width: 100%; }
  .product-option { grid-template-columns: auto 1fr; }
  .product-price { grid-column: 2; }
  .product-copy { grid-template-columns: 1fr; }
  .product-copy em, .product-copy small { grid-column: auto; }
  .review-list div { grid-template-columns: 1fr; gap: 7px; }
}

@media (max-width: 370px) {
  .notice__divider, .notice__social { display: none; }
  .notice__tools { justify-content: center; }
}

/* Reveal on scroll — blocos e headings que se repetem na maioria das
   páginas. Usa `transition` (nunca `animation`+fill:both) de propósito: uma
   animation com fill "both" prenderia opacity/transform pra sempre, brigando
   com :hover e com .plan-card.featured depois que o elemento já revelou.
   .is-in-view vem do mesmo IntersectionObserver de site.js (cobre reduced
   motion e navegadores sem IntersectionObserver). */
.section-lead, .isp-heading-row, .plans-showcase__header, .business-feature-head,
.city-seo, .condo-teaser, .home-feature-inner, .coverage-showcase, .lead-shell,
.story-grid, .isp-split, .business-diagram-layout, .redundancy-layout,
.fixed-ip-layout, .ix-layout, .capability-layout, .faq-list,
.referral-rules-layout, .referral-cta, .privacy-document, .document-empty,
.quality-grid > article, .argument-grid > article, .differential-grid > article,
.timeline > article, .solution-list > article, .technical-cards > article {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .6s cubic-bezier(0.16,1,0.3,1), transform .6s cubic-bezier(0.16,1,0.3,1);
}
.section-lead.is-in-view, .isp-heading-row.is-in-view, .plans-showcase__header.is-in-view,
.business-feature-head.is-in-view, .city-seo.is-in-view, .condo-teaser.is-in-view,
.home-feature-inner.is-in-view, .coverage-showcase.is-in-view, .lead-shell.is-in-view,
.story-grid.is-in-view, .isp-split.is-in-view, .business-diagram-layout.is-in-view,
.redundancy-layout.is-in-view, .fixed-ip-layout.is-in-view, .ix-layout.is-in-view,
.capability-layout.is-in-view, .faq-list.is-in-view, .referral-rules-layout.is-in-view,
.referral-cta.is-in-view, .privacy-document.is-in-view, .document-empty.is-in-view,
.quality-grid.is-in-view > article, .argument-grid.is-in-view > article,
.differential-grid.is-in-view > article, .timeline.is-in-view > article,
.solution-list.is-in-view > article, .technical-cards.is-in-view > article {
  opacity: 1;
  transform: translateY(0);
}
.quality-grid.is-in-view > article:nth-child(2), .argument-grid.is-in-view > article:nth-child(2),
.differential-grid.is-in-view > article:nth-child(2), .timeline.is-in-view > article:nth-child(2),
.solution-list.is-in-view > article:nth-child(2), .technical-cards.is-in-view > article:nth-child(2) {
  transition-delay: .08s;
}
.quality-grid.is-in-view > article:nth-child(3), .argument-grid.is-in-view > article:nth-child(3),
.differential-grid.is-in-view > article:nth-child(3), .timeline.is-in-view > article:nth-child(3),
.solution-list.is-in-view > article:nth-child(3), .technical-cards.is-in-view > article:nth-child(3) {
  transition-delay: .16s;
}
.quality-grid.is-in-view > article:nth-child(n+4), .argument-grid.is-in-view > article:nth-child(n+4),
.differential-grid.is-in-view > article:nth-child(n+4), .timeline.is-in-view > article:nth-child(n+4),
.solution-list.is-in-view > article:nth-child(n+4), .technical-cards.is-in-view > article:nth-child(n+4) {
  transition-delay: .24s;
}

/* Mesma ideia, mas só opacidade (sem transform) pra cards que já têm
   `transform` próprio em outro estado (.plan-card.featured, hover de
   .service-card/.referral-steps article) -- evita competir com eles. */
.plan-grid > .plan-card, .service-grid > .service-card, .referral-steps > article {
  opacity: 0;
  transition: opacity .6s ease;
}
.plan-grid.is-in-view > .plan-card, .service-grid.is-in-view > .service-card,
.referral-steps.is-in-view > article {
  opacity: 1;
}
.plan-grid.is-in-view > .plan-card:nth-child(2), .service-grid.is-in-view > .service-card:nth-child(2),
.referral-steps.is-in-view > article:nth-child(2) { transition-delay: .08s; }
.plan-grid.is-in-view > .plan-card:nth-child(3), .service-grid.is-in-view > .service-card:nth-child(3),
.referral-steps.is-in-view > article:nth-child(3) { transition-delay: .16s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ISP editorial depth */
.isp-page .service-card { color: inherit; transition: transform .25s cubic-bezier(0.16,1,0.3,1), border-color .25s ease, box-shadow .25s ease; }
.isp-page .service-card:hover { transform: translateY(-6px); border-color: rgba(249,66,58,.38); box-shadow: 0 24px 60px rgba(15,6,33,.1); }
.service-jump { margin-top: auto; padding-top: 20px; display: block; color: var(--red); font-size: .78rem; font-weight: 700; letter-spacing: .04em; }
.isp-product { padding: clamp(96px, 11vw, 170px) var(--pad); scroll-margin-top: 30px; }
.isp-product-inner { width: min(var(--max), 100%); margin: auto; }
.isp-product-dark { background: var(--navy); color: var(--white); }
.isp-product-light { background: var(--paper); color: var(--ink); }
.isp-product-red { background: var(--red-dark); color: var(--white); }
.isp-split { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr); gap: clamp(58px, 8vw, 128px); align-items: center; }
.isp-split-reverse > :first-child { order: 2; }
.isp-copy h2, .isp-heading-row h2 { margin-bottom: 26px; font-size: clamp(3.6rem, 6vw, 6.8rem); line-height: .9; }
.isp-intro { max-width: 760px; margin-bottom: 42px; font-size: clamp(1.15rem, 1.7vw, 1.45rem); line-height: 1.55; }
.isp-product-dark .isp-intro, .isp-product-dark .isp-copy p { color: rgba(255,255,255,.72); }
.isp-definition { margin: 0 0 30px; padding: 28px 30px; border-radius: 12px; background: rgba(249,66,58,.07); }
.isp-product-light .isp-definition { background: var(--white); }
.isp-definition h3, .isp-detail-grid h3, .ix-content > h3 { margin-bottom: 10px; font-size: 1.05rem; letter-spacing: -.02em; }
.isp-definition p, .isp-detail-grid p { margin: 0; line-height: 1.7; }
.isp-detail-grid { margin-bottom: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.isp-detail-grid > div { padding-top: 20px; border-top: 1px solid currentColor; }
.isp-product-dark .isp-detail-grid > div { border-color: rgba(255,255,255,.16); }
.isp-benefits { margin: 0 0 36px; padding: 0; list-style: none; display: grid; gap: 12px; }
.isp-benefits li { padding-left: 25px; position: relative; line-height: 1.5; }
.isp-benefits li::before { content: ""; width: 8px; height: 8px; position: absolute; left: 0; top: .52em; border-radius: 50%; background: var(--red); }
.isp-photo { margin: 0; overflow: hidden; border-radius: 28px; box-shadow: 0 34px 90px rgba(0,0,0,.25); }
.isp-photo img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.isp-photo-tall img { aspect-ratio: 4/5; }
.isp-visual-stack { display: grid; gap: 18px; }
.network-diagram { padding: 24px; display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; gap: 16px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(255,255,255,.06); font-family: "Ubuntu Mono", monospace; font-size: .75rem; }
.network-diagram i { height: 1px; position: relative; background: linear-gradient(90deg, rgba(255,255,255,.2), var(--red)); }
.network-diagram i::after { content: ""; width: 6px; height: 6px; position: absolute; right: 0; top: -3px; border-radius: 50%; background: var(--red); }
.network-diagram strong { padding: 13px 16px; border-radius: 10px; background: var(--red-dark); color: var(--white); text-align: center; }
/* "Sinal viajando": desenha a linha uma vez quando o diagrama entra na
   viewport (classe .is-in-view vem do IntersectionObserver em site.js).
   O gradiente original é preservado como 2ª camada de background; só a 1ª
   camada (o brilho) se move via background-position. */
.network-diagram.is-in-view i {
  background-image: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 100%), linear-gradient(90deg, rgba(255,255,255,.2), var(--red));
  background-repeat: no-repeat, no-repeat;
  background-size: 40% 100%, 100% 100%;
  animation: signal-sweep-x .6s cubic-bezier(0.16,1,0.3,1) both;
}
.network-diagram.is-in-view i:nth-of-type(2) { animation-delay: .35s; }
@keyframes signal-sweep-x {
  from { background-position: -100% 0, 0 0; }
  to { background-position: 200% 0, 0 0; }
}
@keyframes signal-sweep-y {
  from { background-position: 0 -100%, 0 0; }
  to { background-position: 0 200%, 0 0; }
}
.application-strip { display: flex; flex-wrap: wrap; gap: 8px; }
.application-strip span { padding: 9px 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; color: rgba(255,255,255,.64); font-size: .72rem; }
.ecosystem-visual { min-height: 570px; padding: clamp(38px, 5vw, 70px); display: flex; flex-direction: column; justify-content: center; align-items: center; border-radius: 30px; background: var(--navy); color: var(--white); box-shadow: 0 35px 90px rgba(15,6,33,.2); }
.eco-node { min-width: 210px; padding: 18px 24px; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; text-align: center; font-family: "Ubuntu Mono", monospace; font-weight: 700; }
.eco-core { background: var(--red); border-color: var(--red); }
.eco-core small { margin-top: 6px; display: block; color: rgba(255,255,255,.72); font-size: .66rem; font-weight: 400; }
.eco-line { width: 1px; height: 55px; background: linear-gradient(rgba(255,255,255,.18), var(--red)); }
.is-in-view .eco-line {
  background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 100%), linear-gradient(rgba(255,255,255,.18), var(--red));
  background-repeat: no-repeat, no-repeat;
  background-size: 100% 40%, 100% 100%;
  animation: signal-sweep-y .6s cubic-bezier(0.16,1,0.3,1) both;
}
.eco-branches { width: 100%; margin-top: 55px; position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.eco-branches::before { content: ""; height: 40px; position: absolute; left: 16%; right: 16%; top: -40px; border-left: 1px solid rgba(255,255,255,.3); border-right: 1px solid rgba(255,255,255,.3); border-top: 1px solid rgba(255,255,255,.3); }
.eco-branches span { padding: 15px 8px; border-radius: 10px; background: rgba(255,255,255,.08); text-align: center; font-family: "Ubuntu Mono", monospace; font-size: .72rem; }
.ecosystem-visual > p { margin: 28px 0 0; color: rgba(255,255,255,.48); font-size: .8rem; text-align: center; }
.isp-heading-row { margin-bottom: 70px; display: grid; grid-template-columns: 1fr .75fr; gap: 70px; align-items: end; }
.isp-heading-row > p { max-width: 560px; margin-bottom: 8px; font-size: 1.15rem; line-height: 1.65; }
.ix-layout { display: grid; grid-template-columns: minmax(320px,.75fr) 1.25fr; gap: clamp(50px,7vw,100px); align-items: center; }
.ix-diagram { min-height: 520px; padding: 46px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.28); border-radius: 28px; background: rgba(15,6,33,.16); }
.ix-node { min-width: 210px; padding: 15px 22px; border: 1px solid rgba(255,255,255,.44); border-radius: 11px; font-family: "Ubuntu Mono", monospace; text-align: center; }
.ix-diagram b { padding: 13px; font-size: 1.25rem; }
.ix-elevar { background: var(--navy); border-color: var(--navy); }
.ix-core { width: 82px; min-width: 82px; border-radius: 50%; background: var(--white); color: var(--red); font-size: 1.3rem; font-weight: 700; }
.ix-destinations { width: 100%; margin-top: 45px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.ix-destinations span { padding: 13px 6px; border-top: 1px solid rgba(255,255,255,.5); text-align: center; font-size: .72rem; font-weight: 700; }
.ix-content > p { max-width: 740px; font-size: 1.08rem; line-height: 1.75; }
.technical-cards { margin: 36px 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.technical-cards article { padding: 25px; border-radius: 16px; background: rgba(15,6,33,.16); }
.technical-cards article p { margin: 0; color: rgba(255,255,255,.76); line-height: 1.6; }
.traffic-visual { min-height: 570px; padding: clamp(34px,5vw,68px); display: flex; flex-direction: column; justify-content: center; border-radius: 30px; background: var(--navy); color: var(--white); box-shadow: 0 35px 90px rgba(15,6,33,.18); }
.traffic-stream { display: grid; grid-template-columns: repeat(6,1fr); gap: 8px; }
.traffic-stream span { height: 70px; position: relative; border-radius: 8px; background: rgba(255,255,255,.1); }
.traffic-stream span::after { content: ""; width: 7px; height: 7px; position: absolute; left: 50%; top: 50%; border-radius: 50%; background: #fff; }
.traffic-stream .anomaly { background: rgba(249,66,58,.34); }
.traffic-stream .anomaly::after { background: var(--red); }
.traffic-stage { margin: 30px 0; padding: 34px; border: 1px solid rgba(249,66,58,.6); border-radius: 18px; background: rgba(249,66,58,.1); text-align: center; }
.traffic-stage small { display: block; color: #ff9c97; letter-spacing: .12em; }
.traffic-stage strong { margin: 9px 0; display: block; font-size: 1.25rem; }
.traffic-stage p { margin: 0; color: rgba(255,255,255,.58); }
.traffic-output { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; align-items: end; }
.traffic-output i { height: 2px; background: rgba(255,255,255,.58); }
.is-in-view .traffic-output i {
  background-color: rgba(255,255,255,.58);
  background-image: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 100%);
  background-repeat: no-repeat;
  background-size: 40% 100%;
  animation: signal-sweep-x .5s cubic-bezier(0.16,1,0.3,1) both;
}
.is-in-view .traffic-output i:nth-of-type(2) { animation-delay: .08s; }
.is-in-view .traffic-output i:nth-of-type(3) { animation-delay: .16s; }
.traffic-output strong { grid-column: 1/-1; padding-top: 18px; color: rgba(255,255,255,.7); font-size: .76rem; text-align: center; letter-spacing: .12em; }
.isp-note { margin: 0 0 32px; padding: 18px 20px; border-radius: 12px; background: rgba(15,6,33,.06); line-height: 1.6; }
.network-diagram-vertical { grid-template-columns: 1fr; justify-items: center; }
.network-diagram-vertical i { width: 1px; height: 28px; background: linear-gradient(rgba(255,255,255,.2),var(--red)); }
.network-diagram-vertical i::after { right: -3px; top: auto; bottom: 0; }
.network-diagram-vertical.is-in-view i {
  background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 100%), linear-gradient(rgba(255,255,255,.2),var(--red));
  background-size: 100% 40%, 100% 100%;
  animation-name: signal-sweep-y;
}
.comparison-table { padding: 6px; overflow-x: auto; border: 1px solid var(--line); border-radius: 22px; background: var(--white); }
.comparison-table table { width: 100%; min-width: 900px; border-collapse: collapse; }
.comparison-table th, .comparison-table td { padding: 22px 24px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.45; }
.comparison-table thead th { background: var(--navy); color: var(--white); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.comparison-table tbody th { color: var(--red); }
.comparison-table tr:last-child th, .comparison-table tr:last-child td { border-bottom: 0; }
.capability-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 22px; }
.capability-layout figure { min-height: 100%; margin: 0; overflow: hidden; border-radius: 22px; }
.capability-layout figure img { width: 100%; height: 100%; object-fit: cover; }
.isp-capability .quality-grid { grid-template-columns: 1fr 1fr; }
.differential-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.differential-grid article { padding: 34px 28px; border-right: 1px solid var(--line); }
.differential-grid article:last-child { border-right: 0; }
.differential-grid span { color: var(--red); font-family: "Ubuntu Mono", monospace; font-size: .76rem; }
.differential-grid h3 { margin: 24px 0 12px; font-size: 1.25rem; }
.differential-grid p { margin: 0; color: var(--muted); line-height: 1.65; }
.isp-faq { padding-top: 20px; }
.selected-solution { margin-top: 28px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; color: rgba(255,255,255,.72); font-size: .85rem; }
.selected-solution strong { color: var(--white); }

/* Business editorial depth */
.business-page .service-card { color: inherit; transition: transform .25s cubic-bezier(0.16,1,0.3,1), border-color .25s ease, box-shadow .25s ease; }
.business-page .service-card:hover { transform: translateY(-6px); border-color: rgba(249,66,58,.38); box-shadow: 0 24px 60px rgba(15,6,33,.1); }
.business-feature-head { margin-bottom: 46px; display: grid; grid-template-columns: 1fr .8fr; gap: clamp(40px,7vw,100px); align-items: end; }
.business-feature-head h2 { margin-bottom: 0; font-size: clamp(3.6rem,6vw,6.8rem); line-height: .9; }
.business-feature-head > p { max-width: 620px; margin-bottom: 6px; color: rgba(255,255,255,.7); font-size: 1.15rem; line-height: 1.7; }
.business-wide-photo { height: clamp(350px,42vw,620px); margin: 0 0 42px; overflow: hidden; border-radius: 28px; }
.business-wide-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.business-feature-grid { margin-bottom: 36px; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.18); }
.business-feature-grid > div { padding: 28px 28px 8px 0; }
.business-feature-grid > div + div { padding-left: 28px; border-left: 1px solid rgba(255,255,255,.18); }
.business-feature-grid h3 { margin-bottom: 12px; font-size: 1.1rem; }
.business-feature-grid p { margin: 0; color: rgba(255,255,255,.67); line-height: 1.7; }
.business-diagram-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(50px,8vw,110px); align-items: center; }
.lan-diagram { min-height: 520px; padding: 52px; display: flex; flex-direction: column; justify-content: center; align-items: center; border: 1px solid rgba(255,255,255,.32); border-radius: 28px; background: rgba(15,6,33,.15); }
.company-node { min-width: 230px; padding: 20px; border: 1px solid rgba(255,255,255,.45); border-radius: 14px; text-align: center; }
.company-node small { display: block; margin-bottom: 6px; color: rgba(255,255,255,.65); font-family: "Ubuntu Mono",monospace; }
.company-node strong { font-size: 1.25rem; }
.route-line { height: 140px; display: flex; flex-direction: column; align-items: center; }
.route-line i { width: 1px; flex: 1; background: rgba(255,255,255,.42); }
.is-in-view .route-line i {
  background-color: rgba(255,255,255,.42);
  background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 100%);
  background-repeat: no-repeat;
  background-size: 100% 40%;
  animation: signal-sweep-y .55s cubic-bezier(0.16,1,0.3,1) both;
}
.is-in-view .route-line i:nth-of-type(2) { animation-delay: .3s; }
.route-line span { padding: 12px 16px; border-radius: 999px; background: var(--navy); font-family: "Ubuntu Mono",monospace; font-size: .72rem; }
.business-diagram-copy > h3 { margin-bottom: 14px; font-size: 1.6rem; }
.business-diagram-copy > p { max-width: 760px; line-height: 1.75; }
.sdwan-diagram { min-height: 620px; padding: clamp(36px,5vw,68px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; border-radius: 30px; background: var(--navy); color: var(--white); box-shadow: 0 35px 90px rgba(15,6,33,.18); }
.sdwan-links, .sdwan-destinations { display: grid; gap: 16px; }
.sdwan-links span, .sdwan-destinations span { padding: 16px; border: 1px solid rgba(255,255,255,.17); border-radius: 10px; font-family: "Ubuntu Mono",monospace; font-size: .72rem; text-align: center; }
.sdwan-links span::after { content: "→"; float: right; color: var(--red); }
.sdwan-destinations span::before { content: "→"; margin-right: 8px; color: var(--red); }
.sdwan-core { width: 145px; height: 145px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: var(--red-dark); color: var(--white); font-family: "Ubuntu Mono",monospace; font-weight: 700; text-align: center; }
.sdwan-core small { max-width: 100px; margin-top: 7px; color: rgba(255,255,255,.7); font-size: .64rem; font-weight: 400; }
.redundancy-layout { display: grid; grid-template-columns: 1fr .9fr; gap: clamp(55px,8vw,120px); align-items: center; }
.redundancy-diagram { min-height: 500px; padding: 50px; display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: 1fr 1fr; gap: 35px 28px; align-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 28px; background: rgba(255,255,255,.05); }
.redundancy-source, .redundancy-target { padding: 22px; border: 1px solid rgba(255,255,255,.2); border-radius: 12px; font-family: "Ubuntu Mono",monospace; font-size: .75rem; text-align: center; }
.redundancy-source { grid-row: 1/-1; }
.redundancy-target { grid-column: 3; grid-row: 1/-1; }
.redundancy-path { display: grid; gap: 12px; }
.redundancy-path small { color: rgba(255,255,255,.58); font-size: .65rem; text-align: center; letter-spacing: .08em; }
.redundancy-path i { height: 3px; position: relative; background: var(--red); }
.redundancy-path i::after { content: ""; width: 8px; height: 8px; position: absolute; right: 0; top: -3px; border-radius: 50%; background: var(--red); }
/* Só o caminho principal "desenha" o sinal — o `.backup` fica parado de
   propósito (é o caminho de contingência em standby, não ativo). */
.is-in-view .redundancy-path:not(.backup) i {
  background-color: var(--red);
  background-image: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 100%);
  background-repeat: no-repeat;
  background-size: 40% 100%;
  animation: signal-sweep-x .6s cubic-bezier(0.16,1,0.3,1) both;
}
.redundancy-path.backup i { background: repeating-linear-gradient(90deg,rgba(255,255,255,.58) 0 8px,transparent 8px 14px); }
.redundancy-path.backup i::after { background: rgba(255,255,255,.7); }
.redundancy-copy > h3 { margin-bottom: 28px; font-size: 1.6rem; }
.fixed-ip-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(55px,8vw,120px); align-items: center; }
.fixed-ip-address { min-height: 460px; padding: 50px; display: flex; flex-direction: column; justify-content: center; border-radius: 28px; background: var(--navy); color: var(--white); }
.fixed-ip-address small { color: #ff8e89; letter-spacing: .12em; }
.fixed-ip-address strong { margin: 24px 0; display: block; font-size: clamp(3.8rem,7vw,6.5rem); line-height: .9; letter-spacing: -.06em; }
.fixed-ip-address span { max-width: 280px; color: rgba(255,255,255,.62); line-height: 1.6; }
.application-grid { margin: 8px 0 28px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.application-grid span { padding: 14px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-family: "Ubuntu Mono",monospace; font-size: .7rem; text-align: center; }
.monitoring-boundary { margin: 0 0 32px; padding: 24px; border: 1px solid rgba(255,255,255,.35); border-radius: 14px; background: rgba(15,6,33,.12); }
.monitoring-boundary strong { display: block; margin-bottom: 10px; }
.monitoring-boundary p { margin: 0; color: rgba(255,255,255,.76); line-height: 1.65; }
.monitoring-flow { padding: 45px; display: flex; flex-direction: column; gap: 0; border-radius: 28px; background: var(--navy); color: var(--white); }
.monitoring-flow > div { padding: 26px; border: 1px solid rgba(255,255,255,.17); border-radius: 14px; }
.monitoring-flow small { color: #ff8e89; font-family: "Ubuntu Mono",monospace; }
.monitoring-flow strong { margin: 8px 0; display: block; }
.monitoring-flow p { margin: 0; color: rgba(255,255,255,.58); font-size: .85rem; }
.monitoring-flow > i { width: 1px; height: 36px; margin: auto; background: var(--red); }
.monitoring-flow.is-in-view > i {
  background-color: var(--red);
  background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.9) 50%, rgba(255,255,255,0) 100%);
  background-repeat: no-repeat;
  background-size: 100% 40%;
  animation: signal-sweep-y .5s cubic-bezier(0.16,1,0.3,1) both;
}
.monitoring-flow.is-in-view > i:nth-of-type(2) { animation-delay: .3s; }
.business-differentials .section-lead h2 { color: var(--white); }
.business-differentials .section-lead > p { color: rgba(255,255,255,.62); }
.business-differentials .differential-grid { border-color: rgba(255,255,255,.16); }
.business-differentials .differential-grid article { border-color: rgba(255,255,255,.16); }
.business-differentials .differential-grid h3 { color: var(--white); }
.business-differentials .differential-grid p { color: rgba(255,255,255,.62); }
.business-faq { padding-top: 35px; }

/* Referral page */
.referral-hero { min-height: 720px; position: relative; isolation: isolate; display: grid; align-items: center; background: #1c1030; }
.referral-hero::before { content: ""; width: 62%; position: absolute; z-index: -2; inset: 0 0 0 auto; background: url("/assets/referral-friends.webp") 60% center / cover no-repeat; }
.referral-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(24,13,40,.96) 0%,rgba(24,13,40,.88) 34%,rgba(24,13,40,.44) 62%,rgba(24,13,40,.08) 100%), linear-gradient(0deg,rgba(15,6,33,.36),transparent 58%); }
.referral-hero .content-hero-inner { position: relative; z-index: 1; }
.referral-hero .content-hero-panel { padding: 34px; border: 0; border-radius: 22px; background: rgba(249,66,58,.94); box-shadow: 0 28px 70px rgba(15,6,33,.28); backdrop-filter: blur(5px); }
.referral-hero .content-hero-panel strong { color: rgba(255,255,255,.72); }
.referral-hero .content-hero-panel p { color: rgba(255,255,255,.84); }
.referral-hero .content-hero-panel a { color: var(--white); border-color: rgba(255,255,255,.7); }
.referral-value { margin: 4px 0 14px; display: grid; gap: 0; }
.referral-value b { color: var(--white); font-size: clamp(4rem,6vw,6.4rem); line-height: .85; letter-spacing: -.075em; }
.referral-value span { margin-top: 10px; color: var(--white); font-size: 1.05rem; font-weight: 700; }
.referral-how { position: relative; overflow: hidden; }
.referral-how::after { content: ""; width: 280px; height: 280px; position: absolute; right: -110px; top: -120px; border: 1px solid rgba(249,66,58,.28); border-radius: 50%; }
.referral-steps article { position: relative; overflow: hidden; transition: transform .25s cubic-bezier(0.16,1,0.3,1),box-shadow .25s ease; }
.referral-steps article:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(15,6,33,.1); }
.step-visual { height: 92px; margin: 25px -34px 0; padding: 0 34px; display: flex; align-items: center; gap: 12px; background: linear-gradient(90deg,#fff0ef,transparent); }
.step-visual i { width: 48px; height: 48px; display: block; position: relative; border: 2px solid var(--red); border-radius: 50%; }
.step-visual i::after { content: ""; width: 22px; height: 10px; position: absolute; left: 11px; bottom: -15px; border: 2px solid var(--red); border-bottom: 0; border-radius: 18px 18px 0 0; }
.step-visual i + i { transform: scale(.8); opacity: .65; }
.step-contract i:first-child { width: 58px; height: 68px; border-radius: 6px; }
.step-contract i:first-child::after { width: 28px; height: 2px; left: 13px; top: 20px; bottom: auto; border: 0; border-radius: 0; background: var(--red); box-shadow: 0 10px 0 rgba(249,66,58,.5),0 20px 0 rgba(249,66,58,.28); }
.step-contract i:last-child { width: 28px; height: 28px; border: 0; border-radius: 0; transform: rotate(-35deg); border-bottom: 5px solid var(--red); border-right: 5px solid var(--red); }
.step-contract i:last-child::after { display: none; }
.step-benefit i { width: 64px; height: 64px; border-radius: 14px; transform: rotate(45deg); background: var(--red); }
.step-benefit i::after { display: none; }
.step-benefit strong { color: var(--red); font-size: 2rem; }
.step-visual i, .step-visual strong { display: none; }
.step-visual::before { content: ""; width: 64px; height: 64px; display: block; background: url("/assets/tabler-user-plus.svg") center / 56px 56px no-repeat; }
.step-visual.step-contract::before { background-image: url("/assets/tabler-file-check.svg"); }
.step-visual.step-benefit::before { background-image: url("/assets/tabler-discount-check.svg"); }
.referral-story { min-height: 680px; position: relative; isolation: isolate; overflow: hidden; background: var(--navy); color: var(--white); }
.referral-story::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(15,6,33,.05) 0%,rgba(15,6,33,.1) 34%,rgba(15,6,33,.58) 62%,rgba(15,6,33,.88) 100%); }
.referral-story-media { position: absolute; z-index: -2; inset: 0; overflow: hidden; }
.referral-story-media::after { display: none; }
.referral-story-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.referral-story-copy { width: min(58%, 880px); min-height: 680px; margin-left: auto; padding: clamp(70px,8vw,130px) var(--pad) clamp(70px,8vw,130px) clamp(40px,6vw,100px); display: flex; flex-direction: column; justify-content: center; }
.referral-story-copy h2 { margin-bottom: 28px; font-size: clamp(3.2rem,5vw,5.8rem); line-height: .92; }
.referral-story-copy > p { max-width: 620px; color: rgba(255,255,255,.68); line-height: 1.75; }
.referral-story-points { margin: 24px 0 32px; display: grid; gap: 0; }
.referral-story-points span { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.8); font-size: .86rem; }
.referral-story-copy .button { align-self: flex-start; }
.referral-rules-layout { display: grid; grid-template-columns: .42fr 1fr; gap: clamp(40px,7vw,100px); align-items: start; }
.referral-rules-layout > aside { padding: 34px; position: sticky; top: 24px; border-radius: 20px; background: var(--navy); color: var(--white); }
.referral-rules-layout > aside > span { color: #ff8e89; font-family: "Ubuntu Mono",monospace; font-size: .72rem; letter-spacing: .12em; }
.referral-rules-layout > aside strong { margin: 24px 0 16px; display: block; font-size: 1.55rem; line-height: 1.15; }
.referral-rules-layout > aside p { color: rgba(255,255,255,.62); font-size: .86rem; line-height: 1.65; }
.referral-rules-layout > aside .text-link { margin-top: 12px; }
.referral-cta { min-height: 520px; display: grid; grid-template-columns: 1fr 1fr; background: var(--red-dark); color: var(--white); }
.referral-cta > div { padding: clamp(70px,8vw,130px) var(--pad); display: flex; flex-direction: column; justify-content: center; }
.referral-cta h2 { margin-bottom: 24px; font-size: clamp(3.8rem,6vw,6.8rem); line-height: .86; }
.referral-cta p { max-width: 570px; color: var(--white); line-height: 1.7; }
.referral-cta .button { margin-top: 14px; align-self: flex-start; }
.referral-cta figure { min-height: 520px; margin: 0; overflow: hidden; }
.referral-cta figure img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }

@media (max-width: 1050px) {
  .referral-cta { grid-template-columns: 1fr; }
  .referral-story::after { background: linear-gradient(90deg,rgba(15,6,33,.18),rgba(15,6,33,.78)); }
  .referral-story-copy { width: min(72%, 760px); }
  .referral-rules-layout { grid-template-columns: 1fr; }
  .referral-rules-layout > aside { position: static; }
  .referral-cta figure { min-height: 430px; }
}
@media (max-width: 680px) {
  .referral-hero { min-height: 760px; }
  .referral-hero::before { width: 100%; opacity: .68; background-position: 67% center; }
  .referral-hero::after { background: linear-gradient(90deg,rgba(24,13,40,.92),rgba(24,13,40,.34)),linear-gradient(0deg,rgba(15,6,33,.64),transparent 60%); }
  .referral-hero .content-hero-panel { padding: 24px; border-left: 0; border-radius: 16px; }
  .referral-story::after { background: linear-gradient(0deg,rgba(15,6,33,.88) 0%,rgba(15,6,33,.52) 68%,rgba(15,6,33,.22) 100%); }
  .referral-story-media img { object-position: 42% center; }
  .referral-story-copy { width: 100%; min-height: 720px; padding: 260px 20px 70px; justify-content: flex-end; }
  .referral-story-copy h2 { font-size: 3.2rem; }
  .referral-cta > div { padding: 76px 20px; }
  .referral-cta h2 { font-size: 4rem; }
  .referral-cta figure { min-height: 340px; }
}

@media (max-width: 1050px) {
  .business-feature-head, .business-diagram-layout, .redundancy-layout, .fixed-ip-layout { grid-template-columns: 1fr; }
  .business-feature-grid { grid-template-columns: 1fr; }
  .business-feature-grid > div + div { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
  .sdwan-diagram { min-height: 480px; }
}
@media (max-width: 680px) {
  .business-feature-head h2 { font-size: 3.45rem; }
  .business-wide-photo { height: 330px; border-radius: 20px; }
  .lan-diagram, .sdwan-diagram, .redundancy-diagram, .fixed-ip-address, .monitoring-flow { min-height: 0; padding: 30px 20px; }
  .sdwan-diagram { grid-template-columns: 1fr; }
  .sdwan-core { margin: 6px auto; }
  .sdwan-links span::after { content: "↓"; }
  .sdwan-destinations span::before { content: "↓"; }
  .redundancy-diagram { grid-template-columns: 1fr; grid-template-rows: auto; }
  .redundancy-source, .redundancy-target { grid-column: auto; grid-row: auto; }
  .redundancy-target { order: 4; }
  .application-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1050px) {
  .isp-split, .ix-layout, .capability-layout { grid-template-columns: 1fr; }
  .isp-split-reverse > :first-child { order: 0; }
  .isp-visual-stack, .ecosystem-visual, .traffic-visual { max-width: 760px; }
  .isp-heading-row { grid-template-columns: 1fr; gap: 20px; }
  .differential-grid { grid-template-columns: 1fr 1fr; }
  .differential-grid article:nth-child(2) { border-right: 0; }
  .differential-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}
@media (max-width: 680px) {
  .isp-product { padding-block: 86px; }
  .isp-copy h2, .isp-heading-row h2 { font-size: 3.45rem; }
  .isp-detail-grid, .technical-cards, .isp-capability .quality-grid { grid-template-columns: 1fr; }
  .network-diagram { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .network-diagram i { width: 1px; height: 24px; }
  .network-diagram i::after { right: -3px; top: auto; bottom: 0; }
  /* Nesta largura a linha vira vertical (regra acima) — troca o eixo do
     "sinal viajando" pra acompanhar, reaproveitando o keyframe vertical. */
  .network-diagram.is-in-view i {
    background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 100%), linear-gradient(90deg, rgba(255,255,255,.2), var(--red));
    background-size: 100% 40%, 100% 100%;
    animation-name: signal-sweep-y;
  }
  .eco-branches, .ix-destinations { grid-template-columns: 1fr; }
  .eco-branches::before { display: none; }
  .ecosystem-visual, .ix-diagram, .traffic-visual { min-height: 0; padding: 30px 20px; }
  .ix-destinations span { border: 1px solid rgba(255,255,255,.25); border-radius: 8px; }
  .differential-grid { grid-template-columns: 1fr; }
  .differential-grid article { border-right: 0; border-bottom: 1px solid var(--line); }
  .differential-grid article:last-child { border-bottom: 0; }
}
