/* Miravest — styles de la maquette. Polices : Aptos (corps + titres) + Newsreader (chiffres/accents serif). */
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/c63dadfe-c630-46da-a65a-7dc22a57890e.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/b21acbd3-365d-4d54-a130-6084564b33a3.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/77c6fbca-c6fd-420c-819f-f153e5d7f82f.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/c63dadfe-c630-46da-a65a-7dc22a57890e.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/b21acbd3-365d-4d54-a130-6084564b33a3.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/77c6fbca-c6fd-420c-819f-f153e5d7f82f.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/c63dadfe-c630-46da-a65a-7dc22a57890e.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/b21acbd3-365d-4d54-a130-6084564b33a3.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/77c6fbca-c6fd-420c-819f-f153e5d7f82f.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;
}



/* =========================================================
   Miravest — tokens
   Noir / blanc / gris. Accent neutralisé pour l'instant.
   Pour réactiver le vert plus tard : remettez les valeurs vertes
   ci-dessous (--vert / --vert-700 / --vert-tint / --vert-line).
   ========================================================= */
:root{
  /* Accent (actuellement monochrome — ex-vert #1F3D2F) */
  --vert:#15171B;
  --vert-700:#000000;        /* survol / état pressé */
  --vert-tint:rgba(21,23,27,0.06);
  --vert-line:rgba(21,23,27,0.26);

  /* Neutres (gris froids / légèrement bleutés) */
  --ink:#15171B;             /* texte principal, quasi-noir froid */
  --ink-2:#454A53;           /* texte secondaire */
  --ink-3:#5E626B;           /* légendes / tertiaire (AA sur fonds clairs) */

  /* Texte sur fond sombre (--ink) : footer, cartes noires */
  --on-ink-1:#E7E6E3;        /* primaire sur sombre */
  --on-ink-2:#CFCECB;        /* secondaire */
  --on-ink-3:#9A9893;        /* tertiaire (AA : 4.8:1 sur --ink) */
  --on-ink-line:rgba(255,255,255,0.14);
  --paper:#FFFFFF;
  --paper-2:#EDF0F4;         /* fond de section alterné, gris bleuté */
  --paper-3:#E1E6EC;         /* placeholder image, gris bleuté */
  --line:rgba(21,23,27,0.12);
  --line-2:rgba(21,23,27,0.20);
  --line-strong:rgba(21,23,27,0.82);

  /* Type — 2 polices : Newsreader (serif, grands titres) + Aptos (titres UI + corps). */
  --font-head:'Aptos',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-display:'Newsreader',Georgia,'Times New Roman',serif;
  --font-body:'Aptos',system-ui,-apple-system,'Segoe UI',sans-serif;

  --fs-hero:clamp(42px,6vw,82px);
  --fs-h2:clamp(27px,3vw,42px);
  --fs-h3:clamp(19px,1.5vw,23px);
  --fs-lead:clamp(18px,1.5vw,22px);
  --fs-body:17px;
  --fs-small:15px;
  --fs-caption:13px;
  --fs-eyebrow:14px;

  --lh-tight:1.04;
  --lh-head:1.12;
  --lh-body:1.62;

  /* Espacement (base 4px) */
  --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px;
  --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px;

  --gutter:clamp(20px,5vw,72px);
  --max-w:1360px;
  --nav-h:60px;
  --sticky-off:calc(var(--nav-h) + 56px);

  --r-sm:4px; --r-md:6px; --r-full:999px; --r-card:16px; --r-input:11px;

  --ease:cubic-bezier(0.2,0.7,0.1,1);
  --dur-ui:200ms;
  --dur-rev:540ms;
  --dur-section:460ms;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;margin:0;color:var(--ink);}
p{margin:0;}
::selection{background:var(--vert);color:#fff;}

.wrap{max-width:var(--max-w);margin:0 auto;padding-inline:var(--gutter);}

/* Eyebrow / numéro de section */
.eyebrow{
  font-family:var(--font-head);
  font-size:var(--fs-eyebrow);
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--vert);
  display:inline-flex;
  align-items:baseline;
  gap:.6em;
}
.eyebrow .num{color:var(--ink-3);font-variant-numeric:tabular-nums;}

/* Liens texte — soulignement vert qui se déploie au survol */
.link{
  color:var(--vert);
  text-decoration:none;
  background-image:linear-gradient(var(--vert),var(--vert));
  background-repeat:no-repeat;
  background-size:0% 1.5px;
  background-position:0 100%;
  transition:background-size var(--dur-ui) var(--ease);
  padding-bottom:2px;
}
.link:hover,.link:focus-visible{background-size:100% 1.5px;}

/* Boutons — système unifié (pilule) */
.btn{
  font-family:var(--font-head);font-weight:600;font-size:15px;line-height:1;
  border:1px solid transparent;border-radius:var(--r-full);
  min-height:52px;padding:0 26px;box-sizing:border-box;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:12px;
  transition:background-color var(--dur-ui) var(--ease),color var(--dur-ui) var(--ease),
             border-color var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease);
  text-decoration:none;white-space:nowrap;background:none;
}
.btn:active{transform:scale(.985);}
.btn .btn-ic{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;font-size:15px;flex:none;
  transition:transform var(--dur-ui) var(--ease);}
.btn:hover .btn-ic{transform:translate(2px,-2px);}

.btn-primary{background:var(--ink);color:#fff;padding:0 8px 0 24px;}
.btn-primary:hover{background:#000;}
.btn-primary .btn-ic{background:#fff;color:var(--ink);}
.btn-primary:not(:has(.btn-ic)){padding:0 28px;}

.btn-ghost{background:var(--paper-2);color:var(--ink);border-color:transparent;}
.btn-ghost:hover{background:#E2E6EC;}

/* alias rétro-compat */
.btn-soft{background:var(--paper-2);color:var(--ink);}
.btn-soft:hover{background:#E2E6EC;}
.btn-dark{background:var(--ink);color:#fff;padding:0 8px 0 24px;}
.btn-dark:hover{background:#000;}
.btn-dark .btn-ic{background:#fff;color:var(--ink);}

/* Focus visible (AA) */
:focus-visible{outline:2px solid var(--vert);outline-offset:2px;border-radius:2px;}
.btn-primary:focus-visible{outline-offset:3px;}

/* Skip link */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;
  padding:12px 18px;border-radius:0 0 var(--r-md) 0;font-family:var(--font-head);font-weight:600;font-size:14px;}
.skip:focus{left:0;}

/* =========================================================
   Loader (entrée du site)
   ========================================================= */
html.loading{overflow:hidden;}
/* Sobre : logo centré + hairline de progression, sortie en fondu (pas de compteur ni rideau). */
.loader{position:fixed;inset:0;z-index:9999;background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  transition:opacity 460ms var(--ease),visibility 0s 460ms;}
.loader.done{opacity:0;visibility:hidden;}
.loader-center{display:flex;flex-direction:column;align-items:center;gap:24px;
  opacity:0;transform:translateY(6px);animation:loaderIn 560ms var(--ease) 60ms forwards;
  transition:opacity 380ms var(--ease),transform 380ms var(--ease);}
.loader.done .loader-center{opacity:0;transform:translateY(-10px);}
.loader-logo .brand-img{height:clamp(30px,4vw,38px);margin-inline:auto;}
.loader-line{width:148px;height:1px;background:var(--line);overflow:hidden;border-radius:1px;}
.loader-line span{display:block;height:100%;width:100%;background:var(--ink);
  transform:scaleX(0);transform-origin:left;transition:transform 220ms linear;}
@keyframes loaderIn{to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){
  .loader-center{animation:none;opacity:1;transform:none;}
}

/* =========================================================
   En-tête : pleine largeur en haut → pill flottante au scroll
   ========================================================= */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
}
/* Barre pleine largeur : transparente au sommet, dépolie au scroll. Contenu aligné sur le conteneur du site. */
.nav-bar{
  background:transparent;
  border-bottom:1px solid transparent;
  box-shadow:none;
  -webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);
  transition:background-color .5s var(--ease),border-color .5s var(--ease),
             box-shadow .5s var(--ease),-webkit-backdrop-filter .5s var(--ease),backdrop-filter .5s var(--ease);
}
.site-header.scrolled .nav-bar{
  background:color-mix(in oklab, var(--paper) 80%, transparent);
  -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  border-bottom-color:color-mix(in oklab, var(--ink) 9%, transparent);
  box-shadow:0 12px 32px -26px color-mix(in oklab, var(--ink) 60%, transparent);
}
.nav-inner{
  max-width:var(--max-w);margin:0 auto;padding-inline:var(--gutter);
  min-height:var(--nav-h);padding-block:clamp(12px,1.4vw,20px);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s-5);
}
/* Hors page d'accueil : pas de hero → navbar dépolie d'emblée (évite la phase transparente sur fond blanc). */
body:not(.home) .site-header .nav-bar{
  background:color-mix(in oklab, var(--paper) 80%, transparent);
  -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  border-bottom-color:color-mix(in oklab, var(--ink) 9%, transparent);
}

.logo{display:inline-flex;align-items:center;text-decoration:none;background:none;}
/* Logo (image fournie) */
.brand-img{height:42px;width:auto;display:block;transform-origin:left center;
  transition:transform .5s var(--ease);}
/* Logo navbar : agrandi, rendu en noir (le PNG gris est forcé en noir via filtre). */
.site-header .logo .brand-img{height:clamp(44px,4.6vw,54px);}
.site-header .logo .brand-img,
.loader-logo .brand-img{filter:brightness(0);}
.site-header.scrolled .logo .brand-img{transform:scale(.9);}

.nav-center{display:flex;align-items:center;justify-content:center;gap:2px;}
.nav-center .btn{display:none;}        /* le CTA du menu central ne sert qu'en mobile */
.nav-link{position:relative;font-family:var(--font-head);font-weight:500;font-size:14px;color:var(--ink-2);
  text-decoration:none;padding:9px 11px;background:none;white-space:nowrap;
  transition:color var(--dur-ui) var(--ease);}
.nav-link::after{content:"";position:absolute;left:11px;right:11px;bottom:7px;height:1.5px;
  background:var(--ink);transform:scaleX(0);transform-origin:left center;
  transition:transform .38s var(--ease);}
.nav-link:hover{color:var(--ink);}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1);}
.nav-link.active{color:var(--ink);font-weight:600;}

.nav-right{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-4);}

/* Sélecteur de langue */
.lang{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-head);font-weight:600;font-size:13.5px;}
.lang button{background:none;border:none;cursor:pointer;color:var(--ink-3);padding:9px 10px;border-radius:var(--r-sm);
  min-height:40px;font:inherit;letter-spacing:.04em;transition:color var(--dur-ui) var(--ease),background-color var(--dur-ui) var(--ease);}
