/* ==========================================================================
   Cityc — surcouche Bootstrap 5.3
   1. Jetons  2. Base  3. Composants Bootstrap  4. En-tête  5. Sections
   6. Maquette produit  7. Formulaires  8. Pied de page  9. Utilitaires
   ========================================================================== */

/* 1. Jetons ---------------------------------------------------------------- */
:root{
  --c-primary:#0D5398; --c-primary-rgb:13,83,152;
  --c-primary-700:#093E73; --c-primary-50:#EAF1F9; --c-primary-100:#D5E3F2;
  --c-ink:#14202E; --c-ink-2:#465364; --c-ink-3:#6B7684;
  --c-bg:#FFFFFF; --c-surface:#F5F7FA; --c-surface-2:#EDF1F6;
  --c-line:rgba(20,32,46,.12);
  --c-signal:#D62828;           /* rouge d'alerte : usage ponctuel uniquement */
  --c-amber-bg:#FFF3E0; --c-amber-ink:#8A3B00;
  --c-success:#1E7B4F;
  --radius-sm:.375rem; --radius:.625rem; --radius-lg:1rem;
  --shadow-sm:0 1px 2px rgba(13,40,80,.06),0 1px 3px rgba(13,40,80,.08);
  --shadow:0 6px 24px -8px rgba(13,40,80,.18);
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --fs-hero:clamp(2.1rem,1.3rem + 3vw,3.5rem);
  --fs-h2:clamp(1.6rem,1.2rem + 1.4vw,2.25rem);
  --fs-h3:clamp(1.15rem,1.05rem + .4vw,1.35rem);
  --sec-y:clamp(3.5rem,7vw,6.5rem);

  /* Mapping Bootstrap */
  --bs-primary:var(--c-primary); --bs-primary-rgb:var(--c-primary-rgb);
  --bs-body-font-family:var(--font); --bs-body-color:var(--c-ink);
  --bs-body-font-size:1rem; --bs-body-line-height:1.6;
  --bs-link-color:var(--c-primary); --bs-link-color-rgb:var(--c-primary-rgb);
  --bs-link-hover-color:var(--c-primary-700); --bs-link-hover-color-rgb:9,62,115;
  --bs-border-color:var(--c-line); --bs-border-radius:var(--radius);
  --bs-secondary-color:var(--c-ink-2);
  --bs-focus-ring-color:rgba(var(--c-primary-rgb),.35);
}

