/* Feuille du réseau. Le squelette (hero + téléphone, tarifs, formulaire, barre d'appel) est commun ;
   chaque thème .t-* règle couleurs, typographie, formes, et les variantes .hero-*, .tarifs-* font la mise en page. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{--bg:#fff;--ink:#1c2126;--muted:#59636e;--c:#1f4e79;--on-c:#fff;--btn:var(--c);--on-btn:#fff;--alt:#f4f6f8;--line:#e3e6ea;--card:#fff;
  --r:8px;--rb:8px;--fh:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--fb:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--hw:700;
  --hero-bg:var(--c);--hero-ink:#fff;--top-bg:#fff;--top-ink:var(--ink);--foot-bg:#1c2126;--logo-in:#fff;
  margin:0;font:17px/1.6 var(--fb);color:var(--ink);background:var(--bg);padding-bottom:64px}
.wrap{max-width:1040px;margin:0 auto;padding:0 18px}
a{color:var(--c)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--fh);font-weight:var(--hw);line-height:1.15;text-wrap:balance}
h1{font-size:clamp(1.75rem,5vw,2.7rem);margin:0 0 .45em}
h2{font-size:clamp(1.35rem,3vw,1.75rem);margin:0 0 .8em}
h3{font-size:1.08rem;margin:0 0 .3em}
.small{font-size:.875rem;color:var(--muted)}
.eyebrow{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin:0 0 .8em;opacity:.85}

.top{background:var(--top-bg);color:var(--top-ink);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:60px}
.logo{font-family:var(--fh);font-weight:700;color:inherit;text-decoration:none;display:flex;align-items:center;gap:10px;line-height:1.15}
.logo svg{color:var(--c);flex:none}
.tel-top{font-weight:700;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums;color:inherit}

.btn{display:inline-block;border:0;border-radius:var(--rb);background:var(--btn);color:var(--on-btn);font:inherit;font-weight:700;padding:14px 24px;text-decoration:none;cursor:pointer}
.btn-tel{font-size:1.5rem;font-variant-numeric:tabular-nums;padding:14px 28px;white-space:nowrap}

/* hero : texte toujours avant l'image sur mobile, le téléphone reste au-dessus de la ligne de flottaison */
.hero{background:var(--hero-bg);color:var(--hero-ink);padding:40px 0}
.hero a:not(.btn){color:inherit}
.hero .small{color:inherit;opacity:.85;margin:.9em 0 0}
.lead{font-size:1.15rem;margin:0 0 1.2em;max-width:36em}
.hero-in{display:grid;gap:28px;align-items:center}
.hero-img img{width:100%;border-radius:var(--r);aspect-ratio:3/2;object-fit:cover}
@media(min-width:860px){
  .hero-split .hero-in{grid-template-columns:1.05fr 1fr}
  .hero-split-inverse .hero-in{grid-template-columns:1fr 1.05fr}
  .hero-split-inverse .hero-img{order:-1}
  .hero-bloc .hero-in{grid-template-columns:1fr 1fr}
}
.hero-overlay{position:relative;padding:72px 0;isolation:isolate}
.hero-overlay .hero-img{position:absolute;inset:0;z-index:-1}
.hero-overlay .hero-img img{height:100%;border-radius:0;aspect-ratio:auto}
.hero-overlay .hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,24,43,.92) 0%,rgba(9,24,43,.78) 55%,rgba(9,24,43,.35) 100%)}
.hero-overlay .hero-in{display:block}
.hero-centre{text-align:center;padding-bottom:0}
.hero-centre .lead{margin-inline:auto}
.hero-centre .hero-img{margin-bottom:-40px}
.hero-centre .hero-img img{aspect-ratio:21/9;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.hero-centre + .sec{padding-top:88px}
.hero-bandeau{padding-bottom:0}
.hero-bandeau .hero-img{margin-bottom:-56px}
.hero-bandeau .hero-img img{aspect-ratio:21/8;border:6px solid var(--bg)}
.hero-bandeau + .sec{padding-top:100px}
.hero-bloc{padding:0}
.hero-bloc .hero-in{max-width:none;padding:0;gap:0;align-items:stretch}
.hero-bloc .hero-txt{padding:44px 18px;max-width:560px;margin-left:auto;width:100%}
.hero-bloc .hero-img img{height:100%;border-radius:0;min-height:260px}
@media(min-width:860px){.hero-bloc .hero-txt{padding:64px 40px 64px 18px}.hero-bloc .hero-img{clip-path:polygon(12% 0,100% 0,100% 100%,0 100%)}}

.sec{padding:48px 0}
.alt{background:var(--alt)}
.duo{display:grid;gap:28px;align-items:center}
.duo figure{margin:0}
.duo figure img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover}
@media(min-width:860px){.duo{grid-template-columns:1.25fr 1fr}.duo-gauche figure{order:-1}.duo-gauche{grid-template-columns:1fr 1.25fr}}
.prose{max-width:720px}
.prose li{margin-bottom:.5em}

