/* ==========================================================================
   Mon Compagnon Web — Système "L'atelier technique"
   Charbon / Cuivre / Sarcelle — Instrument Serif / Inter / IBM Plex Mono
   ========================================================================== */

/* Polices auto-hébergées (sous-ensembles latin + latin-ext), Google Fonts, licence SIL Open Font License 1.1 */
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-normal-latin-ext-9994c1.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-normal-latin-d77319.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-normal-latin-ext-60d1ee.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-normal-latin-8d0aea.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/instrument-serif-italic-latin-ext-4bed00.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/instrument-serif-italic-latin-99cc6e.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/instrument-serif-normal-latin-ext-fa1a1a.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/instrument-serif-normal-latin-a20ac7.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:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-normal-latin-ext-749a30.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-normal-latin-1ab1ad.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:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-normal-latin-ext-749a30.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-normal-latin-1ab1ad.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:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-normal-latin-ext-749a30.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-normal-latin-1ab1ad.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:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/inter-normal-latin-ext-749a30.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/inter-normal-latin-1ab1ad.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;}

:root{
  --charcoal-950:#0b0c0e;
  --charcoal-900:#121316;
  --charcoal-850:#17181c;
  --charcoal-800:#1c1e22;
  --charcoal-700:#26282e;
  --charcoal-600:#34373e;
  --line:rgba(244,241,236,.10);
  --line-strong:rgba(244,241,236,.18);
  --off:#f4f1ec;
  --off-dim:#b7b3ab;
  --off-faint:#8f8b84; /* 4.9:1 minimum sur tous les fonds sombres (WCAG AA) */
  --copper:#c17a4f;
  --copper-bright:#e2996a;
  --copper-dim:#8a5638;
  --teal:#3f8f86;
  --teal-bright:#63b3a9;
  --teal-dim:#265b55;
  --error:#f08c8c;

  --serif:"Instrument Serif", "Times New Roman", serif;
  --sans:"Inter", -apple-system, "Segoe UI", sans-serif;
  --mono:"IBM Plex Mono", "SFMono-Regular", monospace;

  --container:1440px;
  --gutter:clamp(1.25rem, 4vw, 4rem);
  --radius:2px;
  --ease-out:cubic-bezier(.16,.84,.32,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
}

*,*::before,*::after{box-sizing:border-box;}
[hidden]{display:none !important;}
html{
  background:var(--charcoal-950);
  color-scheme:dark;
  scroll-behavior:auto;
  touch-action:manipulation;
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  background:var(--charcoal-950);
  color:var(--off);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  cursor:default;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit;}
h1,h2,h3,h4,p{margin:0;}
.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;
}
::selection{background:var(--copper);color:var(--charcoal-950);}

/* Focus visibility for accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--teal-bright);
  outline-offset:3px;
}

/* Lien d'évitement (visible uniquement au clavier) */
.skip-link{
  position:fixed;top:.75rem;left:.75rem;z-index:10001;
  background:var(--copper);color:var(--charcoal-950);
  font-family:var(--mono);font-size:.8rem;padding:.8rem 1.1rem;border-radius:100px;
  transform:translateY(-200%);transition:transform .2s;
}
.skip-link:focus{transform:none;}

