/* Reset e base */
:root {
  --color-primary: #066dbd;
  --color-primary-strong: #0058a8;
  --color-secondary: #0b8ddd;
  --color-dark: #071d3b;
  --color-navy: #032d59;
  --color-light: #f4f8fc;
  --color-white: #ffffff;
  --color-muted: #637187;
  --color-border: #dfe7f0;
  --color-success: #18b66a;
  --shadow-soft: 0 14px 40px rgba(5, 41, 81, 0.12);
  --shadow-card: 0 8px 26px rgba(7, 46, 88, 0.09);
  --radius-lg: 18px;
  --radius-md: 10px;
  --radius-sm: 6px;
  --container: 1180px;
  --transition: 180ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; color: var(--color-dark); background: var(--color-white); font-family: Inter, "Segoe UI", Arial, sans-serif; line-height: 1.6; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.16; letter-spacing: -0.025em; }
p { color: var(--color-muted); }
ul, ol { margin: 0; padding: 0; list-style: none; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.container--wide { width: min(calc(100% - 32px), 1260px); }
.section { padding: 88px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 9999; padding: 10px 16px; color: #fff; background: var(--color-dark); border-radius: 6px; transition: top var(--transition); }
.skip-link:focus { top: 16px; }
:focus-visible { outline: 3px solid rgba(6, 109, 189, 0.38); outline-offset: 3px; }

/* Tipografia e títulos */
.eyebrow { display: block; margin-bottom: 12px; color: var(--color-primary); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.section-heading { max-width: 720px; margin: 0 auto 42px; text-align: center; }
.section-heading--left { margin-inline: 0; text-align: left; }
.section-heading h2, .split-layout__copy h2, .coverage__copy h2, .about-grid h2, .faq h2 { margin-bottom: 16px; font-size: clamp(2rem, 3.4vw, 3rem); }
.section-heading p { max-width: 620px; margin: 0 auto; }
.section-heading--left p { margin-left: 0; }

/* Botões */
.btn { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 9px; padding: 11px 20px; border: 1px solid transparent; border-radius: var(--radius-sm); font-size: 0.89rem; font-weight: 750; line-height: 1.2; cursor: pointer; transition: color var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition); }
.btn:hover { transform: translateY(-2px); }
.btn--primary { color: #fff; background: linear-gradient(135deg, var(--color-primary), var(--color-primary-strong)); box-shadow: 0 8px 20px rgba(0, 93, 175, 0.2); }
.btn--primary:hover { background: linear-gradient(135deg, #087ed4, #00509a); box-shadow: 0 11px 24px rgba(0, 93, 175, 0.26); }
.btn--outline { color: var(--color-primary); background: rgba(255,255,255,0.72); border-color: #8ebce0; }
.btn--outline:hover { color: #fff; background: var(--color-primary); border-color: var(--color-primary); }
.btn--large { min-height: 50px; padding: 14px 22px; }
.btn--light { color: var(--color-primary-strong); background: #fff; }
.btn--light:hover { color: var(--color-dark); box-shadow: 0 10px 25px rgba(0,0,0,0.16); }
.btn--ghost-light { color: #fff; background: transparent; border-color: rgba(255,255,255,0.75); }
.btn--ghost-light:hover { background: #fff; color: var(--color-primary-strong); }

/* Cabeçalho */
.site-header { position: relative; z-index: 100; background: #fff; }
.topbar { color: #fff; background: linear-gradient(90deg, #0058a8, #0877c8); font-size: 0.75rem; }
.topbar__inner { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 24px; }
.topbar__contacts { display: flex; align-items: center; gap: 28px; }
.topbar a, .topbar span { white-space: nowrap; }
.topbar i { margin-right: 7px; }
.topbar a { transition: opacity var(--transition); }
.topbar a:hover { opacity: 0.8; }
.nav-wrap { background: rgba(255,255,255,0.98); box-shadow: 0 4px 16px rgba(4, 47, 93, 0.05); }
.nav-wrap__inner { display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 34px; }
.brand { flex: 0 0 auto; }
.brand img { width: 174px; height: 58px; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 30px); }
.main-nav > a:not(.btn) { position: relative; padding: 31px 0 27px; color: #1b2737; font-size: 0.83rem; font-weight: 650; }
.main-nav > a:not(.btn)::after { position: absolute; right: 0; bottom: 20px; left: 0; height: 2px; background: var(--color-primary); content: ""; transform: scaleX(0); transition: transform var(--transition); transform-origin: center; }
.main-nav > a:not(.btn):hover, .main-nav > a.is-active { color: var(--color-primary); }
.main-nav > a:not(.btn):hover::after, .main-nav > a.is-active::after { transform: scaleX(1); }
.nav-actions { display: flex; gap: 12px; margin-left: 8px; }
.nav-actions .btn { min-height: 42px; padding-inline: 17px; font-size: 0.8rem; }
.menu-toggle { display: none; width: 45px; height: 45px; align-items: center; justify-content: center; padding: 0; border: 1px solid #bcd5e9; border-radius: 7px; color: var(--color-primary); background: #fff; font-size: 1.18rem; cursor: pointer; }

/* Hero */
.hero { position: relative; min-height: 650px; background-image: linear-gradient(90deg, rgba(255,255,255,0.99) 0%, rgba(255,255,255,0.95) 31%, rgba(255,255,255,0.58) 53%, rgba(255,255,255,0.05) 75%), url("../img/hero-rastreamento.webp"); background-position: center; background-size: cover; overflow: visible; }
.hero::before { position: absolute; inset: 0 auto 0 0; width: 56%; background-image: linear-gradient(rgba(15, 106, 183, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(15, 106, 183, 0.035) 1px, transparent 1px); background-size: 36px 36px; content: ""; mask-image: linear-gradient(90deg,#000,transparent); }
.hero__inner { position: relative; min-height: 650px; padding-top: 78px; }
.hero__content { position: relative; z-index: 2; width: 54%; max-width: 645px; }
.hero h1 { margin-bottom: 20px; font-size: clamp(2.55rem, 4.4vw, 4.25rem); }
.hero__content > p { max-width: 590px; margin-bottom: 28px; font-size: 1.05rem; }
.hero__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.hero__features { display: flex; gap: 26px; margin-top: 44px; color: #243b58; font-size: 0.72rem; font-weight: 650; }
.hero__features span { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.hero__features i { color: var(--color-primary); font-size: 1rem; }

/* Prévia da plataforma */
.tracking-preview { overflow: hidden; border: 1px solid rgba(6, 109, 189, 0.35); border-radius: 8px; background: #fff; box-shadow: 0 18px 44px rgba(2, 34, 72, 0.22); }
.tracking-preview--hero { position: absolute; right: 0; bottom: -58px; z-index: 5; width: 558px; }
.app-bar { display: flex; height: 38px; align-items: center; justify-content: space-between; padding: 0 14px; color: #fff; background: var(--color-primary); font-size: 0.68rem; font-weight: 700; }
.app-bar > div { display: flex; gap: 11px; }
.app-body { display: grid; grid-template-columns: 145px 1fr; height: 252px; }
.vehicle-list { padding: 10px; border-right: 1px solid var(--color-border); background: #fff; }
.vehicle-list label { position: relative; display: block; margin-bottom: 10px; }
.vehicle-list label i { position: absolute; left: 7px; top: 8px; color: #94a2b6; font-size: 0.56rem; }
.vehicle-list input { width: 100%; padding: 6px 6px 6px 20px; border: 1px solid #dde4ec; border-radius: 3px; color: #718096; background: #fafcff; font-size: 0.56rem; }
.vehicle-list > strong { display: block; margin-bottom: 6px; color: #32445b; font-size: 0.56rem; }
.vehicle-list > div { display: grid; grid-template-columns: 18px 1fr 6px; align-items: center; gap: 5px; padding: 7px 2px; border-top: 1px solid #eff3f6; color: #3a4b61; font-size: 0.51rem; line-height: 1.25; }
.vehicle-list > div > i { color: var(--color-dark); }
.vehicle-list small { color: #8695a6; font-size: 0.45rem; }
.vehicle-list b { width: 5px; height: 5px; border-radius: 50%; background: var(--color-success); }
.map-canvas, .dashboard-map { position: relative; overflow: hidden; background-color: #eaf2f5; background-image: linear-gradient(rgba(237,247,250,.28),rgba(237,247,250,.28)), url("../img/mapa-natal.webp"); background-position: center; background-size: 100% 100%; }
.natal-route { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; }
.natal-route__border, .natal-route__line { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.natal-route__border { stroke: rgba(255,255,255,.96); stroke-width: 8; }
.natal-route__line { stroke: #0878d1; stroke-width: 4; }
.pin { position: absolute; z-index: 2; color: var(--color-primary); filter: drop-shadow(0 2px 2px rgba(0,0,0,.18)); font-size: 1rem; transform: translate(-50%,-80%); }
.pin--one { left: 22.5%; top: 21.5%; }
.pin--two { left: 57.6%; top: 45.9%; }
.pin--three { left: 86.4%; top: 65.4%; color: #1fc56d; }
.map-place-label { position: absolute; left: 50%; top: 28%; z-index: 3; display: inline-flex; align-items: center; gap: 4px; padding: 4px 7px; border: 1px solid rgba(6,109,189,.25); border-radius: 4px; color: #17446c; background: rgba(255,255,255,.94); box-shadow: 0 3px 10px rgba(4,47,93,.12); font-size: .47rem; font-weight: 800; white-space: nowrap; }
.map-place-label i { color: var(--color-primary); }
.map-attribution { position: absolute; left: 4px; bottom: 3px; z-index: 4; padding: 1px 3px; border-radius: 2px; color: #445466; background: rgba(255,255,255,.86); font-size: .38rem; line-height: 1.25; }
.map-attribution:hover { color: var(--color-primary-strong); text-decoration: underline; }
.map-status { position: absolute; right: 10px; bottom: 12px; z-index: 3; display: grid; min-width: 105px; padding: 8px 10px; border-radius: 5px; background: #fff; box-shadow: 0 5px 14px rgba(0,0,0,.16); color: #283a50; font-size: .54rem; }
.map-status span { color: var(--color-success); font-size: .46rem; }
.map-status i { font-size: .34rem; }

/* Soluções */
.solutions { padding-top: 130px; }
.solutions-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.solution-card { position: relative; display: block; grid-column: span 3; min-height: 220px; overflow: hidden; border: 1px solid #edf1f5; border-radius: 4px; color: inherit; background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%); cursor: pointer; transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.solution-card--large { grid-column: span 4; min-height: 275px; }
.solution-card:hover { z-index: 2; border-color: #bed8ec; box-shadow: var(--shadow-card); transform: translateY(-4px); }
.solution-card__copy { position: relative; z-index: 2; width: 55%; padding: 25px 0 0 24px; }
.solution-card__copy > i { margin-bottom: 12px; color: var(--color-primary); font-size: 2rem; }
.solution-card h3 { margin-bottom: 7px; font-size: 1.35rem; }
.solution-card p { margin: 0; font-size: 0.76rem; line-height: 1.45; }
.solution-card__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; color: var(--color-primary-strong); font-size: .7rem; font-weight: 800; }
.solution-card__link i { font-size: .62rem; transition: transform var(--transition); }
.solution-card:hover .solution-card__link i { transform: translateX(3px); }
.solution-card:focus-visible { border-color: var(--color-primary); outline: 3px solid rgba(6,109,189,.34); outline-offset: 3px; box-shadow: var(--shadow-card); }
.solution-card img { position: absolute; right: -4%; bottom: -4%; width: 66%; height: 82%; object-fit: cover; mix-blend-mode: multiply; }
.solution-card--large img { height: 80%; }
.solution-card--device .solution-card__copy { width: 62%; }
.tracker-device { position: absolute; right: 24px; bottom: 25px; width: 58px; height: 116px; border-radius: 15px; background: linear-gradient(145deg,#3d4147,#111317); box-shadow: 6px 10px 18px rgba(0,0,0,.18), inset 1px 1px 2px rgba(255,255,255,.25); transform: rotate(-2deg); }
.tracker-device::before { position: absolute; top: 9px; left: 50%; width: 18px; height: 4px; border-radius: 6px; background: #08090a; content: ""; transform: translateX(-50%); }
.tracker-device span { position: absolute; right: 8px; bottom: 10px; width: 5px; height: 5px; border-radius: 50%; background: #28c46c; box-shadow: 0 0 7px #28c46c; }

/* Etapas */
.how-it-works { padding: 62px 0 68px; background: linear-gradient(180deg,#fff,#f8fbfe); }
.how-it-works .section-heading { margin-bottom: 32px; }
.steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.steps::before { position: absolute; top: 25px; right: 12%; left: 12%; height: 2px; background: linear-gradient(90deg,#afd2eb,var(--color-primary),#afd2eb); content: ""; }
.steps li { position: relative; text-align: center; }
.steps li > span { position: relative; z-index: 1; display: grid; width: 50px; height: 50px; place-items: center; margin: 0 auto 16px; border: 6px solid #f8fbfe; border-radius: 50%; color: #fff; background: var(--color-primary); font-size: 1.05rem; font-weight: 800; box-shadow: 0 0 0 1px #b6d6ee; }
.steps h3 { margin-bottom: 8px; color: var(--color-primary-strong); font-size: 1rem; }
.steps p { max-width: 220px; margin: 0 auto; font-size: 0.78rem; line-height: 1.45; }

/* Seções com duas colunas */
.split-layout { display: grid; grid-template-columns: .78fr 1.42fr; align-items: center; gap: 52px; }
.split-layout--reverse { grid-template-columns: .9fr 1.15fr; }
.split-layout__copy > p { margin-bottom: 22px; }
.check-list { display: grid; gap: 9px; margin: 22px 0 28px; color: #2b4058; font-size: 0.89rem; }
.check-list li { display: flex; align-items: flex-start; gap: 9px; }
.check-list i { margin-top: 4px; color: var(--color-primary); }
.platform { background: #fff; }
.platform-actions { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.store-link { display: inline-flex; min-height: 48px; align-items: center; gap: 9px; padding: 7px 12px; border: 1px solid #b8cfe3; border-radius: var(--radius-sm); color: var(--color-dark); background: #fff; transition: border-color var(--transition), transform var(--transition); }
.store-link:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.store-link > i { color: var(--color-primary); font-size: 1.35rem; }
.store-link span { display: grid; font-size: .57rem; line-height: 1.1; }
.store-link strong { font-size: .78rem; }

/* Painel demonstrativo */
.dashboard { overflow: hidden; border: 2px solid #5aa2dc; border-radius: 10px; background: #fff; box-shadow: var(--shadow-soft); }
.dashboard__head { display: flex; min-height: 42px; align-items: center; justify-content: space-between; padding: 0 14px; color: #fff; background: var(--color-primary); font-size: .72rem; font-weight: 700; }
.dashboard__head div { display: flex; gap: 12px; }
.dashboard__body { display: grid; grid-template-columns: 145px 1fr; min-height: 348px; }
.dashboard__side { display: grid; align-content: start; border-right: 1px solid var(--color-border); }
.dashboard__side strong { padding: 14px 12px; font-size: .66rem; }
.dashboard__side span { display: grid; grid-template-columns: 18px 1fr auto; align-items: center; gap: 4px; padding: 12px 10px; border-top: 1px solid #edf2f6; color: #3f5065; font-size: .58rem; }
.dashboard__side span i { color: var(--color-primary); }
.dashboard__side b { color: var(--color-success); font-size: .48rem; }
.dashboard__main { display: grid; grid-template-rows: 2fr 1fr; }
.dashboard-map { min-height: 220px; border-bottom: 1px solid var(--color-border); }
.dashboard-pin { position: absolute; z-index: 3; color: var(--color-primary); font-size: 1.4rem; filter: drop-shadow(0 2px 2px rgba(0,0,0,.18)); transform: translate(-50%,-80%); }
.dashboard-pin--one { left: 22.5%; top: 21.5%; }
.dashboard-pin--two { left: 57.6%; top: 45.9%; }
.dashboard-pin--three { left: 86.4%; top: 65.4%; color: var(--color-success); }
.dashboard__lower { display: grid; grid-template-columns: 1.6fr 1fr; }
.dashboard__lower > div { position: relative; padding: 12px 14px; }
.dashboard__lower > div + div { border-left: 1px solid var(--color-border); }
.dashboard__lower strong { display: block; color: #34485e; font-size: .58rem; }
.dashboard__lower small { position: absolute; right: 8px; bottom: 8px; color: #6e7e90; font-size: .45rem; }
.dashboard__lower small i { color: var(--color-primary); font-size: .35rem; }
.chart-line { display: flex; height: 58px; align-items: flex-end; gap: 8px; padding-top: 11px; border-bottom: 1px solid #bccbd8; }
.chart-line i { flex: 1; min-width: 5px; background: linear-gradient(#75b8ea,var(--color-primary)); clip-path: polygon(0 70%, 100% 25%, 100% 100%, 0 100%); }
.chart-line i:nth-child(2) { height: 42%; }.chart-line i:nth-child(3) { height: 68%; }.chart-line i:nth-child(4) { height: 45%; }.chart-line i:nth-child(5) { height: 78%; }.chart-line i:nth-child(6) { height: 58%; }.chart-line i:nth-child(7) { height: 90%; }
.donut { width: 64px; height: 64px; margin: 4px auto 0; border: 11px solid #dfe5ea; border-top-color: var(--color-primary); border-right-color: #5fa8dc; border-radius: 50%; transform: rotate(-20deg); }

/* Empresas e fotos */
.business { background: #f8fafc; }
.photo-frame { margin: 0; overflow: hidden; border-radius: 4px; box-shadow: var(--shadow-card); }
.photo-frame img { width: 100%; height: 410px; object-fit: cover; }
.photo-frame--wide img { height: 340px; }

/* Benefícios */
.benefits { padding: 68px 0; }
.benefits .section-heading { margin-bottom: 34px; }
.benefits-grid { display: grid; grid-template-columns: repeat(6, 1fr); }
.benefits-grid article { padding: 8px 20px; text-align: center; }
.benefits-grid article + article { border-left: 1px solid var(--color-border); }
.benefits-grid article > i { margin-bottom: 14px; color: var(--color-primary); font-size: 2.2rem; }
.benefits-grid h3 { min-height: 38px; margin-bottom: 8px; font-size: .93rem; }
.benefits-grid p { margin: 0; font-size: .72rem; line-height: 1.45; }

/* Cobertura */
.coverage { background: linear-gradient(180deg,#fff,#f6f9fc); }
.coverage-grid { display: grid; grid-template-columns: .52fr 1.48fr; align-items: center; gap: 45px; }
.coverage__copy p { margin-bottom: 20px; }
.state-list { display: grid; gap: 7px; color: #304660; font-size: .9rem; font-weight: 650; }
.state-list i { width: 18px; color: var(--color-primary); }
.coverage__visual { display: grid; grid-template-columns: 260px 1fr; min-height: 350px; overflow: hidden; border-radius: 14px; background: #d7eafa; box-shadow: var(--shadow-card); }
.coverage__visual > img { width: 100%; height: 100%; object-fit: cover; }
.region-map { position: relative; min-height: 350px; overflow: hidden; color: #fff; background: radial-gradient(circle at 30% 30%,#62b3eb,#0671c4 56%,#00529c); }
.region-map::before, .region-map::after { position: absolute; width: 260px; height: 220px; border: 1px solid rgba(255,255,255,.2); border-radius: 44% 56% 51% 49%; content: ""; transform: rotate(-18deg); }
.region-map::before { left: -76px; bottom: -32px; }.region-map::after { right: -160px; top: -62px; }
.region-map > i { position: absolute; left: 29px; bottom: 28px; color: rgba(255,255,255,.11); font-size: 8rem; }
.state { position: absolute; z-index: 2; display: grid; width: 58px; height: 54px; place-items: center; border: 1px solid rgba(255,255,255,.48); border-radius: 45% 55% 58% 42%; background: rgba(0,62,129,.46); font-size: .78rem; font-weight: 800; box-shadow: 0 4px 10px rgba(1,60,118,.18); }
.state--rn { right: 32px; top: 35px; }.state--pb { right: 42px; top: 91px; }.state--pe { right: 54px; top: 148px; }.state--al { right: 67px; top: 205px; }.state--ce { left: 52px; top: 72px; }

/* Sobre */
.about-grid { display: grid; grid-template-columns: .66fr 1.34fr; align-items: center; gap: 48px; }
.about-grid p { font-size: .92rem; }

/* Públicos */
.audiences { padding-top: 42px; }
.audiences .section-heading { margin-bottom: 28px; }
.audience-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 5px; }
.audience-grid article { position: relative; display: flex; min-height: 205px; align-items: flex-end; overflow: hidden; border-radius: 8px; background-image: linear-gradient(180deg,transparent 32%,rgba(0,19,42,.82) 100%), var(--audience-image); background-position: center; background-size: cover; transition: transform var(--transition), box-shadow var(--transition); }
.audience-grid article:hover { z-index: 2; box-shadow: 0 14px 28px rgba(4,36,70,.2); transform: translateY(-5px); }
.audience-grid h3 { margin: 0; padding: 19px 15px; color: #fff; font-size: 1rem; text-shadow: 0 2px 4px rgba(0,0,0,.42); }

/* Depoimentos */
.testimonials { background: var(--color-light); }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.testimonial-grid article { padding: 28px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-card); }
.stars { display: flex; gap: 4px; margin-bottom: 18px; color: #f4b735; font-size: .86rem; }
blockquote { margin: 0 0 24px; color: #394b60; font-size: .95rem; line-height: 1.75; }
.testimonial-grid article > p { display: grid; margin: 0; }
.testimonial-grid strong { color: var(--color-dark); font-size: .9rem; }
.testimonial-grid span { font-size: .75rem; }

/* FAQ */
.faq__inner { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: 70px; }
.faq-list { border-top: 1px solid var(--color-border); }
.faq details { border-bottom: 1px solid var(--color-border); }
.faq summary { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 20px; color: var(--color-dark); font-weight: 750; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary i { color: var(--color-primary); font-size: .8rem; transition: transform var(--transition); }
.faq details[open] summary i { transform: rotate(180deg); }
.faq details p { margin: -4px 40px 22px 0; font-size: .9rem; }

/* CTA */
.cta { position: relative; overflow: hidden; padding: 42px 0; color: #fff; background: linear-gradient(110deg,#0488d9,#0063b6 55%,#004d96); }
.cta::before { position: absolute; left: 4%; top: -68px; width: 210px; height: 210px; border: 28px solid rgba(255,255,255,.08); border-radius: 50%; content: ""; }
.cta__inner { position: relative; display: grid; grid-template-columns: 90px 1.1fr 1.2fr; align-items: center; gap: 28px; }
.cta__icon { display: grid; width: 72px; height: 72px; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(255,255,255,.1); font-size: 2rem; }
.cta h2 { margin: 0; color: #fff; font-size: clamp(1.85rem,3vw,2.65rem); }
.cta p { margin-bottom: 18px; color: rgba(255,255,255,.9); }
.cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Rodapé */
.footer { color: rgba(255,255,255,.82); background: linear-gradient(115deg,#072b53,#021e3e); }
.footer__grid { display: grid; grid-template-columns: 1.45fr 1.35fr .75fr 1fr; gap: 38px; padding: 55px 0 40px; }
.footer__brand img { width: 182px; height: auto; margin-bottom: 16px; }
.footer__brand p { max-width: 260px; color: rgba(255,255,255,.7); font-size: .76rem; }
.footer h2 { margin-bottom: 16px; color: #fff; font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; }
.footer ul { display: grid; gap: 8px; }
.footer li, .footer li a, .footer li span { color: rgba(255,255,255,.74); font-size: .72rem; line-height: 1.55; }
.footer li a:hover { color: #fff; }
.footer li i { width: 18px; color: #fff; }
.social-links { display: flex; gap: 8px; }
.social-links a { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #fff; transition: background var(--transition), transform var(--transition); }
.social-links a:hover { background: var(--color-primary); transform: translateY(-2px); }
.footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 0; border-top: 1px solid rgba(255,255,255,.12); }
.footer__bottom p { margin: 0; color: rgba(255,255,255,.58); font-size: .66rem; }
.footer__bottom a { color: #fff; font-weight: 700; }
.whatsapp-float { position: fixed; right: 22px; bottom: 22px; z-index: 90; display: grid; width: 55px; height: 55px; place-items: center; border: 3px solid #fff; border-radius: 50%; color: #fff; background: #23bd65; box-shadow: 0 9px 24px rgba(0,0,0,.25); font-size: 1.65rem; transition: transform var(--transition), background var(--transition); }
.whatsapp-float:hover { background: #15a956; transform: translateY(-3px) scale(1.03); }

/* Formulário de orçamento no WhatsApp */
.quote-dialog { width: min(calc(100% - 30px), 560px); max-height: calc(100vh - 30px); padding: 0; border: 0; border-radius: 16px; color: var(--color-dark); box-shadow: 0 24px 70px rgba(0,25,56,.3); }
.quote-dialog::backdrop { background: rgba(2,22,45,.68); backdrop-filter: blur(3px); }
.quote-dialog[open] { animation: dialog-in 180ms ease-out; }
.quote-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 28px 30px 0; }
.quote-dialog__head h2 { margin-bottom: 0; font-size: 1.85rem; }
.quote-dialog > p { margin: 12px 30px 20px; font-size: .88rem; }
.dialog-close { display: grid; flex: 0 0 auto; width: 42px; height: 42px; place-items: center; padding: 0; border: 1px solid var(--color-border); border-radius: 50%; color: var(--color-primary); background: #fff; cursor: pointer; }
.quote-form { display: grid; gap: 15px; padding: 0 30px 30px; }
.quote-form label { display: grid; gap: 6px; color: #263b53; font-size: .8rem; font-weight: 750; }
.quote-form label span { color: var(--color-muted); font-weight: 400; }
.quote-form input, .quote-form select, .quote-form textarea { width: 100%; padding: 11px 12px; border: 1px solid #bdcddd; border-radius: 6px; color: var(--color-dark); background: #fff; }
.quote-form textarea { min-height: 105px; resize: vertical; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { border-color: var(--color-primary); outline: 3px solid rgba(6,109,189,.13); }
.quote-form small { color: var(--color-muted); font-size: .68rem; }
@keyframes dialog-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }

/* Páginas internas */
.inner-hero { position: relative; overflow: hidden; padding: 76px 0; color: #fff; background: linear-gradient(115deg,rgba(3,45,89,.96),rgba(0,100,181,.88)), url('../img/hero-rastreamento.webp') center/cover; }
.inner-hero .eyebrow, .inner-hero p { color: rgba(255,255,255,.84); }
.inner-hero h1 { max-width: 850px; margin-bottom: 18px; color: #fff; font-size: clamp(2.5rem,5vw,4.2rem); }
.inner-hero p { max-width: 720px; margin: 0; font-size: 1.05rem; }
.breadcrumbs { display: flex; gap: 7px; margin-bottom: 20px; color: rgba(255,255,255,.72); font-size: .72rem; }
.breadcrumbs a:hover { color: #fff; }
.content-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); align-items: start; gap: 58px; }
.prose h2 { margin: 38px 0 15px; font-size: clamp(1.6rem,3vw,2.35rem); }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin: 28px 0 10px; font-size: 1.25rem; }
.prose p, .prose li { color: #52647a; font-size: .96rem; }
.prose ul { display: grid; gap: 9px; margin: 18px 0 26px; }
.prose li { display: flex; gap: 10px; }
.prose li::before { color: var(--color-primary); font-family: 'Font Awesome 5 Free'; font-weight: 900; content: '\f058'; }
.side-card { position: sticky; top: 24px; padding: 28px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-light); box-shadow: var(--shadow-card); }
.side-card > i { margin-bottom: 16px; color: var(--color-primary); font-size: 2rem; }
.side-card h2 { margin-bottom: 12px; font-size: 1.45rem; }
.side-card .btn { width: 100%; margin-top: 8px; }
.contact-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.contact-card { padding: 28px; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; box-shadow: var(--shadow-card); }
.contact-card > i { margin-bottom: 16px; color: var(--color-primary); font-size: 1.8rem; }
.contact-card h2 { margin-bottom: 8px; font-size: 1.2rem; }
.contact-card p { margin: 0; font-size: .86rem; }
.contact-card a { color: var(--color-primary-strong); font-weight: 750; }
.contact-form-wrap { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: 55px; margin-top: 58px; padding: 42px; border-radius: 14px; background: var(--color-light); }
.contact-form-wrap h2 { margin-bottom: 12px; font-size: 2rem; }
.contact-form { padding: 0; }
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.post-card { display: flex; min-height: 100%; flex-direction: column; overflow: hidden; border: 1px solid var(--color-border); border-radius: 12px; background: #fff; box-shadow: var(--shadow-card); }
.post-card__visual { display: grid; min-height: 180px; place-items: center; color: #fff; background: linear-gradient(135deg,#076fbd,#023d78); font-size: 3rem; }
.post-card__body { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.post-card small { color: var(--color-primary); font-weight: 800; text-transform: uppercase; }
.post-card h2 { margin: 9px 0 12px; font-size: 1.35rem; }
.post-card p { font-size: .84rem; }
.post-card .text-link { margin-top: auto; color: var(--color-primary); font-size: .8rem; font-weight: 800; }
.article-meta { margin-bottom: 30px; color: var(--color-muted); font-size: .78rem; }
.legal-note { padding: 18px 20px; border-left: 4px solid var(--color-primary); background: var(--color-light); }
.error-page { display: grid; min-height: 70vh; place-items: center; padding: 80px 20px; text-align: center; }
.error-page strong { display: block; color: var(--color-primary); font-size: 6rem; line-height: 1; }
.error-page h1 { margin: 16px 0; font-size: 2.5rem; }

/* Responsividade */
@media (max-width: 1100px) {
  .topbar__contacts span:first-child { display: none; }
  .main-nav { gap: 15px; }
  .nav-actions .btn { padding-inline: 12px; }
  .tracking-preview--hero { right: -20px; width: 520px; }
  .hero__features { gap: 14px; }
  .benefits-grid { grid-template-columns: repeat(3, 1fr); gap: 28px 0; }
  .benefits-grid article:nth-child(4) { border-left: 0; }
  .footer__grid { grid-template-columns: 1.4fr 1.3fr 1fr 1fr; gap: 24px; }
}

@media (max-width: 920px) {
  html { scroll-padding-top: 82px; }
  .topbar { display: none; }
  .nav-wrap { position: relative; }
  .nav-wrap__inner { min-height: 76px; }
  .brand img { width: 155px; height: 52px; }
  .menu-toggle { display: inline-flex; }
  .main-nav { position: fixed; top: 76px; right: 0; bottom: 0; z-index: 110; display: block; width: min(88vw,360px); padding: 24px; overflow-y: auto; background: #fff; box-shadow: -14px 18px 35px rgba(2,34,69,.18); transform: translateX(105%); visibility: hidden; transition: transform 220ms ease, visibility 220ms; }
  .main-nav.is-open { transform: translateX(0); visibility: visible; }
  .main-nav > a:not(.btn) { display: block; padding: 14px 4px; border-bottom: 1px solid var(--color-border); font-size: .95rem; }
  .main-nav > a:not(.btn)::after { display: none; }
  .nav-actions { display: grid; gap: 10px; margin: 24px 0 0; }
  .nav-actions .btn { width: 100%; min-height: 46px; }
  body.menu-open::before { position: fixed; inset: 76px 0 0; z-index: 99; background: rgba(3,20,41,.48); content: ""; backdrop-filter: blur(2px); }
  .hero, .hero__inner { min-height: auto; }
  .hero { padding: 70px 0 65px; background-position: 64% center; }
  .hero__inner { padding-top: 0; }
  .hero__content { width: 72%; }
  .hero__features { display: grid; grid-template-columns: repeat(2, max-content); }
  .tracking-preview--hero { position: relative; right: auto; bottom: auto; width: min(100%,620px); margin: 50px auto -130px; }
  .solutions { padding-top: 150px; }
  .solution-card, .solution-card--large { grid-column: span 6; }
  .steps { grid-template-columns: repeat(2, 1fr); gap: 40px; }
  .steps::before { display: none; }
  .split-layout, .split-layout--reverse { grid-template-columns: 1fr; gap: 40px; }
  .platform .split-layout__copy { max-width: 640px; }
  .business .photo-frame { order: -1; }
  .coverage-grid, .about-grid { grid-template-columns: 1fr; }
  .coverage__copy { max-width: 680px; }
  .audience-grid { grid-template-columns: repeat(3,1fr); }
  .testimonial-grid { grid-template-columns: 1fr; }
  .faq__inner { grid-template-columns: 1fr; gap: 20px; }
  .cta__inner { grid-template-columns: 72px 1fr; }
  .cta__inner > div:last-child { grid-column: 2; }
  .footer__grid { grid-template-columns: 1.4fr 1.4fr 1fr; }
  .footer__grid > div:nth-child(4) { margin-top: 10px; }
  .content-grid { grid-template-columns: 1fr; }
  .side-card { position: static; }
  .contact-cards, .blog-grid { grid-template-columns: 1fr 1fr; }
  .contact-form-wrap { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 640px) {
  .container { width: min(calc(100% - 30px), var(--container)); }
  .section { padding: 66px 0; }
  .section-heading { margin-bottom: 30px; }
  .section-heading h2, .split-layout__copy h2, .coverage__copy h2, .about-grid h2, .faq h2 { font-size: 2rem; }
  .nav-wrap__inner { min-height: 70px; }
  .brand img { width: 146px; height: 49px; }
  .main-nav { top: 70px; }
  body.menu-open::before { inset: 70px 0 0; }
  .hero { padding: 56px 0 54px; background-image: linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.9)),url("../img/hero-rastreamento.webp"); background-position: 63% center; }
  .hero__content { width: 100%; }
  .hero h1 { font-size: 2.45rem; }
  .hero__actions { align-items: stretch; flex-direction: column; }
  .hero__actions .btn { width: 100%; }
  .hero__features { grid-template-columns: 1fr 1fr; gap: 14px 18px; margin-top: 32px; }
  .hero__features span { white-space: normal; }
  .tracking-preview--hero { display: none; }
  .solutions { padding-top: 66px; }
  .solutions-grid { gap: 12px; }
  .solution-card, .solution-card--large { grid-column: span 12; min-height: 230px; }
  .solution-card__copy { width: 58%; padding: 22px 0 0 21px; }
  .solution-card img { width: 64%; height: 82%; }
  .steps { grid-template-columns: 1fr; gap: 30px; }
  .steps li { display: grid; grid-template-columns: 48px 1fr; column-gap: 15px; text-align: left; }
  .steps li > span { grid-row: span 2; width: 44px; height: 44px; margin: 0; border-width: 4px; }
  .steps h3 { align-self: end; margin-bottom: 4px; }
  .steps p { max-width: none; margin: 0; }
  .dashboard__body { grid-template-columns: 94px 1fr; min-height: 305px; }
  .dashboard__side span { grid-template-columns: 15px 1fr; padding: 9px 6px; }
  .dashboard__side span b { display: none; }
  .dashboard__main { grid-template-rows: 1.7fr 1fr; }
  .dashboard__lower { grid-template-columns: 1fr; }
  .dashboard__lower > div:last-child { display: none; }
  .photo-frame img, .photo-frame--wide img { height: 265px; }
  .benefits-grid { grid-template-columns: repeat(2, 1fr); gap: 25px 0; }
  .benefits-grid article { padding: 8px 12px; }
  .benefits-grid article:nth-child(3), .benefits-grid article:nth-child(5) { border-left: 0; }
  .benefits-grid article:nth-child(4) { border-left: 1px solid var(--color-border); }
  .coverage__visual { grid-template-columns: 1fr; }
  .region-map { min-height: 275px; }
  .coverage__visual > img { height: 250px; }
  .audience-grid { grid-template-columns: repeat(2,1fr); }
  .audience-grid article { min-height: 180px; }
  .faq summary { min-height: 62px; font-size: .92rem; }
  .cta { padding: 50px 0; }
  .cta__inner { grid-template-columns: 1fr; gap: 18px; text-align: center; }
  .cta__icon { margin: 0 auto; }
  .cta__inner > div:last-child { grid-column: auto; }
  .cta__actions { justify-content: center; }
  .cta__actions .btn { width: 100%; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
  .footer__bottom { align-items: flex-start; flex-direction: column; }
  .whatsapp-float { right: 14px; bottom: 14px; width: 50px; height: 50px; }
  .platform-actions { align-items: stretch; flex-direction: column; }
  .platform-actions > * { width: 100%; }
  .quote-dialog__head { padding: 22px 20px 0; }
  .quote-dialog > p { margin-inline: 20px; }
  .quote-form { padding: 0 20px 22px; }
  .inner-hero { padding: 58px 0; }
  .contact-cards, .blog-grid { grid-template-columns: 1fr; }
  .contact-form-wrap { padding: 26px 20px; }
}

@media (max-width: 420px) {
  .hero h1 { font-size: 2.1rem; }
  .hero__features { grid-template-columns: 1fr; }
  .solution-card__copy { width: 61%; }
  .solution-card h3 { font-size: 1.2rem; }
  .coverage__visual { min-height: 0; }
  .audience-grid { grid-template-columns: 1fr; }
  .audience-grid article { min-height: 210px; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__brand { grid-column: auto; }
}

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

/* Revisão visual e estrutural da página inicial */
.home-page .section { padding: 70px 0; }
.home-page .hero, .home-page .hero__inner { min-height: 600px; }
.home-page .hero__inner { padding-top: 64px; }
.home-page .hero__content { max-width: 610px; }
.home-page .hero h1 { font-size: clamp(2.8rem, 3.8vw, 3.75rem); }
.home-page .hero__features { margin-top: 34px; }
.home-page .tracking-preview--hero { bottom: -42px; width: 530px; }

.home-page .solutions { padding-top: 108px; }
.home-page .solutions .section-heading { margin-bottom: 30px; }
.home-page .solutions-grid { gap: 12px; }
.home-page .solution-card,
.home-page .solution-card--large { grid-column: span 3; min-height: 220px; }
.home-page .solution-card:nth-child(5) { grid-column: 3 / span 3; }
.home-page .solution-card__copy { width: 54%; padding: 22px 0 0 22px; }
.home-page .solution-card__copy > i { margin-bottom: 9px; font-size: 1.75rem; }
.home-page .solution-card h3 { font-size: 1.22rem; }
.home-page .solution-card img,
.home-page .solution-card--large img { right: 1%; bottom: 1%; width: 43%; height: 72%; object-fit: contain; }
.home-page .tracker-device { right: 26px; bottom: 22px; width: 52px; height: 104px; }

.home-page .how-it-works { padding: 54px 0 58px; }
.home-page .how-it-works .section-heading { margin-bottom: 28px; }
.home-page .how-it-works .section-heading h2 { font-size: clamp(2rem, 3vw, 2.7rem); }

.home-page .platform .split-layout { grid-template-columns: minmax(370px, .95fr) minmax(0, 1.25fr); gap: 46px; }
.home-page .platform .split-layout__copy h2 { font-size: clamp(2.25rem, 3vw, 2.85rem); }
.home-page .platform-actions { display: grid; grid-template-columns: 1fr 1fr; }
.home-page .platform-actions .btn { grid-column: 1 / -1; }
.home-page .platform-actions .store-link { justify-content: center; }

.home-page .business { background: linear-gradient(180deg, #f7fafc, #eef5fa); }
.home-page .business__main { gap: 48px; }
.home-page .business .photo-frame img { height: 355px; }
.home-page .business-benefits { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 42px; }
.home-page .business-benefits article { display: flex; min-height: 112px; align-items: center; gap: 14px; padding: 18px; border: 1px solid #dce8f1; border-radius: 10px; background: rgba(255,255,255,.82); box-shadow: 0 7px 22px rgba(7,46,88,.06); }
.home-page .business-benefits article > span { display: grid; flex: 0 0 auto; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(135deg, var(--color-secondary), var(--color-primary-strong)); font-size: 1.15rem; }
.home-page .business-benefits h3 { margin-bottom: 4px; font-size: .92rem; }
.home-page .business-benefits p { margin: 0; font-size: .72rem; line-height: 1.45; }

.home-page .coverage { background: #fff; }
.home-page .coverage-grid { grid-template-columns: .72fr 1.28fr; gap: 54px; }
.home-page .coverage-map { position: relative; margin: 0; overflow: hidden; border: 1px solid #d6e7f3; border-radius: 18px; background: #e9f5fc; box-shadow: var(--shadow-card); }
.home-page .coverage-map img { width: 100%; height: auto; }
.home-page .coverage-map figcaption { position: absolute; right: 16px; bottom: 14px; padding: 7px 11px; border: 1px solid rgba(6,109,189,.22); border-radius: 18px; color: #17466f; background: rgba(255,255,255,.94); font-size: .68rem; font-weight: 750; box-shadow: 0 4px 12px rgba(6,55,96,.1); }
.home-page .coverage-map figcaption i { margin-right: 5px; color: var(--color-primary); }

.home-page .about { background: #f8fafc; }
.home-page .about-grid { grid-template-columns: .8fr 1.2fr; gap: 52px; }
.home-page .about-grid p { font-size: .9rem; }
.home-page .about-grid .btn { margin-top: 6px; }
.home-page .about .photo-frame--wide img { height: 300px; }

.home-page .faq { padding: 64px 0 70px; }
.home-page .faq__inner { grid-template-columns: .9fr 1.1fr; gap: 54px; }
.home-page .faq summary { min-height: 61px; }
.home-page .cta { padding: 36px 0; }
.home-page .cta__icon { width: 62px; height: 62px; font-size: 1.65rem; }
.home-page .cta__inner { grid-template-columns: 72px 1.08fr 1.25fr; gap: 24px; }
.home-page .footer__grid { padding: 44px 0 30px; }
.home-page .footer__brand img { filter: brightness(0) invert(1); opacity: .9; }
.home-page .footer__bottom { padding-bottom: 24px; }

@media (min-width: 921px) {
  .home-page .nav-actions .btn--outline { display: none; }
}

@media (max-width: 920px) {
  .home-page .hero, .home-page .hero__inner { min-height: auto; }
  .home-page .hero__inner { padding-top: 0; }
  .home-page .tracking-preview--hero { right: auto; bottom: auto; width: min(100%, 600px); margin: 42px auto -95px; }
  .home-page .solutions { padding-top: 118px; }
  .home-page .solution-card,
  .home-page .solution-card--large { grid-column: span 6; min-height: 205px; }
  .home-page .solution-card:nth-child(5) { grid-column: span 6; }
  .home-page .platform .split-layout { grid-template-columns: 1fr; gap: 34px; }
  .home-page .business__main { grid-template-columns: 1fr; gap: 30px; }
  .home-page .business .photo-frame { order: initial; }
  .home-page .business-benefits { grid-template-columns: 1fr 1fr; margin-top: 30px; }
  .home-page .coverage-grid,
  .home-page .about-grid { grid-template-columns: 1fr; gap: 32px; }
  .home-page .coverage-map { max-width: 720px; }
  .home-page .about .photo-frame { max-width: 720px; }
  .home-page .faq__inner { grid-template-columns: 1fr; gap: 18px; }
  .home-page .footer__grid { grid-template-columns: 1.4fr 1.4fr 1fr; }
}

@media (max-width: 640px) {
  .home-page .section { padding: 52px 0; }
  .home-page .hero { padding: 48px 0 44px; }
  .home-page .hero h1 { font-size: 2.2rem; }
  .home-page .hero__features { grid-template-columns: 1fr 1fr; gap: 12px 15px; margin-top: 26px; }
  .home-page .solutions { padding-top: 52px; }
  .home-page .solutions .section-heading { margin-bottom: 24px; }
  .home-page .solution-card,
  .home-page .solution-card--large { grid-column: span 12; min-height: 158px; }
  .home-page .solution-card:nth-child(5) { grid-column: span 12; }
  .home-page .solution-card__copy { width: 59%; padding: 16px 0 0 16px; }
  .home-page .solution-card__copy > i { margin-bottom: 5px; font-size: 1.42rem; }
  .home-page .solution-card h3 { margin-bottom: 4px; font-size: 1.05rem; }
  .home-page .solution-card p { font-size: .69rem; }
  .home-page .solution-card__link { margin-top: 7px; }
  .home-page .solution-card img,
  .home-page .solution-card--large img { right: 1%; bottom: 1%; width: 39%; height: 88%; object-fit: contain; }
  .home-page .tracker-device { right: 28px; bottom: 17px; width: 40px; height: 80px; border-radius: 11px; }
  .home-page .how-it-works { padding: 48px 0 50px; }
  .home-page .how-it-works .section-heading h2 { font-size: 1.8rem; }
  .home-page .steps { gap: 22px; }
  .home-page .platform .split-layout { gap: 30px; }
  .home-page .platform .split-layout__copy h2 { font-size: 1.9rem; }
  .home-page .platform-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .home-page .platform-actions > * { width: auto; }
  .home-page .platform-actions .btn { grid-column: 1 / -1; }
  .home-page .dashboard__body { display: block; min-height: 0; }
  .home-page .dashboard__side { display: none; }
  .home-page .dashboard__main { grid-template-rows: 210px 84px; }
  .home-page .dashboard-map { min-height: 0; }
  .home-page .dashboard__lower { grid-template-columns: 1fr; }
  .home-page .business__main { gap: 26px; }
  .home-page .business .photo-frame img { height: 220px; }
  .home-page .business-benefits { grid-template-columns: 1fr; gap: 9px; margin-top: 26px; }
  .home-page .business-benefits article { min-height: 84px; padding: 13px 15px; }
  .home-page .coverage-grid,
  .home-page .about-grid { gap: 26px; }
  .home-page .coverage-map figcaption { position: static; display: block; border: 0; border-top: 1px solid #d6e7f3; border-radius: 0; box-shadow: none; }
  .home-page .about .photo-frame--wide img { height: 220px; }
  .home-page .faq { padding: 50px 0 54px; }
  .home-page .cta { padding: 38px 0; }
  .home-page .cta__inner { grid-template-columns: 1fr; gap: 14px; }
  .home-page .cta__icon { display: none; }
  .home-page .cta h2 { font-size: 1.72rem; }
  .home-page .footer__grid { padding-top: 38px; }
  .home-page .footer__bottom { padding-bottom: 76px; }
}

@media (max-width: 560px) {
  .home-page .footer__grid { grid-template-columns: 1fr 1fr; gap: 28px 22px; }
  .home-page .footer__brand,
  .home-page .footer__grid > div:nth-child(2) { grid-column: 1 / -1; }
  .home-page .footer__grid > div:nth-child(4) { margin-top: 0; }
  .home-page .footer li,
  .home-page .footer li a,
  .home-page .footer li span { font-size: .76rem; }
}

@media (max-width: 420px) {
  .home-page .hero h1 { font-size: 2.05rem; }
  .home-page .hero__features { grid-template-columns: 1fr 1fr; }
  .home-page .solution-card__copy { width: 57%; }
}

@media (max-width: 340px) {
  .home-page .footer__grid { grid-template-columns: 1fr; }
  .home-page .footer__brand,
  .home-page .footer__grid > div:nth-child(2) { grid-column: auto; }
}
