/* ==========================================================================
   BLK NETTOYAGE — feuille de style commune à toutes les pages du site.
   Une seule modification ici change l'apparence de TOUTES les pages.
   Ne pas séparer ce fichier des pages .html : il doit rester dans le même dossier.
   ========================================================================== */



/* ===========================================================================
   BLK NETTOYAGE — feuille de style
   Palette : papier chaud + encre profonde + vert Jura + sable
   =========================================================================== */
:root{
  --paper:      #F7F5F1;
  --paper-2:    #EFEBE4;
  --card:       #FFFFFF;
  --ink:        #14191A;
  --ink-soft:   #4A5354;
  --ink-faint:  #8A9192;
  --brand:      #1F4B44;
  --brand-deep: #143430;
  --brand-soft: #E7EFEC;
  --sand:       #C8A15E;
  --line:       rgba(20,25,26,0.10);
  --line-soft:  rgba(20,25,26,0.06);

  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 20px;

  --shadow-sm: 0 1px 2px rgba(20,25,26,.05), 0 4px 14px -8px rgba(20,25,26,.14);
  --shadow-md: 0 2px 6px rgba(20,25,26,.05), 0 20px 44px -22px rgba(20,25,26,.28);

  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --display: 'Archivo', var(--sans);
  --wrap: 1200px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.62;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{font-family:var(--display); margin:0; line-height:1.08; letter-spacing:-0.025em; font-weight:700;}
p{margin:0;}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 28px;}

:focus-visible{outline:3px solid var(--brand); outline-offset:3px; border-radius:2px;}

.eyebrow{
  font-size:12px; font-weight:600; letter-spacing:.17em; text-transform:uppercase;
  color:var(--brand); display:flex; align-items:center; gap:10px; margin:0 0 18px;
}
.eyebrow::before{content:""; width:26px; height:1.5px; background:var(--sand); flex:none;}
.eyebrow.center{justify-content:center;}