/* Grain / noise texture, fixed over everything */
.grain{
  position:fixed;inset:0;z-index:9998;pointer-events:none;
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Container */
.wrap{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ==========================================================================
   Preloader
   ========================================================================== */
.preloader{
  position:fixed;inset:0;z-index:10000;
  background:var(--charcoal-950);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.5rem;
}
.preloader__mark{
  font-family:var(--serif);font-style:italic;font-size:clamp(2rem,6vw,3.5rem);
  color:var(--off);
}
.preloader__mark em{color:var(--copper);font-style:italic;}
.preloader__bar{
  width:min(280px,60vw);height:1px;background:var(--line-strong);position:relative;overflow:hidden;
}
.preloader__bar span{
  position:absolute;inset:0;width:0%;background:var(--copper);
}
.preloader__count{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;color:var(--off-faint);
}

/* ==========================================================================
   Navigation
   ========================================================================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  padding:1.4rem var(--gutter);
  display:flex;align-items:center;justify-content:space-between;
  transition:padding .4s var(--ease-out),background .4s var(--ease-out),border-color .4s var(--ease-out);
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{
  padding-block:.85rem;
  background:rgba(11,12,14,.82);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line);
}
.nav__logo{
  display:flex;align-items:center;gap:.6rem;min-height:44px;
  font-family:var(--mono);font-size:.8rem;letter-spacing:.05em;
}
.nav__logo-mark{display:block;width:38px;height:38px;flex-shrink:0;}
.nav__logo-text{display:flex;flex-direction:column;line-height:1.1;}
.nav__logo-text b{font-family:var(--sans);font-weight:600;font-size:.85rem;letter-spacing:.01em;}
.nav__logo-text span{color:var(--off-faint);font-size:.68rem;letter-spacing:.1em;}

.nav__links{
  display:flex;align-items:center;gap:clamp(.9rem,1.7vw,2.4rem);
}
.nav__links a[aria-current="page"]{color:var(--copper-bright);}
.nav__links a[aria-current="page"]::after{width:100%;}
.nav__links a{
  position:relative;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;
  color:var(--off-dim);padding-block:.8rem;min-height:44px;display:inline-flex;align-items:center;
  transition:color .3s;
}
.nav__links a::after{
  content:"";position:absolute;left:0;bottom:.45rem;height:1px;width:0;background:var(--copper);
  transition:width .35s var(--ease-out);
}
.nav__links a:hover{color:var(--off);}
.nav__links a:hover::after{width:100%;}

.nav__cta{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;
  border:1px solid var(--line-strong);padding:.65rem 1.3rem;border-radius:100px;
  display:inline-flex;align-items:center;gap:.5rem;
  transition:border-color .3s,color .3s,background .3s;
}
.nav__cta:hover{border-color:var(--copper);color:var(--copper-bright);background:rgba(193,122,79,.08);}

.nav__toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0 9px;margin-right:-9px;flex-shrink:0;
}
.nav__toggle span{height:1px;background:var(--off);width:100%;transition:transform .3s,opacity .3s;}

/* Mobile nav */
.mobile-panel{
  position:fixed;inset:0;background:var(--charcoal-950);z-index:490;
  display:flex;flex-direction:column;gap:.6rem;
  padding:6rem var(--gutter) 2rem;
  overflow-y:auto;overscroll-behavior:contain;
  transform:translateY(-100%);
  visibility:hidden;
  transition:transform .55s var(--ease-in-out),visibility 0s linear .55s;
}
.mobile-panel > :first-child{margin-top:auto;}
.mobile-panel > :last-child{margin-bottom:auto;}
.mobile-panel.is-open{transform:translateY(0);visibility:visible;transition:transform .55s var(--ease-in-out),visibility 0s;}
.mobile-panel a{
  font-family:var(--serif);font-style:italic;font-size:clamp(1.7rem,6.5vw,2.8rem);
  border-bottom:1px solid var(--line);padding-block:.5rem;
}
.mobile-panel__meta{font-family:var(--mono);font-size:.75rem;color:var(--off-faint);margin-top:1rem;}
.mobile-panel .mobile-panel__meta a{font-family:var(--mono);font-style:normal;font-size:.8rem;border:0;display:inline-flex;align-items:center;min-height:44px;}

.mobile-panel a[aria-current="page"]{color:var(--copper-bright);}

@media(max-width:1180px){
  .nav__cta{display:none;}
}
@media(max-width:1000px){
  .nav__links{display:none;}
  .nav__toggle{display:flex;}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding-top:8rem;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
/* Fond du hero : plan technique (remplace l'ancienne photo, qui reste utilisée pour l'image de partage) */
.hero__bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 70% 60% at 72% 38%, rgba(193,122,79,.07), transparent 70%),
    var(--charcoal-950);
}
.hero__plan{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.hero__plan-layer{position:absolute;inset:-24px;width:calc(100% + 48px);height:calc(100% + 48px);max-width:none;display:block;}
.hero__plan-layer--drift{animation:planDrift 40s linear infinite;will-change:transform;}
.hero__plan-layer--drift-slow{animation:planDrift 70s linear infinite reverse;will-change:transform;}
.hero__plan.is-paused .hero__plan-layer,.hero__plan.is-paused .plan-pulse{animation-play-state:paused;}
.plan-grid{fill:none;stroke:rgba(244,241,236,.06);stroke-width:1;}
.plan-grid--fine{stroke:rgba(244,241,236,.025);}
.plan-line{fill:none;stroke:rgba(193,122,79,.26);stroke-width:1;vector-effect:non-scaling-stroke;}
.plan-dash{fill:none;stroke:var(--copper);stroke-width:1;stroke-dasharray:4 6;opacity:.35;vector-effect:non-scaling-stroke;}
.plan-dot{fill:var(--copper);}
.plan-label{fill:var(--copper-bright);font-family:var(--mono);font-size:10px;letter-spacing:.08em;opacity:.5;}
.plan-pulse{animation:planPulse 5s ease-in-out infinite;}
.plan-pulse--late{animation-delay:2s;}
@keyframes planDrift{0%,100%{transform:translate(0,0);}50%{transform:translate(-18px,12px);}}
@keyframes planPulse{0%,100%{opacity:.25;}50%{opacity:.75;}}
/* Vignette radiale : assombrit les bords (où se trouve le texte) pour garantir le contraste AA */
.hero__vignette{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 62% 42%, transparent 0%, transparent 32%, rgba(11,12,14,.72) 78%, var(--charcoal-950) 100%),
    linear-gradient(180deg, transparent 55%, rgba(11,12,14,.85) 88%, var(--charcoal-950) 100%);
}
@media (prefers-reduced-motion: reduce){
  .hero__plan-layer--drift,.hero__plan-layer--drift-slow,.plan-pulse{animation:none;}
}
.hero__grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:var(--gutter);
  padding-inline:var(--gutter);
  padding-bottom:4.5rem;
}
.hero__eyebrow-rail{
  grid-column:12/13;
  display:flex;flex-direction:column;justify-content:flex-end;
  align-items:flex-end;
}
.hero__eyebrow{
  writing-mode:vertical-rl;transform:rotate(180deg);
  font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;color:var(--off-faint);
  display:flex;align-items:center;gap:.6rem;
}
.hero__eyebrow::before{content:"";width:1px;height:40px;background:var(--copper);}
.hero__title-col{grid-column:1/12;}
.hero__title{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.6rem,7vw,6.4rem);
  line-height:.98;
  letter-spacing:-.01em;
  max-width:16ch;
}
.hero__title .line{overflow:hidden;display:block;padding-bottom:.06em;}
.hero__title .line > span{display:inline-block;will-change:transform;}
.hero__title em{
  font-style:italic;color:var(--copper-bright);
}
.hero__bottom-row{
  grid-column:2/13;
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:var(--gutter);
  margin-top:2.6rem;
  align-items:end;
}
.hero__sub{
  font-size:clamp(1rem,1.6vw,1.2rem);
  color:var(--off-dim);
  max-width:54ch;
  line-height:1.6;
}
.hero__badges{
  display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;margin-top:1.6rem;
}
.hero__badges span{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.03em;color:var(--off-faint);
  display:flex;align-items:center;gap:.5rem;
}
.hero__badges span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal-bright);flex-shrink:0;}
.hero__badges span b{color:var(--off);font-weight:500;}
@media(max-width:900px){
  .hero__bottom-row{grid-template-columns:minmax(0,1fr);}
}

