/* Polices hébergées sur le site (et non chargées depuis Google) : aucune adresse IP
   de visiteur n'est transmise à un tiers pour afficher le texte. */
/* latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/jost-normal-latin-ext.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: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/jost-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jost-normal-latin-ext.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: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jost-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jost-normal-latin-ext.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: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jost-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/jost-normal-latin-ext.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: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/jost-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-italic-latin-ext.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: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-italic-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/playfair-display-italic-latin-ext.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: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/playfair-display-italic-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-normal-latin-ext.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: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/playfair-display-normal-latin-ext.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: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/playfair-display-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/playfair-display-normal-latin-ext.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: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/playfair-display-normal-latin.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{
  /* Gamme entièrement bleue : un bleu profond presque noir en couleur
     principale, un bleu acier en second plan, des fonds bleu brume, et le
     champagne en seul rehaut chaud. Le contraste entre bandeaux se joue
     d'abord en valeur — c'est ce qui distingue une gamme sobre d'une gamme bavarde. */
  --bg:#FCFDFE;
  --paper:#EEF2F7;
  --tint-a:#E7EDF5;      /* bleu brume */
  --tint-b:#DDE6F1;      /* bleu ardoise */
  --ink:#0E1B2B;
  --ink-soft:#4C5A63;
  --accent:#0B2A4A;      /* bleu profond */
  --accent-2:#24527F;    /* bleu acier, second plan */
  --line:#DAE2EC;
  --danger:#8C4A3A;
  --footer-bg:#081626;
  --footer-ink:#EEF2F7;
  --footer-soft:#9DAABB;
  --footer-line:rgba(255,255,255,.12);
  --footer-accent:#C1A47A; /* champagne, en rehaut rare */
  --gold:#C1A47A;
}
/* Thème toujours clair, y compris quand le téléphone est en mode sombre :
   plusieurs fonds de section (.band.white, cartes, etc.) sont volontairement
   fixés en clair pour l'identité visuelle du site, alors que le mode sombre
   automatique ne repeint que le texte — résultat : texte clair sur fond clair,
   illisible sur mobile. On fige donc le thème clair plutôt que de laisser le
   système en décider. */