/* ---- Placeholders : tout ce qui reste à remplir est visible d'un coup d'œil */
.todo{
  display:inline-block; background:#FFF3D6; color:#7A5A12;
  border:1px dashed #D9AE4E; border-radius:var(--r-sm);
  padding:1px 8px; font-size:.86em; font-weight:600; white-space:nowrap;
  font-family:var(--sans); letter-spacing:.01em;
}
.todo-dark{background:rgba(255,255,255,.12); color:#F3E4BE; border-color:rgba(243,228,190,.5);}

/* ---- Bandeau maquette (SUPPRIMER CE BLOC AVANT MISE EN LIGNE) ------------ */
.draft-bar{
  background:var(--ink); color:var(--paper); font-size:13.5px;
  padding:11px 28px; text-align:center; letter-spacing:.01em;
}
.draft-bar strong{color:var(--sand); font-weight:600;}

/* ---- Boutons ------------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--sans); font-size:15px; font-weight:600; letter-spacing:.005em;
  padding:15px 26px; border-radius:var(--r-sm); border:1.5px solid transparent;
  cursor:pointer; transition:transform .16s ease, background .16s ease, box-shadow .16s ease, color .16s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--brand); color:#fff; box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--brand-deep); box-shadow:var(--shadow-md);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{background:var(--card); border-color:var(--ink); box-shadow:var(--shadow-sm);}
.btn-light{background:#fff; color:var(--brand-deep);}
.btn-light:hover{background:var(--paper-2);}
.btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.4);}
.btn-outline-light:hover{background:rgba(255,255,255,.12); border-color:#fff;}
.btn-sm{padding:11px 19px; font-size:14px;}
.btn .arrow{transition:transform .16s ease;}
.btn:hover .arrow{transform:translateX(3px);}

/* ---- En-tête ------------------------------------------------------------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(247,245,241,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.header-row{display:flex; align-items:center; gap:26px; height:78px;}
.brand{display:flex; flex-direction:column; align-items:flex-start; margin-right:auto; color:var(--brand);}
.brand-logo{
  font-family:var(--display); font-weight:800; font-size:40px; line-height:.82;
  letter-spacing:-.055em; display:inline-flex; align-items:baseline;
}
.brand-logo i{
  display:inline-block; width:.2em; height:.2em; margin-left:.07em;
  background:var(--sand); border-radius:.035em;
}
.brand-sub{
  font-family:var(--sans); font-weight:600; font-size:8.5px; line-height:1;
  letter-spacing:.34em; text-transform:uppercase; margin-top:7px; white-space:nowrap;
}

.nav{display:flex; align-items:center; gap:4px;}
.nav a{
  font-size:15px; font-weight:500; color:var(--ink-soft); padding:9px 13px;
  border-radius:var(--r-sm); transition:color .15s ease, background .15s ease; white-space:nowrap;
}
.nav a:hover{color:var(--ink); background:var(--paper-2);}
.header-actions{display:flex; align-items:center; gap:12px;}
.header-phone{display:flex; align-items:center; gap:8px; font-weight:600; font-size:15px; white-space:nowrap;}

.burger{
  display:none; width:44px; height:44px; border:1px solid var(--line); background:var(--card);
  border-radius:var(--r-sm); cursor:pointer; padding:0; align-items:center; justify-content:center;
}
.burger span{display:block; width:18px; height:1.8px; background:var(--ink); position:relative;}
.burger span::before,.burger span::after{content:""; position:absolute; left:0; width:18px; height:1.8px; background:var(--ink);}
.burger span::before{top:-6px;} .burger span::after{top:6px;}

.mobile-nav{display:none; border-top:1px solid var(--line-soft); background:var(--paper); padding:10px 0 22px;}
.mobile-nav.open{display:block;}
.mobile-nav a{display:block; padding:14px 28px; font-size:16px; font-weight:500; border-bottom:1px solid var(--line-soft);}
.mobile-nav .btn{margin:18px 28px 0; width:calc(100% - 56px);}

/* ---- Hero ---------------------------------------------------------------- */
.hero{position:relative; background:var(--brand-deep); color:#fff; overflow:hidden;}
.hero-media{position:absolute; inset:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; opacity:.42; filter:saturate(.75);}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(103deg, var(--brand-deep) 4%, rgba(20,52,48,.90) 42%, rgba(20,52,48,.42) 100%);
}
.hero-inner{position:relative; padding:104px 0 92px; max-width:820px;}
.hero .eyebrow{color:#B7D3CB;}
.hero .eyebrow::before{background:var(--sand);}
.hero h1{font-size:clamp(40px, 6.4vw, 76px); font-weight:800; letter-spacing:-.035em;}
.hero h1 em{font-style:normal; color:var(--sand);}
.hero-lead{font-size:clamp(17px,1.9vw,20.5px); color:rgba(255,255,255,.82); margin-top:26px; max-width:610px; line-height:1.6;}
.hero-cta{display:flex; flex-wrap:wrap; gap:13px; margin-top:38px;}

/* ---- Bandeau de réassurance --------------------------------------------- */
.trust{background:var(--card); border-bottom:1px solid var(--line-soft);}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft);}
.trust-item{background:var(--card); padding:34px 30px;}
.trust-item h3{font-family:var(--sans); font-size:15.5px; font-weight:600; letter-spacing:0; margin-bottom:6px;}
.trust-item p{font-size:14.5px; color:var(--ink-soft); line-height:1.55;}
.trust-icon{width:22px; height:22px; margin-bottom:14px; stroke:var(--brand); stroke-width:1.7; fill:none;}

/* ---- Sections ------------------------------------------------------------ */
section{scroll-margin-top:90px;}
.section{padding:104px 0;}
.section-head{max-width:660px; margin-bottom:56px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(30px,4vw,46px); font-weight:700;}
.section-head p{margin-top:20px; font-size:18px; color:var(--ink-soft);}

/* ---- Prestations --------------------------------------------------------- */
.services{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
.service{
  background:var(--card); border:1px solid var(--line-soft); border-radius:var(--r-lg);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.service:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--line);}
.service-photo{position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--paper-2);}
.service-photo img{width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.6,.2,1);}
.service:hover .service-photo img{transform:scale(1.045);}
.service-num{
  position:absolute; top:16px; left:16px; background:rgba(20,25,26,.72); color:#fff;
  backdrop-filter:blur(6px); font-size:11.5px; font-weight:600; letter-spacing:.13em;
  padding:6px 11px; border-radius:100px;
}
.service-body{padding:30px 30px 32px; display:flex; flex-direction:column; flex:1;}
.service-body h3{font-size:24px; margin-bottom:12px;}
.service-body > p{color:var(--ink-soft); font-size:16px;}
.service-list{list-style:none; margin:20px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px;}
.service-list li{
  font-size:13.5px; font-weight:500; color:var(--brand);
  background:var(--brand-soft); border-radius:100px; padding:6px 13px;
}
.service-foot{margin-top:auto; padding-top:24px;}
.service-link{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15px; color:var(--brand);
  border-bottom:1.5px solid transparent; transition:border-color .16s ease, gap .16s ease;
}
.service-link:hover{border-color:var(--brand); gap:12px;}

