/* ==========================================================================
   Thadeus — site marketing
   Langage visuel repris des maquettes (assets/mockups/claude).
   Identité dédiée Thadeus : clair/chaud, vert minéral clinique.
   ========================================================================== */
:root{
  --site:#FAFAF7;
  --surface:#FFFFFF;
  --ink:#1B2420;
  --ink-2:#3D4842;
  --muted:#6C746E;
  --line:#E4E4DC;
  --line-2:#EDEDE6;

  --green:#2F5D4E;
  --green-700:#244A3E;
  --green-soft:#E8F0EB;
  --green-tint:#D2E2D8;

  --slate:#5C7C99;
  --slate-soft:#E6EDF3;
  --terra:#BE5E3A;
  --terra-soft:#F4E3DA;
  --amber:#B0852F;
  --amber-soft:#F2E9D2;

  --fill-closed:#E7E7E0;
  --fill-1:#E0EBE2;
  --fill-2:#BFD8C6;
  --fill-3:#8FBDA1;
  --fill-4:#5C9A7C;
  --fill-5:#2F5D4E;

  --display:'Inter Tight', system-ui, sans-serif;
  --sans:'Inter', system-ui, sans-serif;

  --container:1180px;
  --shadow-2:0 10px 26px -16px rgba(27,36,32,.35);
  --shadow-3:0 22px 50px -24px rgba(27,36,32,.45);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:84px; }
body{
  margin:0; background:var(--site); color:var(--ink);
  font-family:var(--sans); -webkit-font-smoothing:antialiased; line-height:1.5;
}
img,svg{ display:block; }
a{ color:inherit; text-decoration:none; }
.svg-i{ display:inline-block; vertical-align:middle; }

.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }

/* ---------- atomes ---------- */
.kicker{ font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--green); margin:0 0 12px; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:8px; font-weight:600; font-family:var(--sans); cursor:pointer; border:1px solid transparent; white-space:nowrap; transition:transform .12s ease, box-shadow .12s ease, background .12s ease; }
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--green); color:#fff; height:44px; padding:0 22px; font-size:14px; box-shadow:0 2px 8px rgba(47,93,78,.28); }
.btn-primary:hover{ background:var(--green-700); box-shadow:0 6px 18px rgba(47,93,78,.34); }
.btn-primary.sm{ height:34px; padding:0 15px; font-size:13px; }
.btn-ghost{ background:transparent; color:var(--green); border-color:var(--green-tint); height:44px; padding:0 22px; font-size:14px; }
.btn-ghost:hover{ background:var(--green-soft); }
.btn-white{ background:#fff; color:var(--green); height:44px; padding:0 22px; border-radius:8px; font-weight:600; font-size:14px; display:inline-flex; align-items:center; gap:8px; border:none; }
.btn-white:hover{ box-shadow:0 8px 22px rgba(0,0,0,.18); }
.btn-line{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.5); height:44px; padding:0 22px; border-radius:8px; font-weight:600; font-size:14px; display:inline-flex; align-items:center; gap:8px; }
.btn-line:hover{ background:rgba(255,255,255,.12); }
.dot{ width:6px; height:6px; border-radius:50%; display:inline-block; }
.proofs{ display:flex; flex-wrap:wrap; gap:9px; }
.proofs span{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:500; color:var(--ink-2); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:7px 14px; }
.pill{ font-size:12px; font-weight:500; color:var(--ink-2); background:var(--green-soft); border:1px solid var(--green-tint); border-radius:999px; padding:4px 12px; }
.sync-badge{ display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 8px; border-radius:999px; background:var(--green-soft); color:var(--green); font-weight:700; font-size:11px; letter-spacing:.04em; }