/* tarifs : trois présentations, mêmes lignes */
.tarifs{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.tarifs th,.tarifs td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left;font-weight:400}
.tarifs tr:nth-child(even) th,.tarifs tr:nth-child(even) td{background:var(--alt)}
.tarifs td{text-align:right;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--c)}
.tarifs tr:last-child th,.tarifs tr:last-child td{border-bottom:0}
.tarifs-cartes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.tarifs-cartes li{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:var(--r);padding:16px}
.tarifs-cartes strong{display:block;font-family:var(--fh);font-size:1.5rem;color:var(--c);font-variant-numeric:tabular-nums;line-height:1.2}
.tarifs-cartes span{font-size:.95rem}
.tarifs-liste{margin:0;max-width:760px}
.tarifs-liste div{display:flex;align-items:baseline;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.tarifs-liste dt{flex:1;display:flex;align-items:baseline;gap:10px}
.tarifs-liste dt::after{content:"";flex:1;border-bottom:2px dotted var(--line);transform:translateY(-4px)}
.tarifs-liste dd{margin:0;font-family:var(--fh);font-weight:700;font-size:1.15rem;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--c)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;text-decoration:none;color:inherit}
a.card h3{color:var(--c)}
.card p{margin:0;font-size:.95rem}
.preuves{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.preuves li{padding-left:16px;border-left:3px solid var(--c)}
.preuves strong{display:block;font-family:var(--fh)}
.preuves span{font-size:.95rem}
details{border-bottom:1px solid var(--line);padding:13px 0}
summary{font-weight:700;cursor:pointer}
details p{margin:.6em 0 0}

.sec-form{background:var(--alt)}
.form{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;max-width:640px;color:var(--ink)}
.form label{display:block;font-weight:600;font-size:.95rem;margin-bottom:14px}
.form input[type=text],.form input[type=tel],.form input[type=email],.form select{display:block;width:100%;margin-top:4px;padding:12px;font:inherit;border:1px solid #9aa3ad;border-radius:min(var(--r),10px);background:#fff;color:#1c2126}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.form .opt{font-weight:400;color:var(--muted)}
.form .consent{font-weight:400;font-size:.875rem}
.hp{position:absolute;left:-9999px}
.foot{background:var(--foot-bg);color:#d5dadf;padding:30px 0;font-size:.95rem}
.foot a{color:#fff}
.foot .small{color:#b4bcc4}
.callbar{position:fixed;left:0;right:0;bottom:0;background:var(--btn);color:var(--on-btn);text-align:center;font-weight:700;font-size:1.1rem;padding:16px 12px calc(16px + env(safe-area-inset-bottom));text-decoration:none;z-index:6;box-shadow:0 -2px 8px rgba(0,0,0,.2)}
:focus-visible{outline:3px solid #f0a500;outline-offset:2px}
@media(min-width:760px){.callbar{display:none}body{padding-bottom:0}}
@media(max-width:480px){.form .row{grid-template-columns:1fr}.btn-tel{font-size:1.35rem;padding:14px 20px}}

/* ---------- thèmes ---------- */
.t-atelier{--bg:#faf6ef;--ink:#2b211a;--muted:#6b5d52;--c:#a8481f;--alt:#f1e7d8;--line:#e0d3c1;--card:#fffdf9;--r:2px;--rb:2px;
  --fh:Georgia,"Times New Roman",serif;--hw:700;--hero-bg:#f1e7d8;--hero-ink:#2b211a;--top-bg:#faf6ef;--foot-bg:#2b211a}
.t-atelier h2{border-bottom:2px solid var(--c);padding-bottom:.3em;display:inline-block}
.t-atelier .eyebrow{color:var(--c)}

.t-tech{--ink:#0f1c2e;--c:#12355b;--btn:#f2b705;--on-btn:#0f1c2e;--alt:#eef2f7;--r:10px;--rb:10px;--hw:800;
  --top-bg:#12355b;--top-ink:#fff;--foot-bg:#0b2038;--logo-in:#12355b}
.t-tech .logo svg{color:#f2b705}
.t-tech .top{border-bottom:0}
.t-tech h1{letter-spacing:-.02em}
.t-tech .eyebrow{color:#f2b705}
.t-tech .card{border:0;box-shadow:0 1px 3px rgba(15,28,46,.12),0 6px 16px rgba(15,28,46,.06)}

.t-calme{--bg:#f3f7f6;--ink:#17302b;--muted:#52665f;--c:#0e6b5c;--alt:#e4eeeb;--line:#d3e0dc;--r:18px;--rb:999px;
  --fh:"Avenir Next","Segoe UI",system-ui,sans-serif;--fb:"Avenir Next","Segoe UI",system-ui,sans-serif;--hw:600;
  --hero-bg:#fff;--hero-ink:#17302b;--foot-bg:#17302b}
.t-calme .tel-top{border:2px solid var(--c);color:var(--c);border-radius:999px;padding:6px 14px}
.t-calme .eyebrow{color:var(--c);text-transform:none;letter-spacing:0;font-size:.95rem}
.t-calme .preuves li{border-left:0;padding:14px 16px;background:var(--card);border-radius:var(--r)}

.t-marine{--ink:#16303a;--c:#1d5c73;--btn:#e9c46a;--on-btn:#16303a;--alt:#eef4f6;--line:#d6e2e7;--r:6px;--rb:6px;
  --fh:"Trebuchet MS","Lucida Grande",system-ui,sans-serif;--top-bg:#1d5c73;--top-ink:#fff;--foot-bg:#123b4a;--hero-bg:#1d5c73}
.t-marine .logo svg{color:#e9c46a}
.t-marine .top{border-bottom:1px solid rgba(255,255,255,.2)}
.t-marine .eyebrow{color:#e9c46a}
.t-marine .tarifs-cartes li{border-top:0;border-left:4px solid var(--c)}

.t-provence{--bg:#fbfaf3;--ink:#2c2f1f;--muted:#62664f;--c:#5b6b2f;--alt:#f0efdf;--line:#dfddc6;--card:#fffffa;--r:14px;--rb:14px;
  --fh:Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif;--hw:600;--hero-bg:#5b6b2f;--foot-bg:#2c2f1f;--top-bg:#fbfaf3}
.t-provence .btn{--btn:#fbfaf3;--on-btn:#3d4a1c}
.t-provence .form .btn,.t-provence .callbar{--btn:#5b6b2f;--on-btn:#fff}
.t-provence .eyebrow{font-style:italic;text-transform:none;letter-spacing:0;font-size:1rem;font-family:var(--fh)}
.t-provence h2{text-align:center}
.t-provence .prose h2,.t-provence .duo h2,.t-provence .form h2{text-align:left}

.t-direct{--ink:#111;--muted:#555;--c:#c8102e;--alt:#f2f2f2;--line:#111;--r:0;--rb:0;--hw:800;
  --fh:"Arial Narrow","Helvetica Neue",Arial,sans-serif;--hero-bg:#111;--foot-bg:#111;--logo-in:#fff}
.t-direct h1,.t-direct h2{text-transform:uppercase;letter-spacing:.01em}
.t-direct .top{border-bottom:4px solid #111}
.t-direct .logo svg{color:#111}
.t-direct .logo span{text-transform:uppercase;letter-spacing:.03em}
.t-direct .eyebrow{color:#ff5a72}
.t-direct .card{border-width:2px}
.t-direct .tarifs-liste dd{font-size:1.45rem}
.t-direct .tarifs-liste dt::after{border-bottom-style:solid;border-bottom-width:1px}
.t-direct .form{border-width:2px}
