  /* Reset de l'enveloppe technique (identique à site/index.html livré) */
  :root{color-scheme:light}body{margin:0;padding:0}[hidden]:not([hidden=until-found i]){display:none!important}
  @font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/Inter-Regular.woff2") format("woff2");}
  @font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/Inter-Medium.woff2") format("woff2");}
  @font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/Inter-SemiBold.woff2") format("woff2");}
  @font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/Inter-Bold.woff2") format("woff2");}
  /* Fraunces (titres) — fichiers officiels Google Fonts, licence SIL OFL 1.1 (assets/fonts/Fraunces-OFL.txt).
     Police variable : axes wght 400–700 et opsz 9–144 (taille optique automatique). */
  @font-face{font-family:"Fraunces";font-style:normal;font-weight:400 700;font-display:swap;src:url("/assets/fonts/Fraunces-latin-opsz-wght.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:"Fraunces";font-style:normal;font-weight:400 700;font-display:swap;src:url("/assets/fonts/Fraunces-latinext-opsz-wght.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;}
  :root{
    --ivoire:#FAFAF7;
    --ivoire-2:#F0F1EE;
    --ink:#202321;
    --ink-soft:#4A4D4A;
    --ink-faint:#666964;
    --accent:#FFBC54;
    --accent-ink:#5A3B0F;
    --line: rgba(32,35,33,.14);
    --line-strong: rgba(32,35,33,.42);
    --on-dark: #FAFAF7;
    --on-dark-soft: rgba(250,250,247,.68);
    --dark: #202321;
    --radius: 0px;
    --font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", serif;
    --font-body: "Inter", "Helvetica Neue", Arial, sans-serif;
    --space-1: .5rem;
    --space-2: 1rem;
    --space-3: 1.5rem;
    --space-4: 2rem;
    --space-5: 3rem;
    --space-6: 4rem;
    --space-7: 6rem;
    --space-8: 8rem;
    --fs-h1: clamp(2.1rem, 1.3rem + 3.6vw, 4.4rem);
    --fs-h2: clamp(1.5rem, 1.15rem + 1.6vw, 2.5rem);
    --fs-h3: clamp(1.15rem, 1.02rem + .5vw, 1.4rem);
    --fs-lead: clamp(1.1rem, 1rem + .5vw, 1.375rem);
    --fs-body: 1.0625rem;
    --fs-number: clamp(2.6rem, 1.6rem + 5vw, 6rem);
    --ease: cubic-bezier(.16,.8,.24,1);
    --dur: .5s;
  }

  *{box-sizing:border-box;}
  html,body{overflow-x:clip;}
  body{
    background:var(--ivoire);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:var(--fs-body);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    padding-inline:0;
  }
  h1,h2,h3{
    font-family:var(--font-display);
    font-weight:600;
    line-height:1.05;
    text-wrap:balance;
    margin:0;
    letter-spacing:-.01em;
  }
  h1{font-size:var(--fs-h1);font-weight:700;letter-spacing:-.025em;}
  h2{font-size:var(--fs-h2);}
  .sequence h1::before, .sequence h2::before, .interlude-light h2::before{
    content:"";display:block;width:2.5rem;height:5px;background:var(--accent);margin-bottom:1.1rem;
    transform-origin:left center;transform:scaleX(0);
    transition:transform .6s var(--ease) .1s;
  }
  .case-study-head h2::before{
    content:"";display:block;width:2.5rem;height:5px;background:var(--accent);margin-bottom:1.1rem;
  }
  .sequence.in-view h1::before, .sequence.in-view h2::before{transform:scaleX(1);}
  .interlude.in-view .interlude-light h2::before{transform:scaleX(1);}
  @media (prefers-reduced-motion:reduce){
    .sequence h1::before, .sequence h2::before, .interlude-light h2::before{transform:scaleX(1);transition:none;}
  }

  /* ---------- titres révélés ligne à ligne (hero, Méthode, Focus consultation) ---------- */
  .title-lines .tl-line{
    display:block;
    opacity:0;transform:translateY(.4em);
    transition:opacity .6s var(--ease), transform .6s var(--ease);
  }
  .sequence.in-view .title-lines .tl-line,
  .interlude.in-view .title-lines .tl-line{opacity:1;transform:none;}
  .title-lines .tl-line:nth-child(1){transition-delay:.22s;}
  .title-lines .tl-line:nth-child(2){transition-delay:.36s;}
  .title-lines .tl-line:nth-child(3){transition-delay:.5s;}
  @media (prefers-reduced-motion:reduce){
    .title-lines .tl-line{opacity:1;transform:none;transition:none;}
  }

  /* ---------- micro-interaction CTA (magnétisme léger, desktop uniquement — voir script) ---------- */

  /* ---------- bloc Méthode (accueil) : texte et document séparés, sans calque de fond ---------- */
  .sequence.method{
    --m-bg:#F0F1EE;--m-ink:#202321;--m-line:rgba(32,35,33,.16);
    background:var(--m-bg);color:var(--m-ink);
    margin-inline:calc(-6vw);padding-inline:6vw;padding-block:var(--space-5);border-bottom:none;
    opacity:1;transform:none;transition:none;
  }
  @container site (max-width:700px){
    .sequence.method{margin-inline:calc(-1.25rem);padding-inline:1.25rem;padding-block:var(--space-4);}
  }
  .method h2,.method h3,.method p,.method li{color:var(--m-ink);}
  .method .method-closing{color:var(--ink-soft);}
  .method h2{font-weight:500;}
  .method h2::before{transform:none;transition:none;margin-bottom:.9rem;}
  .method-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:var(--space-4);align-items:center;}
  .method-lede{margin-top:var(--space-2);max-width:34ch;font-size:var(--fs-lead);line-height:1.5;}
  .method-visual{margin:0;justify-self:end;width:100%;max-width:15rem;}
  .method-visual img{width:100%;height:auto;aspect-ratio:1030/1024;object-fit:contain;mix-blend-mode:multiply;}
  .method-steps{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
  .method-step{padding:0 var(--space-4);border-left:1px solid var(--m-line);}
  .method-step:first-child{padding-left:0;border-left:none;}
  .method-step:last-child{padding-right:0;}
  .method-step h3{font-weight:500;font-size:1.25rem;line-height:1.25;margin:0 0 var(--space-2);}
  .method-num{color:var(--accent);font-weight:600;}
  .method-step h3 strong{font-weight:700;}
  .method-step ul{display:flex;flex-direction:column;gap:.45rem;}
  .method-step li{font-size:1.0625rem;line-height:1.45;}
  .method-closing{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--m-line);max-width:48ch;font-size:1rem;line-height:1.5;color:var(--ink-soft);}
  @container site (max-width:860px){
    .method-top{grid-template-columns:1fr;gap:var(--space-4);align-items:start;}
    .method-visual{justify-self:start;max-width:22rem;}
    .method-steps{grid-template-columns:1fr;margin-top:var(--space-4);}
    .method-step,.method-step:first-child,.method-step:last-child{padding:var(--space-3) 0;border-left:none;border-top:1px solid var(--m-line);}
    .method-step:first-child{border-top:1px solid var(--m-line);}
  }
  h3{font-size:var(--fs-h3);}
  p{margin:0;}
  a{color:inherit;}
  ul{margin:0;padding:0;list-style:none;}
  button{font-family:inherit;}
  img{max-width:100%;display:block;}
  ::selection{background:var(--accent);color:var(--ink);}

  .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-link{
    position:fixed;top:-100%;left:1rem;z-index:200;
    background:var(--ink);color:var(--ivoire);
    padding:.75rem 1.25rem;border-radius:var(--radius);
    font-size:.875rem;transition:top .2s var(--ease);
  }
  .skip-link:focus{top:1rem;}


  :focus-visible{outline:2px solid var(--ink);outline-offset:3px;}
  .cta:focus-visible, .menu-toggle:focus-visible{outline-offset:2px;}

  /* ---------- layout shell ---------- */
  .site{
    container-type:inline-size;
    container-name:site;
    max-width:100%;
    transition:max-width .35s var(--ease);
  }

  .wrap{
    max-width:1240px;
    margin-inline:auto;
    padding-inline:6vw;
  }
  @container site (max-width: 700px){
    .wrap{padding-inline:1.25rem;}
  }

  /* ---------- header ---------- */
  .site-header{
    position:sticky;top:0;z-index:100;
    background:rgba(250,250,247,.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line-strong);
  }
  .header-inner{
    max-width:1240px;margin-inline:auto;
    padding:1.1rem 6vw;
    display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  }
  @container site (max-width:700px){
    .header-inner{padding:.9rem 1.25rem;}
  }
  .logo{
    display:flex;flex-direction:column;gap:.15rem;text-decoration:none;
    line-height:1;
  }
  .logo .logo-mark{height:2.1rem;width:auto;display:block;}
  .footer-brand .logo-mark{height:2.5rem;width:auto;display:block;}
  .logo-text{
    font-family:var(--font-display);font-weight:600;
    font-size:1.35rem;letter-spacing:.01em;color:var(--ink);
  }
  .logo-tag{
    font-size:.5625rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--ink-faint);
  }
  .main-nav{display:flex;gap:2rem;align-items:center;}
  .main-nav a{
    font-size:.875rem;text-decoration:none;color:var(--ink-soft);
    padding:.25rem 0;border-bottom:1px solid transparent;
    transition:color .15s var(--ease), border-color .15s var(--ease);
  }
  .main-nav a:hover{color:var(--ink);}
  .main-nav a[aria-current="page"]{color:var(--ink);border-color:var(--accent);}
  .header-actions{display:flex;align-items:center;gap:1rem;}
  .menu-toggle{
    display:none;
    width:2.25rem;height:2.25rem;
    border:1px solid var(--line-strong);background:transparent;
    border-radius:var(--radius);cursor:pointer;
    position:relative;
  }
  .menu-icon, .menu-icon::before, .menu-icon::after{
    content:"";position:absolute;left:.5rem;right:.5rem;height:1px;background:var(--ink);
  }
  .menu-icon{top:50%;transform:translateY(-50%);}
  .menu-icon::before{top:-6px;}
  .menu-icon::after{top:6px;}

  @container site (max-width:860px){
    .main-nav{display:none;}
  }
  @container site (max-width:860px){
    .menu-toggle{display:block;}
  }
  @container site (max-width:520px){
    .cta--compact{display:none;}
  }

  .mobile-drawer{
    border-bottom:1px solid var(--line);
    background:var(--ivoire);
    padding:1.5rem 6vw 2rem;
  }
  @container site (max-width:700px){
    .mobile-drawer{padding:1.5rem 1.25rem 2rem;}
  }
  .mobile-drawer[hidden]{display:none;}
  .mobile-drawer ul{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:1.5rem;}
  .mobile-drawer a{
    font-family:var(--font-display);font-size:1.35rem;text-decoration:none;color:var(--ink);
  }
  .mobile-drawer .cta{width:100%;justify-content:center;}

  /* ---------- CTAs ---------- */
  .cta{
    display:inline-flex;align-items:center;gap:.5rem;
    font-size:.875rem;font-weight:600;text-decoration:none;
    padding:.85rem 1.5rem;border-radius:var(--radius);
    white-space:nowrap;cursor:pointer;border:1px solid transparent;
    transition:transform .15s var(--ease), background .15s var(--ease), border-color .15s var(--ease);
  }
  .cta:hover{transform:translateY(-1px);}
  .cta--primary{background:var(--accent);color:var(--ink);}
  .cta--primary:hover{background:#ffc766;}
  .cta--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong);}
  .cta--ghost:hover{border-color:var(--ink);}
  .cta--on-dark{background:var(--accent);color:var(--dark);}
  .cta--text{
    background:none;border:none;padding:0;text-decoration:underline;
    text-underline-offset:.25em;color:var(--ink);font-weight:500;
  }
  .cta-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:var(--space-4);}
  .sequence--dark .cta--text{color:var(--on-dark);}
  .sequence--dark .cta--ghost{color:var(--on-dark);border-color:rgba(250,250,247,.4);}
  .sequence--dark .cta--ghost:hover{border-color:var(--on-dark);}

  /* ---------- pages / sequences ---------- */
  main{display:block;}
  .page[hidden]{display:none;}
  .sequence{
    padding-block:var(--space-8);
    border-bottom:1px solid var(--line);
    opacity:0;transform:translateY(14px);
    transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
  }
  .sequence.in-view{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    .sequence{transition:none;opacity:1;transform:none;}
  }
  .sequence:last-child{border-bottom:none;}
  .sequence--hero{padding-top:var(--space-6);}
  /* ---------- hero : composition éditoriale ----------
     Quatre niveaux de lecture nettement séparés — question (H1, contenue),
     réponse (manifeste, sans-serif, plus léger que le H1), contexte (petit,
     discret), action (un CTA plein, un lien texte) — sur une grille asymétrique
     56/44 avec beaucoup d'espace négatif, plutôt qu'un bloc massif centré. */
  .hero-copy{max-width:46rem;padding-top:var(--space-2);position:relative;z-index:2;}
  .hero-copy h1{
    font-size:clamp(1.65rem, 1rem + 1.95vw, 2.75rem);
    line-height:1.2;
    max-width:none;
    margin-bottom:var(--space-4);
  }
  .hero-copy .hero-affirmation{margin-top:0;max-width:none;}
  .hero-copy .hero-affirmation .lede{
    font-family:var(--font-body);
    font-size:clamp(1.55rem, 1.32rem + .8vw, 2rem);
    font-weight:500;
    line-height:1.42;
    letter-spacing:-.003em;
    color:var(--ink);
  }
  .hero-copy .hero-affirmation p:not(.lede){
    margin-top:var(--space-3);
    font-size:1.0625rem;
    line-height:1.65;
    color:var(--ink-soft);
    max-width:none;
  }
  .hero-copy .cta-row{
    margin-top:var(--space-5);
    column-gap:var(--space-5);row-gap:var(--space-2);
  }
  .hero-skills{
    margin-top:var(--space-3);font-size:.875rem;color:var(--ink-soft);
    letter-spacing:.01em;max-width:none;
  }
  .hero-cta-secondary{
    display:inline-flex;align-items:center;gap:.4rem;
    font-size:.9375rem;font-weight:500;color:var(--ink-soft);
    text-decoration:none;border-bottom:1px solid var(--line-strong);
    padding-bottom:.2rem;line-height:1;
    transition:color .15s var(--ease), border-color .15s var(--ease), gap .15s var(--ease);
  }
  .hero-cta-secondary:hover{color:var(--ink);border-color:var(--ink);gap:.65rem;}
  .hero-cta-secondary svg{width:.85em;height:.85em;flex:none;}
  /* ---------- hero : illustration fournie (v4) ----------
     Visuel fourni par COLIBRIMM, fond transparent (le fond ivoire du hero
     se voit à travers) : un actif de départ, trois hypothèses de
     transformation qui se déploient en éventail depuis un même point. */
  .hero-grid{
    display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-4);align-items:center;
  }
  .hero-visual{
    display:flex;align-items:center;justify-content:flex-end;
    min-width:0;margin-top:1.4rem;
    position:relative;z-index:1;
    opacity:0;transform:translateY(10px) scale(.97);
    transition:opacity .7s var(--ease) .15s, transform .7s var(--ease) .15s;
  }
  .sequence.in-view .hero-visual{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    .hero-visual{transition:none;opacity:1;transform:none;}
  }
  /* L'illustration reste dans sa colonne : largeur = 100 % de la colonne,
     plafonnée à 34rem, sans décalage ni débordement sur le texte. */
  .hero-illustration{
    display:block;width:100%;max-width:34rem;margin:0;
  }
  .hero-illustration img{
    width:100%;height:auto;display:block;
  }
  /* Ajustement du 6 octobre 2026 (demande de Marion) : illustration verticale.
     Côte à côte, l'image prend exactement la hauteur du bloc de texte (de « Accueil »
     aux boutons) et peut s'étendre vers la marge de droite ; le texte n'est pas modifié. */
  @container site (min-width:1001px){
    .hero-grid{align-items:stretch;}
    .hero-visual{position:relative;margin-top:0;}
    .hero-illustration{position:absolute;top:0;bottom:0;left:1.5rem;right:calc(-1 * min(4vw,6rem));width:auto;max-width:none;margin:0;}
    .hero-illustration img{width:100%;height:100%;max-height:560px;object-fit:contain;object-position:center top;}
  }
  /* Empilé (tablette, téléphone) : image sous le texte et les boutons, 420 px de haut au plus */
  @container site (max-width:1000px){
    .hero-visual .hero-illustration{max-width:21rem;}  /* 336 x 420 px maximum (ratio 4:5) */
  }
  /* En dessous de 1000px de conteneur, la colonne de droite devient trop
     étroite pour lire les annotations : le visuel passe sous le texte. */
  @container site (max-width:1000px){
    .hero-grid{grid-template-columns:1fr;gap:var(--space-5);align-items:stretch;}
    .hero-copy{max-width:none;padding-top:0;}
    .hero-visual{justify-content:center;margin-top:var(--space-3);}
    .hero-illustration{max-width:34rem;margin-inline:auto;}
  }
  .sequence--dark{
    background:var(--dark);color:var(--on-dark);
    margin-inline:calc(-6vw);padding-inline:6vw;border-bottom:none;
  }
  @container site (max-width:700px){
    .sequence--dark{margin-inline:calc(-1.25rem);padding-inline:1.25rem;}
  }
  .sequence--dark h2, .sequence--dark p{color:var(--on-dark);}
  .sequence--dark .sequence-copy p{color:var(--on-dark-soft);}
  .sequence--tight{padding-block:var(--space-6);}

  .sequence-meta{
    display:flex;align-items:center;gap:.75rem;margin-bottom:var(--space-3);
  }
  .seq-num{
    font-family:var(--font-display);font-size:.8125rem;color:var(--ink-faint);
    letter-spacing:.05em;
  }
  .sequence--dark .seq-num{color:var(--on-dark-soft);}
  .sequence-meta{margin-bottom:var(--space-2);}

  .sequence-copy{max-width:52ch;margin-top:var(--space-3);}
  .sequence-copy p + p{margin-top:1em;}
  .sequence-copy p{color:var(--ink-soft);font-size:var(--fs-lead);}
  .sequence-copy .lede{color:var(--ink);font-weight:500;}

  /* ---------- mise en exergue d'un point important au sein d'un bloc ---------- */
  /* ---------- listes de contenu (tâches, compétences, critères, périmètres) ---------- */
  .content-list{margin-top:var(--space-3);display:flex;flex-direction:column;gap:.5rem;}
  .content-list li{position:relative;padding-left:1.1rem;font-size:var(--fs-lead);color:var(--ink-soft);line-height:1.5;}
  .content-list li::before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;background:var(--accent);border-radius:50%;}
  .sequence--dark .content-list li{color:var(--on-dark-soft);}
  .need-card .content-list{margin-top:0;gap:.4rem;}
  .need-card .content-list li{font-size:.9375rem;padding-left:1rem;}
  .need-card .content-list li::before{width:5px;height:5px;top:.6em;}

  .block-highlight{
    max-width:52ch;margin-top:var(--space-4);
    border-left:3px solid var(--accent);
    padding:.2rem 0 .2rem 1.25rem;
  }
  .block-highlight p{font-size:var(--fs-lead);color:var(--ink);}
  .block-highlight p strong{font-weight:600;}
  .sequence--dark .block-highlight p{color:var(--on-dark);}
  .sequence--hero h1{margin-bottom:.5rem;}
  .sequence--hero .sequence-copy p{font-size:var(--fs-h3);}
  .eyebrow{
    font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);
    display:block;margin-bottom:.75rem;
  }
  .sequence--dark .eyebrow{color:var(--on-dark-soft);}

  .sequence-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:center;
  }
  .sequence-grid.reverse{grid-template-columns:1fr 1fr;}
  .sequence-grid.reverse .sequence-visual{order:-1;}
  @container site (max-width:860px){
    .sequence-grid,.sequence-grid.reverse{grid-template-columns:1fr;gap:var(--space-4);}
    .sequence-grid.reverse .sequence-visual{order:0;}
  }

  /* ---------- interlude (focus consultation) ---------- */
  .interlude{
    display:flex;align-items:stretch;
    margin-inline:calc(-6vw);
    border-bottom:1px solid var(--line);
    opacity:0;transform:translateY(14px);
    transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
  }
  .interlude.in-view{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    .interlude{transition:none;opacity:1;transform:none;}
  }
  .interlude-panel{padding:var(--space-6) 6vw;}
  .interlude-dark{
    flex:0 0 38%;
    background:var(--dark);color:var(--on-dark);
    display:flex;flex-direction:column;justify-content:center;
    /* le panneau part du bord de l'écran (débord -6vw de .interlude) :
       on ajoute ce même -6vw au calage habituel du .wrap pour retrouver
       la même respiration à gauche que le reste du site */
    padding-left:max(12vw, calc((100vw - 1240px) / 2 + 12vw));
  }
  .interlude-light{
    flex:0 0 62%;
    background:var(--ivoire);
    display:flex;flex-direction:column;justify-content:center;
  }
  .interlude-eyebrow.eyebrow{color:var(--accent);margin-bottom:1.25rem;}
  .interlude-question{
    font-family:var(--font-display);font-weight:600;
    font-size:clamp(1.85rem, 1.2rem + 2.6vw, 2.9rem);
    line-height:1.1;letter-spacing:-.01em;color:var(--ivoire);
  }
  .interlude-light h2{max-width:24ch;}
  .interlude-light .sequence-copy .lede{color:var(--accent-ink);}
  @container site (max-width:860px){
    .interlude{flex-direction:column;}
    .interlude-dark, .interlude-light{flex:1 1 auto;}
    .interlude-panel{padding-block:var(--space-5);}
    .interlude-question{font-size:clamp(1.75rem, 1.4rem + 2.2vw, 2.5rem);}
  }
  @container site (max-width:700px){
    .interlude{margin-inline:calc(-1.25rem);}
    .interlude-panel{padding-block:var(--space-4);padding-inline:1.25rem;}
    .interlude-dark{padding-left:2.5rem;}
  }

  .contact-direct{
    border-radius:var(--radius);
    border:1px solid var(--line);
    background:var(--ivoire-2);
    padding:2rem;
    display:flex;flex-direction:column;gap:1.75rem;
    justify-content:center;
  }
  .contact-direct .logo-mark{height:2.25rem;width:auto;display:block;}
  .contact-direct-info{font-size:.9375rem;line-height:1.75;color:var(--ink-soft);}
  .contact-direct-info p{margin:0 0 .9rem;}
  .contact-direct-info p:last-child{margin-bottom:0;}
  .contact-direct-info a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.2em;}
  .contact-direct-info a:hover{color:var(--accent-ink);}

  /* ---------- illustration: plan masse anonymisé (cas Route d'Heyrieux) ---------- */
  .illus-plan{
    position:relative;border-radius:var(--radius);aspect-ratio:4/3;overflow:hidden;
    background:var(--ivoire);border:1px solid var(--line);padding:.6rem;
  }
  .illus-plan.compact{aspect-ratio:16/10;}
  .illus-plan img{width:100%;height:100%;object-fit:contain;display:block;}
  .sequence--dark .illus-plan{border-color:rgba(250,250,247,.14);box-shadow:0 1px 24px rgba(0,0,0,.28);}

  /* ---------- illustration: photographie réelle d'actif (ex. Pavillon Vert) ---------- */
  .case-photo{position:relative;border-radius:var(--radius);aspect-ratio:4/3;overflow:hidden;}
  .case-photo.compact{aspect-ratio:3/2;}
  .case-photo.portrait{aspect-ratio:3/4;}
  .case-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  /* documents illustratifs (tableaux, plans, dossiers) : toujours entiers, jamais recadrés ; cover est réservé aux photographies dont le cadrage ne retire rien */
  .case-photo.doc{background:var(--ivoire);border:1px solid var(--line);}
  .case-photo.doc img{object-fit:contain;}

  /* ---------- illustration: collage technique (hero Repositionnement d'actifs) ----------
     fond ivoire assorti à --ivoire : se fond dans le hero, pas de cadre. */
  .approche-hero-visual{margin-top:var(--space-6);max-width:56rem;}
  .approche-hero-visual img{width:100%;height:auto;display:block;}

  /* ---------- typographic devices ---------- */
  .verbs-display{
    font-family:var(--font-display);font-weight:500;
    font-size:clamp(1.6rem,1.1rem + 2.6vw,3.1rem);
    line-height:1.18;color:var(--ink);max-width:none;
  }
  .process-line{
    display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:var(--space-4);
    font-family:var(--font-display);font-size:clamp(1.05rem,.9rem + 1vw,1.6rem);
  }
  .process-line .step{color:var(--ink);}
  .process-line .arrow{color:var(--accent-ink);font-size:1rem;}
  .sequence--dark .process-line .step{color:var(--on-dark);}
  .sequence--dark .process-line .arrow{color:var(--accent);}
  .sequence--dark .verbs-display{color:var(--on-dark);}
  @container site (max-width:700px){
    .process-line{flex-direction:column;align-items:flex-start;}
    .process-line .arrow{transform:rotate(90deg);margin-left:.4rem;}
  }

  .timeline{
    display:flex;gap:0;margin-top:var(--space-5);border-top:2px solid var(--line-strong);
  }
  .timeline .stage{
    flex:1;padding:1.25rem 1rem 0;border-left:2px solid var(--line-strong);position:relative;
  }
  .timeline .stage:first-child{border-left:none;}
  .timeline .stage::before{
    content:"";position:absolute;top:-1px;left:0;width:8px;height:8px;
    background:var(--accent);border-radius:50%;transform:translate(-4px,-4px);
  }
  .timeline .stage h3{font-size:1rem;margin-bottom:.35rem;}
  .timeline .stage p{font-size:.875rem;color:var(--ink-soft);}
  @container site (max-width:860px){
    .timeline{flex-direction:column;}
    .timeline .stage{border-left:none;border-top:1px solid var(--line-strong);padding:1.1rem 0 0 1.2rem;}
    .timeline .stage:first-child{border-top:none;}
    .timeline .stage::before{top:0;left:-1px;transform:translate(-4px,-4px);}
  }

  /* ---------- exemple de tableau de bord (illustration, données fictives) ---------- */
  .dash{border:1px solid var(--line-strong);background:#fff;padding:1.1rem 1.1rem 1rem;font-size:.8125rem;}
  .dash-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.7rem;border-bottom:1px solid var(--line-strong);margin-bottom:.2rem;}
  .dash-title{font-family:var(--font-display);font-size:1.0625rem;color:var(--ink);}
  .dash-sub{font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}
  .dash-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;column-gap:.6rem;align-items:center;}
  .dash-grid > *{padding:.55rem 0;border-bottom:1px solid var(--line);}
  .dash-colhead{font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}
  .dash-phase{color:var(--ink);font-weight:500;}
  .dash-state{display:flex;align-items:center;gap:.4rem;color:var(--ink-soft);line-height:1.25;}
  .dash-dot{flex:none;width:.65rem;height:.65rem;border-radius:50%;border:1.5px solid var(--ink);}
  .dash-dot--ok{background:var(--ink);}
  .dash-dot--watch{background:var(--accent);border-color:var(--accent-ink);}
  .dash-dot--gap{background:#fff;border-color:var(--accent-ink);box-shadow:inset 0 0 0 2px var(--accent);}
  .dash-dot--next{border-style:dashed;border-color:var(--ink-faint);}
  .dash-decisions{margin-top:.9rem;padding-top:.2rem;}
  .dash-decisions p{margin:0 0 .35rem;font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}
  .dash-decisions ul{margin:0;padding-left:1.1rem;list-style:disc;color:var(--ink-soft);}
  .dash-decisions li{margin:.15rem 0;}
  @media (max-width:520px){
    .dash{padding:.9rem .75rem;font-size:.75rem;}
    .dash-grid{grid-template-columns:1.2fr 1fr 1fr 1fr;column-gap:.4rem;}
    .dash-state{gap:.3rem;}
  }
  .stat-row{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-5);}
  .stat{max-width:22ch;}
  .stat-number{
    display:block;font-family:var(--font-display);font-weight:600;
    font-size:var(--fs-number);color:var(--accent-ink);line-height:.95;
    font-variant-numeric:tabular-nums;
  }
  .sequence--dark .stat-number{color:var(--accent);}
  .stat-label{display:block;margin-top:.5rem;font-size:.9375rem;color:var(--ink-soft);}
  .sequence--dark .stat-label{color:var(--on-dark-soft);}

  .illustrative-table{width:100%;border-collapse:collapse;margin-top:var(--space-4);font-size:.9375rem;}
  .illustrative-table caption{
    text-align:left;font-size:.75rem;color:var(--ink-faint);margin-bottom:.6rem;caption-side:top;
  }
  .illustrative-table th, .illustrative-table td{
    text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--line);
  }
  .illustrative-table th{color:var(--ink-faint);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;}
  .illustrative-table td.muted{color:var(--ink-faint);}

  .mirror{display:grid;grid-template-columns:1fr 1px 1fr;gap:var(--space-4);margin-top:var(--space-5);align-items:start;}
  .mirror-divider{background:var(--line-strong);align-self:stretch;}
  .mirror h3{font-size:.875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:.75rem;}
  .mirror .case-photo{max-width:260px;margin-inline:auto;}
  @container site (max-width:700px){
    .mirror{grid-template-columns:1fr;}
    .mirror-divider{height:1px;width:100%;}
  }

  .complexity-flow{margin-top:var(--space-5);}
  .complexity-words{display:flex;flex-wrap:wrap;gap:.5rem .6rem;}
  .complexity-words span{
    border:1px solid var(--line-strong);border-radius:1rem;padding:.35rem .85rem;font-size:.875rem;color:var(--ink-soft);
  }
  .complexity-arrow{margin:1.25rem 0;color:var(--accent-ink);font-family:var(--font-display);font-size:1.3rem;}
  .complexity-result{font-family:var(--font-display);font-size:var(--fs-h3);}
  .sequence--dark .complexity-words span{border-color:rgba(250,250,247,.4);color:var(--on-dark-soft);}
  .sequence--dark .complexity-arrow{color:var(--accent);}
  .sequence--dark .complexity-result{color:var(--on-dark);}

  .ecosystem{margin-top:var(--space-5);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);}
  .ecosystem-hub{
    font-family:var(--font-display);font-weight:600;font-size:1.1rem;
    background:var(--ink);color:var(--ivoire);padding:.75rem 1.5rem;border-radius:2rem;
  }
  .ecosystem-spokes{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;max-width:56ch;}
  .ecosystem-spokes span{
    border:1px solid var(--line-strong);border-radius:1rem;padding:.4rem .9rem;font-size:.8125rem;color:var(--ink-soft);
  }

  /* ---------- need cards (proposition homepage — 3 entrées par besoin) ---------- */
  .need-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-5);}
  @container site (max-width:860px){
    .need-cards{grid-template-columns:1fr;}
  }
  .need-card{
    display:flex;flex-direction:column;gap:.85rem;
    border:1px solid var(--line-strong);border-top:3px solid var(--accent);
    padding:var(--space-4);text-decoration:none;color:inherit;
    transition:border-color .15s var(--ease), transform .15s var(--ease), box-shadow .15s var(--ease);
  }
  .need-card:hover{border-color:var(--ink);border-top-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 24px rgba(32,35,33,.08);}
  .need-card-eyebrow{
    font-family:var(--font-display);font-weight:600;
    font-size:1.75rem;line-height:1;letter-spacing:0;color:var(--accent-ink);
  }
  .need-card h3{font-size:1.1875rem;font-family:var(--font-display);font-weight:600;line-height:1.2;}
  .need-card p{font-size:.9375rem;color:var(--ink-soft);line-height:1.55;}
  .need-card-next{
    margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;
    font-size:.875rem;font-weight:600;color:var(--ink);
  }
  .need-card-next svg{width:1em;height:1em;transition:transform .15s var(--ease);}
  .need-card:hover .need-card-next svg{transform:translateX(3px);}
  .need-cards-note{margin-top:var(--space-3);font-size:.8125rem;color:var(--ink-faint);max-width:52ch;}

  /* ---------- case cards ---------- */
  .case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-5);}
  @container site (max-width:860px){
    .case-grid{grid-template-columns:1fr;}
  }
  .case-card{
    border:1px solid var(--line-strong);padding:var(--space-4);display:flex;flex-direction:column;gap:1rem;
    text-decoration:none;color:inherit;transition:border-color .15s var(--ease);
  }
  .case-card:hover{border-color:var(--ink);}
  .case-card-body{display:flex;flex-direction:column;gap:.3rem;}
  .case-card h3{font-size:1.0625rem;}
  .case-card-location{font-size:.75rem;font-style:italic;color:var(--ink-faint);}
  .case-card p{font-size:.9375rem;color:var(--ink-soft);}
  .case-card .case-link{font-size:.8125rem;text-decoration:underline;text-underline-offset:.25em;margin-top:auto;}

  .case-study{padding-block:var(--space-7);border-bottom:1px solid var(--line);}
  .case-study:last-of-type{border-bottom:none;}
  .case-study-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:baseline;margin-bottom:var(--space-4);}
  .case-study-head h2{max-width:34ch;}
  .case-study-tag{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}
  .case-body{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-5);align-items:start;}
  @container site (max-width:860px){
    .case-body{grid-template-columns:1fr;}
  }
  .case-facts{display:grid;gap:1.1rem;}
  .case-fact dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:.25rem;}
  .case-fact dd{margin:0;font-size:1.0625rem;color:var(--ink);}
  .case-fact dd .content-list{margin-top:.4rem;gap:.4rem;}
  .case-fact dd .content-list li{font-size:1.0625rem;color:var(--ink);line-height:1.5;}

  /* ---------- filtre de la page Cas (proposition à valider) ---------- */
  .case-filter{display:flex;flex-wrap:wrap;gap:.5rem;padding-block:var(--space-4) var(--space-2);border-bottom:1px solid var(--line);margin-bottom:var(--space-2);}
  .case-filter-btn{
    font:inherit;font-size:.8125rem;letter-spacing:.01em;line-height:1;
    padding:.5rem 1.05rem;border-radius:1rem;border:1px solid var(--line-strong);
    background:transparent;color:var(--ink-soft);cursor:pointer;
    transition:background-color .15s ease,color .15s ease,border-color .15s ease;
  }
  .case-filter-btn:hover{border-color:var(--ink);color:var(--ink);}
  .case-filter-btn.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
  .case-filter-count{font-size:.8125rem;color:var(--ink-faint);align-self:center;margin-left:.25rem;}
  .case-study[hidden]{display:none;}
  /* ---------- vue synthétique d'un cas + détail repliable (proposition à valider) ---------- */
  .case-study{padding-block:var(--space-5);}
  .case-subtitle{margin:calc(var(--space-2) * -1) 0 var(--space-3);max-width:46ch;font-size:1.125rem;color:var(--ink-soft);line-height:1.45;}
  .case-summary{display:grid;grid-template-columns:.8fr 1.6fr 1.4fr;gap:1.1rem var(--space-4);margin:0 0 var(--space-3);padding:1.1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .case-summary dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:.25rem;}
  .case-summary dd{margin:0;font-size:1rem;color:var(--ink);line-height:1.45;}
  .case-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,19rem);gap:var(--space-4);align-items:start;margin-bottom:var(--space-3);}
  .case-top .case-summary{margin-bottom:0;grid-template-columns:1fr;gap:.9rem;}
  .case-lead{margin:0;}
  .case-lead > div{margin:0;}
  .case-lead .case-photo,.case-lead .illus-plan{width:100%;}
  .case-lead-cap{margin:.5rem 0 0;font-size:.8125rem;color:var(--ink-faint);}
  /* crédit d'un visuel, placé immédiatement sous l'image */
  .case-lead-credit{margin:.35rem 0 0;font-size:.75rem;line-height:1.4;color:var(--ink-faint);}
  @media (max-width:860px){
    .case-top{grid-template-columns:1fr;gap:var(--space-3);}
    .case-lead{max-width:26rem;}
  }
  .case-details > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.6rem;padding:.55rem 0;font-weight:500;color:var(--ink);border-bottom:1px solid var(--line-strong);}
  .case-details > summary::-webkit-details-marker{display:none;}
  .case-details > summary::after{content:"";width:.5rem;height:.5rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--ease);}
  .case-details[open] > summary::after{transform:rotate(-135deg) translateY(-2px);}
  .case-details > summary:hover{border-color:var(--ink);}
  .case-details > summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px;}
  .case-details .when-open{display:none;}
  .case-details[open] .when-open{display:inline;}
  .case-details[open] .when-closed{display:none;}
  .case-details > .case-body{margin-top:var(--space-4);}
  @media (max-width:860px){
    .case-summary{grid-template-columns:1fr;gap:.9rem;}
  }
  @media (prefers-reduced-motion:reduce){
    .case-details > summary::after{transition:none;}
  }
  @media (prefers-reduced-motion: reduce){.case-filter-btn{transition:none;}}

  /* ---------- footer ---------- */
  .site-footer{
    background:var(--dark);color:var(--on-dark);padding-block:var(--space-6) var(--space-4);
    margin-top:var(--space-4);
  }
  .footer-inner{
    max-width:1240px;margin-inline:auto;padding-inline:6vw;
    display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:var(--space-5);
  }
  @container site (max-width:700px){
    .footer-inner{grid-template-columns:1fr;padding-inline:1.25rem;gap:var(--space-4);}
  }
  .footer-brand .logo-text{color:var(--on-dark);}
  .footer-baseline{margin-top:.6rem;font-size:.875rem;color:var(--on-dark-soft);}
  .footer-nav{display:flex;flex-direction:column;gap:.6rem;}
  .footer-nav a{font-size:.875rem;text-decoration:none;color:var(--on-dark-soft);}
  .footer-nav a:hover{color:var(--on-dark);}
  .footer-contact{font-size:.875rem;color:var(--on-dark-soft);line-height:1.7;}
  .footer-contact a{color:inherit;text-decoration:underline;text-underline-offset:.2em;}
  .footer-contact a:hover{color:var(--on-dark);}
  .footer-legal{
    max-width:1240px;margin:var(--space-5) auto 0;padding:var(--space-3) 6vw 0;
    border-top:1px solid rgba(250,250,247,.16);
    display:flex;flex-wrap:wrap;gap:1.5rem;font-size:.75rem;color:var(--on-dark-soft);
  }
  @container site (max-width:700px){
    .footer-legal{padding-inline:1.25rem;}
  }
  .footer-legal a{color:inherit;text-decoration:underline;text-underline-offset:.2em;}

  /* ---------- contact form ---------- */
  .contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:start;}
  @container site (max-width:860px){
    .contact-layout{grid-template-columns:1fr;}
  }
  .field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.15rem;}
  .field label{font-size:.8125rem;color:var(--ink-soft);}
  .field .optional{color:var(--ink-faint);font-weight:400;}
  .field .req{color:var(--ink);font-weight:500;}
  .field input, .field select, .field textarea{
    font:inherit;padding:.75rem .85rem;border:1px solid var(--line-strong);
    border-radius:var(--radius);background:var(--ivoire);color:var(--ink);
  }
  .field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--ink);outline-offset:1px;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
  @container site (max-width:520px){
    .field-row{grid-template-columns:1fr;}
  }
  .consent{display:flex;align-items:flex-start;gap:.6rem;margin:1.4rem 0 1.6rem;}
  .consent input{margin-top:.2rem;}
  .consent label{font-size:.8125rem;color:var(--ink-soft);}
  .form-note{
    font-size:.75rem;color:var(--ink-faint);border-top:1px solid var(--line);
    margin-top:var(--space-5);padding-top:1rem;
  }
  .form-confirm{
    display:none;border:1px solid var(--ink);padding:1.25rem;margin-top:1.5rem;font-size:.9375rem;
  }
  .form-confirm.visible{display:block;}

  /* ---------- volet juridique : mentions légales, confidentialité, honoraires ---------- */
  .legal-page .wrap{max-width:52rem;}
  .legal-block{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--line);}
  .legal-block:first-of-type{margin-top:var(--space-5);}
  .legal-block h2{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--ink);margin-bottom:var(--space-2);}
  .legal-block h3{font-family:var(--font-body);font-weight:600;font-size:1rem;color:var(--ink);margin-top:var(--space-4);margin-bottom:.6rem;}
  .legal-block p{color:var(--ink-soft);font-size:.9375rem;line-height:1.6;max-width:62ch;}
  .legal-block p + p{margin-top:.8em;}
  .fact-item{
    display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;
    padding:.8rem 0;border-top:1px solid var(--line);
  }
  .fact-item:first-of-type{border-top:none;}
  .fact-label{flex:0 0 14rem;font-weight:500;color:var(--ink);font-size:.9375rem;}
  .fact-value{flex:1 1 20rem;color:var(--ink-soft);font-size:.9375rem;}
  @media (max-width:640px){
    .fact-item{flex-direction:column;align-items:flex-start;}
    .fact-label,.fact-value{flex:none;width:100%;}
  }
  .legal-note{
    margin-top:var(--space-3);padding:var(--space-2) var(--space-3);
    background:var(--ivoire-2);border-left:3px solid var(--accent);
    font-size:.875rem;color:var(--ink-soft);max-width:62ch;
  }
  .legal-note strong{color:var(--ink);}
  .legal-toc{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:var(--space-4);}
  .legal-toc a{font-size:.875rem;color:var(--ink-soft);text-decoration:underline;text-underline-offset:.2em;}
  .legal-toc a:hover{color:var(--ink);}
  .fee-table{width:100%;border-collapse:collapse;margin-top:var(--space-3);font-size:.9375rem;}
  .fee-table th,.fee-table td{text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--line);}
  .fee-table th{font-weight:600;color:var(--ink);background:var(--ivoire-2);}
  .fee-table td{color:var(--ink-soft);}
  .fee-table td.num,.fee-table th.num{text-align:right;font-variant-numeric:tabular-nums;}
  @media (max-width:640px){
    .fee-table{font-size:.8125rem;}
    .fee-table th,.fee-table td{padding:.5rem;}
  }

  /* ---------- révélations au scroll : contenu visible par défaut ----------
     Les états masqués (opacity:0) ne s'appliquent que si html porte la classe
     « anim », posée par site.js une fois l'observateur de défilement en place
     (et jamais si prefers-reduced-motion). Sans JavaScript, ou si le script
     échoue, aucun état masqué n'est appliqué : tout est visible immédiatement. */
  html:not(.anim) .sequence, html:not(.anim) .interlude, html:not(.anim) .hero-visual,
  html:not(.anim) .title-lines .tl-line{opacity:1;transform:none;transition:none;}
  html:not(.anim) .sequence h1::before, html:not(.anim) .sequence h2::before, html:not(.anim) .interlude-light h2::before{transform:scaleX(1);transition:none;}

  /* champ piège anti-spam du formulaire : hors écran, jamais affiché */
  .hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}