/* ==========================================================================
   SeePath — feuille commune des pages secondaires (offre / tarifs / contact).
   La home garde son CSS en ligne : elle porte des effets qui n'existent que
   la-bas (WebGL, scroll horizontal epingle). Ici on ne garde que le socle.
   ========================================================================== */
:root{
  --cream:#FAF6F0; --cream-2:#F2ECE3; --dark:#14100E; --dark-2:#1C1714;
  --ink:#14100E; --muted:#6B6259; --muted-d:#A79C90;
  --red:#FF2D2D; --red-deep:#D70015;
  --line:rgba(20,16,14,.12); --line-d:rgba(250,246,240,.14);
  --f-display:"Fraunces",Georgia,serif;
  --f-body:"Inter Tight",system-ui,-apple-system,sans-serif;
  --pad-x:clamp(20px,5vw,84px); --sec:clamp(64px,8vw,120px); --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--red);color:#fff}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--pad-x)}
section{padding:var(--sec) 0;position:relative}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.05;letter-spacing:-.022em}
h1{font-size:clamp(34px,5.6vw,66px)}
h2{font-size:clamp(26px,3.8vw,44px)}
h3{font-size:clamp(19px,2vw,23px)}
p{max-width:64ch}
.eyebrow{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--red);display:flex;align-items:center;gap:12px}
.eyebrow:before{content:"";width:26px;height:1px;background:var(--red);flex:0 0 auto}
.lead{font-size:clamp(17px,1.8vw,20px);color:var(--muted)}
.num{font-family:var(--f-display);font-size:13px;letter-spacing:.1em;color:var(--red);font-weight:600}
.it{font-style:italic;font-weight:400}
.opaque-2{background:var(--cream-2)}
.dark{background:var(--dark);color:var(--cream)}
.dark p,.dark .lead{color:var(--muted-d)}
.dark h1,.dark h2,.dark h3{color:var(--cream)}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 28px;border-radius:100px;font-weight:600;font-size:16px;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s,transform .18s;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 14px 34px -14px rgba(255,45,45,.8)}
.btn-primary:hover{background:var(--red-deep)}
.btn-ghost{border-color:var(--line);color:var(--ink);background:#fff}
.btn-ghost:hover{background:var(--cream-2)}
.dark .btn-ghost{border-color:var(--line-d);color:var(--cream);background:transparent}
.dark .btn-ghost:hover{background:rgba(250,246,240,.12)}


/* Le blanc sur le rouge de marque #FF2D2D ne donne que 3,71:1 — sous le seuil
   AA de 4,5:1 pour un libelle de bouton. Les boutons pleins passent donc au
   rouge profond #D70015 (5,87:1). Le #FF2D2D reste sur les aplats, les traits
   et les grandes surfaces, ou il n'y a pas de texte a lire par-dessus. */
.btn-primary{background:var(--red-deep)}
.btn-primary:hover{background:#B3000F}


/* Sur fond sombre le rouge profond retombe a 3,3:1 : c'est le rouge vif qui
   porte, l'inverse du fond clair. Chaque surface prend donc sa nuance. */
.dark .eyebrow,.dark .num,.step .num,.dark .eyebrow:before{color:var(--red)}
.dark .eyebrow:before{background:var(--red)}

/* header + menu */
header{position:sticky;top:0;z-index:110;background:rgba(250,246,240,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{position:relative;display:flex;align-items:center}
.brand .wm{height:22px;width:auto;transition:opacity .2s}
.brand .wm.light{position:absolute;left:0;top:0;opacity:0}
body.menu-open .brand .wm.dark{opacity:0}
body.menu-open .brand .wm.light{opacity:1}
nav.desk{display:none;gap:30px;font-size:15px;color:var(--muted);font-weight:500}
nav.desk a{position:relative}
nav.desk a:after{content:"";position:absolute;left:0;bottom:-5px;height:1px;width:0;background:var(--red);transition:width .28s}
nav.desk a:hover{color:var(--ink)}
nav.desk a:hover:after,nav.desk a[aria-current]:after{width:100%}
nav.desk a[aria-current]{color:var(--ink)}
.hd .btn{padding:11px 22px;font-size:15px}
.hd-cta{display:none}
@media(min-width:960px){nav.desk{display:flex}.hd-cta{display:inline-flex}}
.hd-right{display:flex;align-items:center;gap:14px}
.burger{width:44px;height:44px;margin-right:-10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:0;cursor:pointer}
.burger i{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .2s,background .2s}
body.menu-open .burger i{background:var(--cream)}
body.menu-open .burger i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
body.menu-open .burger i:nth-child(2){opacity:0}
body.menu-open .burger i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
body.menu-open{overflow:hidden}
body.menu-open header{background:transparent;backdrop-filter:none;border-color:transparent}
body.menu-open .hd-cta,body.menu-open nav.desk{opacity:0;pointer-events:none}
.hd-cta,nav.desk{transition:opacity .3s}
#menu{position:fixed;inset:0;z-index:105;background:var(--dark);color:var(--cream);display:flex;flex-direction:column;justify-content:center;padding:100px var(--pad-x) 40px;transform:translateY(-100%);transition:transform .55s cubic-bezier(.7,0,.2,1);visibility:hidden}
body.menu-open #menu{transform:none;visibility:visible}
.menu-nav{display:grid;gap:6px;max-width:1200px;margin:0 auto;width:100%}
.menu-nav a{font-family:var(--f-display);font-size:clamp(34px,7vw,74px);font-weight:600;letter-spacing:-.025em;line-height:1.12;display:flex;align-items:baseline;gap:16px;padding:6px 0;transition:color .25s}
.menu-nav a .k{font-family:var(--f-body);font-size:12px;letter-spacing:.16em;color:var(--red);font-weight:600;flex:0 0 auto}
.menu-nav a:hover,.menu-nav a[aria-current]{color:var(--red)}
.menu-sub{max-width:1200px;margin:44px auto 0;width:100%;display:flex;flex-wrap:wrap;gap:12px 26px;font-size:15px;color:var(--muted-d)}
.menu-sub a:hover{color:var(--cream)}
.menu-foot{max-width:1200px;margin:36px auto 0;width:100%;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid var(--line-d);padding-top:24px}
.menu-foot .tel{font-family:var(--f-display);font-size:20px}


/* Le rouge de marque #FF2D2D tombe a 3,4:1 sur le creme : insuffisant pour du
   petit texte (WCAG AA demande 4,5:1). Les petits libelles rouges passent donc
   au rouge profond, qui monte a 5,4:1. Le #FF2D2D reste sur les boutons, les
   traits et les grandes surfaces, ou le seuil est plus bas. */
.eyebrow,.num{color:var(--red-deep)}
.eyebrow:before{background:var(--red-deep)}
.menu-nav a .k{color:var(--red)}
.form-card p,.form-card .form-note,.form-card label{color:var(--muted)}
.form-card .form-note{color:var(--muted)}
.serp-flag,.ad-card .flag,.price .notice,.notice{color:var(--muted)}
.serp-flag,.ad-card .flag{color:var(--red-deep)}

/* blocs */
.grid-2{display:grid;gap:20px}
@media(min-width:860px){.grid-2{grid-template-columns:1fr 1fr}}
.grid-3{display:grid;gap:20px}
@media(min-width:860px){.grid-3{grid-template-columns:repeat(3,1fr)}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(24px,3vw,36px);box-shadow:0 30px 60px -50px rgba(20,16,14,.45)}
.card h3{margin:10px 0 18px}
.list{list-style:none;display:grid;gap:11px}
.list li{position:relative;padding-left:23px;font-size:16px;color:var(--muted)}
.list li:before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:2px;background:var(--red)}
.dark .list li{color:var(--muted-d)}
.notice{margin-top:18px;font-size:14px;color:var(--muted);border-left:2px solid var(--red);padding-left:13px}
.page-head{padding-top:clamp(52px,6vw,86px);padding-bottom:clamp(40px,5vw,64px)}
.page-head h1{margin:20px 0 20px}
.crumb{font-size:13px;color:var(--muted)}
.crumb a:hover{color:var(--ink)}

/* prix */
.prices{display:grid;gap:20px;margin-top:40px;align-items:start}
@media(min-width:940px){.prices{grid-template-columns:1.14fr .86fr}}
.price{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(26px,3.2vw,42px)}
.price.main{border:1.5px solid var(--ink);box-shadow:0 50px 90px -60px rgba(20,16,14,.55)}
.price .amount{font-family:var(--f-display);font-size:clamp(40px,6vw,62px);font-weight:600;letter-spacing:-.035em;margin:16px 0 4px;line-height:1}
.price .amount small{font-size:17px;font-family:var(--f-body);color:var(--muted);font-weight:500;letter-spacing:0}
.price .sub{color:var(--muted);font-size:15.5px;margin-bottom:24px}
.price .list{margin-bottom:28px}
.price .btn{width:100%}

/* etapes */
.steps{display:grid;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:36px}
@media(min-width:860px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{background:var(--cream);padding:28px 24px}
.step p{font-size:16px;color:var(--muted);margin-top:12px}

/* faq */
details{border-bottom:1px solid var(--line);padding:22px 0}
details summary{cursor:pointer;font-weight:600;font-size:17.5px;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
details summary::-webkit-details-marker{display:none}
details summary:after{content:"+";color:var(--red);font-size:26px;line-height:1;font-weight:400}
details[open] summary:after{content:"–"}
details p{margin-top:12px;color:var(--muted)}

/* formulaire */
.form-card{background:var(--cream);color:var(--ink);border-radius:var(--radius);padding:clamp(24px,3.4vw,40px);box-shadow:0 60px 100px -60px rgba(0,0,0,.85)}
.field{margin-bottom:15px}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:7px}
.field input,.field select{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:16px;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(255,45,45,.15)}
.form-card .btn{width:100%;margin-top:8px}
.form-note{font-size:13px;color:var(--muted);margin-top:13px;text-align:center}
.form-ok{display:none;text-align:center;padding:28px 6px}
.form-ok img{width:46px;height:46px;border-radius:13px;margin:0 auto 16px}
.form-ok b{display:block;font-family:var(--f-display);font-size:26px;margin-bottom:9px}
.cta-grid{display:grid;gap:clamp(32px,5vw,56px)}
@media(min-width:1000px){.cta-grid{grid-template-columns:1fr 1fr;align-items:center}}

/* footer */
footer{background:var(--dark);color:var(--muted-d);padding:56px 0;font-size:15px}
.ft{display:flex;flex-wrap:wrap;gap:22px;justify-content:space-between;align-items:center}
.ft a:hover{color:var(--cream)}
.ft-links{display:flex;flex-wrap:wrap;gap:20px}
footer .wm{height:22px;width:auto}
.social{display:flex;gap:10px;margin-top:16px}
.social a{width:38px;height:38px;border:1px solid var(--line-d);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,color .2s;color:var(--muted-d)}
.social a:hover{background:var(--red);border-color:var(--red);color:#fff}
.social svg{width:17px;height:17px;fill:currentColor}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition-duration:.01ms!important}
}