*{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  background:
    radial-gradient(1400px 700px at 50% -12%, #FCFDFE 0%, #FAFBFD 55%, #F2F5F9 100%);
  color:var(--ink); font-family:'Playfair Display',Georgia,serif;
}
a{ color:inherit; }
img{ max-width:100%; }

@media (prefers-reduced-motion: no-preference){ html{ scroll-behavior:smooth; } }

.wrap{ max-width:880px; margin:0 auto; padding-inline:24px; padding-block:56px; position:relative; z-index:1; }
.wrap.wide{ max-width:1160px; } /* aligné sur le menu et le bandeau d'en-tête */
/* Dans les colonnes de lecture (880 px), le titre principal s'étend jusqu'au
   bord droit du menu : il occupe toute la largeur de l'écran sans allonger
   les lignes du texte courant. Sur téléphone, l'extension vaut zéro. */
.wrap:not(.wide) > h1{ margin-right:calc(-1 * max(0px, (min(100vw, 1160px) - 880px) / 2)); }

/* Full-width bands so sections span the whole viewport while scrolling */
.band{ width:100%; position:relative; overflow:hidden; }
.band-inner{ max-width:1160px; margin:0 auto; padding:64px 24px; position:relative; z-index:1; }
.band.white{
  background-image:
    radial-gradient(circle, rgba(14,27,43,.028) 1px, transparent 1.6px),
    linear-gradient(180deg, #FCFDFE 0%, #F7F9FC 100%);
  background-size:52px 52px, 100% 100%;
  background-repeat:repeat, no-repeat;
}
.band.tint-a{
  background-image:
    radial-gradient(circle, rgba(14,27,43,.034) 1px, transparent 1.6px),
    linear-gradient(180deg, #EDF2F8 0%, #E3EAF3 100%);
  background-size:52px 52px, 100% 100%;
  background-repeat:repeat, no-repeat;
}
.band.tint-b{
  background-image:
    radial-gradient(circle, rgba(14,27,43,.04) 1px, transparent 1.6px),
    linear-gradient(180deg, #E0E8F2 0%, #D4DFEC 100%);
  background-size:52px 52px, 100% 100%;
  background-repeat:repeat, no-repeat;
}
.band.deep{
  background-image:
    radial-gradient(circle, rgba(255,255,255,.032) 1px, transparent 1.6px),
    linear-gradient(170deg, #10233D 0%, #081626 60%, #10233D 100%);
  background-size:52px 52px, 100% 100%;
  background-repeat:repeat, no-repeat;
  color:var(--footer-ink);
}

/* Accents triangulaires sur les flancs — seule forme géométrique conservée,
   déclinée en une valeur unique sur toute la hauteur du bandeau. */
.band.white::before, .band.white::after,
.band.tint-a::before, .band.tint-a::after,
.band.tint-b::before, .band.tint-b::after,
.band.deep::before, .band.deep::after{
  content:""; position:absolute; top:-8%; width:300px; height:116%;
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%);
  pointer-events:none;
}
.band.white::before, .band.tint-a::before, .band.tint-b::before{ left:-80px; }
.band.white::after,  .band.tint-a::after,  .band.tint-b::after{ right:-80px; transform:scaleX(-1); }
.band.deep::before{ left:-80px; }
.band.deep::after{ right:-80px; transform:scaleX(-1); }

.band.white::before, .band.white::after{ background:linear-gradient(165deg, rgba(14,27,43,.05), rgba(14,27,43,0)); }
.band.tint-a::before, .band.tint-a::after{ background:linear-gradient(165deg, rgba(14,27,43,.06), rgba(14,27,43,0)); }
.band.tint-b::before, .band.tint-b::after{ background:linear-gradient(165deg, rgba(14,27,43,.07), rgba(14,27,43,0)); }
.band.deep::before, .band.deep::after{ background:linear-gradient(165deg, rgba(193,164,122,.13), rgba(193,164,122,0)); }


header.site-nav{
  position:sticky; top:0; z-index:40;
  background:var(--bg); border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1160px; margin:0 auto; padding:18px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.brand{ display:inline-flex; align-items:center; gap:12px; font-family:'Jost',sans-serif; font-weight:400; font-size:.95rem; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; color:var(--ink); }
.brand-mark{
  width:28px; height:28px; border-radius:6px; background:var(--ink); color:#C79A5E;
  display:inline-flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:.95rem; flex-shrink:0;
}
.brand-mark svg{ width:100%; height:100%; display:block; }
.nav-links{ display:flex; gap:24px; font-family:'Jost',sans-serif; font-weight:400; font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; white-space:nowrap; flex-wrap:wrap; }
.nav-links a{ text-decoration:none; color:var(--ink-soft); border-bottom:1px solid transparent; padding-bottom:4px; transition:color .2s ease, border-color .2s ease; }
.nav-links a:hover, .nav-links a.active{ color:var(--ink); border-color:var(--accent); }

/* Hero */
.hero-band{
  border-bottom:1px solid var(--line); background:#FCFDFE;
  position:relative; overflow:hidden;
}
.hero-band::before, .hero-band::after{
  content:""; position:absolute; top:-8%; width:300px; height:116%; pointer-events:none;
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%);
  background:linear-gradient(165deg, rgba(14,27,43,.05), rgba(14,27,43,0));
}
.hero-band::before{ left:-80px; }
.hero-band::after{ right:-80px; transform:scaleX(-1); }
.hero-inner{
  max-width:1160px; margin:0 auto; padding:64px 24px 68px; position:relative; z-index:1;
  display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;
}
.hero-visual{
  aspect-ratio:1/1; border:1.5px solid var(--ink); border-radius:16px; overflow:hidden;
  background:#FFFFFF; display:flex; align-items:center; justify-content:center;
}
.hero-visual svg{ width:100%; height:100%; display:block; }
.hero-visual .art-plate{ fill:var(--accent-2); }
.hero-visual .art-ring{ stroke:rgba(255,255,255,.32); fill:none; }
.hero-visual .art-ring-inner{ stroke:rgba(255,255,255,.22); fill:none; }
.hero-visual .art-tick{ stroke:rgba(255,255,255,.24); stroke-width:1; }
.hero-visual .art-tick-major{ stroke:var(--gold); stroke-width:1.4; opacity:.9; }
.hero-visual .art-spoke{ stroke:var(--gold); stroke-width:1.4; stroke-linecap:round; opacity:.9; }
.hero-visual .art-spoke-head{ fill:var(--gold); opacity:.95; }
.hero-visual .art-medallion{ stroke:var(--gold); fill:none; opacity:.55; }
.hero-visual .art-flourish{ stroke:var(--gold); fill:none; stroke-width:1.1; opacity:.8; }
.hero-visual .art-gold-a{
  fill:var(--gold); stroke:#F1D9AE; stroke-width:.6; paint-order:stroke;
  font-family:'Playfair Display',serif; font-style:italic; font-weight:500;
  font-size:150px; letter-spacing:-.01em;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));
}
.hero-visual .art-needle{ transform-box:fill-box; transform-origin:center; transition:transform .6s cubic-bezier(.34,1.56,.64,1); }
.hero-visual .art-needle-n{ fill:var(--gold); opacity:.32; }
.hero-visual .art-needle-s{ fill:#F1D9AE; opacity:.22; }
.hero-visual .art-needle-e{ fill:var(--gold); opacity:.28; }
.hero-visual .art-needle-w{ fill:#F1D9AE; opacity:.2; }
.hero-visual .art-needle-pivot{ fill:#0E1B2B; stroke:var(--gold); stroke-width:1; opacity:.7; }
.hero-visual.credentials-card{
  aspect-ratio:auto; flex-direction:column; align-items:stretch; justify-content:center;
  background:linear-gradient(160deg, #FCFDFE 0%, #F6F8FB 100%);
  padding:8px 28px;
}
.cred-row{ display:flex; flex-direction:column; gap:4px; padding-block:16px; border-top:1px solid var(--line); }
.cred-row:first-child{ border-top:none; }
.cred-label{ font-family:'Jost',sans-serif; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--accent); }
.cred-value{ font-size:.95rem; color:var(--ink); }
@media (max-width:820px){
  .hero-inner{ grid-template-columns:1fr; padding-block:44px 48px; }
  .hero-visual{ max-width:320px; margin-inline:auto; }
  .band-inner{ padding-block:48px; }
}

/* Photo de profil (a-propos) */
.profile-photo{
  width:104px; height:104px; border-radius:50%; overflow:hidden;
  border:1px solid var(--line); box-shadow:0 1px 2px rgba(14,27,43,.06);
  margin:0 0 20px;
}
.profile-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Stats band */
.stats-band{ border-bottom:1px solid var(--line); background:linear-gradient(180deg, #FCFDFE 0%, #F7F9FC 100%); }
.stats-inner{
  max-width:1160px; margin:0 auto; padding:30px 24px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px;
}
.stat-item{ display:flex; flex-direction:column; gap:6px; }
.stat-label{ font-family:'Jost',sans-serif; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--accent); }
.stat-value{ font-size:.93rem; color:var(--ink); line-height:1.4; }

.section-band{ background:linear-gradient(180deg, #FCFDFE 0%, #F7F9FC 100%); border-bottom:1px solid var(--line); }

.btn-row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:4px; }
.btn-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:'Jost',sans-serif; font-weight:600; font-size:13px; letter-spacing:.05em; text-transform:uppercase;
  text-decoration:none; color:var(--ink); background:transparent; border:1px solid var(--ink);
  padding:13px 21px; border-radius:2px; transition:background .18s ease, color .18s ease;
}
.btn-ghost:hover{ background:var(--ink); color:var(--bg); }

.quote-block{ border-left:3px solid var(--accent-2); padding-inline-start:24px; margin:8px 0 28px; }
.quote-block p{ font-family:'Playfair Display',serif; font-style:italic; font-weight:500; font-size:1.3rem; line-height:1.5; color:var(--ink); margin:0; }
.quote-block cite{ font-family:'Jost',sans-serif; font-weight:600; font-style:normal; font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-top:14px; }

/* Pourquoi / Valeurs */
.why-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:36px; margin-bottom:8px; }
.why-item{ display:flex; flex-direction:column; gap:10px; }
.item-head{ display:flex; align-items:center; gap:16px; }
.why-num{ font-family:'Playfair Display',serif; font-style:italic; font-weight:500; font-size:2.2rem; color:var(--accent); line-height:1; flex-shrink:0; }
.why-item h3{ margin:0; font-size:1.3rem; line-height:1.15; }
.why-item p{ margin:0; font-size:1.02rem; }

.values-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; }
.values-list li{ display:flex; gap:22px; padding-block:20px; border-top:1px solid var(--line); align-items:baseline; flex-wrap:wrap; }
.values-list li:last-child{ border-bottom:1px solid var(--line); }
.value-label{ font-family:'Jost',sans-serif; font-weight:700; font-size:.92rem; text-transform:uppercase; letter-spacing:.06em; color:var(--accent-2); min-width:170px; }
.value-desc{ color:var(--ink-soft); font-size:1.03rem; }

.eyebrow{
  font-family:'Jost',sans-serif; font-weight:600; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent); display:flex; align-items:center; gap:10px; margin-bottom:28px; flex-wrap:wrap;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--accent); display:inline-block; }
.reading-time{ color:var(--ink-soft); font-weight:600; }
.reading-time::before{ content:"·"; margin-right:10px; color:var(--line); font-weight:400; }
.date-pub, .date-maj{ color:var(--ink-soft); font-weight:500; }
.date-pub::before, .date-maj::before{ content:"·"; margin-right:10px; color:var(--line); font-weight:400; }
.date-maj{ font-weight:400; }

h1{
  font-family:'Playfair Display',serif; font-weight:600;
  font-size:clamp(2rem,6vw,3.8rem); line-height:1.08; letter-spacing:-.01em;
  /* Les titres occupent toute la largeur disponible : « pretty » remplit les
     lignes et évite seulement un mot isolé en fin de titre, là où « balance »
     coupait le titre en deux moitiés égales et laissait le bord droit vide. */
  text-wrap:pretty; overflow-wrap:break-word; margin:0 0 6px;
}
h2, h3{ text-wrap:pretty; overflow-wrap:break-word; }
/* Sur téléphone, overflow-wrap coupe un mot seulement s'il est plus long que la ligne : aucun titre ne déborde, sans césure disgracieuse. */
.sub{
  font-family:'Playfair Display',serif; font-style:italic; font-weight:500;
  font-size:clamp(1.05rem,2.4vw,1.3rem); color:var(--ink-soft); margin:0 0 28px;
}
.chapo{ font-size:1.08rem; line-height:1.68; color:var(--ink-soft); margin:0 0 36px; }

hr.rule{ border:0; border-top:1px solid var(--line); margin:56px 0; }

h2{
  font-family:'Playfair Display',serif; font-weight:600; font-size:clamp(1.6rem,3vw,2.05rem);
  margin:0 0 22px; letter-spacing:-.005em; position:relative; padding-bottom:14px;
}
h2::after{ content:""; position:absolute; left:0; bottom:0; width:46px; height:2px; background:var(--accent); }
.band.deep h2::after{ background:var(--footer-accent); }
h3{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.2rem; margin:24px 0 8px; }
p.body-text{ font-size:1.02rem; line-height:1.74; color:var(--ink-soft); margin:0 0 14px; }

.domaines, .profiles-grid{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:20px; }
.domaines li, .profiles-grid li{
  display:flex; flex-direction:column; gap:14px; padding:28px 24px;
  background:linear-gradient(160deg, #FCFDFE 0%, #F6F8FB 100%); border:1px solid var(--line); border-radius:8px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
@media (prefers-reduced-motion: no-preference){
  .domaines li:hover, .profiles-grid li:hover{ transform:translateY(-3px); box-shadow:0 14px 26px -18px rgba(14,27,43,.4); border-color:var(--accent-2); }
}
.domaines .item-head, .profiles-grid .item-head{ display:flex; align-items:center; gap:16px; }
.domaines .num, .profiles-grid .num{
  font-family:'Playfair Display',serif; font-weight:600; font-size:2rem; line-height:1;
  color:var(--accent); flex-shrink:0; min-width:46px;
}
.domaines .label, .profiles-grid .label{ font-weight:600; font-size:1.16rem; line-height:1.15; }
.domaines .desc, .profiles-grid .desc{ color:var(--ink-soft); font-size:1rem; line-height:1.6; }

/* Parcours — timeline avec dates à gauche */
.timeline{ display:flex; flex-direction:column; gap:0; margin:0 0 8px; }
.timeline-item{
  display:grid; grid-template-columns:108px 1fr; gap:28px;
  padding-block:26px; border-top:1px solid var(--line);
}
.timeline-item:last-child{ border-bottom:1px solid var(--line); }
.timeline-date{
  font-family:'Playfair Display',serif; font-weight:600; font-size:1.05rem; color:var(--accent);
  padding-top:2px; white-space:nowrap;
}
.timeline-body h3{ margin:0 0 8px; font-size:1.1rem; }
.timeline-body p.body-text{ margin:0; }
@media (max-width:560px){
  .timeline-item{ grid-template-columns:1fr; gap:6px; }
}

/* Bloc de contact direct, en fin de page */
.contact-cta{ text-align:center; }
.contact-cta h2{ padding-bottom:0; }
.contact-cta h2::after{ left:50%; transform:translateX(-50%); }
.contact-cta .body-text{ max-width:52ch; margin-inline:auto; }
.contact-cta .btn-row{ justify-content:center; margin-top:18px; }

/* FAQ (native details/summary) */
.faq-list{ display:flex; flex-direction:column; gap:0; }
.faq-list details{
  border-top:1px solid var(--line); padding-block:18px;
}
.faq-list details:last-child{ border-bottom:1px solid var(--line); }
.faq-list summary{
  cursor:pointer; font-weight:600; font-size:1.12rem; list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{
  content:"+"; font-family:'Jost',sans-serif; font-weight:600; font-size:1.2rem; color:var(--accent); flex-shrink:0;
}
.faq-list details[open] summary::after{ content:"−"; }
.faq-list details p{ color:var(--ink-soft); font-size:1.02rem; line-height:1.65; margin:14px 0 0; max-width:68ch; }

/* Formulaire */
form.waitlist{ display:flex; flex-direction:column; gap:14px; max-width:420px; margin:0 0 8px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-family:'Jost',sans-serif; font-weight:600; font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft); }
.field input{
  font-family:'Jost',sans-serif; font-size:.98rem; padding:12px 14px;
  background:var(--bg); border:1px solid var(--line); border-radius:2px; color:var(--ink);
}
.field input:focus-visible{ outline:2px solid var(--accent-2); outline-offset:1px; }
.field input[aria-invalid="true"]{ border-color:var(--danger); }
.field .error{ font-size:.8rem; color:var(--danger); min-height:1em; }
.field .error:empty{ display:none; }
.honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.field .optional{ text-transform:none; font-weight:400; letter-spacing:0; color:var(--ink-soft); font-size:11px; }

/* Bloc "Rejoindre la liste d'information" centré au milieu de la page */
.waitlist-section{ text-align:center; }
.waitlist-section h2{ padding-bottom:14px; }
.waitlist-section h2::after{ left:50%; transform:translateX(-50%); }
.waitlist-section > .body-text{ max-width:52ch; margin-inline:auto; }
.waitlist-section form.waitlist{ margin-inline:auto; text-align:left; }

.cta{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:'Jost',sans-serif; font-weight:600;
  font-size:13px; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; cursor:pointer;
  color:var(--bg); background:var(--ink); padding:14px 22px; border-radius:2px; border:none;
  transition:background .18s ease;
}
.cta:hover{ background:var(--accent-2); }
#waitlist{ scroll-margin-top:88px; }
.form-status{ font-size:.88rem; color:var(--accent-2); min-height:1.2em; }

footer{ margin-top:0; }
.foot-grid{ display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:flex-start; }
.foot-note{ font-size:.84rem; color:var(--footer-soft); max-width:46ch; line-height:1.6; }
.foot-links{ display:flex; gap:18px; flex-wrap:wrap; font-family:'Jost',sans-serif; font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; }
.foot-links a{ text-decoration:none; color:var(--footer-ink); border-bottom:1px solid var(--footer-line); }
.foot-links a:hover{ border-color:var(--footer-accent); color:var(--footer-accent); }
.legal{ font-family:'Jost',sans-serif; font-size:.74rem; color:var(--footer-soft); margin-top:28px; letter-spacing:.02em; }
.band.deep hr.rule{ border-top-color:var(--footer-line); margin:0 0 32px; }

/* Blog / Ressources */
.article-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.article-card{
  padding:26px 24px; background:var(--bg); border:1px solid var(--line); border-radius:8px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
@media (prefers-reduced-motion: no-preference){
  .article-card:hover{ transform:translateY(-3px); box-shadow:0 14px 26px -18px rgba(14,27,43,.4); border-color:var(--accent-2); }
}
.article-card h3{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.18rem; margin:0 0 8px; }
.article-card a{ text-decoration:none; color:var(--ink); }
.article-card a:hover{ color:var(--accent-2); }
.article-meta{ font-family:'Jost',sans-serif; font-weight:600; font-size:.72rem; color:var(--accent-2); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.article-excerpt{ color:var(--ink-soft); font-size:.95rem; line-height:1.6; margin:0; }

.cta-block{ background:linear-gradient(160deg, #FCFDFE 0%, #F6F8FB 100%); border:1px solid var(--line); border-radius:8px; padding:30px 26px; margin-block:48px; }
.cta-block h3{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.25rem; margin:0 0 8px; }
.cta-block .body-text{ margin-bottom:18px; }

.disclaimer-note{ font-size:.82rem; color:var(--ink-soft); border-left:2px solid var(--line); padding-left:14px; margin:28px 0; }

.sources-block{ background:linear-gradient(160deg, #FCFDFE 0%, #F6F8FB 100%); border:1px solid var(--line); border-radius:8px; padding:26px 28px; margin:40px 0 28px; }
.sources-block h3{ font-family:'Jost',sans-serif; font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--accent-2); margin:0 0 14px; }
.sources-block ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.sources-block li{ font-size:.88rem; line-height:1.55; color:var(--ink-soft); padding-left:16px; position:relative; }
.sources-block li::before{ content:"—"; position:absolute; left:0; color:var(--accent); }
.sources-block strong{ color:var(--ink); font-weight:600; }

/* Liens de référence inline dans le corps d'un article (BOFiP, Légifrance, etc.) */
.body-text a.ref-link{ color:var(--accent-2); text-decoration:none; border-bottom:1px dotted var(--accent-2); }
.body-text a.ref-link:hover{ border-bottom-style:solid; }

/* Listes à puces dans le corps d'un article */
.body-list{ list-style:none; margin:0 0 22px; padding:0; display:flex; flex-direction:column; gap:11px; }
.body-list li{ position:relative; padding-left:24px; font-size:1rem; line-height:1.65; color:var(--ink-soft); }
.body-list li::before{ content:"—"; position:absolute; left:0; color:var(--accent); font-weight:600; }
.body-list strong{ color:var(--ink); }

/* Tableaux comparatifs dans le corps d'un article */
.compare-table-wrap{ overflow-x:auto; margin:0 0 28px; border:1px solid var(--line); border-radius:8px; }
.compare-table{ width:100%; border-collapse:collapse; font-size:.9rem; min-width:480px; }
.compare-table th, .compare-table td{ padding:12px 16px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.5; }
.compare-table thead th{ background:var(--tint-a); font-family:'Jost',sans-serif; font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--accent-2); white-space:nowrap; }
.compare-table tbody th{ font-family:'Jost',sans-serif; font-weight:600; font-size:.85rem; color:var(--ink); white-space:nowrap; background:var(--paper); }
.compare-table tbody tr:last-child td, .compare-table tbody tr:last-child th{ border-bottom:none; }
.compare-table td{ color:var(--ink-soft); }

/* Bloc de conclusion en fin d'article */
.conclusion-block{
  background:linear-gradient(160deg, #E4ECF5 0%, #EDF3F9 100%); border:1px solid var(--line);
  border-radius:8px; padding:28px 28px 26px; margin:36px 0 28px;
}
.conclusion-block h2{ margin-top:0; }
.conclusion-block h2::after{ background:var(--accent); }
.conclusion-block .body-list{ margin-bottom:0; }
.conclusion-block > .body-text:last-child{ margin-bottom:0; }

/* Pages légales */
.legal-page ul{ padding-left:1.1em; color:var(--ink-soft); font-size:.95rem; line-height:1.7; }
.legal-page li{ margin-bottom:6px; }
.back-link{ font-family:'Jost',sans-serif; font-weight:600; font-size:.82rem; text-decoration:none; border-bottom:1px solid var(--line); }

/* Liens de référence externes (Pappers, sites d'entreprises citées) */
.ext-link{ color:inherit; text-decoration:none; border-bottom:1px dotted var(--accent-2); }
.ext-link:hover{ border-bottom-style:solid; color:var(--accent-2); }


/* Lecture mobile : espacements resserrés, cibles tactiles plus généreuses,
   contenus qui ne débordent jamais du viewport */
@media (max-width:600px){
  .wrap{ padding-block:40px; padding-inline:20px; }
  .band-inner{ padding:40px 20px; }
  .nav-inner{ padding:14px 20px; }
  .nav-links{ gap:16px 20px; font-size:.72rem; }
  .chapo{ font-size:1rem; line-height:1.62; margin-bottom:28px; }
  .btn-row{ flex-direction:column; align-items:stretch; }
  .btn-row .cta, .btn-row .btn-ghost{ text-align:center; }
  .eyebrow{ margin-bottom:20px; }
  h2{ margin-bottom:18px; }
  .why-grid{ gap:28px; }
  .values-list li{ flex-direction:column; gap:6px; padding-block:16px; }
  .value-label{ min-width:0; }
  .domaines, .profiles-grid{ grid-template-columns:1fr; }
  .stats-inner{ grid-template-columns:1fr; gap:20px; padding:24px 20px; }
  form.waitlist{ max-width:100%; }
  .waitlist-section form.waitlist{ text-align:left; }
  .cred-row{ padding-block:14px; }
  .timeline-item{ padding-block:20px; }
}

@media (max-width:480px){
  .foot-grid{ flex-direction:column; }
}
/* ========== SIMULATEURS ========== */
.sr-titre{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.sim-toc{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; margin:0 0 30px; }
.sim-toc a{
  display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--ink);
  border:1px solid var(--line); border-radius:8px; padding:16px 18px; font-size:.98rem; line-height:1.35;
  background:linear-gradient(160deg, rgba(255,255,255,.75) 0%, rgba(255,255,255,.35) 100%);
}
.sim-toc a:hover{ border-color:var(--accent); color:var(--accent); }
.sim-toc-num{ font-family:'Playfair Display',serif; font-style:italic; font-size:1.5rem; color:var(--accent); flex-shrink:0; }

.sim-form{ margin:28px 0 8px; }
.sim-inputs{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:22px 26px;
  border:1px solid var(--line); border-radius:8px; padding:26px 26px 28px;
  background:linear-gradient(160deg, rgba(255,255,255,.82) 0%, rgba(255,255,255,.45) 100%);
}
.sim-field{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.sim-field[hidden]{ display:none; }
.sim-field-wide{ grid-column:1/-1; }
.sim-field label{
  font-family:'Jost',sans-serif; font-weight:600; font-size:11px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--ink-soft); display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.sim-badge{
  font-family:'Jost',sans-serif; font-weight:600; font-size:10px; letter-spacing:.05em; text-transform:none;
  color:var(--accent); border:1px solid var(--line); border-radius:99px; padding:2px 9px;
}
.sim-input-wrap{ position:relative; display:flex; align-items:center; }
.sim-input-wrap input{
  width:100%; font-family:'Jost',sans-serif; font-size:1.02rem; font-weight:600; color:var(--ink);
  padding:11px 40px 11px 13px; border:1px solid var(--line); border-radius:6px; background:var(--bg);
}
.sim-unit{
  position:absolute; right:13px; font-family:'Jost',sans-serif; font-size:.9rem;
  font-weight:600; color:var(--ink-soft); pointer-events:none;
}
.sim-field select{
  font-family:'Jost',sans-serif; font-size:.95rem; font-weight:500; color:var(--ink);
  padding:11px 13px; border:1px solid var(--line); border-radius:6px; background:var(--bg); width:100%;
}
.sim-field input:focus-visible, .sim-field select:focus-visible{ outline:2px solid var(--accent-2); outline-offset:1px; }
.sim-field input[type="range"]{ width:100%; accent-color:var(--accent); padding:0; height:26px; }
.sim-field-check label{ text-transform:none; font-size:.95rem; letter-spacing:0; color:var(--ink); align-items:flex-start; gap:9px; }
.sim-field-check input{ accent-color:var(--accent); width:17px; height:17px; flex-shrink:0; margin-top:1px; }
.sim-hint{ font-family:'Jost',sans-serif; font-size:.78rem; line-height:1.45; color:var(--ink-soft); }

.sim-output{ margin-top:30px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.sim-table{
  width:100%; border-collapse:collapse; background:var(--bg);
  border:1px solid var(--line); border-radius:8px; overflow:hidden;
  font-family:'Jost',sans-serif; font-size:.9rem;
}
.sim-table caption{
  font-family:'Jost',sans-serif; font-weight:700; font-size:.74rem; text-transform:uppercase;
  letter-spacing:.07em; color:var(--accent-2); text-align:left; padding:0 0 12px;
}
.sim-table th, .sim-table td{ padding:12px 14px; text-align:left; border-top:1px solid var(--line); vertical-align:top; }
.sim-table thead th{
  border-top:none; background:var(--tint-a); font-weight:700; font-size:.74rem;
  text-transform:uppercase; letter-spacing:.06em; color:var(--ink); line-height:1.3;
}
.sim-table .num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.sim-table tbody th{ font-weight:500; color:var(--ink-soft); line-height:1.4; }
.sim-th-note{ display:block; font-weight:500; font-size:.68rem; letter-spacing:.02em; text-transform:none; color:var(--ink-soft); margin-top:3px; }
.sim-cell-note{ display:block; font-size:.74rem; color:var(--ink-soft); opacity:.85; margin-top:2px; }
.sim-table tbody tr:nth-child(even){ background:rgba(0,0,0,.015); }
.sim-row-strong th, .sim-row-strong td{ font-weight:700; color:var(--ink); }
.sim-row-muted th, .sim-row-muted td{ color:var(--ink-soft); font-style:italic; }
.sim-row-total th, .sim-row-total td{
  font-weight:700; font-size:1.02rem; color:var(--ink);
  background:var(--tint-b); border-top:2px solid var(--accent);
}
.sim-table.sim-compact{ font-size:.85rem; }
.sim-table.sim-compact th, .sim-table.sim-compact td{ padding:11px 9px; }
.sim-gain{ color:var(--accent); font-weight:700; }
.sim-tag{
  font-size:.64rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  color:var(--accent); border:1px solid var(--line); border-radius:99px; padding:2px 7px; white-space:nowrap;
}

.sim-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-bottom:24px; }
.sim-kpi{
  display:flex; flex-direction:column; gap:5px; border:1px solid var(--line);
  border-left:3px solid var(--accent); border-radius:6px; padding:14px 16px; background:var(--bg);
}
.sim-kpi-label{ font-family:'Jost',sans-serif; font-weight:600; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); }
.sim-kpi-value{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.3rem; color:var(--ink); font-variant-numeric:tabular-nums; }

.sim-regime{ font-size:.95rem; line-height:1.6; color:var(--ink-soft); border-left:2px solid var(--accent); padding-left:14px; margin:0 0 22px; }
.sim-verdict{ font-size:1.02rem; line-height:1.65; color:var(--ink); margin:20px 0 0; }
.sim-note{ font-family:'Jost',sans-serif; font-size:.8rem; line-height:1.6; color:var(--ink-soft); margin:14px 0 0; }
.sim-reading{ margin-top:40px; border-top:1px solid var(--line); padding-top:26px; }
.sim-reading h3{ margin-top:0; }

@media (max-width:640px){
  .sim-inputs{ padding:20px 18px 22px; gap:18px; }
  .sim-table, .sim-table.sim-compact{ min-width:620px; font-size:.84rem; }
  .sim-table th, .sim-table td,
  .sim-table.sim-compact th, .sim-table.sim-compact td{ padding:10px 11px; }
  .sim-table tbody th{ min-width:168px; }
  .sim-output{ border-right:1px solid var(--line); }
}

/* --- Bandeau de millésime des barèmes --- */
.sim-millesime{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  font-family:'Jost',sans-serif; font-size:.82rem; line-height:1.5; color:var(--ink-soft);
  border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:6px;
  padding:13px 16px; margin:0 0 30px; background:var(--bg);
}
.sim-millesime-tag{
  font-weight:700; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--accent); border:1px solid var(--line); border-radius:99px; padding:3px 10px; white-space:nowrap;
}
.sim-millesime strong{ color:var(--ink); font-weight:600; }
.sim-millesime-alerte{ border-left-color:var(--danger); }
.sim-millesime-alerte-texte{ color:var(--danger); font-weight:600; flex-basis:100%; }
.sim-table code, .sources-block code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.92em;
  background:var(--tint-a); border-radius:4px; padding:1px 5px;
}

/* --- Éditions du point marché --- */
.edition-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; margin-bottom:8px; }
.edition-card{ border:1px solid var(--line); border-radius:8px; background:var(--bg); transition:border-color .2s ease; }
.edition-card:hover{ border-color:var(--accent); }
.edition-card a{ display:block; padding:26px 24px; text-decoration:none; color:var(--ink); }
.edition-meta{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap;
  font-family:'Jost',sans-serif; font-weight:500; font-size:.7rem; text-transform:uppercase;
  letter-spacing:.12em; color:var(--accent); margin-bottom:10px; }
.edition-date{ color:var(--ink-soft); font-weight:400; letter-spacing:.06em; }
.edition-card h3{ font-family:'Playfair Display',serif; font-weight:500; font-size:1.2rem; line-height:1.25; margin:0 0 10px; }
.edition-card .article-excerpt{ margin-bottom:16px; }
.edition-dl{ font-family:'Jost',sans-serif; font-weight:500; font-size:.72rem; text-transform:uppercase;
  letter-spacing:.12em; color:var(--accent); border-bottom:1px solid var(--line); padding-bottom:3px; }
.edition-card:hover .edition-dl{ border-color:var(--accent); }

/* --- Point marché : tableaux de données et pages d'édition --- */
.pm-date{ font-family:'Jost',sans-serif; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin:0; }
.pm-cat{ font-family:'Jost',sans-serif; font-weight:500; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--accent-2); margin:28px 0 10px;
  padding:7px 12px; background:var(--bg); border-left:3px solid var(--accent-2); }
.pm-cat:first-of-type{ margin-top:8px; }
.pm-table{ width:100%; border-collapse:collapse; background:var(--bg);
  border:1px solid var(--line); font-family:'Jost',sans-serif; font-size:.9rem; }
.pm-table th, .pm-table td{ padding:11px 14px; text-align:left; border-top:1px solid var(--line); vertical-align:baseline; }
.pm-table tr:first-child th, .pm-table tr:first-child td{ border-top:0; }
.pm-table tbody th{ font-weight:400; color:var(--ink-soft); width:42%; }
.pm-table .pm-val{ font-family:'Playfair Display',serif; font-size:1.08rem; color:var(--accent-2);
  white-space:nowrap; width:22%; }
.pm-table .pm-note{ font-size:.82rem; color:var(--ink-soft); line-height:1.4; }
.pm-table tr:nth-child(even) th, .pm-table tr:nth-child(even) td{ background:rgba(14,27,43,.02); }
@media (max-width:640px){
  .pm-table{ font-size:.84rem; }
  .pm-table th, .pm-table td{ padding:9px 10px; }
  .pm-table .pm-note{ display:none; }
  .pm-table tbody th{ width:58%; }
}

/* --- Téléchargement d'une simulation --- */
.dl-bloc{ display:grid; grid-template-columns:minmax(220px,1fr) minmax(300px,1.4fr); gap:32px;
  border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:8px;
  background:var(--bg); padding:30px 32px; margin-top:36px; align-items:start; }
.dl-intro h3{ font-family:'Playfair Display',serif; font-weight:500; font-size:1.3rem; margin:0 0 10px; }
.dl-intro p{ font-size:.96rem; line-height:1.6; color:var(--ink-soft); margin:0; }
.dl-form{ display:flex; flex-direction:column; gap:16px; }
.dl-champs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; }
.dl-champs .field label{ font-family:'Jost',sans-serif; font-weight:500; font-size:10px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.dl-champs .field input{ width:100%; font-family:'Jost',sans-serif; font-size:.95rem;
  padding:10px 12px; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--ink); }
.dl-champs .field input:focus-visible{ outline:2px solid var(--accent-2); outline-offset:1px; }
.dl-opt{ text-transform:none; letter-spacing:0; font-weight:400; opacity:.7; }
.dl-consent{ display:flex; gap:10px; align-items:flex-start; font-size:.84rem; line-height:1.5; color:var(--ink-soft); }
.dl-consent input{ accent-color:var(--accent); width:16px; height:16px; flex-shrink:0; margin-top:2px; }
.dl-consent a{ color:var(--accent); }
.dl-form .cta{ align-self:flex-start; }
.dl-statut{ font-family:'Jost',sans-serif; font-size:.88rem; color:var(--accent); min-height:1.2em; }
@media (max-width:760px){ .dl-bloc{ grid-template-columns:1fr; gap:22px; padding:24px 20px; } }

/* --- Schémas animés : mécanismes de structuration --- */
.schema{ margin:40px 0 44px; border:1px solid var(--line); border-radius:8px;
  background:var(--bg); padding:26px 24px 20px; }
.schema figcaption{ font-family:'Jost',sans-serif; font-weight:500; font-size:.72rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent-2);
  margin:0 0 18px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.schema svg{ width:100%; height:auto; display:block; }
.schema .legende{ font-family:'Jost',sans-serif; font-size:.82rem; line-height:1.55;
  color:var(--ink-soft); margin:16px 0 0; }

.sc-boite{ fill:var(--bg); stroke:var(--line); stroke-width:1.2; }
.sc-boite-forte{ fill:var(--accent-2); stroke:var(--accent-2); }
.sc-titre{ font-family:'Jost',sans-serif; font-size:13px; font-weight:500; fill:var(--ink); }
.sc-titre-clair{ fill:#fff; }
.sc-sous{ font-family:'Jost',sans-serif; font-size:10.5px; fill:var(--ink-soft); }
.sc-sous-clair{ fill:rgba(255,255,255,.75); }
.sc-fleche{ stroke:var(--accent); stroke-width:2; fill:none; marker-end:url(#sc-pointe); }
.sc-etiquette{ font-family:'Jost',sans-serif; font-size:10.5px; font-weight:500;
  letter-spacing:.06em; text-transform:uppercase; fill:var(--accent); }
.sc-num{ font-family:'Playfair Display',serif; font-size:15px; font-style:italic; fill:var(--accent); }
.sc-note{ font-family:'Jost',sans-serif; font-size:10px; fill:var(--ink-soft); }

/* Déroulé séquentiel : chaque étape apparaît puis la boucle reprend */
.sc-etape{ opacity:0; animation:sc-apparait 12s infinite; }
.sc-etape-1{ animation-delay:.3s; }
.sc-etape-2{ animation-delay:3.3s; }
.sc-etape-3{ animation-delay:6.3s; }
.sc-etape-4{ animation-delay:9.3s; }
@keyframes sc-apparait{
  0%{ opacity:0; transform:translateY(6px); }
  3%,25%{ opacity:1; transform:translateY(0); }
  30%,100%{ opacity:1; transform:translateY(0); }
}
.sc-trace{ stroke-dasharray:240; stroke-dashoffset:240; animation:sc-tire 12s infinite; }
.sc-trace.sc-etape-1{ animation-delay:.3s; }
.sc-trace.sc-etape-2{ animation-delay:3.3s; }
.sc-trace.sc-etape-3{ animation-delay:6.3s; }
.sc-trace.sc-etape-4{ animation-delay:9.3s; }
@keyframes sc-tire{ 0%{ stroke-dashoffset:240; } 8%,100%{ stroke-dashoffset:0; } }
.sc-pulse{ animation:sc-pulse 12s infinite; }
@keyframes sc-pulse{ 0%,2%{ opacity:.25; } 6%,22%{ opacity:1; } 26%,100%{ opacity:.55; } }

@media (prefers-reduced-motion: reduce){
  .sc-etape, .sc-trace, .sc-pulse{ animation:none !important; opacity:1 !important; stroke-dashoffset:0 !important; }
}
@media (max-width:640px){ .schema{ padding:18px 14px 14px; } .schema figcaption{ font-size:.66rem; } }

/* ------------------------------------------------------------------
   Accueil — mot du fondateur, schéma des domaines, pictogrammes, chemin
   ------------------------------------------------------------------ */
.fondateur{ display:grid; grid-template-columns:240px 1fr; gap:56px; align-items:center; }
.fondateur-photo{ margin:0; position:relative; }
.fondateur-photo img{ width:240px; height:240px; object-fit:cover; border-radius:50%; display:block;
  border:1px solid var(--line); box-shadow:0 18px 36px -24px rgba(14,27,43,.55); }
.fondateur-photo::after{ content:""; position:absolute; inset:-12px; border-radius:50%;
  border:1px solid var(--gold); opacity:.55; pointer-events:none; }
.fondateur-texte .eyebrow{ margin-bottom:18px; }
.fondateur-signature{ font-family:'Playfair Display',serif; font-style:italic; font-size:1.3rem; color:var(--ink);
  margin:26px 0 18px; display:flex; flex-direction:column; gap:4px; }
.fondateur-signature span{ font-family:'Jost',sans-serif; font-style:normal; font-weight:600; font-size:11px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
@media (max-width:760px){
  .fondateur{ grid-template-columns:1fr; gap:36px; justify-items:center; }
  .fondateur-photo img{ width:180px; height:180px; }
  .fondateur-texte{ justify-self:stretch; }
}

.domaines-schema{ display:grid; grid-template-columns:minmax(260px,420px) 1fr; gap:48px; align-items:center; }
.hub{ margin:0; }
.hub svg{ width:100%; height:auto; display:block; }
.hub-orbite{ fill:none; stroke:var(--accent-2); stroke-width:1; stroke-dasharray:3 6; opacity:.35; }
.hub-lien{ fill:none; stroke:var(--gold); stroke-width:1.6; }
.hub-noeud circle{ fill:#FCFDFE; stroke:var(--accent-2); stroke-width:1.3; }
.hub-noeud text{ font-family:'Jost',sans-serif; font-size:13px; font-weight:500; fill:var(--ink); }
.hub-centre circle{ fill:var(--accent); }
.hub-centre text{ fill:#fff; }
.hub-centre-petit{ font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.16em; text-transform:uppercase; fill:rgba(255,255,255,.75) !important; }
.hub-centre-grand{ font-family:'Playfair Display',serif; font-size:19px; font-style:italic; }
.hub-centre path{ stroke:var(--gold); stroke-width:1.2; }
@media (prefers-reduced-motion: no-preference){
  .hub-lien{ stroke-dasharray:170; stroke-dashoffset:170; animation:hub-tire 1.1s ease-out forwards; }
  .hub-lien-2{ animation-delay:.25s; } .hub-lien-3{ animation-delay:.5s; }
  .hub-noeud{ opacity:0; animation:hub-apparait .7s ease-out forwards; }
  .hub-noeud-1{ animation-delay:.7s; } .hub-noeud-2{ animation-delay:.95s; } .hub-noeud-3{ animation-delay:1.2s; }
  .hub-orbite{ transform-origin:210px 196px; animation:hub-tourne 60s linear infinite; }
}
@keyframes hub-tire{ to{ stroke-dashoffset:0; } }
@keyframes hub-apparait{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
@keyframes hub-tourne{ to{ transform:rotate(360deg); } }

.domaines-liste{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.domaines-liste li{ display:flex; flex-direction:column; gap:6px; padding:20px 0 20px 26px; border-top:1px solid var(--line); position:relative; }
.domaines-liste li:last-child{ border-bottom:1px solid var(--line); }
.domaines-liste li::before{ content:""; position:absolute; left:0; top:27px; width:9px; height:9px;
  background:var(--gold); transform:rotate(45deg); }
.domaine-titre{ font-weight:600; font-size:1.16rem; color:var(--ink); }
.domaine-desc{ color:var(--ink-soft); font-size:1rem; line-height:1.6; }
@media (max-width:820px){
  .domaines-schema{ grid-template-columns:1fr; gap:28px; }
  .hub{ max-width:360px; margin-inline:auto; width:100%; }
}

.pictogramme{ width:48px; height:48px; flex-shrink:0; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent); }
.pictogramme svg{ width:26px; height:26px; fill:none; stroke:#F4EFE6; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

.chemin{ list-style:none; margin:8px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; position:relative; }
.chemin::before{ content:""; position:absolute; left:6px; right:6px; top:7px; height:1px;
  background:linear-gradient(90deg, var(--accent-2), var(--gold)); opacity:.6; }
.chemin li{ position:relative; padding-top:34px; }
.chemin-jalon{ position:absolute; top:0; left:0; width:15px; height:15px; transform:rotate(45deg);
  background:var(--bg); border:1.5px solid var(--accent-2); }
.chemin li:last-child .chemin-jalon{ background:var(--gold); border-color:var(--gold); }
.chemin h3{ margin:0 0 8px; font-size:1.25rem; }
.chemin p{ margin:0; font-size:1rem; line-height:1.65; color:var(--ink-soft); }
@media (max-width:820px){
  .chemin{ grid-template-columns:1fr; gap:26px; padding-left:34px; }
  .chemin::before{ left:7px; right:auto; top:6px; bottom:6px; width:1px; height:auto;
    background:linear-gradient(180deg, var(--accent-2), var(--gold)); }
  .chemin li{ padding-top:0; }
  .chemin-jalon{ left:-34px; top:4px; }
}

/* Bandeau bleu de minuit : le moment de couleur de la page d'accueil */
.band.nuit{
  background-image:
    radial-gradient(circle, rgba(255,255,255,.035) 1px, transparent 1.6px),
    linear-gradient(160deg, #163A5E 0%, #12304F 45%, #0C2238 100%);
  background-size:52px 52px, 100% 100%;
  background-repeat:repeat, no-repeat;
  color:#F4EFE6;
}
.band.nuit::before, .band.nuit::after{ content:""; position:absolute; top:-8%; width:300px; height:116%;
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%); pointer-events:none;
  background:linear-gradient(165deg, rgba(193,164,122,.16), rgba(193,164,122,0)); }
.band.nuit::before{ left:-80px; }
.band.nuit::after{ right:-80px; transform:scaleX(-1); }
.band.nuit h2{ color:#FFFFFF; }
.band.nuit h2::after{ background:var(--gold); }
.band.nuit .chapo{ color:rgba(244,239,230,.78); }
.band.nuit .chemin::before{ background:linear-gradient(90deg, rgba(193,164,122,.35), var(--gold)); opacity:1; }
.band.nuit .chemin-jalon{ background:#12304F; border-color:var(--gold); }
.band.nuit .chemin li:last-child .chemin-jalon{ background:var(--gold); }
.band.nuit .chemin h3{ color:#FFFFFF; }
.band.nuit .chemin p{ color:rgba(244,239,230,.8); }
@media (max-width:820px){
  .band.nuit .chemin::before{ background:linear-gradient(180deg, rgba(193,164,122,.35), var(--gold)); }
}

/* Mentions d'information obligatoires : discrètes mais lisibles */
.form-rgpd{ font-family:'Jost',sans-serif; font-size:.78rem; line-height:1.55; color:var(--ink-soft); max-width:60ch; margin:14px auto 0; }
.form-rgpd a{ color:inherit; }
.note-reglementaire{ font-family:'Jost',sans-serif; font-size:.8rem; line-height:1.6; color:var(--ink-soft);
  border-top:1px solid var(--line); padding-top:16px; margin:26px 0 0; }
.legal-page .compare-table{ font-size:.9rem; }

/* Bloc d'installation de la web app (simulateurs.html) */
.app-install{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin:28px 0 8px; padding:20px 24px; background:var(--tint-a); border:1px solid var(--line); border-left:3px solid var(--gold); }
.app-install[hidden]{ display:none; }
.app-install-text{ flex:1 1 320px; display:flex; flex-direction:column; gap:4px; }
.app-install-text strong{ color:var(--accent); }
.app-install-text span{ color:var(--ink-soft); font-size:.95em; }
.app-install button.cta{ cursor:pointer; border:0; }
.app-install-ios{ flex-basis:100%; margin:0; font-size:.92em; color:var(--ink-soft); }
.app-install-etapes{ flex-basis:100%; margin:0; font-size:.95em; color:var(--ink-soft); border-top:1px solid var(--line); padding-top:14px; }
.app-install-etapes[hidden]{ display:none; }
.app-install-etapes p{ margin:0 0 8px; }
.app-install-etapes ol{ margin:0; padding-left:1.4em; display:flex; flex-direction:column; gap:6px; }
.app-install-etapes li::marker{ color:var(--accent); font-weight:600; }
.app-install-etapes strong{ color:var(--ink); }
@media (max-width:600px){ .app-install button.cta{ width:100%; } }

/* Fiches comparatives (une par forme juridique) */
.fiches{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:8px 0 40px; }
@media (max-width:680px){ .fiches{ grid-template-columns:1fr; } }
.fiche{ background:var(--bg); border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:8px; padding:20px 20px 16px; display:flex; flex-direction:column; }
.fiche header h3{ margin:0 0 4px; font-size:1.25rem; color:var(--accent); }
.fiche header p{ margin:0 0 14px; font-family:'Jost',sans-serif; font-size:.8rem; line-height:1.45; color:var(--ink-soft); }
.fiche ul{ list-style:none; margin:0; padding:0; flex:1; }
.fiche li{ display:flex; flex-direction:column; gap:2px; padding:9px 0; border-top:1px solid var(--line); }
.fiche-lib{ font-family:'Jost',sans-serif; font-weight:600; font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; color:var(--accent-2); }
.fiche-val{ font-size:.92rem; line-height:1.55; color:var(--ink); }
.fiche-note{ margin:12px 0 0; padding-top:12px; border-top:1px solid var(--gold); font-style:italic; font-size:.9rem; line-height:1.5; color:var(--ink-soft); }

/* Accroche de la page d'accueil : une phrase courte, lue avant tout le reste */
.chapo.accroche{ font-size:clamp(1.2rem,2.2vw,1.45rem); line-height:1.45; color:var(--ink); max-width:none; text-wrap:balance; }
.chapo.accroche em{ font-style:italic; color:var(--accent-2); }

/* Groupe de mots à ne jamais couper (titres contenant un trait d'union) */
.insecable{ white-space:nowrap; }

/* Premier bandeau en bleu profond (accueil, à propos) */
.hero-band.profond{
  background-image:
    radial-gradient(circle, rgba(255,255,255,.035) 1px, transparent 1.6px),
    linear-gradient(160deg, #13395F 0%, #0B2A4A 48%, #081626 100%);
  background-size:52px 52px, 100% 100%;
  background-repeat:repeat, no-repeat;
  border-bottom:1px solid #081626; color:#F4EFE6;
}
.hero-band.profond::before, .hero-band.profond::after{ background:linear-gradient(165deg, rgba(193,164,122,.16), rgba(193,164,122,0)); }
.hero-band.profond h1{ color:#FFFFFF; }
.hero-band.profond .eyebrow{ color:var(--gold); }
.hero-band.profond .eyebrow::before{ background:var(--gold); }
.hero-band.profond .sub{ color:rgba(244,239,230,.82); }
.hero-band.profond .chapo, .hero-band.profond .chapo.accroche{ color:rgba(244,239,230,.9); }
.hero-band.profond .chapo.accroche em{ color:var(--gold); }
.hero-band.profond .chapo a{ color:#FFFFFF; }
.hero-band.profond .cta{ background:var(--gold); color:#0B2A4A; }
.hero-band.profond .cta:hover{ background:#D6BE97; }
.hero-band.profond .btn-ghost{ color:#FFFFFF; border-color:rgba(255,255,255,.55); }
.hero-band.profond .btn-ghost:hover{ background:#FFFFFF; color:#0B2A4A; }
.hero-band.profond .hero-visual{ border-color:rgba(193,164,122,.55); background:#0E2F52; box-shadow:0 24px 60px rgba(4,12,22,.45); }
.hero-band.profond .hero-visual.credentials-card{ background:linear-gradient(160deg, #FCFDFE 0%, #EEF2F7 100%); border-color:rgba(193,164,122,.7); }
.hero-band.profond .profile-photo{ border-color:var(--gold); }

/* Bandeau d'en-tête en bleu profond (blog, point marché, simulateurs) — même direction que l'accueil */
.band.profond{
  background-image:
    radial-gradient(circle, rgba(255,255,255,.035) 1px, transparent 1.6px),
    linear-gradient(160deg, #13395F 0%, #0B2A4A 48%, #081626 100%);
  background-size:52px 52px, 100% 100%;
  background-repeat:repeat, no-repeat;
  color:#F4EFE6; border-bottom:1px solid #081626;
}
.band.profond::before, .band.profond::after{
  content:""; position:absolute; top:-8%; width:300px; height:116%;
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%); pointer-events:none;
  background:linear-gradient(165deg, rgba(193,164,122,.16), rgba(193,164,122,0));
}
.band.profond::before{ left:-80px; }
.band.profond::after{ right:-80px; transform:scaleX(-1); }
.band.profond > .wrap{ position:relative; z-index:1; }
.band.profond h1{ color:#FFFFFF; }
.band.profond .eyebrow{ color:var(--gold); }
.band.profond .eyebrow::before{ background:var(--gold); }
.band.profond .chapo{ color:rgba(244,239,230,.9); }
.band.profond .pm-date{ color:rgba(244,239,230,.7); }
.band.profond .disclaimer-note{ color:rgba(244,239,230,.72); border-left-color:rgba(193,164,122,.55); }
.band.profond .disclaimer-note a, .band.profond .chapo a{ color:#FFFFFF; }
.band.profond .sim-millesime{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); border-left-color:var(--gold); color:rgba(244,239,230,.8); }
.band.profond .sim-millesime strong{ color:#FFFFFF; }
.band.profond .sim-millesime-tag{ color:var(--gold); border-color:rgba(193,164,122,.5); }
.band.profond .sim-millesime-alerte{ border-left-color:#E8A0A0; }
.band.profond .sim-millesime-alerte-texte{ color:#F2B8B8; }
.band.profond .app-install{ background:#F4F7FB; border-color:rgba(193,164,122,.6); color:var(--ink); }
.band.profond .back-link{ color:#FFFFFF; border-bottom-color:rgba(255,255,255,.35); }

/* Simulateur 14 : trois actifs côte à côte */
.sim-inputs-actifs{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.sim-actif{ display:flex; flex-direction:column; gap:16px; border-top:3px solid var(--gold); padding-top:14px; min-width:0; }
.sim-actif-titre{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.15rem; color:var(--accent); margin:0; }