.lang button:hover{color:var(--ink);}
.lang button[aria-pressed="true"]{color:var(--vert);background:var(--vert-tint);}
.lang .sep{color:var(--line-2);}

/* Hamburger (mobile) */
.nav-toggle{display:none;background:none;border:0;border-radius:var(--r-md);
  width:44px;height:44px;cursor:pointer;align-items:center;justify-content:center;margin-right:-8px;}
.lang--menu{display:none;}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:"";display:block;width:18px;height:2px;background:var(--ink);position:relative;transition:.2s var(--ease);}
.nav-toggle span::before{position:absolute;top:-6px;}
.nav-toggle span::after{position:absolute;top:6px;}
.nav-toggle[aria-expanded="true"] span{background:transparent;}
.nav-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg);}

/* =========================================================
   Sections
   ========================================================= */
main{display:block;}
section{padding-block:clamp(64px,9vw,128px);scroll-margin-top:calc(var(--nav-h) + 8px);}
.section-alt{
  background-color:var(--paper-2);
  background-image:radial-gradient(rgba(21,23,27,0.055) 0.8px, transparent 0.9px);
  background-size:17px 17px;
}
.section-head{max-width:62ch;margin-bottom:var(--s-8);}
.section-head h2{font-size:var(--fs-h2);line-height:var(--lh-head);letter-spacing:-0.02em;margin-top:var(--s-3);}
.section-head .lede{font-size:var(--fs-lead);line-height:1.5;color:var(--ink-2);margin-top:var(--s-5);}
.rule{height:1px;background:var(--line);border:0;margin:0;}

/* Hero — split : texte à gauche, image à droite */
.hero{display:grid;grid-template-columns:1.06fr 0.94fr;align-items:stretch;
  padding-top:calc(var(--nav-h) + clamp(48px,6vw,96px));padding-bottom:clamp(64px,9vw,128px);}
.hero-text{display:flex;flex-direction:column;justify-content:center;
  padding-left:max(var(--gutter), calc((100vw - var(--max-w)) / 2 + var(--gutter)));
  padding-right:clamp(28px,4.5vw,72px);}
.hero-badge{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:40px;}
.badge-pill{background:var(--ink);color:#fff;font-family:var(--font-head);font-weight:600;
  font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;border-radius:var(--r-full);white-space:nowrap;}
.badge-label{color:var(--ink-3);font-size:14.5px;font-family:var(--font-head);font-weight:500;letter-spacing:.01em;}
.hero h1{font-size:var(--fs-hero);line-height:1.0;letter-spacing:-0.025em;font-weight:500;max-width:13ch;text-wrap:balance;}
.hero h1 em{font-style:italic;font-weight:500;}
.hero .sub{font-size:var(--fs-lead);line-height:1.5;color:var(--ink-2);max-width:46ch;margin-top:40px;font-family:var(--font-body);}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-4);margin-top:clamp(44px,5.5vw,64px);}

.hero-media{position:relative;background:var(--paper-3);overflow:hidden;filter:contrast(1.02);
  border-radius:24px;align-self:stretch;
  margin-right:max(var(--gutter), calc((100vw - var(--max-w)) / 2 + var(--gutter)));
  margin-left:clamp(8px,1.5vw,24px);}
.hero-media image-slot,.hero-media .hero-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;}

.btn-soft{background:var(--paper-2);color:var(--ink);border-radius:var(--r-full);padding:14px 24px;}
.btn-soft:hover{background:#E2E6EC;}
.btn-dark{background:var(--ink);color:#fff;border-radius:var(--r-full);
  padding:7px 7px 7px 24px;display:inline-flex;align-items:center;gap:14px;}
.btn-dark:hover{background:#000;}
.btn-dark .btn-ic{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;font-size:16px;flex:none;
  transition:transform var(--dur-ui) var(--ease);}
.btn-dark:hover .btn-ic{transform:translate(2px,-2px);}

/* Pourquoi — accordéon interactif + mockup synchronisé */
.why-x{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,76px);align-items:center;}
.why-acc{display:flex;flex-direction:column;}
.why-item{appearance:none;background:none;border:0;border-top:1px solid var(--line);width:100%;
  text-align:left;cursor:pointer;font-family:inherit;color:inherit;position:relative;
  padding:clamp(20px,2.2vw,28px) 8px clamp(20px,2.2vw,28px) 24px;
  transition:padding-left var(--dur-ui) var(--ease);}
.why-item:first-child{border-top:0;}
.why-item::before{content:"";position:absolute;left:0;top:-1px;bottom:0;width:2px;background:var(--ink);
  transform:scaleY(0);transform-origin:top;transition:transform 320ms var(--ease);}
.why-item.active::before{transform:scaleY(1);}
.why-item:hover{padding-left:30px;}
.wi-top{display:flex;align-items:baseline;gap:16px;}
.wi-num{font-family:var(--font-head);font-weight:600;font-size:24px;line-height:1;color:var(--ink-3);
  min-width:1.2em;flex:none;transition:color var(--dur-ui) var(--ease);}
.why-item.active .wi-num,.why-item:hover .wi-num{color:var(--ink);}
.wi-title{font-family:var(--font-head);font-weight:600;font-size:clamp(19px,1.9vw,27px);letter-spacing:-0.015em;
  line-height:1.18;color:var(--ink-3);transition:color var(--dur-ui) var(--ease);}
.why-item.active .wi-title,.why-item:hover .wi-title{color:var(--ink);}
.why-stage{position:relative;background:var(--ink);border-radius:14px;overflow:hidden;
  min-height:clamp(272px,24vw,320px);
  background-image:radial-gradient(rgba(255,255,255,0.05) 0.8px, transparent 0.9px);background-size:17px 17px;
  box-shadow:0 30px 60px -38px rgba(21,23,27,0.55);}
.mock{position:absolute;inset:0;display:none;flex-direction:column;justify-content:center;
  padding:clamp(22px,2.8vw,40px);color:#fff;}
.mock.active{display:flex;animation:mockIn 420ms var(--ease) both;}
@keyframes mockIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.mock.active{animation:none;}}
.wpp-kicker{font-family:var(--font-head);font-weight:600;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,0.55);white-space:nowrap;}
@media (max-width:420px){.wpp-kicker{white-space:normal;font-size:11px;letter-spacing:.07em;}}
.wpp-figure{font-family:var(--font-head);font-weight:600;font-size:clamp(50px,6vw,84px);line-height:0.92;
  letter-spacing:-0.04em;color:#fff;margin-top:clamp(8px,1.2vw,13px);}
.wpp-figure .pl{font-size:0.46em;vertical-align:super;font-weight:500;margin-left:0.04em;}
.wpp-unit{font-family:var(--font-head);font-weight:500;font-size:clamp(13.5px,1.2vw,16px);color:rgba(255,255,255,0.88);
  margin-top:7px;max-width:34ch;line-height:1.3;}
.wpp-text{font-size:13px;line-height:1.65;color:rgba(255,255,255,0.72);max-width:46ch;
  margin-top:clamp(13px,1.8vw,18px);padding-top:clamp(12px,1.6vw,16px);border-top:1px solid rgba(255,255,255,0.16);}
.wpp-text .wpp-roles{display:block;font-weight:700;color:#fff;white-space:nowrap;letter-spacing:.005em;}
.wpp-text .wpp-combo{display:block;margin-top:7px;color:rgba(255,255,255,0.6);font-weight:400;}
@media (max-width:560px){.wpp-text .wpp-roles{white-space:normal;}}

/* Ce que nous faisons — lead + points numérotés */
.what-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:start;}
.what-lead{position:sticky;top:var(--sticky-off);}
.what-lead .lead-p{font-size:var(--fs-lead);line-height:1.5;color:var(--ink);max-width:40ch;margin-top:var(--s-6);}
.what-cta{margin-top:clamp(26px,3vw,40px);}
.what-points{display:flex;flex-direction:column;}
.what-points .wp{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,2.4vw,38px);align-items:start;
  padding:clamp(28px,3vw,44px) 0;border-top:1px solid var(--line);}