/* ---- Interventions délicates --------------------------------------------- */
.delicate{background:var(--brand-deep); color:#fff;}
.delicate-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:74px; align-items:center;}
.delicate .eyebrow{color:#B7D3CB;}
.delicate h2{font-size:clamp(28px,3.4vw,42px);}
.delicate-lead{color:rgba(255,255,255,.8); font-size:18px; margin-top:22px;}
.commit{list-style:none; padding:0; margin:36px 0 0; display:grid; gap:2px;}
.commit li{display:flex; gap:15px; align-items:flex-start; padding:17px 0; border-top:1px solid rgba(255,255,255,.14);}
.commit li:last-child{border-bottom:1px solid rgba(255,255,255,.14);}
.commit svg{width:19px; height:19px; flex:none; margin-top:3px; stroke:var(--sand); stroke-width:2; fill:none;}
.commit span{font-size:16px; color:rgba(255,255,255,.9); line-height:1.55;}
.delicate-photo{border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/5; box-shadow:0 40px 80px -40px rgba(0,0,0,.7);}
.delicate-photo img{width:100%; height:100%; object-fit:cover;}

/* ---- Tarifs -------------------------------------------------------------- */
.pricing{display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:start;}
.price-card{background:var(--card); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:38px 34px;}
.price-card.accent{background:var(--brand); color:#fff; border-color:var(--brand);}
.price-card h3{font-size:23px; margin-bottom:8px;}
.price-card .sub{font-size:15px; color:var(--ink-soft); margin-bottom:26px;}
.price-card.accent .sub{color:rgba(255,255,255,.78);}
.price-row{display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:15px 0; border-top:1px solid var(--line-soft);}
.price-row:first-of-type{border-top:none;}
.price-row .label{font-size:15.5px;}
.price-card.accent .price-row{border-color:rgba(255,255,255,.16);}
.price-note{font-size:15.5px; line-height:1.65;}
.price-card.accent .price-note{color:rgba(255,255,255,.85);}
.price-card .btn{margin-top:28px; width:100%;}

/* ---- Zone ---------------------------------------------------------------- */
.zone{position:relative; overflow:hidden; background:var(--paper-2);}
.zone-bg{position:absolute; inset:0;}
.zone-bg img{width:100%; height:100%; object-fit:cover; opacity:.14;}
.zone-inner{position:relative;}
.zone-cols{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:8px;}
.zone-card{background:var(--card); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:34px;}
.zone-card h3{font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--brand); margin-bottom:20px;}
.town-list{display:flex; flex-wrap:wrap; gap:9px; list-style:none; padding:0; margin:0;}
.town-list li{font-size:15px; border:1px solid var(--line); border-radius:100px; padding:7px 15px; background:var(--paper);}
.zone-foot{margin-top:26px; font-size:15.5px; color:var(--ink-soft);}

/* ---- Avis (encart vide, assumé) ------------------------------------------ */
.reviews-empty{
  border:2px dashed rgba(20,25,26,.22); border-radius:var(--r-lg); background:var(--card);
  padding:64px 40px; text-align:center; max-width:760px; margin:0 auto;
}
.reviews-empty .stars{display:flex; gap:6px; justify-content:center; margin-bottom:22px;}
.reviews-empty .stars svg{width:22px; height:22px; fill:none; stroke:var(--ink-faint); stroke-width:1.6;}
.reviews-empty h3{font-size:24px; margin-bottom:14px;}
.reviews-empty p{color:var(--ink-soft); font-size:16.5px; max-width:520px; margin:0 auto;}

/* ---- Contact ------------------------------------------------------------- */
.contact{background:var(--card); border-top:1px solid var(--line-soft);}
.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:start;}
.info-list{list-style:none; padding:0; margin:34px 0 0; display:grid; gap:2px;}
.info-list li{display:flex; gap:16px; align-items:flex-start; padding:19px 0; border-top:1px solid var(--line-soft);}
.info-list li:last-child{border-bottom:1px solid var(--line-soft);}
.info-list svg{width:19px; height:19px; flex:none; margin-top:3px; stroke:var(--brand); stroke-width:1.7; fill:none;}
.info-list .k{font-size:12.5px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:4px;}
.info-list .v{font-size:16.5px; font-weight:500;}

