/* =========================================================================
   MONTHERME° — « Au degré près »  ·  montherme.css  ·  V7
   Direction artistique : clair · éditorial · précision thermique
   Un seul fichier : tokens, base, composants, gabarits, responsive.
   ========================================================================= */

/* ---------- polices auto-hébergées (SIL OFL — voir assets/fonts/LICENSE-*) ---------- */
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-sans-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-sans-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/instrument-sans-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/instrument-sans-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/instrument-sans-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/instrument-sans-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/instrument-sans-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/instrument-sans-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- tokens ---------- */
:root{
  color-scheme:light;
  --paper:#F7F8FA;--surface:#FFFFFF;--frost:#EEF2F7;--frost-2:#E4EAF1;
  --ink:#0E1116;--ink-2:#2A323C;--graphite:#5B6572;--mist:#8A94A1;--rule:#DEE3EA;--rule-strong:#C4CCD6;
  --cryo:#0047FF;--cryo-ink:#0033B8;--givre:#E9F0FF;--givre-2:#D6E4FF;--signal:#FF4A1C;--signal-tint:#FFEDE6;--signal-ink:#C93A12;
  --ok:#0B7A4B;--ok-tint:#E4F5EC;
  --thermal:linear-gradient(90deg,#0047FF 0%,#5FB8FF 28%,#F7F8FA 50%,#FFB37A 72%,#FF4A1C 100%);
  --thermal-v:linear-gradient(180deg,#FF4A1C 0%,#FFB37A 28%,#F7F8FA 50%,#5FB8FF 72%,#0047FF 100%);
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono","SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --container:1320px;--gutter:24px;--ruler-w:48px;--radius:4px;
  --ease:cubic-bezier(.22,.8,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --shadow-obj:drop-shadow(0 12px 16px rgba(14,17,22,.14));
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern","liga"}
@media (min-width:1200px){body{padding-right:var(--ruler-w)}}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:400;text-wrap:balance}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--cryo);outline-offset:3px;border-radius:2px}
::selection{background:var(--givre-2);color:var(--ink)}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:8px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 14px;border-radius:4px}
.skip:focus{top:8px}