.btn{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;
  padding:1rem 1.6rem;border-radius:100px;
  transition:transform .4s var(--ease-out),background .4s,color .4s,border-color .4s;
  white-space:nowrap;
}
.btn--primary{background:var(--copper);color:var(--charcoal-950);}
.btn--primary:hover{background:var(--copper-bright);transform:translateY(-2px);}
.btn--ghost{border:1px solid var(--line-strong);color:var(--off);}
.btn--ghost:hover{border-color:var(--teal-bright);color:var(--teal-bright);transform:translateY(-2px);}
.btn__arrow{transition:transform .4s var(--ease-out);}
.btn:hover .btn__arrow{transform:translateX(4px);}


.hero__ticker{
  position:absolute;bottom:0;right:var(--gutter);
  font-family:var(--mono);font-size:.68rem;color:var(--off-faint);letter-spacing:.1em;
  z-index:2;
}

/* ==========================================================================
   Section scaffolding
   ========================================================================== */
section{position:relative;}
.section-head{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:var(--gutter);align-items:end;
  margin-bottom:clamp(2.5rem,6vw,5rem);
}
.section-head__eyebrow{
  grid-column:1/4;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;color:var(--copper-bright);
  display:flex;align-items:center;gap:.6rem;
}
.section-head__eyebrow::before{content:"";width:24px;height:1px;background:var(--copper);}
.section-head__title{
  grid-column:4/11;
  font-family:var(--serif);font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.08;font-weight:400;
}
.section-head__title em{font-style:italic;color:var(--teal-bright);}
.section-index{
  grid-column:11/13;justify-self:end;
  font-family:var(--mono);font-size:.75rem;color:var(--off-faint);
}
@media(max-width:900px){
  .section-head__eyebrow{grid-column:1/13;}
  .section-head__title{grid-column:1/13;margin-top:.75rem;}
  .section-index{display:none;}
}

.pad{padding-block:clamp(5rem,10vw,9rem);}

/* ==========================================================================
   L'esprit compagnon (manifeste en deux colonnes)
   ========================================================================== */
.philo{
  background:var(--charcoal-900);
  border-bottom:1px solid var(--line);
}
.manifest{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);
  align-items:start;
}
.manifest__lead{
  grid-column:1/6;
  position:sticky;top:7rem;
}
.manifest__statement{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.1rem,4.4vw,3.9rem);line-height:1.06;letter-spacing:-.01em;
}
.manifest__statement em{color:var(--copper-bright);font-style:italic;}
.manifest__body{grid-column:7/13;}
.manifest__text{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.35rem,2.1vw,1.85rem);line-height:1.5;color:var(--off);
  max-width:34ch;
}
.manifest__text .hl{font-style:italic;}
.manifest__text .hl--teal{color:var(--teal-bright);}
.manifest__text .hl--copper{color:var(--copper-bright);}
.manifest__list{
  list-style:none;margin:clamp(2.2rem,5vw,4rem) 0 0;padding:0;
  border-top:1px solid var(--line);
}
.manifest__item{
  display:grid;grid-template-columns:3rem minmax(0,1fr);gap:.4rem 1rem;
  padding-block:1.6rem;border-bottom:1px solid var(--line);
}
.manifest__item .num{
  grid-row:1/3;font-family:var(--mono);font-size:.75rem;color:var(--copper-bright);padding-top:.25rem;
}
.manifest__item h3{font-family:var(--sans);font-weight:600;font-size:1.05rem;}
.manifest__item p{color:var(--off-dim);font-size:.92rem;line-height:1.6;max-width:46ch;}
@media(max-width:900px){
  .manifest__lead,.manifest__body{grid-column:1/13;}
  .manifest__lead{position:static;}
  .manifest__text{max-width:none;}
}

/* ==========================================================================
   Services
   ========================================================================== */
.services__list{border-top:1px solid var(--line);}
.service-row{
  display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,3fr) minmax(0,4fr) minmax(0,2.4fr);
  gap:var(--gutter);align-items:center;
  padding-block:2.4rem;border-bottom:1px solid var(--line);
  position:relative;
  transition:background .4s;
}
.service-row:hover{background:rgba(244,241,236,.02);}
.service-row__num{font-family:var(--mono);font-size:.85rem;color:var(--off-faint);}
.service-row__title{
  font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:400;
}
.service-row__desc{color:var(--off-dim);font-size:.95rem;line-height:1.6;max-width:46ch;}
.service-row__tags{
  display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;
}
.service-row__tags span{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;color:var(--teal-bright);
  border:1px solid var(--teal-dim);border-radius:100px;padding:.3rem .8rem;
}
.service-row__line{
  position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--copper);
  transition:width .6s var(--ease-out);
}
.service-row:hover .service-row__line{width:100%;}
@media(max-width:900px){
  .service-row{grid-template-columns:minmax(0,1fr);gap:.8rem;padding-block:1.8rem;}
  .service-row__tags{justify-content:flex-start;}
}

/* ==========================================================================
   Pour qui (horizontal pinned gallery)
   ========================================================================== */