.form{background:var(--paper); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:38px 36px;}
.field{margin-bottom:20px;}
.field label{display:block; font-size:13.5px; font-weight:600; margin-bottom:9px; letter-spacing:.01em;}
.field .req{color:var(--sand);}
.field input,.field select,.field textarea{
  width:100%; font-family:var(--sans); font-size:16px; color:var(--ink);
  background:var(--card); border:1.5px solid var(--line); border-radius:var(--r-sm);
  padding:14px 15px; transition:border-color .15s ease, box-shadow .15s ease;
}
.field textarea{min-height:130px; resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--brand); box-shadow:0 0 0 4px rgba(31,75,68,.10);
}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-note{
  display:flex; gap:12px; align-items:flex-start; margin-top:6px; padding:15px 17px;
  background:#FFF3D6; border:1px dashed #D9AE4E; border-radius:var(--r-sm);
  font-size:14px; color:#6B4E0E; line-height:1.55;
}
.form-note svg{width:17px; height:17px; flex:none; margin-top:2px; stroke:#B98A28; stroke-width:2; fill:none;}
.form .btn{margin-top:22px; width:100%;}

/* ---- Pied de page -------------------------------------------------------- */
.site-footer{background:var(--ink); color:rgba(255,255,255,.62); padding:70px 0 34px; font-size:15px;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:56px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.11);}
.site-footer .brand{color:var(--paper);}
.footer-about{margin-top:20px; max-width:380px; line-height:1.65;}
.site-footer h4{font-family:var(--sans); font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:19px;}
.footer-links{list-style:none; padding:0; margin:0; display:grid; gap:11px;}
.footer-links a:hover{color:#fff;}
.legal-box{
  margin-top:34px; padding:17px 19px; border:1px dashed rgba(216,174,78,.55);
  border-radius:var(--r-sm); background:rgba(216,174,78,.08);
  font-size:14px; color:#EBD9AE; line-height:1.6;
}
.footer-bottom{padding-top:26px; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:13.5px; color:rgba(255,255,255,.42);}

/* ---- Barre d'action mobile ---------------------------------------------- */
.mobile-bar{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:90;
  gap:10px; padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:rgba(247,245,241,.96); backdrop-filter:blur(12px);
  border-top:1px solid var(--line); box-shadow:0 -6px 22px -14px rgba(20,25,26,.35);
}
.mobile-bar .btn{flex:1;}
.mobile-call{
  flex:1.3; display:flex; align-items:center; justify-content:center; gap:8px;
  border:1.5px solid var(--line); border-radius:var(--r-sm); background:var(--card);
  font-size:clamp(13px, 3.9vw, 15px); font-weight:600; color:var(--ink); padding:15px 8px;
  white-space:nowrap;
}
.mobile-call svg{width:17px; height:17px; flex:none;}

/* ---- Lien d'évitement (clavier / lecteur d'écran) ------------------------ */
.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--brand); color:#fff; padding:13px 20px; border-radius:0 0 var(--r-sm) 0;
  font-weight:600; font-size:15px;
}
.skip:focus{left:0;}

