/* =========================================================
   C'PROPRE NETTOYAGE — Design system premium
   Palette : Bleu clair · Blanc · Or doux  (charte logo)
   Auteur : refonte 2026
   ========================================================= */

/* Smooth scroll global (pour les ancres #canapes, #matelas, etc.) */
html{ scroll-behavior:smooth; scroll-padding-top:90px; }

/* ---------- Tarifs : navigation services (CRO) ---------- */
.tarif-nav-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.2rem;
  margin-top:2.2rem;
}
.tarif-nav-card{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:1.8rem 1.2rem 1.5rem;
  box-shadow:0 4px 14px rgba(15,52,92,.05);
  text-decoration:none !important;
  color:var(--navy);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow:visible;
}
.tarif-nav-card:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 38px rgba(15,52,92,.12);
  border-color:var(--blue);
}
.tarif-nav-card__icon{
  width:68px; height:68px;
  display:flex; align-items:center; justify-content:center;
  background:var(--blue-soft);
  border-radius:18px;
  color:var(--blue-700);
  margin-bottom:1rem;
  transition:background .25s ease, color .25s ease, transform .25s ease;
}
.tarif-nav-card:hover .tarif-nav-card__icon{
  background:var(--blue);
  color:#fff;
  transform:scale(1.05);
}
.tarif-nav-card__icon svg{ width:32px; height:32px; }
.tarif-nav-card h3{
  font-family:var(--ff-head);
  font-size:1.05rem;
  margin:0 0 .55rem;
  color:var(--navy);
  line-height:1.25;
}
.tarif-nav-card__from{
  color:var(--muted);
  margin:0 0 1.1rem;
  font-size:.9rem;
}
.tarif-nav-card__from strong{
  color:var(--gold-600);
  font-family:var(--ff-head);
  font-size:1.25rem;
  font-weight:800;
}
.tarif-nav-card__cta{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  margin-top:auto;
  padding:.55rem 1.1rem;
  background:var(--blue-soft);
  color:var(--blue-700);
  border-radius:999px;
  font-family:var(--ff-head);
  font-weight:600;
  font-size:.85rem;
  transition:background .25s ease, color .25s ease;
}
.tarif-nav-card__cta svg{ width:16px; height:16px; transition:transform .25s ease; }
.tarif-nav-card:hover .tarif-nav-card__cta{
  background:var(--blue);
  color:#fff;
}
.tarif-nav-card:hover .tarif-nav-card__cta svg{ transform:translateX(4px); }
.tarif-nav-card__ribbon{
  position:absolute;
  top:-12px; right:14px;
  background:var(--gold);
  color:var(--navy);
  padding:.32rem .9rem;
  border-radius:999px;
  font-family:var(--ff-head);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.3px;
  box-shadow:0 4px 12px rgba(235,185,75,.4);
  white-space:nowrap;
}

@media (max-width:1024px){
  .tarif-nav-grid{ grid-template-columns:repeat(3, 1fr); }
}
@media (max-width:720px){
  .tarif-nav-grid{ grid-template-columns:repeat(2, 1fr); gap:.9rem; }
  .tarif-nav-card{ padding:1.4rem .8rem 1.2rem; }
  .tarif-nav-card__icon{ width:56px; height:56px; border-radius:14px; }
  .tarif-nav-card__icon svg{ width:28px; height:28px; }
  .tarif-nav-card h3{ font-size:.95rem; }
  .tarif-nav-card__ribbon{ font-size:.65rem; padding:.28rem .7rem; right:8px; top:-10px; }
}
@media (max-width:380px){
  .tarif-nav-grid{ grid-template-columns:1fr; }
}

/* ---------- 1. Variables ---------- */
:root{
  /* Couleurs marque */
  --blue:        #3DA9E0;   /* bleu logo */
  --blue-600:    #2E96CC;
  --blue-700:    #1E7AAE;
  --blue-soft:   #EAF6FD;   /* fond bleu très clair */
  --blue-soft-2: #F4FAFE;
  --navy:        #0F2E40;   /* texte / sections sombres */
  --navy-700:    #14384C;
  --gold:        #EBB94B;   /* accent or */
  --gold-600:    #D7A436;
  --gold-soft:   #FCF3DC;

  --white:       #ffffff;
  --ink:         #16323F;   /* texte principal */
  --muted:       #5C7585;   /* texte secondaire */
  --line:        #E2EBF1;   /* bordures */

  /* UI */
  --radius:      18px;
  --radius-sm:   12px;
  --radius-lg:   28px;
  --shadow-sm:   0 4px 14px rgba(15,46,64,.06);
  --shadow:      0 14px 40px rgba(15,46,64,.10);
  --shadow-lg:   0 30px 70px rgba(15,46,64,.16);
  --shadow-gold: 0 12px 30px rgba(235,185,75,.35);
  --shadow-blue: 0 12px 30px rgba(61,169,224,.35);

  --container: 1200px;
  --gap: clamp(1rem, 3vw, 2rem);

  --ff-head: "Poppins", "Segoe UI", system-ui, sans-serif;
  --ff-body: "Inter", "Segoe UI", system-ui, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--ff-body);
  color:var(--ink);
  background:var(--white);
  line-height:1.65;
  font-size:17px;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,video{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
input,textarea,select{ font-family:inherit; font-size:1rem; }
:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; border-radius:6px; }

/* ---------- 3. Typo ---------- */
h1,h2,h3,h4{ font-family:var(--ff-head); color:var(--navy); line-height:1.15; font-weight:700; }
h1{ font-size:clamp(2.1rem, 5.2vw, 3.7rem); letter-spacing:-.02em; }
h2{ font-size:clamp(1.7rem, 3.6vw, 2.6rem); letter-spacing:-.01em; }
h3{ font-size:clamp(1.2rem, 2vw, 1.45rem); }
p{ color:var(--ink); }
.lead{ font-size:clamp(1.05rem,1.6vw,1.22rem); color:var(--muted); }
strong{ color:var(--navy); font-weight:700; }
.text-gold{ color:var(--gold-600); }
.text-blue{ color:var(--blue-700); }