.audience{background:var(--charcoal-900);border-bottom:1px solid var(--line);}
.audience__pin{height:100vh;display:flex;flex-direction:column;overflow:hidden;padding-top:5rem;}
.audience__track{
  display:flex;gap:var(--gutter);align-items:stretch;
  padding-inline:var(--gutter);flex:1;will-change:transform;
}
.audience-card{
  position:relative;flex:0 0 clamp(260px,44vw,420px);
  border:1px solid var(--line);border-radius:4px;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:2.2rem;overflow:hidden;background:var(--charcoal-850);
  transition:border-color .4s;
}
.audience-card:hover{border-color:var(--copper-dim);}
.audience-card__art{
  position:absolute;inset:0;z-index:0;opacity:.6;
  width:100%;height:100%;object-fit:cover;object-position:center;
  transition:opacity .5s, transform .8s var(--ease-out);
}
.audience-card::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(11,12,14,.5) 0%, rgba(11,12,14,.28) 38%, rgba(11,12,14,.88) 100%);
}
.audience-card:hover .audience-card__art{opacity:.85;transform:scale(1.04);}
.audience-card__num{position:relative;z-index:1;font-family:var(--mono);font-size:.75rem;color:var(--copper-bright);}
.audience-card__body{position:relative;z-index:1;}
.audience-card__name{font-family:var(--serif);font-size:clamp(1.7rem,2.8vw,2.4rem);margin-block:1.4rem .7rem;line-height:1.05;}
.audience-card__desc{color:var(--off-dim);font-size:.92rem;line-height:1.6;max-width:32ch;}

.audience__foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:1.4rem var(--gutter);border-top:1px solid var(--line);
}
.audience__progress{flex:1;height:1px;background:var(--line);margin-inline:2rem;position:relative;}
.audience__progress span{position:absolute;left:0;top:0;height:100%;background:var(--copper);width:0%;}
.audience__count{font-family:var(--mono);font-size:.75rem;color:var(--off-faint);white-space:nowrap;}

@media(max-width:700px){
  .audience__pin{height:auto;}
  .audience__track{overflow-x:auto;padding-block:1.5rem;scroll-snap-type:x proximity;}
  .audience-card{scroll-snap-align:start;min-height:400px;flex-basis:min(78vw,320px);}
}

/* ==========================================================================
   Formules (pricing)
   ========================================================================== */
.pricing__grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);
}
@media(max-width:860px){.pricing__grid{grid-template-columns:minmax(0,1fr);}}
.price-card{
  position:relative;border:1px solid var(--line-strong);border-radius:6px;
  padding:2.6rem 2.2rem;background:var(--charcoal-850);
  display:flex;flex-direction:column;
  transition:border-color .4s,transform .4s var(--ease-out);
}
.price-card:hover{transform:translateY(-4px);}
.price-card--featured{border-color:var(--copper);background:linear-gradient(160deg,var(--charcoal-850),var(--charcoal-800));}
.price-card__badge{
  position:absolute;top:-13px;left:2.2rem;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--charcoal-950);
  background:var(--copper);padding:.35rem .8rem;border-radius:100px;
}
.price-card__name{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.1rem);margin-top:.5rem;}
.price-card__tagline{color:var(--off-dim);font-size:.92rem;line-height:1.6;margin-top:.7rem;max-width:38ch;}
.price-card__price{
  display:flex;align-items:baseline;gap:.5rem;margin:1.8rem 0 .3rem;
  font-family:var(--serif);color:var(--copper-bright);
}
.price-card__price .amount{font-size:clamp(2.2rem,4vw,3rem);}
.price-card__price .unit{font-family:var(--mono);font-size:.85rem;color:var(--off-faint);}
.price-card__note{font-family:var(--mono);font-size:.72rem;color:var(--teal-bright);letter-spacing:.04em;margin-bottom:1.8rem;}
.price-card__features{border-top:1px solid var(--line);padding-top:1.4rem;display:flex;flex-direction:column;gap:1rem;flex:1;}
.price-feature{display:flex;gap:.8rem;align-items:flex-start;}
.price-feature__check{
  flex-shrink:0;width:18px;height:18px;border-radius:50%;
  border:1px solid var(--teal-bright);color:var(--teal-bright);
  display:flex;align-items:center;justify-content:center;font-size:.65rem;margin-top:.15rem;
}
.price-feature__text b{display:block;font-weight:600;font-size:.9rem;}
.price-feature__text span{display:block;color:var(--off-faint);font-size:.82rem;line-height:1.5;margin-top:.15rem;}
.price-card .btn{margin-top:2rem;justify-content:center;width:100%;}

/* Après la mise en ligne : accompagnement Tranquillité (accordéon) */
.aftercare{
  margin-top:clamp(2.5rem,5vw,4rem);
  border:1px solid var(--line-strong);border-radius:6px;background:var(--charcoal-850);
  padding:clamp(1.6rem,3vw,2.6rem) clamp(1.3rem,3vw,2.4rem);
}
.aftercare__eyebrow{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;color:var(--copper-bright);
  display:flex;align-items:center;gap:.6rem;
}
.aftercare__eyebrow::before{content:"";width:24px;height:1px;background:var(--copper);}
.aftercare__title{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.1;margin-top:1rem;max-width:26ch;}
.aftercare__title em{font-style:italic;color:var(--teal-bright);}
.aftercare__lead{color:var(--off-dim);font-size:.95rem;line-height:1.6;margin-top:.9rem;max-width:62ch;}

.aftercare__heading{margin-top:1.8rem;font-weight:inherit;}
.aftercare__toggle{
  width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  text-align:left;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  transition:border-color .3s;
}
.aftercare__toggle:hover{border-bottom-color:var(--copper-dim);}
.aftercare__summary{display:flex;flex-direction:column;gap:.35rem;min-width:0;}
.aftercare__name{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.1;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;}
.aftercare__price{font-family:var(--mono);font-size:.85rem;letter-spacing:.04em;color:var(--copper-bright);}
.aftercare__hook{font-family:var(--sans);font-weight:600;font-size:1rem;color:var(--off);}
.aftercare__meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--teal-bright);line-height:1.5;}
.aftercare.is-open .faq-item__icon{transform:rotate(135deg);border-color:var(--copper);}

