/* ═══════════════════════════════════════════
   Résurgence — shared-v2.css
   Socle du nouveau design system.
   Structure inspirée d'elysee.fr, identité propre à Résurgence.
   ═══════════════════════════════════════════ */

:root {
  --paper:#FFFFFF;
  --paper-alt:#F2F4F7;
  --ink:#151A21;
  --ink-soft:#565E68;
  --ink-faint:#8A9099;
  --line:#DFE3E8;
  --blue:#1E3A61;
  --blue-deep:#10203A;
  --blue-tint:#E9EFF6;
  --accent-warm:#C77F3B;
  --font-sans:'Inter',-apple-system,sans-serif;
  --font-mono:'IBM Plex Mono',monospace;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  /* Hauteur de la nav fixe au repos : padding 30px*2 + logo 64px + bordure 1px */
  --nav-h: 125px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body { font-family:var(--font-sans); font-weight:400; color:var(--ink); background:var(--paper); line-height:1.6; overflow-x:hidden; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
h1,h2,h3,h4 { font-family:var(--font-sans); font-weight:700; line-height:1.2; letter-spacing:-0.01em; color:var(--ink); }
.container { max-width:1180px; margin:0 auto; padding:0 32px; }

/* REVEAL (reprise du système existant) */
.reveal { opacity:0; transform:translateY(30px); transition:opacity .7s var(--ease-out-expo), transform .7s var(--ease-out-expo); }
.reveal.visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity:1; transform:none; } }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }


