﻿
/* Mise en page : bandeaux pleine largeur alternés (bleu nuit, sable, bleu pâle) ; contenu centré 1120 px ; mobile une colonne */
:root{
  --surface-100:#F5F7F6;--surface-200:#FFFFFF;--ink:#14212E;--ink-muted:#4F5D6B;--line:#D3DBE0;
  --brand:#1B3A5C;--brand-deep:#1B3A5C;--brand-tint:#E3ECF4;--action:#237A4A;--check:#41B574;
  --alert:#E67E22;--alert-ink:#9A4A0B;--alert-tint:#FCEBDB;--critical:#B42318;--sand:#F2E3C6;
  --on-deep:#FFFFFF;--on-deep-muted:#B9CCDD;--deep-card:#24496F;--deep-line:#3A5F86;--silhouette:#2C5580;
  --font-display:"Archivo","Arial Narrow",system-ui,sans-serif;--font-body:"Source Sans 3","Segoe UI",system-ui,sans-serif;--font-data:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --surface-100:#0E1822;--surface-200:#15222E;--ink:#E8EEF2;--ink-muted:#9CABB8;--line:#2A3A49;
  --brand:#8DB8E2;--brand-deep:#14304E;--brand-tint:#1D3348;--action:#2A7F50;--alert:#F0974A;--alert-ink:#F5B07A;--alert-tint:#3A2614;--critical:#F07167;--sand:#3A3222;
  --deep-card:#1E3D5E;--deep-line:#2F5378;--silhouette:#24486D;color-scheme:dark}}
:root[data-theme="dark"]{
  --surface-100:#0E1822;--surface-200:#15222E;--ink:#E8EEF2;--ink-muted:#9CABB8;--line:#2A3A49;
  --brand:#8DB8E2;--brand-deep:#14304E;--brand-tint:#1D3348;--action:#2A7F50;--alert:#F0974A;--alert-ink:#F5B07A;--alert-tint:#3A2614;--critical:#F07167;--sand:#3A3222;
  --deep-card:#1E3D5E;--deep-line:#2F5378;--silhouette:#24486D;color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--surface-100);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:24px;margin:0}
h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0}
.wrap{max-width:1120px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.mono{font-family:var(--font-data);font-weight:500;font-variant-numeric:tabular-nums}
.label{font-family:var(--font-display);font-weight:600;font-size:12px;line-height:16px;letter-spacing:1.2px;text-transform:uppercase}
a{color:var(--brand)}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--check);outline-offset:2px}
.btn{min-height:48px;padding:0 20px;border-radius:8px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:2px solid transparent}
.btn-go{background:var(--action);color:#fff}
.btn-line{background:transparent;border-color:var(--brand);color:var(--brand)}
.btn-deep{background:var(--brand-deep);color:#fff}
[hidden]{display:none!important}
#app{container-type:inline-size;container-name:app;background:var(--surface-100);min-height:100vh}
html.frame-m body{background:#C9D3DB}
html.frame-m #app{max-width:390px;margin:20px auto 40px;border-radius:28px;overflow:hidden;box-shadow:0 0 0 10px #14212E,0 24px 60px rgba(8,20,34,.35);min-height:780px}
html.frame-m .top{position:sticky}
.viewbar{position:fixed;right:max(12px,env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:20;display:flex;gap:4px;background:#14212E;border-radius:999px;padding:4px;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.viewbar button,.viewbar a{border:0;border-radius:999px;padding:8px 12px;background:transparent;color:#E8EEF2;font-weight:600;font-size:13px;text-decoration:none;display:inline-flex;align-items:center}
.viewbar button.on,.viewbar a.on{background:#41B574;color:#14212E}
.page{padding-block:32px 48px}
.page h1{font-size:32px;line-height:38px;color:var(--brand)}
.page h2{font-size:21px;line-height:27px;color:var(--brand);margin-top:28px}
.page p,.page li{max-width:68ch}
.prose{margin-top:16px}
.ph-band{background:var(--brand-deep);color:var(--on-deep);padding-block:28px}
.ph-band h1{color:var(--on-deep)}
.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.cat-chips span{padding:6px 12px;border-radius:999px;background:var(--deep-card);font-weight:600;font-size:14px}
.cta-box{background:var(--sand);border-radius:14px;padding:20px;margin-top:32px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.vin{font-family:var(--font-data);font-size:20px;letter-spacing:2px;background:var(--surface-200);border:1px dashed var(--line);border-radius:8px;padding:12px;overflow-x:auto;max-width:100%}
.vin b{color:var(--alert-ink)}
.plan{display:grid;gap:12px;margin-top:20px}
.plan button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface-200);color:var(--ink);text-align:left}
.plan b{font-family:var(--font-display);font-size:16px}
.plan span{font-size:14px;color:var(--ink-muted)}
.plan .grp{font-family:var(--font-display);font-weight:600;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-muted);margin-top:12px}
.wa{background:#0F2E1E;color:#E8F5EC;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.wa h2{color:#FFFFFF;font-size:21px;line-height:27px}
.wa p{margin:0;color:#B7DCC5}
.wa .btn-wa{background:#41B574;color:#0B1F14}
.wa .row{display:flex;gap:8px}
.wa select,.wa input[type=tel]{height:48px;border-radius:8px;border:1px solid #2E5C42;background:#123824;color:#FFFFFF;font:inherit;padding:0 10px;min-width:0}
.wa input[type=tel]{flex:1}
.wa label.c{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:21px;color:#E8F5EC;cursor:pointer}
.wa label.c input{width:20px;height:20px;margin:1px 0 0;accent-color:#41B574;flex:none}
.wa .alt{background:none;border:0;color:#B7DCC5;text-decoration:underline;padding:0;font-size:14px;align-self:flex-start}
.wa .or{font-size:13px;color:#8FBFA2;text-transform:uppercase;letter-spacing:1.2px;font-weight:600}
.wa-ok{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.bubble{background:#DCF8C6;color:#14212E;border-radius:12px 12px 12px 2px;padding:10px 12px;max-width:320px;box-shadow:0 1px 1px rgba(0,0,0,.15)}
.bubble .doc{display:flex;gap:10px;align-items:center;background:#F0FFF4;border-radius:8px;padding:8px;margin-top:6px}
.bubble .doc span{font-size:13px;color:#4F5D6B}
.a4{background:#FFFFFF;color:#14212E;max-width:620px;margin:0 auto;border-radius:4px;box-shadow:0 10px 40px rgba(8,20,34,.25);padding:32px;display:flex;flex-direction:column;gap:14px}
.a4 .hd{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #1B3A5C;padding-bottom:12px}
.a4 h1{font-size:26px;color:#1B3A5C}
.a4 h2{font-size:15px;color:#1B3A5C;text-transform:uppercase;letter-spacing:1px;margin-top:6px}
.a4 .grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.a4 .k{background:#F5F7F6;border-radius:6px;padding:8px 10px;font-size:13px}
.a4 .k.w{background:#FCEBDB;color:#9A4A0B}
.a4 ul{margin:0;padding-left:18px;font-size:14px;line-height:21px}
.a4 .ft{border-top:1px solid #D3DBE0;padding-top:10px;font-size:11px;line-height:16px;color:#4F5D6B}

@container app (max-width:759px){.hide-m{display:none!important}.hero h1{font-size:28px;line-height:32px}.hero .wrap{padding-block:20px 32px;gap:18px}}
@container app (min-width:760px){.only-m{display:none}}

/* header */
.top{background:var(--brand-deep);color:var(--on-deep);position:sticky;top:env(safe-area-inset-top,0px);z-index:5}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--brand-deep)}
.top .wrap{height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{display:flex;align-items:center;gap:10px;color:var(--on-deep);text-decoration:none;background:none;border:0;padding:0}
.logo b{display:block;font-family:var(--font-display);font-weight:800;font-size:19px;line-height:20px}
.logo small{display:block;font-family:var(--font-display);font-weight:600;font-size:9px;letter-spacing:2.4px;color:var(--on-deep-muted)}
.top nav{display:flex;gap:4px}
.top nav a,.top nav button{color:var(--on-deep);text-decoration:none;font-weight:600;font-size:15px;padding:10px 12px;border-radius:8px;background:none;border:0}
.top nav a:hover,.top nav button:hover{background:var(--deep-card)}

/* hero */
.hero{background:var(--brand-deep);color:var(--on-deep);position:relative;overflow:hidden}
.hero .wrap{position:relative;display:grid;grid-template-columns:1fr;gap:24px;padding-block:28px 40px}
.hero h1{font-size:34px;line-height:38px;font-weight:800;letter-spacing:-.5px}
.hero .sub{color:var(--on-deep-muted);margin:12px 0 0;max-width:46ch}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pill{font-size:14px;line-height:20px;font-weight:600;padding:6px 10px;border-radius:999px;background:var(--deep-card);color:var(--on-deep)}
.pill svg{vertical-align:-3px;margin-right:4px}
.silh{position:absolute;pointer-events:none;color:var(--silhouette)}
.silh.s1{right:-40px;bottom:-6px;width:330px}
.silh.s2{display:none}
.qcard{background:var(--surface-200);color:var(--ink);border-radius:14px;padding:20px;box-shadow:0 12px 32px rgba(8,20,34,.25);position:relative;z-index:1}
.qhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.bar{height:6px;border-radius:3px;background:var(--brand-tint);overflow:hidden;margin-bottom:16px}
.bar i{display:block;height:100%;background:var(--check);transition:width .25s}
.qtitle{font-size:22px;line-height:28px;font-weight:700;color:var(--brand)}
.answers{display:grid;gap:10px;margin-top:16px}
.ans{min-height:56px;display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface-100);color:var(--ink);text-align:left;font-weight:600;transition:border-color .15s,background .15s}
.ans:hover{border-color:var(--brand)}
.ans .ic{flex:none;width:36px;height:36px;border-radius:8px;background:var(--brand-tint);color:var(--brand);display:grid;place-items:center}
.ans small{display:block;font-weight:400;color:var(--ink-muted);font-size:14px;line-height:18px}
.ans.sel{border-color:var(--action);background:var(--surface-200)}
.ans.soft{background:transparent;border-style:dashed}
.back{background:none;border:0;color:var(--brand);font-weight:600;padding:8px 0;display:inline-flex;align-items:center;gap:4px}
.why{font-size:14px;color:var(--ink-muted);margin-top:14px;background:none;border:0;padding:0;text-decoration:underline}
.whytxt{font-size:14px;line-height:20px;color:var(--ink-muted);background:var(--brand-tint);border-radius:8px;padding:10px 12px;margin-top:8px}
.trust{font-size:14px;line-height:20px;color:var(--ink-muted);margin-top:14px;display:flex;gap:8px;align-items:flex-start}

/* sections */
section.band{padding-block:48px}
.band h2{font-size:26px;line-height:32px;color:var(--brand)}
.band .lead{color:var(--ink-muted);margin:8px 0 0;max-width:60ch}
.b-sand{background:var(--sand)}
.b-tint{background:var(--brand-tint)}
.b-deep{background:var(--brand-deep);color:var(--on-deep)}
.b-deep h2{color:var(--on-deep)}
.steps{display:grid;gap:12px;margin-top:24px}
.step{display:flex;gap:14px;align-items:flex-start;background:var(--surface-200);border-radius:12px;padding:16px}
.step .n{flex:none;width:36px;height:36px;border-radius:50%;background:var(--brand-deep);color:#fff;font-family:var(--font-display);font-weight:800;display:grid;place-items:center}
.step h3{font-size:17px;line-height:22px;color:var(--ink)}
.step p{margin:4px 0 0;color:var(--ink-muted);font-size:15px;line-height:22px}
.grid-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}
.tile{background:var(--surface-200);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.tile .ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:var(--brand-tint);color:var(--brand)}
.tile.warn .ic{background:var(--alert-tint);color:var(--alert-ink)}
.tile b{font-size:15px;line-height:20px}
.tile span{font-size:13px;line-height:18px;color:var(--ink-muted)}
.models{display:grid;gap:10px;margin-top:24px}
.mrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:var(--surface-200);border-radius:10px;min-width:0;border:0;color:var(--ink);text-align:left;width:100%;text-decoration:none;cursor:pointer}
a.mrow:hover{outline:1.5px solid var(--brand)}
.mrow b{font-family:var(--font-display);font-size:16px}
.mrow .mono{font-size:13px;color:var(--ink-muted);white-space:nowrap}
.mrow .cnt{font-size:12px;color:var(--ink-muted);display:block}
.src{display:grid;gap:10px;margin-top:24px}
.srcitem{background:var(--deep-card);border-radius:10px;padding:14px}
.srcitem b{display:block}
.srcitem span{color:var(--on-deep-muted);font-size:14px;line-height:20px}
.limit{margin-top:16px;padding:14px;border-radius:10px;border:1px solid var(--deep-line);color:var(--on-deep-muted);font-size:15px}
.port{display:grid;gap:16px;align-items:center}
.port form{display:flex;flex-direction:column;gap:10px}
.port input{height:48px;border-radius:8px;border:1px solid var(--line);padding:0 12px;font:inherit;background:var(--surface-200);color:var(--ink);width:100%}
.ok{font-weight:600;color:var(--action)}
.blog{display:grid;gap:12px;margin-top:24px}
.post{background:var(--surface-200);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.post .ph{height:84px;background:var(--brand-tint);color:var(--silhouette);display:grid;place-items:center}
.post .bd{padding:14px}
.post b{font-family:var(--font-display);font-size:16px;line-height:21px;display:block}
.post span{font-size:13px;color:var(--ink-muted)}
.faq details{background:var(--surface-200);border-radius:10px;padding:14px 16px;margin-top:10px}
.faq summary{font-weight:600;cursor:pointer}
.faq p{margin:8px 0 0;color:var(--ink-muted)}
footer{background:#0E1E30;color:#B9CCDD;padding-block:28px;font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}
footer a{color:#E8EEF2}

/* app screens */
.screen{min-height:calc(100vh - 60px)}
.qscreen{background:var(--brand-deep);padding-block:24px 48px}
.qscreen .qcard{max-width:560px;margin:0 auto}
.load{display:grid;place-items:center;text-align:center;background:var(--brand-deep);color:var(--on-deep);padding:48px 16px}
.spin{width:56px;height:56px;border-radius:50%;border:5px solid var(--deep-card);border-top-color:var(--check);animation:sp 1s linear infinite;margin:0 auto 20px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}.bar i{transition:none}}
.res-head{background:var(--sand);padding-block:20px 24px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tag{min-height:36px;padding:6px 10px;border-radius:6px;background:var(--surface-200);border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--ink);display:inline-flex;gap:6px;align-items:center;text-decoration:none}
a.tag,a.tag:hover,a.tag:visited{color:var(--ink);text-decoration:none}
.res-head h1{font-size:28px;line-height:34px;color:var(--brand);margin-top:16px}
.cards{display:grid;gap:14px;padding-block:20px}
.card{background:var(--surface-200);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 2px rgba(20,33,46,.08);text-align:left;color:var(--ink);width:100%}
.card h2{font-size:20px;line-height:26px}
.badge{padding:2px 8px;border-radius:4px;background:var(--brand-tint);color:var(--brand);font-size:13px;line-height:20px;font-weight:600;white-space:nowrap}
.price{padding:10px 12px;background:var(--surface-100);border-radius:8px;display:flex;flex-direction:column}
.price span:first-child{font-size:13px;color:var(--ink-muted)}
.why1{margin:0;color:var(--ink-muted);font-size:15px}
.refine{background:var(--brand-tint);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:14px;margin-bottom:32px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:44px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface-200);color:var(--ink)}
.chip.on{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}
.empty{background:var(--alert-tint);border-radius:14px;padding:18px;margin-block:20px;display:flex;flex-direction:column;gap:12px}
.fiche-head{background:var(--brand-deep);color:var(--on-deep);padding-block:20px 28px;position:relative;overflow:hidden}
.fiche-head h1{font-size:30px;line-height:36px;margin-top:8px}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;position:relative;z-index:1}
.kpi{background:var(--deep-card);border-radius:10px;padding:10px 12px;min-width:0}
.kpi span{display:block;font-size:13px;color:var(--on-deep-muted)}
.kpi.w{background:var(--alert)}
.kpi.w span,.kpi.w b{color:#14212E}
.fiche{display:grid;gap:0;padding-block:8px 32px}
.fs{padding-block:22px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.fs h2{font-size:20px;line-height:26px;color:var(--brand)}
.box{background:var(--surface-200);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.srcpill{align-self:flex-start;padding:2px 8px;border-radius:4px;background:var(--brand-tint);font-size:13px;line-height:20px;color:var(--ink-muted)}
.warnbox{background:var(--alert-tint);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}
.warnbox .t{display:flex;gap:8px;align-items:center;color:var(--alert-ink);font-family:var(--font-display);font-weight:700}
.chk label{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding-top:6px;cursor:pointer}
.chk input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--brand);flex:none}
.wear{display:flex;flex-wrap:wrap;gap:8px}
.wear span{padding:6px 12px;border-radius:4px;background:var(--sand);font-weight:600;font-size:15px}
.note{background:var(--brand-tint);border-radius:10px;padding:14px;font-size:14px;line-height:20px;margin-top:20px}
.actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.eng li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.eng{list-style:none;margin:0;padding:0}
.demo{font-size:12px;background:var(--alert);color:#14212E;text-align:center;padding:4px 8px;font-weight:600}

@container app (min-width:760px){
  .hero .wrap{grid-template-columns:1.05fr .95fr;align-items:center;padding-block:56px 72px;gap:48px}
  .hero h1{font-size:48px;line-height:52px}
  .silh.s1{right:auto;left:-20px;bottom:-10px;width:420px;opacity:.9}
  .silh.s2{display:block;left:380px;bottom:-14px;width:300px}
  .steps,.src{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .models{grid-template-columns:repeat(2,minmax(0,1fr))}
  .blog{grid-template-columns:repeat(3,minmax(0,1fr))}
  .port{grid-template-columns:1fr 1fr}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fiche-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px;align-items:start}
  .side{position:sticky;top:84px;margin-top:22px}
  .actions{flex-direction:column}
}
@container app (min-width:1000px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Laravel bridge */
.ans-form{display:grid;gap:10px;margin-top:16px;width:100%}
button.ans{width:100%}
.screen-live{min-height:calc(100vh - 60px)}
.qscreen-live{background:var(--brand-deep);padding-block:24px 48px}
.qscreen-live .qcard{max-width:560px;margin:0 auto}
.footer-links{display:flex;flex-wrap:wrap;gap:16px}
.footer-links a{color:#E8EEF2;text-decoration:none}
.laravel-flash{margin:12px 0}