/* ---------- 4. Layout ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.1rem,4vw,2rem); }
.container-narrow{ max-width:880px; }
section{ position:relative; }
.section{ padding-block:clamp(3.5rem, 8vw, 6.5rem); }
.section--tight{ padding-block:clamp(2.5rem,5vw,4rem); }
.bg-soft{ background:var(--blue-soft-2); }
.bg-blue-soft{ background:var(--blue-soft); }
.bg-navy{ background:linear-gradient(160deg,var(--navy) 0%,#0a2434 100%); color:#dbe8f0; }
.bg-navy h2,.bg-navy h3{ color:#fff; }
.bg-navy .lead{ color:#9fc0d4; }

.grid{ display:grid; gap:var(--gap); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }

/* ---------- 5. Boutons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--ff-head); font-weight:600; font-size:1rem; line-height:1;
  padding:1rem 1.7rem; border-radius:999px; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s;
  white-space:nowrap;
}
.btn svg{ width:1.15em; height:1.15em; }
.btn-primary{ background:var(--gold); color:var(--navy); box-shadow:var(--shadow-gold); }
.btn-primary:hover{ background:var(--gold-600); transform:translateY(-3px); }
.btn-blue{ background:var(--blue); color:#fff; box-shadow:var(--shadow-blue); }
.btn-blue:hover{ background:var(--blue-600); transform:translateY(-3px); }
.btn-ghost{ background:rgba(255,255,255,.12); color:#fff; border:1.5px solid rgba(255,255,255,.55); }
.btn-ghost:hover{ background:#fff; color:var(--navy); transform:translateY(-3px); }
.btn-outline{ background:#fff; color:var(--navy); border:1.5px solid var(--line); }
.btn-outline:hover{ border-color:var(--blue); color:var(--blue-700); transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.btn-lg{ padding:1.15rem 2.1rem; font-size:1.08rem; }
.btn-block{ width:100%; }

/* ---------- 6. Header ---------- */
.header{
  position:fixed; inset:0 0 auto 0; z-index:1000;
  transition:background .3s, box-shadow .3s, padding .3s;
  padding-block:.85rem;
}
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.header.is-scrolled{ background:rgba(255,255,255,.94); backdrop-filter:blur(12px); box-shadow:var(--shadow-sm); padding-block:.45rem; }
.brand{ display:flex; align-items:center; gap:.6rem; }
.brand img{ height:52px; width:auto; transition:height .3s; }
.header.is-scrolled .brand img{ height:44px; }
/* logo lisible sur hero transparent */
.header:not(.is-scrolled) .brand{ background:rgba(255,255,255,.92); padding:.3rem .7rem .3rem .4rem; border-radius:14px; box-shadow:var(--shadow-sm); }

.nav{ display:flex; align-items:center; gap:.3rem; }
.nav a{
  font-family:var(--ff-head); font-weight:500; font-size:.98rem; color:var(--navy);
  padding:.55rem .85rem; border-radius:10px; transition:color .2s, background .2s; position:relative;
}
.header:not(.is-scrolled) .nav a{ color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.35); }
.nav a:hover{ color:var(--blue-700); background:var(--blue-soft); text-shadow:none; }
.nav a.active{ color:var(--blue-700); }
/* dropdown services */
.nav .has-drop{ position:relative; }
.nav .has-drop > a::after{ content:"\25BE"; font-size:.7em; margin-left:.35rem; opacity:.8; }
.nav .drop{
  position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(8px);
  background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); padding:.5rem;
  min-width:260px; opacity:0; visibility:hidden; transition:.25s var(--ease);
}
.nav .has-drop:hover .drop,.nav .has-drop:focus-within .drop{ opacity:1; visibility:visible; transform:translateX(-50%); }
.nav .drop a{ display:flex; align-items:center; gap:.6rem; color:var(--navy) !important; text-shadow:none !important; padding:.6rem .7rem; border-radius:10px; font-weight:500; }
.nav .drop a:hover{ background:var(--blue-soft); }
.nav .drop a svg{ width:1.15rem; height:1.15rem; color:var(--blue); flex:0 0 auto; }