/* Ouverture : hauteur animée via grid-template-rows (0fr -> 1fr), 180 ms, sans fondu */
.aftercare__panel{display:grid;grid-template-rows:0fr;visibility:hidden;}
.aftercare.is-open .aftercare__panel{grid-template-rows:1fr;visibility:visible;}
.aftercare.is-ready .aftercare__panel{transition:grid-template-rows .18s var(--ease-out),visibility 0s linear .18s;}
.aftercare.is-ready.is-open .aftercare__panel{transition:grid-template-rows .18s var(--ease-out),visibility 0s;}
.aftercare__inner{min-height:0;overflow:hidden;}
.aftercare__inner > :first-child{margin-top:1.8rem;}
.aftercare__inner > .btn{margin:1.8rem 0 .4rem;}

.aftercare__claim{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.3;color:var(--copper-bright);}
.aftercare__text{color:var(--off-dim);font-size:.95rem;line-height:1.65;margin-top:.8rem;max-width:66ch;}
.aftercare__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.4rem,3vw,2.6rem);margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--line);}
.aftercare__subtitle{font-family:var(--mono);font-weight:400;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--off-faint);margin-bottom:1rem;}
.aftercare__list{display:grid;gap:.75rem;}
.aftercare__list li{display:flex;gap:.8rem;align-items:flex-start;color:var(--off-dim);font-size:.92rem;line-height:1.55;}
.aftercare__list li::before{
  content:"✓";flex-shrink:0;width:18px;height:18px;border-radius:50%;margin-top:.15rem;
  border:1px solid var(--teal-bright);color:var(--teal-bright);
  display:flex;align-items:center;justify-content:center;font-size:.62rem;
}
.aftercare__pricebox{
  margin-top:2rem;padding:1.3rem 1.4rem;border:1px solid var(--copper-dim);border-radius:4px;
  background:rgba(193,122,79,.06);display:grid;grid-template-columns:auto minmax(0,1fr);gap:.4rem 1.6rem;align-items:center;
}
.aftercare__amount{font-family:var(--serif);font-size:clamp(2rem,3.4vw,2.6rem);line-height:1;color:var(--copper-bright);white-space:nowrap;}
.aftercare__amount span{font-family:var(--mono);font-size:.85rem;color:var(--off-faint);margin-left:.3rem;}
.aftercare__terms{color:var(--off-dim);font-size:.86rem;line-height:1.55;}
.aftercare__alt{margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--line);}
.aftercare__alt p{color:var(--off-dim);font-size:.95rem;line-height:1.65;max-width:66ch;}
.aftercare__alt strong{color:var(--off);font-weight:600;}
.aftercare__reassure{margin-top:1.4rem;font-weight:600;color:var(--off);font-size:.95rem;line-height:1.55;}
.aftercare__closing{margin-top:2rem;}
.aftercare__closing-title{font-family:var(--serif);font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.2;}
.aftercare__closing-title em{font-style:italic;color:var(--copper-bright);}
.aftercare__closing-sub{font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;color:var(--off-dim);line-height:1.6;margin-top:.7rem;}
@media(max-width:760px){
  .aftercare__cols{grid-template-columns:minmax(0,1fr);}
  .aftercare__pricebox{grid-template-columns:minmax(0,1fr);}
}
@media (prefers-reduced-motion: reduce){
  .aftercare.is-ready .aftercare__panel,.aftercare.is-ready.is-open .aftercare__panel{transition:none;}
}

/* ==========================================================================
   Comparatif
   ========================================================================== */
.compare-table{
  width:100%;border-collapse:collapse;font-size:.88rem;
}
.compare-table th,.compare-table td{
  padding:1.1rem 1rem;text-align:left;border-bottom:1px solid var(--line);
}
.compare-table thead th{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--off-faint);
  text-transform:uppercase;font-weight:500;
}
.compare-table thead th:first-child{color:var(--off-dim);}
.compare-table thead th.is-us{color:var(--copper-bright);}
.compare-table tbody th{
  font-family:var(--sans);font-weight:600;font-size:.88rem;color:var(--off);white-space:nowrap;
}
.compare-table td{color:var(--off-dim);}
.compare-table td.is-us{color:var(--off);font-weight:600;}
.compare-table td .yes{color:var(--teal-bright);}
.compare-table td .no{color:var(--off-faint);}
.compare-scroll{overflow-x:auto;}
.compare-scroll::-webkit-scrollbar{height:4px;}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq__list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item__q{
  width:100%;min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding-block:1.6rem;text-align:left;
  font-family:var(--sans);font-weight:600;font-size:1.05rem;color:var(--off);
}
.faq-item__icon{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;position:relative;
  transition:border-color .3s,transform .4s var(--ease-out);
}
.faq-item__icon::before,.faq-item__icon::after{content:"";position:absolute;background:var(--off-dim);transition:opacity .3s;}
.faq-item__icon::before{width:9px;height:1px;}
.faq-item__icon::after{width:1px;height:9px;}
.faq-item.is-open .faq-item__icon{transform:rotate(135deg);border-color:var(--copper);}
.faq-item__a{
  max-height:0;overflow:hidden;transition:max-height .45s var(--ease-in-out);
}
.faq-item__a p{color:var(--off-dim);font-size:.92rem;line-height:1.65;padding-bottom:1.6rem;max-width:64ch;}
.faq-item.is-open .faq-item__a{max-height:220px;}

/* ==========================================================================
   Process
   ========================================================================== */
.process__grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.process-step{
  background:var(--charcoal-950);padding:2.2rem 1.8rem;
  display:flex;flex-direction:column;gap:1rem;min-height:280px;justify-content:space-between;
}
.process-step__num{font-family:var(--serif);font-style:italic;font-size:2.2rem;color:var(--copper-bright);}
.process-step h3{font-family:var(--sans);font-weight:600;font-size:1.05rem;}
.process-step p{color:var(--off-dim);font-size:.88rem;line-height:1.6;}
/* ==========================================================================
   Fonds photo Méthode (établi) et Tranquillité (bureau calme)
   Calques prêts, masqués tant qu'aucune photo n'est fournie.
   Pour activer : déposer les images dans assets/img/ puis décommenter
   le bloc « ACTIVATION » plus bas. Il inclut les voiles de lisibilité
   (#methode::after, .aftercare::after), placés hors des calques filtrés.
   ========================================================================== */