.what-points .wp:first-child{border-top:0;padding-top:0;}
.what-points .wp-ic{width:clamp(46px,4vw,56px);height:clamp(46px,4vw,56px);flex:none;border-radius:14px;
  border:1px solid var(--line);background:var(--paper-2);color:var(--ink);display:inline-flex;
  align-items:center;justify-content:center;transition:background .45s var(--ease),color .45s var(--ease);}
.what-points .wp-ic svg{width:24px;height:24px;}
.what-points .wp p{font-size:var(--fs-body);color:var(--ink-2);line-height:1.62;max-width:56ch;
  transition:color .45s var(--ease);}
.what-points .wp:hover .wp-ic{background:var(--ink);color:#fff;}
.what-points .wp:hover p{color:var(--ink);}

/* Expertise — 4 cartes minimalistes avec icône */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-5);}
.card{border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(26px,3vw,38px);
  background:var(--paper);transition:border-color var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease);position:relative;}
.card:hover{border-color:var(--line-strong);transform:translateY(-3px);}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-6);}
.card-ic{width:50px;height:50px;border-radius:14px;border:1px solid var(--line);display:inline-flex;
  align-items:center;justify-content:center;color:var(--ink);background:var(--paper-2);
  transition:background var(--dur-ui) var(--ease),color var(--dur-ui) var(--ease);}
.card-ic svg{width:24px;height:24px;}
.card:hover .card-ic{background:var(--ink);color:#fff;}
.card .idx{display:none;}
.card h3{font-size:var(--fs-h3);letter-spacing:-0.01em;}
.card h3{font-size:var(--fs-h3);letter-spacing:-0.01em;line-height:1.18;}
.card p{font-size:var(--fs-small);color:var(--ink-2);margin-top:var(--s-4);line-height:1.55;max-width:44ch;}

/* Philosophie — colonne éditoriale (lead + principes numérotés) + carte sombre */
.phil-layout{display:grid;grid-template-columns:1.55fr 0.92fr;gap:clamp(36px,5vw,84px);align-items:start;}
.phil-lead{font-family:var(--font-display);font-weight:430;
  font-size:clamp(23px,2.6vw,34px);line-height:1.3;letter-spacing:-0.01em;color:var(--ink);max-width:30ch;}
.phil-list{margin-top:clamp(28px,3.6vw,48px);}
.phil-row{display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,2.2vw,36px);
  padding:clamp(20px,2.4vw,30px) 0;border-top:1px solid var(--line);}
.phil-list .phil-row:last-child{border-bottom:1px solid var(--line);}
.phil-rn{display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);margin-top:1px;}
.phil-rn svg{width:27px;height:27px;}
.phil-rt{font-family:var(--font-head);font-weight:600;font-size:clamp(16px,1.4vw,19px);color:var(--ink);}
.phil-rc p{color:var(--ink-2);font-size:15px;line-height:1.62;margin-top:9px;max-width:56ch;}
.phil-side{position:sticky;top:var(--sticky-off);display:flex;flex-direction:column;gap:var(--s-5);}
.phil-card{background:var(--ink);color:#fff;border-radius:var(--r-card);
  padding:clamp(28px,3vw,40px);overflow:hidden;
  background-image:radial-gradient(rgba(255,255,255,0.06) .8px,transparent .9px);background-size:17px 17px;}
.phil-card-k{display:block;font-family:var(--font-head);font-weight:600;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);}
.phil-card-n{display:block;font-family:var(--font-display);font-weight:500;
  font-size:clamp(66px,7.5vw,98px);line-height:.88;letter-spacing:-0.02em;margin-top:16px;}
.phil-card-u{display:block;font-family:var(--font-head);font-size:14px;line-height:1.45;
  color:rgba(255,255,255,.72);margin-top:14px;max-width:24ch;}
.phil-note{font-family:var(--font-display);font-style:italic;font-weight:430;
  font-size:clamp(16px,1.5vw,20px);line-height:1.45;color:var(--ink-2);padding-left:2px;}
@media (max-width:980px){
  .phil-layout{grid-template-columns:1fr;gap:var(--s-7);}
  .phil-side{position:static;}
}

/* Stats sous le hero */
.stats{padding-block:clamp(40px,5vw,72px);border-bottom:1px solid var(--line);}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;gap:14px clamp(22px,3.4vw,52px);}
.stats .stat{display:flex;flex-direction:column;gap:8px;min-width:0;padding-left:clamp(22px,3.4vw,52px);
  border-left:1px solid var(--line);}
.stats .stat:first-child{border-left:0;padding-left:0;}
.stats .stat-k{font-family:var(--font-display);font-weight:500;font-size:clamp(30px,3.6vw,52px);
  letter-spacing:-0.03em;line-height:0.95;color:var(--ink);}
.stats .stat-v{font-family:var(--font-head);font-weight:500;font-size:12.5px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--ink-3);}

/* Fondateur */
.founder-grid{display:grid;grid-template-columns:0.92fr 1.08fr;gap:clamp(36px,5vw,80px);align-items:center;}
.portrait{aspect-ratio:4/5;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line);
  background:var(--paper-3);position:relative;box-shadow:0 30px 60px -42px rgba(21,23,27,0.5);}
.portrait .portrait-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;filter:contrast(1.02);}
.portrait .portrait-loc{position:absolute;left:16px;bottom:16px;z-index:1;font-family:var(--font-head);font-weight:600;
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;
  background:rgba(21,23,27,0.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:7px 13px;border-radius:var(--r-full);}
.founder-role{margin-bottom:var(--s-4);}
.founder-body .fname{font-family:var(--font-display);font-weight:500;font-size:clamp(34px,4.6vw,62px);
  letter-spacing:-0.02em;line-height:1.0;}
.ftags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s-5);padding:0;}
.ftags li{font-family:var(--font-head);font-weight:500;font-size:13px;color:var(--ink-2);
  border:1px solid var(--line-2);border-radius:var(--r-full);padding:7px 14px;}
.founder-body p{color:var(--ink-2);max-width:56ch;margin-top:var(--s-5);}
.founder-cta{margin-top:var(--s-6);}

/* Expertise — CTA */
.exp-cta{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(16px,1.8vw,22px);
  margin-top:var(--s-8);padding-top:var(--s-7);border-top:1px solid var(--line);}
.exp-cta-text{font-family:var(--font-display);font-weight:500;font-size:clamp(20px,2.2vw,28px);
  letter-spacing:-0.01em;color:var(--ink);margin:0;}

/* Actualité */
.news-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-5);flex-wrap:wrap;margin-bottom:var(--s-7);}
/* Card pleine largeur « publications à venir » (en attendant les premiers articles). */
.news-soon{border:1px solid var(--line);border-radius:var(--r-card);
  padding:clamp(38px,5.5vw,76px) clamp(28px,5vw,64px);background:var(--paper-2);
  background-image:radial-gradient(rgba(21,23,27,0.05) 0.8px,transparent 0.9px);background-size:18px 18px;
  display:flex;flex-direction:column;align-items:center;text-align:center;}
.ns-badge{display:inline-flex;align-items:center;font-family:var(--font-head);font-weight:600;font-size:11.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--vert);padding:6px 15px;border:1px solid var(--line);
  border-radius:var(--r-full);background:var(--paper);}
.news-soon-title{font-family:var(--font-display);font-weight:500;font-size:clamp(22px,2.5vw,32px);
  letter-spacing:-0.02em;line-height:1.1;margin-top:clamp(14px,1.8vw,20px);max-width:22ch;color:var(--ink);}
.news-soon-text{font-size:clamp(14px,1.2vw,15.5px);line-height:1.6;color:var(--ink-2);max-width:54ch;
  margin-top:clamp(12px,1.5vw,16px);}