/* ---------- utilitaires ---------- */
.wrap{width:min(var(--container),100% - 2*var(--gutter));margin-inline:auto}
.wrap--narrow{width:min(880px,100% - 2*var(--gutter));margin-inline:auto}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.label{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}
.label--ink{color:var(--ink)}.label--cryo{color:var(--cryo)}
.display{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1}
.display em{font-style:italic}
.h-xl{font-size:clamp(50px,7vw,104px);line-height:.96}
.h-l{font-size:clamp(38px,4.6vw,66px);line-height:1.02}
.h-m{font-size:clamp(30px,3.4vw,44px);line-height:1.06}
.h-s{font-size:clamp(26px,2.6vw,34px);line-height:1.08}
.h3{font-family:var(--sans);font-weight:600;font-size:clamp(20px,1.6vw,24px);line-height:1.2;letter-spacing:-.015em}
.h4{font-family:var(--sans);font-weight:600;font-size:17px;line-height:1.25;letter-spacing:-.01em}
.lead{font-size:clamp(17px,1.3vw,19px);line-height:1.55;color:var(--ink-2);max-width:56ch}
.prose{max-width:66ch;color:var(--ink-2);font-size:16.5px;line-height:1.62}
.prose p+p,.prose ul+p,.prose p+ul{margin-top:14px}
.prose strong{color:var(--ink);font-weight:600}
.prose h3{font-family:var(--sans);font-weight:600;font-size:20px;letter-spacing:-.015em;color:var(--ink);margin:28px 0 10px}
.prose ul{display:grid;gap:6px}
.prose li{position:relative;padding-left:18px}
.prose li::before{content:"";position:absolute;left:0;top:12px;width:8px;height:1px;background:var(--ink)}
.muted{color:var(--graphite)}.small{font-size:14px}
.thermal-line{height:2px;background:var(--thermal);border:0;margin:0}
.rule{height:1px;background:var(--rule);border:0;margin:0}
.section{padding-block:clamp(64px,8vw,112px)}
.section--tight{padding-block:clamp(40px,5vw,64px)}
.section--surface{background:var(--surface);border-block:1px solid var(--rule)}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px var(--gutter);align-items:end;margin-bottom:clamp(36px,4.5vw,56px)}
.section-head .lead{justify-self:end;max-width:46ch}
.section-head--tight{margin-bottom:24px}
@media (max-width:860px){.section-head{grid-template-columns:1fr}.section-head .lead{justify-self:start}}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--ink);flex:none}
.stack{display:grid;gap:12px}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px var(--gutter);align-items:start}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gutter)}
@media (max-width:980px){.four{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){.two,.three{grid-template-columns:1fr}}
@media (max-width:520px){.four{grid-template-columns:1fr}}

/* ---------- boutons, liens, icônes ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 22px;border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:600;font-size:15px;letter-spacing:-.005em;cursor:pointer;transition:transform .35s var(--ease-out),background .25s,border-color .25s,color .25s;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--cryo);border-color:var(--cryo);color:#fff;transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn:disabled{opacity:.6;cursor:default;transform:none}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule-strong)}
.btn--ghost:hover{background:var(--surface);border-color:var(--ink);color:var(--ink)}
.btn--sm{height:40px;padding:0 16px;font-size:14px}
.btn--ok{background:var(--ok);border-color:var(--ok)}
.btn .arr{transition:transform .35s var(--ease-out)}
.btn:hover .arr{transform:translateX(3px)}
.link{border:0;background:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;color:var(--ink);border-bottom:1px solid var(--rule-strong);padding-bottom:2px;border-radius:0;transition:border-color .25s,color .25s}
.link:hover{color:var(--cryo);border-color:var(--cryo)}
.link--sm{font-size:14px}
.ico{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico--lg{width:28px;height:28px;stroke-width:1.4}
.ico--sm{width:16px;height:16px}
.badge{display:inline-flex;align-items:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;border-radius:3px;background:var(--surface);border:1px solid var(--rule);color:var(--ink-2);white-space:nowrap}
.badge--cold{color:var(--cryo);border-color:var(--givre-2)}
.badge--hot{color:var(--signal-ink);border-color:#FFD3C4}
.badge--ok{color:var(--ok);border-color:#BFE6D0}
.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;padding:5px 9px;border:1px solid var(--rule);border-radius:3px;background:var(--surface);color:var(--ink-2);white-space:nowrap}
.tag i{font-style:normal;color:var(--mist)}
a.tag:hover{border-color:var(--ink);color:var(--ink)}
.tags{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- révélation (progressive, jamais bloquante) ---------- */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.js .rv.in{opacity:1;transform:none}
.js .rv[data-delay="1"]{transition-delay:.08s}.js .rv[data-delay="2"]{transition-delay:.16s}.js .rv[data-delay="3"]{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .rv{opacity:1;transform:none;transition:none}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* =========================================================================
   HEADER · MEGA-MENU · RECHERCHE · MOBILE
   ========================================================================= */
.hdr{position:sticky;top:0;z-index:50;background:rgba(247,248,250,.9);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--rule)}
.hdr__in{height:76px;display:flex;align-items:center;gap:22px}
.logo{display:inline-flex;align-items:center;flex:none}
.logo__img{height:46px;width:auto}
.logo__img--lg{height:64px}
@media (max-width:980px){.logo__img{height:40px}}
.wa-btn{width:42px;height:42px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;color:#fff;background:#25D366;transition:transform .3s var(--ease-out),background .25s}
.wa-btn:hover{background:#1DA851;transform:translateY(-1px)}
.wa-btn .ico{width:22px;height:22px}
.btn--wa{background:#25D366;border-color:#25D366;color:#fff;gap:8px}
.btn--wa:hover{background:#1DA851;border-color:#1DA851;color:#fff}
.btn--ghost.btn--wa{background:transparent;color:#128C4A}
.btn--ghost.btn--wa:hover{background:#25D366;color:#fff}
.btn--wa .ico{width:18px;height:18px}
.wa-fab{position:fixed;right:20px;bottom:22px;z-index:75;display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 18px 0 14px;border-radius:26px;background:#25D366;color:#fff;font-weight:600;font-size:14px;box-shadow:0 14px 34px rgba(37,211,102,.35);transition:transform .35s var(--ease-out),box-shadow .3s,background .25s}
.wa-fab:hover{background:#1DA851;transform:translateY(-2px);box-shadow:0 20px 40px rgba(37,211,102,.4)}
.wa-fab__ico .ico{width:26px;height:26px;color:#fff}
@media (min-width:1200px){.wa-fab{right:calc(var(--ruler-w) + 20px)}}
@media (max-width:700px){.wa-fab{bottom:14px;right:14px;height:48px;padding:0 14px}.wa-fab__txt{display:none}.wa-fab{padding:0;width:48px;justify-content:center}}
@media (max-width:1180px){.wa-btn{width:44px;height:44px}}
@media (max-width:560px){.hdr .wa-btn{display:none}}
.nav{display:flex;gap:2px;margin-left:4px}
.nav>a,.nav>button{padding:10px 11px;border-radius:var(--radius);font-weight:500;font-size:15px;color:var(--ink-2);background:transparent;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:color .2s,background .2s;white-space:nowrap}
.nav>a:hover,.nav>button:hover,.nav>button[aria-expanded="true"]{color:var(--ink);background:var(--frost)}
.nav>a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--cryo);border-radius:0}
.nav>button .ico{width:14px;height:14px;transition:transform .25s}
.nav>button[aria-expanded="true"] .ico{transform:rotate(180deg)}
.hdr__right{margin-left:auto;display:flex;align-items:center;gap:10px}
.search{height:42px;display:flex;align-items:center;gap:10px;padding:0 12px 0 14px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--graphite);font-family:var(--mono);font-size:12.5px;min-width:230px;cursor:text;transition:border-color .25s}
.search:hover{border-color:var(--rule-strong)}
.search span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.search kbd{margin-left:auto;font-family:var(--mono);font-size:10.5px;border:1px solid var(--rule);border-radius:3px;padding:2px 5px;background:var(--paper);color:var(--mist)}
.search .ico{width:16px;height:16px}
.proj{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);font-weight:500;font-size:14px;white-space:nowrap}
.proj b{font-family:var(--mono);font-weight:500;font-size:12px;background:var(--ink);color:#fff;border-radius:3px;padding:1px 6px;min-width:22px;text-align:center}
.proj.is-on b{background:var(--cryo)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);align-items:center;justify-content:center;cursor:pointer}
@media (max-width:1560px){.search{min-width:0;width:200px}.search kbd{display:none}.nav>a,.nav>button{padding:10px 9px;font-size:14px}.hdr__in{gap:16px}}
@media (max-width:1300px){.search{width:44px;padding:0;justify-content:center}.search span{display:none}.hdr__in{gap:12px}.nav>a,.nav>button{padding:10px 8px}}
@media (max-width:1180px){.search{width:44px;padding:0;justify-content:center}.search span{display:none}}
@media (max-width:1180px){.nav,.proj{display:none}.burger{display:inline-flex}}
@media (max-width:980px){.hdr__in{height:64px;gap:12px}}
@media (max-width:560px){.hdr .btn{display:none}}

/* mega-menu */
.mega{position:absolute;left:0;right:0;top:100%;background:var(--surface);border-bottom:1px solid var(--rule);box-shadow:0 30px 60px rgba(14,17,22,.12);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .3s var(--ease-out),visibility 0s .3s;z-index:40}
.mega.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .3s var(--ease-out),visibility 0s}
.mega__in{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:0;padding:28px 0 32px}
.mega__col{padding:0 24px;border-right:1px solid var(--rule)}
.mega__col:first-child{padding-left:0}
.mega__col:last-child{border-right:0;padding-right:0}
.mega__col .label{display:block;margin-bottom:14px}
.mega__col ul{display:grid;gap:2px}
.mega__col li a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;margin:0 -8px;border-radius:3px;font-size:14.5px;font-weight:500;color:var(--ink-2);transition:background .2s,color .2s}
.mega__col li a:hover{background:var(--frost);color:var(--ink)}
.mega__col li a i{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--mist)}
.mega__col .all{margin-top:12px}
.mega__feat{background:var(--frost);border:1px solid var(--rule);border-radius:var(--radius);padding:20px 20px 24px;position:relative;overflow:hidden;min-height:210px}
.mega__feat h4{font-family:var(--serif);font-size:28px;line-height:1;margin:8px 0 10px;letter-spacing:-.01em}
.mega__feat p{font-size:14px;color:var(--graphite);max-width:26ch;line-height:1.5}
.mega__feat img{position:absolute;right:-6px;bottom:-4px;width:150px;height:110px;object-fit:contain;filter:var(--shadow-obj)}
.mega__feat .btn{margin-top:16px;position:relative}
@media (max-width:1180px){.mega{display:none}}

/* mobile menu */
.mnav{position:fixed;inset:0;z-index:90;background:var(--paper);display:none;flex-direction:column;overflow:auto}
.mnav.is-open{display:flex}
.mnav__bar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0}
.mnav__close{width:44px;height:44px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.mnav__body{padding:20px var(--gutter) 40px;display:grid;gap:6px}
.mnav__body>a:not(.btn):not(.sub){display:flex;justify-content:space-between;align-items:center;padding:14px 4px;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:30px;line-height:1;letter-spacing:-.01em}
.mnav__body a.sub{display:flex;justify-content:space-between;align-items:center;font-family:var(--sans);font-size:15px;font-weight:500;padding:11px 4px;color:var(--ink-2);border-bottom:1px solid var(--rule)}
.mnav__body .label{margin-top:22px}
.mnav__body .btn{margin-top:20px;width:100%;font-size:15px}
.mnav__body .btn--ghost{justify-content:flex-start}
.mnav__meta{margin-top:28px;font-family:var(--mono);font-size:12px;color:var(--graphite);line-height:2}
.mnav__meta a{color:var(--ink);font-weight:500}

/* recherche globale */
.sov{position:fixed;inset:0;z-index:100;background:rgba(14,17,22,.42);backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;padding:6vh 16px}
.sov.is-open{display:flex}
.sov__panel{width:min(760px,100%);background:var(--paper);border:1px solid var(--rule);border-radius:6px;box-shadow:0 40px 90px rgba(14,17,22,.3);overflow:hidden}
.sov__head{display:flex;align-items:center;gap:12px;padding:6px 8px 6px 18px;border-bottom:1px solid var(--rule);background:var(--surface)}
.sov__head input{flex:1;height:52px;border:0;background:transparent;font-size:17px;outline:0;color:var(--ink);min-width:0}
.sov__head input::placeholder{color:var(--mist)}
.sov__head kbd{font-family:var(--mono);font-size:10.5px;border:1px solid var(--rule);border-radius:3px;padding:3px 6px;background:var(--paper);color:var(--graphite)}
.sov__close{width:36px;height:36px;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:3px}
.sov__close:hover{background:var(--frost)}
.sov__chips{display:flex;flex-wrap:wrap;gap:6px;padding:14px 18px 6px;align-items:center}
.sov__chips .label{margin-right:6px}
.sov__chips button{font-family:var(--mono);font-size:12px;padding:6px 10px;border:1px solid var(--rule);border-radius:3px;background:var(--surface);cursor:pointer}
.sov__chips button:hover{border-color:var(--ink)}
.sov__res{max-height:min(56vh,520px);overflow:auto;padding:8px}
.sres{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center;padding:10px 10px;border-radius:4px;transition:background .15s}
.sres:hover,.sres.is-active{background:var(--surface)}
.sres .well{width:56px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--frost);border:1px solid var(--rule);border-radius:3px}
.sres .well img{max-width:80%;max-height:80%;object-fit:contain}
.sres b{display:block;font-weight:600;font-size:14.5px;letter-spacing:-.01em;line-height:1.25}
.sres small{display:block;font-family:var(--mono);font-size:11px;color:var(--graphite);margin-top:3px}
.sres .ico{color:var(--mist)}
.sov__empty{padding:28px 18px;color:var(--graphite);font-size:14.5px}
.sov__foot{display:flex;justify-content:space-between;gap:12px;padding:10px 18px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:11px;color:var(--graphite);background:var(--surface)}

/* =========================================================================
   HERO · PLANCHE TECHNIQUE · PAGE HERO
   ========================================================================= */
.hero{padding-block:clamp(44px,6vw,88px) clamp(40px,5vw,64px)}
.hero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px var(--gutter);align-items:center}
.hero__copy{max-width:640px}
.hero h1{margin:24px 0 26px}
.hero .lead{margin-bottom:34px}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px}
.hero__proof{display:flex;flex-wrap:wrap;gap:6px 22px;font-family:var(--mono);font-size:12.5px;color:var(--graphite)}
.hero__proof b{color:var(--ink);font-weight:500}
.js .hero__copy>*{animation:rise .9s var(--ease-out) both}
.js .hero__copy>*:nth-child(1){animation-delay:.05s}.js .hero__copy>*:nth-child(2){animation-delay:.15s}.js .hero__copy>*:nth-child(3){animation-delay:.3s}.js .hero__copy>*:nth-child(4){animation-delay:.42s}.js .hero__copy>*:nth-child(5){animation-delay:.54s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.plate{position:relative;background:var(--frost);border:1px solid var(--rule);border-radius:var(--radius);aspect-ratio:4/4.6;overflow:hidden;isolation:isolate}
.plate--wide{aspect-ratio:4/3.2}
.plate--square{aspect-ratio:1}
.plate__grid{position:absolute;inset:0;background-image:linear-gradient(var(--frost-2) 1px,transparent 1px),linear-gradient(90deg,var(--frost-2) 1px,transparent 1px);background-size:40px 40px;opacity:.55;-webkit-mask-image:radial-gradient(ellipse at 50% 45%,#000 40%,transparent 80%);mask-image:radial-gradient(ellipse at 50% 45%,#000 40%,transparent 80%)}
.plate__halo{position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;transform:translate(-50%,-52%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,71,255,.14),rgba(0,71,255,0) 70%);filter:blur(10px)}
.plate__corner{position:absolute;width:14px;height:14px;border-color:var(--ink);border-style:solid;border-width:0;opacity:.8}
.plate__corner.tl{top:12px;left:12px;border-top-width:1px;border-left-width:1px}.plate__corner.tr{top:12px;right:12px;border-top-width:1px;border-right-width:1px}.plate__corner.bl{bottom:12px;left:12px;border-bottom-width:1px;border-left-width:1px}.plate__corner.br{bottom:12px;right:12px;border-bottom-width:1px;border-right-width:1px}
.plate__obj{position:absolute;left:50%;top:47%;width:78%;height:auto;max-height:62%;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 30px 40px rgba(14,17,22,.18)) drop-shadow(0 4px 8px rgba(14,17,22,.08))}
.plate--photo .plate__obj{width:86%;max-height:70%;border:1px solid var(--rule);background:#fff;filter:none;object-fit:cover}
.js .plate__obj{animation:objIn 1.4s var(--ease-out) .35s both}
@keyframes objIn{from{opacity:0;transform:translate(-50%,-44%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.dim{position:absolute;background:var(--ink);opacity:.85}
.dim::before,.dim::after{content:"";position:absolute;background:var(--ink)}
.dim--h{left:13%;right:13%;bottom:22%;height:1px;transform-origin:left center}
.dim--h::before,.dim--h::after{top:-4px;width:1px;height:9px}.dim--h::before{left:0}.dim--h::after{right:0}
.dim--v{left:9%;top:21%;bottom:34%;width:1px;transform-origin:center top}
.dim--v::before,.dim--v::after{left:-4px;width:9px;height:1px}.dim--v::before{top:0}.dim--v::after{bottom:0}
.js .dim--h{animation:drawX 1.1s var(--ease-out) .95s both}.js .dim--v{animation:drawY 1.1s var(--ease-out) 1.15s both}
@keyframes drawX{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes drawY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.plate__tag{position:absolute;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);max-width:calc(100% - 44px)}
.plate__tag.fig{left:22px;bottom:22px;line-height:1.6}
.plate__tag.fig small{display:block;color:var(--graphite);letter-spacing:.04em;text-transform:none;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate__tag.fam{left:22px;top:22px;color:var(--graphite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.plate__read{position:absolute;right:22px;top:20px;text-align:right;font-family:var(--mono)}
.plate__read small{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}
.plate__read b{display:block;font-weight:500;font-size:26px;letter-spacing:-.02em;color:var(--cryo);font-variant-numeric:tabular-nums;line-height:1.1}
.plate__scale{position:absolute;right:22px;bottom:22px;width:6px;height:38%;border-radius:3px;background:var(--thermal-v);opacity:.9}
.plate__scale i{position:absolute;right:-6px;width:18px;height:2px;background:var(--ink);transform:translateY(-50%);transition:top 1.6s var(--ease-out)}
@media (max-width:980px){.hero__grid{grid-template-columns:1fr}.plate{aspect-ratio:4/3.4;max-width:640px}}
@media (max-width:600px){.plate{aspect-ratio:4/3.8}.plate__obj{width:66%;top:45%}.plate__scale,.plate__tag.fam{display:none}.plate__read b{font-size:22px}}

/* page hero (pages intérieures) */
.phero{padding-block:clamp(36px,5vw,64px) clamp(32px,4vw,56px)}
.phero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px var(--gutter);align-items:center}
.phero h1{margin:18px 0 20px}
.phero .lead{margin-bottom:0}
.phero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.phero .plate{aspect-ratio:4/3.2}
.phero .plate__obj{animation:none;max-height:64%}
@media (max-width:980px){.phero__grid{grid-template-columns:1fr}.phero .plate{max-width:560px}}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--graphite);padding:18px 0 0}
.crumbs a:hover{color:var(--cryo)}
.crumbs i{font-style:normal;color:var(--mist)}
.crumbs span{color:var(--ink)}

/* =========================================================================
   ACCUEIL — marques, échelle, univers, cartes, configurateur, terrain, manifeste, contact
   ========================================================================= */
.brands{border-block:1px solid var(--rule);background:var(--surface)}
.brands__in{display:flex;align-items:center;height:64px;gap:32px;overflow:hidden}
.brands__lbl{flex:none;padding-right:32px;border-right:1px solid var(--rule)}
.marquee{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee__track{display:flex;width:max-content;animation:marquee 52s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__track a{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);padding:0 28px;white-space:nowrap;display:inline-flex;align-items:center;gap:28px}
.marquee__track a:hover{color:var(--cryo)}
.marquee__track a::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--cryo)}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none;flex-wrap:wrap;width:auto}.marquee{mask-image:none;-webkit-mask-image:none}}
@media (max-width:700px){.brands__lbl{display:none}}

.scale{background:var(--surface);border-bottom:1px solid var(--rule)}
.scale__bar{position:relative;height:56px;margin-bottom:8px}
.scale__bar .thermal-line{position:absolute;left:0;right:0;top:28px}
.scale__ticks{position:absolute;left:0;right:0;top:0;height:56px;background-image:linear-gradient(90deg,var(--rule-strong) 1px,transparent 1px);background-size:calc(100%/40) 100%;opacity:.7;-webkit-mask:linear-gradient(180deg,transparent 0 18px,#000 18px 38px,transparent 38px);mask:linear-gradient(180deg,transparent 0 18px,#000 18px 38px,transparent 38px)}
.scale__ticks::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 1px,transparent 1px);background-size:calc(100%/8) 100%;opacity:.9}
.scale__cursor{position:absolute;top:8px;width:2px;height:40px;background:var(--ink);transform:translateX(-50%);transition:left .8s var(--ease-out)}
.scale__cursor::after{content:attr(data-temp);position:absolute;left:50%;top:-2px;transform:translate(-50%,-100%);font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;background:var(--ink);color:#fff;padding:2px 7px;border-radius:3px;white-space:nowrap}
.stops{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--rule)}
.stop{position:relative;padding:28px 22px 32px 0;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:14px;transition:background .3s}
.stop:last-child{border-right:0}.stop+.stop{padding-left:22px}
.stop:hover{background:var(--paper)}
.stop__t{font-family:var(--mono);font-weight:500;font-size:clamp(26px,2.5vw,36px);letter-spacing:-.03em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.stop__name{font-weight:600;font-size:17px;letter-spacing:-.01em}
.stop__fam{font-size:14px;color:var(--graphite);line-height:1.5}
.stop__go{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--ink)}
.stop__go .ico{width:16px;height:16px;transition:transform .3s var(--ease-out)}
.stop:hover .stop__go{color:var(--cryo)}.stop:hover .stop__go .ico{transform:translateX(3px)}
.stop__img{height:96px;display:flex;align-items:center}
.stop__img img{max-height:96px;width:auto;max-width:100%;filter:var(--shadow-obj)}
@media (max-width:1000px){.stops{grid-template-columns:repeat(2,1fr)}.stop{border-bottom:1px solid var(--rule);padding-left:0!important;padding-right:22px}.stop:nth-child(2n){border-right:0;padding-left:22px!important}.stop:last-child{grid-column:1/-1;border-right:0}}
@media (max-width:560px){.stops{grid-template-columns:1fr}.stop{border-right:0!important;padding-left:0!important}}

.univers{border-top:1px solid var(--rule)}
.uni{display:grid;grid-template-columns:200px minmax(0,1fr) minmax(0,1.2fr) 220px;gap:24px;align-items:center;padding:28px 0;border-bottom:1px solid var(--rule);transition:background .3s}
.uni:hover{background:var(--surface)}
.uni__idx{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}
.uni__idx b{display:block;font-size:clamp(28px,3vw,40px);letter-spacing:-.03em;color:var(--ink);font-weight:500;line-height:1;margin-bottom:6px}
.uni__name{font-family:var(--serif);font-size:clamp(30px,3vw,42px);line-height:1;letter-spacing:-.01em}
.uni__name small{display:block;font-family:var(--sans);font-size:14px;color:var(--graphite);margin-top:8px;letter-spacing:0}
.uni__img{justify-self:end;height:110px;display:flex;align-items:center}
.uni__img img{max-height:110px;width:auto;filter:var(--shadow-obj)}
@media (max-width:1000px){.uni{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'idx img' 'name img' 'fams fams';gap:14px 20px}.uni__idx{grid-area:idx}.uni__name{grid-area:name}.uni .tags{grid-area:fams}.uni__img{grid-area:img;align-self:center;justify-self:end;height:96px;width:120px;justify-content:flex-end}.uni__img img{max-height:96px;max-width:120px}}

/* cartes produit */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:var(--paper);display:flex;flex-direction:column;position:relative;transition:background .3s}
.card:hover{background:var(--surface)}
.card__well{position:relative;aspect-ratio:4/3;background:linear-gradient(180deg,var(--frost),var(--paper));display:block}
.card__well img{position:absolute;left:12%;top:13%;width:76%;height:74%;object-fit:contain;transition:transform .6s var(--ease-out);filter:var(--shadow-obj)}
.card:hover .card__well img{transform:translateY(-6px) scale(1.03)}
.card__badge{position:absolute;left:14px;top:14px;z-index:1}
.card__body{padding:18px 18px 16px;display:flex;flex-direction:column;gap:6px;flex:1;border-top:1px solid var(--rule)}
.card__fam{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}
.card__title{font-weight:600;font-size:16px;letter-spacing:-.012em;line-height:1.25}
.card__title a:hover{color:var(--cryo)}
.card__meta{font-family:var(--mono);font-size:12px;color:var(--graphite)}
.card__meta b{color:var(--ink);font-weight:500}
.card__desc{display:none;font-size:14px;color:var(--ink-2);line-height:1.5}
.card__foot{margin-top:auto;padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.card__foot .link{font-size:14px;border:0;padding:0}
.add{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--rule-strong);border-radius:3px;background:var(--surface);font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;cursor:pointer;transition:all .25s;white-space:nowrap}
.add:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.add.is-on{background:var(--cryo);color:#fff;border-color:var(--cryo)}
.add .ico{width:14px;height:14px}
.add--lg{height:48px;padding:0 20px;font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:-.005em;border-radius:var(--radius);background:var(--ink);color:#fff;border-color:var(--ink)}
.add--lg:hover{background:var(--cryo);border-color:var(--cryo)}
.add--lg .ico{width:18px;height:18px}
@media (max-width:1000px){.cards,.cards--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.cards,.cards--3{grid-template-columns:1fr}}
/* mode liste */
.cards.is-list{grid-template-columns:1fr}
.cards.is-list .card{flex-direction:row;align-items:stretch}
.cards.is-list .card__well{aspect-ratio:auto;width:180px;flex:none;min-height:130px}
.cards.is-list .card__body{border-top:0;border-left:1px solid var(--rule);flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 18px}
.cards.is-list .card__fam{width:100%}
.cards.is-list .card__title{flex:1 1 260px}
.cards.is-list .card__desc{display:block;width:100%}
.cards.is-list .card__foot{margin-top:0;padding-top:0;margin-left:auto}
@media (max-width:640px){.cards.is-list .card{flex-direction:column}.cards.is-list .card__well{width:100%;aspect-ratio:4/3}.cards.is-list .card__body{border-left:0;border-top:1px solid var(--rule)}}

/* configurateur (accueil) */
.conf{background:var(--surface);border-block:1px solid var(--rule)}
.conf__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px var(--gutter);align-items:center}
.temp{border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);padding:28px}
.temp__read{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}
.temp__val{font-family:var(--mono);font-weight:500;font-size:clamp(56px,7vw,88px);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;transition:color .3s}
.temp__val sup{font-size:.36em;vertical-align:top;position:relative;top:.22em;letter-spacing:0}
.temp__kind{text-align:right}
.temp__kind b{display:block;font-weight:600;font-size:18px;letter-spacing:-.01em}
.temp__kind small{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--graphite);margin-top:4px}
.temp__slider{position:relative;height:44px}
.temp__slider .bar{position:absolute;left:0;right:0;top:20px;height:4px;border-radius:2px;background:var(--thermal)}
.range{-webkit-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:transparent;cursor:pointer}
.range::-webkit-slider-runnable-track{height:44px;background:transparent}
.range::-moz-range-track{height:44px;background:transparent}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:11px;border-radius:50%;background:var(--surface);border:2px solid var(--ink);box-shadow:0 2px 10px rgba(14,17,22,.2)}
.range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--surface);border:2px solid var(--ink);box-shadow:0 2px 10px rgba(14,17,22,.2)}
.temp__slider .range{position:absolute;inset:0}
.temp__ticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--graphite);margin-top:2px}
.temp__out{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule);display:grid;gap:10px}
.temp__out .row{display:flex;gap:14px;font-size:14px;line-height:1.45}
.temp__out .row .label{flex:none;width:118px;padding-top:2px}
.temp__out .row span{color:var(--ink-2)}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;margin-top:48px;background:var(--paper)}
.step{padding:22px 20px;border-right:1px solid var(--rule)}
.step:last-child{border-right:0}
.step i{display:block;font-style:normal;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--cryo);margin-bottom:14px}
.step b{display:block;font-weight:600;font-size:16px;letter-spacing:-.01em;margin-bottom:6px}
.step p{font-size:14px;color:var(--graphite);line-height:1.5}
@media (max-width:980px){.conf__grid{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.step:nth-child(2){border-right:0}.step:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}.step{border-right:0!important;border-bottom:1px solid var(--rule)}.step:last-child{border-bottom:0}}