#methode > .wrap{position:relative;z-index:1;}
.methode__photo,.aftercare__photo{
  position:absolute;inset:0;z-index:0;pointer-events:none;display:none;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  background-color:rgba(193,122,79,.25);
  background-blend-mode:multiply;
  filter:grayscale(60%) contrast(1.1) brightness(.75);
}
.aftercare{position:relative;isolation:isolate;overflow:hidden;}
.aftercare > :not(.aftercare__photo){position:relative;z-index:1;}
.aftercare__photo{border-radius:inherit;}

/* ---- ACTIVATION (décommenter quand les photos sont prêtes) ----------------
.methode__photo{
  display:block;
  background-image:image-set(url('../img/methode-etabli.avif') type('image/avif'), url('../img/methode-etabli.jpg') type('image/jpeg'));
}
.methode__photo ~ .wrap .process-step{background:rgba(11,12,14,.82);}
#methode::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg, var(--charcoal-950) 0%, rgba(11,12,14,.6) 22%, rgba(11,12,14,.66) 78%, var(--charcoal-950) 100%);
}
.aftercare__photo{
  display:block;
  background-image:image-set(url('../img/tranquillite-bureau.avif') type('image/avif'), url('../img/tranquillite-bureau.jpg') type('image/jpeg'));
}
.aftercare::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(100deg, var(--charcoal-850) 0%, rgba(23,24,28,.9) 45%, rgba(23,24,28,.66) 100%);
}
--------------------------------------------------------------------------- */

/* Fond décoratif Méthode : fil cuivre (tracé et nœuds positionnés par main.js) */
.methode__wire{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:1;}
.methode__wire-track,.methode__wire-path{fill:none;stroke-linecap:round;}
.methode__wire-track{stroke:rgba(193,122,79,.16);stroke-width:1;}
.methode__wire-path{stroke:var(--copper);stroke-width:2;stroke-dasharray:1000;stroke-dashoffset:1000;filter:drop-shadow(0 0 4px rgba(193,122,79,.45));}
.methode__wire-node{fill:var(--charcoal-900);stroke:rgba(193,122,79,.4);stroke-width:2;transition:fill .4s ease,stroke .4s ease,filter .4s ease;}
.methode__wire-node.lit{fill:var(--copper);stroke:var(--copper-bright);filter:drop-shadow(0 0 7px rgba(193,122,79,.75));}
@media (prefers-reduced-motion: reduce){
  .methode__wire-path{stroke-dashoffset:0;}
  .methode__wire-node{transition:none;}
}
@media(max-width:900px){
  .process__grid{grid-template-columns:minmax(0,1fr);}
  .process-step{min-height:auto;}
}

/* ==========================================================================
   Stats band
   ========================================================================== */
.stats{
  background:var(--copper);color:var(--charcoal-950);
  border-bottom:1px solid var(--line);
}
.stats__grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  padding-block:clamp(3rem,7vw,5rem);
}
.stat{
  text-align:center;border-left:1px solid rgba(11,12,14,.18);
  padding-inline:1rem;
}
.stat:first-child{border-left:none;}
.stat__value{
  font-family:var(--serif);font-size:clamp(2.6rem,6vw,4.6rem);line-height:1;
  display:flex;justify-content:center;align-items:baseline;gap:.15rem;
}
.stat__suffix{font-size:.5em;}
.stat__label{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;margin-top:.8rem;
  text-transform:uppercase;
}
@media(max-width:800px){
  .stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 0;}
  .stat{border-left:none;}
}

/* ==========================================================================
   CTA final
   ========================================================================== */
.cta{
  background:var(--charcoal-950);text-align:center;
  border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;
}
.cta__glow{
  position:absolute;top:50%;left:50%;width:60vw;height:60vw;
  background:radial-gradient(circle,rgba(63,143,134,.16),transparent 70%);
  transform:translate(-50%,-50%);pointer-events:none;
}
.cta__eyebrow{
  font-family:var(--mono);font-size:.78rem;letter-spacing:.15em;color:var(--teal-bright);
  display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.6rem;
}
.cta__eyebrow::before,.cta__eyebrow::after{content:"";width:20px;height:1px;background:var(--teal-bright);}
.cta__title{
  font-family:var(--serif);font-size:clamp(2.2rem,7vw,5.4rem);line-height:1.02;
  max-width:20ch;margin-inline:auto;position:relative;z-index:1;
}
.cta__title em{color:var(--copper-bright);font-style:italic;}
.cta__sub{
  color:var(--off-dim);max-width:44ch;margin:1.6rem auto 2.6rem;font-size:1.05rem;line-height:1.6;
  position:relative;z-index:1;
}
.cta__actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;position:relative;z-index:1;}
.magnetic{position:relative;display:inline-block;}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{
  position:relative;overflow:hidden;isolation:isolate;
  padding-top:clamp(3rem,7vw,5rem);
  border-top:1px solid rgba(193,122,79,.22);
  /* Fond décoratif : reflet cuivre + dégradé charbon */
  background:
    linear-gradient(115deg, rgba(244,241,236,.05) 0%, transparent 30%),
    radial-gradient(ellipse 60% 70% at 70% 125%, rgba(193,122,79,.10), transparent 65%),
    radial-gradient(ellipse 50% 70% at 5% 0%, rgba(193,122,79,.07), transparent 70%),
    linear-gradient(180deg, var(--charcoal-900), var(--charcoal-850));
}
/* Texture de métal brossé (bruit fractal) fondue en overlay */
.footer::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.footer > .wrap{position:relative;z-index:1;}
.footer__top{
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,.9fr) minmax(0,1.6fr);gap:var(--gutter);
  padding-bottom:3.5rem;border-bottom:1px solid var(--line);
}
.footer__brand{display:flex;flex-direction:column;gap:1.2rem;}
.footer__brand .nav__logo{align-items:flex-start;}
.footer__tagline{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--off-dim);max-width:24ch;}
.footer__col h4,.footer__heading{
  font-family:var(--mono);font-weight:400;font-size:.72rem;letter-spacing:.1em;color:var(--off-faint);
  text-transform:uppercase;margin-bottom:1.2rem;
}
.footer__col a,.footer__col li,.footer__col span{
  display:block;color:var(--off-dim);font-size:.92rem;margin-bottom:.75rem;
  transition:color .3s;overflow-wrap:anywhere;
}
.footer__col a{display:flex;align-items:center;min-height:44px;margin-bottom:0;}
.footer__col a:hover{color:var(--copper-bright);}
.footer__bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
  padding-block:1.6rem;font-family:var(--mono);font-size:.72rem;color:var(--off-faint);
}
.footer__socials{display:flex;gap:1.2rem;flex-wrap:wrap;}
.footer__socials a:hover{color:var(--teal-bright);}
.footer__legal{display:flex;gap:1.4rem;flex-wrap:wrap;}
.footer__legal a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;transition:color .3s;}
.footer__legal a:hover{color:var(--teal-bright);}
.back-to-top{
  display:flex;align-items:center;min-height:44px;gap:.5rem;font-family:var(--mono);font-size:.72rem;color:var(--off-faint);
  transition:color .3s;
}
.back-to-top:hover{color:var(--off);}

