/* ═══════════════════════════════════════════════════════════════════════════
   Kalorbit — feuille de style partagée entre index.html (EN) et fr/index.html.
   Importe kalorbit-tokens.css (palette officielle, non modifiée) puis dérive
   les tons du thème clair par color-mix() à partir des mêmes tokens, pour ne
   jamais introduire de couleur hors palette de marque.
   ═══════════════════════════════════════════════════════════════════════════ */
@import url('kalorbit-tokens.css');

:root{
  /* Fonds et texte — sections sombres (hero, CTA final, footer) : tokens directs */
  --navy:  var(--kal-bg-app);
  --navy2: var(--kal-bg-surface);
  --navy3: var(--kal-bg-elevated);
  --line-d: var(--kal-border);
  --line-d-soft: color-mix(in srgb, var(--kal-border) 60%, transparent);
  --text-d:  var(--kal-text);
  --text-d2: var(--kal-text-muted);

  /* Fonds et texte — sections claires : dérivés des tokens par color-mix */
  --bg:     #ffffff;
  --bg-alt: color-mix(in srgb, var(--kal-blue-600) 5%, white);
  --ink:    var(--kal-blue-900);
  --ink2:   color-mix(in srgb, var(--kal-blue-900) 78%, white);
  --ink3:   color-mix(in srgb, var(--kal-blue-900) 55%, white);
  --line:   color-mix(in srgb, var(--kal-blue-600) 12%, white);
  --line2:  color-mix(in srgb, var(--kal-blue-600) 24%, white);

  /* Rôles de marque : bleu = structure/froid, corail = point chaud/accent ponctuel */
  --accent:     var(--kal-primary);
  --accent2:    var(--kal-blue-400);
  --coral:      var(--kal-accent);
  --coral-soft: var(--kal-coral-200);

  --ok:  #16a34a;
  --err: #dc2626;

  --mono: var(--kal-font-mono);
  --shadow-lg: 0 30px 70px -25px rgba(4,44,83,.28);
  --shadow-sm: 0 10px 30px -18px rgba(4,44,83,.20);
  --r: 14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{
  font-family:var(--kal-font-sans);font-weight:400;
  color:var(--ink);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{max-width:100%;display:block}
a{color:var(--accent)}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
section{padding:88px 0}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:500;color:var(--accent);
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;
}
.eyebrow::before{content:'';width:26px;height:2px;background:var(--accent);border-radius:2px}
.h2{font-size:clamp(1.6rem,3vw,2.15rem);letter-spacing:-.02em;line-height:1.2;margin-bottom:14px;font-weight:500}
.sec-sub{color:var(--ink2);max-width:44em;font-size:1rem;margin-bottom:44px}

/* ═══════════════ Header ═══════════════ */
header{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);transition:background .2s;
}
header.on-dark{background:rgba(26,34,51,.78);border-bottom-color:transparent}
.nav{display:flex;align-items:center;gap:26px;height:68px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-weight:600;font-size:1.2rem}
header.on-dark .brand{color:var(--text-d)}
.brand-mark{width:36px;height:36px;flex-shrink:0}
.brand-mark--dark{display:none}
header.on-dark .brand-mark--dark{display:block}
header.on-dark .brand-mark--light{display:none}
.nav-links{display:flex;gap:4px;margin-left:auto}
.nav-links a{color:var(--ink2);text-decoration:none;font-size:.88rem;font-weight:400;padding:7px 12px;border-radius:8px}
.nav-links a:hover{color:var(--ink);background:var(--bg-alt)}
header.on-dark .nav-links a{color:var(--text-d2)}
header.on-dark .nav-links a:hover{color:var(--text-d);background:rgba(255,255,255,.08)}
.nav .cta{margin-left:6px}
.lang-link{
  background:none;border:1px solid var(--line2);color:var(--ink2);border-radius:8px;text-decoration:none;
  padding:6px 12px;font-size:.78rem;font-weight:500;cursor:pointer;font-family:inherit;flex-shrink:0;
}
.lang-link:hover{border-color:var(--accent);color:var(--accent)}
header.on-dark .lang-link{border-color:var(--line-d);color:var(--text-d2)}
header.on-dark .lang-link:hover{color:var(--text-d);border-color:var(--accent2)}
@media(max-width:1020px){.nav-links{display:none}.nav .cta{margin-left:auto}}