/* ---- Apparition au défilement -------------------------------------------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.6,.2,1), transform .7s cubic-bezier(.2,.6,.2,1);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
  *{animation-duration:.01ms !important; transition-duration:.01ms !important;}
}

/* ---- Adaptatif ----------------------------------------------------------- */
/* Tablette et petit écran : les liens passent dans le menu, le téléphone reste sur une ligne (06/11/2026) */
@media (max-width:1300px){
  .nav{display:none;}
  .burger{display:flex;}
}
@media (max-width:1080px){
  .delicate-grid{grid-template-columns:1fr; gap:48px;}
  .delicate-photo{aspect-ratio:16/10; max-height:400px;}
  .contact-grid{grid-template-columns:1fr; gap:52px;}
  .trust-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr; gap:40px;}
}
@media (max-width:860px){
  body{font-size:16px;}
  .wrap{padding:0 20px;}
  .nav,.header-actions .header-phone,.header-actions .btn{display:none;}
  .burger{display:flex;}
  .section{padding:74px 0;}
  .hero-inner{padding:76px 0 68px;}
  .services,.pricing,.zone-cols{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .form{padding:28px 22px;}
  .price-card,.zone-card{padding:28px 24px;}
  .service-body{padding:26px 24px 28px;}
  .footer-grid{grid-template-columns:1fr; gap:36px;}
  .draft-bar{font-size:12.5px; padding:10px 20px;}
  .mobile-bar{display:flex;}
  body{padding-bottom:82px;}
  .site-footer{padding-bottom:20px;}
}
@media (max-width:520px){
  .trust-grid{grid-template-columns:1fr;}
  .hero-cta .btn{width:100%;}
}

/* ===== Styles propres à la page Nettoyage textile ======================== */
.subhero{position:relative; background:var(--brand-deep); color:#fff; overflow:hidden;}
.subhero-media{position:absolute; inset:0;}
.subhero-media img{width:100%; height:100%; object-fit:cover; opacity:.38;}
.subhero-media::after{content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, var(--brand-deep) 8%, rgba(20,52,48,.88) 48%, rgba(20,52,48,.45) 100%);}
.subhero-inner{position:relative; padding:74px 0 68px; max-width:760px;}
.subhero h1{font-size:clamp(34px,5vw,60px); font-weight:800; letter-spacing:-.035em;}
.subhero p.lead{font-size:clamp(16.5px,1.8vw,19.5px); color:rgba(255,255,255,.82); margin-top:22px; max-width:600px;}
.crumb{display:flex; align-items:center; gap:9px; font-size:14px; color:rgba(255,255,255,.62); margin-bottom:24px;}
.crumb a{border-bottom:1px solid rgba(255,255,255,.3);}
.crumb a:hover{color:#fff; border-color:#fff;}

.method{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start;}
.method-steps{list-style:none; padding:0; margin:0; counter-reset:st;}
.method-steps li{position:relative; padding:0 0 26px 62px; counter-increment:st;}
.method-steps li::before{
  content:counter(st,decimal-leading-zero); position:absolute; left:0; top:-2px;
  width:42px; height:42px; border-radius:50%; background:var(--brand-soft); color:var(--brand);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:13px;
}
.method-steps li:not(:last-child)::after{
  content:""; position:absolute; left:21px; top:46px; bottom:6px; width:1.5px; background:var(--line);
}
.method-steps h3{font-size:19px; margin-bottom:7px;}
.method-steps p{font-size:15.5px; color:var(--ink-soft);}
.method-aside{background:var(--card); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:34px; position:sticky; top:110px;}
.method-aside h3{font-size:21px; margin-bottom:14px;}
.method-aside p{font-size:16px; color:var(--ink-soft);}
.method-aside dl{margin:24px 0 0; display:grid; gap:0;}
.method-aside dt{font-size:12.5px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-faint); padding-top:16px; border-top:1px solid var(--line-soft);}
.method-aside dd{margin:5px 0 16px; font-size:16px; font-weight:500;}

.supports{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}

/* Tarifs avec remise crédit d'impôt */
.tarif-table{background:var(--card); border:1px solid var(--line-soft); border-radius:var(--r-lg); overflow:hidden; max-width:820px;}
.tarif-group{
  padding:17px 30px 13px; background:var(--paper); border-bottom:1px solid var(--line-soft);
  font-family:var(--sans); font-size:11.5px; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:var(--ink-faint);
}
.tarif-line{
  display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center;
  padding:22px 30px; border-bottom:1px solid var(--line-soft);
}
.tarif-line:last-child{border-bottom:none;}
.tarif-line .what{font-size:17px; font-weight:600;}
.tarif-line .what small{display:block; font-weight:400; font-size:14px; color:var(--ink-soft); margin-top:3px;}
.prices{display:flex; align-items:baseline; gap:13px; white-space:nowrap;}
.prices .gross{
  font-size:17px; font-weight:500; color:var(--ink-faint);
  text-decoration:line-through; text-decoration-thickness:1.5px;
  text-decoration-color:rgba(200,80,60,.75);
}
.prices .val{font-family:var(--display); font-size:27px; font-weight:700; color:var(--brand); letter-spacing:-.025em;}
.prices .star{font-size:13px; color:var(--brand); font-weight:600; align-self:flex-start; margin-left:-8px;}
.prices .devis{font-family:var(--display); font-size:20px; font-weight:600; color:var(--ink-soft);}
.tarif-note{margin:0 auto; max-width:820px; font-size:12.5px; line-height:1.65; color:var(--ink-faint);}
.tarif-note strong{color:var(--ink-soft); font-weight:600;}
.faq-list{max-width:820px; margin:0 auto;}
.faq-item{border-top:1px solid var(--line); }
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-item summary{
  cursor:pointer; list-style:none; padding:24px 44px 24px 0; position:relative;
  font-family:var(--display); font-size:19px; font-weight:600; letter-spacing:-.015em;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%);
  font-family:var(--sans); font-size:24px; font-weight:400; color:var(--brand); transition:transform .2s ease;
}
.faq-item[open] summary::after{content:"\2212";}
.faq-item summary:hover{color:var(--brand);}
.faq-item p{padding:0 40px 26px 0; color:var(--ink-soft); font-size:16px;}