/* ---------- header / nav ---------- */
.site-header{ position:sticky; top:0; z-index:50; background:rgba(250,250,247,.88); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.site-header .container{ height:64px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand{ font-family:var(--display); font-weight:700; font-size:20px; color:var(--green); letter-spacing:-.02em; display:flex; align-items:center; gap:9px; }
.brand .mark{ width:20px; height:20px; border-radius:6px; background:var(--green); display:inline-block; position:relative; }
.brand .mark::after{ content:""; position:absolute; inset:5px 5px auto 5px; height:2px; background:#fff; box-shadow:0 5px 0 #fff; border-radius:1px; }
.navlinks{ display:flex; align-items:center; gap:26px; }
.navlinks a{ font-size:14px; font-weight:500; color:var(--ink-2); }
.navlinks a:hover{ color:var(--green); }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-toggle{ display:none; width:42px; height:42px; border:1px solid var(--line); border-radius:9px; background:var(--surface); cursor:pointer; align-items:center; justify-content:center; color:var(--ink); }

/* ---------- hero (produit en fond + scrim, texte posé dessus — brief §12) ---------- */
.hero{ position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.hero .container{ position:relative; z-index:2; }
.hero-copy{ max-width:560px; padding:84px 0 92px; }
.hero h1{ font-family:var(--display); font-weight:700; font-size:clamp(34px,4.4vw,52px); line-height:1.06; letter-spacing:-.025em; color:var(--ink); margin:0 0 18px; }
.hero h1 em{ font-style:normal; color:var(--green); }
.hero .sub{ font-size:17px; line-height:1.55; color:var(--ink-2); margin:0 0 26px; max-width:500px; }
.hero .cta{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:28px; }
.hero-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.hero-peek{ position:absolute; top:62px; right:-70px; width:640px; transform:rotate(-1deg); filter:drop-shadow(0 26px 44px rgba(27,36,32,.20)); }
.hero .scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, var(--site) 32%, rgba(250,250,247,.88) 50%, rgba(250,250,247,.45) 72%, rgba(250,250,247,.12) 100%); }

/* ---------- captures produit ---------- */
.cap-card{ background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-3); }
.cap-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 16px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.cap-head .t{ font-family:var(--display); font-weight:600; font-size:15px; color:var(--ink); }
.cap-head .tools{ display:flex; gap:9px; align-items:center; }
.seg{ display:flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.seg span{ font-size:12px; font-weight:500; padding:5px 13px; color:var(--muted); border-right:1px solid var(--line); }
.seg span:last-child{ border-right:none; }
.seg span.on{ background:var(--green); color:#fff; }

/* vue semaine */
.wk{ display:grid; grid-template-columns:42px repeat(6,1fr); }
.wk.day{ grid-template-columns:42px 1fr; }
.wk .corner{ border-bottom:1px solid var(--line); border-right:1px solid var(--line-2); }
.wk .dh{ text-align:center; padding:8px 0 7px; border-bottom:1px solid var(--line); border-right:1px solid var(--line-2); font-size:11.5px; }
.wk .dh b{ display:block; font-weight:600; color:var(--ink); font-size:13px; }
.wk .dh span{ color:var(--muted); }
.wk .dh.closed b{ color:var(--muted); }
.wk-body{ grid-column:1 / -1; display:grid; grid-template-columns:42px repeat(6,1fr); position:relative; }
.wk-body.day{ grid-template-columns:42px 1fr; }
.wk-time{ border-right:1px solid var(--line-2); }
.wk-time div{ height:40px; font-size:10px; color:var(--muted); text-align:right; padding:1px 6px 0 0; transform:translateY(-6px); }
.wk-col{ position:relative; border-right:1px solid var(--line-2); background-image:linear-gradient(var(--line-2) 1px, transparent 1px); background-size:100% 40px; }
.wk-col.closed{ background:repeating-linear-gradient(45deg, #F4F4EE, #F4F4EE 6px, #EFEFE8 6px, #EFEFE8 12px); }
.wk-col .closed-lbl{ position:absolute; top:50%; left:0; right:0; text-align:center; font-size:11px; color:var(--muted); transform:rotate(-90deg); }
.ev{ position:absolute; left:4px; right:4px; border-radius:6px; padding:5px 7px; font-size:11px; line-height:1.2; overflow:hidden; border-left:3px solid; }
.ev b{ display:block; font-weight:600; font-size:11px; }
.ev .meta{ color:inherit; opacity:.8; font-size:9.5px; }
.ev.confirmed{ background:var(--green-soft); border-color:var(--green); color:var(--green-700); }
.ev.pending{ background:var(--amber-soft); border-color:var(--amber); color:#7d5e1e; }
.ev.cancelled{ background:var(--terra-soft); border-color:var(--terra); color:#8c3f20; text-decoration:line-through; opacity:.85; }
.ev.quote{ background:#fff; border:1px dashed var(--slate); border-left:3px solid var(--slate); color:var(--slate); }
.ev.blocked{ background:repeating-linear-gradient(45deg,#ECECE4,#ECECE4 5px,#E2E2D8 5px,#E2E2D8 10px); border-color:#A9ABA2; color:#5f615a; }
.ev.focus{ box-shadow:0 0 0 2px var(--green); }

/* ---------- légende statuts ---------- */
.legend{ display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:18px; font-size:12.5px; color:var(--muted); }
.legend .sw{ display:inline-flex; align-items:center; gap:7px; }
.legend .sw i{ width:12px; height:12px; border-radius:3px; display:inline-block; }

/* ---------- sections ---------- */
.section{ padding:88px 0; }
.section.tint{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section.dark{ background:var(--green); color:#fff; }
.section-head{ max-width:720px; margin:0 0 44px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-family:var(--display); font-weight:700; font-size:clamp(26px,3.2vw,36px); letter-spacing:-.02em; color:var(--ink); margin:0 0 14px; line-height:1.1; }
.section-head p{ font-size:16px; line-height:1.6; color:var(--ink-2); margin:0; }
.section-head p b{ color:var(--ink); }

/* duo : narration + démo */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.duo .lead h3{ font-family:var(--display); font-weight:600; font-size:24px; letter-spacing:-.02em; margin:0 0 14px; line-height:1.15; }
.duo .lead p{ font-size:15px; line-height:1.6; color:var(--ink-2); margin:0 0 14px; }
.feature-list{ list-style:none; margin:18px 0 0; padding:0; }
.feature-list li{ display:flex; gap:11px; align-items:flex-start; font-size:14.5px; color:var(--ink-2); padding:7px 0; }
.feature-list li svg{ flex-shrink:0; margin-top:3px; color:var(--green); }

/* ---------- timeline ---------- */
.timeline{ position:relative; padding-left:8px; }
.tl-axis{ position:absolute; left:70px; top:8px; bottom:8px; width:2px; background:var(--line); }
.tl-row{ display:grid; grid-template-columns:62px 1fr; gap:18px; align-items:start; margin-bottom:14px; position:relative; }
.tl-time{ text-align:right; font-size:12px; font-weight:600; color:var(--muted); padding-top:11px; }
.tl-card{ position:relative; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--green); border-radius:9px; padding:11px 14px; box-shadow:var(--shadow-2); }
.tl-card::before{ content:""; position:absolute; left:-25px; top:15px; width:10px; height:10px; border-radius:50%; background:var(--green); box-shadow:0 0 0 3px var(--site); }
.tl-card .ti{ font-size:13.5px; font-weight:600; color:var(--ink); }
.tl-card .td{ font-size:12.5px; color:var(--muted); margin-top:2px; }
.tl-card .src{ font-size:11px; font-weight:600; color:var(--slate); background:var(--slate-soft); border-radius:999px; padding:2px 9px; display:inline-block; margin-top:7px; }
.tl-card.green{ border-left-color:var(--green); } .tl-card.green .src{ color:var(--green); background:var(--green-soft); }
.tl-card.terra{ border-left-color:var(--terra); } .tl-card.terra::before{ background:var(--terra); } .tl-card.terra .src{ color:var(--terra); background:var(--terra-soft); }
.tl-card.slate{ border-left-color:var(--slate); } .tl-card.slate::before{ background:var(--slate); }
.tl-card.gray{ border-left-color:#A9ABA2; } .tl-card.gray::before{ background:#A9ABA2; }
.tl-card .reopen{ font-size:11.5px; font-weight:600; color:var(--green); margin-top:7px; display:inline-flex; gap:6px; align-items:center; }

/* ---------- booking (tunnel patient) ---------- */
.booking{ background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-3); overflow:hidden; max-width:320px; }
.booking .bh{ background:var(--green); color:#fff; padding:13px 16px; }
.booking .bh .bbrand{ display:flex; align-items:center; gap:8px; font-family:var(--display); font-weight:600; font-size:15px; }
.booking .bh .bbrand .mark{ width:16px; height:16px; border-radius:5px; background:#fff; }
.booking .bbody{ padding:15px 16px; }
.booking .svc{ font-size:13px; font-weight:600; color:var(--ink); }
.booking .day{ font-size:12px; color:var(--muted); margin:3px 0 13px; }
.slots{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.slots .s{ text-align:center; font-size:12.5px; font-weight:600; padding:9px 0; border:1px solid var(--green-tint); border-radius:8px; color:var(--green); background:var(--green-soft); }
.slots .s.gone{ border:1px dashed var(--line); background:#FAFAF7; color:#C3C3BB; text-decoration:line-through; }
.slots .s.sel{ background:var(--green); color:#fff; border-color:var(--green); }
.bnote{ font-size:11.5px; color:var(--muted); margin-top:13px; display:flex; gap:7px; align-items:flex-start; line-height:1.45; }

/* connecteur sync (horizontal sur desktop) */
.sync-pair{ display:flex; align-items:center; gap:14px; }
.sync-arrow{ flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--green); }
.sync-arrow .lbl{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; text-align:center; line-height:1.2; }

/* ---------- détail rendez-vous ---------- */
.detail{ background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-3); overflow:hidden; }
.detail .dh{ padding:14px 16px; border-bottom:1px solid var(--line); display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.detail .who{ font-family:var(--display); font-weight:600; font-size:16px; color:var(--ink); }
.detail .dh .sub{ font-size:12px; color:var(--muted); margin-top:2px; }
.status-tag{ font-size:11px; font-weight:600; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.status-tag.confirmed{ background:var(--green-soft); color:var(--green); }
.detail .body{ padding:13px 16px; }
.detail .line{ display:flex; gap:10px; padding:7px 0; font-size:12.5px; border-bottom:1px solid var(--line-2); }
.detail .line:last-child{ border-bottom:none; }
.detail .line .k{ color:var(--muted); width:78px; flex-shrink:0; }
.detail .line .v{ color:var(--ink); font-weight:500; }
.detail .note{ background:var(--amber-soft); border-radius:8px; padding:9px 11px; font-size:12px; color:#6f5420; margin-top:9px; }
.detail .note .lbl{ font-weight:600; display:block; margin-bottom:2px; color:#7d5e1e; }
.detail .contacts{ display:flex; gap:8px; padding:12px 16px; border-top:1px solid var(--line); align-items:center; }
.detail .ic{ width:34px; height:34px; border-radius:8px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--green); flex-shrink:0; }
.detail .contacts .btn{ flex:1; }

/* ---------- fonctionnement 3 temps ---------- */
.flow{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:stretch; gap:0; }
.flow-step{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:22px; display:flex; flex-direction:column; }
.flow-step.on{ border-color:var(--green); box-shadow:0 0 0 2px var(--green-soft), 0 18px 36px -20px rgba(47,93,78,.45); }
.flow-step .n{ width:30px; height:30px; border-radius:50%; background:var(--green-soft); color:var(--green); font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; margin-bottom:13px; }
.flow-step.on .n{ background:var(--green); color:#fff; }
.flow-step .role{ font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:5px; }
.flow-step h4{ font-family:var(--display); font-size:17px; font-weight:600; color:var(--ink); margin:0 0 10px; }
.flow-step ul{ margin:0; padding-left:17px; font-size:13.5px; color:var(--ink-2); line-height:1.7; }
.flow-conn{ display:flex; align-items:center; justify-content:center; color:var(--green-tint); padding:0 14px; }

/* ---------- heatmap mois ---------- */
.month-wrap{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px; box-shadow:var(--shadow-2); position:relative; }
.month{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.month .mh{ text-align:center; font-size:11px; font-weight:600; color:var(--muted); padding-bottom:3px; }
.mc{ aspect-ratio:1.25; border-radius:8px; border:1px solid rgba(0,0,0,.04); padding:6px 8px; position:relative; }
.mc .d{ font-size:11.5px; font-weight:600; }
.mc .pct{ position:absolute; bottom:5px; left:8px; font-size:10.5px; font-weight:700; }
.mc.f0{ background:var(--fill-closed); color:var(--muted); }
.mc.f1{ background:var(--fill-1); color:var(--green-700); }
.mc.f2{ background:var(--fill-2); color:var(--green-700); }
.mc.f3{ background:var(--fill-3); color:#163a2c; }
.mc.f4{ background:var(--fill-4); color:#fff; }
.mc.f5{ background:var(--fill-5); color:#fff; }
.mc.muted{ opacity:.4; }
.mc.calm{ outline:2px dashed var(--slate); outline-offset:1px; }
.heat-legend{ display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:16px; font-size:12px; color:var(--muted); }
.heat-legend .ramp{ width:64px; height:10px; border-radius:5px; display:inline-block; background:linear-gradient(90deg,var(--fill-1),var(--fill-3),var(--fill-5)); }
.heat-legend i{ display:inline-block; width:12px; height:12px; border-radius:3px; vertical-align:-1px; }

/* ---------- disponibilités ---------- */
.avail{ background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-2); }
.avail .dayrow{ display:grid; grid-template-columns:96px 1fr 50px; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line-2); }
.avail .dayrow:last-child{ border-bottom:none; }
.avail .dn{ font-size:13.5px; font-weight:600; color:var(--ink); }
.avail .ranges{ display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.avail .rg{ font-size:12px; font-weight:500; background:var(--green-soft); color:var(--green); border:1px solid var(--green-tint); border-radius:7px; padding:4px 10px; }
.avail .rg.pm{ background:var(--slate-soft); color:var(--slate); border-color:#cdddea; }
.avail .ctr{ font-size:11.5px; color:var(--muted); }
.avail .ctr b{ color:var(--ink-2); }
.avail .off{ font-size:12.5px; color:var(--muted); font-style:italic; }
.toggle{ width:36px; height:20px; border-radius:999px; background:var(--green); position:relative; flex-shrink:0; justify-self:end; }
.toggle.off{ background:#D3D3CB; }
.toggle::after{ content:""; position:absolute; top:2px; width:16px; height:16px; border-radius:50%; background:#fff; right:2px; }
.toggle.off::after{ right:auto; left:2px; }
.wk-tab{ display:inline-flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.wk-tab span{ font-size:12.5px; font-weight:600; padding:6px 16px; color:var(--muted); cursor:pointer; }
.wk-tab span.on{ background:var(--green); color:#fff; }

/* ---------- congés / mini calendrier ---------- */
.mini-cal{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:18px; box-shadow:var(--shadow-2); }
.mini-cal .mt{ font-family:var(--display); font-weight:600; font-size:16px; margin:0 0 12px; color:var(--ink); }
.mg{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.mg .h{ font-size:10px; color:var(--muted); text-align:center; font-weight:600; }
.mg .c{ aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:12.5px; border-radius:7px; color:var(--ink-2); }
.mg .c.holiday{ background:var(--terra-soft); color:var(--terra); font-weight:600; }
.mg .c.leave{ background:var(--slate-soft); color:var(--slate); font-weight:600; }
.mg .c.reopen{ background:var(--green-soft); color:var(--green); font-weight:600; outline:1.5px dashed var(--green); }
.mg .c.muted{ color:#C9C9C1; }
.cal-key{ display:flex; flex-direction:column; gap:14px; }
.cal-key .k{ display:flex; gap:11px; align-items:flex-start; font-size:13px; }
.cal-key .k i{ width:16px; height:16px; border-radius:5px; flex-shrink:0; margin-top:2px; }
.cal-key .k b{ display:block; color:var(--ink); font-weight:600; margin-bottom:2px; }
.cal-key .k span{ color:var(--muted); }

/* form blocage */
.miniform{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:18px; box-shadow:var(--shadow-3); max-width:300px; }
.miniform h4{ font-family:var(--display); font-size:16px; margin:0 0 14px; color:var(--ink); }
.fld{ margin-bottom:11px; }
.fld label{ font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; display:block; margin-bottom:5px; }
.fld .inp{ border:1px solid var(--line); border-radius:8px; padding:9px 11px; font-size:13px; color:var(--ink); background:#fff; }
.fld .inp.ph{ color:#B6B6AE; }
.fld .inp.filled{ color:var(--ink); font-weight:500; border-color:var(--green-tint); }
.fld .inp.sel{ display:flex; align-items:center; justify-content:space-between; }
.fld .two{ display:flex; gap:9px; } .fld .two .inp{ flex:1; }
.chips{ display:flex; gap:7px; flex-wrap:wrap; }
.chips .ch{ font-size:12px; padding:6px 12px; border-radius:999px; border:1px solid var(--line); color:var(--ink-2); cursor:pointer; }
.chips .ch.on{ background:var(--green); color:#fff; border-color:var(--green); }

/* ---------- multi-centres / org ---------- */
.org-top{ display:flex; justify-content:center; margin-bottom:14px; }
.org-node{ background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 22px; text-align:center; box-shadow:var(--shadow-2); }
.org-node.root{ border-color:var(--green); background:var(--green-soft); }
.org-node .nt{ font-size:14px; font-weight:600; color:var(--ink); }
.org-node .ns{ font-size:11.5px; color:var(--muted); margin-top:2px; }
.org-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:18px; }
.org-center{ background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px; box-shadow:var(--shadow-2); }
.org-center .ct{ font-size:14px; font-weight:600; color:var(--green); display:flex; align-items:center; gap:7px; margin-bottom:4px; }
.org-center .ca{ font-size:12px; color:var(--muted); margin-bottom:12px; }
.org-center .team{ display:flex; }
.av{ width:30px; height:30px; border-radius:50%; border:2px solid #fff; background:var(--green-tint); color:var(--green-700); font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; margin-left:-7px; }
.av:first-child{ margin-left:0; }
.av.slate{ background:var(--slate-soft); color:var(--slate); }
.av.amber{ background:var(--amber-soft); color:#7d5e1e; }
.org-tags{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }

/* white-label */
.wl-pair{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.wl{ border-radius:14px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-2); }
.wl .wlh{ padding:13px 16px; color:#fff; display:flex; align-items:center; gap:9px; font-family:var(--display); font-weight:600; font-size:15px; }
.wl .wlh .lg{ width:20px; height:20px; border-radius:6px; background:rgba(255,255,255,.85); }
.wl-a .wlh{ background:#2F5D4E; }
.wl-b .wlh{ background:#3A4A63; }
.wl .wlb{ background:#fff; padding:15px 16px; }
.wl .svc{ font-size:13px; font-weight:600; color:var(--ink); }
.wl .meta{ font-size:12px; color:var(--muted); margin:3px 0 12px; }
.wl-mini-slots{ display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.wl-mini-slots .s{ font-size:12px; text-align:center; padding:8px 0; border-radius:7px; font-weight:600; }
.wl-a .wl-mini-slots .s{ background:#E8F0EB; color:#2F5D4E; }
.wl-b .wl-mini-slots .s{ background:#E7EAF1; color:#3A4A63; }
.wl-engine{ text-align:center; font-size:13px; color:var(--muted); margin-top:22px; }
.wl-engine b{ color:var(--green); }

/* ---------- tarifs ---------- */
.price-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.price-card{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:22px; display:flex; flex-direction:column; box-shadow:var(--shadow-2); }
.price-card .ax{ display:flex; align-items:center; gap:9px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--green); margin-bottom:12px; }
.price-card .ax i{ width:30px; height:30px; border-radius:9px; background:var(--green-soft); display:flex; align-items:center; justify-content:center; }
.price-card h4{ font-family:var(--display); font-weight:600; font-size:17px; color:var(--ink); margin:0 0 6px; }
.price-card p{ font-size:13.5px; color:var(--ink-2); line-height:1.55; margin:0 0 16px; }
.price-card .q{ margin-top:auto; font-size:14px; font-weight:700; color:var(--green); background:var(--green-soft); border:1px solid var(--green-tint); border-radius:8px; padding:9px 12px; text-align:center; }
.price-reassure{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:24px; }
.price-reassure span{ display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:500; color:var(--ink-2); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:8px 15px; }
.price-reassure span svg{ color:var(--green); }
.incl-cols{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:40px; }
.incl{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px 22px; box-shadow:var(--shadow-2); }
.incl.opt{ background:var(--site); border-style:dashed; box-shadow:none; }
.incl .ih{ font-family:var(--display); font-weight:600; font-size:15px; color:var(--ink); display:flex; align-items:center; gap:9px; margin-bottom:14px; }
.incl .ih .tag{ font-size:10px; font-weight:700; letter-spacing:.04em; padding:3px 9px; border-radius:999px; }
.incl .ih .tag.base{ background:var(--green-soft); color:var(--green); }
.incl .ih .tag.plus{ background:var(--amber-soft); color:#7d5e1e; }
.incl ul{ list-style:none; margin:0; padding:0; }
.incl li{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--ink-2); padding:6px 0; }
.incl li svg{ flex-shrink:0; margin-top:3px; }
.devis-band{ margin-top:22px; background:var(--green); border-radius:14px; padding:22px 26px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.devis-band .dt b{ font-family:var(--display); font-size:17px; display:block; color:#fff; }
.devis-band .dt span{ font-size:13px; color:#CFE0D6; }

/* ---------- FAQ ---------- */
.faq{ max-width:760px; margin:0 auto; }
.faq .q{ border-bottom:1px solid var(--line); }
.faq .qh{ display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:15.5px; font-weight:600; color:var(--ink); cursor:pointer; padding:18px 2px; list-style:none; }
.faq .qh::-webkit-details-marker{ display:none; }
.faq .pm{ color:var(--green); font-size:20px; font-weight:400; line-height:1; flex-shrink:0; transition:transform .2s ease; }
.faq details[open] .qh{ color:var(--green); }
.faq details[open] .pm{ transform:rotate(45deg); }
.faq .qa{ font-size:14px; color:var(--ink-2); line-height:1.6; padding:0 2px 18px; max-width:680px; }

/* ---------- CTA final / démo ---------- */
.cta-final{ display:grid; grid-template-columns:1.1fr 1fr; border-radius:18px; overflow:hidden; box-shadow:var(--shadow-3); border:1px solid var(--green-700); }
.cta-final .left{ background:var(--green); color:#fff; padding:44px; display:flex; flex-direction:column; justify-content:center; }
.cta-final .left .kicker{ color:#9FD8B7; }
.cta-final h2{ font-family:var(--display); font-weight:700; font-size:30px; line-height:1.12; letter-spacing:-.02em; margin:0 0 16px; }
.cta-final .left p{ font-size:15px; line-height:1.55; color:#D6E4DC; margin:0 0 24px; max-width:380px; }
.demo-form{ background:#fff; color:var(--ink); padding:36px; display:flex; flex-direction:column; justify-content:center; }
.demo-form h3{ font-family:var(--display); font-size:20px; margin:0 0 4px; }
.demo-form .sub{ font-size:13px; color:var(--muted); margin:0 0 20px; }
.demo-form .fld{ margin-bottom:14px; }
.demo-form .inp{ width:100%; }
.demo-form input.inp, .demo-form select.inp{ font-family:var(--sans); height:44px; }
.demo-form select.inp{ appearance:none; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236C746E' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
.demo-form .inp:focus{ outline:none; border-color:var(--green); box-shadow:0 0 0 3px var(--green-soft); }
.success{ text-align:center; }
.success .ck{ width:56px; height:56px; border-radius:50%; background:var(--green-soft); color:var(--green); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.success h3{ font-family:var(--display); font-size:20px; margin:0 0 8px; color:var(--ink); }
.success p{ font-size:14px; color:var(--ink-2); line-height:1.55; max-width:300px; margin:0 auto; }
.hidden{ display:none; }

/* ---------- footer ---------- */
.site-footer{ background:var(--surface); border-top:1px solid var(--line); padding:48px 0 32px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; }
.site-footer .brand{ margin-bottom:12px; }
.footer-about{ font-size:13.5px; color:var(--muted); line-height:1.6; max-width:32ch; }
.footer-col h5{ font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin:0 0 14px; }
.footer-col a{ display:block; font-size:14px; color:var(--ink-2); padding:5px 0; }
.footer-col a:hover{ color:var(--green); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-top:40px; padding-top:24px; border-top:1px solid var(--line); font-size:12.5px; color:var(--muted); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:980px){
  .hero-copy{ padding:60px 0 8px; max-width:none; }
  .hero .scrim{ display:none; }
  .hero-bg{ position:static; padding:0 24px; }
  .hero-peek{ position:static; width:100%; max-width:560px; margin:26px auto 56px; transform:none; filter:drop-shadow(0 18px 36px rgba(27,36,32,.16)); }
  .duo{ grid-template-columns:1fr; gap:32px; }
  .flow{ grid-template-columns:1fr; gap:14px; }
  .flow-conn{ transform:rotate(90deg); padding:4px 0; }
  .incl-cols{ grid-template-columns:1fr; }
  .cta-final{ grid-template-columns:1fr; }
  .price-cols{ grid-template-columns:1fr; max-width:440px; margin:0 auto; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:28px; }
}
@media (max-width:760px){
  .navlinks{ display:none; }
  .navlinks.open{ display:flex; position:absolute; top:64px; left:0; right:0; flex-direction:column; align-items:flex-start; gap:4px; background:var(--site); border-bottom:1px solid var(--line); padding:14px 24px; }
  .navlinks.open a{ padding:10px 0; width:100%; }
  .nav-toggle{ display:flex; }
  .nav-cta .btn-primary{ display:none; }
  .section{ padding:60px 0; }
  .org-cols{ grid-template-columns:1fr; }
  .wl-pair{ grid-template-columns:1fr; }
  .devis-band{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:560px){
  .sync-pair{ flex-direction:column; align-items:stretch; }
  .sync-arrow{ flex-direction:row; justify-content:center; }
  .sync-arrow svg{ transform:rotate(90deg); }
  .booking{ max-width:none; }
  .footer-grid{ grid-template-columns:1fr; }
  .wk{ grid-template-columns:34px repeat(6,1fr); }
  .wk-body{ grid-template-columns:34px repeat(6,1fr); }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; }
}