@media(max-width:900px){
  .footer__top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:2.5rem;}
  .footer__brand{grid-column:1/3;}
}

/* ==========================================================================
   Brief (formulaire)
   ========================================================================== */
.brief{background:var(--charcoal-900);border-top:1px solid var(--line);}
.brief__grid{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(2rem,5vw,5rem);align-items:start;
}
.brief__intro{position:sticky;top:7rem;}
.brief__eyebrow{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;color:var(--copper-bright);
  display:flex;align-items:center;gap:.6rem;margin-bottom:1.2rem;
}
.brief__eyebrow::before{content:"";width:24px;height:1px;background:var(--copper);}
.brief__title{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4vw,3.2rem);line-height:1.08;}
.brief__title em{color:var(--teal-bright);font-style:italic;}
.brief__lead{color:var(--off-dim);line-height:1.65;margin-top:1.2rem;max-width:44ch;}
.brief__checklist{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:.7rem;}
.brief__checklist li{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--off-dim);}
.brief__checklist .ck{
  flex-shrink:0;width:18px;height:18px;border-radius:50%;margin-top:.1rem;
  border:1px solid var(--teal-bright);color:var(--teal-bright);
  display:flex;align-items:center;justify-content:center;font-size:.62rem;
}
.brief__progress{margin-top:2rem;}
.brief__plabel{
  display:flex;justify-content:space-between;font-family:var(--mono);font-size:.7rem;
  letter-spacing:.06em;color:var(--off-faint);text-transform:uppercase;margin-bottom:.6rem;
}
.brief__bar{height:3px;background:var(--line-strong);border-radius:3px;overflow:hidden;}
.brief__fill{display:block;height:100%;width:0;background:var(--copper);transition:width .4s var(--ease-out);}