.cta-band{background:var(--brand-deep); color:#fff; text-align:center;}
.cta-band h2{font-size:clamp(28px,3.6vw,44px);}
.cta-band p{color:rgba(255,255,255,.8); font-size:18px; margin:20px auto 34px; max-width:560px;}
.cta-band .hero-cta{justify-content:center;}

@media (max-width:1080px){ .method{grid-template-columns:1fr; gap:44px;} .method-aside{position:static;} }
@media (max-width:860px){
  .supports{grid-template-columns:1fr;}
  .tarif-line{padding:19px 22px; gap:6px;}
  .prices .val{font-size:24px;}
  .tarif-group{padding:15px 22px 11px;}
  .subhero-inner{padding:54px 0 50px;}
  .method-aside{padding:26px 22px;}
}


/* ==========================================================================
   RÉSERVATION EN LIGNE — module commun à toutes les pages
   ========================================================================== */
.booking{max-width:980px; margin:0 auto;}
.book-step{margin-bottom:40px;}
.book-step-head{display:flex; align-items:baseline; gap:12px; margin-bottom:6px;}
.book-num{
  width:27px; height:27px; flex:none; border-radius:50%; background:var(--brand); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-size:12px; font-weight:700;
}
.book-step h3{font-size:23px;}
.book-hint{font-size:15px; color:var(--ink-soft); margin:0 0 22px 39px;}

/* Cartes de sélection */
.pres-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:12px;}
.pres-card{
  position:relative; display:flex; align-items:center; gap:12px; cursor:pointer;
  background:var(--card); border:1.5px solid var(--line); border-radius:var(--r-md);
  padding:17px 18px; font-size:15.5px; font-weight:600; line-height:1.3;
  transition:border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.pres-card:hover{border-color:var(--ink-faint);}
.pres-card input{position:absolute; opacity:0; width:0; height:0;}
.pres-tick{
  width:21px; height:21px; flex:none; border-radius:5px; border:1.5px solid var(--line);
  background:var(--paper); display:flex; align-items:center; justify-content:center;
  transition:background .16s ease, border-color .16s ease;
}
.pres-tick svg{width:13px; height:13px; stroke:#fff; stroke-width:3; fill:none; opacity:0; transition:opacity .12s ease;}
.pres-card.on{border-color:var(--brand); background:var(--brand-soft); box-shadow:var(--shadow-sm);}
.pres-card.on .pres-tick{background:var(--brand); border-color:var(--brand);}
.pres-card.on .pres-tick svg{opacity:1;}
.pres-card input:focus-visible + .pres-tick{outline:3px solid var(--brand); outline-offset:2px;}
.pres-card small{display:block; font-weight:400; font-size:13px; color:var(--ink-soft); margin-top:2px;}

/* Détail dépliable d'une catégorie — glisse à l'ouverture au lieu d'apparaître d'un coup */
.pres-detail{
  margin-top:0; max-height:0; opacity:0; border-width:0;
  background:var(--card); border:0 solid var(--line-soft);
  border-radius:var(--r-md); overflow:hidden;
  transition:max-height .26s cubic-bezier(.23,1,.32,1), opacity .2s ease,
             margin-top .26s ease, border-width .2s ease;
}
.pres-detail.is-open{
  margin-top:14px; max-height:600px; opacity:1; border-width:1px;
}
.pres-detail-head{
  padding:14px 22px; background:var(--paper); border-bottom:1px solid var(--line-soft);
  font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint);
}
.pres-line{
  display:grid; grid-template-columns:1fr auto auto; gap:16px; align-items:center;
  padding:15px 22px; border-bottom:1px solid var(--line-soft);
}
.pres-line:last-child{border-bottom:none;}
.pres-line .nm{font-size:15.5px; font-weight:500;}
.pres-line .nm small{display:block; font-weight:400; font-size:13px; color:var(--ink-soft); margin-top:2px;}
.pres-line .pr{display:flex; align-items:baseline; gap:9px; white-space:nowrap;}
.pres-line .pr .g{font-size:14px; color:var(--ink-faint); text-decoration:line-through; text-decoration-color:rgba(200,80,60,.7);}
.pres-line .pr .n{font-family:var(--display); font-size:18px; font-weight:700; color:var(--brand);}
.pres-line .pr .d{font-size:14.5px; font-weight:600; color:var(--ink-soft);}

.qty{display:flex; align-items:center; gap:2px; border:1.5px solid var(--line); border-radius:var(--r-sm); background:var(--paper);}
.qty button{
  width:34px; height:36px; border:none; background:none; cursor:pointer;
  font-size:17px; line-height:1; color:var(--ink-soft); font-family:var(--sans);
}
.qty button:hover{color:var(--brand);}
.qty input{
  width:38px; height:36px; border:none; background:none; text-align:center;
  font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink);
  -moz-appearance:textfield;
}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}