.news-soon .ns-form{justify-content:center;margin-top:clamp(24px,3vw,34px);}
.news-soon .ns-ok{margin-top:16px;text-align:left;}
.link-arrow{font-family:var(--font-head);font-weight:600;font-size:15px;color:var(--ink);
  display:inline-flex;align-items:center;gap:.5em;text-decoration:none;
  background-image:linear-gradient(var(--ink),var(--ink));background-repeat:no-repeat;
  background-size:0% 1.5px;background-position:0 100%;transition:background-size var(--dur-ui) var(--ease);padding-bottom:2px;}
.link-arrow:hover{background-size:100% 1.5px;}
.news-note{font-size:13px;color:var(--ink-3);font-style:italic;margin-bottom:var(--s-7);}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);}
.news-card{display:flex;flex-direction:column;gap:var(--s-4);text-decoration:none;color:inherit;
  border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(18px,1.8vw,24px);background:var(--paper);
  min-height:clamp(150px,15vw,190px);
  transition:border-color var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease);}
.news-card:hover{border-color:var(--line-strong);transform:translateY(-3px);}
.nc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.nc-cat{font-family:var(--font-head);font-weight:600;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-full);padding:5px 12px;}
.nc-date{font-family:var(--font-head);font-size:12px;letter-spacing:.06em;color:var(--ink-3);}
.nc-title{font-size:clamp(17px,1.4vw,20px);line-height:1.25;letter-spacing:-0.01em;margin-top:auto;}
.nc-read{font-family:var(--font-head);font-weight:600;font-size:14px;color:var(--ink-2);transition:color var(--dur-ui) var(--ease);}
.news-card:hover .nc-read{color:var(--ink);}

/* Hero — fond décoratif (lignes) */
.hero-wrap{position:relative;}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.hero-bg svg{width:100%;height:100%;display:block;}
.hero,.stats{position:relative;z-index:1;}
.hero-text,.hero-media{position:relative;z-index:1;}

/* Newsletter (sous Actualité) */
.news-signup{margin-top:clamp(36px,4vw,56px);padding-top:clamp(32px,3.5vw,44px);border-top:1px solid var(--line-2);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(20px,3vw,44px);}
.ns-text{max-width:42ch;}
.ns-title{font-size:clamp(22px,2.4vw,30px);letter-spacing:-0.01em;}
.ns-sub{font-size:14px;color:var(--ink-3);margin-top:8px;}
.ns-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.ns-form input{font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--paper);
  border:1px solid var(--line-2);border-radius:var(--r-full);padding:0 18px;height:52px;width:170px;
  transition:border-color var(--dur-ui) var(--ease),box-shadow var(--dur-ui) var(--ease);}
.ns-form input::placeholder{color:var(--ink-3);}
.ns-form input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--vert-tint);}
.ns-ok{flex-basis:100%;font-size:14px;color:var(--ink);font-weight:500;margin:0;display:none;align-items:flex-start;gap:.6em;max-width:62ch;line-height:1.5;}
.ns-ok::before{content:"✓";flex:none;width:18px;height:18px;margin-top:1px;border-radius:50%;background:var(--ink);
  color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;}
.ns-ok.show{display:flex;animation:nsOkIn 480ms var(--ease);}
@keyframes nsOkIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.ns-ok.err{color:#8C2F39;}
.ns-ok.err::before{content:"!";background:#8C2F39;}
/* Pot de miel anti-robots : champ invisible, jamais rempli par un humain. */
.ns-form .ns-hp{position:absolute;left:-9999px;width:1px;height:1px;padding:0;border:0;opacity:0;}
@media (max-width:760px){.news-signup{flex-direction:column;align-items:flex-start;}
  .ns-form{width:100%;}.ns-form input,.ns-form .btn{width:100%;}}

/* FAQ */
.faq-list{border-top:1px solid var(--line-2);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;
  gap:clamp(20px,3vw,48px);padding:clamp(20px,2.2vw,28px) 4px;
  font-family:var(--font-display);font-weight:500;font-size:clamp(19px,1.9vw,25px);letter-spacing:-0.01em;
  line-height:1.25;color:var(--ink);transition:opacity var(--dur-ui) var(--ease);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary > span:first-child{text-wrap:pretty;}
.faq-item summary:hover{opacity:0.62;}
.faq-ic{position:relative;width:20px;height:20px;flex:none;margin-top:5px;}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;background:var(--ink);border-radius:2px;transition:transform var(--dur-ui) var(--ease);}
.faq-ic::before{left:0;top:9px;width:20px;height:2px;}
.faq-ic::after{left:9px;top:0;width:2px;height:20px;}
.faq-item[open] .faq-ic::after{transform:scaleY(0);}
.faq-a{overflow:hidden;padding:0 0 clamp(22px,2.4vw,30px) 0;max-width:70ch;}
.faq-a p{font-size:var(--fs-body);color:var(--ink-2);line-height:1.6;}
@media (prefers-reduced-motion:no-preference){
  .faq-item[open] .faq-a{animation:faqOpen 340ms var(--ease);}
  @keyframes faqOpen{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
}


/* Contact */
.contact-grid{display:grid;grid-template-columns:1.25fr 0.75fr;gap:clamp(32px,5vw,80px);align-items:start;}
form{display:grid;gap:var(--s-5);}
.field{display:grid;gap:8px;}
.field label{font-family:var(--font-head);font-weight:600;font-size:14px;color:var(--ink);}
.field .opt{color:var(--ink-3);font-weight:400;}
.field input,.field select{
  font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);
  border:1px solid var(--line-2);border-radius:var(--r-input);padding:14px 15px;width:100%;
  transition:border-color var(--dur-ui) var(--ease),box-shadow var(--dur-ui) var(--ease);}
.field input::placeholder{color:var(--ink-3);}
.field input:hover,.field select:hover{border-color:var(--line-strong);}
.field input:focus,.field select:focus{outline:none;border-color:var(--vert);box-shadow:0 0 0 3px var(--vert-tint);}
/* Select stylé : caret custom + padding ; option list soignée (selon support navigateur) */
.field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;
  padding-right:46px;
  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' stroke='%23454A53' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 18px center;background-size:12px;}
.field select:hover{background-color:color-mix(in oklab, var(--paper) 94%, var(--ink));}
.field select option{color:var(--ink);background:var(--paper);padding:12px 14px;font-weight:500;}
.field select option:disabled{color:var(--ink-3);}
.field select option:checked{color:var(--vert);font-weight:600;}

/* Dropdown personnalisé (JS) — remplace le <select> natif sur le formulaire de contact. */
.mv-sel{position:relative;}
.mv-sel__native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0;}
.mv-sel__btn{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);
  border:1px solid var(--line-2);border-radius:var(--r-input);padding:14px 46px 14px 15px;width:100%;text-align:left;
  cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;
  transition:border-color var(--dur-ui) var(--ease),box-shadow var(--dur-ui) var(--ease);}
.mv-sel__btn:hover{border-color:var(--line-strong);}
.mv-sel__btn.is-placeholder{color:var(--ink-3);}
.mv-sel[data-open="true"] .mv-sel__btn,
.mv-sel__btn:focus-visible{outline:none;border-color:var(--vert);box-shadow:0 0 0 3px var(--vert-tint);}
.mv-sel__caret{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:12px;height:8px;pointer-events:none;
  color:var(--ink-2);transition:transform var(--dur-ui) var(--ease);}
.mv-sel[data-open="true"] .mv-sel__caret{transform:translateY(-50%) rotate(180deg);}
.mv-sel__panel{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-input);box-shadow:0 22px 50px -24px rgba(21,23,27,0.45);
  padding:6px;max-height:min(320px,60vh);overflow-y:auto;-webkit-overflow-scrolling:touch;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease),visibility 0s var(--dur-ui);}
.mv-sel[data-open="true"] .mv-sel__panel{opacity:1;visibility:visible;transform:none;transition:opacity var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease);}
.mv-sel__opt{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--font-body);
  font-size:15px;color:var(--ink);padding:12px 14px;border-radius:calc(var(--r-input) - 4px);cursor:pointer;line-height:1.35;}
.mv-sel__opt:hover,.mv-sel__opt.is-active{background:var(--paper-2);}
.mv-sel__opt[aria-selected="true"]{font-weight:600;}
.mv-sel__opt[aria-selected="true"]::after{content:"";flex:none;width:7px;height:11px;
  border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg);margin-right:3px;}
.mv-sel:has(.mv-sel__native[aria-invalid="true"]) .mv-sel__btn{border-color:#9A2C20;}
.field.row2{grid-template-columns:1fr 1fr;gap:var(--s-5);}
.field.row2 .field{grid-column:auto;}
.field-error{font-size:13px;color:#9A2C20;min-height:0;}
.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#9A2C20;}

/* Consentement : case personnalisée dans un encart sobre. */
.consent{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-input);background:var(--paper-2);
  transition:border-color var(--dur-ui) var(--ease),background-color var(--dur-ui) var(--ease);cursor:pointer;}
.consent:hover{border-color:var(--line-2);}
.consent:has(input:checked){border-color:var(--ink);background:var(--paper);}
.consent:has(input:focus-visible){outline:2px solid var(--vert);outline-offset:2px;}
.consent input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:1px 0 0;flex:none;cursor:pointer;
  border:1.5px solid var(--line-strong);border-radius:6px;background:var(--paper);position:relative;
  transition:background-color var(--dur-ui) var(--ease),border-color var(--dur-ui) var(--ease);}