.btn{
  display:inline-block;border-radius:10px;padding:13px 26px;font-weight:500;font-size:.95rem;
  text-decoration:none;cursor:pointer;border:none;font-family:inherit;
  transition:transform .15s,box-shadow .15s,filter .15s;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 24px -10px rgba(24,95,165,.55)}
.btn-primary:hover{filter:brightness(1.12)}
.btn-light{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.22)}
.btn-light:hover{background:rgba(255,255,255,.16)}
.btn-sm{padding:9px 18px;font-size:.86rem;border-radius:9px}
.btn-outline{background:#fff;color:var(--ink);border:1px solid var(--line2)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
header.on-dark .btn-outline{background:transparent;color:var(--text-d);border-color:var(--line-d)}
header.on-dark .btn-outline:hover{color:#fff;border-color:var(--accent2)}
@media(max-width:640px){.nav .btn-outline{display:none}}

/* ═══════════════ Hero ═══════════════ */
.hero{position:relative;background:var(--navy);color:var(--text-d);padding:104px 0 0;overflow:hidden}
.hero-bg{position:absolute;inset:0;pointer-events:none}
.hero-bg .glow{
  position:absolute;width:900px;height:900px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb, var(--accent) 38%, transparent),transparent 62%);
  top:-420px;left:50%;transform:translateX(-50%);
}
.hero-bg .glow2{
  position:absolute;width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb, var(--coral) 20%, transparent),transparent 60%);
  bottom:-160px;right:-180px;
}
.hero-bg svg{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.hero-in{position:relative;text-align:center;max-width:840px;margin:0 auto;padding:0 24px}
.hero .pill{
  display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:500;color:var(--kal-blue-100);
  border:1px solid color-mix(in srgb, var(--accent2) 40%, transparent);background:color-mix(in srgb, var(--accent) 14%, transparent);
  border-radius:999px;padding:6px 16px;margin-bottom:26px;
}
.hero .pill .dot{width:7px;height:7px;border-radius:50%;background:var(--coral-soft);box-shadow:0 0 8px var(--coral-soft)}
.hero h1{
  font-size:clamp(2rem,5.2vw,3.35rem);line-height:1.12;letter-spacing:-.03em;font-weight:500;
  margin-bottom:22px;
  background:linear-gradient(180deg,#fff 60%,var(--kal-blue-100));-webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .lede{color:var(--text-d2);font-size:1.08rem;max-width:36em;margin:0 auto 34px}
.hero .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.hero .under{font-family:var(--mono);font-size:.72rem;color:var(--text-d2);margin-bottom:56px}
/* Capture mise en scène dans un cadre navigateur, à cheval sombre/clair */
.hero-shot{
  background:linear-gradient(180deg,var(--navy) 0%,var(--navy) 52%,var(--bg) 52%,var(--bg) 100%);
  padding-bottom:10px;
}
.browser{
  position:relative;max-width:960px;margin:0 auto;border-radius:14px;
  background:var(--navy2);border:1px solid var(--line-d);box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.browser-bar{
  display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--line-d);
  background:var(--navy3);
}
.browser-bar .d{width:11px;height:11px;border-radius:50%}
.browser-bar .d1{background:#f87171}.browser-bar .d2{background:#fbbf24}.browser-bar .d3{background:#34d399}
.browser-bar .url{
  margin-left:14px;font-family:var(--mono);font-size:.72rem;color:var(--text-d2);
  background:var(--navy);border-radius:6px;padding:4px 14px;
}
.shot-frame{position:relative;aspect-ratio:16/9.4;background:var(--navy)}
.shot-frame svg,.shot-frame img{position:absolute;inset:0;width:100%;height:100%}
.shot-frame img{object-fit:cover}
/* Hero : globe affiché EN ENTIER (contain), sur fond spatial noir pour fondre les marges */
.browser .shot-frame{aspect-ratio:16/10;background:#000}
.browser .shot-frame img{object-fit:contain}
.fig-tag{
  position:absolute;left:12px;bottom:12px;font-family:var(--mono);font-size:.66rem;color:var(--text-d2);
  background:rgba(26,34,51,.85);border:1px solid var(--line-d);border-radius:5px;padding:3px 10px;z-index:2;
}

/* ═══════════════ Bande de chiffres ═══════════════ */
.stats{padding:34px 0 66px;background:var(--bg)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:880px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
.stat{text-align:center;padding:22px 12px;border-radius:var(--r);border:1px solid var(--line);background:#fff}
.stat b{display:block;font-size:1.7rem;font-weight:500;letter-spacing:-.02em;color:var(--accent);margin-bottom:2px}
.stat span{font-size:.82rem;color:var(--ink2)}

/* ═══════════════ Bande de confiance ═══════════════ */
.trust{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:40px 0}
.trust-in{display:flex;align-items:center;gap:30px;flex-wrap:wrap;justify-content:space-between}
.trust-msg{display:flex;gap:16px;align-items:center;max-width:600px}
.trust-msg .ic{
  flex-shrink:0;width:46px;height:46px;border-radius:12px;
  background:color-mix(in srgb, var(--accent) 12%, white);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
}
.trust-msg strong{display:block;font-size:1rem;letter-spacing:-.01em;font-weight:500}
.trust-msg span{font-size:.86rem;color:var(--ink2)}
.badges{display:flex;gap:9px;flex-wrap:wrap}
.badge{
  font-size:.76rem;font-weight:500;color:var(--ink2);border:1px solid var(--line2);border-radius:999px;
  padding:6px 15px;background:#fff;white-space:nowrap;
}

/* ═══════════════ Adoption (marquee) ═══════════════ */
.adopt{padding:46px 0;border-bottom:1px solid var(--line)}
.adopt[hidden]{display:none}
.adopt .cap{text-align:center;font-size:.8rem;font-weight:500;color:var(--ink3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:24px}
.marquee{overflow:hidden;position:relative}
.marquee::before,.marquee::after{content:'';position:absolute;top:0;bottom:0;width:80px;z-index:1;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.marquee::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.marquee-track{display:flex;gap:64px;width:max-content;animation:scroll var(--mq-dur,30s) linear infinite;align-items:center}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes scroll{to{transform:translateX(-50%)}}
.marquee img{height:38px;width:auto;filter:grayscale(1);opacity:.6;transition:.2s}
.marquee a:hover img,.marquee img:hover{filter:none;opacity:1}
.marquee .lname{font-weight:500;font-size:1rem;color:var(--ink3);white-space:nowrap}

/* ═══════════════ Modules (alternance texte/visuel) ═══════════════ */
/* Modules empilés : bloc texte compact au-dessus, capture pleine largeur en dessous */
.mod-row{display:block;padding:46px 0}
.mod-row+.mod-row{border-top:1px solid var(--line)}
.mod-row>div{max-width:820px;margin-bottom:28px}
@media(max-width:900px){.mod-row{padding:34px 0}.mod-row>div{margin-bottom:22px}}
.mod-no{font-family:var(--mono);font-size:.72rem;color:var(--ink3);margin-bottom:8px}
.mod-row h3{font-size:1.3rem;letter-spacing:-.015em;margin-bottom:14px;font-weight:500}
.mod-row ul{list-style:none;display:grid;gap:11px;font-size:.92rem;line-height:1.5;color:var(--ink2);max-width:760px}
.mod-row li{padding-left:24px;position:relative}
.mod-row li::before{
  content:'';position:absolute;left:2px;top:.5em;width:9px;height:9px;border-radius:3px;
  background:linear-gradient(135deg,var(--accent2),var(--coral));transform:rotate(45deg);
}
.mod-media{position:relative}
.mod-media .shot-frame{aspect-ratio:16/9;border-radius:12px;border:1px solid var(--line2);box-shadow:var(--shadow-sm);overflow:hidden}
.mod-media figcaption{font-family:var(--mono);font-size:.68rem;color:var(--ink3);margin-top:10px}
.mod-media figcaption b{color:var(--accent)}
.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}
@media(max-width:820px){.mini-grid{grid-template-columns:1fr}}
.mini{
  border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;background:var(--bg-alt);
}
.mini h4{font-size:1rem;margin-bottom:8px;display:flex;align-items:center;gap:9px;font-weight:500}
.mini h4 .dia{color:var(--accent);font-size:.9em}
.mini p{font-size:.87rem;color:var(--ink2)}

/* ═══════════════ Flux de travail ═══════════════ */
.flow{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:940px){.steps{grid-template-columns:1fr;max-width:460px}}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 18px;transition:box-shadow .2s,border-color .2s}
.step:hover{border-color:var(--accent2);box-shadow:var(--shadow-sm)}
.step .n{
  display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;
  background:linear-gradient(135deg,var(--accent),var(--coral));color:#fff;font-size:.82rem;font-weight:500;margin-bottom:12px;
}
.step h4{font-size:.95rem;margin-bottom:5px;font-weight:500}
.step p{font-size:.8rem;color:var(--ink2)}
.step:not(:last-child)::after{content:'→';position:absolute;right:-21px;top:50%;transform:translateY(-50%);color:var(--accent);font-size:1.5rem;line-height:1;font-weight:700;z-index:2}
@media(max-width:940px){.step:not(:last-child)::after{content:'↓';right:auto;left:50%;top:auto;bottom:-20px;transform:translateX(-50%)}}

/* Quick Estimation — module autonome, hors chaîne */
.flow-alt{display:flex;gap:16px;align-items:center;margin-top:26px;background:#fff;border:1px dashed var(--accent2);border-radius:var(--r);padding:18px 22px}
.flow-alt-ico{font-size:1.7rem;line-height:1;flex-shrink:0}
.flow-alt-head{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}
.flow-alt-head b{font-size:.95rem;font-weight:500}
.flow-alt-badge{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent2);border-radius:5px;padding:2px 8px}
.flow-alt p{font-size:.85rem;color:var(--ink2)}

/* ═══════════════ Rigueur ═══════════════ */
.claims{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:46px}
@media(max-width:840px){.claims{grid-template-columns:1fr}}
.claim{border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;background:#fff;border-top:3px solid var(--accent)}
.claim b{display:block;font-size:1rem;margin-bottom:6px;letter-spacing:-.01em;font-weight:500}
.claim span{font-size:.82rem;color:var(--ink2)}
.rig-cols{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:start}
@media(max-width:900px){.rig-cols{grid-template-columns:1fr}}
.rig-cols h3{font-size:1.08rem;margin-bottom:14px;font-weight:500}
.rig-cols ul{list-style:none;display:grid;gap:9px;font-size:.88rem;color:var(--ink2)}
.rig-cols li{padding-left:22px;position:relative}
.rig-cols li::before{content:'—';position:absolute;left:0;color:var(--accent2);font-weight:500}
blockquote.q{
  border-left:3px solid var(--accent);padding:6px 0 6px 18px;margin:20px 0 8px;
  font-style:italic;color:var(--ink2);font-size:.94rem;
}
.q-src{font-family:var(--mono);font-size:.68rem;color:var(--ink3);margin-bottom:18px}
.rig-cols p{font-size:.9rem;color:var(--ink2)}
.rig-cols p+p{margin-top:10px}
table.doc{border-collapse:collapse;width:100%;font-size:.84rem;margin-top:18px;border-radius:10px;overflow:hidden}
table.doc th,table.doc td{border:1px solid var(--line);padding:9px 13px;text-align:left;vertical-align:top}
table.doc th{background:var(--bg-alt);font-size:.7rem;font-weight:500;color:var(--ink2);letter-spacing:.06em;text-transform:uppercase}
table.doc td{color:var(--ink2)}
table.doc td.m{font-family:var(--mono);font-size:.76rem;white-space:nowrap;color:var(--ink)}

/* ═══════════════ Vidéos ═══════════════ */
.vids{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:920px){.vids{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.vids{grid-template-columns:1fr}}
.vid{
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;cursor:pointer;
  text-align:left;padding:0;font-family:inherit;text-decoration:none;display:block;
  transition:box-shadow .2s,border-color .2s,transform .15s;
}
.vid:hover{border-color:var(--accent2);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.vid-thumb{position:relative;aspect-ratio:16/9;background:var(--navy)}
.vid-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vid-thumb .play{
  position:absolute;inset:0;margin:auto;width:50px;height:50px;border-radius:50%;
  background:color-mix(in srgb, var(--accent) 92%, transparent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.05rem;
  box-shadow:0 6px 20px -6px rgba(24,95,165,.7);
}
.vid-thumb .dur{position:absolute;right:9px;bottom:9px;font-family:var(--mono);font-size:.66rem;color:var(--text-d);background:rgba(26,34,51,.85);border-radius:5px;padding:2px 8px}
.vid-body{padding:14px 16px}
.vid-body .kind{font-size:.64rem;font-weight:500;color:var(--ink3);letter-spacing:.08em;text-transform:uppercase}
.vid-body h4{font-size:.9rem;color:var(--ink);margin-top:4px;font-weight:500}
.vids-empty{border:1px dashed var(--line2);border-radius:var(--r);padding:26px 28px;background:var(--bg-alt);max-width:46em}
.vids-empty p{font-size:.92rem;margin-bottom:10px}
.vids-empty ul{list-style:none;display:grid;gap:8px;font-size:.87rem;color:var(--ink2)}
.vids-empty li{padding-left:24px;position:relative}
.vids-empty li::before{content:'▶';position:absolute;left:0;color:var(--accent2);font-size:.7em;top:.35em}
dialog.player{border:none;border-radius:12px;background:var(--navy);padding:0;max-width:min(920px,94vw);width:100%}
dialog.player::backdrop{background:rgba(4,44,83,.7)}
dialog.player video{width:100%;border-radius:12px}
dialog.player .close{position:absolute;top:-40px;right:0;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer}
dialog.player .wrap-v{position:relative}

/* ═══════════════ Licences & formulaire ═══════════════ */
.lic-sec{background:var(--bg-alt);border-top:1px solid var(--line)}
.lic-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:52px}
@media(max-width:840px){.lic-grid{grid-template-columns:1fr}}
.lic{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 30px;position:relative;transition:box-shadow .2s}
.lic:hover{box-shadow:var(--shadow-sm)}
.lic .tag{
  display:inline-block;font-size:.66rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  border-radius:999px;padding:4px 12px;margin-bottom:12px;
}
.lic.now .tag{background:color-mix(in srgb, var(--ok) 14%, white);color:var(--ok)}
.lic.soon .tag{background:var(--bg-alt);color:var(--ink3)}
.lic h4{font-size:1.1rem;margin-bottom:8px;letter-spacing:-.01em;font-weight:500}
.lic p{font-size:.89rem;color:var(--ink2)}
form.cform{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px 34px;max-width:640px;
  box-shadow:var(--shadow-sm);
}
form.cform h3{font-size:1.15rem;margin-bottom:4px;font-weight:500}
form.cform .sub{font-size:.8rem;color:var(--ink3);margin-bottom:22px}
.field{margin-bottom:16px}
.field label{display:block;font-size:.82rem;font-weight:500;margin-bottom:6px}
.field label .opt{font-weight:400;color:var(--ink3);font-size:.76rem}
.field input,.field textarea,.field select{
  width:100%;border:1px solid var(--line2);border-radius:9px;padding:11px 13px;
  font-family:inherit;font-size:.92rem;color:var(--ink);background:var(--bg-alt);
}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--accent2);border-color:transparent;background:#fff}
.field textarea{min-height:96px;resize:vertical}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.78rem;color:var(--ink2);margin-bottom:20px}
.consent input{margin-top:3px;accent-color:var(--accent)}
.form-note{font-family:var(--mono);font-size:.68rem;color:var(--ink3);margin-top:14px}
.fallback{display:none;margin-top:18px;border-top:1px dashed var(--line2);padding-top:16px}
.fallback.show{display:block}
.fallback p{font-size:.82rem;color:var(--ink2);margin-bottom:8px}
.fallback textarea{width:100%;border:1px solid var(--line2);border-radius:8px;padding:11px;font-size:.8rem;min-height:150px;font-family:var(--mono)}
.fallback .btn{margin-top:10px}
.copy-ok{color:var(--ok);font-size:.8rem;font-weight:500;margin-left:10px;display:none}
.copy-ok.show{display:inline}

/* ═══════════════ FAQ ═══════════════ */
.faq-list{max-width:800px}
.faq-list details{border-bottom:1px solid var(--line);padding:0 4px}
.faq-list summary{
  cursor:pointer;font-weight:500;font-size:.98rem;padding:19px 0;list-style:none;
  display:flex;justify-content:space-between;gap:16px;align-items:center;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{
  content:'+';color:var(--accent);font-weight:500;font-size:1.35rem;flex-shrink:0;
  width:30px;height:30px;border:1px solid var(--line2);border-radius:50%;
  display:flex;align-items:center;justify-content:center;line-height:1;
}
.faq-list details[open] summary::after{content:'−';background:var(--accent);color:#fff;border-color:var(--accent)}
.faq-list details p{font-size:.9rem;color:var(--ink2);padding:0 44px 20px 0}

/* ═══════════════ CTA final ═══════════════ */
.final{
  background:linear-gradient(150deg,var(--navy) 30%,var(--kal-blue-900));color:#fff;text-align:center;
  position:relative;overflow:hidden;
}
.final .glow{
  position:absolute;width:800px;height:800px;border-radius:50%;left:50%;top:-380px;transform:translateX(-50%);
  background:radial-gradient(circle,color-mix(in srgb, var(--accent) 38%, transparent),transparent 62%);pointer-events:none;
}
.final h2{font-size:clamp(1.6rem,3.4vw,2.3rem);letter-spacing:-.02em;margin-bottom:14px;position:relative;font-weight:500}
.final p{color:var(--text-d2);max-width:36em;margin:0 auto 30px;position:relative}
.final .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}

/* ═══════════════ Footer ═══════════════ */
footer{background:var(--navy);color:var(--text-d2);padding:64px 0 36px;font-size:.87rem;border-top:1px solid var(--line-d)}
.foot-in{max-width:1160px;margin:0 auto;padding:0 24px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:44px}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot-brand{color:#fff;font-weight:500;display:flex;align-items:center;gap:10px;font-size:1.05rem;margin-bottom:12px}
.foot-brand .brand-mark{width:24px;height:24px}
.foot-desc{font-size:.82rem;line-height:1.6;max-width:26em}
.foot-ver{font-family:var(--mono);font-size:.7rem;color:#5b6b84;margin-top:14px}
.foot-col h5{color:#fff;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;font-weight:500}
.foot-col ul{list-style:none;display:grid;gap:9px}
.foot-col a{color:var(--text-d2);text-decoration:none;font-size:.85rem}
.foot-col a:hover{color:#fff}
.legal{border-top:1px solid var(--line-d)}
.legal details{border-bottom:1px solid var(--line-d);padding:13px 0}
.legal summary{cursor:pointer;font-weight:500;color:#cbd5e1;list-style:none;font-size:.88rem}
.legal summary::-webkit-details-marker{display:none}
.legal summary::before{content:'▸ ';color:var(--accent2)}
.legal details[open] summary::before{content:'▾ '}
.legal .legal-body{white-space:pre-line;font-size:.79rem;padding:12px 0 6px;color:#7c8aa0;max-width:66em}
.foot-bottom{margin-top:26px;padding-top:20px;font-size:.76rem;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#5b6b84}

/* ═══════════════ Toast & apparitions ═══════════════ */
.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);
  background:var(--navy2);color:#fff;border:1px solid var(--line-d);border-radius:10px;
  padding:13px 24px;font-size:.88rem;opacity:0;pointer-events:none;transition:all .25s;z-index:100;
  box-shadow:0 10px 30px -10px rgba(0,0,0,.5);max-width:90vw;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.rv{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .btn:hover{transform:none}
  .marquee-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
}