/* Récapitulatif */
.book-summary{
  background:var(--brand-deep); color:#fff; border-radius:var(--r-lg); padding:28px 30px; margin-bottom:34px;
}
.book-summary .empty{color:rgba(255,255,255,.66); font-size:16px;}
.sum-lines{list-style:none; padding:0; margin:0 0 20px;}
.sum-lines li{
  display:flex; justify-content:space-between; gap:16px; padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.13); font-size:15.5px;
}
.sum-lines li span:last-child{white-space:nowrap; font-weight:600;}
.sum-total{display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding-top:16px;}
.sum-total .lbl{font-size:15px; color:rgba(255,255,255,.75);}
.sum-total .amt{display:flex; align-items:baseline; gap:12px;}
.sum-total .g{font-size:18px; color:rgba(255,255,255,.5); text-decoration:line-through;}
.sum-total .n{font-family:var(--display); font-size:34px; font-weight:800; color:var(--sand); letter-spacing:-.03em;}
.sum-devis{margin-top:10px; font-size:14px; color:rgba(255,255,255,.7);}

.offer-band{
  margin-top:20px; padding:16px 19px; border-radius:var(--r-md);
  background:rgba(216,174,78,.14); border:1px dashed rgba(216,174,78,.6);
  display:flex; align-items:center; gap:13px; font-size:15px; color:#F0DFB4;
}
.offer-band[hidden]{display:none;}
.offer-band svg{width:19px; height:19px; flex:none; stroke:var(--sand); stroke-width:2; fill:none;}
.offer-band strong{color:#fff;}

.book-note{
  display:flex; gap:12px; align-items:flex-start; margin-top:20px; padding:15px 17px;
  background:#FFF3D6; border:1px dashed #D9AE4E; border-radius:var(--r-sm);
  font-size:14px; color:#6B4E0E; line-height:1.55;
}
.book-note svg{width:17px; height:17px; flex:none; margin-top:2px; stroke:#B98A28; stroke-width:2; fill:none;}

.contact-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft);
  border:1px solid var(--line-soft); border-radius:var(--r-md); overflow:hidden; margin-bottom:44px;
}
.contact-strip > div{background:var(--card); padding:20px 22px;}
.contact-strip > .wide{grid-column:1 / -1;}
.contact-strip .k{font-size:11.5px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:6px;}
.contact-strip .v{font-size:16px; font-weight:500;}

@media (max-width:860px){
  .pres-grid{grid-template-columns:1fr 1fr;}
  .pres-card{padding:14px; font-size:14.5px;}
  .pres-line{grid-template-columns:1fr auto; gap:10px 12px; padding:15px;}
  .pres-line .qty{grid-column:2; grid-row:1 / span 2;}
  .book-summary{padding:22px 20px;}
  .sum-total .n{font-size:29px;}
  .contact-strip{grid-template-columns:1fr 1fr;}
  .book-hint{margin-left:0;}
}
@media (max-width:520px){
  .pres-grid{grid-template-columns:1fr;}
  .contact-strip{grid-template-columns:1fr;}
}

/* ==========================================================================
   OFFRE MULTI-PRESTATIONS — bandeau visible sur toutes les pages
   ========================================================================== */
.offer-hero{background:var(--paper); padding:0 0 84px;}

/* La carte remonte pour chevaucher le bas du hero : c'est l'ombre qui sépare,
   pas la couleur. Elle se lit comme un objet posé sur la page. */