.consent input:checked{background:var(--ink);border-color:var(--ink);}
.consent input:checked::after{content:"";position:absolute;left:7px;top:3px;width:5px;height:10px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.consent label{font-size:13.5px;color:var(--ink-2);line-height:1.55;font-weight:400;font-family:var(--font-body);cursor:pointer;}
.consent label a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;}
.consent label a:hover{color:var(--vert);}

.form-foot{display:flex;align-items:center;gap:var(--s-5);flex-wrap:wrap;}
.btn-primary:disabled{background:var(--paper-3);color:var(--ink-3);cursor:not-allowed;}
.contact-grid .ct-hp{position:absolute;left:-9999px;width:1px;height:1px;padding:0;border:0;opacity:0;}
.form-confirm{font-size:15px;color:var(--vert);font-weight:500;display:none;align-items:center;gap:.5em;}
.form-confirm.show{display:flex;}
.form-confirm::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--vert);flex:none;}
.form-confirm.is-error{color:#9A2C20;}
.form-confirm.is-error::before{background:#9A2C20;}

/* Contact — card sombre (coordonnées + infos réglementaires) */
.cp-side{position:sticky;top:var(--sticky-off);}
.cp-card{background:var(--ink);color:#fff;border-radius:var(--r-card);padding:clamp(28px,3.4vw,44px);
  background-image:radial-gradient(rgba(255,255,255,0.05) 0.8px,transparent 0.9px);background-size:17px 17px;
  box-shadow:0 30px 60px -38px rgba(21,23,27,0.55);}
.cp-card-eyebrow{font-family:var(--font-head);font-weight:600;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,0.5);}
.cp-card-title{font-family:var(--font-display);font-weight:500;font-size:clamp(26px,2.6vw,34px);
  letter-spacing:-0.01em;line-height:1.05;margin-top:10px;color:#fff;}
.cp-contact{margin-top:clamp(20px,2.4vw,28px);display:flex;flex-direction:column;gap:7px;}
.cp-email{font-family:var(--font-head);font-weight:600;font-size:clamp(17px,1.5vw,20px);color:#fff;
  text-decoration:none;border-bottom:1px solid rgba(255,255,255,0.32);padding-bottom:3px;align-self:flex-start;
  transition:border-color var(--dur-ui) var(--ease);}
.cp-email:hover{border-color:#fff;}
.cp-loc{font-size:14px;color:rgba(255,255,255,0.62);}
.cp-linkedin{display:inline-flex;align-items:center;gap:9px;margin-top:18px;align-self:flex-start;
  font-family:var(--font-head);font-weight:600;font-size:13.5px;color:#fff;text-decoration:none;
  padding:9px 15px 9px 13px;border:1px solid var(--on-ink-line);border-radius:var(--r-full);
  transition:border-color var(--dur-ui) var(--ease),background-color var(--dur-ui) var(--ease);}
.cp-linkedin:hover{border-color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.06);}
.cp-card-note{font-size:13.5px;line-height:1.55;color:rgba(255,255,255,0.6);
  margin-top:clamp(20px,2.4vw,28px);padding-top:clamp(18px,2.2vw,24px);border-top:1px solid var(--on-ink-line);}
.cp-reg{margin-top:clamp(18px,2.2vw,24px);display:flex;flex-direction:column;gap:15px;}
.cp-reg-item{display:flex;flex-direction:column;gap:4px;}
.cp-reg-k{font-family:var(--font-head);font-weight:600;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,0.45);}
.cp-reg-v{font-size:14px;color:rgba(255,255,255,0.85);}

/* =========================================================
   Pied de page
   ========================================================= */
.site-footer{background-color:var(--ink);
  background-image:url("../images/2af02060-267a-4d42-bb31-b37cc2a36068.jpg");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:var(--on-ink-2);padding-block:clamp(56px,7vw,88px);font-size:14px;position:relative;}
.site-footer a{color:var(--on-ink-2);text-decoration:none;}
.site-footer .footer-top{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--s-6);row-gap:clamp(22px,3vw,34px);}
.footer-logo{margin-right:auto;}
.footer-logo .brand-img{height:clamp(40px,4.4vw,52px);}
.footer-top .footer-social{order:1;}
.footer-top .footer-lang{order:1;}
.footer-social{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;
  border-radius:50%;border:1px solid var(--on-ink-line);color:var(--on-ink-2);margin-right:6px;
  transition:color var(--dur-ui) var(--ease),border-color var(--dur-ui) var(--ease),background-color var(--dur-ui) var(--ease);}
.footer-social:hover{color:#fff;border-color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.06);}
.footer-nav{order:2;flex-basis:100%;display:flex;flex-wrap:wrap;gap:clamp(18px,2.6vw,36px);}
.footer-nav a{font-family:var(--font-head);font-weight:500;color:var(--on-ink-1);
  background-image:linear-gradient(#ffffff,#ffffff);background-repeat:no-repeat;background-size:0% 1.5px;
  background-position:0 100%;transition:background-size var(--dur-ui) var(--ease);padding-bottom:2px;}
.footer-nav a:hover{background-size:100% 1.5px;}
.footer-lang{display:inline-flex;gap:2px;align-items:center;}
.footer-lang button{background:none;border:none;color:var(--on-ink-3);cursor:pointer;font-family:var(--font-head);
  font-weight:600;font-size:13px;padding:4px 7px;border-radius:var(--r-sm);}
.footer-lang button[aria-pressed="true"]{color:#fff;}
.footer-reg{margin-top:var(--s-8);padding-top:var(--s-6);border-top:1px solid var(--on-ink-line);
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5) var(--s-7);}
.footer-reg .k{color:var(--on-ink-3);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  font-family:var(--font-head);font-weight:600;}
.footer-reg .val{margin-top:6px;color:var(--on-ink-1);}

/* panneaux légaux dépliables */
.legal-panel{margin-top:var(--s-6);padding-top:var(--s-6);border-top:1px solid var(--on-ink-line);
  max-width:80ch;color:var(--on-ink-2);font-size:13.5px;line-height:1.65;}
.legal-panel[hidden]{display:none;}
.legal-panel p + p{margin-top:var(--s-4);}

/* barre inférieure : tout en ligne */
.footer-bottom{margin-top:var(--s-7);padding-top:var(--s-6);border-top:1px solid var(--on-ink-line);
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:12.5px;color:var(--on-ink-3);}
.footer-bottom .fb-sep{color:rgba(255,255,255,0.28);}
.footer-bottom .fb-link{background:none;border:0;cursor:pointer;font-family:var(--font-head);font-weight:600;
  font-size:12.5px;color:var(--on-ink-1);padding:0;white-space:nowrap;
  background-image:linear-gradient(#ffffff,#ffffff);background-repeat:no-repeat;background-size:0% 1.5px;
  background-position:0 100%;transition:background-size var(--dur-ui) var(--ease);}
.footer-bottom .fb-link:hover,.footer-bottom .fb-link[aria-expanded="true"]{background-size:100% 1.5px;color:#fff;}

/* =========================================================
   Reveal au scroll (désactivé sans JS / reduced-motion)
   ========================================================= */
.js .reveal{opacity:0;transform:translateY(14px);
  transition:opacity var(--dur-rev) var(--ease),transform var(--dur-rev) var(--ease);}
.js .reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1 !important;transform:none !important;transition:none;}
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;min-height:0;padding:0;}
  .hero-text{padding-left:var(--gutter);padding-right:var(--gutter);
    padding-top:calc(var(--nav-h) + clamp(28px,7vw,48px));padding-bottom:clamp(26px,5vw,42px);}
  .hero-badge{margin-bottom:20px;}
  .hero .sub{margin-top:18px;}
  .hero-actions{margin-top:24px;}
  .hero-media{min-height:clamp(280px,42vh,400px);order:2;
    border-radius:22px;margin:10px var(--gutter) 0 var(--gutter);}
  .why-x{grid-template-columns:1fr;gap:var(--s-7);}
  .why-stage{min-height:clamp(320px,76vw,440px);}
  .what-grid,.founder-grid,.contact-grid{grid-template-columns:1fr;}
  .what-lead,.cp-side{position:static;}
  .cols-4{grid-template-columns:repeat(2,1fr);gap:0 var(--s-6);}
  .portrait{max-width:420px;}
}
@media (max-width:1180px){
  .nav-inner{display:flex;justify-content:space-between;gap:var(--s-4);}
  .nav-toggle{display:inline-flex;}
  .nav-right .lang{display:none;}            /* la langue passe dans le menu */
  .nav-right .header-cta{display:none;}
  .nav-center{position:fixed;top:calc(var(--nav-h) + 16px);left:var(--gutter);right:var(--gutter);
    flex-direction:column;align-items:stretch;
    gap:0;background:var(--paper);border:1px solid var(--line);border-radius:20px;
    padding:6px clamp(18px,4vw,24px) clamp(16px,4vw,22px);
    transform:translateY(-10px) scale(.99);opacity:0;pointer-events:none;transform-origin:top center;
    transition:opacity var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease);
    box-shadow:0 26px 54px -26px rgba(21,23,27,0.55);}
  .nav-center.open{transform:none;opacity:1;pointer-events:auto;}
  .nav-link{padding:15px 2px;border-bottom:1px solid var(--line);font-size:16px;border-radius:0;color:var(--ink);}
  .nav-link::after{display:none;}
  .nav-link:hover{background:none;}
  .nav-center .btn{display:inline-flex;margin-top:18px;justify-content:center;}
  .nav-center .lang--menu{display:inline-flex;justify-content:center;gap:6px;margin-top:16px;padding-top:16px;
    border-top:1px solid var(--line);}
}
/* Tablette : #news passe en 2 colonnes (au lieu de 3) avant de stacker. */
@media (max-width:920px){
  .news-grid{grid-template-columns:repeat(2,1fr);}
}
/* Tablette : les chiffres clés passent en 2×2 (au lieu de 4 tassés). */
@media (max-width:980px){
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:0;}
  .stats .stat{padding:clamp(14px,2.6vw,22px);border-left:1px solid var(--line);}
  .stats .stat:first-child{padding-left:clamp(14px,2.6vw,22px);}
  .stats .stat:nth-child(1),.stats .stat:nth-child(2){border-bottom:1px solid var(--line);}
  .stats .stat:nth-child(1),.stats .stat:nth-child(3){border-left:0;padding-left:0;}
}
@media (max-width:640px){
  .why-row{grid-template-columns:1fr;gap:var(--s-3);}
  .why-row .wr-idx{padding-top:0;}
  .news-grid{grid-template-columns:1fr;}
  .exp-cta{align-items:center;text-align:center;}
  /* Philosophie : icône au-dessus du texte, alignée à gauche, avec un peu d'air dessous. */
  .phil-row{grid-template-columns:1fr;gap:6px;}
  .phil-rn{margin:0 0 6px;justify-self:start;justify-content:flex-start;}
  /* « Ce que nous faisons » : icône au-dessus du texte, à gauche. */
  .what-points .wp{grid-template-columns:1fr;gap:12px;}
  /* Footer mobile : liens empilés en bloc, infos légales en 1 colonne, barre du bas empilée. */
  .footer-nav{flex-direction:column;align-items:flex-start;gap:13px;}
  .footer-reg{grid-template-columns:1fr;gap:var(--s-5);}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:9px;}
  .footer-bottom .fb-sep{display:none;}
}
@media (max-width:560px){
  .cards{grid-template-columns:1fr;}
  .field.row2{grid-template-columns:1fr;}
}