.form-card{
  border:1px solid var(--line-strong);border-radius:6px;background:var(--charcoal-850);
  padding:clamp(1.3rem,3vw,2.4rem);
}
.form-card .fstep + .fstep{border-top:1px solid var(--line);margin-top:2.2rem;padding-top:2.2rem;}
.form-card .fstep__title{
  display:flex;align-items:center;gap:.7rem;font-family:var(--serif);font-size:1.5rem;line-height:1.1;
}
.form-card .fstep__num{
  width:26px;height:26px;border-radius:50%;border:1px solid var(--copper);color:var(--copper-bright);
  font-family:var(--mono);font-size:.72rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.form-card .fstep__sub{color:var(--off-faint);font-size:.88rem;margin:.4rem 0 1.4rem 2.2rem;}
.form-card .field{margin-bottom:1.1rem;}
.form-card .field__label{
  display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;
  color:var(--off-dim);text-transform:uppercase;margin-bottom:.5rem;
}
.form-card .opt{color:var(--off-faint);text-transform:none;letter-spacing:0;}
.form-card input[type="text"],
.form-card input[type="email"],
.form-card input[type="tel"],
.form-card select,
.form-card textarea{
  width:100%;background:var(--charcoal-950);border:1px solid var(--line-strong);border-radius:4px;
  color:var(--off);padding:.8rem .9rem;font-family:var(--sans);font-size:16px;line-height:1.4;
  transition:border-color .25s,background .25s;
}
.form-card ::placeholder{color:var(--off-faint);opacity:1;}
.form-card textarea{min-height:110px;resize:vertical;}
.form-card select{
  appearance:none;-webkit-appearance:none;padding-right:2.4rem;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23b7b3ab' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;
}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:var(--teal-bright);box-shadow:0 0 0 2px rgba(99,179,169,.45);}
.form-card .is-invalid:not(.chip-group){border-color:var(--error) !important;}
.form-card .field__error{color:var(--error);font-size:.84rem;line-height:1.4;margin-top:.45rem;}
.form-card .field__error::before{content:"⚠ ";}
.form-card .form-legend{color:var(--off-faint);font-size:.82rem;margin:-.6rem 0 1.2rem 2.2rem;}
.form-card .form-errors{color:var(--error);font-weight:600;font-size:.92rem;margin-bottom:1rem;text-align:center;}
.form-card .consent{display:flex;gap:.8rem;align-items:flex-start;margin-top:2rem;flex-wrap:wrap;}
.form-card .consent input{flex-shrink:0;width:22px;height:22px;margin:.1rem 0 0;accent-color:var(--copper);cursor:pointer;}
.form-card .consent label{flex:1;min-width:0;color:var(--off-dim);font-size:.86rem;line-height:1.55;cursor:pointer;}
.form-card .consent label a{color:var(--copper-bright);text-decoration:underline;text-underline-offset:2px;}
.form-card .consent .field__error{flex-basis:100%;margin-left:calc(22px + .8rem);}
.brief-status{padding:18px 22px;border-radius:12px;font-size:1rem;font-weight:600;line-height:1.5;}
.brief-status--ok{background:rgba(111,227,200,.14);color:#BFF3E6;border:1px solid rgba(111,227,200,.4);}
.brief-status--warn{background:rgba(214,138,74,.14);color:#F0C89A;border:1px solid rgba(214,138,74,.4);}
.form-card .row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem;}

.form-card .chip-group{display:flex;flex-wrap:wrap;gap:.5rem;border-radius:8px;}
.form-card .chip-group.is-invalid{outline:1px solid var(--error);outline-offset:6px;}
.form-card .chip{position:relative;display:inline-block;}
.form-card .chip input{
  position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1;
}
.form-card .chip label{
  display:inline-flex;align-items:center;min-height:44px;padding:.55rem .95rem;
  border:1px solid var(--line-strong);border-radius:100px;
  font-size:.84rem;color:var(--off-dim);cursor:pointer;
  transition:border-color .25s,background .25s,color .25s;
}
.form-card .chip:hover label{border-color:var(--copper-dim);}
.form-card .chip input:checked + label{
  border-color:var(--copper);background:rgba(193,122,79,.14);color:var(--copper-bright);
}
.form-card .chip input:focus-visible + label{outline:2px solid var(--teal-bright);outline-offset:2px;}

.form-card .submit-row{margin-top:2rem;border-top:1px solid var(--line);padding-top:1.6rem;}
.form-card .submit-row .btn{width:100%;justify-content:center;}
.form-card .btn[disabled]{opacity:.6;cursor:wait;transform:none;}
.form-card .form-note{color:var(--off-faint);font-size:.8rem;line-height:1.5;margin-top:1rem;text-align:center;}
.form-card #summary{display:none;margin-top:1.4rem;}

@media(max-width:900px){
  .brief__grid{grid-template-columns:minmax(0,1fr);}
  .brief__intro{position:static;}
}
@media(max-width:560px){
  .form-card .row-2{grid-template-columns:minmax(0,1fr);}
  .form-card .fstep__sub{margin-left:0;}
  .form-card .form-legend{margin-left:0;}
}

/* Reveal utility (JS toggles .is-visible via ScrollTrigger) */
.reveal{opacity:0;transform:translateY(28px);}
.reveal.is-visible{opacity:1;transform:none;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  .reveal{opacity:1;transform:none;}
}

/* ==========================================================================
   Pages légales & 404
   ========================================================================== */
.legal{padding-top:clamp(8rem,14vw,11rem);padding-bottom:clamp(4rem,8vw,7rem);}
.legal__head{max-width:62rem;margin-bottom:clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--line);padding-bottom:2rem;}
.legal__eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;color:var(--copper-bright);display:flex;align-items:center;gap:.6rem;margin-bottom:1.2rem;}
.legal__eyebrow::before{content:"";width:24px;height:1px;background:var(--copper);}
.legal__title{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;}
.legal__title em{color:var(--teal-bright);font-style:italic;}
.legal__updated{font-family:var(--mono);font-size:.75rem;color:var(--off-faint);margin-top:1.2rem;}
.legal__body{max-width:46rem;}
.legal__body h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;margin:2.8rem 0 1rem;}
.legal__body h2:first-child{margin-top:0;}
.legal__body h3{font-family:var(--sans);font-weight:600;font-size:1.02rem;margin:1.6rem 0 .6rem;}
.legal__body p,.legal__body li{color:var(--off-dim);font-size:.98rem;line-height:1.7;}
.legal__body p + p{margin-top:.9rem;}
.legal__body ul{list-style:disc;padding-left:1.3rem;margin:.8rem 0;display:grid;gap:.4rem;}
.legal__body strong{color:var(--off);font-weight:600;}
.legal__body a{color:var(--copper-bright);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;}
.legal__body a:hover{color:var(--off);}
.legal__card{border:1px solid var(--line-strong);border-radius:6px;background:var(--charcoal-850);padding:1.4rem 1.6rem;margin:1rem 0;}
.legal__card dl{margin:0;display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:.55rem 1.2rem;}
.legal__card dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--off-faint);padding-top:.25rem;}
.legal__card dd{margin:0;color:var(--off);font-size:.95rem;line-height:1.55;}
@media(max-width:640px){.legal__card dl{grid-template-columns:minmax(0,1fr);}.legal__card dd{margin-bottom:.6rem;}}
.legal__table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0;}
.legal__table th,.legal__table td{text-align:left;vertical-align:top;padding:.8rem .7rem;border-bottom:1px solid var(--line);color:var(--off-dim);line-height:1.5;}
.legal__table th{font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--off-faint);font-weight:500;}
.legal__table-wrap{overflow-x:auto;}

.notfound{min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;padding-block:8rem 4rem;}
.notfound__code{font-family:var(--serif);font-style:italic;font-size:clamp(6rem,22vw,15rem);line-height:.9;color:var(--copper-bright);}
.notfound__title{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,5vw,3.4rem);line-height:1.08;margin-top:1rem;max-width:18ch;}
.notfound__sub{color:var(--off-dim);max-width:44ch;margin:1.2rem 0 2.2rem;line-height:1.6;}
.notfound__actions{display:flex;gap:1rem;flex-wrap:wrap;}
.notfound__title em{color:var(--copper-bright);font-style:italic;}