/* planches cyanotype */
.plates{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:var(--gutter)}
.plates--3{grid-template-columns:repeat(3,1fr)}
.plates--2{grid-template-columns:repeat(2,1fr)}
.plate-photo{position:relative;border:1px solid var(--rule);background:var(--surface);padding:10px;border-radius:var(--radius);display:flex;flex-direction:column}
.plate-photo figure{margin:0;display:flex;flex-direction:column;flex:1}
.plate-photo .ph{aspect-ratio:4/3;overflow:hidden;background:#0A2260}
.plate-photo .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.plate-photo:hover .ph img{transform:scale(1.03)}
.plate-photo figcaption{display:flex;justify-content:space-between;gap:12px;padding:14px 6px 6px;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--ink-2)}
.plate-photo figcaption i{font-style:normal;color:var(--graphite);white-space:nowrap}
.plate-photo .desc{padding:4px 6px 8px;font-size:14px;color:var(--graphite);line-height:1.5}
.plate-photo .desc b{display:block;font-family:var(--sans);font-weight:600;color:var(--ink);font-size:16px;margin-bottom:4px;letter-spacing:-.01em}
.plates .plate-photo:first-child .ph{aspect-ratio:16/10}
.plates--3 .plate-photo:first-child .ph,.plates--2 .plate-photo:first-child .ph{aspect-ratio:4/3}
@media (max-width:900px){.plates,.plates--3{grid-template-columns:1fr 1fr}.plates .plate-photo:first-child{grid-column:1/-1}.plates--3 .plate-photo:first-child{grid-column:auto}}
@media (max-width:520px){.plates,.plates--3,.plates--2{grid-template-columns:1fr}}