/* ============================================================
   Pages internes Miravest : articles, pages, listes
   (ajout thème — hors maquette d'origine)
   ============================================================ */
.article-main{max-width:760px;margin:0 auto;padding:calc(var(--nav-h) + clamp(40px,7vw,96px)) var(--gutter) clamp(64px,9vw,120px);}
.article-back{display:inline-block;margin-bottom:var(--s-6);color:var(--ink-2);text-decoration:none;font-size:var(--fs-small);}
.article-back:hover{color:var(--ink);}
.article-meta{display:flex;gap:var(--s-4);align-items:center;color:var(--ink-3);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s-4);}
.article-cat{color:var(--ink);font-weight:600;}
.article-title{font-family:var(--font-head);font-size:var(--fs-h2);line-height:var(--lh-head);letter-spacing:-0.02em;font-weight:500;margin:0 0 var(--s-6);}
.article-cover{margin:0 0 var(--s-7);border-radius:var(--r-card);overflow:hidden;}
.article-cover img{width:100%;height:auto;display:block;}
.article-body{font-family:var(--font-body);font-size:var(--fs-lead);line-height:var(--lh-body);color:var(--ink-2);}
.article-body > * + *{margin-top:var(--s-5);}
.article-body h2,.article-body h3{font-family:var(--font-head);color:var(--ink);line-height:var(--lh-head);margin-top:var(--s-7);}
.article-body a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}
.article-body img{max-width:100%;height:auto;border-radius:var(--r-card);}
.article-nav{display:flex;justify-content:space-between;gap:var(--s-4);margin-top:var(--s-8);padding-top:var(--s-6);border-top:1px solid var(--line-2);font-size:var(--fs-small);}
.article-nav a{color:var(--ink-2);text-decoration:none;}
.article-nav a:hover{color:var(--ink);}
.article-nav__next{margin-left:auto;text-align:right;}

.list-main{max-width:var(--max-w);margin:0 auto;padding:calc(var(--nav-h) + clamp(40px,7vw,96px)) var(--gutter) clamp(64px,9vw,120px);}
.list-head{margin-bottom:var(--s-7);}
.list-head h1{font-family:var(--font-head);font-size:var(--fs-h2);font-weight:500;letter-spacing:-0.02em;}
.list-head .list-sub{color:var(--ink-2);margin-top:var(--s-3);}
.post-list{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.post-item{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-6);border:1px solid var(--line-2);border-radius:var(--r-card);background:var(--paper);text-decoration:none;transition:border-color var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease);}
.post-item:hover{border-color:var(--ink);transform:translateY(-2px);}
.post-item .pi-meta{color:var(--ink-3);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.08em;}
.post-item .pi-title{font-family:var(--font-head);font-size:var(--fs-h3);color:var(--ink);line-height:var(--lh-head);font-weight:500;}
.post-item .pi-ex{color:var(--ink-2);font-size:var(--fs-body);line-height:1.5;}
.list-empty{color:var(--ink-2);}

/* ============================================================
   Article seul (single.php) — langage visuel de la maquette
   ============================================================ */