/* 2. Base ------------------------------------------------------------------ */
html{scroll-padding-top:6rem}
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.h1,.h2,.h3{font-weight:700;letter-spacing:-.015em;color:var(--c-ink);text-wrap:balance}
h1,.display-hero{font-size:var(--fs-hero);line-height:1.08;font-weight:800;letter-spacing:-.025em}
h2{font-size:var(--fs-h2);line-height:1.15}
h3{font-size:var(--fs-h3);line-height:1.3}
p{text-wrap:pretty}
.lead{font-size:clamp(1.05rem,1rem + .3vw,1.2rem);color:var(--c-ink-2);font-weight:400}
.text-muted-2{color:var(--c-ink-2)!important}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c-primary);margin-bottom:.75rem}
.skip-link{position:absolute;left:1rem;top:-3rem;z-index:2000;background:var(--c-ink);color:#fff;padding:.5rem 1rem;border-radius:var(--radius-sm)}
.skip-link:focus{top:1rem;color:#fff}
:focus-visible{outline:3px solid rgba(var(--c-primary-rgb),.55);outline-offset:2px}
img{max-width:100%;height:auto}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 3. Composants Bootstrap --------------------------------------------------- */
.btn{--bs-btn-font-weight:700;--bs-btn-padding-y:.7rem;--bs-btn-padding-x:1.25rem;--bs-btn-border-radius:var(--radius-sm);min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}
.btn-sm{--bs-btn-padding-y:.45rem;--bs-btn-padding-x:.9rem;min-height:38px}
.btn-lg{--bs-btn-padding-y:.9rem;--bs-btn-padding-x:1.6rem;--bs-btn-font-size:1.05rem}
.btn-primary{--bs-btn-bg:var(--c-primary);--bs-btn-border-color:var(--c-primary);--bs-btn-hover-bg:var(--c-primary-700);--bs-btn-hover-border-color:var(--c-primary-700);--bs-btn-active-bg:var(--c-primary-700);--bs-btn-active-border-color:var(--c-primary-700);--bs-btn-disabled-bg:var(--c-primary);--bs-btn-disabled-border-color:var(--c-primary)}
.btn-outline-primary{--bs-btn-color:var(--c-primary);--bs-btn-border-color:var(--c-primary);--bs-btn-hover-bg:var(--c-primary);--bs-btn-hover-border-color:var(--c-primary);--bs-btn-active-bg:var(--c-primary-700);--bs-btn-border-width:2px}
.btn-light{--bs-btn-bg:#fff;--bs-btn-border-color:#fff;--bs-btn-color:var(--c-primary)}
.badge-soft{background:var(--c-primary-50);color:var(--c-primary);font-weight:600;border-radius:999px;padding:.35em .75em;font-size:.78rem}
.accordion{--bs-accordion-active-bg:var(--c-primary-50);--bs-accordion-active-color:var(--c-ink);--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(var(--c-primary-rgb),.25);--bs-accordion-border-color:var(--c-line)}
.accordion-button{font-weight:600}
.nav-pills{--bs-nav-pills-link-active-bg:var(--c-primary)}
.breadcrumb{--bs-breadcrumb-font-size:.85rem;--bs-breadcrumb-divider-color:var(--c-ink-3);margin-bottom:1rem}
.breadcrumb a{text-decoration:none}

/* 4. En-tête ---------------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:1030;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.site-header.is-scrolled{border-bottom-color:var(--c-line);box-shadow:var(--shadow-sm)}
.site-header .navbar{--bs-navbar-padding-y:.65rem}
.navbar-brand{flex-shrink:0}.navbar-brand img{height:30px;width:auto;max-width:none}
.site-header .nav-link{font-weight:600;font-size:.95rem;color:var(--c-ink);padding:.6rem .8rem!important;border-radius:var(--radius-sm)}
.site-header .nav-link:hover,.site-header .nav-link:focus{color:var(--c-primary);background:var(--c-primary-50)}
.site-header .nav-link.active{color:var(--c-primary)}
.site-header .nav-util{font-weight:500;font-size:.9rem;color:var(--c-ink-2);text-decoration:none;white-space:nowrap}
.site-header .nav-util:hover{color:var(--c-primary)}
.dropdown-menu{--bs-dropdown-border-color:var(--c-line);--bs-dropdown-border-radius:var(--radius);--bs-dropdown-box-shadow:var(--shadow);--bs-dropdown-link-active-bg:var(--c-primary-50);--bs-dropdown-link-active-color:var(--c-ink);--bs-dropdown-padding-y:.5rem;box-shadow:var(--bs-dropdown-box-shadow)}
.dropdown-mega{min-width:min(34rem,92vw);padding:.75rem}
.dropdown-mega .dropdown-item{white-space:normal;border-radius:var(--radius-sm);padding:.6rem .75rem}
.dropdown-item strong{display:block;font-weight:600;color:var(--c-ink)}
.dropdown-item small{display:block;color:var(--c-ink-3);font-size:.8rem;line-height:1.35}
.dropdown-item:hover strong{color:var(--c-primary)}
@media (min-width:992px){.dropdown-mega .mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:.15rem}}
@media (max-width:991.98px){
  .site-header .navbar-collapse{max-height:calc(100dvh - 70px);overflow-y:auto;padding-bottom:1rem;background:#fff}
  .dropdown-mega{min-width:0;box-shadow:none;border:0;padding:0 0 0 .5rem}
}
/* Bandeau d'actualité (PICS) */
.notice-bar{background:var(--c-amber-bg);color:var(--c-amber-ink);font-size:.92rem;border-bottom:1px solid rgba(138,59,0,.15)}
.notice-bar a{color:var(--c-amber-ink);font-weight:700}
.notice-bar .btn-close{--bs-btn-close-opacity:.6;width:.7em;height:.7em}
.notice-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--c-signal);display:inline-block;flex:none;animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(214,40,40,.5)}70%{box-shadow:0 0 0 8px rgba(214,40,40,0)}100%{box-shadow:0 0 0 0 rgba(214,40,40,0)}}