.header-cta{ display:flex; align-items:center; gap:.6rem; }
.header-phone{ display:inline-flex; align-items:center; gap:.45rem; font-family:var(--ff-head); font-weight:700; color:var(--navy); }
.header:not(.is-scrolled) .header-phone{ color:#fff; }
.header-phone svg{ width:1.2rem; height:1.2rem; color:var(--blue); }

/* burger */
.burger{ display:none; width:46px; height:46px; border-radius:12px; background:var(--blue); align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.burger span{ width:22px; height:2.5px; background:#fff; border-radius:2px; transition:.3s; }
.burger.is-open span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* mobile drawer */
.mobile-menu{
  position:fixed; inset:0; z-index:1100; background:rgba(10,30,42,.55); backdrop-filter:blur(4px);
  opacity:0; visibility:hidden; transition:.3s;
}
.mobile-menu.is-open{ opacity:1; visibility:visible; }
.mobile-menu__panel{
  position:absolute; top:0; right:0; height:100%; width:min(86vw,360px);
  background:#fff; box-shadow:var(--shadow-lg); padding:1.5rem 1.4rem;
  transform:translateX(100%); transition:transform .35s var(--ease);
  display:flex; flex-direction:column; gap:.3rem; overflow-y:auto;
}
.mobile-menu.is-open .mobile-menu__panel{ transform:none; }
.mobile-menu__head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; }
.mobile-menu__head img{ height:46px; }
.mobile-close{ font-size:1.8rem; color:var(--navy); width:40px; height:40px; }
.mobile-menu a.m-link{ font-family:var(--ff-head); font-weight:500; color:var(--navy); padding:.85rem .6rem; border-radius:12px; border-bottom:1px solid var(--line); }
.mobile-menu a.m-link:hover{ background:var(--blue-soft); color:var(--blue-700); }
.mobile-menu .btn{ margin-top:1rem; }
.mobile-social{ display:flex; gap:.8rem; margin-top:1.4rem; }
.mobile-social a{ width:44px;height:44px;border-radius:12px;background:var(--blue-soft);display:grid;place-items:center;color:var(--blue-700); }

/* ---------- 7. Hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  color:#fff; padding-top:6rem; overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:-2; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(8,26,38,.92) 0%, rgba(8,26,38,.72) 42%, rgba(8,26,38,.30) 100%);
}
.hero__inner{ position:relative; max-width:660px; padding-block:3rem; }
.hero .eyebrow{ color:var(--gold); }
.hero h1{ color:#fff; margin:.6rem 0 1rem; }
.hero h1 .hl{ color:var(--gold); }
.hero p{ color:#d7e7f0; font-size:clamp(1.05rem,1.6vw,1.25rem); max-width:540px; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.9rem; }
.hero__trust{ display:flex; flex-wrap:wrap; gap:1.4rem 2rem; margin-top:2.3rem; }
.hero__trust .ht{ display:flex; align-items:center; gap:.6rem; font-size:.95rem; color:#e7f1f7; }
.hero__trust .ht svg{ width:1.5rem; height:1.5rem; color:var(--gold); flex:0 0 auto; }
.hero__trust .ht strong{ color:#fff; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--ff-head); font-weight:600; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue-700);
}
.eyebrow::before{ content:""; width:26px; height:2px; background:currentColor; border-radius:2px; }

/* google pill */
.google-pill{
  display:inline-flex; align-items:center; gap:.7rem; background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.25); padding:.55rem .9rem; border-radius:999px; backdrop-filter:blur(6px);
}
.google-pill .g{ font-family:var(--ff-head); font-weight:700; }
.stars{ color:var(--gold); letter-spacing:1px; }
.stars svg{ width:1.05em; height:1.05em; display:inline; vertical-align:-2px; }

/* ---------- 8. Trust strip ---------- */
.trust-strip{ background:#fff; border-bottom:1px solid var(--line); }
.trust-strip .row{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1.2rem; padding-block:1.4rem; }
.trust-item{ display:flex; align-items:center; gap:.75rem; flex:1 1 200px; }
.trust-item svg{ width:2rem; height:2rem; color:var(--blue); flex:0 0 auto; }
.trust-item b{ display:block; font-family:var(--ff-head); color:var(--navy); line-height:1.2; }
.trust-item span{ font-size:.86rem; color:var(--muted); }

/* ---------- 9. Section heading ---------- */
.sec-head{ max-width:720px; margin:0 auto clamp(2rem,4vw,3rem); text-align:center; }
.sec-head.left{ margin-inline:0; text-align:left; }
.sec-head h2{ margin:.6rem 0 .8rem; }
.sec-head .eyebrow{ justify-content:center; }
.sec-head.left .eyebrow{ justify-content:flex-start; }

/* ---------- 10. Services ---------- */
.services-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
@media (min-width:1100px){ .services-grid--four{ grid-template-columns:repeat(4,1fr); gap:1.3rem; } }
.service-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .3s var(--ease), box-shadow .3s, border-color .3s;
}
.service-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow); border-color:transparent; }
.service-card__media{ position:relative; aspect-ratio:16/11; overflow:hidden; }
.service-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.service-card:hover .service-card__media img{ transform:scale(1.08); }
.service-card__icon{
  position:absolute; bottom:-26px; left:22px; width:56px; height:56px; border-radius:16px;
  background:var(--gold); color:var(--navy); display:grid; place-items:center; box-shadow:var(--shadow-gold);
}
.service-card__icon svg{ width:1.7rem; height:1.7rem; }
.service-card__body{ padding:2.1rem 1.5rem 1.6rem; flex:1; display:flex; flex-direction:column; }
.service-card__body h3{ margin-bottom:.5rem; }
.service-card__body p{ color:var(--muted); font-size:.97rem; }
.service-card ul{ margin:.9rem 0 1.2rem; display:flex; flex-direction:column; gap:.4rem; }
.service-card ul li{ display:flex; gap:.5rem; font-size:.93rem; color:var(--ink); }
.service-card ul li svg{ width:1.05rem; height:1.05rem; color:var(--blue); flex:0 0 auto; margin-top:.2rem; }
.service-price{ font-size:.95rem; color:var(--gold); font-weight:600; margin:0 0 .85rem; }
.service-price strong{ color:var(--gold); font-size:1.08rem; }
.service-card .card-link{
  margin-top:auto; font-family:var(--ff-head); font-weight:600; color:var(--blue-700);
  display:inline-flex; align-items:center; gap:.4rem;
}
.service-card .card-link svg{ width:1.1rem; height:1.1rem; transition:transform .25s; }
.service-card:hover .card-link svg{ transform:translateX(4px); }

