/* ============================================================================
   Page Formations (18/10/2026), pensée pour le décideur qui compare : bandeau comme l’accueil, logos
   clients, six grandes cartes photo par métier et les compétences en une ligne, résultats chiffrés,
   déroulé en quatre étapes avec durée et tarif, carte des interventions (inchangée), avis, FAQ.
   ========================================================================== */
/* ── Bandeau : même construction que l’accueil (css/home-human.css), photo d’un groupe en formation. */
.formations-page .hero { min-height: 560px; padding: 136px 0 68px; }
.formations-page .hero-container { flex: none; }
.formations-page .hero-content { max-width: 980px; margin: auto; }
.formations-page .hero-title { margin-bottom: 24px; }
.formations-page .hero-subtitle { max-width: 52ch; font-size: clamp(16px,1.5vw,18px); line-height: 1.75; color: #d0dced; margin: 0 auto 28px; }
.formations-page .hero-actions { margin: 0; gap: 12px; width: 100%; }
.formations-page .hero .btn-primary { background: #fff; color: #163b84; box-shadow: 0 8px 24px #0002; }
.formations-page .hero .btn-primary:hover { background: #eaf1ff; }
.formations-page .hero .btn-outline { border-color: #ffffff60; color: #fff; }
.formations-page .hero .btn-outline:hover { background: #ffffff12; }
@media (max-width: 700px) {
  .formations-page .hero-subtitle { font-size: 15px; margin-bottom: 24px; }
  .formations-page .hero-actions { gap: 10px; max-width: 400px; }
}
.formations-page .hero-gradient { background: var(--gradient-hero, #101e34); }
.formations-page .hero-gradient::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 38%; background: url('/assets/home-acquis-groupe-professionnels-20261009.webp') 68% 30% / cover no-repeat; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 38%); mask-image: linear-gradient(90deg, transparent 0, #000 38%); }
.formations-page .hero-gradient::after { content: ""; display: block; position: absolute; inset: 0; animation: none; opacity: 1; transform: none; background: radial-gradient(ellipse 55% 75% at 100% 100%, rgba(214, 108, 18, .85) 0, rgba(160, 80, 24, .55) 30%, rgba(122, 66, 30, .25) 55%, transparent 78%), radial-gradient(ellipse 40% 50% at 88% 18%, rgba(36, 84, 206, .28), transparent 70%), linear-gradient(90deg, #101e34 0%, rgba(16, 30, 52, .9) 34%, rgba(16, 30, 52, .35) 56%, rgba(16, 30, 52, 0) 72%), linear-gradient(0deg, #101e34 0, rgba(16, 30, 52, .4) 14%, transparent 36%), linear-gradient(180deg, rgba(16, 30, 52, .55), transparent 20%); }
.formations-page .header:not(.scrolled) { background: rgba(16, 30, 52, .94); }
.formations-page .hero-container--photo-background { grid-template-columns: minmax(0, 1fr); }
.formations-page .hero-container--photo-background .hero-content { width: min(100%, 580px); min-width: 0; margin: 0; align-items: flex-start; text-align: left; }
.ui-polish.formations-page .hero-container--photo-background .hero-title { max-width: 21ch; margin-left: 0; margin-right: 0; font-size: clamp(36px, 3.8vw, 54px); }
.formations-page .hero-container--photo-background .gradient-text { white-space: normal; }
.formations-page .hero-container--photo-background .hero-subtitle { text-align: left; margin-left: 0; margin-right: 0; }
.formations-page .hero-container--photo-background .hero-actions { justify-content: flex-start; }
@media (min-width: 701px) {
  .ui-polish.formations-page .hero-container--photo-background .hero-title { max-width: none; white-space: nowrap; font-size: clamp(32px, 3.6vw, 54px); }
  .ui-polish.formations-page .hero-container--photo-background .hero-title .gradient-text { white-space: nowrap; }
}
@media (max-width: 1050px) and (min-width: 701px) {
  .formations-page .hero-container--photo-background .hero-content { width: min(100%, 560px); }
  .formations-page .hero-gradient::after { background: radial-gradient(ellipse 55% 75% at 100% 100%, rgba(214, 108, 18, .85) 0, rgba(160, 80, 24, .55) 30%, rgba(122, 66, 30, .25) 55%, transparent 78%), radial-gradient(ellipse 40% 50% at 88% 18%, rgba(36, 84, 206, .28), transparent 70%), linear-gradient(90deg, #101e34, rgba(16, 30, 52, .94) 45%, rgba(16, 30, 52, .6) 72%, rgba(16, 30, 52, .3)), linear-gradient(0deg, #101e34, transparent 30%); }
}
@media (max-width: 700px) {
  .formations-page .hero { padding-top: 320px; }
  .formations-page .hero-gradient::before { inset: 0; -webkit-mask-image: none; mask-image: none; background-size: auto 520px; background-position: 55% top; }
  .formations-page .hero-gradient::after { background: radial-gradient(ellipse 95% 45% at 100% 100%, rgba(214, 108, 18, .7), rgba(122, 66, 30, .25) 50%, transparent 78%), linear-gradient(180deg, rgba(16, 30, 52, .1) 0, rgba(16, 30, 52, .2) 140px, rgba(16, 30, 52, .88) 310px, #101e34 480px); }
  .ui-polish.formations-page .hero-container--photo-background .hero-title { font-size: clamp(28px, 8vw, 40px); }
  /* Sur téléphone, le titre coule sans retours forcés : un bloc compact plutôt que sept lignes. */
  .formations-page .hero-title br { display: none; }
}

/* Informations pratiques : comme la FAQ de l’accueil (titre centré, questions en pleine largeur), pas la grille
   à deux colonnes que le site donne à #infos-pratiques sur les pages de formation. */
.ui-polish.layout-refresh.formations-page #infos-pratiques { background: var(--gray-50); }
.ui-polish.layout-refresh.formations-page #infos-pratiques > .container { display: block; }
.ui-polish.layout-refresh.formations-page #infos-pratiques .section-header { text-align: center; margin: 0 auto 48px; }

/* ── Logos clients sous le bandeau : une ligne discrète, logos seuls (preuve avant le choix). */
.formations-page .client-proof { padding: 28px 0; border-top: 0; }
.formations-page .client-logo-wall { flex-wrap: nowrap; gap: clamp(12px, 3vw, 40px); justify-content: space-between; align-items: center; }
.formations-page .client-logo-wall li { flex: 1 1 0; max-width: 150px; }
.formations-page .client-logo-wall a { min-height: 0; padding: 6px; border: 0; background: transparent; box-shadow: none; filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
.formations-page .client-logo-wall a:hover, .formations-page .client-logo-wall a:focus-visible { filter: none; opacity: 1; transform: none; box-shadow: none; }
.formations-page .client-logo-wall img { max-height: 46px; }
.formations-page .client-logo-wall img.client-logo--tall { max-height: 58px; }
.formations-page .client-logo-sector { display: none; }

/* ── Sections */
.fx-block { padding: clamp(64px, 8vw, 104px) 0; background: var(--white); scroll-margin-top: 80px; }
.fx-block--soft { background: var(--gray-50); border-block: 1px solid var(--gray-200); }
.fx-heading { max-width: 720px; margin-bottom: clamp(28px, 4vw, 44px); }
.fx-heading h2 { margin: 12px 0 0; font-size: clamp(30px, 3.8vw, 46px); line-height: 1.1; letter-spacing: -.035em; color: var(--gray-900); text-wrap: balance; }

/* ── Parcours par métier : grandes cartes photo, titre posé sur l’image, une flèche. */
.fx-cards { display: grid; scroll-margin-top: 100px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 22px); margin: 0; padding: 0; list-style: none; }
.fx-card { scroll-margin-top: 100px; }
.fx-card a { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 20px; background: #101e34; color: #fff; text-decoration: none; isolation: isolate; box-shadow: 0 24px 48px -36px rgba(16, 30, 52, .7); }
.fx-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.fx-card a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(16, 30, 52, 0) 38%, rgba(16, 30, 52, .55) 62%, rgba(12, 22, 40, .94) 100%); transition: opacity .3s; }
.fx-card a:hover img, .fx-card a:focus-visible img { transform: scale(1.06); }
.fx-card-text { position: absolute; left: 24px; right: 84px; bottom: 24px; display: grid; gap: 8px; }
.fx-card-title { font-family: var(--font-heading); font-size: clamp(21px, 2vw, 27px); font-weight: 700; line-height: 1.08; letter-spacing: -.01em; text-transform: uppercase; text-wrap: balance; }
.fx-card-audience { color: rgba(255, 255, 255, .78); font-size: 14px; line-height: 1.45; }
.fx-card-go { position: absolute; right: 22px; bottom: 24px; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 50%; transition: background .25s, border-color .25s, transform .25s; }
.fx-card-go svg { width: 20px; height: 20px; }
.fx-card a:hover .fx-card-go, .fx-card a:focus-visible .fx-card-go { background: var(--orange, #f97316); border-color: var(--orange, #f97316); transform: translateX(3px); }
.fx-card a:focus-visible { outline: 3px solid #f97316; outline-offset: 4px; }

/* ── Résultats : bandeau bleu nuit, quatre chiffres (données de scripts/performance-indicators.json). */
.fx-proof { padding: clamp(56px, 7vw, 88px) 0; background: radial-gradient(ellipse 50% 90% at 100% 100%, rgba(214, 108, 18, .35), transparent 70%), #101e34; color: #fff; }
.fx-proof-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 40px; margin-bottom: clamp(28px, 4vw, 44px); }
.fx-proof-head .section-tag { flex-basis: 100%; color: #fdba74; }
.fx-proof-head h2 { max-width: 620px; margin: 0; color: #fff; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.12; letter-spacing: -.035em; }
.fx-proof-head a { display: inline-flex; gap: 8px; color: #fff; font-weight: 700; font-size: 15px; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.fx-proof-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.fx-proof-list li { padding: 4px 24px 4px 0; }
.fx-proof-list li + li { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .16); }
.fx-proof-value { margin: 0 0 10px; font-family: var(--font-heading); font-size: clamp(40px, 4.6vw, 60px); font-weight: 700; line-height: 1; }
.fx-proof-value span { margin-left: 2px; color: #fdba74; font-size: .5em; }
.fx-proof-label { margin: 0; color: rgba(255, 255, 255, .78); font-size: 15px; line-height: 1.45; }
.fx-proof-note { margin: clamp(24px, 3vw, 36px) 0 0; color: rgba(255, 255, 255, .6); font-size: 13px; }

/* ── Comment ça se passe : quatre étapes numérotées, puis durée / modalités / tarif, puis l’appel. */
.fx-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.fx-steps li { position: relative; padding: 26px 24px 28px; border: 1px solid var(--gray-200); border-radius: 18px; background: var(--white); }
.fx-step-n { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 22px; border-radius: 50%; background: #2454ce; color: #fff; font-family: var(--font-heading); font-size: 18px; font-weight: 700; }
.fx-steps li:last-child .fx-step-n { background: var(--orange, #f97316); }
.fx-steps h3 { margin: 0 0 10px; color: var(--gray-900); font-size: 18px; line-height: 1.25; text-wrap: balance; }
.fx-steps p { margin: 0; color: var(--text-secondary); font-size: 15px; line-height: 1.6; }
.fx-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 28px 0 0; padding: 22px 0; border-block: 1px solid var(--gray-200); }
.fx-facts > div { padding: 0 24px; }
.fx-facts > div:first-child { padding-left: 0; }
.fx-facts > div + div { border-left: 1px solid var(--gray-200); }
.fx-facts dt { margin-bottom: 6px; color: var(--text-secondary); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fx-facts dd { margin: 0; color: var(--gray-900); font-size: 15px; font-weight: 600; line-height: 1.5; }
.fx-facts a { color: var(--primary); }
.fx-call { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; margin-top: 32px; }
.fx-call p { margin: 0; max-width: 560px; color: var(--text-secondary); font-size: 17px; line-height: 1.6; }
.fx-call strong { color: var(--gray-900); }

/* ── Articles (bloc généré par scripts/build-growth-pages.mjs) : comme les articles de l’accueil — photo,
   thème en orange, temps de lecture, titre, « Lire l’article » ; puis le guide à télécharger, à part. */
.formations-page .project-articles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 36px); margin: 0 0 clamp(40px, 5vw, 64px); padding: 0; list-style: none; }
.project-article a { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.project-article img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px; background: var(--gray-100); transition: transform .3s ease; }
.project-article a:hover img { transform: translateY(-3px); }
.project-article-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 18px 0 8px; color: var(--text-secondary); font-size: 13px; }
.project-article-meta span:first-child { color: #c2410c; font-weight: 700; }
.project-article h3 { flex: 1; margin: 0 0 14px; color: var(--gray-900); font-size: clamp(18px, 1.6vw, 21px); line-height: 1.3; letter-spacing: -.02em; text-wrap: balance; transition: color .15s ease; }
.project-article a:hover h3 { color: var(--primary); }
.project-article-read { display: inline-flex; gap: 8px; color: var(--primary); font-size: 15px; font-weight: 700; }
.project-article a:focus-visible { outline: 3px solid #f97316; outline-offset: 6px; border-radius: 14px; }
[data-theme=dark] .project-article-meta span:first-child { color: #fdba74; }
[data-theme=dark] .project-article-read { color: #8fb0ff; }
@media (max-width: 860px) { .formations-page .project-articles { grid-template-columns: minmax(0, 1fr); } .project-article a { display: grid; grid-template-columns: 120px minmax(0, 1fr); column-gap: 16px; align-items: center; } .project-article img { grid-row: span 3; border-radius: 10px; } .project-article-meta { margin-top: 0; } .project-article h3 { margin-bottom: 6px; font-size: 16px; } .project-article-read { font-size: 14px; } }
@media (prefers-reduced-motion: reduce) { .project-article img { transition: none; } }

/* Thème sombre : fonds et textes suivent les variables du site ; accents éclaircis. */
[data-theme=dark] .fx-facts a { color: #8fb0ff; }
[data-theme=dark] .formations-page .client-logo-wall a { filter: grayscale(1) invert(1) brightness(1.6); opacity: .55; }
[data-theme=dark] .fx-proof { background: radial-gradient(ellipse 50% 90% at 100% 100%, rgba(214, 108, 18, .28), transparent 70%), #0b1527; }

@media (max-width: 1050px) {
  .fx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fx-proof-list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .fx-proof-list li:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 860px) {
  .fx-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .formations-page .client-logo-wall { flex-wrap: wrap; justify-content: center; row-gap: 8px; }
  .formations-page .client-logo-wall li { flex: 0 0 calc(25% - 30px); }
}
@media (max-width: 640px) {
  .fx-cards { grid-template-columns: minmax(0, 1fr); }
  .fx-card a { aspect-ratio: 4 / 3.4; }
  .fx-steps { grid-template-columns: minmax(0, 1fr); gap: 0; border: 1px solid var(--gray-200); border-radius: 18px; background: var(--white); }
  .fx-steps li { display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 14px; padding: 18px; border: 0; border-radius: 0; background: none; }
  .fx-steps li + li { border-top: 1px solid var(--gray-200); }
  .fx-step-n { grid-row: span 2; width: 36px; height: 36px; margin: 0; font-size: 16px; }
  .fx-steps h3 { margin: 6px 0 4px; font-size: 16px; }
  .fx-steps p { font-size: 14.5px; }
  .fx-facts { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .fx-facts > div, .fx-facts > div:first-child { padding: 0; }
  .fx-facts > div + div { padding-top: 16px; border-left: 0; border-top: 1px solid var(--gray-200); }
  .fx-call .btn { width: 100%; justify-content: center; }
  .formations-page .client-logo-wall li { flex: 0 0 calc(33% - 20px); }
}
@media (prefers-reduced-motion: reduce) {
  .fx-card img, .fx-card-go { transition: none; }
  .fx-card a:hover img { transform: none; }
}

/* Nos interventions : carte animée de Lyon, La Rochelle et de la France couverte (18/10/2026, js/modules/coverage-map.js). */
.formations-page #implantations > .container { display: block; }
.formations-page #implantations .section-header { margin-bottom: clamp(28px, 4vw, 44px); }
.coverage { --coverage-accent: #2454ce; --coverage-orange: #f57826; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.coverage-map { position: relative; margin: 0; padding: clamp(12px, 2vw, 24px); border: 1px solid var(--gray-200); border-radius: 24px; background: radial-gradient(circle at 30% 20%, #fff 0%, #eef3ff 100%); box-shadow: 0 30px 60px -40px rgba(16, 30, 52, .35); }
.coverage-svg { display: block; width: 100%; height: auto; overflow: visible; }
.coverage-land path { fill: #fff; }
.coverage-outline { fill: none; stroke: rgba(36, 84, 206, .55); stroke-width: 1.4; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.coverage-zone { transform-box: fill-box; transform-origin: center; transition: fill-opacity .4s; }
.coverage-routes path { fill: none; stroke: var(--coverage-orange); stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-opacity .4s; }
.coverage-cities circle { fill: #fff; stroke: var(--coverage-orange); stroke-width: 2; transform-box: fill-box; transform-origin: center; transition: stroke-opacity .4s, fill-opacity .4s; }
.coverage-dot { fill: var(--coverage-accent); stroke: #fff; stroke-width: 3; }
.coverage-pulse { fill: var(--coverage-accent); opacity: 0; transform-box: fill-box; transform-origin: center; }
.coverage-base { cursor: pointer; transition: opacity .4s; }
.coverage-base text { font: 700 15px var(--font-heading); letter-spacing: .02em; fill: #172640; paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
/* Base choisie dans les onglets : l’autre s’efface un peu. */
.coverage[data-focus="lyon"] :is(.coverage-routes, .coverage-cities) [data-base="larochelle"],
.coverage[data-focus="larochelle"] :is(.coverage-routes, .coverage-cities) [data-base="lyon"] { stroke-opacity: .18; fill-opacity: .4; }
.coverage[data-focus="lyon"] .coverage-zone[data-base="larochelle"], .coverage[data-focus="larochelle"] .coverage-zone[data-base="lyon"] { fill-opacity: .35; }
.coverage[data-focus="lyon"] .coverage-base[data-base="larochelle"], .coverage[data-focus="larochelle"] .coverage-base[data-base="lyon"] { opacity: .55; }
/* Animation (seulement avec JavaScript et sans « réduire les animations ») : contour, zones, trajets, villes, puis pulsations. */
.coverage.is-animated :is(.coverage-outline, .coverage-routes path) { stroke-dashoffset: 1; }
.coverage.is-animated :is(.coverage-zone, .coverage-cities circle) { opacity: 0; transform: scale(.2); }
.coverage.is-visible .coverage-outline { animation: coverage-draw 1.6s ease-out forwards; }
.coverage.is-visible .coverage-zone { animation: coverage-grow 1.4s .6s ease-out forwards, coverage-breathe 6s 2.2s ease-in-out infinite; }
.coverage.is-visible .coverage-routes path { animation: coverage-draw .9s calc(1.2s + var(--i) * .12s) ease-out forwards; }
.coverage.is-visible .coverage-cities circle { animation: coverage-pop .4s calc(1.9s + var(--i) * .12s) ease-out forwards; }
.coverage.is-visible .coverage-pulse { animation: coverage-pulse 2.8s 1s ease-out infinite; }
.coverage.is-visible .coverage-pulse.is-late { animation-delay: 2.4s; }
@keyframes coverage-draw { to { stroke-dashoffset: 0; } }
@keyframes coverage-grow { to { opacity: 1; transform: scale(1); } }
@keyframes coverage-breathe { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 1; transform: scale(1.07); } }
@keyframes coverage-pop { 0% { opacity: 0; transform: scale(0); } 70% { opacity: 1; transform: scale(1.5); } 100% { opacity: 1; transform: scale(1); } }
@keyframes coverage-pulse { 0% { opacity: .45; transform: scale(1); } 100% { opacity: 0; transform: scale(3.6); } }
.coverage-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 10px 4px 0; color: var(--text-secondary); font-size: 12.5px; }
.coverage-legend i { display: inline-block; width: 10px; height: 10px; margin-right: 7px; border-radius: 50%; vertical-align: -1px; }
.coverage-legend .is-base { background: var(--coverage-accent); }
.coverage-legend .is-city { border: 2px solid var(--coverage-orange); background: #fff; }
.coverage-legend .is-zone { background: rgba(36, 84, 206, .25); }
.coverage-panel { display: grid; gap: 18px; }
.coverage-tabs { display: inline-flex; flex-wrap: wrap; justify-self: start; gap: 4px; padding: 5px; border: 1px solid var(--gray-200); border-radius: 999px; background: #fff; }
.coverage-tabs button { padding: 9px 16px; border: 0; border-radius: 999px; background: transparent; color: var(--text-secondary); font: 600 14px var(--font-body); cursor: pointer; transition: background .2s, color .2s; }
.coverage-tabs button:hover { color: var(--primary); }
.coverage-tabs button[aria-selected="true"] { background: var(--primary); color: #fff; box-shadow: 0 6px 16px -8px rgba(36, 84, 206, .6); }
.coverage-tabs button:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
.coverage-card { padding: 24px; border: 1px solid var(--gray-200); border-radius: 18px; background: #fff; animation: coverage-fade .35s ease-out; }
.course-locations .coverage-card h3 { margin: 0 0 10px; font-size: 21px; }
.course-locations .coverage-card p { margin: 0 0 14px; line-height: 1.7; }
.coverage-links { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.coverage-links a { display: inline-flex; gap: 8px; color: var(--primary); font-weight: 600; text-decoration: none; }
.coverage-links a::before { content: '→'; color: var(--orange); }
.coverage-links a:hover { text-decoration: underline; text-underline-offset: 3px; }
.coverage-cta { justify-self: start; }
@keyframes coverage-fade { from { opacity: 0; transform: translateY(6px); } }
@media (max-width: 900px) { .coverage { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .coverage-card { animation: none; } }
[data-theme=dark] .coverage-map { border-color: rgba(255, 255, 255, .1); background: radial-gradient(circle at 30% 20%, #1b2a4a 0%, #101a30 100%); }
[data-theme=dark] .coverage-land path { fill: #18264a; }
[data-theme=dark] .coverage-base text { fill: #f1f5f9; stroke: #101a30; }
[data-theme=dark] :is(.coverage-tabs, .coverage-card) { border-color: rgba(255, 255, 255, .12); background: #111c33; }
[data-theme=dark] .coverage-links a { color: #8fb0ff; }