/* 5. Sections -------------------------------------------------------------- */
.sec{padding-block:var(--sec-y)}
.sec-tight{padding-block:clamp(2.5rem,5vw,4rem)}
.sec-surface{background:var(--c-surface)}
.sec-dark{background:var(--c-ink);color:#E6ECF3}
.sec-dark h2,.sec-dark h3{color:#fff}
.sec-dark .lead{color:#B8C4D3}
.sec-head{max-width:46rem;margin-bottom:clamp(2rem,4vw,3rem)}
.hero{padding-block:clamp(2.5rem,6vw,5rem) clamp(3rem,6vw,5.5rem);background:linear-gradient(180deg,var(--c-surface) 0%,#fff 100%)}
.hero .reassure{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.88rem;color:var(--c-ink-2);margin-top:1.5rem;padding:0;list-style:none}
.hero .reassure li{display:flex;align-items:center;gap:.4rem}
.hero .reassure i{color:var(--c-success)}
.page-hero{padding-block:clamp(2.5rem,5vw,4.5rem);background:var(--c-surface);border-bottom:1px solid var(--c-line)}
.page-hero h1{font-size:clamp(1.9rem,1.3rem + 2.2vw,2.9rem)}

/* Aiguillage : deux cibles de même rang */
.target-card{position:relative;display:flex;flex-direction:column;height:100%;border-radius:var(--radius-lg);overflow:hidden;background:#fff;border:1px solid var(--c-line);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit}
.target-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:inherit}
.target-card .tc-media{aspect-ratio:16/8;overflow:hidden;background:var(--c-surface-2)}
.target-card .tc-media img{width:100%;height:100%;object-fit:cover}
.target-card .tc-body{padding:clamp(1.25rem,2.5vw,2rem);display:flex;flex-direction:column;flex:1}
.target-card .tc-kicker{font-size:.85rem;color:var(--c-ink-3);margin-bottom:.25rem}
.target-card ul{padding-left:0;list-style:none;margin:1rem 0 1.25rem}
.target-card li{display:flex;gap:.6rem;padding:.3rem 0}
.target-card li i{color:var(--c-primary);margin-top:.15rem}
.target-card .tc-link{margin-top:auto;font-weight:700;color:var(--c-primary)}
.target-card:hover .tc-link .bi{transform:translateX(3px)}
.tc-link .bi{display:inline-block;transition:transform .2s}

/* Preuves */
.proof-row{display:grid;grid-template-columns:9rem 1fr;gap:1rem;align-items:center;padding-block:.9rem;border-top:1px solid var(--c-line)}
.proof-row:first-child{border-top:0}
.proof-refs .proof-row{grid-template-columns:12rem 1fr}
.proof-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink-3)}
.wordmarks{display:flex;flex-wrap:wrap;gap:.6rem 2rem;align-items:center}
.wordmark{font-weight:700;color:#7C8796;font-size:1rem;letter-spacing:-.01em;white-space:nowrap}
@media (max-width:575.98px){.proof-row,.proof-refs .proof-row{grid-template-columns:1fr;gap:.4rem}}
.kpi{padding:1.25rem 1.25rem 1.1rem;border-radius:var(--radius);background:#fff;border:1px solid var(--c-line)}
.kpi-value{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.2rem);font-weight:800;color:var(--c-primary);line-height:1;letter-spacing:-.02em}
.kpi-label{font-size:.88rem;color:var(--c-ink-2);margin-top:.35rem}

/* Deux piliers */
.pillar{height:100%;padding:clamp(1.5rem,3vw,2.25rem);border-radius:var(--radius-lg);background:#fff;border:1px solid var(--c-line)}
.pillar-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;color:var(--c-primary);background:var(--c-primary-50);padding:.3rem .65rem;border-radius:999px;margin-bottom:1rem}
.check-list{list-style:none;padding:0;margin:0}
.check-list li{position:relative;padding:.4rem 0 .4rem 1.75rem}
.check-list li::before{content:"";position:absolute;left:0;top:.75rem;width:1rem;height:.55rem;border-left:2.5px solid var(--c-primary);border-bottom:2.5px solid var(--c-primary);transform:rotate(-45deg)}
.pillar-join{display:flex;align-items:center;justify-content:center}
.pillar-join span{width:2.75rem;height:2.75rem;border-radius:50%;background:var(--c-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.3rem;box-shadow:0 0 0 6px #fff}

/* Cycle de crise */
.cycle{counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(255,255,255,.12)}
.cycle-step{counter-increment:step;padding:1.75rem 1.5rem;border-left:1px solid rgba(255,255,255,.12);position:relative}
.cycle-step:first-child{border-left:0}
.cycle-step::before{content:"0" counter(step);display:block;font-size:.85rem;font-weight:700;color:#7FB2E5;margin-bottom:.6rem;letter-spacing:.05em}
.cycle-step h3{font-size:1.15rem;margin-bottom:.4rem}
.cycle-step p{color:#B8C4D3;font-size:.94rem;margin:0}
@media (max-width:991.98px){.cycle{grid-template-columns:1fr 1fr}.cycle-step:nth-child(3){border-left:0}.cycle-step:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}}
@media (max-width:575.98px){.cycle{grid-template-columns:1fr}.cycle-step{border-left:0;border-top:1px solid rgba(255,255,255,.12)}.cycle-step:first-child{border-top:0}}
.video-frame{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;background:#0E1A28;display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none}
.video-frame .play{width:4.5rem;height:4.5rem;border-radius:50%;background:#fff;color:var(--c-primary);display:flex;align-items:center;justify-content:center;font-size:2rem;transition:transform .2s}
.video-frame:hover .play{transform:scale(1.06)}
.video-frame .caption{position:absolute;left:1.25rem;bottom:1rem;font-size:.9rem;color:#C8D3E0}

/* Témoignages */
.quote{height:100%;padding:1.75rem;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--c-line);display:flex;flex-direction:column}
.quote blockquote{font-size:1.02rem;line-height:1.55;margin:0 0 1.25rem}
.quote blockquote::before{content:"\201C";display:block;font-size:3rem;line-height:.6;color:var(--c-primary-100);font-weight:800;margin-bottom:.5rem}
.quote figcaption{margin-top:auto;font-size:.9rem;color:var(--c-ink-2)}
.quote figcaption strong{display:block;color:var(--c-ink)}
.quote .badge-soft{align-self:flex-start;margin-bottom:1rem}

/* Carrousel de témoignages (alimenté par assets/data/temoignages.json) */
.tq{position:relative}
.tq-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:2px;margin:-2px;overscroll-behavior-x:contain}
.tq-track::-webkit-scrollbar{display:none}
.tq-track:focus-visible{outline:2px solid var(--c-primary);outline-offset:4px;border-radius:var(--radius-lg)}
.tq-item{scroll-snap-align:start;min-width:0}
.tq-item .quote{height:100%}
@media (min-width:768px){.tq:not(.tq-1) .tq-track{grid-auto-columns:calc((100% - 1.5rem)/2)}}
@media (min-width:992px){.tq:not(.tq-1):not(.tq-2) .tq-track{grid-auto-columns:calc((100% - 3rem)/3)}}
.tq-controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.25rem}
.tq-controls[hidden]{display:none}
.tq-btn{width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--c-line);background:#fff;color:var(--c-primary);display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}
.tq-btn:hover{border-color:var(--c-primary);background:var(--c-primary-50,#EEF4FB)}
.tq-btn:disabled{opacity:.4;pointer-events:none}
.tq-dots{display:flex;gap:.5rem}
.tq-dot{width:.6rem;height:.6rem;border-radius:50%;border:0;padding:0;background:var(--c-line)}
.tq-dot[aria-current="true"]{background:var(--c-primary);width:1.5rem;border-radius:1rem}
@media (prefers-reduced-motion:reduce){.tq-track{scroll-behavior:auto}}

/* Achat / conformité */
.trust-item{display:flex;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--c-line)}
.trust-item:first-child{border-top:0}
.trust-item i{font-size:1.4rem;color:var(--c-primary);flex:none;margin-top:.1rem}
.trust-item h3{font-size:1.02rem;margin-bottom:.2rem}
.trust-item p{margin:0;color:var(--c-ink-2);font-size:.94rem}

/* Ressources */
.res-card{display:flex;flex-direction:column;height:100%;padding:1.5rem;border-radius:var(--radius);border:1px solid var(--c-line);background:#fff;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}
.res-card:hover{border-color:rgba(var(--c-primary-rgb),.45);box-shadow:var(--shadow-sm);color:inherit}
.res-card .res-type{font-size:.78rem;font-weight:700;color:var(--c-ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem}
.res-card h3{font-size:1.08rem;margin-bottom:.5rem}
.res-card p{font-size:.94rem;color:var(--c-ink-2)}
.res-card .tc-link{margin-top:auto;font-weight:700;color:var(--c-primary);font-size:.94rem}
.filter-chips .btn{--bs-btn-padding-y:.4rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:.9rem;min-height:40px;border-radius:999px}
.filter-chips .btn[aria-pressed="true"]{background:var(--c-ink);border-color:var(--c-ink);color:#fff}

/* Bloc fonctionnalité (pages internes) */
.feature-row{padding-block:clamp(2rem,4vw,3rem);border-top:1px solid var(--c-line)}
.feature-row:first-of-type{border-top:0}
.feature-row h2{font-size:clamp(1.35rem,1.1rem + .9vw,1.8rem)}
.mod-card{height:100%;padding:1.5rem;border-radius:var(--radius);background:#fff;border:1px solid var(--c-line)}
.mod-card i{font-size:1.5rem;color:var(--c-primary);display:block;margin-bottom:.75rem}
.mod-card h3{font-size:1.05rem}
.mod-card p{font-size:.94rem;color:var(--c-ink-2);margin:0}
.mod-card.wide{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.mod-card.wide h3,.mod-card.wide i{color:#fff}.mod-card.wide p{color:#D5E3F2}
.sector{padding:1.5rem 0;border-top:1px solid var(--c-line)}
.sector:first-child{border-top:0;padding-top:0}

/* Compte à rebours PICS */
.countdown{display:inline-flex;align-items:baseline;gap:.5rem;padding:.6rem 1rem;border-radius:var(--radius);background:var(--c-amber-bg);color:var(--c-amber-ink);font-weight:600}
.countdown strong{font-size:1.8rem;font-weight:800;line-height:1}
.checklist-q{padding:1rem 0;border-top:1px solid var(--c-line)}
.checklist-q:first-of-type{border-top:0}
.score-box{border-radius:var(--radius);padding:1.25rem;background:var(--c-surface);display:none}
.score-box.show{display:block}
.progress{--bs-progress-bar-bg:var(--c-primary);height:.6rem}

/* Tarifs */
.price-card{height:100%;padding:1.75rem;border-radius:var(--radius-lg);border:1px solid var(--c-line);background:#fff;display:flex;flex-direction:column}
.price-card.featured{border:2px solid var(--c-primary);box-shadow:var(--shadow)}
.price{font-size:2rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.price small{font-size:.95rem;font-weight:500;color:var(--c-ink-2)}
.price-card .btn{margin-top:auto}

/* CTA final */
.cta-final{background:var(--c-primary);color:#fff;border-radius:var(--radius-lg);padding:clamp(1.75rem,4vw,3rem)}
.cta-final h2{color:#fff}
.cta-final p{color:#D5E3F2}

/* 6. Maquette produit (à remplacer par des captures réelles) -------------- */
.mock{position:relative;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--c-line);box-shadow:0 30px 60px -30px rgba(13,40,80,.35),var(--shadow-sm);overflow:hidden;font-size:.8rem}
.mock-bar{display:flex;align-items:center;gap:.4rem;padding:.6rem .8rem;border-bottom:1px solid var(--c-line);background:var(--c-surface)}
.mock-bar i{width:.6rem;height:.6rem;border-radius:50%;background:#D5DAE1;display:block}
.mock-bar span{margin-left:.5rem;font-weight:600;color:var(--c-ink-3)}
.mock-tabs{display:flex;gap:.25rem;padding:.6rem .8rem 0}
.mock-tabs b{padding:.35rem .7rem;border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-weight:600;color:var(--c-ink-3)}
.mock-tabs b.on{background:var(--c-primary-50);color:var(--c-primary)}
.mock-body{display:grid;grid-template-columns:1.1fr 1fr;gap:.8rem;padding:.8rem;background:var(--c-primary-50)}
.mock-panel{background:#fff;border-radius:var(--radius-sm);padding:.8rem;border:1px solid var(--c-line)}
.mock-panel h4{font-size:.78rem;font-weight:700;margin:0 0 .55rem;color:var(--c-ink);text-transform:uppercase;letter-spacing:.04em}
.mock-msg{background:var(--c-surface);border-radius:var(--radius-sm);padding:.55rem;color:var(--c-ink-2);line-height:1.4;margin-bottom:.55rem}
.chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.6rem}
.chips em{font-style:normal;font-weight:600;font-size:.7rem;padding:.2rem .5rem;border-radius:999px;border:1px solid var(--c-primary-100);color:var(--c-primary);background:#fff}
.chips em.on{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.mock-meter{display:flex;justify-content:space-between;font-weight:600;color:var(--c-ink-2);margin-bottom:.25rem}
.mock-meter b{color:var(--c-success)}
.mock-progress{height:.4rem;border-radius:999px;background:var(--c-surface-2);overflow:hidden;margin-bottom:.7rem}
.mock-progress span{display:block;height:100%;width:82%;background:var(--c-success);border-radius:999px}
.mock-btn{display:block;text-align:center;background:var(--c-signal);color:#fff;font-weight:700;border-radius:var(--radius-sm);padding:.45rem}
.mock-list{list-style:none;padding:0;margin:0}
.mock-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem 0;border-top:1px solid var(--c-line);color:var(--c-ink-2)}
.mock-list li:first-child{border-top:0}
.st{font-size:.65rem;font-weight:700;padding:.12rem .45rem;border-radius:999px;white-space:nowrap}
.st-ok{background:#E3F4EA;color:var(--c-success)}
.st-run{background:var(--c-amber-bg);color:var(--c-amber-ink)}
.st-todo{background:var(--c-surface-2);color:var(--c-ink-3)}
.mock-map{margin-top:.6rem;height:4.2rem;border-radius:var(--radius-sm);background:
  radial-gradient(circle at 30% 55%,rgba(214,40,40,.35) 0 14%,transparent 15%),
  linear-gradient(115deg,transparent 46%,rgba(13,83,152,.25) 47% 52%,transparent 53%),
  repeating-linear-gradient(0deg,#EEF2F7 0 10px,#E6ECF3 10px 11px),
  repeating-linear-gradient(90deg,transparent 0 10px,#E6ECF3 10px 11px)}
@media (max-width:575.98px){.mock-body{grid-template-columns:1fr}.mock-panel.hide-xs{display:none}}

/* 7. Formulaires ------------------------------------------------------------ */
.form-control,.form-select{min-height:48px;border-radius:var(--radius-sm);border-color:rgba(20,32,46,.22)}
.form-control:focus,.form-select:focus{border-color:var(--c-primary);box-shadow:0 0 0 .2rem rgba(var(--c-primary-rgb),.18)}
.form-label{font-weight:600;font-size:.92rem;margin-bottom:.35rem}
.form-text{color:var(--c-ink-3)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;border:2px solid rgba(var(--c-primary-rgb),.35);border-radius:var(--radius-sm);font-weight:700;color:var(--c-primary);cursor:pointer;transition:background .15s,border-color .15s}
.seg label:hover{background:var(--c-primary-50)}
.seg input:checked+label{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.seg input:focus-visible+label{outline:3px solid rgba(var(--c-primary-rgb),.55);outline-offset:2px}
.was-validated .seg input:invalid+label{border-color:var(--bs-form-invalid-border-color)}
.form-card{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:clamp(1.25rem,3vw,2rem);box-shadow:var(--shadow-sm)}
.steps-nav{display:flex;gap:.5rem;list-style:none;padding:0;margin:0 0 1.5rem;font-size:.85rem;font-weight:600;color:var(--c-ink-3)}
.steps-nav li{display:flex;align-items:center;gap:.4rem}
.steps-nav li+li::before{content:"";width:1.5rem;height:1px;background:var(--c-line);margin-right:.2rem}
.steps-nav b{width:1.6rem;height:1.6rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--c-surface-2);color:var(--c-ink-3);font-size:.8rem}
.steps-nav li.on{color:var(--c-ink)}.steps-nav li.on b{background:var(--c-primary);color:#fff}
.steps-nav li.done b{background:var(--c-success);color:#fff}
.slots-day{margin-bottom:1rem}
.slots-day legend{font-size:.95rem;margin-bottom:.5rem}
.slot-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.slot-grid input{position:absolute;opacity:0}
.slot-grid label{min-width:5.2rem;min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(var(--c-primary-rgb),.35);border-radius:var(--radius-sm);font-weight:600;color:var(--c-primary);cursor:pointer}
.slot-grid input:checked+label{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.slot-grid input:focus-visible+label{outline:3px solid rgba(var(--c-primary-rgb),.55)}

/* 8. Pied de page ----------------------------------------------------------- */
.site-footer{background:var(--c-ink);color:#B8C4D3;font-size:.92rem;padding-top:clamp(3rem,6vw,4.5rem)}
.site-footer h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin-bottom:1rem}
.site-footer a{color:#D8E1EC;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{padding:.25rem 0}
.footer-logo{background:#fff;border-radius:var(--radius-sm);padding:.5rem .7rem;display:inline-block}
.footer-logo img{height:24px;width:auto;display:block}
.footer-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:2.5rem;padding-block:1.25rem;font-size:.82rem;color:#8E9BAC}
.footer-legal a{color:#B8C4D3}

/* Barre d'action mobile */
.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:1040;display:flex;gap:.5rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--c-line);box-shadow:0 -6px 20px -10px rgba(13,40,80,.3);transform:translateY(110%);transition:transform .25s}
.mobile-cta.show{transform:none}
.mobile-cta .btn{flex:1}
@media (max-width:991.98px){body.has-mobile-cta{padding-bottom:5rem}}

/* 9. Utilitaires ------------------------------------------------------------ */
.maxw-prose{max-width:42rem}
.link-arrow{font-weight:700;text-decoration:none}
.link-arrow .bi{display:inline-block;transition:transform .2s}
.link-arrow:hover .bi{transform:translateX(3px)}
.rounded-lg{border-radius:var(--radius-lg)!important}
.img-cover{width:100%;height:100%;object-fit:cover}
.to-complete{background:rgba(255,196,0,.18);border-bottom:1px dashed #B58500;padding:0 .15em}

/* 10. Correctifs mobile ------------------------------------------------------ */
@media (max-width: 767.98px){
  .row.g-5,.row.gx-5{--bs-gutter-x:1.5rem}
  .steps-nav{flex-wrap:wrap;row-gap:.4rem}
  .steps-nav li+li::before{width:.75rem}
}
@media (max-width: 420px){ .steps-nav li:not(.on) span{display:none} }
.navbar .nav-link,.navbar .btn,.nav-util{white-space:nowrap}
@media (min-width: 992px) and (max-width: 1299.98px){
  .navbar .nav-link{padding-left:.45rem!important;padding-right:.45rem!important;font-size:.92rem}
}
@media (min-width: 992px) and (max-width: 1199.98px){
  .nav-util .tel-txt{display:none}
  .nav-util .bi-telephone{font-size:1.1rem}
  .navbar-brand.me-lg-4{margin-right:.75rem!important}
  .site-header .btn-primary{padding-left:.9rem;padding-right:.9rem}
}
/* Les gouttières g-5 (3rem) dépassent la marge du conteneur : on aligne la marge du conteneur */
@media (min-width: 768px){ .container-xl{--bs-gutter-x:3rem} }
@media (min-width: 992px) and (max-width: 1079.98px){
  .navbar .nav-link{padding-left:.3rem!important;padding-right:.3rem!important;font-size:.88rem}
  .site-header .btn-primary{font-size:.88rem}
  .navbar-brand img{height:26px}
}

/* ===== Pages de contenu (modules, secteurs, articles, pages légales) ===== */
@media (min-width:992px){.dropdown-mega.mega-sm{min-width:20rem}.dropdown-mega.mega-sm .mega-grid{grid-template-columns:1fr}}
.price span{font-size:.95rem;font-weight:500}
.steps-list{list-style:none;counter-reset:st;padding:0;margin:0}
.steps-list li{counter-increment:st;position:relative;padding:0 0 1.4rem 3.25rem}
.steps-list li:last-child{padding-bottom:0}
.steps-list li::before{content:counter(st);position:absolute;left:0;top:0;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--c-primary);color:#fff;font-weight:800;display:grid;place-items:center}
.steps-list li:not(:last-child)::after{content:"";position:absolute;left:1.08rem;top:2.4rem;bottom:.2rem;width:2px;background:var(--c-primary-100)}
.steps-list h3{font-size:1.05rem;margin:.35rem 0 .25rem}
.steps-list p{color:var(--c-ink-2);margin:0;font-size:.95rem}
.trust-card{height:100%;padding:1.5rem;border-radius:var(--radius);background:#fff;border:1px solid var(--c-line)}
.trust-card i{font-size:1.5rem;color:var(--c-primary);display:block;margin-bottom:.75rem}
.trust-card h3{font-size:1.05rem}.trust-card p{font-size:.94rem;color:var(--c-ink-2);margin:0}
.vigi-scale{display:grid;gap:.6rem}
.vigi{display:flex;gap:1rem;align-items:center;padding:.85rem 1rem;border-radius:var(--radius-sm);border-left:6px solid;background:#fff;border-top:1px solid var(--c-line);border-right:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}
.vigi strong{min-width:4.5rem}.vigi span{color:var(--c-ink-2);font-size:.95rem}
.v-green{border-left-color:#2E9D57}.v-yellow{border-left-color:#E7C400}.v-orange{border-left-color:#E8730C}.v-red{border-left-color:#D62828}
.vigi-live{background:#fff;border:1px solid var(--c-line);border-left:8px solid var(--c-line);border-radius:var(--radius);padding:1.25rem 1.4rem}
.vigi-live-label{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:700;color:var(--c-ink-3);margin-bottom:.4rem}
.vigi-live-level{font-size:1.1rem;margin-bottom:.4rem}.vigi-live-meta{color:var(--c-ink-2)}
.vigi-live[data-niveau="vert"]{border-left-color:#2E9D57}.vigi-live[data-niveau="jaune"]{border-left-color:#E7C400}.vigi-live[data-niveau="orange"]{border-left-color:#E8730C}.vigi-live[data-niveau="rouge"]{border-left-color:#D62828}
.dep-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5rem}
.dep-grid a{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-sm);text-decoration:none;color:var(--c-ink);font-size:.95rem;min-height:44px}
.dep-grid a:hover,.dep-grid a:focus-visible{border-color:var(--bs-primary);color:var(--bs-primary)}
.dep-num{font-weight:700;min-width:1.8rem;color:var(--c-ink-2)}.dep-name{flex:1}
.dep-dot{font-size:.75rem;font-weight:600;color:var(--c-ink-2)}.dep-dot:empty{display:none}
.dep-dot::before{content:"";display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.3rem;vertical-align:-.05rem;background:currentColor}
[data-niveau="vert"] .dep-dot{color:#2E7D46}[data-niveau="jaune"] .dep-dot{color:#8A7400}[data-niveau="orange"] .dep-dot{color:#B85A08}[data-niveau="rouge"] .dep-dot{color:#B71F1F}
.dep-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--c-line)}
.dep-nav a{text-decoration:none;font-weight:600}.dep-nav-all{order:0}
@media (max-width:575.98px){.dep-nav{justify-content:center}.dep-nav-all{order:3;width:100%;text-align:center}}
.code-sample{background:#0F1B2A;color:#D5E3F2;border-radius:var(--radius);padding:1.25rem;font-size:.86rem;overflow-x:auto;white-space:pre}
.sources{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--c-line);font-size:.88rem;color:var(--c-ink-2)}
.sources h2{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:700;color:var(--c-ink-3)}
.sources ul{padding-left:1.1rem;margin:0}.sources li{margin:.2rem 0;overflow-wrap:anywhere}
.prose{font-size:1.04rem;line-height:1.7}
.prose h2{font-size:clamp(1.3rem,1.1rem + .6vw,1.6rem);margin-top:2.25rem;margin-bottom:.75rem;scroll-margin-top:100px}
.prose h2:first-child{margin-top:0}
.prose ul{padding-left:1.25rem}.prose li{margin:.3rem 0}
.prose .table{font-size:.95rem}
.callout{margin:2rem 0 0;padding:1.25rem 1.4rem;border-radius:var(--radius);background:var(--c-primary-50);border-left:4px solid var(--c-primary)}
.callout strong{display:block;margin-bottom:.25rem}
.toc{position:sticky;top:100px;font-size:.92rem}
.toc-title{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--c-ink-3);margin-bottom:.5rem}
.toc ol{list-style:none;padding:0;margin:0;border-left:2px solid var(--c-line)}
.toc a{display:block;padding:.3rem 0 .3rem .9rem;margin-left:-2px;border-left:2px solid transparent;color:var(--c-ink-2);text-decoration:none}
.toc a:hover,.toc a.is-active{color:var(--c-primary);border-left-color:var(--c-primary)}
.sitemap-list{list-style:none;padding:0;margin:0}.sitemap-list li{padding:.25rem 0}
.sitemap-list a{color:var(--c-ink-2)}
.sector h3 a{color:inherit;text-decoration:none}.sector h3 a:hover{color:var(--c-primary);text-decoration:underline}
.prose .sources h2{font-size:.78rem;margin:0 0 .5rem}
@media (max-width:991.98px){.toc{position:static}}

/* Emplacement de capture produit (à remplacer par une image réelle) */
.shot-placeholder{aspect-ratio:16/10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;padding:1.5rem;border:2px dashed #B58500;border-radius:var(--radius-lg);background:repeating-linear-gradient(45deg,rgba(255,196,0,.08) 0 14px,rgba(255,196,0,.16) 14px 28px);color:var(--c-ink-2)}
.shot-placeholder i{font-size:2.5rem;color:#B58500}
.shot-placeholder strong{font-size:1.1rem;color:var(--c-ink)}
.shot{display:block;width:100%;height:auto;border-radius:var(--radius-lg);border:1px solid var(--c-line);box-shadow:0 30px 60px -30px rgba(13,40,80,.35)}
