/* Geist – latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/geist-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Geist – latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/geist-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Geist Mono – latin-ext */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url(/fonts/geist-mono-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Geist Mono – latin */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url(/fonts/geist-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   CEA41 — feuille de style du site statique
   Les styles de mise en page sont portés par les attributs style des pages
   (fidèles à la maquette). Ce fichier contient : base, polices, composants
   interactifs, règles responsives et classes de survol.
   ========================================================================== */

/* --- Base (reprise de la maquette) ------------------------------------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#f3f4f1;font-family:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;color:#0e1621;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:#0b5c8e;text-underline-offset:3px}
a:hover{color:#08466d}
:focus-visible{outline:3px solid #0b5c8e;outline-offset:3px}
input,select,textarea,button{font-family:inherit}
img{max-width:100%}
[hidden]{display:none !important}
#site{position:relative;background:#f3f4f1;min-height:100vh}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{transition:none !important;animation:none !important}
}

/* --- Téléphone --------------------------------------------------------- */
/* Le numéro (07 67 50 61 71, source PagesJaunes, non confirmé sur cea41.fr)
   est masqué. Pour l'afficher partout : supprimer la ligne ci-dessous. */
.tel{display:none !important}

/* --- Lien d'évitement -------------------------------------------------- */
.skip:focus{left:16px !important}

/* --- Icônes (SVG inline à la place de Material Symbols) ---------------- */
.ico{display:inline-block;line-height:1;flex:none}
.ico svg{display:block;width:1em;height:1em}

/* --- Images des emplacements (image-slot de la maquette) --------------- */
.slot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.slot-ph{display:none}
.slot-empty{display:grid;place-items:center;padding:20px;text-align:center;border:1.5px dashed #c5cad0;background:#eceee9}
.slot-empty .slot-ph{display:block;font-family:'Geist Mono',monospace;font-size:12.5px;letter-spacing:.04em;color:#5b6775}

/* --- Vignettes « Prestations complémentaires » ------------------------- */
.thumb{height:auto}
@media (max-width: 479px){
  a:has(> .thumb){grid-template-columns:72px 1fr !important;gap:4px 14px !important;padding:12px 16px 12px 12px !important}
}

/* --- Navigation ---------------------------------------------------------- */
.desk{display:none !important}
.mob{display:flex}
nav.mob{display:block}
@media (min-width: 880px){
  .desk{display:flex !important}
  .mob{display:none !important}
}
.city{white-space:nowrap}
@media (max-width: 879px){.city{white-space:normal}}
.chev{transform:rotate(0deg)}
[aria-expanded="true"] .chev{transform:rotate(180deg)}
.mi-open{display:none}
[aria-expanded="true"] .mi-open{display:inline-block}
[aria-expanded="true"] .mi-closed{display:none}
#menu-prestations a[aria-current="page"]{background:#eef4f9}
#nav-desk a[aria-current="page"]{color:#0b5c8e}
@media (max-width: 1040px) and (min-width: 880px){
  #nav-desk a, #nav-desk button{padding-left:10px !important;padding-right:10px !important;font-size:15px !important}
}

/* --- Pastille de l'accueil ---------------------------------------------- */
@media (max-width: 879px){
  .hero-pin{left:0 !important;bottom:-18px !important}
}

/* --- Galerie défilante --------------------------------------------------- */
.gal{will-change:transform}

/* --- Carte Google Maps (façade de consentement, chargement au clic) ------ */
.map{position:absolute;inset:0;display:grid;place-items:center;background:#e9ebe6;
  background-image:radial-gradient(rgba(14,22,33,.10) 1px,transparent 1px);background-size:22px 22px}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.map-facade{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:380px;padding:28px 24px;text-align:center;
  background:#fff;border:1px solid #dcdfd8;border-radius:22px;box-shadow:0 18px 40px -24px rgba(14,22,33,.35);margin:20px}
.map-title{margin:0;font-size:18px;font-weight:700;color:#0e1621}
.map-text{margin:0;font-size:14px;line-height:1.55;color:#5b6775}
.map-load{min-height:48px;padding:0 24px;border:0;border-radius:999px;background:#0b5c8e;color:#fff;font-weight:600;font-size:15.5px;cursor:pointer;transition:background .2s}
.map-load:hover{background:#08466d}
.map-legend{position:absolute;left:14px;top:14px;z-index:2;display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fff;border-radius:999px;
  font-size:13px;font-weight:600;color:#0e1621;box-shadow:0 8px 24px -10px rgba(14,22,33,.4);pointer-events:none}
.map-legend .sw{width:12px;height:12px;border-radius:50%;background:#c2410c;box-shadow:0 0 0 3px rgba(194,65,12,.25)}
.map.is-loaded .map-facade{display:none}
.map:not(.is-loaded) .map-legend{display:none}

/* --- Formulaire ---------------------------------------------------------- */
.is-invalid{border-color:#c0392b !important}
#contact-form button[disabled]{opacity:.6;cursor:progress}

/* --- Divers responsives -------------------------------------------------- */
@media (max-width: 420px){
  h1{font-size:clamp(34px,9.5vw,40px) !important}
}

/* survols (générés depuis la maquette) */
.hv1:hover{background:#f1f5f8 !important}
.hv2:hover{background:#9a3412 !important;color:#fff !important}
.hv3:hover{background:rgba(255,255,255,.14) !important;color:#fff !important}
.hv4:hover{transform:translateY(-3px) !important;box-shadow:0 14px 30px -18px rgba(23,34,46,.35) !important}
.hv5:hover{text-decoration:underline !important}
.hv6:hover{color:#fff !important;text-decoration:underline !important}
.hv7:hover{background:#9a3412 !important}
.hv8:hover{color:#0e1621 !important}
.hv9:hover{border-color:#0b5c8e !important;transform:translateY(-2px) !important}
