/* ━━━━━━━━━━━━━━━━━━━━━━━━
   BASE
━━━━━━━━━━━━━━━━━━━━━━━━ */
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;color:#1A2336;background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;height:auto;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}

/* Lien d'évitement — invisible tant qu'il n'a pas le focus clavier,
   permet de sauter directement au contenu sans repasser par tout le menu. */
.skip-link{position:absolute;top:-100px;left:1rem;z-index:1100;background:var(--dark);color:#fff;padding:.9rem 1.4rem;border-radius:8px;font-size:14px;font-weight:600;transition:top .2s;}
.skip-link:focus{top:1rem;}
:root{
  --teal:#00BF96;--teal-d:#009E72;--teal-l:#E6FBF4;
  --blue:#1A52C9;--blue-d:#1340A0;--blue-l:#EBF1FD;
  --dark:#06091A;--text:#1A2336;--text2:#5C6880;--text3:#6B7385;
  --bdr:#E3E8EF;--surface:#F5F7FA;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━
   TOPBAR
━━━━━━━━━━━━━━━━━━━━━━━━ */
.topbar{background:#fff;border-bottom:3px solid var(--blue);position:fixed;top:0;left:0;right:0;z-index:999;transition:box-shadow .3s;}
.topbar.scrolled{box-shadow:0 2px 20px rgba(0,0,0,.1);}
.topbar-inner{max-width:1360px;margin:0 auto;padding:0 2.5rem;height:116px;display:flex;align-items:center;justify-content:space-between;gap:2rem;}

/* LOGO */
.logo-brand{display:inline-flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;flex-shrink:0;}
.logo-brand .logo-img{height:60px;width:auto;display:block;}
.logo-tagline{display:block;font-size:10px;font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--text3);padding-left:2px;}
/* Nombre + suffixe ordinal ("10ème"), collés — réutilisé partout où un
   nombre est suivi de "ème" (logo, adresses, kickers…). .ord-wrap annule le
   letter-spacing d'un parent (bandeau logo, kicker…) sur tout le bloc
   "10ème" : sans ça, l'espacement des lettres du parent s'appliquait aussi
   juste après le "0", collant un vide entre le nombre et "ème". .ord met en
   plus "ème" en bas de casse et légèrement relevé (et neutralise le
   text-transform:uppercase d'un parent, pour éviter "10ÈME" tout capitales). */
.ord-wrap{letter-spacing:normal;}
.ord{text-transform:lowercase;font-size:.72em;letter-spacing:normal;vertical-align:.22em;}
.logo-brand-ft .logo-tagline{color:rgba(255,255,255,.48);}
/* Puce claire derrière le logo en pied de page (fond sombre, logo non transparent) */
.logo-chip{display:inline-flex;align-items:center;background:#fff;border-radius:10px;padding:8px 14px;}
.logo-chip .logo-img{height:44px;width:auto;display:block;}

/* TOPBAR INFOS */
.topbar-infos{display:flex;align-items:center;gap:2.2rem;}
.tinfo{display:flex;align-items:center;gap:.8rem;}
.tinfo-ico{width:38px;height:38px;border-radius:10px;background:var(--blue-l);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tinfo-lbl{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text3);display:block;}
.tinfo-val{font-size:15px;font-weight:600;color:var(--text);display:block;margin-top:2px;white-space:nowrap;}
.tinfo-val a{color:var(--blue-d);}
.tinfo-val a:hover{text-decoration:underline;}

/* GROUPE D'ACTIONS MOBILE : menu · téléphone */
.mob-actions{display:none;}

/* TÉLÉPHONE MOBILE — icône seule, à droite du menu */
.mob-tel{display:none;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:8px;background:var(--blue-l);color:var(--blue-d);transition:background .2s;}
.mob-tel:hover{background:#CFE0FA;}
.mob-tel svg{width:16px;height:16px;}

/* HAMBURGER — icône + libellé "Menu" */
.mob-btn{display:none;align-items:center;gap:7px;border:none;background:none;cursor:pointer;padding:8px 14px;border-radius:8px;transition:background .2s;font-family:'Inter',sans-serif;font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;flex-shrink:0;}
.mob-btn:hover{background:var(--surface);}
.mob-btn-bars{display:flex;flex-direction:column;gap:5px;width:20px;flex-shrink:0;}
.mob-btn-bars span{display:block;width:20px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s,opacity .3s;transform-origin:center;}
.mob-btn.open .mob-btn-bars span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.mob-btn.open .mob-btn-bars span:nth-child(2){opacity:0;}
.mob-btn.open .mob-btn-bars span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ━━━━━━━━━━━━━━━━━━━━━━━━
   NAVBAR
━━━━━━━━━━━━━━━━━━━━━━━━ */
.navbar{background:var(--dark);position:fixed;top:116px;left:0;right:0;z-index:998;height:64px;border-bottom:1px solid rgba(255,255,255,.07);}
.navbar-inner{max-width:1360px;margin:0 auto;padding:0 2.5rem;height:64px;display:flex;align-items:center;justify-content:flex-start;gap:2.5rem;}
.nav-links{display:flex;align-items:center;gap:2.4rem;}
.nav-links a{display:flex;align-items:center;gap:5px;height:64px;padding:0;font-size:15.5px;font-weight:600;letter-spacing:.1px;text-transform:none;color:rgba(255,255,255,.92);border:none;position:relative;transition:color .15s;white-space:nowrap;}
.nav-links a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--teal),var(--blue));transform:scaleX(0);transition:transform .2s;}
.nav-links a:hover,.nav-links a.active{background:none;color:#fff;}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);}
.nav-devis{padding:13px 26px;background:linear-gradient(120deg,var(--teal),var(--blue));color:#fff;border:none;border-radius:9px;font-size:14.5px;font-family:'Inter',sans-serif;font-weight:700;cursor:pointer;transition:filter .2s,transform .2s;white-space:nowrap;display:inline-block;box-shadow:0 4px 14px rgba(26,82,201,.3);}
.nav-devis:hover{filter:brightness(.93);transform:translateY(-1px);}

/* MOBILE NAV */
.mob-nav{display:none;position:fixed;top:72px;left:0;right:0;bottom:0;background:var(--dark);z-index:997;overflow-y:auto;flex-direction:column;padding:2rem 2.5rem;gap:.5rem;}
.mob-nav.open{display:flex;}
.mob-nav a{display:block;padding:1.1rem 1.3rem;font-size:1.15rem;font-weight:500;color:rgba(255,255,255,.75);border-radius:12px;border:1px solid rgba(255,255,255,.06);transition:background .15s,color .15s;}
.mob-nav a:hover{background:rgba(255,255,255,.07);color:#fff;}
.mob-nav .mob-devis{margin-top:1rem;padding:1.1rem;text-align:center;background:linear-gradient(120deg,var(--teal),var(--blue));color:#fff;border-radius:12px;font-size:1rem;font-weight:700;border:none;}
.mob-nav .mob-devis:hover{filter:brightness(.92);}
.mob-nav-info{margin-top:auto;padding-top:2rem;border-top:1px solid rgba(255,255,255,.08);}
.mob-nav-info p{font-size:13px;color:rgba(255,255,255,.58);margin-bottom:.3rem;}
.mob-nav-info p:not(:first-child){margin-top:1.1rem;}
.mob-nav-info a{display:inline;padding:0;border:none;font-size:14px;color:rgba(255,255,255,.88);font-weight:600;}
.mob-nav-info span{display:block;font-size:14px;color:rgba(255,255,255,.88);font-weight:600;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━
   UTILS & LAYOUT
━━━━━━━━━━━━━━━━━━━━━━━━ */
.ctn{max-width:1280px;margin:0 auto;}
/* Atterrissage correct des ancres (#contact, #services...) sous le bandeau fixe,
   y compris pour un saut natif du navigateur (lien depuis une autre page,
   favori, lecteur d'écran) que le JS de défilement fluide ne gère pas. */
#top,#services,#about,#avis,#contact,#neuf,#reconditionne{scroll-margin-top:184px;}
@media(max-width:900px){#top,#services,#about,#avis,#contact,#neuf,#reconditionne{scroll-margin-top:75px;}}
.kicker{font-size:16px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--text3);display:block;margin-bottom:.85rem;}
.kicker-g{color:var(--blue-d);}
.kicker-d{color:rgba(255,255,255,.55);}
.ttl{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2rem,3vw,2.8rem);font-weight:700;letter-spacing:-1px;line-height:1.16;color:var(--text);}
.ttl-w{color:#fff;}
.sub{font-size:15.5px;color:var(--text2);margin-top:.75rem;max-width:520px;line-height:1.8;}
.sub-w{color:rgba(255,255,255,.80);}
.sh{margin-bottom:2.5rem;}
.sh-row{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;}
.section{padding:4rem 2.5rem;position:relative;overflow:hidden;}
.section::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(0,191,150,.05),transparent 70%);top:-250px;right:-200px;pointer-events:none;z-index:0;}
.section::after{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(26,82,201,.05),transparent 70%);bottom:-220px;left:-180px;pointer-events:none;z-index:0;}
.section>.ctn{position:relative;z-index:1;}
.section-dark{background:var(--dark);padding:4rem 2.5rem;}
.section-surface{background:var(--surface);padding:4rem 2.5rem;border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr);}

/* BUTTONS */
.btn-teal{padding:16px 34px;background:linear-gradient(120deg,var(--teal),var(--blue));color:#fff;border:none;border-radius:10px;font-size:15.5px;font-family:'Inter',sans-serif;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;min-height:56px;box-shadow:0 4px 14px rgba(26,82,201,.16);transition:filter .2s,transform .2s;}
.btn-teal:hover{filter:brightness(.93);transform:translateY(-2px);}
.btn-ghost{padding:15px 26px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.18);border-radius:10px;font-size:14.5px;font-family:'Inter',sans-serif;font-weight:400;cursor:pointer;display:inline-block;transition:background .2s;}
.btn-ghost:hover{background:rgba(255,255,255,.14);}
.btn-main{padding:13px 28px;background:linear-gradient(120deg,var(--teal),var(--blue));color:#fff;border:none;border-radius:9px;font-size:14px;font-family:'Inter',sans-serif;font-weight:600;cursor:pointer;display:inline-block;transition:filter .2s,transform .2s;}
.btn-main:hover{filter:brightness(.93);transform:translateY(-1px);}
.btn-sec{padding:13px 22px;background:transparent;color:var(--text);border:1.5px solid var(--bdr);border-radius:9px;font-size:14px;font-family:'Inter',sans-serif;font-weight:400;cursor:pointer;display:inline-block;transition:background .2s,border-color .2s;}
.btn-sec:hover{background:var(--surface);border-color:var(--blue);}
.btn-wht{padding:16px 34px;background:#fff;color:var(--blue);border:none;border-radius:10px;font-size:15px;font-family:'Inter',sans-serif;font-weight:700;cursor:pointer;display:inline-block;transition:background .2s,transform .2s;white-space:nowrap;}
.btn-wht:hover{background:var(--blue-l);transform:translateY(-1px);}
.btn-outline-w{padding:13px 22px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.14);border-radius:9px;font-size:13.5px;font-family:'Inter',sans-serif;font-weight:500;cursor:pointer;display:inline-block;transition:background .2s;}
.btn-outline-w:hover{background:rgba(255,255,255,.15);}

/* ━━━━━━━━━━━━━━━━━━━━━━━━
   HERO
━━━━━━━━━━━━━━━━━━━━━━━━ */
.hero{padding-top:180px;}
.hero-bg{background:#fff;position:relative;overflow:hidden;}
/* Comme sur mobile, le hero occupe la hauteur de l'écran sous le bandeau
   fixe (180px = topbar + navbar) — borné entre 560px (petites fenêtres) et
   760px (grands écrans, pour ne pas étirer démesurément la photo). */
.hero-grid{display:grid;grid-template-columns:minmax(0,720px) 1fr;grid-template-rows:minmax(0,1fr);align-items:stretch;min-height:calc(100vh - 184px);gap:2.5rem;max-width:1360px;margin:0 auto;}
/* La grille du hero est centrée à 1360px comme le reste du site (topbar,
   navbar, bandeau de services). La colonne de texte est plafonnée (au lieu
   d'un 1fr qui s'étire) pour que la photo reste proche du texte au lieu
   de se retrouver isolée avec un grand vide entre les deux. */
.hero-text-col{padding:3rem 2rem 3rem 2.5rem;display:flex;flex-direction:column;justify-content:flex-start;position:relative;z-index:2;}
.hero-photo-col{position:relative;overflow:hidden;background:#fff;}
.hero-photo-frame{position:absolute;top:1.75rem;right:1.75rem;bottom:1.75rem;left:1.75rem;border-radius:22px;overflow:hidden;background:var(--dark);}
.hero-photo-frame img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;}
.hero-pill{display:inline-flex;align-items:center;gap:7px;background:var(--surface);color:var(--text2);border:1px solid var(--bdr);padding:7px 16px;border-radius:30px;font-size:11.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:3.2rem;width:fit-content;}
.hero-pill-dot{width:6px;height:6px;border-radius:50%;background:linear-gradient(120deg,var(--teal),var(--blue));animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.25;}}
.hero h1{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2.1rem,2.75vw,2.55rem);font-weight:800;line-height:1.2;letter-spacing:-1px;color:var(--text);margin-bottom:3.2rem;white-space:normal;}
.hero h1 span{color:var(--blue);}
.hero-list{list-style:none;margin:0 0 2.2rem;padding:0;display:flex;flex-direction:column;gap:1.05rem;}
.hero-list li{position:relative;padding-left:1.7rem;font-size:15.5px;font-weight:700;color:var(--text);line-height:1.5;text-align:left;}
.hero-list li.hero-primary{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:800;color:var(--blue-d);line-height:1.3;}
.hero-list li::before{content:'';position:absolute;left:0;top:50%;width:18px;height:18px;border-radius:50%;background:linear-gradient(120deg,var(--teal),var(--blue));transform:translateY(-50%);}
.hero-list li::after{content:'';position:absolute;left:6px;top:50%;width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-65%) rotate(-45deg);}
.hero-btns{display:flex;align-items:stretch;gap:1rem;justify-content:flex-start;flex-wrap:wrap;margin-top:auto;margin-bottom:1.8rem;}
.btn-outline-dark{padding:15px 26px;background:#fff;color:var(--text);border:1.5px solid var(--bdr);border-radius:10px;font-size:14.5px;font-family:'Inter',sans-serif;font-weight:600;cursor:pointer;display:inline-block;transition:border-color .2s,background .2s;}
.btn-outline-dark:hover{border-color:var(--blue);background:var(--blue-l);}
.arrival-box{display:inline-flex;align-items:center;gap:.6rem;width:max-content;min-height:56px;padding:16px 28px;background:linear-gradient(120deg,var(--teal),var(--blue));border:none;border-radius:10px;box-shadow:0 4px 14px rgba(26,82,201,.16);color:#fff;transition:filter .2s,transform .2s;}
.arrival-box:hover{filter:brightness(.93);transform:translateY(-2px);}
.arrival-box strong{font-family:'Inter',sans-serif;font-size:15.5px;font-weight:700;color:#fff;}
.maps-logo{width:26px;height:26px;flex-shrink:0;}
.arrival-arrow{font-size:16px;font-weight:800;line-height:1;color:#fff;transition:transform .2s;}
.arrival-box:hover .arrival-arrow{transform:translateX(3px);}
/* Vraie "boxe" badge au lieu d'un simple texte : fond, bordure, ombre légère —
   avec la note en accent bleu et 5 étoiles pour un vrai repère de confiance. */
.hero-rating{display:inline-flex;align-items:center;gap:.65rem;font-size:14.5px;font-weight:700;color:var(--text);background:#fff;border:1px solid var(--bdr);border-radius:12px;padding:.75rem 1.15rem;box-shadow:0 4px 14px rgba(15,23,42,.05);width:fit-content;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s;}
.hero-rating:hover{border-color:var(--blue);box-shadow:0 6px 18px rgba(26,82,201,.12);transform:translateY(-1px);}
.hero-rating .google-g{flex-shrink:0;}
.hero-rating-stars{color:#F5B301;font-size:14px;letter-spacing:1.5px;}
.hero-rating strong{color:var(--blue-d);font-weight:800;}

/* SERVICE STRIP */
.svc-strip{background:#fff;padding:3.8rem 2.5rem;border-bottom:1px solid var(--bdr);}
.svc-strip-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:2.2rem;}
.svc-item{padding:0;text-align:left;}
.svc-ico{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;}
.ico-t{background:var(--teal-l);}
.ico-b{background:var(--blue-l);}
.svc-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:.4rem;}
.svc-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:.6rem;}
.svc-more{font-size:12.5px;color:var(--blue);font-weight:600;display:inline-flex;align-items:center;gap:4px;transition:gap .2s;}
.svc-more:hover{gap:8px;}

/* TICKER */
.ticker{background:var(--surface);border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr);padding:.85rem 0;overflow:hidden;}
.ticker-track{display:flex;gap:4rem;animation:tick 24s linear infinite;white-space:nowrap;}
@keyframes tick{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.tick-i{display:flex;align-items:center;gap:.6rem;font-size:12.5px;color:var(--text3);font-weight:500;white-space:nowrap;}
.tick-i svg{color:var(--blue);flex-shrink:0;}

/* STATS DARK */
.stats-g{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden;}
.sg{padding:2.2rem 1.2rem;text-align:center;border-right:1px solid rgba(255,255,255,.07);}
.sg:last-child{border-right:none;}
.sg-n{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(1.9rem,3.5vw,3rem);font-weight:800;background:linear-gradient(110deg,#00BF96,var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;line-height:1;white-space:nowrap;}
.sg-l{font-size:14px;color:rgba(255,255,255,.78);margin-top:6px;display:block;}
.sg-s{font-size:11.5px;color:rgba(255,255,255,.48);display:block;margin-top:2px;}

/* SERVICES */
.svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
.svcs .sc.featured{grid-column:span 2;}
.svcs .sc.featured .sc-img{height:210px;}
.svcs .sc.banner{grid-column:span 3;}
.svcs .sc.banner .sc-img{height:190px;}
@media(max-width:1100px){.svcs .sc.featured,.svcs .sc.banner{grid-column:span 3;}}
.sc{border-radius:18px;border:2px solid var(--blue);background:#fff;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s;}
.sc::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--blue));transform:scaleX(0);transform-origin:left;transition:transform .35s;z-index:2;}
.sc:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(26,82,201,.1);border-color:var(--blue-d);}
.sc:hover::after{transform:scaleX(1);}
.sc-img{height:220px;overflow:hidden;background:var(--surface);}
.sc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s;}
.sc:hover .sc-img img{transform:scale(1.07);}
.sc-body{padding:1.4rem 1.7rem 1.6rem;}
.sc-ico{width:50px;height:50px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;}
.sc h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.15rem;font-weight:700;color:var(--text);}
.sc p{font-size:14.5px;color:var(--text2);line-height:1.7;}
.sc-lnk{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--blue);font-weight:500;margin-top:.6rem;transition:gap .2s;}
.sc-lnk:hover{gap:9px;}

/* SERVICE KEYWORDS */
.section-service-list{background:var(--surface);}
.service-keywords{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem;}
.service-keywords span{background:#fff;border:1px solid var(--bdr);border-radius:8px;padding:.7rem 1rem;font-size:13.5px;color:var(--text2);font-weight:600;}

/* ABOUT */
.about-wrap{padding:4rem 2.5rem;}
.about-split{display:grid;grid-template-columns:1.15fr 1fr;max-width:1280px;margin:0 auto;gap:3.5rem;align-items:stretch;}
/* Photo pure, sans aucun texte superposé — évite tout conflit avec un texte
   déjà présent dans l'image elle-même (enseigne, panneaux...). */
/* Ratio de la vraie photo (3:2) conservé — jamais étiré ni sur-recadré pour
   remplir une hauteur imposée par la colonne de texte. */
.about-photo{position:relative;overflow:hidden;border-radius:16px;background:var(--surface);}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.about-caption{
  position:absolute;left:1.5rem;bottom:1.5rem;
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(6,9,26,.78);color:#fff;
  font-size:12.5px;font-weight:600;letter-spacing:.2px;
  padding:8px 14px;border-radius:8px;
}
.about-light{padding:3rem 3.5rem;display:flex;flex-direction:column;justify-content:center;gap:1.2rem;}
.about-light h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(1.8rem,2.6vw,2.5rem);font-weight:700;letter-spacing:-.8px;line-height:1.18;color:var(--text);margin-bottom:1.2rem;}
.about-light p{font-size:15.5px;color:var(--text2);line-height:1.8;margin-bottom:.9rem;text-align:justify;}
.ast{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin:1.4rem 0 1.8rem;}
.ast-item{padding:1.1rem;background:var(--surface);border-radius:12px;border:1px solid var(--bdr);}
.ast-n{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.9rem;font-weight:800;background:linear-gradient(110deg,var(--teal),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;line-height:1;}
.ast-l{font-size:12.5px;color:var(--text2);margin-top:3px;display:block;}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.8rem;}
.chip{font-size:12px;font-weight:500;padding:5px 13px;border-radius:6px;border:1px solid var(--bdr);color:var(--text2);background:#fff;}
.btns{display:flex;gap:.85rem;flex-wrap:wrap;}

/* PROCESS */
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:3.5rem;}
.proc{background:#fff;border:1px solid var(--bdr);border-radius:16px;padding:2rem 1.5rem;text-align:center;transition:border-color .25s,box-shadow .25s;}
.proc:hover{border-color:var(--blue);box-shadow:0 8px 28px rgba(26,82,201,.08);}
.proc-circle{width:52px;height:52px;border-radius:50%;border:1px solid var(--bdr);background:var(--surface);display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem;}
.proc-n{font-family:'Plus Jakarta Sans',sans-serif;font-size:2.5rem;font-weight:800;background:linear-gradient(110deg,var(--teal),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;line-height:1;margin-bottom:.55rem;}
.proc h4{font-family:'Plus Jakarta Sans',sans-serif;font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:.4rem;}
.proc p{font-size:13.5px;color:var(--text2);line-height:1.65;}

/* WHY */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;border-radius:18px;border:1px solid var(--bdr);background:#fff;overflow:hidden;}
.why-grid::before{content:'';position:absolute;top:51px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--bdr) 8%,var(--bdr) 92%,transparent);z-index:0;}
.why{padding:2.1rem 1.6rem;border-right:1px solid var(--bdr);display:flex;flex-direction:column;gap:.9rem;transition:background .25s;position:relative;}
.why:last-child{border-right:none;}
.why:hover{background:var(--surface);}
.why-n{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.05rem;font-weight:800;width:36px;height:36px;border-radius:50%;background:linear-gradient(110deg,var(--teal),var(--blue));color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1;box-shadow:0 0 0 6px #fff;}
.why h4{font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;font-weight:700;margin-top:.3rem;color:var(--text);}
.why p{font-size:13.5px;color:var(--text2);line-height:1.65;}

/* DUO (deux formules côte à côte, ex. pages services) */
.duo-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.duo-card{background:#fff;border:1.5px solid var(--bdr);border-radius:18px;padding:2.2rem;display:flex;flex-direction:column;gap:.9rem;transition:border-color .2s,box-shadow .2s;}
.duo-card:hover{border-color:var(--blue);box-shadow:0 12px 32px rgba(26,82,201,.08);}
.duo-card .kicker{margin-bottom:0;}
.duo-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.25rem;font-weight:700;color:var(--text);}
.duo-card p{font-size:14.5px;color:var(--text2);line-height:1.75;flex:1;}
.duo-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem;}
.duo-card li{font-size:13.5px;color:var(--text2);padding-left:1.4rem;position:relative;}
.duo-card li::before{content:'';position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:linear-gradient(120deg,var(--teal),var(--blue));}
@media(max-width:640px){.duo-grid{grid-template-columns:1fr;}}

/* REVIEWS */
.rev-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;flex-wrap:wrap;gap:1rem;}
.rev-head .ttl{margin:.35rem 0 .6rem;}
.rev-head .sub{margin:0;}
.review-actions{display:flex;flex-wrap:wrap;gap:.6rem;}
.rev-big{font-family:'Plus Jakarta Sans',sans-serif;font-size:5.5rem;font-weight:800;background:linear-gradient(110deg,var(--teal),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;}
.rev-stars{font-size:22px;color:var(--blue);letter-spacing:2px;}
.rev-meta{font-size:14px;color:var(--text3);margin-top:5px;}
.rev-badge{font-size:12px;background:#fff;border:1px solid var(--bdr);border-radius:8px;padding:9px 18px;color:var(--text2);font-weight:500;}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
.rev{background:#fff;border-radius:18px;padding:2rem;border:1px solid var(--bdr);display:flex;flex-direction:column;gap:.85rem;transition:box-shadow .25s;}
.rev:hover{box-shadow:0 8px 36px rgba(0,0,0,.07);}
.rev-s{color:var(--blue);font-size:15px;letter-spacing:1.5px;}
.rev p{font-size:14px;color:var(--text2);line-height:1.75;font-style:italic;flex:1;}
.rev-auth{display:flex;align-items:center;gap:.75rem;padding-top:.9rem;border-top:1px solid var(--bdr);}
.rev-av{width:38px;height:38px;border-radius:50%;background:linear-gradient(120deg,var(--teal),var(--blue));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;}
.rev-name{font-size:13px;font-weight:600;color:var(--text);}
.rev-date{font-size:11.5px;color:var(--text3);}

/* CONTACT FORM */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;}
.form-card{background:#fff;border-radius:20px;border:1.5px solid var(--bdr);padding:2.5rem;box-shadow:0 8px 32px rgba(0,0,0,.05);}
.form-card h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.7rem;font-weight:700;letter-spacing:-.7px;color:var(--text);margin-bottom:.4rem;}
.form-card .form-sub{font-size:14px;color:var(--text2);margin-bottom:2rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.fgroup{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;}
.fgroup label{font-size:12.5px;font-weight:600;color:var(--text2);letter-spacing:.3px;}
.fgroup input,.fgroup select,.fgroup textarea{width:100%;padding:12px 14px;border:1.5px solid var(--bdr);border-radius:9px;font-size:14px;font-family:'Inter',sans-serif;color:var(--text);background:#fff;outline:none;transition:border-color .2s,box-shadow .2s;}
.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,82,201,.1);}
.fgroup textarea{resize:vertical;min-height:110px;line-height:1.6;}
.form-error{border-color:#EF4444 !important;}
.form-submit{width:100%;padding:15px;background:linear-gradient(120deg,var(--teal),var(--blue));color:#fff;border:none;border-radius:10px;font-size:15px;font-family:'Inter',sans-serif;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:filter .2s,transform .2s;box-shadow:0 4px 14px rgba(26,82,201,.14);}
.form-submit:hover{filter:brightness(.93);transform:translateY(-1px);}
.form-note{font-size:12px;color:var(--text3);text-align:center;margin-top:.75rem;}
.form-success-msg{background:#D1FAE5;border:1px solid #6EE7B7;color:#065F46;padding:1.2rem 1.5rem;border-radius:10px;font-size:14px;font-weight:500;margin-bottom:1.5rem;display:none;}
.form-success-msg.show{display:block;}
.contact-info{display:flex;flex-direction:column;gap:1.5rem;}
.ci-item{display:flex;align-items:flex-start;gap:1rem;padding:1.3rem;background:#fff;border:1.5px solid var(--bdr);border-radius:14px;transition:border-color .2s,box-shadow .2s;}
.ci-item:hover{border-color:var(--blue);box-shadow:0 4px 16px rgba(26,82,201,.08);}
.ci-ico{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ci-ico-t{background:var(--teal-l);}
.ci-ico-b{background:var(--blue-l);}
.ci-lbl{font-size:11.5px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:1px;display:block;margin-bottom:3px;}
.ci-val{font-size:15.5px;font-weight:700;color:var(--text);display:block;line-height:1.3;}
.ci-sub{font-size:12.5px;color:var(--text2);display:block;margin-top:2px;}
.ci-val a{color:var(--text);}
.ci-val a:hover{color:var(--blue-d);}
.map-embed{border:1.5px solid var(--bdr);border-radius:14px;overflow:hidden;height:220px;}
.map-embed iframe{width:100%;height:100%;border:0;display:block;}

/* Piège à robots (honeypot) — masqué visuellement mais accessible dans le
   DOM ; un humain ne le voit ni ne le remplit jamais. */
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* CTA */
.cta-wrap{padding:3.5rem 2.5rem;}
.cta-box{max-width:1280px;margin:0 auto;background:var(--dark);border-radius:24px;padding:4.5rem;position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:4rem;align-items:center;}
.cta-box::before{content:'';position:absolute;width:700px;height:400px;border-radius:50%;background:radial-gradient(ellipse,rgba(26,82,201,.1),transparent 65%);top:-200px;left:-100px;}
.cta-box::after{content:'';position:absolute;width:500px;height:400px;border-radius:50%;background:radial-gradient(ellipse,rgba(26,82,201,.12),transparent 65%);bottom:-150px;right:-50px;}
.cta-text{position:relative;z-index:2;}
.cta-box h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2rem,3.5vw,3.2rem);font-weight:800;letter-spacing:-1.5px;line-height:1.1;color:#fff;margin-bottom:.9rem;}
.cta-box .cta-text p{font-size:16px;color:rgba(255,255,255,.78);max-width:480px;line-height:1.7;}
.cta-r{position:relative;z-index:2;display:flex;flex-direction:column;gap:1.2rem;align-items:flex-end;}
.cta-info{text-align:right;}
.cta-phone{font-size:18px;font-weight:600;color:rgba(255,255,255,.92);}
.cta-hrs{font-size:12.5px;color:rgba(255,255,255,.62);margin-top:3px;}

/* FOOTER */
footer{background:var(--dark);border-top:1px solid rgba(255,255,255,.06);}
.ft{max-width:1360px;margin:0 auto;padding:4.5rem 2.5rem 2.5rem;}
.ft-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3.5rem;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:2rem;}
.ft-brand p{font-size:13.5px;color:rgba(255,255,255,.60);line-height:1.8;margin-top:.8rem;max-width:240px;}
.ft-col h5{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--teal);margin-bottom:1.1rem;}
.ft-col a,.ft-col span{display:block;font-size:13.5px;color:rgba(255,255,255,.65);margin-bottom:.6rem;transition:color .2s;}
.ft-col a:hover{color:#fff;}
.ft-btm{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;}
.ft-copy{font-size:12px;color:rgba(255,255,255,.45);}
.ft-legal{display:flex;gap:2rem;}
.ft-legal a{font-size:12px;color:rgba(255,255,255,.45);}
.ft-legal a:hover{color:rgba(255,255,255,.8);}

/* SCROLL-TO-TOP */
.scroll-top{position:fixed;bottom:2rem;right:2rem;z-index:900;width:46px;height:46px;border-radius:50%;background:linear-gradient(120deg,var(--teal),var(--blue));color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(26,82,201,.2);opacity:0;transform:translateY(12px);transition:opacity .3s,transform .3s,filter .2s;pointer-events:none;}
.scroll-top.visible{opacity:1;transform:translateY(0);pointer-events:all;}
.scroll-top:hover{filter:brightness(.93);}

/* ━━━━━━━━━━━━━━━━━━━━━━━━
   PAGES DE CONTENU (mentions légales, CGV...)
━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-content{font-size:15px;color:var(--text2);line-height:1.85;}
.page-content h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.35rem;font-weight:700;color:var(--text);margin:2.2rem 0 .8rem;}
.page-content h2:first-child{margin-top:0;}
.page-content h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.05rem;font-weight:700;color:var(--text);margin:1.6rem 0 .6rem;}
.page-content p{margin-bottom:1rem;}
.page-content ul,.page-content ol{margin:0 0 1rem 1.3rem;}
.page-content li{margin-bottom:.4rem;}
.page-content a{color:var(--blue-d);text-decoration:underline;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━
   WOOCOMMERCE — BOUTIQUE
━━━━━━━━━━━━━━━━━━━━━━━━ */
.woo-page-hero{background:var(--dark);padding:11.25rem 2.5rem 4rem;position:relative;overflow:hidden;}
.woo-page-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(26,82,201,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(26,82,201,.05) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;}
.woo-page-hero-i{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;position:relative;z-index:2;}
.woo-page-hero h1{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:800;color:#fff;letter-spacing:-1.5px;line-height:1.1;margin-top:.5rem;}
/* Retour facile vers la liste des services depuis une page de service —
   widget flottant façon bouton, toujours visible pendant le défilement
   (même fond dégradé que les autres boutons du site). */
.back-link{position:fixed;bottom:2rem;left:2rem;z-index:900;display:inline-flex;align-items:center;gap:.5rem;padding:13px 22px;border-radius:30px;background:linear-gradient(120deg,var(--teal),var(--blue));color:#fff;font-size:13.5px;font-weight:600;box-shadow:0 4px 16px rgba(26,82,201,.28);transition:filter .2s,transform .2s;}
.back-link:hover{filter:brightness(.93);transform:translateY(-2px);}
@media(max-width:640px){.back-link{left:1rem;bottom:1rem;padding:11px 18px;font-size:12.5px;}}
.boutique-tabs{display:flex;gap:.6rem;margin-bottom:2.5rem;flex-wrap:wrap;}
.btab{padding:9px 20px;border:1.5px solid var(--bdr);border-radius:8px;background:#fff;font-size:13.5px;font-family:'Inter',sans-serif;font-weight:500;color:var(--text2);cursor:pointer;transition:all .2s;}
.btab:hover,.btab.active{background:var(--blue);border-color:var(--blue);color:#fff;}
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;}
.prod-card{background:#fff;border:1.5px solid var(--bdr);border-radius:14px;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s;}
.prod-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.08);border-color:var(--blue);}
.prod-img{height:130px;background:var(--surface);display:flex;align-items:center;justify-content:center;position:relative;}
.prod-img img{width:100%;height:100%;object-fit:cover;}
.prod-img .prod-no-img{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.prod-body{padding:1rem;}
.prod-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:.88rem;font-weight:700;color:var(--text);margin-bottom:.35rem;}
.prod-desc{font-size:12px;color:var(--text3);line-height:1.5;margin-bottom:.75rem;}
.prod-foot{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;}
.prod-prix{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.1rem;font-weight:800;color:var(--text);}
.prod-badge{font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:5px;}
.badge-stock{color:#1D4ED8;background:#DBEAFE;}
.badge-cmd{color:#6B7280;background:#F3F4F6;}
.badge-reco{color:#065F46;background:#D1FAF0;}
.badge-epuise{color:#991B1B;background:#FEE2E2;}
.prod-grade{position:absolute;top:.7rem;left:.7rem;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:5px;}
.prod-discount{position:absolute;top:.7rem;right:.7rem;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:5px;background:#FEF3C7;color:#92400E;}
.prod-count{font-size:13.5px;color:var(--text2);margin-bottom:1.5rem;}

/* FICHE PRODUIT */
.sp-layout{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start;}
.sp-gallery{position:relative;background:var(--surface);border:1.5px solid var(--bdr);border-radius:18px;overflow:hidden;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;}
.sp-gallery img{width:100%;height:100%;object-fit:cover;}
.sp-no-img{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.sp-badges{position:absolute;top:1rem;left:1rem;right:1rem;display:flex;justify-content:space-between;gap:.5rem;}
.sp-info{display:flex;flex-direction:column;gap:1.1rem;padding-top:.3rem;}
.sp-price-row{display:flex;align-items:baseline;gap:.9rem;}
.sp-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:2.2rem;font-weight:800;color:var(--text);}
.sp-old-price{font-size:15px;color:var(--text3);text-decoration:line-through;}
.sp-desc{font-size:15px;color:var(--text2);line-height:1.75;}
.sp-warranty{display:flex;align-items:center;gap:.6rem;font-size:13.5px;font-weight:600;color:var(--blue-d);background:var(--blue-l);border-radius:10px;padding:.8rem 1rem;}
.sp-cta{text-align:center;font-size:15.5px;padding:16px;}
.sp-call{font-size:13px;color:var(--text2);text-align:center;}
.sp-call a{color:var(--blue-d);font-weight:600;}
.sp-full-desc{max-width:820px;margin-top:3.5rem;padding-top:3rem;border-top:1px solid var(--bdr);}
@media(max-width:1000px){.sp-layout{grid-template-columns:1fr;gap:2rem;}}

/* ━━━━━━━━━━━━━━━━━━━━━━━━
   RESPONSIVE
━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:1100px){.prod-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:1000px){
  /* Justifié (droit à gauche ET à droite) plutôt qu'aligné à gauche —
     rendu plus "propre" demandé, avec hyphens pour éviter les gros
     espaces blancs entre les mots que le justifié crée sur colonne étroite. */
  .about-light p{text-align:justify;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word;}
  /* Sous 1000px, les infos (tél/horaires/email/adresse) sont cachées,
     donc le bandeau du haut n'a plus besoin de sa hauteur pleine desktop —
     sinon il pousse tout le vrai contenu hors de l'écran visible. */
  .topbar-inner{height:72px;padding:0 1.25rem;}
  .topbar-infos{display:none;}
  .navbar{display:none;}
  /* Logo compact + tagline "Paris 10e" centrée dessous, à la place de la
     ligne d'infos desktop masquée — au lieu d'une deuxième ligne de
     bandeau qui l'épaississait inutilement (72px conservés). Avis Google
     retiré du bandeau : l'espace libéré profite au logo et au groupe
     menu/téléphone, plus confortables. */
  .logo-brand{align-items:center;gap:3px;}
  .logo-brand .logo-img{height:36px;}
  .logo-tagline{display:block;font-size:10px;letter-spacing:1.8px;}
  .mob-actions{display:flex;align-items:center;gap:.6rem;}
  .mob-tel{display:flex;}
  .mob-btn{display:flex;}
  /* L'image passe après le titre (au lieu d'être en premier) — .about-light
     devient display:contents pour que ses enfants (kicker, h2, p, chips,
     btns) deviennent frères de la photo dans .about-split et puissent être
     réordonnés individuellement avec `order`, sans dupliquer le HTML ni
     toucher au desktop. Espacements confortables : texte complet (pas de
     troncature) et photo avec un vrai ratio, pas une hauteur écrasée. */
  .about-wrap{padding:3rem 1.5rem;}
  .about-split{grid-template-columns:1fr;gap:0;}
  .about-light{display:contents;}
  .about-split .kicker{order:1;margin-bottom:.6rem;}
  .about-light h2{order:2;margin-bottom:1.1rem;}
  .about-photo{order:3;aspect-ratio:4/3;height:auto;margin-bottom:1.3rem;}
  .about-light p{order:4;margin-bottom:1.2rem;}
  .about-split .chips{order:5;margin-bottom:1.5rem;}
  .about-split .btns{order:6;gap:.75rem;}
  .svcs,.rev-grid{grid-template-columns:1fr 1fr;}
  .svcs .sc.featured,.svcs .sc.banner{grid-column:span 2;}
  .why-grid,.proc-grid{grid-template-columns:1fr 1fr;}
  .proc-grid{margin-top:2rem;}
  .why-grid::before{display:none;}
  .why{border-right:1px solid var(--bdr);border-bottom:1px solid var(--bdr);}
  .why:nth-child(2n){border-right:none;}
  .why:nth-last-child(-n+2){border-bottom:none;}
  .cta-box{grid-template-columns:1fr;padding:3rem 2rem;}
  .cta-r{align-items:flex-start;}
  .ft-top{grid-template-columns:1fr 1fr;}
  .stats-g{grid-template-columns:1fr 1fr;}
  .sg{border-bottom:1px solid rgba(255,255,255,.07);}
  .sg:nth-child(2n){border-right:none;}
  .sg:nth-last-child(-n+2){border-bottom:none;}
  .svc-strip-inner{grid-template-columns:repeat(3,1fr);}
  .contact-layout{grid-template-columns:1fr;gap:3rem;}
  .prod-grid{grid-template-columns:repeat(2,1fr);}
  .hero{padding-top:72px;}
  .woo-page-hero{padding-top:4.5rem;}
  /* Ordre mobile : titre → avis Google mis en avant tout de suite → photo →
     texte → boutons (au lieu de démarrer par la photo comme en desktop).
     .hero-text-col passe en display:contents pour que ses enfants (pill,
     h1, sub, btns, rating) deviennent des éléments frères de la photo dans
     .hero-grid, et puissent donc être réordonnés individuellement avec
     `order` — sans toucher au HTML ni à la mise en page desktop. */
  /* Objectif : que tout le hero (pastille, titre, photo, liste, boutons)
     tienne dans un seul écran mobile sans scroll — chaque marge ci-dessous
     est volontairement minimale. */
   .hero-bg{display:block;}
   /* Le bloc occupe toute la hauteur visible sous le bandeau fixe (72px) :
      justify-content:space-between répartit l'espace restant entre les
      éléments pour que tout (pastille → boutons) reste sur l'écran blanc
      d'accueil, sans que la section sombre des stats n'empiète dessus. */
   .hero-grid{display:flex;flex-direction:column;align-items:stretch;text-align:left;min-height:calc(100vh - 72px);min-height:calc(100dvh - 72px);justify-content:space-between;gap:0;padding:1rem 1rem 1.35rem;width:100%;}
  .hero-text-col{display:contents;}
   .hero-pill{order:1;align-self:center;margin:0 0 .7rem;font-size:10px;padding:7px 13px;}
   .hero h1{order:2;margin:0 0 .8rem;text-align:center;font-size:1.55rem;line-height:1.08;letter-spacing:-1px;}
  /* Déjà affiché dans le bandeau (logo Google + note) : pas besoin de le
     répéter ici sur mobile. */
  .hero-rating{display:none;}
   .hero-photo-col{order:4;width:100%;height:140px;aspect-ratio:auto;margin:0 0 .8rem;}
   .hero-photo-frame{top:0;right:0;bottom:0;left:0;border-radius:18px;background:var(--surface);box-shadow:0 10px 28px rgba(15,23,42,.18);}
   .hero-photo-frame img{object-fit:cover;object-position:center center;}
   .hero-list{order:5;gap:.55rem;margin:0 0 .8rem;width:100%;}
   .hero-btns{order:6;display:flex;flex-direction:row;align-items:stretch;gap:.65rem;width:100%;max-width:none;margin:0;}
  .hero-btns .btn-teal,.hero-btns .btn-outline-dark,.hero-btns .arrival-box{padding:13px 14px;font-size:15.5px;font-weight:700;}
}
@media(max-width:640px){
  .svcs,.why-grid,.proc-grid,.ft-top,.svc-strip-inner,.rev-grid{grid-template-columns:1fr;}
  .why{border-right:none;border-bottom:1px solid var(--bdr);}
  .why:last-child{border-bottom:none;}
  .svcs .sc.featured,.svcs .sc.banner{grid-column:span 1;}
  .svcs .sc.featured .sc-img,.svcs .sc.banner .sc-img{height:170px;}
  .sc-img{height:170px;}
  /* Cartes services et process : les paddings/tailles pensés pour desktop
     rendaient chaque carte disproportionnée en hauteur sur mobile. */
  .svcs{gap:.9rem;}
  .sc-body{padding:1.2rem 1.3rem 1.4rem;}
  .sc h3{font-size:1.05rem;}
  .sc-lnk{margin-top:.5rem;}
  .proc-grid{gap:.9rem;}
  .proc{padding:1.4rem 1.2rem;}
  /* Icône retirée sur mobile : elle prenait trop de place dans chaque
     carte, le numéro et le titre suffisent. */
  .proc-circle{display:none;}
  .proc-n{font-size:1.8rem;margin-bottom:.35rem;}
  .proc h4{font-size:.92rem;margin-bottom:.3rem;}
  .proc p{font-size:13px;line-height:1.5;}
   .hero h1{letter-spacing:-1.1px;font-size:1.5rem;}
  .hstat-sep{display:none;}
  .hero-stats{gap:1.5rem;}
  .prod-grid{grid-template-columns:repeat(2,1fr);}
  .form-row{grid-template-columns:1fr;}
  .cta-box{padding:2rem 1.5rem;}
  .section,.section-dark,.section-surface,.cta-wrap{padding:2.25rem 1.25rem;}
  /* Garde 4.5rem (72px) en haut : c'est la hauteur exacte du bandeau fixe
     en mobile (.topbar-inner). Sans ça, le titre de page passe sous le
     bandeau sur les écrans ≤640px (Boutique, fiche produit, mentions...). */
  .woo-page-hero{padding:4.5rem 1.25rem 2.25rem;}
  .svc-strip{padding:2rem 1.25rem;}
  .svc-strip-inner{gap:1.25rem;}
  .about-wrap{padding:2.25rem 1.25rem;}

  /* Resserrement général du vide entre chaque section : les marges/paddings
     pensés pour desktop (en-têtes de section, cartes, footer) restaient
     bien trop généreux une fois empilés en une seule colonne sur mobile. */
  .sh{margin-bottom:1.75rem;}
  .rev-head{margin-bottom:1.5rem;}
  /* "Lire nos avis" / "Déposer un avis" côte à côte même sur petit mobile
     (passaient à la ligne sur les écrans étroits type 320px). */
  .review-actions{flex-wrap:nowrap;gap:.5rem;}
  .rev-badge{flex:1;text-align:center;padding:9px 6px;font-size:11px;white-space:nowrap;}
  .why{padding:1.3rem 1.2rem;}
  .rev{padding:1.4rem;}
  .form-card{padding:1.5rem;}
  .contact-layout{gap:1.75rem;}
  .stats-g .sg{padding:1.65rem .9rem;}
  .sg-s{color:rgba(255,255,255,.58);}
  .ft{padding:2.25rem 1.25rem 1.5rem;}
  .ft-top{gap:1.75rem;padding-bottom:1.75rem;margin-bottom:1.25rem;}

  /* Resserrement général : les tailles pensées pour desktop restaient
     trop grandes sur petit écran (pastille, titres, bouton flottant) */
  .hero-pill{font-size:10.5px;letter-spacing:.8px;padding:6px 13px;}
  .hero-list{gap:.4rem;margin-bottom:.75rem;}
   .hero-list li{font-size:13.5px;padding-left:1.65rem;line-height:1.35;font-weight:600;}
   .hero-list li::before{width:16px;height:16px;}
   .hero-list li::after{left:5px;width:6px;height:3px;border-width:0 0 1.5px 1.5px;transform:translateY(-65%) rotate(-45deg);}
    .hero-list li.hero-primary{font-size:17px;line-height:1.25;font-weight:800;}
  .kicker{font-size:14px;letter-spacing:1.3px;}
  .ttl{font-size:1.6rem;}
   .hero-btns .btn-teal,.hero-btns .btn-outline-dark,.hero-btns .arrival-box{display:flex;align-items:center;justify-content:center;flex:1 1 0;width:auto;min-width:0;min-height:54px;padding:8px 6px;font-size:14.5px;line-height:1.18;white-space:normal;text-align:center;font-weight:700;}
   .hero-btns .maps-logo{width:22px;height:22px;flex-shrink:0;}
   .hero-btns .arrival-box{gap:.3rem;}
   .hero-btns .arrival-box strong{font-size:14px;line-height:1.18;}
  .about-light h2,.form-card h2{font-size:1.5rem;}
}
@media(max-width:400px){.prod-grid{grid-template-columns:1fr;}}

/* ━━━ BANDEAU COOKIES (COMPLIANZ) — COMPACT MOBILE (2026-09-10) ━━━
   Sur mobile, le bandeau par défaut de Complianz recouvre ~45% de l'écran
   et cache les boutons "Prendre RDV" / "Comment venir" du hero au premier
   chargement. On resserre juste sa mise en page (texte, boutons, marges)
   sans jamais masquer un bouton de consentement — les 3 choix (Accepter /
   Refuser / Voir les préférences) restent tous visibles et cliquables. */
@media(max-width:640px){
  /* Le vrai gain de place vient de la mise en page des boutons : Complianz
     les empile par défaut sur mobile (3 boutons pleine largeur ≈ 45px+
     chacun). On garde "Accepter" en pleine largeur (choix mis en avant)
     mais on passe "Refuser" / "Voir les préférences" sur une même ligne,
     ce qui retire à lui seul ~45px, plus le resserrement du texte/marges. */
  #cmplz-cookiebanner-container .cmplz-cookiebanner{padding:12px 16px;grid-gap:6px;}
  #cmplz-cookiebanner-container .cmplz-header{margin-bottom:0;}
  #cmplz-cookiebanner-container .cmplz-title{font-size:13px;}
  #cmplz-cookiebanner-container .cmplz-message{font-size:11.5px;line-height:1.35;margin-bottom:0;}
  #cmplz-cookiebanner-container .cmplz-divider{margin:6px -16px;}
  #cmplz-cookiebanner-container .cmplz-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;}
  #cmplz-cookiebanner-container .cmplz-buttons .cmplz-btn{box-sizing:border-box;width:100%;min-height:0;padding:10px 4px;font-size:13px;line-height:1.2;white-space:normal;grid-column:1 / -1;}
  #cmplz-cookiebanner-container .cmplz-buttons .cmplz-btn.cmplz-deny,
  #cmplz-cookiebanner-container .cmplz-buttons .cmplz-btn.cmplz-view-preferences{grid-column:span 1;font-size:11.5px;}
}