/* manifeste / services / faits */
.manif{background:var(--surface);border-block:1px solid var(--rule)}
.manif__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px var(--gutter);align-items:start}
.manif blockquote{margin:0}
.manif .h-l{max-width:19ch}
.services{border-top:1px solid var(--rule)}
.svc{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--rule);align-items:start}
.svc .ico{width:24px;height:24px;margin-top:2px;stroke-width:1.4}
.svc b{display:block;font-weight:600;font-size:16px;letter-spacing:-.01em;margin-bottom:4px}
.svc p{font-size:14px;color:var(--graphite);line-height:1.5}
.svc a.link{margin-top:8px;font-size:14px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);margin-top:clamp(40px,5vw,64px);padding-top:32px;border-top:1px solid var(--rule)}
.fact b{display:block;font-family:var(--mono);font-weight:500;font-size:clamp(32px,3.6vw,48px);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.fact span{display:block;margin-top:8px;font-size:14px;color:var(--graphite)}
@media (max-width:980px){.manif__grid{grid-template-columns:1fr}.facts{grid-template-columns:repeat(2,1fr)}}

/* contact / intentions */
.cta__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px var(--gutter);align-items:start}
.intents{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.intents--4{grid-template-columns:repeat(4,1fr)}
.intent{background:var(--surface);padding:22px;display:flex;flex-direction:column;gap:10px;min-height:150px;transition:background .3s;cursor:pointer;position:relative;text-align:left;border:0;font:inherit;color:inherit}
.intent:hover{background:var(--givre)}
.intent.is-on{background:var(--givre);box-shadow:inset 0 0 0 1px var(--cryo)}
.intent .ico{width:24px;height:24px;stroke-width:1.4}
.intent b{font-weight:600;font-size:16px;letter-spacing:-.01em}
.intent p{font-size:13.5px;color:var(--graphite);line-height:1.45}
.intent .go{position:absolute;right:18px;top:18px;width:18px;height:18px;color:var(--mist);transition:color .25s,transform .3s var(--ease-out)}
.intent:hover .go{color:var(--cryo);transform:translate(2px,-2px)}
.coord{margin-top:28px;display:grid;grid-template-columns:repeat(2,auto);gap:16px 32px;font-family:var(--mono);font-size:13px;justify-content:start}
.coord small{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite);margin-bottom:4px}
.coord a:hover{color:var(--cryo)}
@media (max-width:980px){.cta__grid{grid-template-columns:1fr}.intents--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.intents,.intents--4{grid-template-columns:1fr}.coord{grid-template-columns:1fr}}