.offer-inner{
  position:relative; z-index:5; margin-top:-72px; overflow:hidden;
  background:var(--brand-deep); color:#fff; border-radius:var(--r-lg);
  display:grid; grid-template-columns:auto 1fr; gap:38px; align-items:center;
  padding:44px 48px;
  /* Filet clair : sans lui, les angles hauts de la carte se perdent dans le
     vert du hero pendant le chevauchement. */
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 44px 80px -42px rgba(10,30,27,.62), 0 2px 10px rgba(20,25,26,.09);
}
.offer-inner::before{
  content:""; position:absolute; right:-70px; top:-110px; width:330px; height:330px;
  border-radius:50%; background:radial-gradient(circle, rgba(216,174,78,.22), transparent 68%);
  pointer-events:none;
}
.offer-inner > *{position:relative;}
.offer-badge{
  flex:none; width:132px; height:132px; border-radius:50%;
  background:var(--sand); color:var(--brand-deep);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-family:var(--display); line-height:1; box-shadow:0 18px 40px -18px rgba(0,0,0,.6);
}
.offer-badge .pct{font-size:40px; font-weight:800; letter-spacing:-.04em;}
.offer-badge .lbl{font-family:var(--sans); font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; margin-top:6px; line-height:1.35; text-align:center;}
.offer-badge .lbl sup{font-size:.72em; vertical-align:super; text-transform:lowercase;}
.offer-hero .eyebrow{color:#B7D3CB;}
.offer-hero h2{font-size:clamp(25px,3.2vw,38px); margin-bottom:16px;}
.offer-hero h2 em{font-style:normal; color:var(--sand);}
.offer-rules{list-style:none; padding:0; margin:0 0 22px; display:grid; gap:9px;}
.offer-rules li{display:flex; gap:12px; align-items:flex-start; font-size:16.5px; color:rgba(255,255,255,.88); line-height:1.5;}
.offer-rules svg{width:18px; height:18px; flex:none; margin-top:4px; stroke:var(--sand); stroke-width:2.4; fill:none;}
.offer-rules strong{color:#fff;}
.offer-fine{font-size:13.5px; color:rgba(255,255,255,.55); line-height:1.6;}

@media (max-width:860px){
  .offer-hero{padding-bottom:58px;}
  .offer-inner{grid-template-columns:1fr; gap:22px; padding:32px 24px; margin-top:-52px; border-radius:var(--r-md);}
  .offer-badge{width:104px; height:104px;}
  .offer-badge .pct{font-size:32px;}
  .offer-rules li{font-size:15.5px;}
}
}

/* Ligne remisée dans le récapitulatif de réservation */
.sum-lines li .amt-wrap{display:flex; align-items:baseline; gap:9px; white-space:nowrap;}
.sum-lines li .was{font-size:13.5px; color:rgba(255,255,255,.45); text-decoration:line-through;}
.cut{
  display:inline-block; background:var(--sand); color:var(--brand-deep);
  border-radius:100px; font-size:10.5px; font-weight:800; letter-spacing:.05em;
  padding:3px 8px; margin-left:8px; vertical-align:middle;
}
.sum-save{
  margin-top:14px; padding:12px 16px; border-radius:var(--r-sm);
  background:rgba(216,174,78,.16); border:1px solid rgba(216,174,78,.4);
  font-size:14.5px; color:#F0DFB4;
}
.sum-save strong{color:#fff;}

/* Frais de déplacement (décidés par Nassim le 06/11/2026 : gratuit < 30 km, +10 € > 30 km, +20 € > 50 km) */
.sum-depl{margin:14px 0 0; font-size:13.5px; line-height:1.5; color:rgba(255,255,255,.72);}
.depl-note{max-width:820px; margin:18px 0 0; font-size:14px; line-height:1.55; color:var(--ink-soft);}
/* Un bloc marqué « caché » reste caché, même s'il a sa propre mise en page (ex. « Vous payez » vide) — 06/11/2026 */
[hidden]{display:none !important;}

/* Réservation : lieu de l'intervention, particulier ou non, détail TVA (06/11/2026) */
.chez-vous{border:0; margin:4px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px;}
.chez-vous legend{font-size:13.5px; font-weight:600; margin-bottom:10px; padding:0; width:100%;}
.chip{display:inline-flex; align-items:center; gap:9px; cursor:pointer; background:var(--card);
  border:1.5px solid var(--line); border-radius:999px; padding:10px 16px; font-size:14.5px; font-weight:500; line-height:1.3;}
.chip input{accent-color:var(--brand); width:17px; height:17px; margin:0;}
.chip:has(input:checked){border-color:var(--brand); background:var(--brand-soft);}
.lieu-info{margin:16px 0 0; padding:12px 16px; border-radius:var(--r-sm); background:var(--brand-soft);
  color:var(--brand-deep); font-size:14.5px; line-height:1.5;}
.sum-detail{margin:0 0 4px; font-size:13.5px; line-height:1.5; color:rgba(255,255,255,.72);}
.sum-note{margin:12px 0 0; font-size:13px; line-height:1.5; color:rgba(255,255,255,.66);}
.tarif-line .ht{display:block; margin-top:3px; font-size:12.5px; font-weight:500; color:var(--ink-faint);}
