/* ==========================================================================
   MOZ-Réparations — charte « Precision Tech Repair » (zip Stitch)
   Couche commune chargée en dernier sur les pages publiques historiques :
   elle applique les couleurs, polices, arrondis et boutons du zip au contenu
   existant. En-tête et pied de page : balisage du zip + moz-shell.css.
   ========================================================================== */
@font-face{font-family:'Geist';src:url('fonts/Geist-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}


/* --------------------------------------------------------------------------
   1. Tokens (valeurs du tailwind.config / DESIGN.md du zip)
   -------------------------------------------------------------------------- */
:root {
  --bg:      #0f131c;   /* surface */
  --bg2:     #0a0e16;   /* surface-container-lowest */
  --bg3:     #181c24;   /* surface-container-low */
  --card:    #1c2028;   /* surface-container */
  --elev:    #262a33;   /* surface-container-high */
  --charcoal:#31353e;   /* surface-container-highest */

  --text:    #dfe2ee;   /* on-surface */
  --muted:   #e4e6ee;   /* on-surface-variant */
  --faint:   #94A3B8;   /* text-muted */

  --orange:  #f97316;   /* primary-container */
  --orange2: #ffb690;   /* primary (survol) */
  --orange-glow: rgba(249,115,22,0.10);
  --on-orange: #552100; /* on-primary */
  --cyan:    #4cd7f6;   /* secondary */
  --green:   #4edea3;   /* tertiary */
  --danger:  #EF4444;

  --border:  rgba(255,255,255,0.08);
  --line:    rgba(255,255,255,0.06);
  --line-2:  rgba(255,255,255,0.12);
  --line-accent: rgba(249,115,22,0.35);

  --r:    0.75rem;      /* rounded-xl : cartes */
  --r-sm: 0.5rem;       /* rounded-lg : boutons, champs */
  --shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --glow: 0 0 20px rgba(249,115,22,0.35);

  --font: 'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono: 'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;   /* labels */
  --code: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  --hdr-h: 116px;
  --util-h: 0px;
  --wrap: 1280px;
  --gutter: max(24px, calc((100vw - var(--wrap)) / 2 + 48px));

  color-scheme: dark;
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
body {
  background: var(--bg) !important;
  color: var(--text);
  font-family: var(--font) !important;
  font-size: 19.2px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::before { display: none !important; }            /* bruit de fond retiré */

h1, h2, h3, h4, h5 { font-family: var(--font) !important; letter-spacing: -0.015em; text-wrap: balance; }
p { text-wrap: pretty; }
strong, b { font-weight: 700; }
::selection { background: rgba(249,115,22,0.35); color: #fff; }

a { color: inherit; }
:focus-visible { outline: 2px solid var(--orange) !important; outline-offset: 2px !important; border-radius: var(--r-sm); }
input, select, textarea, button { font-family: inherit; accent-color: var(--orange); }

.moz-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.moz-skip { background: var(--orange) !important; color: var(--on-orange) !important; border-radius: 0 0 var(--r) 0 !important; }

/* Étiquettes techniques : police système */
.stag, .hero-badge, .mz-idx-tag, .stat-label, .pstep-num, .nsv-card-num,
.seo-step-num, .wfeat-num, .moz-mono { font-family: var(--mono) !important; }

/* Feuille des villes */
.cities-sheet { background: var(--card) !important; border-radius: var(--r) var(--r) 0 0 !important; border-top: 1px solid var(--line-2); }
.cities-sheet-overlay { background: rgba(3,6,12,0.72) !important; }
.cities-sheet-close { border-radius: var(--r-sm) !important; }
.cities-filter { border-radius: var(--r) !important; background: var(--bg) !important; border-color: var(--line-2) !important; }
.cities-filter:focus { border-color: var(--orange) !important; }
.cities-list a { border-radius: var(--r-sm) !important; }
.cities-all-link { color: var(--orange) !important; }

/* Bandeau éco (pages qui le portent) */
.eco-banner {
  background: rgba(52,211,153,0.05) !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 10px var(--gutter) !important;
  gap: 10px !important; font-size: 16.8px !important;
}
.eco-banner strong, .eco-label {
  font: 700 12px/1 var(--mono) !important; letter-spacing: .08em; text-transform: uppercase;
  color: var(--green) !important;
}
.eco-label svg { width: 16px !important; height: 16px !important; }
.eco-desc { color: var(--muted) !important; font-size: 16.8px !important; }

/* --------------------------------------------------------------------------
   4. Titres de section & étiquettes
   -------------------------------------------------------------------------- */
section { padding-top: 72px; padding-bottom: 72px; }
@media (max-width: 768px) { section { padding-top: 52px; padding-bottom: 52px; } }

.stag {
  display: inline-block !important;
  font-size: 13.2px !important; line-height: 16.8px; font-weight: 500 !important;
  letter-spacing: .1em !important; text-transform: uppercase;
  color: var(--orange) !important;
  background: none !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important;
  margin-bottom: 6px;
}
.stag::before { display: none !important; }
.stitle {
  font-weight: 800 !important;
  font-size: clamp(26px, 3.1vw, 38px) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.022em !important;
  color: var(--text);
}
.ssub { color: var(--muted) !important; font-size: 20.4px !important; line-height: 1.65; }

.divider { height: 1px !important; background: var(--line) !important; }

/* --------------------------------------------------------------------------
   5. Boutons
   -------------------------------------------------------------------------- */
.btn-primary, .mz-cta-inline, .nsv-assurance-cta, .devis-blink-btn, #qfSubmit, .nsv-btn {
  background: var(--orange) !important;
  color: var(--on-orange) !important;
  border: 1px solid transparent !important;
  border-radius: var(--r-sm) !important;
  font-family: var(--mono) !important; font-weight: 600 !important;
  box-shadow: var(--glow) !important;
  transform: none !important;
  animation: none !important;
  transition: background-color .15s, border-color .15s, color .15s !important;
}
.btn-primary:hover, .mz-cta-inline:hover, .nsv-assurance-cta:hover, .devis-blink-btn:hover, #qfSubmit:hover, .nsv-btn:hover {
  background: var(--orange2) !important; color: var(--on-orange) !important;
}
.btn-primary svg, .nsv-btn svg, .mz-cta-inline svg { stroke: currentColor; }

.btn-ghost {
  background: var(--card) !important;
  color: var(--text) !important;
  border: 1px solid var(--line-2) !important;
  border-radius: var(--r) !important;
  font-weight: 600 !important;
  box-shadow: none !important; transform: none !important;
}
.btn-ghost:hover { border-color: var(--cyan) !important; color: #fff !important; }

.hero-btn { border-radius: var(--r) !important; box-shadow: none !important; transform: none !important; font-size: 18px !important; }
.hero-btn-assurance, .hero-btn.hero-btn-assurance {
  background: rgba(52,211,153,0.08) !important;
  color: #6EE7B7 !important;
  border: 1px solid rgba(52,211,153,0.45) !important;
}
.hero-btn-assurance:hover { background: rgba(52,211,153,0.16) !important; }
.hero-btn-cert, .hero-btn.hero-btn-cert, .cert-link-btn {
  background: rgba(34,211,238,0.07) !important;
  color: #67E8F9 !important;
  border: 1px solid rgba(34,211,238,0.42) !important;
  border-radius: var(--r) !important;
}
.hero-btn-cert:hover, .cert-link-btn:hover { background: rgba(34,211,238,0.14) !important; }

.gr-cta-btn { border-radius: var(--r) !important; transform: none !important; }

/* Gabarit pages villes / services (classes courtes historiques) */
.bp { background: var(--orange) !important; color: var(--on-orange) !important; border-radius: var(--r-sm) !important; font-family: var(--mono) !important; font-weight: 600 !important; transform: none !important; box-shadow: var(--glow) !important; }
.bp:hover { background: var(--orange2) !important; }
.bg { background: var(--elev) !important; color: var(--text) !important; border: 0 !important; border-radius: var(--r-sm) !important; font-family: var(--mono) !important; }
.bg:hover { border-color: var(--cyan) !important; }
.hbadge, .dbadge {
  font-family: var(--mono) !important; font-size: 13.8px !important; letter-spacing: .1em !important;
  border-radius: var(--r-sm) !important;
}
.hsub { color: var(--muted) !important; }

/* Boutons « assurance » (vert) et « certificat » (bleu) codés en style inline sur de nombreuses pages */
a[style*="background:#16a34a"], button[style*="background:#16a34a"], .svc-assurance-btn {
  background: rgba(52,211,153,0.08) !important; color: #6EE7B7 !important;
  border: 1px solid rgba(52,211,153,0.45) !important; box-shadow: none !important;
}
a[style*="background:#16a34a"]:hover, .svc-assurance-btn:hover { background: rgba(52,211,153,0.16) !important; }
a[style*="background:#1d4ed8"], button[style*="background:#1d4ed8"] {
  background: rgba(34,211,238,0.07) !important; color: #67E8F9 !important;
  border: 1px solid rgba(34,211,238,0.42) !important; box-shadow: none !important;
}
a[style*="background:#1d4ed8"]:hover { background: rgba(34,211,238,0.14) !important; }

/* --------------------------------------------------------------------------
   6. Cartes & surfaces (niveau 1 : #111827 + trait fantôme)
   -------------------------------------------------------------------------- */
.scard, .wcard, .gr-card, .nsv-card, .mz-idx-card, .seo-card, .twin-card, .brand-card,
.pstep, .faq-item, .moz-stat-card, .assurance-card, .gr-logo, .zones-dept, .seo-simulator,
.centre-adresse, .centre-horaires, .itineraire, .mz-news-card, .editorial-frame, .pourquoi-item {
  background: var(--card) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r) !important;
  box-shadow: none !important;
  transform: none !important;
}
.scard:hover, .wcard:hover, .gr-card:hover, .mz-idx-card:hover, .seo-card:hover, .brand-card:hover,
.moz-stat-card:hover, .mz-news-card:hover, .pstep:hover {
  border-color: var(--line-accent) !important;
  transform: none !important;
  box-shadow: none !important;
}
.scard::before, .scard-icon::after, .mz-idx-logo::before, .moz-stat-card::before { display: none !important; }
.scard.featured { background: #131B2A !important; border-color: rgba(249,115,22,0.35) !important; }
.scard h3, .wcard h3, .wcard h4, .mz-idx-body h3, .seo-card h3, .pstep h3 { font-weight: 700 !important; letter-spacing: -0.01em; }
.scard p { color: var(--muted) !important; font-weight: 500 !important; font-size: 18.6px !important; }
.wcard p, .pstep p, .seo-card p, .mz-idx-body p { color: var(--muted) !important; font-size: 18px !important; }

.scard-icon {
  background: var(--bg3) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r) !important;
}
.scard-icon svg, .scard-img { filter: none !important; }
.wcard-icon, .pourquoi-icon, .nsv-card-icon, .twin-item-icon, .centre-adresse-icon, .seo-card-icon {
  border-radius: var(--r) !important;
  background: rgba(249,115,22,0.10) !important;
  border: 1px solid rgba(249,115,22,0.22) !important;
  color: var(--orange) !important;
  box-shadow: none !important;
}

.stag-pill, .zpill, .mz-idx-tag {
  border-radius: var(--r-sm) !important;
  font-family: var(--mono) !important;
  font-size: 14.4px !important; letter-spacing: .02em;
}
.stag-pill, .zpill {
  background: rgba(148,163,184,0.08) !important;
  border: 1px solid var(--line-2) !important;
  color: #CBD5E1 !important;
  padding: 4px 8px !important;
}
.zpill:hover { border-color: var(--line-accent) !important; color: var(--orange) !important; }

.mz-idx-logo { background: #E8ECF3 !important; border-bottom: 1px solid var(--line); }
.mz-idx-logo img, .brand-card img { filter: none !important; }

.brand-card.active { border-color: var(--orange) !important; background: #131B2A !important; }
.device-phone, .laptop-lid, .laptop-base, .device-screen, .laptop-screen { border-radius: var(--r-sm) !important; box-shadow: none !important; }

.pstep-circle {
  border-radius: var(--r) !important;
  background: rgba(249,115,22,0.10) !important;
  border: 1px solid rgba(249,115,22,0.30) !important;
  box-shadow: none !important; color: var(--orange) !important;
}
.pstep-num {
  background: var(--orange) !important; color: var(--on-orange) !important;
  border-radius: var(--r-sm) !important; box-shadow: none !important;
}
.nsv-card-num { color: rgba(249,115,22,0.35) !important; }
.nsv-assurance {
  background: #101725 !important;
  border-top: 1px solid var(--line) !important; border-bottom: 1px solid var(--line) !important;
}
.nsv-assurance::before { display: none !important; }

/* FAQ */
.faq-question { font-weight: 600 !important; font-size: 18.6px !important; color: var(--text) !important; }
.faq-chevron { color: var(--orange) !important; }
.faq-answer-inner { color: var(--muted) !important; font-size: 18px !important; }
.faq-item.open { border-color: rgba(249,115,22,0.35) !important; }

/* Avis Google */
.google-reviews-section { background: var(--bg2) !important; }
.gr-score-num { font-weight: 800 !important; }
.gr-avatar { border-radius: 50% !important; }

/* Compteurs / radar zones */
.radar-ring { border-color: rgba(249,115,22,0.10) !important; }
.zones-counter.pulse { text-shadow: none !important; }

/* Statistiques */
.stat-num { font-weight: 800 !important; letter-spacing: -0.02em !important; }
.stat-num span { color: var(--orange) !important; }
.stat-label { font-size: 13.8px !important; letter-spacing: .1em !important; color: var(--muted) !important; }

/* Modales génériques */
#captainModal > div, #moz-devis-inner {
  background: var(--card) !important;
  border: 1px solid var(--line-2) !important;
  border-radius: var(--r) !important;
  box-shadow: 0 16px 48px -12px rgba(0,0,0,0.7) !important;
}
#captainModal { background: rgba(3,6,12,0.78) !important; }

/* --------------------------------------------------------------------------
   7. Formulaires (valeurs par défaut sobres ; les pages gardent leur logique)
   -------------------------------------------------------------------------- */
.quickfinder-wrap { grid-column: 1 / -1; position: relative; z-index: 2; }
.quickfinder { display: flex; align-items: flex-end; gap: 16px; padding: 18px; }
.qf-field { flex: 1; min-width: 0; }
.qf-field label { display: block; margin-bottom: 8px; }
.qf-select-wrap { position: relative; }
.qf-select-wrap select {
  width: 100%; padding: 12px 38px 12px 12px; font-weight: 600; cursor: pointer;
  -webkit-appearance: none; appearance: none;
}
.qf-select-wrap select:disabled { color: var(--faint) !important; cursor: not-allowed; opacity: .7; }
.qf-select-wrap select option { color: #0F172A; background: #F8FAFC; }
.qf-select-wrap svg { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--muted); pointer-events: none; }
#qfSubmit { cursor: pointer; white-space: nowrap; font-size: 18px; }
@media (max-width: 900px) { .quickfinder { flex-wrap: wrap; } .qf-field, #qfSubmit { flex: 1 1 100%; } }
.quickfinder {
  background: var(--card) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r) !important;
  box-shadow: none !important;
}
.qf-field label { font: 600 11.5px/1 var(--mono) !important; letter-spacing: .1em; text-transform: uppercase; color: var(--muted) !important; }
.qf-select-wrap select {
  background: var(--bg) !important;
  border: 1px solid var(--line-2) !important;
  border-radius: var(--r) !important;
  color: var(--text) !important;
  font-size: 18px !important;
}
.qf-select-wrap select:focus { border-color: var(--orange) !important; outline: none; }
#qfSubmit { padding: 13px 22px !important; border-radius: var(--r) !important; }

/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
   9. Neutralisation des effets « template » (lueurs, flottements, bruit)
   -------------------------------------------------------------------------- */
.hero-blob, .phone-glow { display: none !important; }
.hero::before { opacity: .45; }
.ftag, .phone-frame, .captain-btn, #homeRetouverWrap, #homeRetouverWrap .moz-cta-btn { animation: none !important; }
.captain-btn:hover { filter: none !important; transform: none !important; }
.ftag { border-radius: var(--r) !important; box-shadow: 0 8px 24px -10px rgba(0,0,0,0.6) !important; }
.p-chip { border-radius: var(--r) !important; box-shadow: none !important; }

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


/* Icônes SVG remplaçant les émojis */
.moz-i{display:inline-block;width:1.05em;height:1.05em;vertical-align:-0.16em;flex-shrink:0;stroke-width:2}

/* Galerie « toutes les marques » : le cadre prend la hauteur des mockups (plus de téléphone coupé) */
.device-visual{padding-bottom:0!important;height:148px}
.device-visual .device-visual-bg{padding:20px 12px!important}
@media (max-width:768px){.device-visual{height:clamp(116px,32vw,140px)}}
/* Bloc « Réparation … par ville » : centré */
section:has(> .city-cards){text-align:center}
section:has(> .city-cards) > .stag{margin-left:auto;margin-right:auto}
section:has(> .city-cards) > .ssub{margin-left:auto!important;margin-right:auto!important;max-width:62ch}
section:has(> .city-cards) .city-cards{grid-template-columns:repeat(auto-fit,minmax(260px,360px))!important;justify-content:center;max-width:1140px;margin-left:auto!important;margin-right:auto!important;text-align:left}
section:has(> .city-cards) .zchips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
/* Cadrage identique à l'accueil (max-w-7xl + px-12 : 1184 px de contenu centré).
   Les fonds de section restent pleine largeur ; seul le contenu est cadré.
   Pages de devis / paiement exclues. */
body:not(:has(#step1, #fAssureur, #recapTitle)) section:not(section section){
  padding-left:max(24px, calc((100% - 1184px) / 2))!important;
  padding-right:max(24px, calc((100% - 1184px) / 2))!important;
}
@media (min-width:1024px){
  body:not(:has(#step1, #fAssureur, #recapTitle)) section:not(section section){
    padding-left:max(48px, calc((100% - 1184px) / 2))!important;
    padding-right:max(48px, calc((100% - 1184px) / 2))!important;
  }
}
body:not(:has(#step1, #fAssureur, #recapTitle)) section:not(section section) > *{
  max-width:1184px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
/* Blocs hors <section> des pages villes (sélecteur rapide, bandeau Captain Repair) */
body:not(:has(#step1, #fAssureur, #recapTitle)) main > .quickfinder-wrap,
body:not(:has(#step1, #fAssureur, #recapTitle)) main > div > div[style*="max-width:1100px"]{
  max-width:1184px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body:not(:has(#step1, #fAssureur, #recapTitle)) main > .quickfinder-wrap{width:calc(100% - 48px)}
@media (min-width:1024px){body:not(:has(#step1, #fAssureur, #recapTitle)) main > .quickfinder-wrap{width:calc(100% - 96px)}}
body:not(:has(#step1, #fAssureur, #recapTitle)) main{max-width:none!important;width:100%!important;margin-left:0!important;margin-right:0!important}
/* Même cadre pour les blocs hors <section> (pages légales, actualités, contact, réparations) */
body:not(:has(#step1, #fAssureur, #recapTitle)) main > .page-hero,
body:not(:has(#step1, #fAssureur, #recapTitle)) main > .contact-band,
body:not(:has(#step1, #fAssureur, #recapTitle)) main > .gband,
body:not(:has(#step1, #fAssureur, #recapTitle)) main > .stats-band{
  padding-left:max(24px, calc((100% - 1184px) / 2))!important;
  padding-right:max(24px, calc((100% - 1184px) / 2))!important;
}
body:not(:has(#step1, #fAssureur, #recapTitle)) main > :is(.content-wrap, .cat-bar, .news-wrap, .contact-main-wrap){
  max-width:1184px!important;
  width:calc(100% - 48px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box;
}
@media (min-width:1024px){
  body:not(:has(#step1, #fAssureur, #recapTitle)) main > :is(.page-hero, .contact-band, .gband, .stats-band){
    padding-left:max(48px, calc((100% - 1184px) / 2))!important;
    padding-right:max(48px, calc((100% - 1184px) / 2))!important;
  }
  body:not(:has(#step1, #fAssureur, #recapTitle)) main > :is(.content-wrap, .cat-bar, .news-wrap, .contact-main-wrap){width:calc(100% - 96px)!important}
}
/* Lisibilité des textes longs dans le cadre élargi */
body:not(:has(#step1, #fAssureur, #recapTitle)) main > .content-wrap :is(p, li){max-width:80ch}
/* Services — zones par distance : même présentation sur mobile et ordinateur, communes homogènes */
.mr-cb-row{text-align:left}
.mr-cb-head{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center!important;gap:14px!important;margin-bottom:16px}
.mr-cb-num{font-size:40px!important}
.mr-cb-titles h4{font-size:20px!important;margin:0 0 4px}
.mr-cb-titles p{font-size:14.4px!important;font-weight:600;color:rgba(255,255,255,.8)}
.mr-cb-count{font-size:26px!important;text-align:right}
.mr-cb-count em{display:block!important;margin:4px 0 0!important;text-align:right!important}
.mr-cb-cities{gap:8px!important}
.mr-cb-cities a,.mr-cb-cities span{font-size:15px!important;padding:6px 12px!important}
.mr-cb-cities span.mr-no-page{opacity:1!important}
@media (max-width:520px){
.mr-cb-head{gap:10px!important}
.mr-cb-num{font-size:32px!important}
.mr-cb-titles h4{font-size:18px!important}
.mr-cb-titles p{font-size:13.5px!important}
.mr-cb-count{font-size:22px!important}
.mr-cb-count em{font-size:11px!important;letter-spacing:1px!important}
.mr-cb-cities a,.mr-cb-cities span{font-size:14.4px!important;padding:5px 10px!important}
}
/* Services — carte des zones (remplace le radar) */
.zone-pro.mz-zone{max-width:none;width:100%;padding:48px 40px}
.mz-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:32px;align-items:start;text-align:left;margin-top:8px}
.mz-map{position:relative;margin:0;background:#0f131c;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:14px}
.mz-map-svg{display:block;width:100%;height:auto}
.mz-dep{fill:#1c2028;stroke:rgba(255,255,255,.18);stroke-width:1;stroke-linejoin:round}
.mz-dep-78{fill:#212632}
.mz-dep-lbl{fill:rgba(223,226,238,.45);font:600 13px 'Geist',system-ui,sans-serif;letter-spacing:.06em;text-anchor:middle;text-transform:uppercase;pointer-events:none}
.mz-dot{stroke:#0f131c;stroke-width:1.5;transition:r .15s}
.mz-green{fill:#4edea3}.mz-yellow{fill:#fbbf24}.mz-blue{fill:#60a5fa}
.mz-map a{cursor:pointer;outline:none}
.mz-map a:hover .mz-dot,.mz-map a:focus-visible .mz-dot,.mz-dot:hover{r:8}
.mz-map a:focus-visible .mz-dot{stroke:#fff;stroke-width:2}
.mz-hq-halo{fill:rgba(249,115,22,.22)}
.mz-hq-dot{fill:#f97316;stroke:#fff;stroke-width:2}
.mz-hq-lbl{fill:#fff;font:700 14px 'Geist',system-ui,sans-serif;paint-order:stroke;stroke:#0f131c;stroke-width:4px}
.mz-tip{position:absolute;transform:translate(-50%,calc(-100% - 10px));padding:6px 10px;border-radius:4px;background:#fff;color:#0f131c;font-size:14px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.mz-legend{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;margin-top:12px;font-size:14px;color:#e4e6ee}
.mz-legend span{display:inline-flex;align-items:center;gap:6px}
.mz-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.mz-l-hq{background:#f97316}.mz-l-green{background:#4edea3}.mz-l-yellow{background:#fbbf24}.mz-l-blue{background:#60a5fa}
.mz-side{display:flex;flex-direction:column;gap:14px}
.mz-search{display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#1c2028;color:#b0b6c2}
.mz-search:focus-within{border-color:#f97316}
.mz-search input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:#dfe2ee;font-size:15.6px;padding:12px 0}
.mz-search input::placeholder{color:#8b919e}
.mz-none{margin:0;font-size:14.4px;color:#e4e6ee}.mz-none a{color:#f97316}
.mz-zone-card{border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#1c2028;padding:14px 16px}
.mz-zone-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:12px}
.mz-sw{width:10px;height:36px;border-radius:3px}
.mz-card-green .mz-sw{background:#4edea3}.mz-card-yellow .mz-sw{background:#fbbf24}.mz-card-blue .mz-sw{background:#60a5fa}
.mz-zone-head h4{margin:0;font-size:18px;font-weight:700;color:#fff;line-height:1.25}
.mz-zone-head p{margin:2px 0 0;font-size:14px;color:#e4e6ee;opacity:.85}
.mz-count{font-size:22px;font-weight:800;color:#fff;line-height:1;text-align:right}
.mz-count em{display:block;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b0b6c2;margin-top:3px}
.mz-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mz-chips a,.mz-chips span[data-q]{display:inline-flex;align-items:baseline;gap:6px;padding:5px 10px;border-radius:4px;border:1px solid;font-size:14.4px;font-weight:600;line-height:1.3;text-decoration:none}
.mz-cp{font-size:12px;font-weight:500;opacity:.75;font-family:ui-monospace,"Cascadia Code","Source Code Pro",Menlo,Consolas,monospace}
.mz-card-green .mz-chips > li > *{background:rgba(78,222,163,.08);border-color:rgba(78,222,163,.3);color:#86efac}
.mz-card-yellow .mz-chips > li > *{background:rgba(251,191,36,.08);border-color:rgba(251,191,36,.3);color:#fcd34d}
.mz-card-blue .mz-chips > li > *{background:rgba(96,165,250,.08);border-color:rgba(96,165,250,.3);color:#93c5fd}
.mz-chips a:hover{border-color:currentColor}
.mz-chips a:focus-visible{outline:2px solid #f97316;outline-offset:2px}
.mz-all{align-self:flex-start;color:#f97316;font-weight:700;font-size:15px;text-decoration:none}
.mz-all:hover{text-decoration:underline}
@media (max-width:1023px){.mz-layout{grid-template-columns:1fr}.zone-pro.mz-zone{padding:40px 20px}}
@media (max-width:520px){.zone-pro.mz-zone{padding:28px 14px}.mz-map{padding:8px}.mz-dep-lbl{font-size:16px}.mz-hq-lbl{font-size:17px}.mz-dot{r:6}}.mz-search .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}
@media (min-width:1024px){.mz-map{position:sticky;top:190px}}@media (max-width:520px){.mz-zone-head{gap:10px}.mz-zone-head h4{font-size:16.5px}.mz-zone-head p{font-size:13px}.mz-count{font-size:20px}.mz-count em{font-size:10px;letter-spacing:.02em}.mz-zone-card{padding:12px}}.mz-km{font-size:12px;font-weight:600;opacity:.9;margin-left:2px}
/* Carte des zones : onglets par zone */
.mz-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.mz-tab{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#1c2028;color:#dfe2ee;font-size:14.4px;font-weight:600;text-align:left;cursor:pointer}
.mz-tab b{margin-left:auto;font-size:15px}
.mz-tab-sw{width:8px;height:22px;border-radius:2px;flex:0 0 8px}
.mz-tab.mz-card-green .mz-tab-sw{background:#4edea3}.mz-tab.mz-card-yellow .mz-tab-sw{background:#fbbf24}.mz-tab.mz-card-blue .mz-tab-sw{background:#60a5fa}
.mz-tab[aria-selected="true"]{border-color:#f97316;background:#262a33}
.mz-tab:focus-visible{outline:2px solid #f97316;outline-offset:2px}
.mz-tabbed:not(.mz-searching) .mz-zone-card.mz-off{display:none}
.mz-searching .mz-tabs{opacity:.5;pointer-events:none}
@media (max-width:520px){.mz-tabs{grid-template-columns:1fr}.mz-tab{padding:9px 12px}}