/* footer */
.ftr{background:var(--surface);border-top:1px solid var(--rule);padding:56px 0 28px;margin-top:auto}
.ftr__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px var(--gutter);padding-bottom:40px;border-bottom:1px solid var(--rule)}
.ftr__grid--5{grid-template-columns:1.5fr 1fr 1.1fr 1fr 1fr}
@media (max-width:1100px){.ftr__grid--5{grid-template-columns:1fr 1fr 1fr}.ftr__grid--5 .ftr__about{grid-column:1/-1}}
@media (max-width:640px){.ftr__grid--5{grid-template-columns:1fr 1fr}}
.ftr__grid b{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite);margin-bottom:14px;font-weight:500}
.ftr__grid a{display:block;padding:5px 0;font-size:14.5px;color:var(--ink-2)}
.ftr__grid a:hover{color:var(--cryo)}
.ftr__about p{margin-top:14px;max-width:34ch;color:var(--graphite);font-size:14.5px}
.ftr__about .coord{margin-top:18px;grid-template-columns:1fr;gap:10px}
.ftr__bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;font-family:var(--mono);font-size:11.5px;color:var(--graphite)}
.ftr__bot a:hover{color:var(--cryo)}
@media (max-width:860px){.ftr__grid:not(.ftr__grid--5){grid-template-columns:1fr 1fr}}
.ftr__bot a{color:var(--ink-2)}
/* FAQ + SEO */
.faq__head{margin-bottom:22px}
.faq__list{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.faq__item{background:var(--surface)}
.faq__item summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:600;font-size:15.5px;letter-spacing:-.01em;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-family:var(--mono);font-size:18px;color:var(--graphite);flex:none;transition:transform .3s}
.faq__item[open] summary::after{content:"−"}
.faq__item summary:hover{background:var(--frost)}
.faq__a{padding:0 18px 18px;font-size:15px;line-height:1.6;color:var(--ink-2);max-width:70ch}
.seo__links{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 26px}
.fiche__brand a.label:hover{color:var(--cryo)}
.fiche__brand a.badge:hover{border-color:var(--ink)}
body{display:flex;flex-direction:column;min-height:100vh}
main{flex:1}