.article-page{padding-top:0;}
.article-wrap{max-width:820px;margin:0 auto;padding-inline:var(--gutter);}
.article-hero{background:var(--paper-2);border-bottom:1px solid var(--line-2);padding-block:calc(var(--nav-h) + clamp(48px,7vw,104px)) clamp(36px,5vw,60px);}
.article-hero .article-back{display:inline-block;margin-bottom:var(--s-6);}
.article-hero .eyebrow{margin-bottom:var(--s-5);}
.article-h1{font-family:var(--font-head);font-weight:500;font-size:clamp(34px,5vw,64px);line-height:1.05;letter-spacing:-0.025em;max-width:20ch;text-wrap:balance;margin:0;}
.article-byline{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-6);color:var(--ink-3);font-size:var(--fs-small);}
.article-byline .dot{opacity:.5;}
.article-figure{margin:clamp(40px,6vw,72px) 0 0;border-radius:var(--r-card);overflow:hidden;}
.article-figure img{width:100%;height:auto;display:block;}
.article-prose{font-family:var(--font-body);font-size:var(--fs-lead);line-height:var(--lh-body);color:var(--ink-2);padding-block:clamp(40px,6vw,72px);}
.article-prose > * + *{margin-top:var(--s-5);}
.article-prose h2{font-family:var(--font-head);font-weight:600;color:var(--ink);font-size:var(--fs-h3);line-height:var(--lh-head);margin-top:var(--s-7);}
.article-prose h3{font-family:var(--font-head);font-weight:600;color:var(--ink);margin-top:var(--s-6);}
.article-prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}
.article-prose blockquote{border-left:2px solid var(--ink);margin:var(--s-6) 0;padding-left:var(--s-5);font-family:var(--font-display);font-style:italic;color:var(--ink);}
.article-prose img{max-width:100%;height:auto;border-radius:var(--r-card);}
.article-prose ul,.article-prose ol{padding-left:1.25em;}
.article-rule{border:0;border-top:1px solid var(--line-2);margin:0;}
.article-nav{display:flex;justify-content:space-between;gap:var(--s-5);padding-block:var(--s-6);font-size:var(--fs-small);}
.article-nav a{color:var(--ink-2);text-decoration:none;font-family:var(--font-head);font-weight:600;}
.article-nav a:hover{color:var(--ink);}
.article-nav__next{margin-left:auto;text-align:right;}
.article-cta{background:var(--ink);color:#fff;border-radius:var(--r-card);padding:clamp(32px,5vw,56px);margin-block:var(--s-6) clamp(48px,7vw,96px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-5);}
.article-cta h2{font-family:var(--font-display);font-weight:500;font-size:clamp(26px,3vw,40px);line-height:1.1;margin:0;max-width:18ch;color:#fff;}
.article-cta .btn-primary{background:#fff;color:var(--ink);}
.article-cta .btn-primary .btn-ic{background:var(--ink);color:#fff;}
@media(max-width:760px){.article-cta{flex-direction:column;align-items:flex-start;}}

/* ============================================================
   Aptos — corps + titres (self-hostée). Chiffres/accents serif = Newsreader.
   ============================================================ */
@font-face{font-family:'Aptos';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/aptos-400.woff2") format('woff2');}
@font-face{font-family:'Aptos';font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/aptos-400-italic.woff2") format('woff2');}
@font-face{font-family:'Aptos';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/aptos-600.woff2") format('woff2');}
@font-face{font-family:'Aptos';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/aptos-600.woff2") format('woff2');}
@font-face{font-family:'Aptos';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/aptos-700.woff2") format('woff2');}

/* ============================================================
   Ajustements demandés (lot)
   ============================================================ */

/* 1) Cards « Pourquoi » : le titre occupe toute la largeur de la card */
.wi-top{width:100%;}
.wi-title{flex:1 1 auto;}

/* 2) Newsletter : champ e-mail seul et plus large */
.ns-form{width:100%;}
.ns-form input[type="email"]{flex:1 1 340px;min-width:240px;}

/* 3) FAQ : bande CTA en fin de section */
.faq-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);flex-wrap:wrap;
  margin-top:clamp(32px,4vw,52px);}
.faq-cta__txt{font-family:var(--font-head);font-weight:500;font-size:var(--fs-h3);color:var(--ink);letter-spacing:-0.01em;}

/* Carte Google Maps stylisée N&B sous le contact (embed sans clé API) */
.contact-map{margin-top:clamp(28px,3.5vw,48px);border:1px solid var(--line-2);border-radius:var(--r-card);overflow:hidden;line-height:0;}
.contact-map iframe{display:block;width:100%;height:380px;border:0;filter:grayscale(1) contrast(1.05) opacity(.92);transition:filter var(--dur-ui) var(--ease);}
.contact-map:hover iframe{filter:grayscale(0) contrast(1) opacity(1);}

/* 4) Cards « Expertise » cliquables -> contact prérempli */
.card--link{cursor:pointer;transition:transform var(--dur-ui) var(--ease),box-shadow var(--dur-ui) var(--ease),border-color var(--dur-ui) var(--ease);}
.card--link:hover{transform:translateY(-3px);}
.card--link:focus-visible{outline:3px solid var(--ink);outline-offset:3px;}

/* 5) Titres de section : remplissage mot à mot au scroll (cascade stylée) */
.fill-words .hw{
  display:inline-block;
  color:var(--ink-3);
  opacity:.32;
  filter:blur(3px);
  transform:translateY(0.12em);
  transition:color .6s var(--ease),opacity .6s var(--ease),filter .6s var(--ease),transform .6s var(--ease);
  will-change:opacity,filter,transform;
}
.fill-words .hw.lit{
  color:var(--ink);
  opacity:1;
  filter:blur(0);
  transform:none;
}
@media (prefers-reduced-motion:reduce){
  .fill-words .hw{opacity:1;filter:none;transform:none;color:var(--ink);transition:none;}
}


/* 8) Actualité : bouton « Charger plus » (pagination AJAX) */
.news-more-wrap{display:flex;justify-content:center;margin-top:clamp(28px,3.5vw,44px);}
.news-more{font-family:var(--font-head);}
.news-more.is-loading{opacity:.6;pointer-events:none;}

/* ============================================================
   Article (single.php) — d'après le modèle Article.html
   ============================================================ */
:root{--measure:68ch;}


/* Hero article */
.art{padding-top:calc(var(--nav-h) + clamp(40px,7vw,88px));padding-bottom:clamp(56px,7vw,96px);}
.art-back{font-family:var(--font-head);font-weight:600;font-size:13.5px;letter-spacing:.04em;color:var(--ink-3);
  text-decoration:none;display:inline-flex;align-items:center;gap:.5em;transition:color var(--dur-ui) var(--ease);}
.art-back:hover{color:var(--ink);}
.art-head{max-width:none;width:100%;margin-top:clamp(28px,4vw,44px);}
.art-cat{font-family:var(--font-head);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-full);padding:7px 14px;display:inline-block;}
.art-title{font-family:var(--font-display);font-size:clamp(36px,5.4vw,76px);line-height:1.0;letter-spacing:-0.03em;margin:24px 0 0;font-weight:500;}
.art-standfirst{max-width:60ch;font-size:var(--fs-lead);line-height:1.5;color:var(--ink-2);margin-top:clamp(20px,2.5vw,30px);}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:clamp(24px,3vw,34px);
  padding-top:20px;border-top:1px solid var(--line);font-family:var(--font-head);font-size:13.5px;color:var(--ink-3);}
.am-avatar{width:66px;height:66px;border-radius:50%;object-fit:cover;object-position:50% 6%;flex:none;
  border:1px solid var(--line);}
.am-by{display:flex;flex-direction:column;justify-content:center;line-height:1.25;margin-right:2px;}
.art-meta .by{color:var(--ink);font-weight:600;font-size:15px;}
.am-role{color:var(--ink-3);font-size:12.5px;}
.am-dl{display:inline-flex;align-items:center;gap:10px;}
.am-dl time{color:var(--ink-2);}
.art-meta .dot{color:var(--line-2);}
.am-by + .am-dl::before{content:"";width:1px;height:26px;background:var(--line);margin-right:8px;}

/* Corps 2 colonnes */
.art-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(40px,5vw,72px);align-items:start;margin-top:clamp(40px,5vw,64px);}
.art-body .prose{margin-top:0;max-width:var(--measure);font-family:var(--font-body);font-size:var(--fs-lead);line-height:var(--lh-body);color:var(--ink-2);}
.art-body .prose > * + *{margin-top:1.35em;}
.art-body .prose .lead{font-size:calc(var(--fs-lead) + 2px);color:var(--ink);line-height:1.5;}
.art-body .prose h2{font-family:var(--font-head);font-weight:600;color:var(--ink);font-size:clamp(22px,2.4vw,30px);line-height:1.2;letter-spacing:-0.01em;margin-top:1.7em;}
.art-body .prose h3{font-family:var(--font-head);font-weight:600;color:var(--ink);margin-top:1.4em;}
.art-body .prose strong{color:var(--ink);font-weight:600;}
.art-body .prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}
.art-body .prose img{max-width:100%;height:auto;border-radius:var(--r-card);}
.art-body .prose > ul,.art-body .prose > ol{margin:1.35em 0;padding-left:0;list-style:none;}
.art-body .prose > ul li{position:relative;padding-left:26px;line-height:1.55;}
.art-body .prose > ul li + li{margin-top:11px;}
.art-body .prose > ul li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--ink);}

/* Sidebar */
.art-side{position:sticky;top:var(--sticky-off);display:flex;flex-direction:column;gap:20px;}
.side-card{border:1px solid var(--line);border-radius:var(--r-card);padding:24px;background:var(--paper);}
.side-author{background:var(--paper-2);}
.sa-img{display:block;width:64px;height:64px;border-radius:var(--r-full);overflow:hidden;background:var(--paper-3);}
.sa-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;}
.sa-role{font-family:var(--font-head);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:16px;}
.sa-name{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:-0.01em;margin-top:4px;}
.sa-text{font-size:13.5px;color:var(--ink-2);line-height:1.55;margin-top:12px;}
.side-author .btn{margin-top:18px;width:100%;}
.sm-title{font-family:var(--font-head);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}
.sm-item{display:block;text-decoration:none;color:inherit;padding:16px 0;border-top:1px solid var(--line);}
.sm-item:first-of-type{margin-top:6px;}
.sm-cat{font-family:var(--font-head);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);}
.sm-t{display:block;font-family:var(--font-display);font-weight:500;font-size:17px;line-height:1.25;letter-spacing:-0.01em;margin-top:8px;color:var(--ink);transition:opacity var(--dur-ui) var(--ease);}
.sm-item:hover .sm-t{opacity:.6;}
@media (max-width:900px){.art-body{grid-template-columns:1fr;}.art-side{position:static;}}

/* Éléments éditoriaux dans la prose */
.pullquote{max-width:var(--measure);margin:clamp(40px,5vw,64px) 0;padding-left:clamp(20px,3vw,32px);border-left:2px solid var(--ink);}
.pullquote p{font-family:var(--font-display);font-weight:500;font-size:clamp(24px,3vw,34px);line-height:1.2;letter-spacing:-0.015em;color:var(--ink);}
.pullquote em{font-style:italic;}
.keypoints{max-width:var(--measure);margin:clamp(36px,4vw,52px) 0;border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(24px,3vw,36px);background:var(--paper-2);}
.keypoints h3{font-family:var(--font-head);font-weight:600;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}
.keypoints ul{margin:18px 0 0;padding:0;list-style:none;}
.keypoints li{position:relative;padding-left:26px;color:var(--ink);line-height:1.55;font-size:var(--fs-small);}
.keypoints li + li{margin-top:12px;}
.keypoints li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--ink);}