/* NAV */
.nav { position:fixed; top:0; left:0; right:0; z-index:1000; padding:30px 0; background:rgba(255,255,255,.97); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--line); transition:padding .3s, box-shadow .3s; }
.nav.scrolled { padding:20px 0; box-shadow:0 4px 24px rgba(21,26,33,.06); }
.nav__inner { display:flex; align-items:center; justify-content:space-between; }
.nav__logo { display:flex; align-items:center; line-height:0; }
.nav__logo img { height:64px; width:auto; display:block; }
.nav__links { display:flex; align-items:center; gap:30px; list-style:none; }
.nav__links > li > a { font-size:14px; font-weight:500; color:var(--ink); padding:6px 0; border-bottom:2px solid transparent; display:inline-flex; align-items:center; gap:6px; }
.nav__links > li > a:hover { border-bottom-color:var(--blue); }
.nav__cta { font-size:13px; font-weight:600; color:#fff; background:var(--blue); padding:10px 20px; border-radius:2px; transition:background .2s; white-space:nowrap; }
.nav__cta:hover { background:var(--blue-deep); }
.nav__hamburger { display:none; flex-direction:column; justify-content:center; align-items:center; gap:6px; width:40px; height:40px; z-index:1001; }
.nav__hamburger span { display:block; width:22px; height:1.5px; background:var(--ink); transition:all .3s; }
.nav.menu-open .nav__hamburger span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
.nav.menu-open .nav__hamburger span:nth-child(2) { opacity:0; }
.nav.menu-open .nav__hamburger span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }
.nav__mobile { position:fixed; inset:0; background:var(--blue-deep); z-index:999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.75rem; opacity:0; visibility:hidden; transition:all .35s var(--ease-out-expo); }
.nav__mobile.active { opacity:1; visibility:visible; }
.nav__mobile a { font-size:1.4rem; color:#fff; font-weight:600; }
.nav__mobile a:hover { color:var(--accent-warm); }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; gap:.5rem; font-size:14px; font-weight:600; padding:13px 26px; border-radius:2px; transition:all .2s; border:1px solid transparent; }
.btn--primary { background:var(--blue); color:#fff; }
.btn--primary:hover { background:var(--blue-deep); }
.btn--outline { border-color:rgba(255,255,255,.5); color:#fff; }
.btn--outline:hover { background:rgba(255,255,255,.1); }
.btn--line { border-color:var(--blue); color:var(--blue); }
.btn--line:hover { background:var(--blue); color:#fff; }
.btn--sm { padding:9px 18px; font-size:12.5px; }

/* HERO */
.hero { position:relative; height:600px; padding-top:var(--nav-h); }
.hero__bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.hero__bg::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(27,51,87,.55) 0%, rgba(21,26,33,.82) 100%); }
.hero__content { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:center; max-width:680px; }
.hero__eyebrow { font-size:12.5px; text-transform:uppercase; letter-spacing:.1em; color:#AEC2DC; font-weight:600; margin-bottom:20px; }
.hero__title { font-size:clamp(2.2rem,4.5vw,3.2rem); color:#fff; line-height:1.15; margin-bottom:20px; }
.hero__title em { font-style:normal; color:#D8C1A0; }
.hero__subtitle { font-size:17px; color:#D3DCE7; line-height:1.65; max-width:520px; margin-bottom:32px; font-weight:400; }
.hero__buttons { display:flex; gap:14px; flex-wrap:wrap; }

/* ALERT BAND */
.alert-band { background:var(--blue); color:#fff; }
.alert-inner { display:flex; align-items:center; justify-content:space-between; padding:22px 0; gap:24px; flex-wrap:wrap; }
.alert-left { display:flex; align-items:center; gap:20px; }
.alert-badge { font-family:var(--font-mono); background:rgba(255,255,255,.14); padding:8px 14px; font-size:13px; border-radius:2px; white-space:nowrap; }
.alert-text strong { display:block; font-size:16px; font-weight:700; margin-bottom:2px; }
.alert-text span { font-size:13.5px; color:#CBDAEA; }
.alert-band .btn--outline { border-color:#fff; }

/* THIN BAND */
.thin-band { border-bottom:1px solid var(--line); }
.thin-inner { display:flex; align-items:center; justify-content:space-between; padding:16px 0; gap:16px; flex-wrap:wrap; }
.thin-inner p { font-size:14px; color:var(--ink-soft); }
.thin-inner p strong { color:var(--ink); }

/* SECTIONS */
section.block { padding:76px 0; }
.block-alt { background:var(--paper-alt); }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:38px; gap:24px; flex-wrap:wrap; }
.section-head .eyebrow { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--blue); font-weight:700; margin-bottom:8px; }
.section-head h2 { font-size:27px; }
.section-head .see-all { font-size:13px; font-weight:600; color:var(--blue); white-space:nowrap; padding-bottom:3px; border-bottom:1px solid var(--blue); }

/* STAT STRIP */
.stats { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.stat { padding:26px 24px; border-right:1px solid var(--line); }
.stat:last-child { border-right:none; }
.stat-num { font-family:var(--font-mono); font-weight:600; font-size:28px; color:var(--ink); }
.stat-label { font-size:13px; color:var(--ink-soft); margin-top:6px; line-height:1.4; }

/* ACTUALITES */
.actu-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:44px; }
.actu-feat .actu-img { height:250px; border-radius:2px; margin-bottom:18px; }
.actu-feat .cat { font-size:12px; color:var(--blue); font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
.actu-feat h3 { font-size:20px; line-height:1.32; margin-bottom:8px; }
.actu-feat .date { font-size:13px; color:var(--ink-faint); }
.actu-list-item { display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.actu-list-item:first-child { padding-top:0; }
.actu-list-item .actu-thumb { width:84px; height:64px; border-radius:2px; flex-shrink:0; }
.actu-list-item h4 { font-size:14.5px; font-weight:600; line-height:1.4; margin-bottom:6px; }
.actu-list-item .date { font-size:12.5px; color:var(--ink-faint); }
.actu-list-item.disabled h4, .actu-list-item.disabled .date { color:var(--ink-faint); }

/* TABS (Nos priorités) */
.tabs-nav { display:flex; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.tab-btn { font-size:14px; font-weight:600; color:var(--ink-soft); padding:14px 20px; border-bottom:2px solid transparent; font-family:var(--font-sans); }
.tab-btn.active { color:var(--blue); border-bottom-color:var(--blue); }
.tab-panel { display:none; grid-template-columns:1fr 1fr; border:1px solid var(--line); border-top:none; }
.tab-panel.active { display:grid; }
.tab-panel .tab-img { min-height:320px; }
.tab-text { padding:44px; display:flex; flex-direction:column; justify-content:center; }
.tab-text .num { font-family:var(--font-mono); font-size:13px; color:var(--ink-faint); margin-bottom:14px; }
.tab-text h3 { font-size:23px; margin-bottom:14px; line-height:1.3; }
.tab-text p { font-size:14.5px; color:var(--ink-soft); line-height:1.7; margin-bottom:22px; }

/* MOUVEMENT COLUMNS */
.mvt-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:36px; }
.mvt-col h4 { font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--blue); font-weight:700; margin-bottom:18px; }
.mvt-col a { display:block; font-size:14.5px; color:var(--ink); padding:9px 0; border-bottom:1px solid var(--line); }
.mvt-col a:hover { color:var(--blue); }

/* RENCONTRER / AGIR CARDS */
.rencontrer-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.rc-card { border:1px solid var(--line); }
.rc-card .rc-img { height:190px; }
.rc-body { padding:26px; }
.rc-body .eyebrow2 { font-size:12px; color:var(--blue); font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
.rc-body h3 { font-size:19px; margin-bottom:10px; }
.rc-body p { font-size:14px; color:var(--ink-soft); margin-bottom:18px; line-height:1.6; }

/* SMALL CARDS */
.small-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.small-card { display:block; }
.small-card .small-img { height:130px; border-radius:2px; margin-bottom:14px; }
.small-card h4 { font-size:15px; font-weight:700; margin-bottom:6px; }
.small-card p { font-size:13px; color:var(--ink-soft); line-height:1.5; }

/* IMAGE FILLS (utilitaire) — fonctionne pour un <div> (dégradé placeholder) ou une <img> (vraie photo) */
.img-cover { background-size:cover; background-position:center; }
.fill-blue { background:linear-gradient(135deg,var(--blue-deep),var(--blue)); }
.fill-warm { background:linear-gradient(135deg,#3D2A1A,var(--blue-deep)); }
.fill-slate { background:linear-gradient(135deg,#243347,#3A506B); }
.actu-feat .actu-img, .tab-panel .tab-img, .rc-card .rc-img, .small-card .small-img {
  object-fit:cover; width:100%; display:block;
}
.actu-list-item .actu-thumb {
  object-fit:cover; display:block;
}

/* FAQ */
.faq__list { max-width:760px; }
.faq__item { border-bottom:1px solid var(--line); }
.faq__question { width:100%; display:flex; justify-content:space-between; align-items:center; padding:20px 0; font-size:15.5px; font-weight:600; text-align:left; }
.faq__icon svg { width:16px; height:16px; stroke:var(--blue); fill:none; stroke-width:2; transition:transform .3s; }
.faq__item.open .faq__icon svg { transform:rotate(45deg); }
.faq__answer { max-height:0; overflow:hidden; transition:max-height .35s var(--ease-out-expo); }
.faq__item.open .faq__answer { max-height:300px; }
.faq__answer p { padding-bottom:20px; font-size:14.5px; color:var(--ink-soft); line-height:1.7; max-width:640px; }
.faq__answer a { color:var(--blue); text-decoration:underline; }

/* CTA BAND */
.cta-band { background:var(--blue-deep); color:#fff; text-align:center; padding:76px 0; }
.cta-band .eyebrow { color:#9FB4CE; font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; margin-bottom:14px; }
.cta-band h2 { font-size:30px; margin-bottom:14px; max-width:620px; margin-left:auto; margin-right:auto; line-height:1.3; color:#fff; }
.cta-band p { color:#C9D6E6; font-size:15px; max-width:480px; margin:0 auto 28px; }
.cta-band .btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* CONTACT / FORM */
.contact-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:56px; }
.form__row { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.form__group label { display:block; font-size:12.5px; font-weight:600; color:var(--ink-soft); margin-bottom:7px; text-transform:uppercase; letter-spacing:.04em; }
.form__group { margin-bottom:0; }
.form__input, .form__select, .form__textarea { width:100%; border:1px solid var(--line); border-radius:2px; padding:11px 14px; font-family:var(--font-sans); font-size:14.5px; color:var(--ink); background:var(--paper); }
.form__input:focus, .form__select:focus, .form__textarea:focus { outline:none; border-color:var(--blue); }
.form__textarea { min-height:120px; resize:vertical; margin-bottom:18px; display:block; width:100%; }
.contact-info h3 { font-size:17px; margin-bottom:20px; }
.contact-info-item { display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); font-size:14px; }
.contact-info-item strong { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); margin-bottom:3px; }
.contact-socials { display:flex; gap:12px; margin-top:20px; }
.contact-socials a { width:36px; height:36px; border:1px solid var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.contact-socials a:hover { border-color:var(--blue); color:var(--blue); }
.contact-socials svg { width:16px; height:16px; fill:currentColor; }

/* FOOTER */
footer.site-footer { background:var(--paper-alt); padding-top:64px; }
.footer-grid { display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:36px; padding-bottom:44px; border-bottom:1px solid var(--line); }
.footer-grid h4 { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint); font-weight:700; margin-bottom:16px; }
.footer-grid a { display:block; font-size:13.5px; color:var(--ink-soft); margin-bottom:10px; }
.footer-grid a:hover { color:var(--blue); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:12.5px; color:var(--ink-faint); flex-wrap:wrap; gap:10px; }
.footer-bottom .links a { margin-left:18px; color:var(--ink-faint); }
.footer-bottom .links a:hover { color:var(--blue); }

/* PAGE HERO (pages secondaires) */
.page-hero { padding:calc(var(--nav-h) + 54px) 0 64px; background:var(--blue-deep); position:relative; }
.page-hero .back-link { color:#AEC2DC; font-size:13.5px; margin-bottom:24px; display:inline-block; }
.page-hero .back-link:hover { color:#fff; }
.page-hero .eyebrow { color:#9FB4CE; font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; margin-bottom:14px; }
.page-hero h1 { color:#fff; font-size:clamp(2rem,4vw,2.7rem); line-height:1.2; margin-bottom:16px; max-width:800px; }
.page-hero p.lead { color:#D3DCE7; font-size:16px; line-height:1.7; max-width:660px; }

/* AXE HERO (dossier) */
.axe-hero { padding:calc(var(--nav-h) + 50px) 0 60px; background:var(--blue-deep); position:relative; }
.axe-hero .back-link { color:#AEC2DC; font-size:13.5px; margin-bottom:28px; display:inline-block; }
.axe-hero .back-link:hover { color:#fff; }
.axe-hero-num { font-family:var(--font-mono); font-size:15px; color:#9FB4CE; margin-bottom:14px; letter-spacing:.05em; }
.axe-hero-tag { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-warm); border:1px solid rgba(199,127,59,.4); padding:5px 12px; border-radius:2px; margin-bottom:18px; }
.axe-hero h1 { color:#fff; font-size:clamp(2rem,4vw,2.8rem); line-height:1.18; margin-bottom:18px; max-width:820px; }
.axe-hero-accroche { color:#D3DCE7; font-size:17px; line-height:1.75; max-width:700px; }

/* DOSSIER LAYOUT (sommaire ancré + corps) */
.dossier-wrap { display:grid; grid-template-columns:250px 1fr; gap:56px; align-items:start; padding:64px 32px 80px; }
.dossier-toc { position:sticky; top:110px; border-left:2px solid var(--blue); padding-left:18px; }
.dossier-toc .toc-label { font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); margin-bottom:14px; }
.dossier-toc a { display:block; font-size:13.5px; color:var(--ink-soft); padding:7px 0; border-bottom:1px solid var(--line); }
.dossier-toc a:hover, .dossier-toc a.active { color:var(--blue); }
.dossier-toc a:last-child { border-bottom:none; }

.axe-block { margin-bottom:44px; scroll-margin-top:110px; }
.axe-block-label { font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.axe-block p { font-size:15.5px; color:var(--ink-soft); line-height:1.8; }
.axe-block p + p { margin-top:16px; }
.axe-block p strong, .axe-block li strong { color:var(--ink); font-weight:700; font-family:var(--font-mono); }
.axe-block-source { font-size:12.5px; color:var(--ink-faint); margin-top:12px; font-style:italic; }

/* STAT GRID (chiffres en dossier) */
.stat-grid-dossier { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:20px 0 8px; }
.stat-card { background:var(--paper-alt); border:1px solid var(--line); border-radius:2px; padding:20px 18px; }
.stat-card-num { font-family:var(--font-mono); font-size:26px; font-weight:600; color:var(--blue-deep); line-height:1.1; }
.stat-card-label { font-size:12.5px; color:var(--ink-soft); margin-top:8px; line-height:1.5; }

/* CALLOUTS */
.axe-callout { border-left:3px solid var(--blue); background:var(--paper-alt); padding:22px 24px; margin:20px 0; }
.axe-callout-label { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--blue); margin-bottom:12px; }
.axe-callout ul { list-style:none; display:flex; flex-direction:column; gap:8px; }
.axe-callout ul li { font-size:14.5px; color:var(--ink-soft); padding-left:20px; position:relative; line-height:1.6; }
.axe-callout ul li::before { content:'—'; position:absolute; left:0; color:var(--blue); }
.axe-callout--warning { border-left-color:var(--ink-faint); }
.axe-callout--warning .axe-callout-label { color:var(--ink-soft); }
.axe-callout--warning p { font-size:14px; color:var(--ink-soft); line-height:1.7; }

/* TABLE */
.axe-table-wrap { overflow-x:auto; margin:20px 0; border:1px solid var(--line); }
.axe-table { width:100%; border-collapse:collapse; min-width:600px; background:var(--paper); }
.axe-table th { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; background:var(--blue-deep); color:#CBDAEA; text-align:left; padding:12px 14px; }
.axe-table td { font-size:13.5px; color:var(--ink-soft); padding:13px 14px; border-top:1px solid var(--line); vertical-align:top; }
.axe-table tr:nth-child(even) td { background:var(--paper-alt); }
.axe-table td strong { color:var(--ink); font-weight:600; }
.axe-table-note { font-size:12.5px; color:var(--ink-faint); margin-top:10px; font-style:italic; }

/* TIMELINE */
.timeline { display:flex; flex-direction:column; margin:20px 0; }
.timeline-step { display:flex; gap:22px; padding:16px 0; border-top:1px solid var(--line); }
.timeline-step:first-child { border-top:none; }
.timeline-phase { flex-shrink:0; width:120px; font-family:var(--font-mono); font-size:13px; font-weight:600; color:var(--blue); }
.timeline-text { font-size:14px; color:var(--ink-soft); line-height:1.7; }

/* PROTECTED CHIPS */
.protected-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.protected-chip { font-size:13px; color:var(--blue-deep); background:var(--blue-tint); border:1px solid rgba(43,74,120,.18); padding:7px 14px; border-radius:2px; }

/* FAQ (accordéon dossier, réutilise faq__ du socle) */
.faq-list { display:flex; flex-direction:column; gap:10px; margin-top:18px; }
.faq-item { background:var(--paper-alt); border:1px solid var(--line); }
.faq-question { width:100%; text-align:left; padding:16px 20px; display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:14.5px; font-weight:600; color:var(--ink); }
.faq-question::after { content:'+'; font-size:20px; font-weight:400; color:var(--blue); flex-shrink:0; transition:transform .3s; line-height:1; }
.faq-item.open .faq-question::after { transform:rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s var(--ease-out-expo); }
.faq-answer-inner { padding:0 20px 20px; font-size:13.5px; color:var(--ink-soft); line-height:1.75; }
.faq-item.open .faq-answer { max-height:700px; }

/* AXE NAV + CTA */
.axe-nav { padding:34px 0; background:var(--paper); border-top:1px solid var(--line); }
.axe-nav-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.axe-nav-link { font-size:14px; color:var(--ink-faint); }
.axe-nav-link:hover { color:var(--blue); }
.axe-nav-link strong { display:block; font-size:15.5px; color:var(--ink); font-weight:700; }

/* PROGRAMME GRID (index) */
.prog-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.prog-card { background:var(--paper); border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:26px 22px; display:flex; flex-direction:column; min-height:220px; transition:background .15s; }
.prog-card:hover { background:var(--paper-alt); }
.prog-card-num { font-family:var(--font-mono); font-size:12.5px; color:var(--ink-faint); margin-bottom:14px; }
.prog-card-title { font-size:16px; font-weight:700; color:var(--ink); margin-bottom:10px; line-height:1.3; }
.prog-card-text { font-size:13px; color:var(--ink-soft); line-height:1.6; flex:1; }
.prog-card-arrow { display:block; margin-top:16px; font-size:12.5px; color:var(--blue); font-weight:600; }

/* PORTRAITS GALLERY */
.portraits-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.portrait-card { position:relative; overflow:hidden; background:var(--blue-deep); aspect-ratio:3/4; display:block; }
.portrait-card__img { width:100%; height:100%; object-fit:cover; object-position:top center; opacity:.88; transition:opacity .3s, transform .5s; }
.portrait-card:hover .portrait-card__img { opacity:1; transform:scale(1.03); }
.portrait-card__overlay { position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(15,22,33,.92) 100%); }
.portrait-card__body { position:absolute; left:0; right:0; bottom:0; padding:20px; z-index:2; }
.portrait-card__meta { font-size:12px; color:#AEC2DC; margin-bottom:4px; }
.portrait-card__name { font-size:17px; font-weight:700; color:#fff; margin-bottom:2px; }
.portrait-card__role { font-size:12.5px; color:#C9D6E6; margin-bottom:8px; }
.portrait-card__cta { font-size:11.5px; color:var(--accent-warm); font-weight:600; opacity:0; transition:opacity .2s; }
.portrait-card:hover .portrait-card__cta { opacity:1; }
@media(max-width:1024px){ .portraits-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .portraits-grid { grid-template-columns:1fr; } }

/* PORTRAIT HERO (photo pleine largeur) */
.portrait-hero { position:relative; min-height:72vh; display:flex; align-items:flex-end; background:var(--blue-deep); overflow:hidden; }
.portrait-hero__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; opacity:.5; }
.portrait-hero__gradient { position:absolute; inset:0; background:linear-gradient(90deg, rgba(21,26,33,.92) 0%, rgba(21,26,33,.55) 50%, transparent 100%), linear-gradient(180deg, transparent 40%, rgba(21,26,33,.92) 100%); }
.portrait-hero__content { position:relative; z-index:2; padding:56px 0; max-width:640px; }
.portrait-hero__back { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:#AEC2DC; margin-bottom:28px; }
.portrait-hero__back:hover { color:#fff; }
.portrait-hero__back svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; }
.portrait-hero__series { font-size:11.5px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--accent-warm); margin-bottom:16px; }
.portrait-hero__name { font-size:clamp(2.2rem,5vw,3.6rem); font-weight:800; color:#fff; line-height:1.08; letter-spacing:-.02em; margin-bottom:10px; }
.portrait-hero__meta { font-size:15px; color:#C9D6E6; }

/* PORTRAIT BODY */
.portrait-body { padding:60px 0 76px; }
.portrait-body__inner { display:grid; grid-template-columns:1fr 3fr; gap:56px; align-items:start; }
.portrait-body__aside { position:sticky; top:110px; }
.portrait-body__aside-label { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--blue); margin-bottom:6px; }
.portrait-body__aside-value { font-size:14px; color:var(--ink-soft); line-height:1.6; margin-bottom:22px; }
.portrait-body__aside-value strong { display:block; font-weight:700; color:var(--ink); margin-bottom:2px; font-size:15px; }
.portrait-body__nav { margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.portrait-body__nav a { display:block; font-size:12.5px; font-weight:600; letter-spacing:.03em; color:var(--ink-faint); margin-bottom:10px; }
.portrait-body__nav a:hover { color:var(--blue); }
.portrait-body__text p { font-size:15.5px; color:var(--ink-soft); line-height:1.85; margin-bottom:20px; }
.portrait-body__text p:first-child { font-size:18px; font-weight:600; color:var(--ink); line-height:1.6; margin-bottom:22px; }
.portrait-body__divider { height:1px; background:var(--line); margin:36px 0; }
.portrait-body__resolution { background:var(--blue-deep); padding:30px; border-left:3px solid var(--accent-warm); }
.portrait-body__resolution-label { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#fff; margin-bottom:16px; }
.portrait-body__resolution p { font-size:14.5px; color:#D3DCE7; line-height:1.8; margin-bottom:16px; }
.portrait-body__resolution p:last-child { margin-bottom:0; }
@media(max-width:900px){
  .portrait-body__inner { grid-template-columns:1fr; }
  .portrait-body__aside { position:static; background:var(--blue-deep); padding:20px; margin-bottom:28px; display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; }
  .portrait-body__aside-label { color:#AEC2DC; }
  .portrait-body__aside-value { color:#D3DCE7; margin-bottom:10px; }
  .portrait-body__aside-value strong { color:#fff; }
  .portrait-body__nav { grid-column:1/-1; border-top-color:rgba(255,255,255,.15); display:flex; flex-wrap:wrap; gap:6px 20px; }
  .portrait-body__nav a { color:#C9D6E6; margin-bottom:0; }
}

@media(max-width:900px){
  .actu-grid,.tab-panel,.rencontrer-grid,.footer-grid,.contact-grid,.form__row,.dossier-wrap { grid-template-columns:1fr; }
  .mvt-grid,.small-grid,.stats-grid,.prog-grid,.stat-grid-dossier { grid-template-columns:1fr 1fr; }
  nav.nav .nav__links, .nav__cta.desktop-only { display:none; }
  .nav__hamburger { display:flex; }
  .hero { height:520px; }
  .hero__content { max-width:100%; }
  .dossier-toc { position:static; border-left:none; border-top:2px solid var(--blue); padding-left:0; padding-top:16px; }
  /* Empêche les colonnes de grille (dont .axe-body avec sa table min-width:600px) de gonfler la page sur mobile ; la table scrolle alors dans son .axe-table-wrap */
  .dossier-toc, .axe-body { min-width:0; }
}

/* MANIFESTE / LONG-FORM */
.reading-progress { position:fixed; top:0; left:0; height:3px; background:var(--blue); z-index:1200; width:0%; transition:width .1s; }
.manifeste-hero { position:relative; min-height:82vh; padding-top:var(--nav-h); display:flex; align-items:center; justify-content:center; text-align:center; background:var(--blue-deep); }
.manifeste-hero__label { font-size:12px; text-transform:uppercase; letter-spacing:.15em; color:#9FB4CE; font-weight:700; margin-bottom:24px; }
.manifeste-hero__title { font-size:clamp(2.6rem,6vw,4.4rem); color:#fff; line-height:1.08; letter-spacing:-.02em; margin-bottom:20px; }
.manifeste-hero__title em { font-style:normal; color:var(--accent-warm); }
.manifeste-hero__subtitle { font-size:17px; color:#D3DCE7; margin-bottom:36px; }
.manifeste-hero__scroll { display:inline-flex; flex-direction:column; align-items:center; gap:10px; font-size:12px; color:#AEC2DC; text-transform:uppercase; letter-spacing:.08em; }
.manifeste-hero__scroll-line { width:1px; height:36px; background:linear-gradient(180deg, #AEC2DC, transparent); }

.toc-section-manifeste { padding:70px 0; background:var(--paper-alt); }
.toc-inner-manifeste { max-width:820px; margin:0 auto; }
.toc-title-manifeste { font-size:26px; margin-bottom:40px; }
.toc-acte-block { margin-bottom:30px; }
.toc-acte-block__title { font-size:12.5px; font-weight:700; color:var(--blue); text-transform:uppercase; letter-spacing:.04em; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.toc-acte-block__chapters { display:grid; grid-template-columns:1fr 1fr; gap:4px 24px; }
.toc-acte-block__chapters a { font-size:14.5px; color:var(--ink-soft); padding:7px 0; display:flex; gap:10px; }
.toc-acte-block__chapters a:hover { color:var(--blue); }
.toc-acte-block__chapters .ch-num { font-family:var(--font-mono); color:var(--ink-faint); font-size:12.5px; flex-shrink:0; }

.prose-section { padding:64px 0; max-width:700px; margin:0 auto; }
.prose-section .section-label { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--blue); font-weight:700; margin-bottom:14px; }
.prose-section h2 { font-size:26px; margin-bottom:28px; }
.prose p { font-size:16px; color:var(--ink-soft); line-height:1.85; margin-bottom:20px; }
.pull-quote { border-left:3px solid var(--blue); padding:4px 0 4px 26px; margin:32px 0; }
.pull-quote p { font-size:19px; font-weight:600; color:var(--ink); line-height:1.5; margin-bottom:0; }

.acte-header { background:var(--blue-deep); padding:56px 0; text-align:center; }
.acte-header__number { font-family:var(--font-mono); font-size:13px; color:var(--accent-warm); letter-spacing:.1em; text-transform:uppercase; margin-bottom:10px; }
.acte-header__title { font-size:24px; color:#fff; max-width:640px; margin:0 auto; line-height:1.3; }

.chapter { padding:60px 0; border-bottom:1px solid var(--line); }
.chapter__inner { max-width:700px; margin:0 auto; }
.chapter__num { font-family:var(--font-mono); font-size:12.5px; color:var(--ink-faint); display:block; margin-bottom:12px; }
.chapter-title { font-size:24px; margin-bottom:26px; line-height:1.3; }

.postface { padding:70px 0; background:var(--paper-alt); }
.postface__signature { display:flex; align-items:center; gap:16px; margin-top:30px; max-width:700px; margin-left:auto; margin-right:auto; }
.postface__signature-line { flex:1; height:1px; background:var(--line); }
.postface__signature-name { font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); }

.download-section { padding:56px 0; text-align:center; }
.download-section .section-label { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--blue); font-weight:700; margin-bottom:10px; }
.download-title { font-size:20px; margin-bottom:22px; }
.btn-download { display:inline-flex; align-items:center; gap:10px; background:var(--blue); color:#fff; font-size:14px; font-weight:600; padding:13px 26px; border-radius:2px; }
.btn-download:hover { background:var(--blue-deep); }

@media(max-width:700px){
  .toc-acte-block__chapters { grid-template-columns:1fr; }
}

/* POURQUOI — récit long-form */
.story-rupture { padding:70px 0; background:var(--blue-deep); text-align:center; }
.story-rupture__label { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--accent-warm); font-weight:700; margin-bottom:20px; }
.story-rupture__title { font-size:clamp(1.6rem,3.5vw,2.3rem); color:#fff; line-height:1.35; max-width:700px; margin:0 auto 20px; }
.story-rupture__title em { font-style:normal; color:var(--accent-warm); }
.story-rupture__detail { font-size:15px; color:#C9D6E6; max-width:560px; margin:0 auto; line-height:1.7; }

.citation-block { padding:64px 0; max-width:700px; margin:0 auto; }
.citation-block p.lead { font-size:16px; color:var(--ink-soft); line-height:1.85; margin-bottom:28px; }
blockquote.citation { border-left:3px solid var(--blue); padding:6px 0 6px 26px; margin:28px 0; }
blockquote.citation p { font-size:20px; font-weight:600; color:var(--ink); line-height:1.5; margin-bottom:12px; }
blockquote.citation cite { font-size:12.5px; color:var(--ink-faint); font-style:normal; text-transform:uppercase; letter-spacing:.05em; }

.story-nombres { padding:70px 0; background:var(--paper-alt); }
.story-nombres__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; max-width:1120px; margin:0 auto; padding:0 32px; }
.nombre-item__titre { font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--blue); font-weight:700; margin-bottom:12px; }
.nombre-item__chiffre { font-family:var(--font-mono); font-size:44px; font-weight:600; color:var(--ink); line-height:1; margin-bottom:16px; }
.nombre-item__chiffre span { font-size:20px; color:var(--ink-faint); }
.nombre-item__recit { font-size:14px; color:var(--ink-soft); line-height:1.7; }
.nombre-item__recit strong { color:var(--ink); font-weight:700; }

.story-finale { padding:76px 0; text-align:center; }
.story-finale__surtitre { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--blue); font-weight:700; margin-bottom:18px; }
.story-finale__titre { font-size:clamp(1.7rem,3.5vw,2.4rem); line-height:1.3; max-width:720px; margin:0 auto 30px; }
.story-finale__titre em { font-style:normal; color:var(--accent-warm); }
.story-finale__texte { max-width:640px; margin:0 auto; }
.story-finale__texte p { font-size:15.5px; color:var(--ink-soft); line-height:1.8; margin-bottom:18px; }
.story-finale__signature { margin-top:34px; }
.story-finale__signature p { font-size:13px; color:var(--ink-faint); }
.story-finale__signature p:first-child { font-weight:700; color:var(--ink); margin-bottom:4px; }

.story-cta-final { padding:76px 0; background:var(--blue-deep); text-align:center; }
.story-cta-final__texte { font-size:clamp(1.5rem,3vw,2rem); color:#fff; line-height:1.4; margin-bottom:34px; }
.story-cta-final__texte em { font-style:normal; color:var(--accent-warm); }
.story-cta-final__actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

@media(max-width:800px){
  .story-nombres__grid { grid-template-columns:1fr; }
}

/* ARTICLES ACTUALITÉS */
.article-hero-v2 { padding:110px 0 50px; background:var(--blue-deep); }
.article-hero-v2 .container { max-width:760px; }
.article-back { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:#AEC2DC; margin-bottom:24px; }
.article-back:hover { color:#fff; }
.article-cat { font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-warm); margin-bottom:16px; }
.article-hero-v2 h1 { font-size:clamp(1.8rem,4vw,2.6rem); color:#fff; line-height:1.25; margin-bottom:20px; }
.article-meta { display:flex; align-items:center; gap:14px; flex-wrap:wrap; font-size:13.5px; color:#AEC2DC; }

.article-content { padding:56px 0 70px; }
.article-body { max-width:700px; margin:0 auto; }
.article-body p { font-size:15.5px; color:var(--ink-soft); line-height:1.9; margin-bottom:20px; }
.article-body h2 { font-size:22px; margin:40px 0 16px; }
.article-body blockquote { margin:28px 0; padding:22px 26px; background:var(--paper-alt); border-left:3px solid var(--blue); }
.article-body blockquote p { font-size:17px; font-weight:600; color:var(--ink); line-height:1.55; margin-bottom:0; }
.article-body .lead { font-size:17px; color:var(--ink); font-weight:500; line-height:1.75; margin-bottom:28px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.article-separator { text-align:center; margin:34px 0; color:var(--blue); font-size:16px; letter-spacing:.5em; opacity:.5; }

.article-footer-section { max-width:700px; margin:0 auto; padding-top:34px; border-top:1px solid var(--line); }
.article-share { display:flex; align-items:center; gap:10px; margin-bottom:34px; flex-wrap:wrap; }
.article-share-label { font-size:12.5px; color:var(--ink-soft); font-weight:600; }
.article-share-btn { padding:8px 16px; border:1px solid var(--line); border-radius:2px; font-size:12.5px; color:var(--ink-soft); }
.article-share-btn:hover { border-color:var(--blue); color:var(--blue); }
.article-inline-cta { background:var(--blue-deep); padding:34px; text-align:center; }
.article-inline-cta h3 { font-size:20px; color:#fff; margin-bottom:10px; }
.article-inline-cta p { color:#C9D6E6; font-size:14.5px; margin-bottom:20px; }

/* ACTUALITES INDEX */
.blog-featured-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line); border:1px solid var(--line); margin-bottom:2px; }
.article-card-v2 { background:var(--paper); display:flex; flex-direction:column; }
.article-card-v2:hover { background:var(--paper-alt); }
.article-card-v2__img { height:180px; }
.article-card-v2__body { padding:22px; flex:1; display:flex; flex-direction:column; }
.article-card-v2__meta { font-size:12px; color:var(--ink-faint); margin-bottom:10px; display:flex; gap:8px; align-items:center; }
.article-card-v2__title { font-size:16.5px; font-weight:700; color:var(--ink); line-height:1.35; margin-bottom:10px; }
.article-card-v2__excerpt { font-size:13px; color:var(--ink-soft); line-height:1.6; flex:1; }
.article-card-v2__link { font-size:12.5px; font-weight:600; color:var(--blue); margin-top:14px; }
.blog-grid-v2 { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); border-top:none; }
@media(max-width:900px){ .blog-featured-grid,.blog-grid-v2 { grid-template-columns:1fr; } }

/* ═══════════════════════════════════════════
   COUCHE DE COMPATIBILITÉ — pages non encore migrées
   Permet de recolorer adhesion.html / don.html sans toucher
   à leur HTML/JS : ces pages utilisent encore les anciens noms
   de variables (--navy, --brick, --cream...), on les fait
   simplement pointer vers les nouveaux tokens.
   NE JAMAIS renommer les classes ou IDs de ces pages avec ce fichier.
   ═══════════════════════════════════════════ */
:root {
  --navy: var(--blue);
  --navy-deep: var(--blue-deep);
  --navy-light: #3A5A8C;
  --brick: var(--accent-warm);
  --brick-light: #D89A5C;
  --cream: var(--paper-alt);
  --cream-dark: var(--line);
  --white: var(--paper);
  --gray-100: var(--paper-alt);
  --gray-300: var(--line);
  --gray-500: var(--ink-faint);
  --gray-700: var(--ink-soft);
  --text-light: #C9D6E6;
  --text-muted: #AEC2DC;
  --text-dark: var(--ink);
  --text-primary: var(--ink);
  --text-secondary: var(--ink-soft);
  --text-inverse: var(--paper);
  --green: #2D7A4F;
  --green-light: #E8F5EE;
  --success: #2D7A4F;
  --warning: var(--accent-warm);
  --error: #B3261E;
  --border: var(--line);
  --radius: 2px;
  --font-display: var(--font-sans);
  --font-body: var(--font-sans);
  --ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ═══════════════════════════════════════════
   CARTES D'ADHÉSION — réplique fidèle de la carte de membre
   de l'espace adhérent (.member-card), recolorée par palier.
   ═══════════════════════════════════════════ */
.pricing-hero { padding:calc(var(--nav-h) + 46px) 0 56px; background:var(--blue-deep); text-align:center; position:relative; overflow:hidden; }
.pricing-hero::before { content:''; position:absolute; top:-20%; right:-10%; width:500px; height:500px; background:radial-gradient(circle, rgba(199,127,59,.15) 0%, transparent 70%); pointer-events:none; }
.pricing-hero .back-link { color:#AEC2DC; font-size:13.5px; margin-bottom:24px; display:inline-block; position:relative; z-index:2; }
.pricing-hero .back-link:hover { color:#fff; }
.pricing-hero .eyebrow { color:var(--accent-warm); font-size:12px; text-transform:uppercase; letter-spacing:.15em; font-weight:700; margin-bottom:18px; position:relative; z-index:2; }
.pricing-hero h1 { color:#fff; font-size:clamp(2rem,4.5vw,3.2rem); line-height:1.15; margin-bottom:16px; position:relative; z-index:2; }
.pricing-hero h1 em { font-style:normal; color:var(--accent-warm); }
.pricing-hero p.lead { color:#D3DCE7; font-size:16px; max-width:560px; margin:0 auto; line-height:1.7; position:relative; z-index:2; }

.carousel-hint { display:flex; align-items:center; justify-content:center; gap:10px; margin:36px 0 30px; color:var(--ink-faint); font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; font-weight:600; }
.carousel-hint svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; animation:hint-slide 1.8s ease-in-out infinite; }
@keyframes hint-slide { 0%,100%{ transform:translateX(0); opacity:.5; } 50%{ transform:translateX(6px); opacity:1; } }

.cards-viewport { position:relative; height:400px; perspective:1600px; cursor:grab; margin-bottom:10px; }
.cards-viewport.dragging { cursor:grabbing; }
.cards-track { position:relative; width:100%; height:100%; }

/* Carte : pile centrée (centrage assuré par translate(-50%,-50%) côté JS) */
.card-slot { position:absolute; top:50%; left:50%; width:460px; will-change:transform, opacity, filter;
  transition:transform .55s cubic-bezier(.33,.9,.35,1), opacity .45s ease, filter .5s ease; }
.real-card {
  width:100%; aspect-ratio:85.6/54; border-radius:8px; padding:1.75rem; position:relative; overflow:hidden;
  display:flex; flex-direction:column; justify-content:space-between;
  box-shadow:0 8px 32px rgba(15,26,46,.3);
  transform:perspective(1100px) rotateX(var(--tiltX,0deg)) rotateY(var(--tiltY,0deg));
  transition:transform .45s ease-out, box-shadow .3s;
}
.card-slot .real-card:hover { box-shadow:0 16px 44px rgba(15,26,46,.4); }

/* Reflet métallisé : suit la souris, teinté selon la carte */
.real-card__sheen { position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .35s; z-index:1; mix-blend-mode:overlay; }
.card-slot:hover .real-card__sheen { opacity:1; }
.real-card--t1 .real-card__sheen { background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(120,160,220,.16) 0%, rgba(120,160,220,.04) 32%, transparent 58%); }
.real-card--t2 .real-card__sheen, .real-card--t3 .real-card__sheen { background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(210,225,255,.15) 0%, rgba(210,225,255,.03) 32%, transparent 58%); }
.real-card--t4 .real-card__sheen, .real-card--t5 .real-card__sheen { background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(255,214,140,.18) 0%, rgba(255,214,140,.04) 32%, transparent 58%); }
.real-card__sheen::after { content:''; position:absolute; inset:0; background:linear-gradient(var(--shine-angle,115deg), transparent 42%, rgba(255,255,255,var(--shine-strength,.08)) 50%, transparent 58%); transition:background .1s linear; }

.real-card--t1 { background:linear-gradient(135deg, #F4F6F9 0%, #E9EFF6 60%, #DCE4EE 100%); border:1px solid var(--line); }
.real-card--t2 { background:linear-gradient(135deg, var(--blue-deep) 0%, var(--blue) 60%, #2F4F7A 100%); }
.real-card--t3 { background:linear-gradient(135deg, #14294A 0%, #1B3D66 60%, #2A4A73 100%); }
.real-card--t4 { background:linear-gradient(135deg, #0A1728 0%, #10203A 60%, #1B3357 100%); }
.real-card--t5 { background:linear-gradient(135deg, #050C16 0%, #0A1728 55%, #142238 100%); }
.real-card::before { content:''; position:absolute; top:-50%; right:-30%; width:80%; height:200%; background:radial-gradient(ellipse, rgba(199,127,59,.12) 0%, transparent 60%); pointer-events:none; }
.real-card--t1::before { background:radial-gradient(ellipse, rgba(43,74,120,.08) 0%, transparent 60%); }
.real-card--t4::after, .real-card--t5::after { content:''; position:absolute; inset:0; border-radius:8px; padding:1px; background:linear-gradient(135deg, rgba(199,127,59,.7), transparent 45%, transparent 55%, rgba(199,127,59,.35)); -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }

.real-card__top { display:flex; justify-content:space-between; align-items:flex-start; position:relative; z-index:1; }
.real-card__brand { display:flex; align-items:center; gap:8px; }
.real-card__brand img { height:34px; }
.real-card__type { font-size:.6rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; margin-top:.2rem; }
.real-card--t1 .real-card__type { color:var(--ink-soft); }
.real-card--t2 .real-card__type, .real-card--t3 .real-card__type, .real-card--t4 .real-card__type, .real-card--t5 .real-card__type { color:var(--accent-warm); }
.real-card__badge { font-size:.65rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:.3rem .65rem; border-radius:20px; background:rgba(199,127,59,.18); color:var(--accent-warm); border:1px solid rgba(199,127,59,.35); }
.real-card--t1 .real-card__badge { background:var(--blue-tint); color:var(--blue); border-color:rgba(43,74,120,.2); }

.real-card__bottom { position:relative; z-index:1; }
.real-card__name { font-size:1.4rem; font-weight:700; letter-spacing:-.01em; margin-bottom:.2rem; }
.real-card--t1 .real-card__name { color:var(--ink); }
.real-card--t2 .real-card__name, .real-card--t3 .real-card__name, .real-card--t4 .real-card__name, .real-card--t5 .real-card__name { color:#fff; }
.real-card__tagline { font-size:.7rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-warm); margin-bottom:.35rem; }
.real-card__id { font-family:var(--font-mono); font-size:.65rem; letter-spacing:.1em; }
.real-card--t1 .real-card__id { color:var(--ink-faint); }
.real-card--t2 .real-card__id, .real-card--t3 .real-card__id, .real-card--t4 .real-card__id, .real-card--t5 .real-card__id { color:rgba(255,255,255,.45); }

.real-card__meta { display:flex; gap:2rem; margin-top:.85rem; }
.real-card__meta-item { display:flex; flex-direction:column; }
.real-card__meta-label { font-size:.55rem; font-weight:500; letter-spacing:.15em; text-transform:uppercase; }
.real-card__meta-value { font-size:.85rem; font-weight:500; margin-top:.15rem; }
.real-card--t1 .real-card__meta-label { color:var(--ink-faint); }
.real-card--t1 .real-card__meta-value { color:var(--ink); }
.real-card--t2 .real-card__meta-label, .real-card--t3 .real-card__meta-label, .real-card--t4 .real-card__meta-label, .real-card--t5 .real-card__meta-label { color:rgba(255,255,255,.4); }
.real-card--t2 .real-card__meta-value, .real-card--t3 .real-card__meta-value, .real-card--t4 .real-card__meta-value, .real-card--t5 .real-card__meta-value { color:#fff; }

.carousel-dots { display:flex; justify-content:center; gap:8px; margin:34px 0 50px; }
.carousel-dot { width:8px; height:8px; border-radius:50%; background:var(--line); transition:all .3s; cursor:pointer; }
.carousel-dot.active { background:var(--blue); width:24px; border-radius:4px; }

.card-detail { max-width:640px; margin:0 auto 60px; padding:0 32px; text-align:center; }
.card-detail__name { font-size:26px; font-weight:700; margin-bottom:6px; transition:opacity .25s; }
.card-detail__real { font-size:13.5px; color:var(--ink-soft); margin-bottom:24px; transition:opacity .25s; }
.card-detail__real strong { color:var(--blue); font-weight:700; }
.card-detail__benefits { list-style:none; display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:28px; text-align:left; max-width:440px; margin-left:auto; margin-right:auto; transition:opacity .25s; }
.card-detail__benefits li { font-size:14px; color:var(--ink-soft); display:flex; gap:10px; align-items:flex-start; line-height:1.5; }
.card-detail__benefits li svg { width:16px; height:16px; flex-shrink:0; margin-top:2px; stroke:var(--blue); fill:none; stroke-width:2.2; }
.card-detail__cta { display:inline-block; padding:14px 32px; }
.card-detail.fading .card-detail__name, .card-detail.fading .card-detail__real, .card-detail.fading .card-detail__benefits { opacity:0; }

.pricing-trust { display:flex; justify-content:center; gap:40px; flex-wrap:wrap; padding:0 0 70px; }
.pricing-trust-item { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink-soft); }
.pricing-trust-item svg { width:20px; height:20px; stroke:var(--blue); fill:none; stroke-width:1.8; }

@media(max-width:640px){
  /* Nav compacte sur mobile -> hauteur de référence réduite, les marges de Hero suivent */
  :root { --nav-h:80px; }
  .nav { padding:16px 0; }
  .nav.scrolled { padding:12px 0; }
  .nav__logo img { height:44px; }
  /* Marges hautes des Hero recalées sur la nav mobile (dégagement resserré) */
  .page-hero { padding:calc(var(--nav-h) + 28px) 0 44px; }
  .axe-hero { padding:calc(var(--nav-h) + 26px) 0 40px; }
  .pricing-hero { padding:calc(var(--nav-h) + 24px) 0 40px; }
  /* Hero d'accueil : hauteur auto + contenu qui s'écoule (plus de titre coupé sous la nav) */
  .hero { height:auto; min-height:calc(100vh - var(--nav-h)); padding-top:calc(var(--nav-h) + 24px); padding-bottom:48px; }
  .hero__content { height:auto; justify-content:flex-start; }
  .cards-viewport { height:300px; }
  .card-slot { width:320px; }
  .real-card { padding:1.25rem; }
  .pricing-trust { gap:20px; }
}