/* règle thermique + dock */
.ruler{display:none;position:fixed;right:0;top:0;bottom:0;width:var(--ruler-w);z-index:45;background:var(--paper);border-left:1px solid var(--rule)}
@media (min-width:1200px){.ruler{display:block}}
.ruler__ticks{position:absolute;inset:0;background-image:linear-gradient(var(--rule-strong) 1px,transparent 1px);background-size:100% 10px;-webkit-mask-image:linear-gradient(90deg,transparent 0 30px,#000 30px);mask-image:linear-gradient(90deg,transparent 0 30px,#000 30px)}
.ruler__ticks::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--ink) 1px,transparent 1px);background-size:100% 50px;-webkit-mask-image:linear-gradient(90deg,transparent 0 22px,#000 22px);mask-image:linear-gradient(90deg,transparent 0 22px,#000 22px);opacity:.75}
.ruler__grad{position:absolute;left:8px;top:0;bottom:0;width:3px;background:var(--thermal-v);opacity:.9}
.ruler__cur{position:absolute;left:0;right:0;top:84px;height:2px;background:var(--cryo);transition:top .25s var(--ease-out)}
.ruler__cur::before{content:attr(data-temp);position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.04em;background:var(--ink);color:#fff;padding:3px 8px;border-radius:3px;white-space:nowrap}
.ruler__lbl{position:absolute;right:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--graphite);text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg)}
.ruler__lbl.top{top:88px}.ruler__lbl.bot{bottom:24px}
.dock{position:fixed;left:50%;bottom:22px;transform:translate(-50%,24px);opacity:0;visibility:hidden;z-index:70;display:flex;align-items:center;gap:14px;background:var(--ink);color:#fff;padding:10px 12px 10px 16px;border-radius:6px;box-shadow:0 20px 50px rgba(14,17,22,.25);font-size:14px;transition:transform .6s var(--ease-out),opacity .4s,visibility 0s .6s;white-space:nowrap}
.dock.is-on{transform:translate(-50%,0);opacity:1;visibility:visible;transition:transform .6s var(--ease-out),opacity .4s,visibility 0s}
.dock b{font-family:var(--mono);font-weight:500;background:var(--cryo);border-radius:3px;padding:1px 7px}
.dock a{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--ink);padding:8px 12px;border-radius:4px;font-weight:600;font-size:13px}
@media (max-width:700px){.dock{left:14px;right:76px;bottom:14px;transform:translate(0,24px);font-size:13px;gap:10px;max-width:none;justify-content:space-between;white-space:normal}.dock.is-on{transform:none}}
body[data-page="devis"] .dock{display:none}
@media print{.dock,.ruler,.hdr,.sov,.mnav{display:none!important}}

/* =========================================================================
   CATALOGUE
   ========================================================================= */
.cat-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:18px 0;border-block:1px solid var(--rule);background:var(--surface)}
.cat-bar .field{flex:1 1 320px;position:relative}
.cat-bar .field input{width:100%;height:46px;padding:0 14px 0 42px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);font-size:15px;outline:0}
.cat-bar .field input:focus{border-color:var(--ink)}
.cat-bar .field .ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--graphite);width:18px;height:18px}
.cat-bar .cnt{font-family:var(--mono);font-size:12.5px;color:var(--graphite);white-space:nowrap}
.cat-bar .cnt b{color:var(--ink);font-weight:500;font-size:16px}
.sel{height:46px;padding:0 36px 0 12px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6572' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/16px;-webkit-appearance:none;appearance:none;font-size:14px;color:var(--ink);cursor:pointer;min-width:0}
.sel:focus{border-color:var(--ink);outline:0}
.cat-bar .tog{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 14px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);font-size:14px;font-weight:500;cursor:pointer}
.cat-bar .tog:hover{border-color:var(--ink)}
.cat-bar .tog--filters{display:none}
.cat{display:grid;grid-template-columns:264px minmax(0,1fr);gap:var(--gutter);padding-block:32px 64px;align-items:start}
.filters{position:sticky;top:88px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface)}
.filters__head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--rule)}
.filters__head b{font-weight:600;font-size:15px}
.filters__head button{border:0;background:transparent;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--cryo);cursor:pointer}
.filters__group{padding:14px 16px;border-bottom:1px solid var(--rule);display:grid;gap:8px}
.filters__group:last-child{border-bottom:0}
.filters__group .label{font-size:11px}
.filters__group .sel{height:40px;width:100%}
.filters__group .chk{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}
.filters__group .chk input{width:18px;height:18px;accent-color:var(--cryo);margin:0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;min-height:0}
.chips:empty{display:none}
.chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;padding:6px 8px 6px 10px;border:1px solid var(--givre-2);background:var(--givre);color:var(--cryo-ink);border-radius:3px;cursor:pointer}
.chip .ico{width:12px;height:12px}
.chip:hover{border-color:var(--cryo)}
.cat__more{display:flex;justify-content:center;margin-top:28px}
.empty{padding:56px 24px;text-align:center;border:1px dashed var(--rule-strong);border-radius:var(--radius);background:var(--surface)}
.empty h3{font-family:var(--serif);font-size:30px;margin-bottom:8px;line-height:1}
.empty p{color:var(--graphite);margin-bottom:18px}
@media (max-width:1000px){.cat{grid-template-columns:1fr}.filters{position:static;display:none}.filters.is-open{display:block}.cat-bar .tog--filters{display:inline-flex}}

/* =========================================================================
   FICHE PRODUIT
   ========================================================================= */