/* ============================================================
   Blocs Gutenberg dans les articles (.prose) — édition facile côté client
   ============================================================ */
/* Premier paragraphe = chapô automatique */
.art-body .prose > p:first-of-type{font-size:calc(var(--fs-lead) + 2px);color:var(--ink);line-height:1.5;}
/* Intertitres */
.art-body .prose h2.wp-block-heading{font-family:var(--font-head);font-weight:600;color:var(--ink);font-size:clamp(22px,2.4vw,30px);line-height:1.2;letter-spacing:-0.01em;margin-top:1.7em;}
.art-body .prose h3.wp-block-heading{font-family:var(--font-head);font-weight:600;color:var(--ink);font-size:clamp(18px,1.6vw,22px);margin-top:1.4em;}
/* Citation (quote) */
.art-body .prose .wp-block-quote{margin:clamp(36px,4.5vw,60px) 0;padding-left:clamp(20px,3vw,32px);border-left:2px solid var(--ink);}
.art-body .prose .wp-block-quote p{font-family:var(--font-display);font-weight:500;font-size:clamp(22px,2.6vw,30px);line-height:1.25;letter-spacing:-0.015em;color:var(--ink);}
.art-body .prose .wp-block-quote cite,.art-body .prose .wp-block-quote .wp-block-quote__citation{display:block;margin-top:.7em;font-family:var(--font-head);font-style:normal;font-weight:600;font-size:13px;letter-spacing:.04em;color:var(--ink-3);}
/* Citation mise en exergue (pullquote) */
.art-body .prose .wp-block-pullquote{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(28px,4vw,48px) 0;margin:clamp(40px,5vw,64px) 0;text-align:center;}
.art-body .prose .wp-block-pullquote blockquote{margin:0;}
.art-body .prose .wp-block-pullquote p{font-family:var(--font-display);font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:1.15;letter-spacing:-0.02em;color:var(--ink);}
.art-body .prose .wp-block-pullquote cite{font-family:var(--font-head);font-style:normal;font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em;}
/* Listes (à puces + numérotées) */
.art-body .prose ul.wp-block-list{margin:1.35em 0;padding-left:0;list-style:none;}
.art-body .prose ul.wp-block-list li{position:relative;padding-left:26px;line-height:1.55;}
.art-body .prose ul.wp-block-list li + li{margin-top:11px;}
.art-body .prose ul.wp-block-list li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--ink);}
.art-body .prose ol.wp-block-list{margin:1.35em 0;padding-left:1.3em;list-style:decimal;}
.art-body .prose ol.wp-block-list li{padding-left:6px;line-height:1.55;}
.art-body .prose ol.wp-block-list li + li{margin-top:11px;}
/* Image */
.art-body .prose .wp-block-image{margin:clamp(32px,4vw,52px) 0;}
.art-body .prose .wp-block-image img{width:100%;height:auto;border-radius:var(--r-card);display:block;}
.art-body .prose .wp-block-image figcaption{font-family:var(--font-head);font-size:13px;color:var(--ink-3);margin-top:10px;text-align:center;}
/* Séparateur */
.art-body .prose .wp-block-separator{border:0;border-top:1px solid var(--line-2);margin:clamp(36px,4vw,52px) auto;width:120px;opacity:1;}
/* Tableau */
.art-body .prose .wp-block-table{margin:clamp(32px,4vw,48px) 0;overflow-x:auto;}
.art-body .prose .wp-block-table table{width:100%;border-collapse:collapse;font-size:var(--fs-small);}
.art-body .prose .wp-block-table td,.art-body .prose .wp-block-table th{border:1px solid var(--line-2);padding:12px 14px;text-align:left;}
.art-body .prose .wp-block-table th{background:var(--paper-2);font-family:var(--font-head);color:var(--ink);}
/* Bouton */
.art-body .prose .wp-block-buttons{margin:clamp(28px,3vw,40px) 0;display:flex;gap:12px;flex-wrap:wrap;}
.art-body .prose .wp-block-button__link{background:var(--ink);color:#fff;border-radius:var(--r-full);padding:13px 26px;font-family:var(--font-head);font-weight:600;font-size:15px;text-decoration:none;display:inline-block;}
.art-body .prose .wp-block-button__link:hover{background:#000;}
/* Image à la une éventuelle en tête d'article */
.art-cover{margin:clamp(28px,3.5vw,44px) 0 0;border-radius:var(--r-card);overflow:hidden;}
.art-cover img{width:100%;height:auto;display:block;}


/* ============================================================
   Apparitions sobres : léger zoom des portraits à la révélation
   ============================================================ */
.portrait .portrait-img,.hero-media .hero-portrait{transition:transform 1.2s var(--ease);}
.reveal .portrait-img,.hero-media.reveal .hero-portrait{transform:scale(1.07);}
.reveal.in .portrait-img,.hero-media.reveal.in .hero-portrait{transform:none;}
@media (prefers-reduced-motion:reduce){
  .portrait .portrait-img,.hero-media .hero-portrait{transform:none !important;transition:none !important;}
}

/* Pages (page.php) : blocs Gutenberg dans .article-body */
.article-body h2{font-size:clamp(20px,2.2vw,27px);font-weight:600;}
.article-body h3{font-size:clamp(18px,1.6vw,21px);font-weight:600;}
.article-body ul.wp-block-list{margin:var(--s-4) 0;padding-left:0;list-style:none;}
.article-body ul.wp-block-list li{position:relative;padding-left:24px;line-height:1.55;}
.article-body ul.wp-block-list li + li{margin-top:9px;}
.article-body ul.wp-block-list li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--ink);}
.article-body ol.wp-block-list{margin:var(--s-4) 0;padding-left:1.3em;}

/* =========================================================
   Pages légales / pages de contenu : présentation soignée
   ========================================================= */
.article-main--page{max-width:790px;}
.article-main--page .article-title{font-family:var(--font-display);font-weight:500;
  font-size:clamp(34px,5vw,58px);letter-spacing:-0.015em;line-height:1.05;
  margin-bottom:var(--s-6);padding-bottom:var(--s-6);border-bottom:1px solid var(--line);}
.article-main--page .article-body{font-size:clamp(15px,1.1vw,16.5px);line-height:1.72;}
.article-main--page .article-body > p:first-child{font-size:clamp(17px,1.5vw,20px);
  line-height:1.6;color:var(--ink);}
.article-main--page .article-body h2{font-family:var(--font-head);font-weight:600;
  font-size:clamp(18px,1.7vw,23px);color:var(--ink);letter-spacing:-0.01em;
  margin-top:var(--s-8);}
.article-main--page .article-body h2::before{content:"";display:block;width:30px;height:2px;
  background:var(--vert);margin-bottom:var(--s-4);border-radius:2px;}
.article-main--page .article-body p{color:var(--ink-2);}
.article-main--page .article-body a{color:var(--ink);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;}
.article-main--page .article-body a:hover{color:var(--vert);}

/* ============================================================
   Bascule de langue pour le contenu hors dictionnaire (pages légales)
   ============================================================ */
.lang-en{display:none;}
html[lang="en"] .lang-en{display:block;}
html[lang="en"] .lang-fr{display:none;}

/* =========================================================
   Page Contact dédiée (page-contact.php)
   Réutilise .section-head/.eyebrow/.lede/.contact-grid/.coords/
   .contact-map/.cards/.card/.faq-list/.founder-grid/.portrait.
   ========================================================= */
.contact-page .cp-hero{padding-top:calc(var(--nav-h) + clamp(40px,7vw,90px));padding-bottom:clamp(24px,3.5vw,44px);}
.contact-page .cp-hero .eyebrow{margin-bottom:var(--s-4);}
.contact-page .cp-hero h1{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,6vw,76px);line-height:1.02;letter-spacing:-0.01em;}
.contact-page .cp-hero .lede{margin-top:var(--s-4);}
.cp-intro{max-width:70ch;margin-top:var(--s-5);color:var(--ink-2);}
.cp-form-sec{padding-top:clamp(12px,2.4vw,28px);}
.cp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.6vw,32px);margin-top:clamp(28px,4vw,52px);}
.cp-item{padding:clamp(22px,2.4vw,34px);border:1px solid var(--line);border-radius:var(--r-card);background:var(--paper);}
.cp-item .cp-n{font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:.12em;color:var(--vert);}
.cp-item h3{font-family:var(--font-head);font-weight:600;font-size:clamp(18px,1.5vw,22px);margin-top:var(--s-3);}
.cp-item p{color:var(--ink-2);margin-top:var(--s-3);}
@media (max-width:760px){ .cp-grid{grid-template-columns:1fr;} }
