/* Élag Alpes-Maritimes - feuille unique. Mobile-first : le CSS de base
   décrit le rendu mobile, on enrichit en min-width. Famille H Comptoir. */
@font-face{font-family:'Jakarta';src:url('/assets/fonts/plus-jakarta-sans-variable.woff2') format('woff2-variations');font-weight:200 800;font-style:normal;font-display:swap}
:root{
  --olv-nuit:#13283c;      /* marine profond : barre utilitaire, bandes sombres */
  --olv-marine:#1d3a52;    /* marine moyen : hero */
  --olv-corail:#cb4a20;    /* FOND de bouton : 4,63:1 avec du texte blanc */
  --olv-corail-sombre:#a93a16;
  --olv-corail-texte:#a93a16; /* COULEUR de texte sur fond clair : 6,4:1 */
  --olv-ambre:#9a6208;     /* étoiles d'avis : 5,1:1 sur blanc */
  --olv-encre:#16222e;     /* texte courant */
  --olv-gris:#55697a;      /* texte secondaire */
  --olv-pale:#ecf1f6;      /* fond de section pâle teinté */
  --olv-sable:#f7f2ea;     /* fond de section sable chaud */
  --olv-filet:#d7e0e8;
  --olv-cadre:1160px;
  --olv-r:6px;             /* arrondi de la famille */
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--olv-encre);font:500 17px/1.68 'Jakarta',system-ui,-apple-system,'Segoe UI',sans-serif;overflow-x:hidden;padding-bottom:0}
img,iframe,video,table{max-width:100%}
img{height:auto;display:block}
a{color:var(--olv-corail-sombre)}
h1,h2,h3,h4{margin:0 0 .6em;line-height:1.14;letter-spacing:-.014em;font-weight:800;color:var(--olv-encre)}
h1{font-size:clamp(1.78rem,5.6vw,3.1rem)}
h2{font-size:clamp(1.42rem,3.9vw,2.1rem)}
h3{font-size:1.14rem;font-weight:700}
h4{font-size:1rem;font-weight:700}
p{margin:0 0 1.05em}
ul,ol{margin:0 0 1.05em;padding-left:1.15em}
li{margin-bottom:.4em}
[id]{scroll-margin-top:84px}
.olv-saut{position:absolute;left:-9999px}
.olv-saut:focus{left:8px;top:8px;z-index:999;background:#fff;color:var(--olv-encre);padding:10px 14px;border:2px solid var(--olv-corail);display:inline-flex;align-items:center;min-height:44px}
.olv-cadre{width:100%;max-width:var(--olv-cadre);margin:0 auto;padding:0 18px}
.olv-sect{padding:2.6rem 0}
.olv-sect--pale{background:var(--olv-pale)}
.olv-sect--sable{background:var(--olv-sable)}
.olv-sect--nuit{background:var(--olv-nuit);color:#cfdae3}
.olv-sect--nuit h2,.olv-sect--nuit h3,.olv-sect--nuit b{color:#fff}
.olv-oeil{display:block;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--olv-corail-texte);margin-bottom:.8rem}
.olv-sect--nuit .olv-oeil{color:#f0a68e}
.olv-intro{color:var(--olv-gris);max-width:62ch;margin-bottom:1.8rem}
.olv-sect--nuit .olv-intro{color:#b7c6d2}
.olv-note{font-size:.93rem;color:var(--olv-gris)}
/* Centrage imposé sur accueil et pages villes : titres, intros, CTA autonomes */
body.olv-centre .olv-sect > .olv-cadre > h2,
body.olv-centre .olv-sect > .olv-cadre > .olv-intro,
body.olv-centre .olv-sect > .olv-cadre > .olv-oeil,
body.olv-centre .olv-sect > .olv-cadre > .olv-note,
body.olv-centre .olv-sect > .olv-cadre > .olv-cta-seul{text-align:center;margin-left:auto;margin-right:auto}

/* ---- Boutons ---- */
.olv-bt{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:50px;padding:13px 24px;border:0;border-radius:var(--olv-r);font:800 1rem/1.1 'Jakarta',system-ui,sans-serif;text-decoration:none;cursor:pointer;text-align:center}
.olv-bt--feu{background:var(--olv-corail);color:#fff}
.olv-bt--feu:hover{background:var(--olv-corail-sombre)}
.olv-bt--nuit{background:var(--olv-nuit);color:#fff}
.olv-bt--trait{background:transparent;color:var(--olv-encre);box-shadow:inset 0 0 0 1.5px var(--olv-filet)}
.olv-sect--nuit .olv-bt--trait{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4)}
/* --- Surcharges des blocs SOMBRES, regroupées ICI : héros d'accueil, héros de
   prestation, bandes nuit, relance, carré de statistiques. Toute classe
   ajoutée plus tard sur un fond sombre doit venir ici, sinon elle hérite d'une
   couleur de texte sombre et devient illisible (défaut constaté au rendu). --- */
.olv-heros .olv-oeil,.olv-hpresta .olv-oeil{color:#f3b49e}
.olv-heros .olv-bt--trait,.olv-hpresta .olv-bt--trait{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45)}
.olv-heros .olv-carte .olv-bt--trait{color:var(--olv-encre);box-shadow:inset 0 0 0 1.5px var(--olv-filet)}
.olv-relance a.olv-bt--trait,.olv-sect--nuit a.olv-bt--trait{color:#fff}
.olv-carre a{color:#fff}
.olv-bt--plein{width:100%}
.olv-cta-seul{margin:1.6rem 0 0}

/* ---- SIGNATURE 1 : barre utilitaire pleine largeur, CTA collé au bord droit
   de l'ÉCRAN (pas du conteneur). Pas de téléphone : l'e-mail tient ce rôle. ---- */
.olv-util{background:var(--olv-nuit);color:#c4d0da;font-size:.82rem}
.olv-util__rang{display:flex;align-items:stretch;gap:14px;padding-left:18px}
.olv-util__rang > span{display:flex;align-items:center;gap:6px;padding:8px 0;font-weight:600}
.olv-util__pousse{flex:1 1 auto;padding:0!important}
.olv-util__dit{display:none}
.olv-util__mail{display:none;color:#c4d0da;text-decoration:none;align-items:center;min-height:44px}
.olv-util__cta{display:flex;align-items:center;background:var(--olv-corail);color:#fff;text-decoration:none;font-weight:800;padding:0 18px;white-space:nowrap;font-size:.84rem;min-height:44px}

/* ---- SIGNATURE 2 : en-tête blanc, nav CENTRÉE soulignée, pastille RONDE ---- */
.olv-tete{background:#fff;position:sticky;top:0;z-index:60;border-bottom:1px solid var(--olv-filet)}
.olv-tete__rang{display:flex;align-items:center;gap:12px;min-height:66px}
.olv-marque{text-decoration:none;color:var(--olv-encre);line-height:1.12;margin-right:auto;display:flex;flex-direction:column;justify-content:center;min-height:44px}
.olv-marque b{display:block;font-weight:800;font-size:1.04rem;white-space:nowrap}
.olv-marque span{display:block;font-size:.69rem;color:var(--olv-gris);font-weight:700;letter-spacing:.04em}
.olv-nav{display:none;flex:1 1 auto;justify-content:center;gap:1.05rem}
.olv-nav a{color:var(--olv-encre);text-decoration:none;font-weight:700;font-size:.87rem;padding:11px 0;border-bottom:2px solid transparent;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}
.olv-nav a:hover{color:var(--olv-corail-texte);border-color:var(--olv-corail-texte)}
.olv-nav a[aria-current="page"]{color:var(--olv-corail-texte);border-color:var(--olv-corail-texte)}
.olv-ecrire{display:none;align-items:center;gap:9px;text-decoration:none;color:var(--olv-encre)}
.olv-ecrire__rond{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--olv-pale);color:var(--olv-corail-texte);flex:0 0 auto}
.olv-ecrire small{display:block;font-size:.68rem;color:var(--olv-gris);font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.olv-ecrire b{display:none;font-size:.93rem;font-weight:800;white-space:nowrap}
.olv-burger{display:grid;place-items:center;min-width:46px;min-height:46px;border:0;background:transparent;color:var(--olv-encre);cursor:pointer}

/* ---- Tiroir mobile : e-mail + CTA EN TÊTE, avant la navigation ---- */
.olv-tiroir{position:fixed;inset:0;z-index:120;background:rgba(19,40,60,.6);display:none}
.olv-tiroir[data-ouvert="1"]{display:block}
.olv-tiroir__panneau{position:absolute;top:0;right:0;bottom:0;width:min(88vw,360px);background:#fff;padding:16px 16px calc(20px + env(safe-area-inset-bottom));overflow-y:auto}
.olv-tiroir__haut{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.olv-tiroir__fermer{display:grid;place-items:center;min-width:44px;min-height:44px;border:0;background:var(--olv-pale);border-radius:var(--olv-r);color:var(--olv-encre);cursor:pointer}
.olv-tiroir__act{display:grid;gap:9px;margin-bottom:16px}
.olv-tiroir nav{display:flex;flex-direction:column}
.olv-tiroir nav a{display:flex;align-items:center;min-height:50px;padding:0 4px;color:var(--olv-encre);text-decoration:none;font-weight:700;border-bottom:1px solid var(--olv-filet)}
.olv-tiroir__oeil{display:block;font-size:.7rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--olv-gris);margin:16px 0 4px}
.olv-tiroir nav a.olv-sous{font-weight:600;font-size:.96rem;padding-left:12px}

/* ---- SIGNATURE 3 : hero photo assombrie + carte à bandeau CRANTÉ ---- */
.olv-heros{position:relative;background:var(--olv-marine);color:#fff;overflow:hidden}
.olv-heros__fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32}
.olv-heros__grille{position:relative;display:flex;flex-direction:column;padding:2.1rem 18px 2.6rem;gap:1.4rem}
.olv-heros h1{color:#fff}
.olv-heros .olv-chapo{font-size:1.04rem;color:#d4dee6;max-width:56ch;margin-bottom:1.1rem}
.olv-heros__gages{list-style:none;margin:0 0 1.3rem;padding:0;display:grid;gap:.55rem}
.olv-heros__gages li{display:flex;gap:.6rem;align-items:flex-start;font-size:.95rem;color:#dbe4eb}
.olv-heros__gages svg{flex:0 0 auto;color:#f0a68e;margin-top:4px}
.olv-heros__act{display:grid;gap:9px}
.olv-carte{background:#fff;color:var(--olv-encre);border-radius:var(--olv-r);overflow:hidden;box-shadow:0 20px 48px rgba(10,24,38,.34);order:-1}
.olv-carte__tete{background:var(--olv-corail);color:#fff;text-align:center;padding:15px 16px 29px;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 14px),0 100%)}
.olv-carte__tete b{display:block;font-size:1.12rem;font-weight:800;color:#fff}
.olv-carte__tete span{display:block;font-size:.83rem;color:#fff;margin-top:2px}
.olv-carte__corps{padding:4px 16px 18px}

/* ---- Hero des pages villes : fond clair, centré, SANS formulaire.
   Volontairement distinct du hero sombre à carte de l'accueil. ---- */
.olv-hville{background:linear-gradient(180deg,var(--olv-pale) 0%,#fff 100%);border-bottom:1px solid var(--olv-filet);padding:2.3rem 0 2.7rem;text-align:center}
.olv-hville .olv-chapo{font-size:1.04rem;color:var(--olv-gris);max-width:64ch;margin:0 auto 1.4rem}
.olv-hville__act{display:grid;gap:9px;max-width:390px;margin:0 auto 1.5rem}
.olv-hville__gages{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.olv-hville__gages li{display:flex;gap:.5rem;align-items:center;justify-content:center;font-size:.91rem;color:var(--olv-gris);text-align:left}
.olv-hville__gages svg{color:var(--olv-corail-texte);flex:0 0 auto}

/* ---- Hero des pages prestations : fond sombre, 2 colonnes, illustration à
   droite, SANS formulaire. Distinct de l'accueil ET des pages villes. ---- */
.olv-hpresta{background:linear-gradient(135deg,var(--olv-nuit) 0%,var(--olv-marine) 100%);color:#fff;padding:2.3rem 0 2.7rem}
.olv-hpresta h1{color:#fff}
.olv-hpresta .olv-chapo{font-size:1.04rem;color:#d4dee6;max-width:56ch;margin-bottom:1.2rem}
.olv-hpresta__grille{display:grid;gap:1.7rem;align-items:center}
.olv-hpresta__act{display:grid;gap:9px}
.olv-hpresta__vue{border-radius:var(--olv-r);overflow:hidden;background:rgba(255,255,255,.09);padding:8px}
.olv-hpresta__vue img{border-radius:3px}
.olv-hpresta__gages{list-style:none;margin:1.3rem 0 0;padding:0;display:grid;gap:.55rem}
.olv-hpresta__gages li{display:flex;gap:.6rem;align-items:flex-start;font-size:.93rem;color:#dbe4eb}
.olv-hpresta__gages svg{color:#f0a68e;flex:0 0 auto;margin-top:4px}

/* ---- Étapes numérotées (pages prestations) ---- */
.olv-etapes{list-style:none;counter-reset:olvE;margin:0;padding:0;display:grid;gap:14px;text-align:left}
.olv-etapes > li{counter-increment:olvE;background:#fff;border:1px solid var(--olv-filet);border-radius:var(--olv-r);padding:16px 18px 18px}
.olv-etapes > li::before{content:'0' counter(olvE) '.';display:block;font-size:.83rem;font-weight:800;letter-spacing:.1em;color:var(--olv-corail-texte);margin-bottom:.45rem}
.olv-etapes h3{margin-bottom:.35em}
.olv-etapes p{font-size:.95rem;color:var(--olv-gris);margin:0}

/* ---- Cartes d'aides / de dispositifs ---- */
.olv-aides{list-style:none;margin:0;padding:0;display:grid;gap:16px;text-align:left}
.olv-aides > li{background:#fff;border:1px solid var(--olv-filet);border-radius:var(--olv-r);padding:16px 18px}
.olv-aides__tag{display:inline-block;background:var(--olv-pale);color:var(--olv-encre);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;margin-bottom:.75rem}
.olv-aides h3{margin-bottom:.35em;font-size:1.03rem}
.olv-aides p{font-size:.94rem;color:var(--olv-gris);margin:0}

/* ---- Bande de gages ---- */
.olv-bande{background:var(--olv-pale);border-top:1px solid var(--olv-filet);border-bottom:1px solid var(--olv-filet);padding:1.7rem 0}
.olv-gages{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.olv-gages li{display:flex;gap:.7rem;align-items:flex-start;color:var(--olv-gris);font-size:.95rem}
.olv-gages svg{flex:0 0 auto;color:var(--olv-corail-texte);margin-top:4px}
.olv-gages b{display:block;color:var(--olv-encre)}

/* ---- Grille prestations ---- */
.olv-presta{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.olv-presta > li{background:#fff;border:1px solid var(--olv-filet);border-radius:var(--olv-r);overflow:hidden;display:flex;flex-direction:column}
.olv-sect--pale .olv-presta > li,.olv-sect--sable .olv-presta > li{border-color:#dfe7ee}
.olv-presta__vue{position:relative}
.olv-presta__bulle{position:absolute;left:10px;bottom:10px;background:var(--olv-nuit);color:#fff;font-size:.79rem;font-weight:800;padding:6px 11px;border-radius:999px}
.olv-presta__corps{padding:15px 16px 18px;display:flex;flex-direction:column;flex:1 1 auto;text-align:left}
.olv-presta__corps h3{margin-bottom:.4em}
.olv-presta__corps h3 a{color:var(--olv-encre);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.olv-presta__corps h3 a:hover{color:var(--olv-corail-texte)}
.olv-presta__corps p{font-size:.95rem;color:var(--olv-gris)}
.olv-coches{list-style:none;margin:auto 0 0;padding:0;font-size:.89rem}
.olv-coches li{display:flex;gap:.45rem;align-items:flex-start;color:var(--olv-gris);margin-bottom:.3em}
.olv-coches svg{flex:0 0 auto;color:var(--olv-corail-texte);margin-top:4px}

/* ---- Pourquoi nous choisir ---- */
.olv-pq{display:grid;gap:1.6rem}
.olv-pq__liste{list-style:none;margin:0;padding:0}
.olv-pq__liste li{display:flex;gap:.9rem;margin-bottom:1.3rem;text-align:left}
.olv-pq__liste svg{flex:0 0 auto;color:var(--olv-corail-texte);margin-top:3px}
.olv-pq__liste b{display:block;font-size:1.03rem;color:var(--olv-encre)}
.olv-pq__liste span{font-size:.95rem;color:var(--olv-gris)}
.olv-carre{background:var(--olv-nuit);color:#cfdae3;border-radius:var(--olv-r);padding:22px 20px;text-align:left}
.olv-carre dl{margin:0 0 1.2rem;display:grid;gap:.9rem}
.olv-carre div{display:flex;align-items:baseline;gap:.6rem}
.olv-carre dt{font-size:1.5rem;font-weight:800;color:#fff;line-height:1}
.olv-carre dd{margin:0;font-size:.9rem;color:#b7c6d2}

/* ---- Avis ---- */
.olv-avis{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.olv-avis > li{background:#fff;border:1px solid var(--olv-filet);border-left:3px solid var(--olv-corail);border-radius:var(--olv-r);padding:17px 18px;text-align:left}
.olv-avis p{font-size:.95rem;margin-bottom:.8em}
.olv-avis footer{font-size:.85rem;color:var(--olv-gris)}
.olv-avis footer b{color:var(--olv-encre)}
.olv-etoiles{color:var(--olv-ambre);letter-spacing:.09em;font-size:.95rem;display:block;margin-bottom:.5rem}
.olv-avis__plus{display:none}
.olv-avis.est-ouvert .olv-avis__plus{display:block}

/* ---- Texte libre / colonnes ---- */
.olv-duo{display:grid;gap:1.7rem;align-items:start}
.olv-prose{text-align:left;max-width:68ch}
.olv-prose h3{margin-top:1.5em}
body.olv-centre .olv-duo .olv-prose{margin:0}
.olv-vignette{border-radius:var(--olv-r);overflow:hidden;border:1px solid var(--olv-filet)}

/* ---- Tableau de prix ---- */
.olv-tableau{width:100%;overflow-x:auto;border:1px solid var(--olv-filet);border-radius:var(--olv-r);background:#fff}
.olv-tableau table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:540px}
.olv-tableau th,.olv-tableau td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--olv-filet);vertical-align:top}
.olv-tableau thead th{background:var(--olv-nuit);color:#fff;font-weight:800;font-size:.86rem;letter-spacing:.03em;border-bottom:0}
.olv-tableau tbody tr:last-child td{border-bottom:0}
.olv-tableau td:nth-child(2){font-weight:800;white-space:nowrap;color:var(--olv-corail-sombre)}
.olv-tableau td:nth-child(3){color:var(--olv-gris);font-size:.9rem}

/* ---- Simulateur ---- */
.olv-simu{background:#fff;border:1px solid var(--olv-filet);border-radius:var(--olv-r);padding:18px;text-align:left}
.olv-simu__champs{display:grid;gap:13px}
.olv-simu label{display:block;font-size:.85rem;font-weight:800;margin-bottom:5px;color:var(--olv-encre)}
.olv-simu select,.olv-simu input{width:100%;min-height:48px;font:500 16px/1.4 'Jakarta',system-ui,sans-serif;padding:11px 12px;border:1px solid var(--olv-filet);border-radius:var(--olv-r);background:#fff;color:var(--olv-encre)}
.olv-resultat{margin-top:16px;background:var(--olv-nuit);color:#fff;border-radius:var(--olv-r);padding:18px}
.olv-resultat b{display:block;font-size:1.72rem;font-weight:800;color:#fff;line-height:1.1}
.olv-resultat span{display:block;font-size:.9rem;color:#b7c6d2;margin-top:4px}
.olv-resultat .olv-bt{margin-top:14px}

/* ---- Réalisations ---- */
.olv-real{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.olv-real > li{border:1px solid var(--olv-filet);border-radius:var(--olv-r);overflow:hidden;background:#fff;text-align:left}
.olv-real__corps{padding:14px 16px 17px}
.olv-real__corps h3{margin-bottom:.3em;font-size:1.06rem}
.olv-real__lieu{display:block;font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--olv-corail-texte);margin-bottom:.5rem}
.olv-real__corps p{font-size:.93rem;color:var(--olv-gris);margin:0}
/* Étude de cas pleine largeur (pages villes et prestations) */
.olv-cas{display:grid;gap:0;border:1px solid var(--olv-filet);border-radius:var(--olv-r);overflow:hidden;background:#fff;text-align:left}
.olv-cas__corps{padding:20px 20px 22px}
.olv-cas__meta{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1rem;padding:0}
.olv-cas__meta li{background:var(--olv-pale);color:var(--olv-encre);font-size:.81rem;font-weight:700;padding:5px 11px;border-radius:999px;margin:0}
.olv-cas__corps p{font-size:.96rem}
.olv-cas__corps p:last-child{margin-bottom:0}

/* ---- Équipe ---- */
.olv-equipe{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.olv-equipe > li{text-align:center;background:#fff;border:1px solid var(--olv-filet);border-radius:var(--olv-r);padding:20px 16px}
.olv-equipe img{width:118px;height:118px;border-radius:50%;object-fit:cover;margin:0 auto .9rem}
.olv-equipe b{display:block;font-size:1.03rem;font-weight:800}
.olv-equipe__poste{display:block;font-size:.84rem;font-weight:800;color:var(--olv-corail-texte);margin-bottom:.6rem}
.olv-equipe p{font-size:.92rem;color:var(--olv-gris);margin:0}

/* ---- Zone d'intervention ---- */
.olv-zone{display:grid;gap:1.5rem;align-items:start}
.olv-zone__texte{text-align:left}
.olv-pastilles{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:1.1rem 0;padding:0}
.olv-pastilles li{margin:0}
.olv-pastilles a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;background:#fff;border:1px solid var(--olv-filet);border-radius:999px;color:var(--olv-encre);text-decoration:none;font-weight:700;font-size:.9rem}
.olv-pastilles a:hover{border-color:var(--olv-corail-texte);color:var(--olv-corail-texte)}
.olv-carte-maps{border-radius:var(--olv-r);overflow:hidden;border:1px solid var(--olv-filet);line-height:0}
.olv-carte-maps iframe{width:100%;height:330px;border:0;display:block}

/* ---- FAQ ---- */
.olv-faq{display:grid;gap:12px;text-align:left}
.olv-faq details{background:#fff;border:1px solid var(--olv-filet);border-radius:var(--olv-r);padding:14px 16px}
.olv-faq summary{font-weight:800;cursor:pointer;font-size:1rem;min-height:30px;list-style:none}
.olv-faq summary::-webkit-details-marker{display:none}
.olv-faq summary::after{content:'+';float:right;color:var(--olv-corail-texte);font-weight:800;margin-left:10px}
.olv-faq details[open] summary::after{content:'-'}
.olv-faq p{margin:.9em 0 0;font-size:.96rem;color:var(--olv-gris)}

/* ---- Bande CTA ---- */
.olv-relance{background:var(--olv-nuit);color:#cfdae3;padding:2.4rem 0;text-align:center}
.olv-relance h2{color:#fff}
.olv-relance p{max-width:58ch;margin:0 auto 1.4rem;color:#b7c6d2}

/* ---- Bloc devis / contact ---- */
.olv-devis{display:grid;gap:1.6rem;align-items:start}
.olv-coord{list-style:none;margin:0 0 1.2rem;padding:0;text-align:left}
.olv-coord li{display:flex;gap:.8rem;margin-bottom:1rem;align-items:flex-start}
.olv-coord svg{flex:0 0 auto;color:var(--olv-corail-texte);margin-top:3px}
.olv-coord b{display:block;font-size:.82rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--olv-gris)}
.olv-coord a{color:var(--olv-encre);text-decoration:none;font-weight:700;word-break:break-word;display:inline-flex;align-items:center;min-height:44px}
.olv-bloc-form{background:#fff;border:1px solid var(--olv-filet);border-radius:var(--olv-r);padding:19px 18px 21px;text-align:left}

/* ---- Formulaire ---- */
.olv-form{display:grid;gap:13px}
.olv-form label{display:block;font-size:.85rem;font-weight:800;margin-bottom:5px}
.olv-form input,.olv-form select,.olv-form textarea{width:100%;min-height:48px;font:500 16px/1.45 'Jakarta',system-ui,sans-serif;padding:12px 13px;border:1px solid var(--olv-filet);border-radius:var(--olv-r);background:#fff;color:var(--olv-encre)}
.olv-form textarea{min-height:96px;resize:vertical}
.olv-form input:focus,.olv-form select:focus,.olv-form textarea:focus{outline:2px solid var(--olv-corail);outline-offset:1px;border-color:var(--olv-corail)}
.olv-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.olv-rgpd{font-size:.82rem;color:var(--olv-gris);margin:0}

/* ---- Pied de page ---- */
.olv-pied{background:var(--olv-nuit);color:#9fb0bf;padding:2.4rem 0 1.4rem;font-size:.93rem}
.olv-pied__cols{display:grid;gap:1.7rem;text-align:left}
.olv-pied h3{color:#fff;font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.9em}
.olv-pied ul{list-style:none;margin:0;padding:0}
.olv-pied li{margin-bottom:0}
.olv-pied li a{display:inline-flex;align-items:center;min-height:44px}
.olv-pied a{color:#c4d0da;text-decoration:none}
.olv-pied a:hover{color:#fff;text-decoration:underline}
.olv-pied__nap{margin:0}
.olv-pied__nap a{display:inline-flex;align-items:center;min-height:44px}
.olv-pied__nap b{display:block;color:#fff;font-size:1.02rem;margin-bottom:.4rem}
.olv-pied__bas{margin-top:1.9rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:.7rem;font-size:.86rem}
.olv-pied__bas nav{display:flex;flex-wrap:wrap;gap:0 1rem}
.olv-pied__bas nav a{display:inline-flex;align-items:center;min-height:44px}

/* ---- Callbar de conversion mobile (2 actions, révélée après le hero) ---- */
.olv-rail{position:fixed;left:0;right:0;bottom:0;z-index:95;display:flex;gap:9px;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--olv-filet);box-shadow:0 -6px 20px rgba(19,40,60,.13);transform:translateY(110%);transition:transform .22s ease}
.olv-rail[data-vu="1"]{transform:translateY(0)}
.olv-rail[data-muet="1"]{transform:translateY(110%)}
.olv-rail a{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;border-radius:var(--olv-r);text-decoration:none;font:800 .97rem/1.1 'Jakarta',system-ui,sans-serif}
.olv-rail__pri{background:var(--olv-corail);color:#fff;flex-grow:1.4!important}
.olv-rail__sec{background:#fff;color:var(--olv-encre);box-shadow:inset 0 0 0 1.5px var(--olv-filet)}

/* ---- Popup de sortie ---- */
.olv-voile{position:fixed;inset:0;z-index:140;background:rgba(19,40,60,.62);display:none;align-items:center;justify-content:center;padding:18px}
.olv-voile[data-ouvert="1"]{display:flex}
.olv-pop{background:#fff;border-radius:var(--olv-r);max-width:430px;width:100%;overflow:hidden;box-shadow:0 24px 60px rgba(10,24,38,.4);position:relative}
.olv-pop__tete{background:var(--olv-corail);color:#fff;padding:16px 18px 28px;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 13px),0 100%)}
.olv-pop__tete b{display:block;font-size:1.1rem;font-weight:800;color:#fff}
.olv-pop__tete span{display:block;font-size:.85rem;color:#fff;margin-top:3px}
.olv-pop__corps{padding:6px 18px 18px}
.olv-pop__fermer{position:absolute;top:8px;right:8px;min-width:44px;min-height:44px;display:grid;place-items:center;border:0;background:rgba(255,255,255,.22);border-radius:50%;color:#fff;cursor:pointer;z-index:2}
.olv-pop__non{display:block;width:100%;background:none;border:0;color:var(--olv-gris);font:600 .88rem/1.4 'Jakarta',system-ui,sans-serif;margin-top:10px;cursor:pointer;min-height:44px}

/* ---- Blog ---- */
.olv-art{max-width:820px;margin:0 auto;text-align:left}
.olv-art p a,.olv-chapo a,.olv-note a,.olv-prose p a,.olv-intro a{padding:12px 0}
.olv-art__meta{font-size:.88rem;color:var(--olv-gris);margin-bottom:1.3rem}
.olv-art h2{margin-top:1.9em}
.olv-art h3{margin-top:1.5em}
.olv-art__vue{border-radius:var(--olv-r);overflow:hidden;margin-bottom:1.6rem;border:1px solid var(--olv-filet)}
.olv-sommaire{background:var(--olv-pale);border-radius:var(--olv-r);padding:16px 18px;margin-bottom:1.8rem}
.olv-sommaire h2{margin:0 0 .6em;font-size:.82rem;letter-spacing:.13em;text-transform:uppercase;color:var(--olv-gris)}
.olv-sommaire ol{margin:0;padding-left:1.2em;font-size:.95rem}
.olv-sommaire li a{display:inline-flex;align-items:center;min-height:44px}
.olv-encart{background:var(--olv-sable);border-left:3px solid var(--olv-corail);border-radius:var(--olv-r);padding:16px 18px;margin:1.8rem 0}
.olv-encart p:last-child{margin-bottom:0}
.olv-cta-ligne{background:var(--olv-nuit);color:#cfdae3;border-radius:var(--olv-r);padding:20px;margin:2rem 0;text-align:center}
.olv-cta-ligne b{display:block;color:#fff;font-size:1.1rem;margin-bottom:.5rem}
.olv-cta-ligne p{color:#b7c6d2;font-size:.95rem;margin:0 0 1.1rem}
.olv-auteur{display:flex;gap:16px;align-items:flex-start;background:var(--olv-pale);border-radius:var(--olv-r);padding:18px;margin:2.2rem 0 0}
.olv-auteur img{width:72px;height:72px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.olv-auteur b{display:block;font-size1rem;font-weight:800}
.olv-auteur span{display:block;font-size:.84rem;font-weight:800;color:var(--olv-corail-texte);margin-bottom:.5rem}
.olv-auteur p{font-size:.92rem;color:var(--olv-gris);margin:0}
.olv-fiches{display:grid;gap:18px;margin:0 0 2rem}
.olv-fiche{border:1px solid var(--olv-filet);border-radius:var(--olv-r);background:#fff;padding:18px;text-align:left}
.olv-fiche dl{display:grid;gap:.55rem;margin:0 0 1rem;font-size:.93rem}
.olv-fiche dt{font-size:.74rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--olv-gris)}
.olv-fiche dd{margin:0}
.olv-fiche__sort{background:var(--olv-sable);border-left:3px solid var(--olv-corail);border-radius:var(--olv-r);padding:12px 14px;font-size:.93rem;margin:0}
.olv-badge{display:inline-block;background:var(--olv-pale);color:var(--olv-encre);font-size:.82rem;font-weight:800;padding:5px 11px;border-radius:999px}
.olv-cartes-blog{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.olv-cartes-blog > li{border:1px solid var(--olv-filet);border-radius:var(--olv-r);overflow:hidden;background:#fff;text-align:left}
.olv-cartes-blog__corps{padding:15px 16px 18px}
.olv-cartes-blog h2,.olv-cartes-blog h3{font-size:1.1rem;margin-bottom:.4em}
.olv-cartes-blog h2 a,.olv-cartes-blog h3 a{color:var(--olv-encre);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.olv-cartes-blog h2 a:hover,.olv-cartes-blog h3 a:hover{color:var(--olv-corail-texte)}
.olv-cartes-blog p{font-size:.94rem;color:var(--olv-gris);margin:0}

/* ---- Fil d'Ariane (prestations et blog seulement) ---- */
.olv-fil{font-size:.85rem;color:var(--olv-gris);padding:.9rem 0 0}
.olv-fil ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem .55rem;margin:0;padding:0}
.olv-fil li{margin:0;display:inline-flex;align-items:center;min-height:44px}
.olv-fil a{color:var(--olv-gris);display:inline-flex;align-items:center;min-height:44px}

/* ---- Plan de site, mentions ---- */
.olv-plan{display:grid;gap:1.6rem;text-align:left}
.olv-plan ul{list-style:none;margin:0;padding:0}
.olv-plan li{margin-bottom:0}
.olv-plan li a{display:inline-flex;align-items:center;min-height:44px}

/* ===================== DESKTOP (enrichissement) ===================== */
@media (min-width:600px){
  .olv-presta,.olv-real,.olv-avis,.olv-cartes-blog{grid-template-columns:repeat(2,1fr)}
  .olv-equipe{grid-template-columns:repeat(2,1fr)}
  .olv-gages{grid-template-columns:repeat(2,1fr)}
  .olv-pied__bas{flex-direction:row;align-items:center;justify-content:space-between}
  .olv-carre dl{grid-template-columns:repeat(2,1fr)}
  .olv-hville__gages{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 1.6rem}
  .olv-etapes,.olv-aides{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:940px){
  body{font-size:17px}
  .olv-sect{padding:3.9rem 0}
  .olv-cadre{padding:0 24px}
  [id]{scroll-margin-top:92px}
  .olv-util__rang{padding-left:24px}
  .olv-util__dit{display:flex}
  .olv-util__mail{display:flex}
  .olv-nav{display:flex}
  .olv-ecrire{display:flex}
  .olv-burger{display:none}
  .olv-marque b{font-size:1rem}
  .olv-heros__grille{display:grid;grid-template-columns:1.14fr .86fr;gap:2.8rem;align-items:center;padding:4.2rem 24px 4.6rem}
  .olv-carte{order:0}
  .olv-heros__act{display:none}
  .olv-gages{grid-template-columns:repeat(4,1fr);gap:1.5rem}
  .olv-presta,.olv-real{grid-template-columns:repeat(3,1fr)}
  .olv-avis{grid-template-columns:repeat(3,1fr)}
  .olv-equipe{grid-template-columns:repeat(4,1fr)}
  .olv-pq{grid-template-columns:1.1fr .9fr;gap:2.6rem;align-items:center}
  .olv-carre{padding:28px 26px}
  .olv-duo{grid-template-columns:1.25fr .75fr;gap:2.6rem}
  .olv-zone{grid-template-columns:1fr 1fr;gap:2.4rem}
  .olv-carte-maps iframe{height:420px}
  .olv-devis{grid-template-columns:.8fr 1.2fr;gap:2.6rem}
  .olv-cas{grid-template-columns:.9fr 1.1fr}
  .olv-cas img{height:100%;object-fit:cover}
  .olv-pied__cols{grid-template-columns:1.2fr 1fr 1fr;gap:2.4rem}
  .olv-fiches{gap:22px}
  .olv-simu__champs{grid-template-columns:repeat(2,1fr)}
  .olv-hpresta__grille{grid-template-columns:1.05fr .95fr;gap:2.8rem}
  .olv-hpresta{padding:3.4rem 0 3.8rem}
  .olv-hville{padding:3.2rem 0 3.6rem}
  .olv-etapes{grid-template-columns:repeat(3,1fr)}
  .olv-rail{display:none}
}
@media (min-width:1120px){
  .olv-presta{grid-template-columns:repeat(3,1fr)}
  .olv-ecrire b{display:block}
  .olv-tete__rang{gap:16px}
  .olv-nav{gap:1.3rem;font-size:.9rem}
}
@media (prefers-reduced-motion:reduce){
  .olv-rail{transition:none}
}