.fiche{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:40px var(--gutter);align-items:start;padding-block:24px 48px}
.fiche .plate{aspect-ratio:4/3.6;position:sticky;top:96px}
.fiche .plate__obj{animation:none;max-height:60%}
.fiche__brand{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:14px;min-width:0}
.fiche__brand .badge{white-space:normal;max-width:100%;line-height:1.35}
.fiche h1{font-family:var(--serif);font-size:clamp(34px,4vw,54px);line-height:1;letter-spacing:-.01em;margin-bottom:16px}
.fiche__desc{font-size:17px;line-height:1.6;color:var(--ink-2);max-width:60ch}
.fiche__cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 8px}
.fiche__note{font-family:var(--mono);font-size:11.5px;color:var(--graphite);line-height:1.6}
.spec{margin-top:26px;border-top:1px solid var(--rule)}
.spec div{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,1.4fr);gap:16px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:14.5px}
.spec div span:first-child{color:var(--graphite)}
.spec div span:last-child{font-family:var(--mono);font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}
.spec div.tbc span:last-child{color:var(--graphite);font-family:var(--sans);font-size:14px}
.fnav{position:sticky;top:72px;z-index:30;background:rgba(247,248,250,.92);backdrop-filter:blur(10px);border-block:1px solid var(--rule)}
.fnav__in{display:flex;gap:4px;overflow:auto;height:52px;align-items:center;scrollbar-width:none}
.fnav__in::-webkit-scrollbar{display:none}
.fnav__in a{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border-radius:3px;color:var(--graphite);white-space:nowrap}
.fnav__in a:hover,.fnav__in a.is-on{color:var(--ink);background:var(--frost)}
.frow{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px var(--gutter);padding:40px 0;border-bottom:1px solid var(--rule);scroll-margin-top:130px}
.frow:last-child{border-bottom:0}
.frow__k{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite);padding-top:6px}
.frow__k b{display:block;font-family:var(--serif);font-size:30px;letter-spacing:-.01em;text-transform:none;color:var(--ink);font-weight:400;line-height:1;margin-bottom:8px}
.frow .prose{max-width:70ch}
.hl{display:grid;gap:10px}
.hl li{display:grid;grid-template-columns:20px 1fr;gap:12px;font-size:15.5px;line-height:1.55;color:var(--ink-2)}
.hl li .ico{width:16px;height:16px;margin-top:4px;color:var(--cryo)}
.docs{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.docrow{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 18px;background:var(--surface)}
.docrow .ico{width:22px;height:22px;stroke-width:1.4;color:var(--ink)}
.docrow b{display:block;font-weight:600;font-size:15px;letter-spacing:-.01em}
.docrow small{display:block;font-family:var(--mono);font-size:11.5px;color:var(--graphite);margin-top:3px}
.docrow .link{font-size:14px}
.related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.rel{background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:8px;transition:background .3s}
.rel:hover{background:var(--frost)}
.rel .well{height:110px;display:flex;align-items:center;justify-content:center}
.rel .well img{max-height:100px;max-width:82%;object-fit:contain;filter:var(--shadow-obj)}
.rel b{font-weight:600;font-size:14.5px;line-height:1.3;letter-spacing:-.01em}
.rel small{font-family:var(--mono);font-size:11px;color:var(--graphite)}
.complete{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11.5px;color:var(--graphite);margin-top:18px}
.complete i{flex:1;height:3px;background:var(--frost-2);border-radius:2px;position:relative;overflow:hidden;max-width:160px}
.complete i b{position:absolute;left:0;top:0;bottom:0;background:var(--cryo)}
@media (max-width:980px){.fiche{grid-template-columns:1fr}.fiche .plate{position:relative;top:auto;max-width:640px}.frow{grid-template-columns:1fr}.related{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.related{grid-template-columns:1fr}}

/* =========================================================================
   CATÉGORIE · MARQUES · DOCUMENTATION · SOLUTIONS · APPLICATIONS · etc.
   ========================================================================= */
.fams{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.famcard{background:var(--surface);padding:22px;display:flex;flex-direction:column;gap:10px;min-height:150px;transition:background .3s;position:relative}
.famcard:hover{background:var(--givre)}
.famcard .n{font-family:var(--mono);font-size:12px;color:var(--graphite)}
.famcard .n b{font-weight:500;color:var(--ink);font-size:22px;letter-spacing:-.02em;display:block;margin-bottom:2px}
.famcard h3{font-weight:600;font-size:17px;letter-spacing:-.01em;font-family:var(--sans)}
.famcard p{font-size:13.5px;color:var(--graphite);line-height:1.45}
.famcard .go{position:absolute;right:18px;top:18px;width:18px;height:18px;color:var(--mist);transition:color .25s,transform .3s var(--ease-out)}
.famcard:hover .go{color:var(--cryo);transform:translate(2px,-2px)}
.famcard .thumbs{display:flex;gap:6px;margin-top:auto;padding-top:8px}
.famcard .thumbs img{width:44px;height:36px;object-fit:contain}
@media (max-width:900px){.fams{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.fams{grid-template-columns:1fr}}
.brand-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.brand{background:var(--surface);padding:26px 24px;display:flex;flex-direction:column;gap:10px;min-height:190px;transition:background .3s;position:relative}
.brand:hover{background:var(--frost)}
.brand h3{font-family:var(--serif);font-size:32px;line-height:1;letter-spacing:-.01em}
.brand .n{font-family:var(--mono);font-size:12px;color:var(--graphite)}
.brand .tags{margin-top:auto;padding-top:10px}
.brand .go{position:absolute;right:20px;top:22px;width:18px;height:18px;color:var(--mist)}
.brand:hover .go{color:var(--cryo)}
@media (max-width:900px){.brand-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.brand-grid{grid-template-columns:1fr}}
.doc-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}
.doc-tabs button,.ftabs button{font-family:var(--mono);font-size:12px;letter-spacing:.04em;padding:9px 12px;border:1px solid var(--rule);border-radius:3px;background:var(--surface);cursor:pointer;color:var(--ink-2)}
.doc-tabs button:hover,.ftabs button:hover{border-color:var(--ink);color:var(--ink)}
.doc-tabs button.is-on,.ftabs button.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
.doc-group{margin-bottom:36px}
.doc-group h3{font-family:var(--serif);font-size:30px;line-height:1;margin-bottom:14px;letter-spacing:-.01em;display:flex;align-items:baseline;gap:12px}
.doc-group h3 small{font-family:var(--mono);font-size:12px;color:var(--graphite);letter-spacing:.04em}
.ftabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px}
.sol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.solc{background:var(--surface);display:flex;flex-direction:column;transition:background .3s}
.solc:hover{background:var(--paper)}
.solc .well{height:170px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--frost),var(--surface));border-bottom:1px solid var(--rule);position:relative}
.solc .well img{max-height:120px;max-width:70%;object-fit:contain;filter:var(--shadow-obj)}
.solc .well .badge{position:absolute;left:14px;top:14px}
.solc .body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.solc h3{font-family:var(--serif);font-size:28px;line-height:1;letter-spacing:-.01em}
.solc p{font-size:14.5px;color:var(--graphite);line-height:1.5}
.solc .tags{margin-top:4px}
.solc .link{margin-top:auto;align-self:flex-start;font-size:14px;padding-top:12px}
@media (max-width:900px){.sol{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.sol{grid-template-columns:1fr}}
.apps{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--gutter);align-items:start}
.apps__tabs{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);position:sticky;top:96px}
.apps__tabs button{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;background:var(--surface);border:0;text-align:left;font:inherit;font-weight:600;font-size:15px;letter-spacing:-.01em;cursor:pointer;color:var(--ink-2);transition:background .2s}
.apps__tabs button small{font-family:var(--mono);font-size:11px;color:var(--mist);font-weight:400}
.apps__tabs button:hover{background:var(--frost);color:var(--ink)}
.apps__tabs button.is-on{background:var(--ink);color:#fff}
.apps__tabs button.is-on small{color:#8a94a1}
.apanel{display:none;border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);overflow:hidden}
.apanel.is-on{display:block}
.apanel .ph{aspect-ratio:16/7;overflow:hidden;background:#0A2260}
.apanel .ph img{width:100%;height:100%;object-fit:cover}
.apanel .body{padding:28px}
.apanel h2{font-family:var(--serif);font-size:clamp(30px,3.4vw,44px);line-height:1;margin:8px 0 14px}
.apanel .cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px;padding-top:22px;border-top:1px solid var(--rule)}
.apanel .cols b{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite);margin-bottom:10px;font-weight:500}
.apanel .cols ul{display:grid;gap:6px;font-size:14.5px;color:var(--ink-2)}
.apanel .cols li{position:relative;padding-left:16px}
.apanel .cols li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:1px;background:var(--ink)}
.apanel .cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
@media (max-width:900px){.apps{grid-template-columns:1fr}.apps__tabs{position:static;grid-template-columns:repeat(2,1fr)}.apanel .cols{grid-template-columns:1fr}}
@media (max-width:520px){.apps__tabs{grid-template-columns:1fr}}
.grid-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.gcard{background:var(--surface);padding:24px;display:flex;flex-direction:column;gap:10px;min-height:190px;position:relative;transition:background .3s}
.gcard:hover{background:var(--givre)}
.gcard .ico{width:26px;height:26px;stroke-width:1.4;margin-bottom:6px}
.gcard h3{font-weight:600;font-size:18px;letter-spacing:-.012em;font-family:var(--sans)}
.gcard p{font-size:14.5px;color:var(--graphite);line-height:1.5}
.gcard .link{margin-top:auto;align-self:flex-start;font-size:14px;padding-top:10px}
.gcard .go{position:absolute;right:18px;top:18px;width:18px;height:18px;color:var(--mist);transition:color .25s,transform .3s var(--ease-out)}
.gcard:hover .go{color:var(--cryo);transform:translate(2px,-2px)}
.grid-cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.grid-cards,.grid-cards--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.grid-cards,.grid-cards--4{grid-template-columns:1fr}}
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.flow>div{padding:24px 22px;border-right:1px solid var(--rule)}
.flow>div:last-child{border-right:0}
.flow i{display:block;font-style:normal;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--cryo);margin-bottom:14px}
.flow b{display:block;font-weight:600;font-size:17px;letter-spacing:-.01em;margin-bottom:6px}
.flow p{font-size:14px;color:var(--graphite);line-height:1.5}
@media (max-width:980px){.flow{grid-template-columns:repeat(2,1fr)}.flow>div:nth-child(2){border-right:0}.flow>div:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
@media (max-width:520px){.flow{grid-template-columns:1fr}.flow>div{border-right:0!important;border-bottom:1px solid var(--rule)}.flow>div:last-child{border-bottom:0}}
.guide{padding:36px 0;border-bottom:1px solid var(--rule);scroll-margin-top:100px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px var(--gutter)}
.guide:last-child{border-bottom:0}
.guide__k{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}
.guide__k b{display:block;font-family:var(--serif);font-size:32px;letter-spacing:-.01em;text-transform:none;color:var(--ink);font-weight:400;line-height:1;margin-bottom:8px}
.guide .tags{margin-top:16px}
@media (max-width:860px){.guide{grid-template-columns:1fr}}
.callout{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:22px 24px;border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius)}
.callout .ico{color:var(--cryo)}
.callout b{display:block;font-weight:600;font-size:15px;margin-bottom:4px;letter-spacing:-.01em}
.callout p{font-size:14.5px;color:var(--graphite);line-height:1.55}
.cta-band{background:var(--surface);border-block:1px solid var(--rule)}
.cta-band__in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px var(--gutter);align-items:center;padding-block:clamp(40px,5vw,64px)}
.cta-band .btns{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:860px){.cta-band__in{grid-template-columns:1fr}}

