  /* ============================================================
     ISC — LE DOSSIER D'EXÉCUTION · v2 « Conseil & Projets »
     0. Fondations : variables, remise à zéro, base
  ============================================================ */
  :root{
    --encre:#0A0F14;
    --surface-1:#131A22;
    --surface-2:#1A232E;
    --creme:#F2EFE9;
    --gris-clair:#C9D1DA;
    --gris:#8A97A6;
    --bronze:#C08A3E;
    --bronze-clair:#D09A4E;
    --filet:rgba(192,138,62,0.25);
    --hairline-creme:rgba(201,209,218,0.08);
    --grille:rgba(201,209,218,0.06);
    --serif:'Instrument Serif', Georgia, 'Times New Roman', serif;
    --sans:'Manrope', 'Segoe UI', system-ui, sans-serif;
    --mono:'IBM Plex Mono', 'Courier New', monospace;
    --respiration:clamp(96px, 12vw, 180px);
    --sortie:cubic-bezier(0.22, 1, 0.36, 1);
    --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)'/%3E%3C/svg%3E");
  }
  *,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
  html{ background:var(--encre); scroll-padding-top:96px; }
  @media (prefers-reduced-motion: no-preference){
    html{ scroll-behavior:smooth; }
  }
  body{
    background:transparent;
    color:var(--gris-clair);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  body::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background-image:repeating-linear-gradient(90deg, var(--grille) 0, var(--grille) 1px, transparent 1px, transparent 120px);
  }
  ::selection{ background:var(--bronze); color:var(--encre); }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  ul, ol{ list-style:none; }
  h1,h2,h3{ font-family:var(--serif); font-weight:400; color:var(--creme); }
  h1 em, h2 em, h3 em, .accent-it{ font-style:italic; color:var(--bronze); }
  :focus-visible{ outline:2px solid var(--bronze); outline-offset:3px; }
  .conteneur{ max-width:1280px; margin-inline:auto; padding-inline:clamp(24px, 4vw, 48px); }
  main section{ padding-block:var(--respiration); position:relative; }
  .lien-evitement{
    position:absolute; left:16px; top:-64px; z-index:200;
    background:var(--bronze); color:var(--encre);
    font-family:var(--mono); font-size:13px; text-transform:uppercase; letter-spacing:.08em;
    padding:10px 18px; text-decoration:none; transition:top .3s var(--sortie);
  }
  .lien-evitement:focus{ top:16px; }
  .grain{ position:relative; }
  .grain::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:var(--grain); opacity:.04; z-index:1;
  }
  /* ============================================================
     0bis. Composants récurrents
  ============================================================ */
  .folio{
    display:flex; align-items:center; gap:14px;
    font-family:var(--mono); font-size:12px; font-weight:500;
    letter-spacing:.15em; color:var(--bronze); text-transform:uppercase;
    margin-bottom:clamp(40px, 6vw, 72px);
  }
  .folio .croix{ flex:none; }
  .folio .folio-filet{ flex:1; height:1px; background:var(--filet); }
  .croix{
    font-family:var(--mono); font-size:14px; line-height:1;
    color:rgba(138,151,166,0.35); user-select:none;
  }
  .repere{
    position:absolute; font-family:var(--mono); font-size:15px; line-height:1;
    color:rgba(138,151,166,0.35); user-select:none; pointer-events:none; z-index:2;
  }
  .repere--ht-g{ top:14px; left:14px; }
  .repere--ht-d{ top:14px; right:14px; }
  .repere--bs-g{ bottom:14px; left:14px; }
  .repere--bs-d{ bottom:14px; right:14px; }
  .js .trace{ stroke-dasharray:1; stroke-dashoffset:1; }
  .trace{ transition:stroke-dashoffset .9s var(--sortie); }
  .is-visible .trace{ stroke-dashoffset:0; }
  .cote{ display:block; overflow:visible; }
  .cote line{ stroke:var(--bronze); stroke-width:1; }
  .cote text{
    font-family:var(--mono); font-size:10px; letter-spacing:.18em;
    fill:var(--gris); text-transform:uppercase;
  }
  .js .reveal{ opacity:0; transform:translateY(16px); }
  .reveal{ transition:opacity .7s var(--sortie), transform .7s var(--sortie); }
  .reveal.is-visible{ opacity:1; transform:none; }
  .reveal[style*="--i"]{ transition-delay:calc(var(--i) * 60ms); }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    font-family:var(--mono); font-size:13px; font-weight:500;
    text-transform:uppercase; letter-spacing:.12em; text-decoration:none;
    padding:16px 28px; border:1px solid var(--bronze); border-radius:2px; cursor:pointer;
    transition:background-color .4s var(--sortie), color .4s var(--sortie), border-color .4s var(--sortie), transform .4s var(--sortie), box-shadow .4s var(--sortie);
  }
  .btn:hover{ transform:translateY(-1px); box-shadow:0 18px 40px -22px rgba(192,138,62,.55); }
  .btn--plein{ background:var(--bronze); color:var(--encre); }
  .btn--plein:hover{ background:var(--bronze-clair); border-color:var(--bronze-clair); }
  .btn--contour{ background:transparent; color:var(--creme); }
  .btn--contour:hover, .btn--contour:focus-visible{ background:var(--bronze); color:var(--encre); }
  .cartouche{ position:relative; border:1px solid var(--hairline-creme); border-radius:2px; }
  .cartouche::before{
    content:""; position:absolute; inset:4px; pointer-events:none;
    border:1px solid var(--filet);
  }
  .cartouche::after{
    content:""; position:absolute; inset:-1px; pointer-events:none;
    background-repeat:no-repeat;
    background-image:
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze));
    background-position:left top, left top, right top, right top, left bottom, left bottom, right bottom, right bottom;
    background-size:14px 1px, 1px 14px, 14px 1px, 1px 14px, 14px 1px, 1px 14px, 14px 1px, 1px 14px;
  }
  .surtitre{
    font-family:var(--mono); font-size:12px; font-weight:500;
    letter-spacing:.18em; text-transform:uppercase; color:var(--bronze);
    margin-bottom:28px; display:block;
  }
  .col-etiquette{
    display:block; font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.2em; text-transform:uppercase; color:var(--gris);
    margin-bottom:16px;
  }
  .lien-fleche{
    font-family:var(--sans); font-size:14px; font-weight:600;
    letter-spacing:.04em; color:var(--creme); text-decoration:none;
    border-bottom:1px solid var(--filet); padding-bottom:4px;
    transition:color .3s var(--sortie), border-color .3s var(--sortie);
  }
  .lien-fleche:hover, .lien-fleche:focus-visible{ color:var(--bronze); border-color:var(--bronze); }
  /* ============================================================
     PL. 00 — En-tête fixe
  ============================================================ */
  .entete{
    position:fixed; top:0; left:0; right:0; z-index:100;
    height:72px;
    background:rgba(10,15,20,0.85);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    border-bottom:1px solid var(--filet);
  }
  /* Cote de progression : la ligne bronze se trace au fil de la lecture */
  .progression{
    position:absolute; left:0; bottom:-1px; height:1px; width:100%;
    background:var(--bronze); transform:scaleX(0); transform-origin:left center;
    pointer-events:none;
  }
  .entete-int{
    height:100%; display:flex; align-items:center; justify-content:space-between; gap:24px;
  }
  .marque{ display:flex; align-items:center; gap:12px; text-decoration:none; flex:none; }
  .marque svg{ display:block; }
  .marque-libelle{
    font-family:var(--mono); font-size:10px; letter-spacing:.2em;
    text-transform:uppercase; color:var(--gris); white-space:nowrap;
  }
  .nav-principale ul{ display:flex; align-items:center; gap:clamp(16px, 2vw, 30px); }
  .nav-lien{
    position:relative; display:inline-block; white-space:nowrap;
    font-size:12.5px; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
    color:var(--gris-clair); text-decoration:none; padding:6px 0;
  }
  .nav-lien .idx{
    font-family:var(--mono); font-size:11px; color:var(--bronze); margin-right:6px;
  }
  .nav-lien::after{
    content:""; position:absolute; left:0; right:0; bottom:-4px; height:5px;
    background-image:
      linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze));
    background-repeat:no-repeat;
    background-position:center, left center, right center;
    background-size:100% 1px, 1px 5px, 1px 5px;
    transform:scaleX(0); transform-origin:left center;
    transition:transform .3s var(--sortie);
  }
  .nav-lien:hover::after, .nav-lien:focus-visible::after, .nav-lien.actif::after{ transform:scaleX(1); }
  .nav-lien.actif{ color:var(--creme); }
  .entete .btn{ padding:11px 20px; flex:none; }
  .burger{
    display:none; flex-direction:column; justify-content:center; gap:6px;
    width:44px; height:44px; padding:10px;
    background:transparent; border:none; cursor:pointer;
  }
  .burger span{
    display:block; height:1px; background:var(--creme);
    transition:transform .3s var(--sortie), opacity .3s var(--sortie);
  }
  .burger span:nth-child(1){ width:100%; }
  .burger span:nth-child(2){ width:70%; }
  .burger span:nth-child(3){ width:88%; }
  .burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); width:100%; }
  .burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); width:100%; }
  .menu-mobile{
    position:fixed; inset:0; z-index:90;
    background:var(--surface-1);
    background-image:repeating-linear-gradient(90deg, var(--grille) 0, var(--grille) 1px, transparent 1px, transparent 96px);
    display:flex; flex-direction:column; justify-content:center;
    padding:96px clamp(24px, 8vw, 48px) 40px;
    overflow-y:auto;
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .35s var(--sortie), transform .35s var(--sortie), visibility 0s linear .35s;
  }
  .menu-mobile.ouvert{
    opacity:1; visibility:visible; transform:none;
    transition:opacity .35s var(--sortie), transform .35s var(--sortie);
  }
  .menu-mobile li{ margin-bottom:6px; }
  .menu-mobile .mm-lien{
    display:inline-block; font-family:var(--serif); font-size:clamp(24px, 5vw, 30px); line-height:1.3;
    color:var(--creme); text-decoration:none;
    opacity:0; transform:translateY(12px);
    transition:opacity .5s var(--sortie), transform .5s var(--sortie);
  }
  .menu-mobile.ouvert .mm-lien{
    opacity:1; transform:none;
    transition-delay:calc(var(--i) * 60ms);
  }
  .menu-mobile .mm-lien .idx{
    font-family:var(--mono); font-size:13px; color:var(--bronze);
    margin-right:14px; vertical-align:middle;
  }
  .menu-mobile .mm-lien:hover, .menu-mobile .mm-lien:focus-visible{ color:var(--bronze); }
  .mm-pied{
    margin-top:auto; padding-top:28px; border-top:1px solid var(--hairline-creme);
    display:flex; flex-direction:column; gap:10px;
    font-family:var(--mono); font-size:13px;
  }
  .mm-pied a{ color:var(--gris-clair); text-decoration:none; }
  .mm-pied a:hover{ color:var(--bronze); }
  .mm-pied .btn{ width:100%; margin-bottom:10px; }
  .mm-pied .btn, .mm-pied .btn:hover{ color:var(--encre); }
  body.menu-ouvert{ overflow:hidden; }
  @media (max-width:1099px){
    .entete{ height:60px; }
    .nav-principale, .entete .btn{ display:none; }
    .burger{ display:flex; }
  }
  @media (min-width:1100px){
    .menu-mobile{ display:none; }
  }
  /* ============================================================
     PL. 01 — Héro « Plan directeur »
  ============================================================ */
  .hero{
    min-height:100svh;
    display:flex; flex-direction:column; justify-content:center;
    padding-top:132px; padding-bottom:72px;
    position:relative; overflow:hidden;
  }
  .hero::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:
      repeating-linear-gradient(90deg, var(--grille) 0, var(--grille) 1px, transparent 1px, transparent 120px),
      repeating-linear-gradient(0deg, rgba(201,209,218,0.035) 0, rgba(201,209,218,0.035) 1px, transparent 1px, transparent 120px);
  }
  /* Lueur bronze qui suit le curseur (bureau uniquement) */
  .hero-lueur{
    position:absolute; inset:0; pointer-events:none; z-index:0;
    background:radial-gradient(640px circle at var(--mx, 72%) var(--my, 42%), rgba(192,138,62,0.11), transparent 62%);
    transition:background-position .2s linear;
  }
  .rose-nord{
    position:absolute; top:96px; right:clamp(24px, 4vw, 56px);
    opacity:.2; pointer-events:none;
  }
  .rose-nord *{ stroke:var(--bronze); fill:none; stroke-width:1; }
  .rose-nord text{ fill:var(--bronze); stroke:none; font-family:var(--mono); font-size:9px; letter-spacing:.2em; }
  .hero-grille{
    display:grid; grid-template-columns:7fr 5fr;
    gap:clamp(40px, 5vw, 72px); align-items:center;
    position:relative; z-index:2;
  }
  .hero h1{
    font-size:clamp(2.75rem, 7.6vw, 6.25rem);
    line-height:1.05; letter-spacing:-0.01em;
    margin-bottom:20px; max-width:13ch;
  }
  .hero-cote-titre{ margin-bottom:32px; max-width:520px; }
  .chapeau{
    font-size:17px; line-height:1.75; color:var(--gris-clair);
    max-width:54ch; margin-bottom:40px;
  }
  .hero-cta{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
  .doc-epingle{ position:relative; transform:rotate(0.8deg); margin-inline:14px; }
  .doc-cadre{ position:relative; border:1px solid rgba(242,239,233,0.1); }
  .doc-cadre img, .doc-cadre video{ width:100%; height:auto; display:block; }
  .doc-cadre::before{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
    background:linear-gradient(to top, rgba(10,15,20,0.3), transparent 45%);
  }
  .doc-cadre::after{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
    background-image:var(--grain); opacity:.05;
  }
  .doc-coin{ position:absolute; width:16px; height:16px; pointer-events:none; z-index:2; }
  .doc-coin::before, .doc-coin::after{ content:""; position:absolute; background:var(--bronze); }
  .doc-coin::before{ width:16px; height:1px; }
  .doc-coin::after{ width:1px; height:16px; }
  .doc-coin--hg{ top:-8px; left:-8px; }
  .doc-coin--hg::before{ top:0; left:0; } .doc-coin--hg::after{ top:0; left:0; }
  .doc-coin--hd{ top:-8px; right:-8px; }
  .doc-coin--hd::before{ top:0; right:0; } .doc-coin--hd::after{ top:0; right:0; }
  .doc-coin--bg{ bottom:-8px; left:-8px; }
  .doc-coin--bg::before{ bottom:0; left:0; } .doc-coin--bg::after{ bottom:0; left:0; }
  .doc-coin--bd{ bottom:-8px; right:-8px; }
  .doc-coin--bd::before{ bottom:0; right:0; } .doc-coin--bd::after{ bottom:0; right:0; }
  .doc-legende{
    margin-top:18px; padding:10px 14px;
    font-family:var(--mono); font-size:11px; letter-spacing:.12em;
    text-transform:uppercase; color:var(--gris);
  }
  .doc-cote-h{ margin-top:14px; }
  .doc-cote-v{
    position:absolute; top:0; right:-34px; height:100%;
    display:flex; align-items:stretch;
  }
  .hero-pied{
    position:relative; z-index:2;
    margin-top:clamp(40px, 6vh, 72px);
    display:flex; align-items:flex-end; justify-content:space-between; gap:32px;
  }
  .hero-signature-mineure{
    font-family:var(--serif); font-style:italic; font-size:20px; color:var(--gris-clair);
  }
  .indic-defiler{
    display:flex; flex-direction:column; align-items:center; gap:14px; flex:none;
  }
  .indic-defiler .libelle{
    font-family:var(--mono); font-size:10px; letter-spacing:.22em;
    text-transform:uppercase; color:var(--gris);
    writing-mode:vertical-rl;
  }
  .indic-defiler .trait{
    width:1px; height:48px; background:rgba(192,138,62,0.25);
    position:relative; overflow:hidden;
  }
  .indic-defiler .trait::after{
    content:""; position:absolute; left:0; top:0; width:100%; height:100%;
    background:var(--bronze); transform-origin:top;
    animation:derouler 2.2s var(--sortie) infinite;
  }
  @keyframes derouler{
    0%{ transform:scaleY(0); transform-origin:top; }
    45%{ transform:scaleY(1); transform-origin:top; }
    55%{ transform:scaleY(1); transform-origin:bottom; }
    100%{ transform:scaleY(0); transform-origin:bottom; }
  }
  @media (max-width:1023px){
    .hero-grille{ grid-template-columns:1fr; }
    .hero h1{ max-width:none; }
    .doc-cote-v{ display:none; }
    .doc-epingle{ max-width:640px; }
    .rose-nord{ display:none; }
    .hero-lueur{ display:none; }
  }
  @media (max-width:599px){
    .hero-pied{ flex-direction:column; align-items:flex-start; gap:24px; }
    .indic-defiler{ display:none; }
  }
  /* ============================================================
     PL. 01bis — Bande des domaines (défilement continu)
  ============================================================ */
  .bande-domaines{
    position:relative; overflow:hidden;
    border-top:1px solid var(--filet); border-bottom:1px solid var(--filet);
    background:rgba(19,26,34,0.6);
    padding:18px 0;
    -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  }
  .bande-piste{
    display:flex; align-items:center; gap:0;
    width:max-content;
    animation:defiler 46s linear infinite;
  }
  .bande-domaines:hover .bande-piste{ animation-play-state:paused; }
  .bande-piste span{
    font-family:var(--mono); font-size:12px; letter-spacing:.2em;
    text-transform:uppercase; color:var(--gris-clair); white-space:nowrap;
    padding:0 28px;
  }
  .bande-piste .sep{ color:var(--bronze); padding:0; }
  @keyframes defiler{ to{ transform:translateX(-50%); } }
  /* ============================================================
     PL. 02 — Le cabinet (manifeste)
  ============================================================ */
  .cabinet{ overflow:hidden; }
  .cabinet .conteneur{ position:relative; }
  .filigrane{
    position:absolute; top:50%; left:50%;
    transform:translate(-50%, -50%);
    font-family:var(--serif); font-size:38vw; line-height:1;
    color:transparent;
    -webkit-text-stroke:1px rgba(192,138,62,0.05);
    pointer-events:none; user-select:none; z-index:0;
  }
  @supports not (-webkit-text-stroke:1px black){
    .filigrane{ color:rgba(192,138,62,0.04); }
  }
  .mention-verticale{
    position:absolute; left:-8px; top:12px;
    font-family:var(--mono); font-size:10px; letter-spacing:.24em;
    text-transform:uppercase; color:var(--gris);
    writing-mode:vertical-rl; transform:rotate(180deg);
  }
  .cabinet-corps{ position:relative; z-index:1; }
  .manifeste{
    font-family:var(--serif);
    font-size:clamp(1.9rem, 4vw, 3rem);
    line-height:1.35; color:var(--creme);
    max-width:28ch;
    margin-bottom:clamp(48px, 7vw, 88px);
  }
  .cabinet-grille{
    display:grid; grid-template-columns:1.15fr .85fr;
    gap:clamp(40px, 6vw, 96px); align-items:start;
  }
  .cabinet-colonnes{
    display:grid; grid-template-columns:1fr 1fr;
    gap:clamp(28px, 4vw, 56px);
    position:relative;
  }
  .cabinet-colonnes::before{
    content:""; position:absolute; top:0; bottom:0; left:50%;
    width:1px; background:var(--hairline-creme);
  }
  .cabinet-col p{ font-size:15px; line-height:1.85; }
  .reperes{
    margin-top:clamp(36px, 5vw, 56px);
    display:grid; grid-template-columns:repeat(3, 1fr);
    border-top:1px solid var(--hairline-creme); border-bottom:1px solid var(--hairline-creme);
  }
  .repere-cle{ padding:22px 18px 22px 0; border-right:1px solid var(--hairline-creme); }
  .repere-cle:last-child{ border-right:none; }
  .repere-cle + .repere-cle{ padding-left:18px; }
  .repere-cle strong{
    display:block; font-family:var(--serif); font-weight:400;
    font-size:clamp(1.9rem, 3vw, 2.6rem); line-height:1; color:var(--creme); margin-bottom:8px;
  }
  .repere-cle strong em{ color:var(--bronze); font-style:italic; }
  .repere-cle span{
    font-family:var(--mono); font-size:11px; letter-spacing:.16em;
    text-transform:uppercase; color:var(--gris);
  }
  .devise{
    margin-top:clamp(36px, 5vw, 56px);
    font-family:var(--serif); font-style:italic; font-size:18px; color:var(--gris-clair);
  }
  .devise .tiret{ color:var(--bronze); font-style:normal; margin-right:10px; }
  .cabinet-figure{ position:relative; transform:rotate(-0.6deg); margin-top:8px; }
  @media (max-width:1023px){
    .cabinet-grille{ grid-template-columns:1fr; }
    .cabinet-figure{ max-width:620px; transform:none; }
  }
  @media (max-width:767px){
    .cabinet-colonnes{ grid-template-columns:1fr; }
    .cabinet-colonnes::before{ display:none; }
    .cabinet-col + .cabinet-col{ border-top:1px solid var(--hairline-creme); padding-top:28px; }
    .mention-verticale{ display:none; }
    .reperes{ grid-template-columns:1fr; }
    .repere-cle{ border-right:none; border-bottom:1px solid var(--hairline-creme); padding-left:0 !important; }
    .repere-cle:last-child{ border-bottom:none; }
  }
  /* ============================================================
     PL. 03 — Nomenclature des expertises
  ============================================================ */
  .accroche{
    font-size:clamp(1.6rem, 3vw, 2.25rem); line-height:1.3;
    margin-bottom:14px;
  }
  .sous-accroche{ color:var(--gris); font-size:15px; max-width:62ch; }
  .grille-expertises{
    margin-top:clamp(48px, 6vw, 72px);
    display:grid; grid-template-columns:repeat(3, 1fr);
    gap:clamp(16px, 2vw, 28px);
  }
  .carte{
    position:relative; display:flex; flex-direction:column;
    background:var(--surface-1);
    border:1px solid var(--hairline-creme); border-radius:2px;
    padding:clamp(24px, 2.6vw, 36px);
    transition:transform .5s var(--sortie), border-color .5s var(--sortie), box-shadow .5s var(--sortie);
    background-repeat:no-repeat;
    background-image:
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--surface-1), var(--surface-1));
    background-position:left top, left top, right top, right top, left bottom, left bottom, right bottom, right bottom, center;
    background-size:8px 1px, 1px 8px, 8px 1px, 1px 8px, 8px 1px, 1px 8px, 8px 1px, 1px 8px, 100% 100%;
  }
  .carte:hover{ transform:translateY(-3px); border-color:var(--filet); box-shadow:0 40px 70px -40px rgba(192,138,62,0.35); }
  .carte .picto *{ stroke:var(--bronze); fill:none; stroke-width:1; stroke-linecap:round; stroke-linejoin:round; }
  .carte:hover .trace{ stroke-dashoffset:0; }
  .carte .lot{
    display:block; font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.2em; text-transform:uppercase; color:var(--bronze);
    margin-bottom:10px;
  }
  .carte h3{ font-size:26px; line-height:1.2; margin-bottom:12px; }
  .carte p{ font-size:14px; line-height:1.75; color:var(--gris); }
  .carte .lien-fleche{ margin-top:auto; padding-top:22px; align-self:flex-start; font-size:13px; border-bottom-width:0; }
  .carte .lien-fleche span{ border-bottom:1px solid var(--filet); padding-bottom:4px; transition:border-color .3s var(--sortie); }
  .carte .lien-fleche:hover span{ border-color:var(--bronze); }
  .picto .trace:nth-of-type(2){ transition-delay:.12s; }
  .picto .trace:nth-of-type(3){ transition-delay:.24s; }
  .picto .trace:nth-of-type(4){ transition-delay:.36s; }
  .picto .trace:nth-of-type(5){ transition-delay:.48s; }
  .picto .trace:nth-of-type(6){ transition-delay:.6s; }
  .picto .trace:nth-of-type(7){ transition-delay:.72s; }
  .picto .trace:nth-of-type(8){ transition-delay:.84s; }
  .carte-photo{
    margin:0 0 22px; position:relative; overflow:hidden;
    border:1px solid var(--hairline-creme); border-radius:1px;
    aspect-ratio:4 / 3; background:var(--surface-2);
  }
  .carte-photo img{
    display:block; width:100%; height:100%; object-fit:cover;
    filter:saturate(.88) contrast(1.02);
    transition:transform .9s var(--sortie), filter .9s var(--sortie);
  }
  .carte:hover .carte-photo img{ transform:scale(1.035); filter:saturate(1) contrast(1.05); }
  .carte-photo .picto{
    position:absolute; right:10px; bottom:10px; margin:0;
    width:40px; height:40px; padding:8px; box-sizing:content-box;
    background:rgba(10,15,20,.82); border:1px solid var(--hairline-creme);
  }
  /* Carte large — Et au-delà : agriculture & autres projets */
  .carte--large{
    grid-column:1 / -1;
    display:grid; grid-template-columns:2fr 3fr; gap:clamp(24px, 3vw, 48px); align-items:center;
    background-color:var(--surface-2);
    border-top:1px solid var(--bronze);
    background-image:
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--bronze), var(--bronze)), linear-gradient(var(--bronze), var(--bronze)),
      linear-gradient(var(--surface-2), var(--surface-2));
  }
  .carte--large .carte-photo{ margin:0; aspect-ratio:4 / 3; }
  .carte--large p{ color:var(--gris-clair); }
  .carte--large .lien-fleche{ margin-top:0; }
  .carte-liste{
    margin-top:16px;
    font-family:var(--mono); font-size:12px; letter-spacing:.08em;
    text-transform:uppercase; color:var(--gris-clair); line-height:2;
  }
  .carte-mail{
    display:inline-block; margin-top:14px;
    font-family:var(--mono); font-size:12px; letter-spacing:.04em;
    color:var(--bronze); text-decoration:underline; text-underline-offset:4px;
  }
  .carte-mail:hover{ color:var(--bronze-clair); }
  @media (max-width:1023px){ .grille-expertises{ grid-template-columns:repeat(2, 1fr); } }
  @media (max-width:767px){ .carte--large{ grid-template-columns:1fr; } }
  @media (max-width:659px){ .grille-expertises{ grid-template-columns:1fr; } }
  /* ============================================================
     PL. 04 / 05 / 06 — Les dossiers (une planche par expertise)
  ============================================================ */
  .dossier{ overflow:hidden; }
  .dossier--sombre{
    background:var(--surface-1);
    border-top:1px solid var(--hairline-creme); border-bottom:1px solid var(--hairline-creme);
  }
  .dossier-grille{
    display:grid; grid-template-columns:5fr 7fr;
    gap:clamp(40px, 6vw, 96px); align-items:start;
  }
  .dossier--inverse .dossier-grille{ grid-template-columns:7fr 5fr; }
  .dossier--inverse .dossier-figure{ order:2; }
  .dossier-figure{ position:sticky; top:104px; transform:rotate(-0.5deg); margin-inline:8px; }
  .dossier--inverse .dossier-figure{ transform:rotate(0.5deg); }
  .dossier-corps{ position:relative; }
  .dossier-lettre{
    position:absolute; right:-0.06em; top:-0.28em;
    font-family:var(--serif); font-size:clamp(160px, 22vw, 320px); line-height:1;
    color:transparent; -webkit-text-stroke:1px rgba(192,138,62,0.09);
    pointer-events:none; user-select:none; z-index:0;
  }
  @supports not (-webkit-text-stroke:1px black){
    .dossier-lettre{ color:rgba(192,138,62,0.05); }
  }
  .dossier-corps > *{ position:relative; z-index:1; }
  .dossier-corps .accroche{ font-size:clamp(1.9rem, 3.6vw, 2.9rem); max-width:18ch; }
  .dossier-intro{ font-size:16px; line-height:1.8; color:var(--gris-clair); max-width:58ch; margin-top:10px; }
  .prestations{ margin-top:clamp(32px, 4vw, 48px); border-top:1px solid var(--hairline-creme); }
  .prestations li{
    display:grid; grid-template-columns:64px 1fr; gap:18px; align-items:start;
    padding:22px 8px 22px 0; border-bottom:1px solid var(--hairline-creme);
    transition:background-color .3s var(--sortie), padding-left .3s var(--sortie);
  }
  .prestations li:hover{ background:rgba(192,138,62,0.04); padding-left:8px; }
  .prestations .p-idx{
    font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.14em;
    color:var(--bronze); padding-top:8px;
  }
  .prestations h3{ font-size:21px; line-height:1.25; margin-bottom:6px; }
  .prestations p{ font-size:14px; line-height:1.75; color:var(--gris); max-width:56ch; }
  .livrables{ margin-top:clamp(28px, 4vw, 40px); }
  .livrables-etiq{
    display:block; font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.2em; text-transform:uppercase; color:var(--gris); margin-bottom:14px;
  }
  .livrables ul{ display:flex; flex-wrap:wrap; gap:8px; }
  .livrables li{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--gris-clair); border:1px solid var(--filet); border-radius:2px;
    padding:8px 12px; background:rgba(10,15,20,0.35);
    transition:border-color .3s var(--sortie), color .3s var(--sortie);
  }
  .livrables li:hover{ border-color:var(--bronze); color:var(--creme); }
  .dossier-pour{ margin-top:clamp(24px, 3vw, 32px); font-size:14px; line-height:1.8; color:var(--gris-clair); max-width:58ch; }
  .dossier-pour .col-etiquette{ margin-bottom:8px; }
  .dossier-cta{ margin-top:clamp(28px, 4vw, 40px); display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
  /* Nomenclature des lots — dossier Construction */
  .lots{
    margin-top:clamp(28px, 4vw, 40px);
    display:grid; grid-template-columns:1fr 1fr; gap:14px;
  }
  .lot-item{
    display:grid; grid-template-columns:88px 1fr; gap:16px; align-items:start;
    padding:14px; background:var(--encre);
    border:1px solid var(--hairline-creme); border-radius:2px;
    transition:border-color .4s var(--sortie), transform .4s var(--sortie);
  }
  .lot-item:hover{ border-color:var(--filet); transform:translateY(-2px); }
  .lot-item img{
    width:88px; height:88px; object-fit:cover;
    border:1px solid var(--hairline-creme); filter:saturate(.85);
    transition:filter .6s var(--sortie);
  }
  .lot-item:hover img{ filter:saturate(1); }
  .lot-item .lot{ display:block; font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--bronze); margin-bottom:4px; }
  .lot-item h3{ font-size:18px; line-height:1.25; margin-bottom:4px; }
  .lot-item p{ font-size:13px; line-height:1.6; color:var(--gris); }
  .lot-item .carte-mail{ margin-top:6px; font-size:11px; }
  /* Planche à deux photographies — dossier Pisciculture */
  .planche{ position:relative; padding-bottom:22%; }
  .planche-2{
    position:absolute; right:-6%; bottom:0; width:56%;
    transform:rotate(1.4deg);
    border:1px solid rgba(242,239,233,0.14);
    box-shadow:0 40px 70px -30px rgba(0,0,0,0.75);
    background:var(--surface-2);
  }
  .planche-2 img{ display:block; width:100%; height:auto; }
  .planche-2::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:var(--grain); opacity:.05;
  }
  @media (max-width:1023px){
    .dossier-grille, .dossier--inverse .dossier-grille{ grid-template-columns:1fr; }
    .dossier-figure, .dossier--inverse .dossier-figure{ position:static; order:0; transform:none; max-width:640px; }
    .dossier-corps .accroche{ max-width:none; }
    .dossier-lettre{ font-size:clamp(120px, 26vw, 200px); top:-0.2em; }
  }
  @media (max-width:659px){
    .lots{ grid-template-columns:1fr; }
    .prestations li{ grid-template-columns:52px 1fr; gap:12px; }
    .planche{ padding-bottom:26%; }
    .planche-2{ right:-4%; width:60%; }
  }
  /* ============================================================
     PL. 07 — La méthode (élévation cotée)
  ============================================================ */
  .frise{
    margin-top:clamp(56px, 8vw, 104px);
    display:grid; grid-template-columns:repeat(4, 1fr);
    grid-template-rows:auto 32px auto;
    column-gap:clamp(20px, 3vw, 40px); row-gap:28px;
    position:relative;
  }
  .jalon{ display:contents; }
  .axe{
    display:block;
    grid-row:2; grid-column:1 / -1; align-self:center;
    height:1px; width:100%; background:var(--bronze);
    transform-origin:left center;
    transition:transform 1.2s var(--sortie);
  }
  .js .axe{ transform:scaleX(0); }
  .frise.is-visible .axe{ transform:scaleX(1); }
  .jalon-pt{
    grid-row:2; grid-column:var(--c);
    justify-self:center; align-self:center;
    width:32px; height:32px; border:1px solid var(--bronze); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-size:12px; font-weight:500; color:var(--bronze);
    background:var(--encre); position:relative; z-index:1;
  }
  .jalon-pt::before{
    content:""; position:absolute; left:50%; width:1px; height:24px;
    background:var(--filet);
  }
  .jalon:nth-of-type(odd) .jalon-pt::before{ bottom:100%; }
  .jalon:nth-of-type(even) .jalon-pt::before{ top:100%; }
  .jalon-bloc{ grid-column:var(--c); max-width:34ch; }
  .jalon:nth-of-type(odd) .jalon-bloc{ grid-row:1; align-self:end; }
  .jalon:nth-of-type(even) .jalon-bloc{ grid-row:3; align-self:start; }
  .jalon-bloc .repere-jalon{
    display:block; font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.2em; text-transform:uppercase; color:var(--bronze); margin-bottom:8px;
  }
  .jalon-bloc h3{ font-size:22px; margin-bottom:8px; }
  .jalon-bloc p{ font-size:14px; line-height:1.75; color:var(--gris-clair); }
  .js .jalon-bloc{ opacity:0; transform:translateY(12px); }
  .jalon-bloc{ transition:opacity .7s var(--sortie), transform .7s var(--sortie); }
  .frise.is-visible .jalon-bloc{ opacity:1; transform:none; }
  .frise.is-visible .jalon:nth-of-type(1) .jalon-bloc{ transition-delay:.1s; }
  .frise.is-visible .jalon:nth-of-type(2) .jalon-bloc{ transition-delay:.35s; }
  .frise.is-visible .jalon:nth-of-type(3) .jalon-bloc{ transition-delay:.6s; }
  .frise.is-visible .jalon:nth-of-type(4) .jalon-bloc{ transition-delay:.85s; }
  @media (max-width:899px){
    .frise{ display:block; position:relative; padding-left:60px; }
    .axe{
      position:absolute; left:16px; top:0; bottom:0;
      width:1px; height:auto;
      transform-origin:center top;
    }
    .js .axe{ transform:scaleY(0); }
    .frise.is-visible .axe{ transform:scaleY(1); }
    .jalon{ display:block; position:relative; margin-bottom:48px; }
    .jalon:last-of-type{ margin-bottom:0; }
    .jalon-pt{ position:absolute; left:-60px; top:0; }
    .jalon-pt::before, .jalon:nth-of-type(odd) .jalon-pt::before, .jalon:nth-of-type(even) .jalon-pt::before{
      top:50%; bottom:auto; left:100%; width:24px; height:1px;
    }
    .jalon-bloc{ max-width:none; }
  }
  /* ============================================================
     PL. 08 — La signature (bande immersive)
  ============================================================ */
  .signature{
    min-height:70vh;
    display:flex; align-items:center; justify-content:center;
    position:relative; overflow:hidden;
    padding-block:clamp(96px, 14vh, 160px);
  }
  .signature-fond{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center bottom;
    filter:sepia(0.15) saturate(0.9);
  }
  .signature-voile{
    position:absolute; inset:0;
    background:linear-gradient(to bottom, rgba(10,15,20,0.82), rgba(10,15,20,0.74) 45%, rgba(10,15,20,0.88));
  }
  .signature-calque{ position:absolute; inset:0; width:100%; height:100%; opacity:.9; }
  .signature-calque *{ stroke:rgba(242,239,233,0.08); fill:none; stroke-width:1; }
  .signature-int{
    position:relative; z-index:2; text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:28px;
    padding-inline:24px;
  }
  .signature-int h2{
    font-size:clamp(2.3rem, 6.5vw, 5.6rem); line-height:1.1; letter-spacing:-0.01em; max-width:16ch;
  }
  .signature-mono{
    font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.3em; text-transform:uppercase; color:var(--gris);
  }
  .cote-80{ width:80px; }
  .bande-photo{
    margin:0; position:relative;
    border-top:1px solid var(--hairline-creme); border-bottom:1px solid var(--hairline-creme);
  }
  .bande-photo img{
    display:block; width:100%; height:clamp(300px, 44vw, 540px); object-fit:cover;
    filter:saturate(.92);
  }
  .bande-photo figcaption{
    position:absolute; left:50%; bottom:18px; transform:translateX(-50%);
    max-width:calc(100% - 32px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    color:var(--creme); background:rgba(10,15,20,.72); padding:8px 14px;
    border:1px solid var(--hairline-creme);
  }
  @media (max-width:659px){
    .bande-photo figcaption{ white-space:normal; text-align:center; line-height:1.7; }
  }
  /* ============================================================
     PL. 09 — Engagements
  ============================================================ */
  .engagements{
    background:var(--surface-2);
    border-top:1px solid var(--filet);
    border-bottom:1px solid var(--filet);
  }
  .grille-engagements{
    margin-top:clamp(48px, 6vw, 72px);
    display:grid; grid-template-columns:1fr 1fr;
    gap:clamp(36px, 5vw, 72px) clamp(32px, 5vw, 88px);
    max-width:1040px;
  }
  .ctrl-tete{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
  .ctrl-coche{
    width:22px; height:22px; flex:none;
    border:1px solid var(--bronze); border-radius:2px;
    display:flex; align-items:center; justify-content:center;
  }
  .ctrl-coche svg{ display:block; }
  .ctrl-coche path{ stroke:var(--bronze); fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
  .ctrl-libelle{
    font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.2em; text-transform:uppercase; color:var(--gris);
  }
  .engagement h3{ font-size:22px; margin-bottom:8px; }
  .engagement p{ font-size:14px; line-height:1.8; color:var(--gris-clair); }
  .engagements-pied{
    margin-top:clamp(56px, 8vw, 96px); text-align:center;
  }
  .engagements-pied a{
    font-family:var(--serif); font-style:italic; font-size:20px;
    color:var(--gris-clair); text-decoration:none;
    border-bottom:1px solid var(--filet); padding-bottom:5px;
    transition:color .3s var(--sortie), border-color .3s var(--sortie);
  }
  .engagements-pied a:hover, .engagements-pied a:focus-visible{ color:var(--creme); border-color:var(--bronze); }
  .engagements-pied em{ color:var(--bronze); }
  @media (max-width:767px){ .grille-engagements{ grid-template-columns:1fr; } }
  /* ============================================================
     PL. 10 — Contact · Ouvrir un dossier
  ============================================================ */
  .contact-bloc{ position:relative; padding:clamp(8px, 2vw, 24px); }
  .contact-grille{
    margin-top:clamp(48px, 6vw, 72px);
    display:grid; grid-template-columns:5fr 7fr;
    gap:clamp(40px, 5vw, 80px);
    align-items:start;
  }
  .bordereau li{ border-bottom:1px solid var(--hairline-creme); }
  .bordereau li:first-child{ border-top:1px solid var(--hairline-creme); }
  .canal{
    display:flex; align-items:baseline; gap:18px;
    padding:20px 6px; text-decoration:none;
    transition:background-color .3s var(--sortie);
  }
  .canal:hover{ background:rgba(192,138,62,0.05); }
  .canal .c-idx{
    font-family:var(--mono); font-size:11px; font-weight:500; color:var(--bronze);
    letter-spacing:.1em; flex:none; width:44px;
  }
  .canal .c-etiq{
    font-family:var(--mono); font-size:11px; letter-spacing:.16em;
    text-transform:uppercase; color:var(--gris); flex:none; width:140px;
  }
  .canal .c-val{
    font-size:15px; font-weight:500; color:var(--creme);
    display:inline-flex; align-items:center; gap:10px;
    min-width:0; overflow-wrap:anywhere;
  }
  .canal:hover .c-val{ color:var(--bronze); }
  .canal .c-val svg{ flex:none; }
  .canal .c-val svg *{ stroke:var(--bronze); fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
  .siege{
    margin-top:24px; font-family:var(--mono); font-size:12px;
    letter-spacing:.1em; text-transform:uppercase; color:var(--gris);
  }
  .domaines-contact{
    margin-top:28px; padding:18px 20px; border:1px solid var(--hairline-creme); border-radius:2px;
    background:rgba(19,26,34,0.6);
  }
  .domaines-contact .col-etiquette{ margin-bottom:10px; }
  .domaines-contact p{ font-size:13.5px; line-height:1.8; color:var(--gris-clair); }
  .form-cartouche{ padding:clamp(24px, 3vw, 40px); background:var(--surface-1); }
  .cartouche-entete{
    font-family:var(--mono); font-size:11px; letter-spacing:.14em;
    text-transform:uppercase; color:var(--gris);
    padding-bottom:18px; margin-bottom:26px;
    border-bottom:1px solid var(--filet);
  }
  .champ{ margin-bottom:22px; }
  .champ label{
    display:block; font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.16em; text-transform:uppercase; color:var(--gris);
    margin-bottom:8px;
  }
  .champ label .req{ color:var(--bronze); }
  .champ input, .champ select, .champ textarea{
    width:100%;
    background:var(--encre); color:var(--creme);
    font-family:var(--sans); font-size:15px;
    border:none; border-bottom:1px solid rgba(242,239,233,0.15); border-radius:2px 2px 0 0;
    padding:12px 12px;
    transition:border-color .3s var(--sortie);
  }
  .champ select{ appearance:none; -webkit-appearance:none; cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C08A3E' stroke-width='1.4'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center;
  }
  .champ select option{ background:var(--surface-1); color:var(--creme); }
  .champ textarea{ min-height:120px; resize:vertical; }
  .champ input:focus, .champ select:focus, .champ textarea:focus{
    outline:none; border-bottom-color:var(--bronze);
  }
  .champ input:focus-visible, .champ select:focus-visible, .champ textarea:focus-visible{
    outline:2px solid var(--bronze); outline-offset:3px;
  }
  .form-rangee{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
  .form-pied{ margin-top:8px; }
  .form-pied .btn{ width:100%; }
  .confirmation{
    font-size:14px; line-height:1.8; color:var(--creme);
    border:1px solid var(--filet); border-radius:2px;
    padding:18px 20px; background:rgba(192,138,62,0.06);
  }
  .confirmation a{ color:var(--bronze); text-decoration:none; }
  .confirmation a:hover{ text-decoration:underline; text-underline-offset:3px; }
  @media (max-width:899px){
    .contact-grille{ grid-template-columns:1fr; }
    .canal .c-etiq{ width:auto; min-width:110px; }
  }
  @media (max-width:659px){
    .canal{ flex-wrap:wrap; row-gap:4px; }
  }
  @media (max-width:479px){
    .form-rangee{ grid-template-columns:1fr; }
  }
  /* ============================================================
     PL. 11 — Pied de page « Le cartouche final »
  ============================================================ */
  .pied{
    border-top:1px solid var(--bronze);
    background:var(--encre);
  }
  .pied-registre{ padding-block:clamp(36px, 5vw, 56px); }
  .pied-registre + .pied-registre{ border-top:1px solid var(--hairline-creme); }
  .pied-r1{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
  .pied-r1 .pied-signature{
    font-family:var(--serif); font-style:italic; font-size:18px; color:var(--gris-clair);
    margin-left:auto;
  }
  .pied-r2{
    display:grid; grid-template-columns:repeat(3, 1fr);
    gap:clamp(32px, 4vw, 64px);
  }
  .pied-col h3{
    font-family:var(--mono); font-size:11px; font-weight:500;
    letter-spacing:.2em; text-transform:uppercase; color:var(--bronze);
    margin-bottom:18px;
  }
  .pied-col li{ margin-bottom:9px; }
  .pied-col a, .pied-col span{
    font-size:13px; color:var(--gris-clair); text-decoration:none;
  }
  .pied-col a:hover, .pied-col a:focus-visible{ color:var(--bronze); }
  .pied-col .mono{ font-family:var(--mono); font-size:12px; letter-spacing:.04em; }
  .pied-r3{
    display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--gris);
  }
  .pied-r3 a{
    color:var(--gris); text-decoration:none;
    border-bottom:1px solid transparent; padding-bottom:2px;
    transition:color .3s var(--sortie), border-color .3s var(--sortie);
  }
  .pied-r3 a:hover, .pied-r3 a:focus-visible{ color:var(--bronze); border-color:var(--bronze); }
  .pied-cote-finale{ padding-bottom:28px; }
  @media (max-width:767px){
    .pied-r2{ grid-template-columns:1fr; }
    .pied-r1 .pied-signature{ margin-left:0; width:100%; }
  }
  /* ============================================================
     Retouches de recette (responsive et accents)
  ============================================================ */
  svg.cote{ max-width:100%; }
  .hero-cote-titre{ width:min(520px, 100%); }
  .cote-lbl{ display:flex; flex-direction:column; gap:6px; }
  .cote-lbl .cote-lbl-txt{
    font-family:var(--mono); font-size:10px; letter-spacing:.18em;
    text-transform:uppercase; color:var(--gris);
    text-align:center; line-height:1;
  }
  .cote-lbl svg{ width:100%; }
  .accroche--contact{ font-size:clamp(1.9rem, 4vw, 3rem); }
  /* ============================================================
     Mouvement réduit : neutralisation totale
  ============================================================ */
  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{
      animation:none !important;
      transition:none !important;
    }
    .js .reveal, .js .jalon-bloc, .menu-mobile .mm-lien{ opacity:1 !important; transform:none !important; }
    .trace{ stroke-dashoffset:0 !important; }
    .axe{ transform:none !important; }
    .indic-defiler .trait::after{ transform:none !important; }
    .bande-piste{ flex-wrap:wrap; width:auto; justify-content:center; row-gap:8px; }
    .hero-lueur{ display:none; }
  }
  /* ============================================================
     v2.1 — Site multi-pages : accueil = résumés, une page par dossier
  ============================================================ */
  /* Héro de page dossier */
  .hero--page{ min-height:auto; padding-top:150px; padding-bottom:clamp(56px, 7vw, 96px); }
  .hero--page h1{ font-size:clamp(2.4rem, 6vw, 4.8rem); max-width:16ch; }
  .hero--page .chapeau{ max-width:58ch; }
  .fil-ariane{
    display:flex; flex-wrap:wrap; gap:10px; align-items:center;
    font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gris);
    margin-bottom:22px;
  }
  .fil-ariane a{ color:var(--gris); text-decoration:none; transition:color .3s var(--sortie); }
  .fil-ariane a:hover, .fil-ariane a:focus-visible{ color:var(--bronze); }
  .fil-ariane .sep{ color:var(--bronze); }
  .fil-ariane [aria-current]{ color:var(--gris-clair); }
  /* Cartes-résumés de l'accueil : quatre dossiers */
  @media (min-width:1100px){ .grille-expertises{ grid-template-columns:repeat(4, 1fr); } }
  .carte-points{
    margin-top:14px; font-family:var(--mono); font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--gris-clair); line-height:1.9;
  }
  .carte-points li::before{ content:"+ "; color:var(--bronze); }
  .au-dela{
    margin-top:clamp(28px, 4vw, 44px);
    display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;
    padding:clamp(20px, 3vw, 32px);
    background:var(--surface-2); border:1px solid var(--hairline-creme); border-top:1px solid var(--bronze);
  }
  .au-dela p{ font-size:15px; line-height:1.75; color:var(--gris-clair); max-width:72ch; }
  .au-dela strong{ color:var(--creme); font-weight:500; }
  @media (max-width:767px){ .au-dela{ grid-template-columns:1fr; } }
  /* Panneau latéral collant d'une page dossier */
  .dossier-lateral{ position:sticky; top:104px; display:flex; flex-direction:column; gap:26px; }
  .dossier-lateral .doc-epingle{ transform:rotate(-0.5deg); margin-inline:8px; }
  .dossier--inverse .dossier-lateral{ order:2; }
  .encart{ padding:20px 22px; border:1px solid var(--hairline-creme); background:var(--encre); }
  .encart .col-etiquette{ margin-bottom:10px; }
  .encart p{ font-size:14px; line-height:1.8; color:var(--gris-clair); }
  .encart .livrables{ margin-top:0; }
  @media (max-width:1023px){
    .dossier-lateral, .dossier--inverse .dossier-lateral{ position:static; order:0; max-width:640px; }
  }
  /* Systèmes / options (grille de 2) */
  .systemes{ margin-top:clamp(28px, 4vw, 40px); display:grid; grid-template-columns:repeat(2, 1fr); gap:14px; }
  .systeme{
    padding:18px 20px; border:1px solid var(--hairline-creme); background:var(--encre);
    transition:border-color .4s var(--sortie), transform .4s var(--sortie);
  }
  .systeme:hover{ border-color:var(--filet); transform:translateY(-2px); }
  .systeme .lot{ display:block; font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--bronze); margin-bottom:6px; }
  .systeme h3{ font-size:19px; line-height:1.25; margin-bottom:6px; }
  .systeme p{ font-size:13px; line-height:1.65; color:var(--gris); }
  @media (max-width:659px){ .systemes{ grid-template-columns:1fr; } }
  /* Questions fréquentes */
  .faq{ margin-top:clamp(40px, 5vw, 56px); max-width:880px; border-top:1px solid var(--hairline-creme); }
  .faq details{ border-bottom:1px solid var(--hairline-creme); }
  .faq summary{
    list-style:none; cursor:pointer;
    display:grid; grid-template-columns:56px 1fr 24px; gap:14px; align-items:center;
    padding:20px 6px; font-family:var(--serif); font-size:21px; line-height:1.3; color:var(--creme);
    transition:background-color .3s var(--sortie);
  }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary:hover{ background:rgba(192,138,62,0.04); }
  .faq summary .q-idx{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--bronze); }
  .faq summary .q-plus{
    font-family:var(--mono); font-size:18px; color:var(--bronze); text-align:center;
    transition:transform .3s var(--sortie);
  }
  .faq details[open] summary .q-plus{ transform:rotate(45deg); }
  .faq .reponse{ padding:0 6px 22px 70px; font-size:14.5px; line-height:1.8; color:var(--gris-clair); max-width:66ch; }
  .faq .reponse a{ color:var(--bronze); text-decoration:none; border-bottom:1px solid var(--filet); }
  @media (max-width:659px){
    .faq summary{ grid-template-columns:42px 1fr 20px; font-size:18px; }
    .faq .reponse{ padding-left:6px; }
  }
  /* Les autres dossiers */
  .autres-dossiers{ margin-top:clamp(40px, 5vw, 56px); display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
  .autre{
    display:grid; grid-template-columns:96px 1fr; gap:16px; align-items:center;
    padding:14px; text-decoration:none;
    background:var(--surface-1); border:1px solid var(--hairline-creme); border-radius:2px;
    transition:border-color .4s var(--sortie), transform .4s var(--sortie);
  }
  .autre:hover, .autre:focus-visible{ border-color:var(--filet); transform:translateY(-2px); }
  .autre img{ width:96px; height:72px; object-fit:cover; border:1px solid var(--hairline-creme); filter:saturate(.85); }
  .autre .lot{ display:block; font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--bronze); margin-bottom:4px; }
  .autre strong{ display:block; font-family:var(--serif); font-weight:400; font-size:19px; line-height:1.2; color:var(--creme); }
  .autre .fleche{ display:block; margin-top:6px; font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--gris); }
  .autre:hover .fleche{ color:var(--bronze); }
  @media (max-width:899px){ .autres-dossiers{ grid-template-columns:1fr; } }
  /* Appel final d'une page dossier */
  .cta-final{ background:var(--surface-2); border-top:1px solid var(--filet); border-bottom:1px solid var(--filet); }
  .cta-grille{ display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(32px, 5vw, 72px); align-items:center; }
  .cta-grille h2{ font-size:clamp(1.9rem, 4vw, 3rem); line-height:1.2; margin-bottom:16px; }
  .cta-grille p{ font-size:15px; line-height:1.8; color:var(--gris-clair); max-width:56ch; }
  .cta-actions{ display:flex; flex-direction:column; gap:12px; }
  .cta-actions .btn{ width:100%; }
  .cta-canaux{ margin-top:8px; font-family:var(--mono); font-size:12px; letter-spacing:.06em; color:var(--gris-clair); line-height:2.1; }
  .cta-canaux a{ color:var(--creme); text-decoration:none; border-bottom:1px solid var(--filet); transition:color .3s var(--sortie), border-color .3s var(--sortie); }
  .cta-canaux a:hover, .cta-canaux a:focus-visible{ color:var(--bronze); border-color:var(--bronze); }
  @media (max-width:899px){ .cta-grille{ grid-template-columns:1fr; } }
  /* Sous-titre de section dossier */
  .dossier-corps .sous-accroche{ margin-top:6px; }
  /* ============================================================
     v2.2 — Cinq dossiers (ajout Élevage) : en-tête, cartes, autres dossiers
  ============================================================ */
  .nav-principale ul{ gap:clamp(14px, 1.6vw, 28px); }
  /* En-tête : navigation visible dès 1200 px ; bouton et libellé de marque dès 1480 px */
  @media (max-width:1199px){
    .entete{ height:60px; }
    .nav-principale, .entete .btn{ display:none; }
    .burger{ display:flex; }
  }
  @media (min-width:1100px) and (max-width:1199px){
    .entete{ height:60px; }
    .nav-principale, .entete .btn{ display:none !important; }
    .burger{ display:flex !important; }
    .menu-mobile{ display:flex; }
  }
  @media (min-width:1200px){
    .entete{ height:72px; }
    .nav-principale{ display:block; }
    .burger{ display:none; }
    .menu-mobile{ display:none; }
  }
  @media (min-width:1200px) and (max-width:1479px){
    .entete .btn{ display:none; }
    .marque-libelle{ display:none; }
  }
  @media (min-width:1480px){
    .entete .btn{ display:inline-flex; }
  }
  /* Cinq cartes-résumés : 3 + 2 centrées sur grand écran */
  @media (min-width:1100px){
    .grille-expertises{ grid-template-columns:repeat(6, 1fr); }
    .grille-expertises .carte{ grid-column:span 2; }
    .grille-expertises .carte:nth-child(4){ grid-column:2 / span 2; }
    .grille-expertises .carte:nth-child(5){ grid-column:4 / span 2; }
  }
  /* Quatre autres dossiers */
  @media (min-width:1100px){ .autres-dossiers{ grid-template-columns:repeat(4, 1fr); } }
  @media (min-width:660px) and (max-width:1099px){ .autres-dossiers{ grid-template-columns:repeat(2, 1fr); } }
  @media (max-width:659px){ .autres-dossiers{ grid-template-columns:1fr; } }
  .autre{ grid-template-columns:80px 1fr; }
  .autre img{ width:80px; height:64px; }
