@font-face{font-family:'Bebas Neue';font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/bebas-neue-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/dm-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/dm-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/dm-sans-latin-700-normal.woff2) format('woff2')}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sr:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;z-index:100;background:#FFFFFF;color:#16213E;padding:10px 14px;border:2px solid #1D56A6}
/* Le Patrimoine Français · « Affiche française »
   Fonds blancs dominants, alternés avec la craie, le marine et le bleu France en aplats.
   Grands titres Bebas Neue, trait tricolore, hexagone, arcs et façade comme motifs. */
:root{
  --blanc:#FFFFFF; --craie:#F7F5F0; --lin:#EDE9E1; --ciel:#E4ECF8;
  --marine:#16213E; --marine-2:#1F2C52; --marine-3:#2E3A60;
  --bleu:#1D56A6; --bleu-clair:#3B74C9; --bleu-pale:#8FB0EA;
  --rouge:#E53E2E; --rouge-t:#C2352A;
  --encre:#3D4458; --ardoise:#5C6275; --ardoise-c:#A9B0C2; --brume:#D4D8E2;
  --ligne:#E4DFD5; --ligne-f:#C9C3B6; --vert-t:#1D6B45; --vert-bg:#E2F0E8; --rouge-bg:#FBE7E4;
  --logo-pat:#16213E; --logo-side:#5C6275; --logo-blue:#1D56A6; --logo-white:transparent; --logo-red:#E53E2E;
  --display:'Bebas Neue',Impact,'Arial Narrow',sans-serif;
  --body:'DM Sans',Helvetica,Arial,sans-serif;
  --gl:max(clamp(16px,4vw,48px),env(safe-area-inset-left,0px));
  --gr:max(clamp(16px,4vw,48px),env(safe-area-inset-right,0px));
  --shadow:0 1px 2px rgba(22,33,62,.06),0 18px 40px rgba(22,33,62,.10);
  color-scheme:light;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
html{scroll-padding-top:120px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--blanc);color:var(--encre);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:70;background:var(--marine)}
img{max-width:100%}
[hidden]{display:none!important}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--display);font-weight:400;color:var(--marine);letter-spacing:.3px;text-wrap:balance}
h1{font-size:clamp(58px,8vw,128px);line-height:.86}
h2{font-size:clamp(46px,6vw,88px);line-height:.88}
h3{font-size:30px;line-height:.98}
h4{font-size:13px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;color:var(--marine)}
a{color:var(--bleu)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--bleu-clair);outline-offset:2px}
.tab-nums,.num-tab{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Mise en page */
.wrap{max-width:1320px;margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
.section{padding-block:clamp(72px,9vw,132px)}
.section-sm{padding-block:clamp(48px,6vw,80px)}
.bg-blanc{background:var(--blanc)}
.bg-craie{background:var(--craie)}
.bg-ciel{background:var(--ciel)}
.bg-marine,.bg-bleu{--logo-pat:#F7F5F0;--logo-side:#A9B0C2;--logo-blue:#3B74C9;--logo-white:#F7F5F0;--logo-red:#E53E2E;color:var(--brume)}
.bg-marine{background:var(--marine)}
.bg-bleu{background:var(--bleu);color:#E8EEF8;--logo-blue:#8FB0EA}
.bg-marine h1,.bg-marine h2,.bg-marine h3,.bg-bleu h1,.bg-bleu h2,.bg-bleu h3{color:#FFFFFF}
.bg-marine .eyebrow{color:var(--bleu-pale)}
.bg-bleu .eyebrow{color:#FFFFFF}
.bg-marine a:not(.btn),.bg-bleu a:not(.btn){color:#FFFFFF}
.eyebrow{display:flex;align-items:center;gap:14px;font-size:13px;letter-spacing:3px;text-transform:uppercase;font-weight:700;color:var(--bleu)}
.eyebrow::before{content:"";flex:none;width:54px;height:5px;background:linear-gradient(90deg,var(--logo-blue) 0 33.3%,var(--logo-white) 33.3% 66.6%,var(--logo-red) 66.6%)}
.eyebrow.plain::before{display:none}
.lead{font-size:clamp(18px,1.6vw,21px);line-height:1.55;max-width:60ch}
.muted{color:var(--ardoise)}
.bg-marine .muted,.bg-bleu .muted{color:var(--ardoise-c)}
.bg-bleu .muted{color:#C9D8F0}
.head{display:flex;flex-direction:column;gap:18px;max-width:880px;margin-bottom:clamp(36px,5vw,64px)}
.head-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.head-split > div{display:flex;flex-direction:column;gap:18px;min-width:0}
@media (max-width:900px){.head-split{grid-template-columns:1fr}}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g6{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1080px){.g4,.g6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.g3,.g4,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}.g2{grid-template-columns:1fr}}
@media (max-width:560px){.g3,.g4{grid-template-columns:1fr}.g6{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:center}
.split > *{min-width:0}
@media (max-width:960px){.split{grid-template-columns:1fr}}

/* Logo */
.lg-side{fill:var(--logo-side)}.lg-pat{fill:var(--logo-pat)}.lg-b{fill:var(--logo-blue)}.lg-w{fill:var(--logo-white)}.lg-r{fill:var(--logo-red)}

/* Icônes (64 × 64) : couleurs passées par variables, pour traverser <use> */
.ic-bg{fill:var(--ic-bg,#E4ECF8)}
.ic-s{fill:none;stroke:var(--ic-ink,#16213E);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.ic-sa{fill:none;stroke:var(--ic-acc,#1D56A6);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.ic-ls{fill:var(--ic-light,#FFFFFF);stroke:var(--ic-ink,#16213E);stroke-width:2.5;stroke-linejoin:round}
.ic-l{fill:var(--ic-light2,#FFFFFF)}
.ic-f{fill:var(--ic-acc,#1D56A6)}
.ic-r{fill:var(--ic-red,#E53E2E)}
.ic-rs{fill:none;stroke:var(--ic-red,#E53E2E);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.icon{width:56px;height:56px;flex:none;display:block}
.icon-lg{width:88px;height:88px;flex:none;display:block}
.icon-sm{width:32px;height:32px;flex:none;display:block}
.inv{--ic-bg:rgba(255,255,255,.14);--ic-ink:#FFFFFF;--ic-light:transparent;--ic-light2:rgba(255,255,255,.18);--ic-acc:#8FB0EA}
.bg-craie .card,.card.alt{--ic-bg:#E4ECF8}
.card.alt{--ic-bg:#FFFFFF}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:3px;font-weight:700;font-size:16px;line-height:1.1;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s,transform .15s;white-space:nowrap;text-align:center}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--bleu);color:#FFFFFF}
.btn-primary:hover{background:var(--marine)}
.btn-dark{background:var(--marine);color:#FFFFFF}
.btn-dark:hover{background:var(--bleu)}
.btn-light{background:#FFFFFF;color:var(--marine)}
.btn-light:hover{background:var(--craie)}
.btn-outline{background:transparent;border-color:var(--marine);color:var(--marine)}
.btn-outline:hover{background:var(--marine);color:#FFFFFF}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.6);color:#FFFFFF}
.btn-ghost:hover{background:#FFFFFF;color:var(--marine)}
.btn-sm{min-height:42px;padding:0 16px;font-size:15px}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--bleu);text-decoration:none}
.link svg{transition:transform .15s;flex:none}
a:hover > .link svg,.link:hover svg{transform:translateX(4px)}
.bg-marine .link,.bg-bleu .link{color:#FFFFFF}

/* Barre utilitaire et en-tête */
.util{background:var(--marine);color:var(--brume);font-size:13.5px}
.util .wrap{display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:38px}
.util a{color:#FFFFFF;font-weight:700;text-decoration:none}
.util a:hover{text-decoration:underline}
.util .u-left{display:flex;gap:10px;align-items:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.util .u-left b{color:#FFFFFF;font-weight:700}
@media (max-width:1100px){.util .u-left{display:none}.util .wrap{justify-content:flex-end}}
@media (max-width:520px){.util .wrap{justify-content:center}.util .row{gap:14px!important;font-size:12.5px}}
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--blanc);border-bottom:1px solid var(--ligne)}
.header-in{display:flex;align-items:center;gap:28px;min-height:80px;position:relative}
.brand{display:block;flex:none;line-height:0;text-decoration:none}
.brand svg{width:214px;height:35px;display:block}
.acad-logo{display:flex;flex-direction:column;gap:3px;line-height:1;text-decoration:none}
.acad-logo b{font-family:var(--display);font-weight:400;font-size:38px;line-height:.85;color:var(--marine);letter-spacing:.6px}
.acad-logo span{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--ardoise)}
.acad-logo span svg{width:122px;height:20px;display:block}
.nav{display:flex;gap:22px;margin-left:auto}
.nav a{color:var(--marine);text-decoration:none;font-weight:500;font-size:15px;padding-block:6px;border-bottom:3px solid transparent;white-space:nowrap}
.nav a:hover{border-bottom-color:var(--ligne-f)}
.nav a[aria-current="page"]{border-bottom-color:var(--bleu);font-weight:700}
.nav .new{font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:700;color:#FFFFFF;background:var(--rouge);padding:2px 5px;border-radius:2px;margin-left:6px;vertical-align:2px}
.header-actions{display:flex;gap:10px;align-items:center}
.menu-btn{display:none;width:46px;height:46px;border:2px solid var(--marine);border-radius:3px;background:var(--blanc);align-items:center;justify-content:center;cursor:pointer}
.menu-btn svg{stroke:var(--marine)}
.t-short{display:none}
@media (min-width:1241px){.nav{gap:16px}.nav a{font-size:14px}.header-in{gap:20px}}
@media (max-width:1420px) and (min-width:1241px){.nav .new{display:none}}
@media (max-width:1240px){
  .nav{display:none;position:absolute;top:100%;left:calc(-1 * var(--gl));right:calc(-1 * var(--gr));flex-direction:column;gap:0;background:var(--blanc);border-bottom:1px solid var(--ligne);padding:8px var(--gr) 20px var(--gl);box-shadow:var(--shadow)}
  .nav.open{display:flex}
  .nav a{padding:15px 0;border-bottom:1px solid var(--ligne);font-size:18px}
  .nav a[aria-current="page"]{border-bottom-color:var(--ligne);color:var(--bleu)}
  .header-actions{margin-left:auto}
  .menu-btn{display:inline-flex}
}
@media (max-width:680px){.header-actions .btn-outline{display:none}.brand svg{width:180px;height:30px}.header-in{gap:12px;min-height:70px}}
@media (max-width:480px){.t-long{display:none}.t-short{display:inline}.header-actions .btn{padding:0 14px}.brand svg{width:158px;height:26px}.acad-logo b{font-size:32px}.acad-logo span svg{width:100px;height:16px}}

/* Héros */
.hero{padding-block:clamp(44px,6vw,88px) clamp(56px,7vw,104px)}
.hero-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,80px);align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:26px;min-width:0}
.hero h1 em{font-style:normal;color:var(--bleu)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.checks-inline{display:flex;flex-wrap:wrap;gap:10px 26px;font-size:15px;color:var(--ardoise);padding-top:20px;border-top:1px solid var(--ligne)}
.checks-inline li{display:flex;align-items:center;gap:8px}
.poster-art{position:relative;min-width:0}
.poster-art > svg{width:100%;height:auto;display:block}
.hero-sm{padding-block:clamp(40px,5vw,72px)}
.hero-sm h1{font-size:clamp(54px,7vw,108px)}
.crumbs{font-size:14px;color:var(--ardoise)}
.crumbs a{color:var(--ardoise)}
@media (max-width:960px){.hero-in{grid-template-columns:1fr}.poster-art{max-width:560px}}

/* Pastilles flottantes */
.chips{position:absolute;inset:0;pointer-events:none}
.chip{position:absolute;display:flex;flex-direction:column;gap:2px;background:#FFFFFF;color:var(--encre);padding:12px 16px;box-shadow:0 14px 36px rgba(22,33,62,.25);min-width:184px;pointer-events:auto;border-left:4px solid var(--bleu)}
.chip small{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--ardoise)}
.chip b{font-family:var(--display);font-weight:400;font-size:36px;line-height:1;color:var(--marine)}
.chip span{font-size:12.5px;color:var(--ardoise)}
.chip.red{border-left-color:var(--rouge)}
@media (max-width:640px){.chips{position:static;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.chip{position:static!important;min-width:0;box-shadow:none;border:1px solid var(--ligne);border-left-width:4px}.chip:last-child:nth-child(odd){grid-column:1 / -1}}

/* Bandeau défilant */
.ticker{background:var(--marine);color:#FFFFFF;overflow:hidden;border-block:1px solid var(--marine-3)}
.ticker-track{display:flex;width:max-content;animation:tick 60s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-item{display:flex;align-items:center;gap:14px;padding:18px 34px;white-space:nowrap;font-size:15px;color:var(--brume)}
.ticker-item b{font-family:var(--display);font-weight:400;font-size:30px;line-height:1;color:#FFFFFF;letter-spacing:.5px}
.ticker-item i{width:8px;height:8px;border-radius:50%;background:var(--rouge);flex:none}
@keyframes tick{to{transform:translateX(-50%)}}

/* Cartes affiche */
.pcard{display:flex;flex-direction:column;background:var(--blanc);text-decoration:none;color:var(--encre);border:1px solid var(--ligne);transition:transform .18s,box-shadow .18s;min-width:0}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.pcard-top{position:relative;display:flex;align-items:flex-end;justify-content:space-between;aspect-ratio:16 / 9;padding:22px;overflow:hidden}
.pcard-top svg.deco{position:absolute;inset:0;width:100%;height:100%}
.pcard-top .icon-lg{position:relative}
.pcard-body{display:flex;flex-direction:column;gap:10px;padding:22px 22px 24px;flex:1}
.pcard-body h3{font-size:31px}
.pcard-body p{font-size:15.5px;line-height:1.5;color:var(--ardoise);flex:1}
.top-bleu{background:var(--bleu)}.top-marine{background:var(--marine)}.top-ciel{background:var(--ciel)}.top-rouge{background:var(--rouge)}.top-craie{background:var(--craie)}.top-lin{background:var(--lin)}
.card{background:var(--blanc);border:1px solid var(--ligne);padding:clamp(20px,2.6vw,30px);display:flex;flex-direction:column;gap:14px;min-width:0}
.bg-blanc .card.alt,.card.alt{background:var(--craie)}
.card h3{font-size:30px}
.card p{font-size:16px;line-height:1.55}
a.card{text-decoration:none;color:var(--encre);transition:border-color .15s}
a.card:hover{border-color:var(--marine)}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags li,.tag{font-size:12.5px;font-weight:700;color:var(--marine);background:var(--ciel);padding:4px 9px;border-radius:2px;white-space:nowrap}
.tag.red{background:var(--rouge-bg);color:var(--rouge-t)}
.tag.ok{background:var(--vert-bg);color:var(--vert-t)}
.tag.dark{background:var(--marine);color:#FFFFFF}
.giant{font-family:var(--display);font-weight:400;font-size:clamp(96px,15vw,220px);line-height:.8;color:var(--marine);letter-spacing:-1px}
.bg-bleu .giant,.bg-marine .giant{color:#FFFFFF}
.outline-num{font-family:var(--display);font-weight:400;font-size:clamp(64px,7vw,96px);line-height:.8;color:transparent;-webkit-text-stroke:2px var(--marine)}
.bg-marine .outline-num,.bg-bleu .outline-num{-webkit-text-stroke-color:#FFFFFF}
.checks{display:flex;flex-direction:column;gap:12px}
.checks li{display:flex;gap:12px;align-items:flex-start}
.checks svg{flex:none;margin-top:3px}

/* Étapes */
.steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.step{display:flex;flex-direction:column;gap:12px;padding-top:20px;border-top:4px solid var(--marine);min-width:0}
.step:last-child{border-top-color:var(--rouge)}
.step h3{font-size:28px}
.step p{font-size:15px;line-height:1.5;color:var(--ardoise)}
.bg-marine .step{border-top-color:#FFFFFF}.bg-marine .step p{color:var(--brume)}
.bg-marine .step:last-child{border-top-color:var(--rouge)}
@media (max-width:1080px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.timeline{display:flex;flex-direction:column}
.tl-item{display:grid;grid-template-columns:140px minmax(0,1fr);gap:clamp(20px,4vw,56px);padding-block:32px;border-top:1px solid var(--ligne-f)}
.tl-item:last-child{border-bottom:1px solid var(--ligne-f)}
.tl-item .stack h3{font-size:clamp(32px,3.4vw,44px)}
.tl-meta{font-size:13px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--bleu)}
.tl-doc{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;font-size:14px;font-weight:700;color:var(--marine);background:var(--blanc);border:1px solid var(--ligne);padding:8px 12px}
@media (max-width:640px){.tl-item{grid-template-columns:1fr;gap:12px}}

/* Maquettes d'interface */
.mock{background:var(--blanc);border:1px solid var(--ligne);box-shadow:var(--shadow);min-width:0;color:var(--encre)}
.mock-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--ligne);background:var(--craie)}
.demo{font-size:11.5px;font-weight:700;color:var(--ardoise);border:1px solid var(--ligne-f);padding:3px 8px;border-radius:2px;white-space:nowrap;background:var(--blanc)}
.mock-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}
.mock-tile{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--ligne);background:var(--craie);min-width:0}
.mock-tile.wide{grid-column:1 / -1}
.mock-tile small{font-size:12.5px;color:var(--ardoise)}
.mock-tile b{font-family:var(--display);font-weight:400;font-size:38px;line-height:1;color:var(--marine)}
.up{font-size:13px;font-weight:700;color:var(--vert-t)}
.alloc{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:8px 0 6px}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;display:inline-block;flex:none}
@media (max-width:460px){.mock-body{grid-template-columns:1fr}}

/* Formulaires et simulateurs */
.panel{background:var(--blanc);border:1px solid var(--ligne);padding:clamp(20px,3vw,34px);display:flex;flex-direction:column;gap:24px;min-width:0}
.results{position:sticky;top:calc(env(safe-area-inset-top,0px) + 104px);background:var(--blanc);border:1px solid var(--ligne);border-top:6px solid var(--bleu);padding:clamp(20px,3vw,34px);display:flex;flex-direction:column;gap:24px;min-width:0;box-shadow:var(--shadow)}
.sim{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;align-items:start}
@media (max-width:980px){.sim{grid-template-columns:1fr}.results{position:static}}
.panel-title{display:flex;flex-direction:column;gap:8px}
.panel-title h2{font-size:clamp(36px,4vw,52px)}
.panel-title p{font-size:15px;color:var(--ardoise)}
.fields{display:flex;flex-direction:column;gap:22px}
.field{display:flex;flex-direction:column;gap:10px}
.field-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.field label,.field .lbl,.flabel{font-weight:700;color:var(--marine);font-size:15px}
.help{font-size:13px;color:var(--ardoise);line-height:1.45}
.num{display:flex;align-items:center;gap:6px;border:1px solid var(--ligne-f);border-radius:3px;background:var(--blanc);height:46px;padding:0 12px;width:184px;max-width:100%}
.num:focus-within{border-color:var(--bleu);box-shadow:0 0 0 3px rgba(59,116,201,.28)}
.num input{border:0;background:transparent;width:100%;min-width:0;font-weight:700;font-size:16px;color:var(--marine);text-align:right;outline:none;font-variant-numeric:tabular-nums}
.num span{color:var(--ardoise);font-size:14px;white-space:nowrap}
input[type="range"]{width:100%;accent-color:var(--bleu);height:22px;margin:0;cursor:pointer}
.seg{display:flex;border:1px solid var(--ligne-f);border-radius:3px;overflow:hidden;background:var(--blanc)}
.seg label{flex:1 1 0;position:relative;cursor:pointer;min-width:0}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.25;padding:11px 8px;font-weight:700;font-size:14px;color:var(--ardoise);border-right:1px solid var(--ligne);height:100%}
.seg label:last-child span{border-right:0}
.seg input:checked + span{background:var(--marine);color:#FFFFFF}
.seg input:focus-visible + span{outline:3px solid var(--bleu-clair);outline-offset:-3px}
.check-line{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer;line-height:1.45}
.check-line input{width:19px;height:19px;margin-top:2px;accent-color:var(--bleu);flex:none}
.chip-check{display:flex;flex-wrap:wrap;gap:8px}
.chip-check label{position:relative;cursor:pointer}
.chip-check input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip-check span{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--ligne-f);border-radius:999px;font-size:14px;font-weight:700;color:var(--marine);background:var(--blanc)}
.chip-check input:checked + span{background:var(--marine);border-color:var(--marine);color:#FFFFFF}
.chip-check input:focus-visible + span{outline:3px solid var(--bleu-clair);outline-offset:2px}
.text-in{width:100%;border:1px solid var(--ligne-f);border-radius:3px;background:var(--blanc);padding:12px 13px;font-size:16px;color:var(--marine)}
.text-in:focus{outline:none;border-color:var(--bleu);box-shadow:0 0 0 3px rgba(59,116,201,.28)}
textarea.text-in{min-height:110px;resize:vertical}
select.text-in{height:48px;padding-block:0}
.reset-rate{border:0;background:none;padding:0;color:var(--bleu);font-weight:700;font-size:13px;cursor:pointer;text-decoration:underline;align-self:flex-start}
.res-main{display:flex;flex-direction:column;gap:4px}
.res-main small{font-size:15px;color:var(--ardoise)}
.res-main b{font-family:var(--display);font-weight:400;font-size:clamp(58px,7.5vw,96px);line-height:.92;color:var(--marine);font-variant-numeric:tabular-nums}
.res-main span{font-size:15px}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kpi{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--craie);min-width:0}
.kpi small{font-size:13px;color:var(--ardoise);line-height:1.35}
.kpi b{font-family:var(--display);font-weight:400;font-size:32px;line-height:1;color:var(--marine);font-variant-numeric:tabular-nums}
@media (max-width:520px){.kpis{grid-template-columns:1fr 1fr}.kpis .kpi:last-child:nth-child(odd){grid-column:1 / -1}}
.viz{display:flex;flex-direction:column;gap:12px}
.viz-title{font-size:12.5px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--ardoise)}
.stack-bar{display:flex;height:30px;overflow:hidden;border-radius:2px;background:var(--lin)}
.stack-bar i{display:flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;font-weight:700;color:#FFFFFF;white-space:nowrap;overflow:hidden;min-width:0}
.stack-bar i.lt{color:var(--marine)}
.bars{display:flex;flex-direction:column;gap:10px}
.bar-row{display:grid;grid-template-columns:160px minmax(0,1fr) 120px;gap:12px;align-items:center;font-size:14px}
.bar-row .track{height:24px;background:var(--lin);border-radius:2px;overflow:hidden}
.bar-row .fill{height:100%;background:var(--bleu)}
.bar-row .fill.alt{background:var(--ardoise-c)}
.bar-row .fill.red{background:var(--rouge)}
.bar-row .fill.dark{background:var(--marine)}
.bar-row b{text-align:right;color:var(--marine);font-variant-numeric:tabular-nums}
@media (max-width:520px){.bar-row{grid-template-columns:1fr auto}.bar-row .track{grid-column:1 / -1;grid-row:2}}
.gauge{position:relative;height:14px;background:var(--lin);border-radius:7px}
.gauge .g-fill{position:absolute;inset:0 auto 0 0;border-radius:7px;background:var(--bleu)}
.gauge .g-fill.over{background:var(--rouge)}
.gauge .g-mark{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--marine)}
.gauge-scale{display:flex;justify-content:space-between;font-size:12px;color:var(--ardoise)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;padding:5px 10px;border-radius:2px;align-self:flex-start}
.pill.ok{background:var(--vert-bg);color:var(--vert-t)}
.pill.warn{background:var(--rouge-bg);color:var(--rouge-t)}
.pill.info{background:var(--ciel);color:var(--marine)}
.tranches{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;font-size:13px}
.tranches div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--craie);border-top:4px solid}
.tranches b{font-size:15px;color:var(--marine)}
.chart svg{width:100%;height:auto;display:block}
.ch-grid{stroke:var(--ligne);stroke-width:1}
.ch-lbl{fill:var(--ardoise);font-size:12px;font-family:var(--body)}
.res-cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding-top:20px;border-top:1px solid var(--ligne)}
.res-cta p{font-size:15px;max-width:44ch}
.notes{border:1px solid var(--ligne);background:var(--blanc)}
.notes summary{cursor:pointer;padding:18px 24px;font-weight:700;color:var(--marine)}
.notes ul{padding:0 24px 22px 44px;list-style:disc;display:flex;flex-direction:column;gap:8px;font-size:15px}
.notes .src{padding:0 24px 22px;font-size:13px;color:var(--ardoise)}
.warn-line{font-size:14px;color:var(--rouge-t);font-weight:700}
.tabs-scroll{overflow-x:auto;scrollbar-width:thin}
.tabs{display:flex;gap:6px;min-width:max-content}
.tab{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;border:1px solid var(--ligne);border-radius:999px;background:var(--blanc);font-weight:700;font-size:15px;color:var(--marine);cursor:pointer;white-space:nowrap}
.tab:hover{border-color:var(--marine)}
.tab[aria-selected="true"]{background:var(--marine);border-color:var(--marine);color:#FFFFFF}
.tab[aria-selected="true"]{--ic-bg:rgba(255,255,255,.16);--ic-ink:#FFFFFF;--ic-light:transparent;--ic-light2:rgba(255,255,255,.2);--ic-acc:#8FB0EA}
.stepper{display:flex;gap:6px}
.stepper i{flex:1;height:6px;background:var(--lin);border-radius:3px}
.stepper i.on{background:var(--bleu)}
.stepper i.done{background:var(--marine)}

/* Questions fréquentes */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--ligne-f)}
.faq details{border-bottom:1px solid var(--ligne-f)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 0;font-weight:700;font-size:18px;color:var(--marine)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--display);font-size:34px;line-height:1;color:var(--bleu);flex:none}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 22px;max-width:75ch}

/* Tableaux */
.tbl-wrap{overflow-x:auto;border:1px solid var(--ligne);background:var(--blanc)}
.tbl{width:100%;border-collapse:collapse;min-width:640px;font-size:15px}
.tbl th,.tbl td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--ligne);vertical-align:top}
.tbl thead th{font-size:12.5px;letter-spacing:2px;text-transform:uppercase;color:var(--ardoise);background:var(--craie)}
.tbl thead th.us{background:var(--marine);color:#FFFFFF}
.tbl td.us{background:var(--ciel);color:var(--marine);font-weight:600}
.tbl tbody th{color:var(--marine);font-weight:700;width:26%}

/* Pied de page */
.site-footer .wrap{padding-block:72px 36px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:36px}
.foot-brand{display:flex;flex-direction:column;gap:18px;min-width:0}
.foot-brand svg{width:240px;height:39px}
.foot-brand p{font-size:15px;line-height:1.55;max-width:34ch}
.foot-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.foot-col h4{color:#FFFFFF;margin-bottom:6px}
.foot-col a{color:var(--brume)!important;text-decoration:none;font-size:15px}
.foot-col a:hover{color:#FFFFFF!important;text-decoration:underline}
.legal{margin-top:56px;padding-top:28px;border-top:1px solid var(--marine-3);display:flex;flex-direction:column;gap:10px;font-size:13px;line-height:1.6;color:var(--ardoise-c)}
.legal strong{color:var(--brume)}
.foot-tri{display:flex;height:8px}
.foot-tri i{flex:1}
@media (max-width:1000px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-brand{grid-column:1 / -1}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}

/* Fenêtres */
dialog{border:0;padding:0;background:var(--blanc);color:var(--encre);width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.35);border-top:6px solid var(--bleu)}
dialog::backdrop{background:rgba(12,19,36,.62)}
.dlg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:26px 26px 0}
.dlg-head h2{font-size:44px}
.dlg-close{width:42px;height:42px;border:2px solid var(--marine);border-radius:3px;background:transparent;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center}
.dlg-close svg{stroke:var(--marine)}
.dlg-body{padding:16px 26px 26px;display:flex;flex-direction:column;gap:14px}
.dlg-body .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dlg-body label.flabel{display:block;margin-bottom:6px;font-size:14px}
.dlg-note{font-size:13px;color:var(--ardoise)}
.dlg-done{display:flex;flex-direction:column;gap:14px;padding:8px 26px 30px}
@media (max-width:480px){.dlg-body .two{grid-template-columns:1fr}}

@media (prefers-reduced-motion: reduce){
  *{transition:none!important;scroll-behavior:auto!important}
  .ticker-track{animation:none;flex-wrap:wrap;width:auto}
  .ticker-track [aria-hidden="true"]{display:none}
}

/* Ajustements par page */
#cons-form{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto}
@media (max-width:720px){#cons-form{grid-template-columns:1fr}#cons-form .check-line{padding-bottom:0!important}}
#sim-root .results{top:calc(env(safe-area-inset-top,0px) + 170px)}
@media (max-width:680px){.tabs-bar{top:calc(env(safe-area-inset-top,0px) + 70px)!important}}
details.card > summary::-webkit-details-marker{display:none}
details.card[open] > summary .link{display:none}
.top-blanc{background:#FFFFFF}
.steps.s5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1080px){.steps.s5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.steps.s5{grid-template-columns:1fr}}
.steps.s4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.steps.s4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps.s4{grid-template-columns:1fr}}
.tab[aria-pressed="true"]{background:var(--marine);border-color:var(--marine);color:#FFFFFF}
.inv .giant{color:#FFFFFF}
.mock-tile .bar-row b{font-family:var(--body);font-size:13px;font-weight:700;line-height:1.2}
#cal-list .tl-item{grid-template-columns:230px minmax(0,1fr)}
@media (max-width:640px){#cal-list .tl-item{grid-template-columns:1fr}}
.pro-brand{display:flex;align-items:center;gap:14px;line-height:1}
.pro-tag{font-size:10.5px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:#FFFFFF;background:var(--marine);padding:6px 8px;border-radius:2px;white-space:nowrap}
@media (max-width:560px){.pro-tag{display:none}}
.todo{display:inline-block;font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--rouge-t);background:var(--rouge-bg);padding:2px 7px;border-radius:2px;vertical-align:middle;white-space:nowrap}
.door{display:flex;flex-direction:column;gap:16px;padding:clamp(24px,3vw,34px);text-decoration:none;color:var(--encre);border:2px solid var(--marine);background:#FFFFFF;transition:transform .18s,box-shadow .18s;min-width:0}
.door:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.door.dark{background:var(--marine);color:var(--brume);--ic-bg:rgba(255,255,255,.14);--ic-ink:#FFFFFF;--ic-light:transparent;--ic-light2:rgba(255,255,255,.18);--ic-acc:#8FB0EA}
.door.dark h3{color:#FFFFFF}.door.dark .link{color:#FFFFFF}
.door h3{font-size:clamp(36px,3.6vw,52px)}
.door .who{font-size:13px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--bleu)}
.door.dark .who{color:#8FB0EA}
.door ul{display:flex;flex-direction:column;gap:8px;font-size:15.5px}
.door li{display:flex;gap:10px;align-items:flex-start}
.door li svg{flex:none;margin-top:3px}
.tbl td.todo-cell{color:var(--rouge-t);font-weight:700}
.hero-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;max-width:600px;padding:10px;background:var(--craie);border:1px solid var(--ligne)}
.hero-search .text-in{height:50px}
@media (max-width:480px){.hero-search{grid-template-columns:1fr}}