/* =========================================================================
   FORMULAIRES · DEVIS · CONFIGURATEUR
   ========================================================================= */
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.form .f{display:grid;gap:6px}
.form .f--full{grid-column:1/-1}
.form label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}
.form label em{font-style:normal;color:var(--signal-ink)}
.form input,.form textarea,.form select{height:48px;padding:0 14px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);font-size:15px;outline:0;width:100%;transition:border-color .2s}
.form textarea{height:auto;min-height:130px;padding:12px 14px;resize:vertical;line-height:1.5}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--ink)}
.form input::placeholder,.form textarea::placeholder{color:var(--mist)}
.form .f--actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding-top:6px}
.form .f--actions .note{font-family:var(--mono);font-size:11px;color:var(--graphite);line-height:1.5}
.status{display:none;grid-column:1/-1;padding:14px 16px;border-radius:var(--radius);font-size:14.5px;line-height:1.5}
.status.is-ok{display:block;background:var(--ok-tint);color:var(--ok);border:1px solid #BFE6D0}
.status.is-err{display:block;background:var(--signal-tint);color:var(--signal-ink);border:1px solid #FFD3C4}
@media (max-width:640px){.form{grid-template-columns:1fr}}
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:26px}
.panel--paper{background:var(--paper)}
.panel h3{font-family:var(--serif);font-size:30px;line-height:1;letter-spacing:-.01em;margin-bottom:14px}
.devis{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gutter);align-items:start;padding-block:16px 64px}
.sel-list{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.sel-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;background:var(--surface)}
.sel-item .well{width:64px;height:54px;display:flex;align-items:center;justify-content:center;background:var(--frost);border:1px solid var(--rule);border-radius:3px}
.sel-item .well img{max-width:82%;max-height:82%;object-fit:contain}
.sel-item b{display:block;font-weight:600;font-size:14.5px;line-height:1.25;letter-spacing:-.01em}
.sel-item small{display:block;font-family:var(--mono);font-size:11px;color:var(--graphite);margin-top:3px}
.sel-item button{width:34px;height:34px;border:1px solid var(--rule);background:var(--paper);border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--graphite)}
.sel-item button:hover{border-color:var(--signal);color:var(--signal-ink)}
.brief{margin-top:var(--gutter)}
.brief dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:14px;margin:0}
.brief dt{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--graphite);padding-top:2px}
.brief dd{margin:0;color:var(--ink-2)}
@media (max-width:980px){.devis{grid-template-columns:1fr}}
/* configurateur (page) */
.wiz{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gutter);align-items:start;padding-block:16px 64px}
.wiz__steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-bottom:var(--gutter)}
.wiz__steps button{background:var(--surface);border:0;padding:12px 10px;text-align:left;font:inherit;cursor:pointer;display:grid;gap:4px;color:var(--graphite)}
.wiz__steps button i{font-style:normal;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
.wiz__steps button b{font-weight:600;font-size:13.5px;letter-spacing:-.01em;color:var(--ink-2)}
.wiz__steps button.is-on{background:var(--ink)}
.wiz__steps button.is-on i,.wiz__steps button.is-on b{color:#fff}
.wiz__steps button.is-done i{color:var(--cryo)}
.stage{display:none;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:28px}
.stage.is-on{display:block}
.stage h2{font-family:var(--serif);font-size:clamp(30px,3.4vw,42px);line-height:1;margin:8px 0 8px}
.stage>p{color:var(--graphite);font-size:15px;margin-bottom:22px}
.opts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.opt{background:var(--surface);border:0;padding:18px;text-align:left;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:6px;color:inherit;transition:background .2s;position:relative}
.opt:hover{background:var(--frost)}
.opt.is-on{background:var(--givre);box-shadow:inset 0 0 0 1px var(--cryo)}
.opt b{font-weight:600;font-size:15.5px;letter-spacing:-.01em}
.opt small{font-size:13px;color:var(--graphite)}
.opt .ico{width:22px;height:22px;stroke-width:1.4;margin-bottom:4px}
.opt .chk{position:absolute;right:14px;top:14px;width:18px;height:18px;border:1px solid var(--rule-strong);border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface)}
.opt.is-on .chk{background:var(--cryo);border-color:var(--cryo);color:#fff}
.opt .chk .ico{width:11px;height:11px;margin:0;stroke-width:2.2}
.dims{display:grid;gap:18px}
.dimrow{display:grid;grid-template-columns:100px minmax(0,1fr) 90px;gap:16px;align-items:center}
.dimrow .label{font-size:11px}
.dimrow .range{height:36px}
.dimrow .range::-webkit-slider-thumb{margin-top:7px}
.dimrow output{font-family:var(--mono);font-size:15px;font-weight:500;text-align:right;font-variant-numeric:tabular-nums}
.wiz__nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--rule)}
.summary{position:sticky;top:96px}
.summary dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0;font-size:14.5px}
.summary dt{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--graphite);padding-top:2px}
.summary dd{margin:0;font-weight:500}
.summary .vol{margin-top:18px;padding-top:18px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline}
.summary .vol b{font-family:var(--mono);font-size:34px;font-weight:500;letter-spacing:-.03em;color:var(--cryo)}
.summary .btn{width:100%;margin-top:18px}
@media (max-width:980px){.wiz{grid-template-columns:1fr}.summary{position:static}.wiz__steps{grid-template-columns:repeat(5,1fr)}.wiz__steps button b{display:none}}
@media (max-width:520px){.opts{grid-template-columns:1fr}.dimrow{grid-template-columns:80px 1fr 70px}}

/* =========================================================================
   DIVERS
   ========================================================================= */
.legal .prose h2{font-family:var(--serif);font-size:34px;line-height:1;margin:36px 0 12px;letter-spacing:-.01em}
.legal .prose h2:first-child{margin-top:0}
.notice{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:16px 18px;background:var(--signal-tint);border:1px solid #FFD3C4;border-radius:var(--radius);color:var(--signal-ink);font-size:14.5px;line-height:1.5;margin-bottom:28px}
.notice .ico{color:var(--signal-ink)}
.notfound{padding-block:clamp(56px,8vw,120px);text-align:left}
.notfound .h-xl{font-size:clamp(80px,16vw,220px);line-height:.9;font-family:var(--mono);font-weight:500;letter-spacing:-.06em;color:var(--frost-2);margin-bottom:-.2em}
.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.kpi div{background:var(--surface);padding:18px 20px}
.kpi b{display:block;font-family:var(--mono);font-weight:500;font-size:30px;letter-spacing:-.03em;line-height:1}
.kpi span{display:block;margin-top:6px;font-size:13.5px;color:var(--graphite)}
@media (max-width:760px){.kpi{grid-template-columns:repeat(2,1fr)}}
.toast{position:fixed;left:50%;top:18px;transform:translate(-50%,-30px);opacity:0;z-index:120;background:var(--ink);color:#fff;padding:10px 14px;border-radius:4px;font-size:14px;box-shadow:0 20px 50px rgba(14,17,22,.25);transition:all .4s var(--ease-out);pointer-events:none}
.toast.is-on{transform:translate(-50%,0);opacity:1}
