/* Martin & Fils — FORMULE ESSENTIEL (690 €).
   Même design system que la formule Pro (tokens.css partagés, Bitter self-hosted,
   CTA à ombre dure, rayons dosés) — compositions volontairement simples :
   one-page, logotype typographique (pas de blason dessiné), avis en grille
   (pas de carrousel), formulaire simple (pas d'estimateur à barème). */

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{font-family:var(--f-texte);color:var(--encre);background:var(--papier);line-height:1.6;font-size:17px}
img{max-width:100%;display:block}
a{color:inherit}
.w{max-width:1120px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:var(--f-titre);color:var(--nuit);line-height:1.15}
h2{font-size:clamp(26px,3.4vw,36px);margin-bottom:10px}
section{padding:54px 0}

/* bandeau démo */
.demo-band{background:#3E2723;color:#F5F1EA;text-align:center;font-size:13px;padding:7px 14px}
.demo-band a{color:#E8A87C;font-weight:700}

/* icônes (data-URI — reprises du système) */
.ic{display:inline-block;width:26px;height:26px;background:var(--cuivre);flex:none;
  -webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.ic.blanc{background:#fff}
.ic.nuit{background:var(--nuit)}
.ic.s20{width:20px;height:20px}

/* nav : logotype typographique + téléphone */
.sticky{position:sticky;top:0;z-index:50;background:#fff;border-bottom:var(--filet-fin);box-shadow:0 1px 0 rgba(18,48,63,.06)}
.sticky .w{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:10px;padding-bottom:10px}
.marque{display:flex;flex-direction:column;text-decoration:none}
.marque b{font-family:var(--f-titre);font-weight:900;font-size:20px;letter-spacing:.6px;color:var(--nuit);display:flex;align-items:center;gap:7px}
.marque b svg{flex:none}
.marque small{font-size:12px;color:var(--cuivre);letter-spacing:.4px}
.tel-top{display:inline-flex;align-items:center;gap:8px;background:var(--nuit);color:#fff;text-decoration:none;font-family:var(--f-titre);font-weight:700;font-size:17px;padding:10px 18px;border-radius:8px;box-shadow:0 4px 0 rgba(12,34,46,.35)}
.tel-top .ic{background:#fff}

/* hero */
.hero{background:linear-gradient(115deg,var(--nuit) 0%,var(--nuit-2) 100%);color:var(--papier);padding:56px 0 60px}
.hero .w{display:grid;grid-template-columns:1.1fr .9fr;gap:38px;align-items:center}
.estampille{display:inline-block;border:1px solid var(--cuivre-vif);color:var(--cuivre-clair,#E8A87C);font-size:12.5px;letter-spacing:2px;font-weight:700;padding:5px 12px;margin-bottom:16px}
.hero h1{color:#fff;font-size:clamp(30px,4.4vw,48px);margin-bottom:14px}
.hero h1 em{font-style:normal;color:var(--cuivre-vif)}
.hero .sub{font-size:18px;color:#D8D2C6;max-width:52ch}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--f-titre);font-weight:700;font-size:17px;text-decoration:none;padding:13px 22px;border-radius:8px}
.btn.c{background:var(--cuivre-vif);color:var(--nuit-2);box-shadow:0 5px 0 rgba(0,0,0,.35)}
.btn.b{background:transparent;color:#fff;border:1.5px solid rgba(245,241,234,.5)}
.hero .cadre{border:3px solid var(--cuivre);box-shadow:10px 10px 0 rgba(0,0,0,.25)}
.hero .cadre img{width:100%;height:340px;object-fit:cover}
.hero .legende{font-size:13px;color:#B8AFA2;margin-top:10px}

/* bandeau garanties */
.garantie{background:var(--cuivre);color:#fff;padding:12px 0}
.garantie .w{display:flex;gap:10px 26px;justify-content:center;flex-wrap:wrap;font-size:15.5px}
.garantie b{font-family:var(--f-titre)}

/* services */
.sec-head p{color:#6b645a;max-width:64ch}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.svc{background:#fff;border:var(--filet-fin);border-top:3px solid var(--cuivre);padding:20px 18px}
.svc h3{font-size:18.5px;display:flex;align-items:center;gap:9px;margin-bottom:8px}
.svc p{font-size:15px;color:#4a4640}
.svc .p{display:block;margin-top:10px;font-family:var(--f-titre);font-weight:700;color:var(--cuivre)}

/* zone */
.zone{background:#fff;border-top:var(--filet-fin);border-bottom:var(--filet-fin)}
.zone .villes{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.zone .villes span{border:1px solid var(--ligne);padding:5px 13px;border-radius:6px;font-size:15px;color:var(--encre)}
.zone .villes .hub{color:var(--cuivre);border-color:var(--cuivre);font-weight:700}

/* avis — grille simple */
.avis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.avisj{background:#fff;border:var(--filet-fin);padding:18px;box-shadow:0 6px 0 rgba(22,35,43,.08)}
.avisj .qui{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.avisj .qui img{width:42px;height:42px;border-radius:50%;object-fit:cover}
.avisj .ini{width:42px;height:42px;border-radius:50%;background:var(--nuit);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--f-titre);font-weight:700}
.avisj .n{font-family:var(--f-titre);font-weight:700;font-size:15.5px;color:var(--nuit);display:flex;flex-direction:column}
.avisj .n .e{font-weight:400;font-size:12.5px;color:#8a8177}
.avisj .et{color:#E8A13A;letter-spacing:2px;font-size:14px}
.avisj p{font-size:15px;color:#4a4640;margin-top:6px}

/* la maison */
.maison .w{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:center}
.maison img{border:var(--filet-fin);box-shadow:8px 8px 0 rgba(22,35,43,.10)}
.maison p{color:#4a4640;margin-top:10px}

/* FAQ */
.faq details{background:#fff;border:var(--filet-fin);margin-top:10px}
.faq summary{cursor:pointer;font-family:var(--f-titre);font-weight:700;color:var(--nuit);padding:14px 18px;list-style-position:inside}
.faq .r{padding:0 18px 14px;color:#4a4640;font-size:15.5px}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:24px}
.coord h3{font-size:18px;display:flex;align-items:center;gap:8px;margin-bottom:6px}
.coord p{color:#4a4640;font-size:15.5px}
.tel-big{font-family:var(--f-titre);font-weight:900;font-size:30px;color:var(--nuit);text-decoration:none}
form.demo{background:#fff;border:var(--filet-fin);padding:20px}
form.demo label{display:block;font-family:var(--f-titre);font-weight:700;font-size:14.5px;color:var(--nuit);margin:12px 0 4px}
form.demo input,form.demo textarea{width:100%;border:1px solid var(--ligne);background:var(--papier);padding:10px 12px;font-family:var(--f-texte);font-size:16px}
form.demo textarea{min-height:84px;resize:vertical}
form.demo button{margin-top:16px;width:100%;border:0;cursor:pointer;background:var(--cuivre-vif);color:var(--nuit-2);font-family:var(--f-titre);font-weight:700;font-size:17px;padding:13px;border-radius:8px;box-shadow:0 5px 0 rgba(0,0,0,.2)}
.note-form{font-size:13px;color:#8a8177;margin-top:10px}

/* pages légales */
.titre-page{background:linear-gradient(115deg,var(--nuit) 0%,var(--nuit-2) 100%);color:#fff;padding:36px 0}
.titre-page h1{color:#fff;font-size:clamp(26px,3.6vw,38px)}
.titre-page h1 em{font-style:normal;color:var(--cuivre-vif)}
.titre-page p{color:#D8D2C6;margin-top:8px;max-width:60ch}
.legal{max-width:760px}
.legal h2{font-size:21px;margin:26px 0 8px;padding-top:18px;border-top:var(--filet-fin)}
.legal h2:first-child{margin-top:0;padding-top:0;border-top:0}
.legal p{color:#4a4640}
.legal a{color:var(--cuivre);font-weight:700}

/* final + footer + telbar */
.final{background:var(--rouge);color:#fff;text-align:center;padding:46px 0}
.final h2{color:#fff}
.final .tel{display:inline-block;font-family:var(--f-titre);font-weight:900;font-size:clamp(26px,4vw,40px);color:#fff;text-decoration:none;border:2px solid rgba(255,255,255,.65);padding:12px 26px;margin-top:14px}
.final p{margin-top:10px;color:#F3D9CF;font-size:15px}
footer{background:var(--nuit-2);color:#B8AFA2;font-size:14px;padding:26px 0 90px}
footer .w{display:flex;flex-direction:column;gap:10px}
footer a{color:#D8D2C6}
.telbar{display:none}

/* reveals (classes posées PAR JS, failsafe 1400 ms côté JS) */
.js .rv-init{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.js .rv-in{opacity:1;transform:none}
.js .hero .w{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
.js.entree .hero .w{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .js .rv-init,.js .hero .w{opacity:1;transform:none;transition:none}
}

/* responsive */
@media (max-width:880px){
  section{padding:40px 0}
  .hero .w{grid-template-columns:1fr;gap:26px}
  .hero .cadre img{height:250px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .avis-grid{grid-template-columns:1fr}
  .maison .w{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .telbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--rouge);text-align:center;padding:12px 10px;box-shadow:0 -3px 12px rgba(0,0,0,.25)}
  .telbar a{color:#fff;font-family:var(--f-titre);font-weight:700;font-size:18px;text-decoration:none}
}
@media (max-width:430px){
  .marque b{font-size:17px}
  .marque small{font-size:11px}
  .tel-top{font-size:15px;padding:9px 13px}
  .tel-top .txt{display:none}
  .hero h1{font-size:29px}
  .svc-grid{grid-template-columns:1fr}
  .svc h3{flex-wrap:wrap}
}

/* ============================================================
   V2 — PASSE MOBILE (02/08 — verdict Saadou : polices un peu plus
   petites sur téléphone, et le doublon téléphone du bas retiré,
   il est déjà dans la navbar. ≤ 760 px uniquement.)
   ============================================================ */
@media (max-width:760px){
  body{font-size:15.5px}
  .demo-band{font-size:11px}
  .hero h1{font-size:26px}
  .hero .sub{font-size:15px}
  h2{font-size:22px}
  .estampille{font-size:11px;letter-spacing:1.4px}
  .svc h3{font-size:16.5px}
  .svc p{font-size:14px}
  .garantie .w{font-size:13.5px}
  .btn{font-size:15.5px;padding:11px 16px}
  .avisj p{font-size:14px}
  .avisj .n{font-size:14px}
  .faq .r{font-size:14.5px}
  .coord p{font-size:14.5px}
  .tel-big{font-size:25px}
  .zone .villes span{font-size:13.5px}
  .final .tel{font-size:24px;padding:10px 18px}
  .final p{font-size:13.5px}
  footer{font-size:12.5px;padding:26px 0}
  .telbar{display:none}
}
.ic-tel{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-phone-call%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cpath d=%22M13 2a9 9 0 0 1 9 9%22 /%3E %3Cpath d=%22M13 6a5 5 0 0 1 5 5%22 /%3E %3Cpath d=%22M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384%22 /%3E %3C/svg%3E")}
.ic-goutte{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-droplets%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cpath d=%22M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z%22 /%3E %3Cpath d=%22M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97%22 /%3E %3C/svg%3E")}
.ic-flamme{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-flame%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cpath d=%22M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4%22 /%3E %3C/svg%3E")}
.ic-cle{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-wrench%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cpath d=%22M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z%22 /%3E %3C/svg%3E")}
.ic-bouclier{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-shield-check%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cpath d=%22M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z%22 /%3E %3Cpath d=%22m9 12 2 2 4-4%22 /%3E %3C/svg%3E")}
.ic-pin{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-map-pin%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cpath d=%22M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0%22 /%3E %3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22 /%3E %3C/svg%3E")}
.ic-timer{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-timer%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cline x1=%2210%22 x2=%2214%22 y1=%222%22 y2=%222%22 /%3E %3Cline x1=%2212%22 x2=%2215%22 y1=%2214%22 y2=%2211%22 /%3E %3Ccircle cx=%2212%22 cy=%2214%22 r=%228%22 /%3E %3C/svg%3E")}
.ic-fleche{--ic:url("data:image/svg+xml,%3Csvg class=%22lucide lucide-chevron-right%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 %3E %3Cpath d=%22m9 18 6-6-6-6%22 /%3E %3C/svg%3E")}