/* ---------- 11. Avant / Après ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2rem; }
.filter-btn{
  font-family:var(--ff-head); font-weight:500; font-size:.92rem; color:var(--navy);
  padding:.55rem 1.1rem; border-radius:999px; border:1.5px solid var(--line); background:#fff; transition:.25s;
}
.filter-btn:hover{ border-color:var(--blue); color:var(--blue-700); }
.filter-btn.active{ background:var(--blue); color:#fff; border-color:var(--blue); box-shadow:var(--shadow-blue); }

.gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.ba-card{
  position:relative; border-radius:var(--radius); overflow:hidden; cursor:pointer;
  aspect-ratio:1/1; background:var(--blue-soft); box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease), box-shadow .35s;
}
.ba-card img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.ba-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.ba-card:hover img{ transform:scale(1.07); }
.ba-card__overlay{
  position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,26,38,.82) 0%, rgba(8,26,38,0) 55%);
  opacity:0; transition:opacity .35s; display:flex; flex-direction:column; justify-content:flex-end; padding:1.2rem;
}
.ba-card:hover .ba-card__overlay{ opacity:1; }
.ba-card__overlay h4{ color:#fff; font-family:var(--ff-head); font-size:1.05rem; }
.ba-card__overlay span{ color:#bfe0f2; font-size:.85rem; display:flex; align-items:center; gap:.35rem; }
.ba-card__tag{ position:absolute; top:12px; left:12px; background:var(--gold); color:var(--navy); font-family:var(--ff-head); font-weight:600; font-size:.72rem; padding:.3rem .7rem; border-radius:999px; }
.ba-card.is-hidden{ display:none; }

/* lightbox */
.lightbox{ position:fixed; inset:0; z-index:1200; background:rgba(7,22,32,.92); display:none; place-items:center; padding:1.5rem; }
.lightbox.is-open{ display:grid; }
.lightbox img{ max-width:92vw; max-height:84vh; border-radius:14px; box-shadow:var(--shadow-lg); }
.lightbox__cap{ color:#cfe3ef; text-align:center; margin-top:1rem; font-family:var(--ff-head); }
.lightbox__close{ position:absolute; top:1.2rem; right:1.4rem; color:#fff; font-size:2.4rem; line-height:1; }
.lightbox__nav{ position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:2.6rem; padding:.4rem .8rem; background:rgba(255,255,255,.1); border-radius:12px; }
.lightbox__nav.prev{ left:1rem; } .lightbox__nav.next{ right:1rem; }

/* ---------- 12. Stats ---------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.stat{ text-align:center; }
.stat__num{ font-family:var(--ff-head); font-weight:800; font-size:clamp(2.2rem,4vw,3rem); color:var(--gold); line-height:1; }
.bg-navy .stat__num{ color:var(--gold); }
.stat__label{ margin-top:.5rem; font-size:.95rem; color:var(--muted); }
.bg-navy .stat__label{ color:#9fc0d4; }

/* ---------- 13. Split / image+text ---------- */
.split{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.split.reverse .split__media{ order:2; }
.split__media{ position:relative; }
.split__media img{ border-radius:var(--radius-lg); box-shadow:var(--shadow); width:100%; }
.split__media .floater{
  position:absolute; bottom:-22px; left:-22px; background:#fff; border-radius:var(--radius);
  padding:1rem 1.2rem; box-shadow:var(--shadow); display:flex; align-items:center; gap:.8rem; max-width:240px;
}
.split__media .floater svg{ width:2.2rem; height:2.2rem; color:var(--gold); flex:0 0 auto; }
.split__media .floater b{ font-family:var(--ff-head); color:var(--navy); display:block; }
.split__media .floater span{ font-size:.82rem; color:var(--muted); }
.check-list{ display:flex; flex-direction:column; gap:.85rem; margin:1.4rem 0 1.8rem; }
.check-list li{ display:flex; gap:.7rem; }
.check-list li svg{ width:1.4rem; height:1.4rem; color:#fff; background:var(--blue); border-radius:50%; padding:.22rem; flex:0 0 auto; }
.check-list li b{ display:block; }
.check-list li span{ color:var(--muted); font-size:.95rem; }

/* ---------- 14. Pro segments ---------- */
.segments{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.segment{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius);
  padding:1.6rem 1.4rem; transition:.3s;
}
.bg-navy .segment:hover{ background:rgba(255,255,255,.1); transform:translateY(-5px); }
.segment__icon{ width:52px; height:52px; border-radius:14px; background:rgba(61,169,224,.18); color:var(--blue); display:grid; place-items:center; margin-bottom:1rem; }
.segment__icon svg{ width:1.6rem; height:1.6rem; }
.segment h3{ color:#fff; font-size:1.15rem; margin-bottom:.4rem; }
.segment p{ color:#9fc0d4; font-size:.92rem; }

/* ---------- 15. Process ---------- */
.process{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; counter-reset:step; }
.step{ text-align:center; position:relative; padding:1.5rem 1rem; }
.step__num{
  width:64px; height:64px; margin:0 auto 1rem; border-radius:50%; background:var(--blue-soft); color:var(--blue-700);
  font-family:var(--ff-head); font-weight:800; font-size:1.4rem; display:grid; place-items:center; border:2px dashed var(--blue);
}
.step h3{ font-size:1.1rem; margin-bottom:.4rem; }
.step p{ color:var(--muted); font-size:.92rem; }

/* ---------- 16. Reviews ---------- */
.reviews-head{ display:flex; flex-wrap:wrap; gap:1.5rem; align-items:center; justify-content:space-between; margin-bottom:2.2rem; }
.google-score{ display:flex; align-items:center; gap:1rem; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.3rem; box-shadow:var(--shadow-sm); }
.google-score .num{ font-family:var(--ff-head); font-weight:800; font-size:2.4rem; color:var(--navy); line-height:1; }
.google-score .g-logo{ width:34px;height:34px; }
.google-score small{ color:var(--muted); }

.reviews{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.review{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column; gap:.9rem;
}
.review__top{ display:flex; align-items:center; gap:.8rem; }
.review__avatar{ width:46px; height:46px; border-radius:50%; background:var(--blue); color:#fff; font-family:var(--ff-head); font-weight:700; display:grid; place-items:center; }
.review__who b{ display:block; font-family:var(--ff-head); color:var(--navy); }
.review__who span{ font-size:.82rem; color:var(--muted); }
.review p{ color:var(--ink); font-size:.97rem; }
.review .stars{ font-size:1rem; }
.review__g{ display:flex; align-items:center; gap:.4rem; font-size:.8rem; color:var(--muted); margin-top:auto; }
.review__g img{ width:16px; height:16px; }

/* ---------- 17. Zones SEO ---------- */
.zones{ display:flex; flex-wrap:wrap; gap:.7rem; }
.zone-chip{
  display:inline-flex; align-items:center; gap:.45rem; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:.6rem 1.1rem; font-family:var(--ff-head); font-weight:500; color:var(--navy);
  font-size:.95rem; transition:.25s;
}
.zone-chip:hover{ border-color:var(--blue); color:var(--blue-700); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.zone-chip svg{ width:1rem; height:1rem; color:var(--blue); }

/* ---------- 18. FAQ ---------- */
.faq{ max-width:820px; margin-inline:auto; display:flex; flex-direction:column; gap:.8rem; }
.faq-item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; transition:box-shadow .3s; }
.faq-item.open{ box-shadow:var(--shadow-sm); border-color:var(--blue); }
.faq-q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.2rem 1.4rem; text-align:left; font-family:var(--ff-head); font-weight:600; color:var(--navy); font-size:1.02rem; }
.faq-q .ic{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:var(--blue-soft); color:var(--blue-700); display:grid; place-items:center; font-size:1.3rem; transition:.3s; }
.faq-item.open .faq-q .ic{ background:var(--blue); color:#fff; transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq-a__inner{ padding:0 1.4rem 1.3rem; color:var(--muted); }

/* ---------- 19. CTA band ---------- */
.cta-band{ position:relative; overflow:hidden; border-radius:var(--radius-lg); padding:clamp(2.2rem,5vw,3.6rem); color:#fff; text-align:center;
  background:linear-gradient(120deg,var(--blue) 0%, var(--blue-700) 100%); box-shadow:var(--shadow); }
.cta-band::after{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 80% -20%, rgba(255,255,255,.25), transparent 50%); }
.cta-band > *{ position:relative; }
.cta-band h2{ color:#fff; }
.cta-band p{ color:#e3f3fc; max-width:600px; margin:.7rem auto 1.6rem; }
.cta-band .btns{ display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center; }

/* ---------- 20. Formulaire devis ---------- */
.form-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,3.5rem); align-items:start; }
.form-card{ background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:clamp(1.6rem,4vw,2.6rem); border:1px solid var(--line); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-family:var(--ff-head); font-weight:500; font-size:.9rem; color:var(--navy); margin-bottom:.4rem; }
.field input,.field select,.field textarea{
  width:100%; padding:.85rem 1rem; border:1.5px solid var(--line); border-radius:12px; background:var(--blue-soft-2);
  color:var(--ink); transition:.2s;
}
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--blue); background:#fff; box-shadow:0 0 0 4px rgba(61,169,224,.12); }
.field textarea{ resize:vertical; min-height:120px; }
.field.error input,.field.error select,.field.error textarea{ border-color:#e0556b; background:#fdf2f4; }
.field .err-msg{ color:#d23a52; font-size:.82rem; margin-top:.35rem; display:none; }
.field.error .err-msg{ display:block; }
.form-note{ font-size:.82rem; color:var(--muted); margin-top:.6rem; }
.form-success{ display:none; background:var(--gold-soft); border:1px solid var(--gold); border-radius:14px; padding:1rem 1.2rem; color:var(--navy); font-family:var(--ff-head); margin-top:1rem; }
.form-success.show{ display:block; }
.form-error{ display:none; background:#fdecec; border:1px solid #e88; border-radius:14px; padding:1rem 1.2rem; color:#8a1c1c; font-family:var(--ff-head); margin-top:1rem; }
.form-error.show{ display:block; }
.form-error a{ color:#8a1c1c; text-decoration:underline; }
.botcheck{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none !important; }

/* Form: section titles, conditional details, info boxes, file input */
.form-section-title{ font-family:var(--ff-head); font-weight:700; color:var(--navy); font-size:.92rem; letter-spacing:1.2px; text-transform:uppercase; margin:1.4rem 0 1rem; padding-bottom:.55rem; border-bottom:2px solid var(--blue-soft); }
.form-section-title:first-child{ margin-top:0; }
.form-label-hint{ font-weight:400; color:var(--muted); font-size:.85rem; margin-left:.3rem; }
.service-detail{ display:none; }
.service-detail.show{ display:block; animation:fade-slide .25s var(--ease) both; }
@keyframes fade-slide{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:translateY(0); } }
.form-info{ display:flex; gap:.7rem; align-items:flex-start; background:var(--blue-soft); border:1px solid #b6d9ef; border-radius:14px; padding:.9rem 1.1rem; color:var(--navy); font-size:.95rem; line-height:1.5; margin-bottom:1.1rem; }
.form-info svg{ flex:0 0 22px; width:22px; height:22px; color:var(--blue-700); margin-top:.05rem; }
.form-info b{ color:var(--blue-700); }
.file-input{ display:block; width:100%; padding:.7rem .9rem; border:1.5px dashed var(--line); border-radius:12px; background:var(--blue-soft-2); color:var(--navy); font-family:inherit; font-size:.95rem; cursor:pointer; transition:border-color .2s, background .2s; }
.file-input:hover{ border-color:var(--blue); background:#fff; }
.file-input::-webkit-file-upload-button, .file-input::file-selector-button{ background:var(--navy); color:#fff; border:0; padding:.45rem .9rem; border-radius:8px; font-family:var(--ff-head); font-weight:600; font-size:.85rem; cursor:pointer; margin-right:.8rem; }
.form-aside .check-list li svg{ background:var(--gold); color:var(--navy); }

/* ---------- 20b. Page Tarifs ---------- */
.formules{ display:grid; grid-template-columns:1fr 1fr; gap:1.8rem; }
.formula-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.6rem,3vw,2.2rem); box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:1.4rem; }
.formula-card--featured{ border:2px solid var(--gold); box-shadow:0 12px 38px rgba(235,185,75,.2); background:linear-gradient(180deg,#fffaf0 0%,#fff 60%); }
.formula-ribbon{ position:absolute; top:-14px; right:18px; background:var(--gold); color:var(--navy); padding:.35rem 1rem; border-radius:999px; font-family:var(--ff-head); font-weight:700; font-size:.82rem; box-shadow:var(--shadow-sm); }
.formula-card__head h3{ font-size:clamp(1.25rem,2vw,1.5rem); margin:.5rem 0 .6rem; color:var(--navy); }
.formula-card__head p{ color:var(--muted); }
.formula-tag{ display:inline-block; padding:.35rem .9rem; border-radius:999px; background:var(--blue-soft); color:var(--blue-700); font-family:var(--ff-head); font-weight:600; font-size:.85rem; letter-spacing:.3px; }
.formula-tag--gold{ background:var(--gold-soft); color:var(--gold-600); }
.formula-list{ list-style:none; display:flex; flex-direction:column; gap:.7rem; padding:0; margin:0; }
.formula-list li{ display:flex; align-items:flex-start; gap:.7rem; color:var(--navy); font-size:.98rem; }
.formula-list li svg{ flex:0 0 22px; width:22px; height:22px; background:var(--gold-soft); color:var(--gold-600); border-radius:50%; padding:4px; }
.formula-card--featured .formula-list li svg{ background:var(--gold); color:#fff; }

.price-table-wrap{ overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.price-table{ width:100%; border-collapse:collapse; min-width:560px; }
.price-table thead th{ background:var(--navy); color:#fff; font-family:var(--ff-head); font-weight:600; padding:1.05rem 1.4rem; text-align:left; font-size:.95rem; letter-spacing:.3px; }
.price-table thead th:not(:first-child){ text-align:center; }
.price-table tbody th{ text-align:left; padding:1rem 1.4rem; font-family:var(--ff-head); font-weight:600; color:var(--navy); border-bottom:1px solid var(--line); }
.price-table tbody td{ text-align:center; padding:1rem 1.4rem; border-bottom:1px solid var(--line); }
.price-table tbody tr:last-child th, .price-table tbody tr:last-child td{ border-bottom:0; }
.price-table tbody tr:hover{ background:var(--blue-soft-2); }
.price-table small{ display:block; font-weight:400; color:var(--muted); font-size:.78rem; margin-top:.15rem; }
.price-table__divider td{ background:var(--blue-soft); padding:.6rem 1.4rem !important; }
.price-table__divider span{ font-family:var(--ff-head); font-weight:700; color:var(--blue-700); font-size:.78rem; letter-spacing:1.2px; text-transform:uppercase; }
.price{ font-family:var(--ff-head); font-weight:700; font-size:1.15rem; color:var(--navy); white-space:nowrap; }
.price--gold{ color:var(--gold-600); }
.price-center{ text-align:center; }
.price-quote{ font-family:var(--ff-head); color:var(--muted); font-style:italic; }
.price-note{ margin-top:1.3rem; padding:1rem 1.2rem; background:var(--gold-soft); border-radius:14px; color:var(--navy); font-size:.95rem; }
.price-note a{ color:var(--gold-600); font-weight:600; text-decoration:underline; }

.price-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.4rem; }
.price-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.8rem 1.6rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:1rem; transition:transform .3s, box-shadow .3s; }
.price-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.price-card__icon{ width:54px; height:54px; border-radius:14px; background:var(--blue-soft); color:var(--blue-700); display:grid; place-items:center; }
.price-card__icon svg{ width:1.6rem; height:1.6rem; }
.price-card h3{ font-size:1.2rem; color:var(--navy); margin:0; }
.price-card__from{ color:var(--muted); font-size:.92rem; }
.price-card__from .price{ margin-left:.3rem; font-size:1.4rem; }
.price-card__list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; flex-grow:1; }
.price-card__list li{ font-size:.92rem; color:var(--navy); padding-left:1rem; position:relative; }
.price-card__list li::before{ content:""; position:absolute; left:0; top:.55rem; width:.4rem; height:.4rem; background:var(--gold); border-radius:50%; }

.trust-pricing{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.trust-pricing .check-list li svg{ flex:0 0 26px; width:26px; height:26px; background:var(--blue); color:#fff; border-radius:50%; padding:5px; }

details.faq-item summary{ list-style:none; cursor:pointer; padding:1.2rem 1.4rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--ff-head); font-weight:600; color:var(--navy); font-size:1.02rem; }
details.faq-item summary::-webkit-details-marker{ display:none; }
details.faq-item .faq-icon{ font-size:1.4rem; color:var(--blue); transition:transform .25s; }
details.faq-item[open] .faq-icon{ transform:rotate(45deg); }
details.faq-item .faq-a{ max-height:none; padding:0 1.4rem 1.3rem; color:var(--muted); line-height:1.6; }
details.faq-item .faq-a p + p, details.faq-item .faq-a p + ul{ margin-top:.7rem; }
.zones-list{ list-style:none; padding:0; margin:.4rem 0 0; display:flex; flex-direction:column; gap:.55rem; }
.zones-list li{ background:var(--blue-soft-2); border:1px solid var(--line); border-radius:10px; padding:.65rem .9rem; color:var(--navy); font-size:.96rem; }
.zones-list small{ color:var(--muted); font-size:.82rem; margin-left:.35rem; }
.zones-price{ display:inline-block; font-family:var(--ff-head); font-weight:700; color:var(--gold-600); margin:0 .3rem; }

.cta-band__buttons{ display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; margin-top:1.6rem; }
.cta-band .btn{ min-width:220px; }
.cta-band p{ max-width:560px; margin:.6rem auto 0; color:rgba(255,255,255,.85); }

@media (max-width:780px){
  .formules{ grid-template-columns:1fr; }
  .trust-pricing{ grid-template-columns:1fr; }
  .price-table thead th{ padding:.85rem .9rem; font-size:.85rem; }
  .price-table tbody th, .price-table tbody td{ padding:.85rem .9rem; }
  .price{ font-size:1rem; }
}

/* ---------- Price tables: mode CARTE sur mobile (<=600px) ---------- */
@media (max-width:600px){
  .price-table-wrap{
    overflow:visible; background:transparent; border:0; box-shadow:none; padding:0;
  }
  .price-table{
    display:block; width:100%; min-width:0; border-collapse:separate; border-spacing:0;
  }
  .price-table thead{ display:none; }
  .price-table tbody{ display:flex; flex-direction:column; gap:.7rem; }
  .price-table tbody tr{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-areas: "title title" "basique premium";
    gap:.55rem .55rem;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:1rem 1.05rem .95rem;
    box-shadow:0 2px 10px rgba(15,52,92,.05);
  }
  .price-table tbody tr:hover{ background:#fff; }
  .price-table tbody th[scope="row"]{
    grid-area:title;
    display:block;
    border-bottom:1px solid var(--line);
    padding:0 0 .65rem;
    margin:0;
    font-size:1rem;
    color:var(--navy);
    text-align:center;
  }
  .price-table tbody th[scope="row"] small{
    margin-top:.2rem;
    font-size:.78rem;
  }
  .price-table tbody td{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:.25rem;
    padding:.35rem .25rem 0;
    border:0;
    text-align:center;
  }
  .price-table tbody td:first-of-type{ grid-area:basique; border-right:1px solid var(--line); }
  .price-table tbody td:nth-of-type(2){ grid-area:premium; }
  .price-table tbody td::before{
    content:"";
    display:block;
    font-family:var(--ff-head);
    font-weight:700;
    font-size:.7rem;
    letter-spacing:1.2px;
    text-transform:uppercase;
    line-height:1;
  }
  /* Étiquettes Basique / Premium pour canapés et tapis (lignes normales uniquement) */
  #canapes .price-table tbody tr:not(.price-table__divider) td:first-of-type::before,
  #tapis .price-table tbody tr:not(.price-table__divider) td:first-of-type::before{
    content:"Basique";
    color:var(--blue-700);
  }
  #canapes .price-table tbody tr:not(.price-table__divider) td:nth-of-type(2)::before,
  #tapis .price-table tbody tr:not(.price-table__divider) td:nth-of-type(2)::before{
    content:"Premium";
    color:var(--gold-600);
  }
  /* Étiquettes Une face / Deux faces pour matelas (lignes normales uniquement) */
  #matelas .price-table tbody tr:not(.price-table__divider) td:first-of-type::before{
    content:"Une face";
    color:var(--blue-700);
  }
  #matelas .price-table tbody tr:not(.price-table__divider) td:nth-of-type(2)::before{
    content:"Deux faces";
    color:var(--gold-600);
  }
  .price-table .price{ font-size:1.4rem; line-height:1.1; }
  /* Lignes séparatrices (« CANAPÉS ») : pleine largeur, centré, sans étiquette de prix */
  .price-table tbody tr.price-table__divider{
    background:var(--blue-soft);
    border:0;
    box-shadow:none;
    padding:.7rem .8rem !important;
    border-radius:10px;
    grid-template-columns:1fr;
    grid-template-areas:"title";
    display:block;
    text-align:center;
  }
  .price-table tbody tr.price-table__divider td{
    display:block;
    padding:0;
    background:transparent;
    border:0;
    text-align:center;
  }
  .price-table tbody tr.price-table__divider td::before,
  #canapes .price-table tbody tr.price-table__divider td::before,
  #tapis .price-table tbody tr.price-table__divider td::before,
  #matelas .price-table tbody tr.price-table__divider td::before{
    content:none !important;
    display:none !important;
  }
  .price-table tbody tr.price-table__divider span{
    font-family:var(--ff-head);
    font-weight:700;
    color:var(--blue-700);
    font-size:.85rem;
    letter-spacing:1.2px;
    text-transform:uppercase;
  }
  /* Lignes "Sur devis" (colspan=2) : pleine largeur, sans étiquette */
  .price-table tbody td[colspan="2"]{
    grid-column:1 / -1;
    grid-area:auto;
    border-right:0;
    padding-top:.5rem;
  }
  .price-table tbody td[colspan="2"]::before,
  #canapes .price-table tbody td[colspan="2"]::before,
  #tapis .price-table tbody td[colspan="2"]::before,
  #matelas .price-table tbody td[colspan="2"]::before{
    content:none !important;
    display:none !important;
  }
  .price-table tbody tr:has(td[colspan="2"]){
    grid-template-areas:"title title" "wide wide";
  }
  .price-table tbody tr:has(td[colspan="2"]) td[colspan="2"]{ grid-area:wide; }
  /* Tableau à colonne unique (tapis : Nettoyage en profondeur) */
  .price-table--single tbody tr,
  #tapis .price-table tbody tr{
    grid-template-columns:1fr;
    grid-template-areas:"title" "price";
  }
  .price-table--single tbody tr td:first-of-type,
  #tapis .price-table tbody tr td:first-of-type{
    grid-area:price;
    border-right:0;
    padding-top:.55rem;
    margin-top:.1rem;
  }
  .price-table--single tbody tr td::before,
  #tapis .price-table tbody tr:not(.price-table__divider) td:first-of-type::before,
  #tapis .price-table tbody tr:not(.price-table__divider) td:nth-of-type(2)::before{
    content:none !important;
    display:none !important;
  }
  .price-table--single tbody tr.price-table__divider,
  #tapis .price-table tbody tr.price-table__divider{
    grid-template-columns:1fr;
    grid-template-areas:"title";
  }
  .price-quote{ font-style:italic; color:var(--muted); font-size:.95rem; }
}

/* ---------- 21. Footer ---------- */
.footer{ background:var(--navy); color:#9fc0d4; padding-top:clamp(3rem,6vw,4.5rem); }
.footer a:hover{ color:#fff; }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2rem; padding-bottom:2.5rem; }
.footer__brand img{ height:60px; background:#fff; padding:.4rem .6rem; border-radius:12px; margin-bottom:1rem; }
.footer__brand p{ color:#88abc1; font-size:.95rem; max-width:320px; }
.footer h4{ color:#fff; font-size:1.05rem; margin-bottom:1.1rem; }
.footer ul{ display:flex; flex-direction:column; gap:.6rem; }
.footer ul a,.footer ul li{ font-size:.95rem; color:#9fc0d4; }
.footer .contact-li{ display:flex; gap:.6rem; align-items:flex-start; }
.footer .contact-li svg{ width:1.2rem; height:1.2rem; color:var(--blue); flex:0 0 auto; margin-top:.2rem; }
.footer__social{ display:flex; gap:.7rem; margin-top:1.2rem; }
.footer__social a{ width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.08); display:grid; place-items:center; color:#fff; transition:.25s; }
.footer__social a:hover{ background:var(--blue); transform:translateY(-3px); }
.footer__bottom{ border-top:1px solid rgba(255,255,255,.1); padding-block:1.4rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; font-size:.86rem; color:#7596ab; }
.footer__bottom a{ color:#7596ab; }

/* ---------- 22. Boutons flottants + sticky mobile ---------- */
.floaters{ position:fixed; right:18px; bottom:90px; z-index:900; display:flex; flex-direction:column; gap:.7rem; }
.float-btn{ width:56px; height:56px; border-radius:50%; display:grid; place-items:center; color:#fff; box-shadow:var(--shadow); transition:transform .25s; position:relative; }
.float-btn:hover{ transform:scale(1.08); }
.float-btn svg{ width:1.7rem; height:1.7rem; }
.float-btn.wa{ background:#25D366; }
.float-btn.email{ background:var(--gold); color:var(--navy); }
.float-btn.tel{ background:var(--blue); }
.float-btn.up{ background:var(--navy); width:48px; height:48px; opacity:0; pointer-events:none; transition:.3s; }
.float-btn.up.show{ opacity:1; pointer-events:auto; }
.float-btn .ping{ position:absolute; inset:0; border-radius:50%; animation:ping 1.8s var(--ease) infinite; }
.float-btn.wa .ping{ background:#25D366; }
@keyframes ping{ 0%{ transform:scale(1); opacity:.5; } 100%{ transform:scale(1.7); opacity:0; } }

.mobile-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:950; display:none;
  grid-template-columns:1fr 1fr; gap:.6rem; padding:.6rem; background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px); box-shadow:0 -6px 24px rgba(15,46,64,.12); border-top:1px solid var(--line);
}
.mobile-cta .btn{ padding:.85rem .6rem; font-size:.95rem; }

/* ---------- 23. Page hero (sous-pages) ---------- */
.page-hero{ position:relative; padding:9rem 0 3.5rem; color:#fff; overflow:hidden; }
.page-hero__bg{ position:absolute; inset:0; z-index:-2; }
.page-hero__bg img{ width:100%; height:100%; object-fit:cover; }
.page-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,26,38,.85), rgba(8,26,38,.72)); }
.page-hero h1{ color:#fff; max-width:760px; }
.page-hero p{ color:#cfe3ef; max-width:600px; margin-top:.8rem; }
.breadcrumb{ display:flex; gap:.5rem; align-items:center; font-size:.86rem; color:#a9cadd; margin-bottom:1rem; }
.breadcrumb a:hover{ color:#fff; }
.breadcrumb span{ opacity:.6; }

/* prose for SEO text blocks */
.prose p{ margin-bottom:1rem; color:var(--ink); }
.prose h2{ margin:2rem 0 1rem; }
.prose h3{ margin:1.6rem 0 .7rem; }
.prose ul{ margin:0 0 1rem 0; display:flex; flex-direction:column; gap:.5rem; }
.prose ul li{ display:flex; gap:.6rem; }
.prose ul li::before{ content:""; width:.55rem; height:.55rem; background:var(--gold); border-radius:50%; margin-top:.55rem; flex:0 0 auto; }

/* badges row */
.badges{ display:flex; flex-wrap:wrap; gap:.7rem; }
.badge{ display:inline-flex; align-items:center; gap:.5rem; background:var(--blue-soft); color:var(--blue-700); border-radius:999px; padding:.5rem .95rem; font-family:var(--ff-head); font-weight:500; font-size:.88rem; }
.badge svg{ width:1.05rem; height:1.05rem; }

/* ---------- 24. Reveal animations ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } *{ scroll-behavior:auto; } }

/* utility */
.mt-1{margin-top:1rem;} .mt-2{margin-top:2rem;} .center{text-align:center;}
.divider{ height:1px; background:var(--line); border:0; margin-block:2.5rem; }

/* ---------- 25. Responsive ---------- */
@media (max-width:1024px){
  .services-grid,.gallery,.reviews,.segments,.process{ grid-template-columns:repeat(2,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .footer__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .nav,.header-phone{ display:none; }
  .burger{ display:flex; }
  .split,.split.reverse{ grid-template-columns:1fr; }
  .split.reverse .split__media{ order:0; }
  .form-wrap{ grid-template-columns:1fr; }
  .mobile-cta{ display:grid; }
  .floaters{ bottom:84px; }
  .hero{ min-height:auto; padding-top:7rem; padding-bottom:3rem; }
}
@media (max-width:600px){
  body{ font-size:16px; }
  .services-grid,.gallery,.reviews,.segments,.process,.stats,.grid-2,.grid-3,.grid-4,.form-row{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr; }
  .split__media .floater{ left:50%; transform:translateX(-50%); bottom:-30px; }
  .hero__cta .btn,.cta-band .btns .btn{ width:100%; }
  .reviews-head{ flex-direction:column; align-items:flex-start; }
}
