/* ── Variables ───────────────────────────────────────────────────────────── */
:root {
  --navy:    #07254d;
  --navy-dk: #041730;
  --navy-md: #0d3566;
  --navy-lt: #1a4a80;
  --sage:    #9eaa98;
  --sage-lt: #b4bead;
  --sage-dk: #4f6a49;
  --sage-pl: #edf0eb;
  --sage-dim:#cdd5cb;
  --ivory:   #f5f0e8;
  --ivory-dk:#ede5d4;
  --ivory-lt:#faf8f4;
  --gold:    #b8963e;
  --gold-lt: #d4b060;
  --gold-pl: #f5edda;
  --white:   #ffffff;
  --ink:     #1a1a2e;
  --ink-md:  #3a3a50;
  --ink-lt:  #6a6a80;
  --red:     #c0392b;

  --font-sans: 'DM Sans', ui-sans-serif, system-ui, sans-serif;
  --font-serif:'Libre Baskerville', Georgia, serif;

  --max-w:   1280px;
  --max-w-md:1040px;
  --max-w-sm: 880px;
  --px:       40px;
}

/* ── Reset ─────────────────────────────────────────────────────────────────*/
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--font-sans);font-size:15px;line-height:1.6;color:var(--ink);background:var(--ivory-lt)}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}
ul{list-style:none}

::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--sage-dim);border-radius:3px}

/* ── Layout ────────────────────────────────────────────────────────────────*/
.container    {max-width:var(--max-w);   margin:0 auto;padding:0 var(--px)}
.container-md {max-width:var(--max-w-md);margin:0 auto;padding:0 var(--px)}
.container-sm {max-width:var(--max-w-sm);margin:0 auto;padding:0 var(--px)}
.section      {padding:76px var(--px)}
.section--navy   {background:var(--navy)}
.section--navy-dk{background:var(--navy-dk)}
.section--sage-pl{background:var(--sage-pl)}

/* ── Eyebrow ───────────────────────────────────────────────────────────────*/
.eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.eyebrow::before{display:none}
.eyebrow>div{width:22px;height:1px;background:var(--sage);flex-shrink:0}
.eyebrow--light>div{background:var(--gold-lt)}
/* Texte en sage foncé dédié (--sage-dk) plutôt que --sage (trop clair sur
   fond ivoire/blanc, ratio ~2.3:1 — échec WCAG AA). --sage reste inchangé
   pour les usages décoratifs (trait de l'eyebrow, fonds, bordures). */
.eyebrow span{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-dk);font-weight:600}
.eyebrow--light span{color:var(--gold-lt)}

/* ── Logo ──────────────────────────────────────────────────────────────────*/
.logo{display:flex;align-items:center;gap:14px;flex-shrink:0;cursor:pointer}
.logo__icon{background:#fff;border-radius:50%;width:52px;height:52px;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:2px}
.logo__icon img{width:48px;height:48px;object-fit:contain}
.logo__text{display:flex;flex-direction:column;gap:2px}
.logo__name{font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--navy);letter-spacing:.02em;line-height:1.2;white-space:nowrap}
.logo__sub{font-size:10px;font-weight:400;color:var(--ink-md);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.logo--light .logo__name{color:#fff}
.logo--light .logo__sub{color:rgba(255,255,255,.55)}

/* ── Buttons ───────────────────────────────────────────────────────────────*/
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:14px;font-weight:600;padding:12px 24px;border-radius:4px;border:none;cursor:pointer;letter-spacing:.01em;transition:all .18s;white-space:nowrap;text-decoration:none}
.btn--primary   {background:var(--gold);color:var(--navy-dk)}
.btn--primary:hover{background:var(--gold-lt)}
.btn--secondary {background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.btn--secondary:hover{background:rgba(255,255,255,.08)}
.btn--outline   {background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.btn--outline:hover{background:var(--navy);color:#fff}
.btn--sage      {background:var(--navy);color:#fff}
.btn--sage:hover{background:var(--navy-md)}
.btn--gold-outline{background:transparent;color:var(--gold-lt);border:1.5px solid rgba(184,150,62,.5)}
.btn--gold-outline:hover{border-color:var(--gold)}
.btn--lg  {font-size:15px;padding:14px 28px}
.btn--full{width:100%}
.nav-text-link{font-size:13.5px;color:var(--navy);font-weight:500;text-decoration:underline;text-decoration-color:rgba(7,37,77,.4)}
.nav-text-link:hover{text-decoration-color:var(--navy)}

/* ── Images ────────────────────────────────────────────────────────────────*/
.img-wrap{overflow:hidden;position:relative}
.img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.img-placeholder{background:repeating-linear-gradient(45deg,rgba(255,255,255,.025),rgba(255,255,255,.025) 1px,transparent 1px,transparent 12px),var(--navy-md);display:flex;align-items:center;justify-content:center}
.img-placeholder__label{text-align:center;color:rgba(255,255,255,.28);font-family:monospace;font-size:10px;padding:14px;line-height:1.5}

/* ── Grid helpers ──────────────────────────────────────────────────────────*/
.card-grid      {display:grid;gap:20px}
.card-grid--3   {grid-template-columns:repeat(3,1fr)}
.card-grid--2   {grid-template-columns:repeat(2,1fr)}
.card-grid--4   {grid-template-columns:repeat(4,1fr)}
.two-col        {display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center}
.two-col--start {align-items:start}
.two-col--gap   {gap:48px}

/* ── Cards ─────────────────────────────────────────────────────────────────*/
.card{border-radius:5px;overflow:hidden;box-shadow:0 3px 20px rgba(0,0,0,.07);background:#fff;transition:transform .22s,box-shadow .22s;cursor:pointer}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 36px rgba(0,0,0,.13)}
.card__img{height:190px;overflow:hidden;position:relative}
.card__img .img-wrap{height:100%}
.card__body{padding:22px 22px 26px}
.card__accent{width:24px;height:3px;border-radius:2px;margin-bottom:12px}
.card__title{font-family:var(--font-serif);font-size:17px;font-weight:700;color:var(--navy);margin-bottom:7px;line-height:1.3}
.card__text{font-size:13px;color:var(--ink-md);margin-bottom:16px;line-height:1.55}
.card__link{font-size:13px;color:var(--navy);font-weight:600}

/* ── Feature cards ─────────────────────────────────────────────────────────*/
.feature-card{background:#fff;border-radius:5px;padding:24px 22px;display:flex;gap:16px;align-items:flex-start;box-shadow:0 2px 12px rgba(0,0,0,.05);border:1px solid var(--ivory-dk)}
.feature-card__icon{font-size:24px;flex-shrink:0}
.feature-card__title{font-weight:700;color:var(--navy);font-size:15px;margin-bottom:5px}
.feature-card__text{font-size:13.5px;color:var(--ink-md);line-height:1.6}

/* ── Pillar cards (navy bg) ────────────────────────────────────────────────*/
.pillar-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:5px;padding:24px 20px}
.pillar-card__icon{font-size:24px;margin-bottom:12px}
.pillar-card__title{font-family:var(--font-serif);font-size:15px;font-weight:700;color:#fff;margin-bottom:8px}
.pillar-card__text{font-size:13px;color:rgba(255,255,255,.5);line-height:1.6}

/* ── Page header ───────────────────────────────────────────────────────────*/
.page-header{background:var(--navy-dk);padding:60px var(--px) 52px}
.page-header__inner{max-width:var(--max-w);margin:0 auto}
.page-header h1{font-family:var(--font-serif);font-size:38px;font-weight:700;color:#fff;margin-bottom:12px;line-height:1.2;max-width:520px}
.page-header p{font-size:16px;color:rgba(255,255,255,.55);font-weight:300;line-height:1.7;max-width:500px}

/* ── Tabs ──────────────────────────────────────────────────────────────────*/
.tabs{border-bottom:1px solid var(--ivory-dk);background:#fff;overflow-x:auto}
.tabs__inner{display:flex;max-width:var(--max-w-md);margin:0 auto;padding:0 24px}
.tabs__btn{background:none;border:none;border-bottom:2.5px solid transparent;cursor:pointer;padding:16px 14px;font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--ink-lt);white-space:nowrap;transition:color .15s}
/* RGAA 3.1 : l'état sélectionné ne doit pas reposer sur la seule couleur.
   Bordure plus épaisse (2,5px → 4px) + coche, en plus du changement de couleur. */
.tabs__btn.is-active{color:var(--navy);border-color:var(--navy);border-bottom-width:4px}
.tabs__btn.is-active::before{content:'✓ '}

/* ── Timeline ──────────────────────────────────────────────────────────────*/
.timeline{position:relative;padding-left:56px}
.timeline::before{content:'';position:absolute;left:20px;top:8px;bottom:8px;width:2px;background:var(--ivory-dk)}
.timeline__item{position:relative;margin-bottom:36px}
.timeline__dot{position:absolute;left:-44px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--gold);border:2.5px solid var(--ivory-lt);box-shadow:0 0 0 2px var(--gold)}
.timeline__row{display:flex;gap:18px;align-items:flex-start}
.timeline__year{font-family:var(--font-serif);font-size:16px;font-weight:700;color:var(--gold);min-width:48px}
.timeline__title{font-weight:700;color:var(--navy);font-size:16px;margin-bottom:5px}
.timeline__desc{font-size:14.5px;color:rgba(255,255,255,.62);line-height:1.65}

/* ── Audience grid ─────────────────────────────────────────────────────────*/
.audience-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.audience-card{background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.1);border-radius:5px;padding:18px 14px;cursor:pointer;text-align:center;transition:all .18s}
.audience-card:hover:not(.is-active){background:var(--sage);border-color:var(--sage)}
.audience-card:hover:not(.is-active) .audience-card__icon{color:var(--navy)}
.audience-card:hover:not(.is-active) .audience-card__label{color:var(--navy)}
.audience-card.is-active{background:var(--sage);border-color:var(--sage);border-width:3px}
.audience-card__icon{font-size:20px;margin-bottom:9px;color:var(--gold-lt);transition:color .18s}
.audience-card.is-active .audience-card__icon{color:#fff}
.audience-card__label{font-size:12.5px;font-weight:600;color:#fff;line-height:1.3;transition:color .18s}
.audience-card.is-active .audience-card__label::before{content:'✓ '}
.audience-detail{margin-top:14px;background:rgba(255,255,255,.06);border-radius:5px;padding:22px 26px;display:none;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;border-left:3px solid var(--gold)}
.audience-detail.is-open{display:flex}
.audience-detail__title{font-family:var(--font-serif);font-size:17px;color:#fff;margin-bottom:5px}
.audience-detail__desc{font-size:13.5px;color:rgba(255,255,255,.55);max-width:460px}

/* ── Donation CTA ──────────────────────────────────────────────────────────*/
.donation-cta{padding:76px var(--px);text-align:center;background:linear-gradient(135deg,var(--navy-dk) 0%,var(--navy) 60%,#0d2a1a 100%)}
.divider-gold{width:36px;height:2px;background:var(--gold);margin:0 auto 22px}
.donation-cta h2{font-family:var(--font-serif);font-size:36px;font-weight:700;color:#fff;margin-bottom:14px;line-height:1.22;max-width:680px;margin-left:auto;margin-right:auto}
.donation-cta>p{font-size:15.5px;color:rgba(255,255,255,.6);line-height:1.75;margin-bottom:30px;font-weight:300;max-width:560px;margin-left:auto;margin-right:auto}
.amount-btns{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.amount-btn{background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.22);border-radius:4px;color:#fff;font-family:var(--font-sans);font-size:16px;font-weight:600;padding:11px 26px;cursor:pointer;transition:all .18s}
.amount-btn:hover{background:rgba(184,150,62,.18);border-color:var(--gold)}
.donation-cta__note{font-size:12.5px;color:rgba(255,255,255,.38);margin-top:14px}

/* ── Forms ─────────────────────────────────────────────────────────────────*/
.form-section{background:#fff;border-radius:5px;padding:26px 24px;margin-bottom:16px;border:1px solid var(--ivory-dk)}
.form-section__title{font-family:var(--font-serif);font-size:16px;font-weight:700;color:var(--navy);margin-bottom:20px}
.form-grid{display:grid;gap:14px}
.form-grid--2{grid-template-columns:1fr 1fr}
.form-label{display:block;font-size:11.5px;color:var(--ink-lt);margin-bottom:5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.form-input{width:100%;border:1.5px solid var(--ivory-dk);border-radius:4px;padding:10px 14px;font-family:var(--font-sans);font-size:15px;background:#fff;outline:none;color:var(--ink);transition:border-color .15s}
.form-input:focus{border-color:var(--navy)}
.form-toggle-group{display:flex;gap:10px;margin-bottom:16px}
.form-toggle-btn{background:transparent;color:var(--ink-md);border:1.5px solid var(--ivory-dk);border-radius:4px;padding:8px 18px;cursor:pointer;font-family:var(--font-sans);font-weight:600;font-size:14px;transition:all .15s}
.form-toggle-btn.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.form-step-btns{display:flex;gap:12px;margin-top:24px}

/* Étapes */
.steps-bar{display:flex;gap:0;margin-bottom:32px}
.steps-bar__step{flex:1;text-align:center;padding:10px 0;border-bottom:2.5px solid var(--ivory-dk);color:var(--ink-lt);font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.steps-bar__step.is-active{border-color:var(--navy);color:var(--navy)}
.steps-bar__step.is-done{border-color:var(--sage);color:var(--sage)}

/* Montant */
.amount-selector{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.amount-selector__btn{background:transparent;color:var(--ink-md);border:1.5px solid var(--ivory-dk);border-radius:4px;padding:10px 22px;cursor:pointer;font-family:var(--font-sans);font-weight:600;font-size:15px;transition:all .15s}
.amount-selector__btn.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.amount-selector__input{border:1.5px solid var(--ivory-dk);border-radius:4px;padding:10px 16px;font-family:var(--font-sans);font-size:15px;width:140px;background:#fff;outline:none;color:var(--ink)}
.recurrence-selector{display:flex;gap:10px;margin-bottom:26px}
.recurrence-btn{background:transparent;color:var(--ink-md);border:1.5px solid var(--ivory-dk);border-radius:4px;padding:10px 22px;cursor:pointer;font-family:var(--font-sans);font-weight:600;font-size:15px;transition:all .15s}
.recurrence-btn.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.fiscal-info{background:var(--gold-pl);border-left:3px solid var(--gold);border-radius:0 4px 4px 0;padding:18px 20px;margin-bottom:24px;font-size:14px}
.fiscal-info__title{font-weight:600;color:var(--navy);margin-bottom:6px}
.fiscal-info__note{color:var(--ink-lt);font-size:12.5px;margin-top:4px}

/* Sidebar */
.sidebar-card{background:var(--navy);border-radius:6px;padding:24px 22px;margin-bottom:16px}
.sidebar-card__title{font-size:12px;color:var(--gold-lt);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
.sidebar-card__item{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}
.sidebar-card__text{font-size:13px;color:rgba(255,255,255,.7);line-height:1.4}
.sidebar-info{background:var(--sage-pl);border-radius:6px;padding:20px 22px;font-size:13.5px;line-height:1.65;color:var(--ink-md)}
.sidebar-info__title{font-weight:700;color:var(--navy);margin-bottom:6px;font-family:var(--font-serif)}
.sticky-sidebar{position:sticky;top:24px}

/* ── Jobs ──────────────────────────────────────────────────────────────────*/
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.filter-btn{background:#fff;color:var(--ink-md);border:1.5px solid var(--ivory-dk);border-radius:4px;padding:7px 16px;cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:600;transition:all .15s}
/* RGAA 3.1 : l'état sélectionné ne doit pas reposer sur la seule couleur.
   Bordure plus épaisse (1,5px → 3px) + coche, en plus du changement de teinte. */
.filter-btn.is-active{background:var(--navy);color:#fff;border-color:var(--navy);border-width:3px}
.filter-btn.is-active::before{content:'✓ '}
.job-list{display:flex;flex-direction:column;gap:12px}
.job-card{background:#fff;border-radius:5px;border:1px solid var(--ivory-dk);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.job-card__header{padding:22px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.job-card__tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;align-items:center}
.badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:2px;letter-spacing:.04em}
.badge--sage{background:var(--sage-pl);color:var(--sage)}
.badge--type{background:var(--ivory-dk);color:var(--ink-md);font-weight:500}
.badge--loc{font-size:11px;color:var(--ink-lt)}
.job-card__title{font-family:var(--font-serif);font-size:17px;font-weight:700;color:var(--navy);margin-bottom:6px}
.job-card__summary{font-size:13.5px;color:var(--ink-md);line-height:1.55}
.job-card__chevron{color:var(--navy);font-size:16px;flex-shrink:0;margin-top:2px;transition:transform .2s;user-select:none}
.job-card__chevron.is-open{transform:rotate(180deg)}
.job-card__body{padding:0 24px 24px;border-top:1px solid var(--ivory-dk);display:none}
.job-card__body.is-open{display:block}
.job-card__desc{font-size:14.5px;color:var(--ink-md);line-height:1.7;margin-top:16px;white-space:pre-line}
.job-card__skills-title{font-size:12px;color:var(--ink-lt);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:16px 0 8px}
.job-skill{display:flex;gap:8px;font-size:13.5px;color:var(--ink-md);margin-bottom:5px}
.job-skill::before{content:'✓';color:var(--sage);flex-shrink:0}
.job-salary{margin-top:14px;font-size:13.5px;color:var(--navy);font-weight:600}

/* ── Navigation ────────────────────────────────────────────────────────────*/
.nav{position:sticky;top:0;z-index:200;background:var(--navy-dk);border-bottom:1px solid rgba(255,255,255,.07)}
.nav__topbar{background:var(--sage);border-bottom:1px solid rgba(255,255,255,.08);padding:5px 24px;display:flex;justify-content:center;gap:36px}
.nav__topbar span{font-size:11px;color:rgba(255,255,255,.8);letter-spacing:.04em;white-space:nowrap}
.nav__body{max-width:var(--max-w);margin:0 auto;padding:6px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;row-gap:6px}
.nav__items{display:flex;align-items:center;gap:0}
.nav__item{position:relative}
.nav__btn{background:none;border:none;border-bottom:2px solid transparent;color:rgba(255,255,255,.72);font-family:var(--font-sans);font-size:13px;font-weight:500;padding:17px 11px;cursor:pointer;white-space:nowrap;transition:color .15s}
.nav__btn:hover{color:#fff}
.nav__btn--cta{margin-left:14px;background:var(--gold);border:none;color:var(--navy-dk);font-weight:700;padding:9px 18px;border-radius:4px;border-bottom:none;transition:background .15s}
.nav__btn--cta:hover{background:var(--gold-lt)}
.nav__dropdown{position:absolute;top:100%;left:0;min-width:240px;background:var(--navy-dk);border:1px solid rgba(255,255,255,.08);border-radius:0 0 4px 4px;box-shadow:0 8px 24px rgba(0,0,0,.3);opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .18s,transform .18s;z-index:10}
.nav__item:hover .nav__dropdown,
.nav__item:focus-within .nav__dropdown{opacity:1;pointer-events:all;transform:translateY(0)}
.nav__dropdown-btn{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.72);font-size:13px;padding:10px 18px;font-family:var(--font-sans);transition:all .12s}
.nav__dropdown-btn:focus-visible{outline:2px solid var(--gold-lt);outline-offset:-2px;background:rgba(255,255,255,.07);color:#fff}
.nav__dropdown-btn:hover{background:rgba(255,255,255,.07);color:#fff}
.nav__hamburger{display:none;background:none;border:1px solid rgba(255,255,255,.2);border-radius:5px;padding:6px 14px;color:#fff;font-size:12px;cursor:pointer}
.nav__mobile-menu{display:none;background:var(--navy);border-top:1px solid rgba(255,255,255,.08);padding:8px 0 16px}
.nav__mobile-menu.is-open{display:block}
.nav__mobile-btn{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.78);font-size:15px;padding:11px 24px;font-family:var(--font-sans)}
.nav__mobile-cta{padding:8px 24px 0}
.nav__mobile-cta .btn{width:100%}
.nav__lang-switch{display:flex;align-items:center;gap:2px;margin-left:14px;padding:3px;background:rgba(255,255,255,.06);border-radius:5px}
.nav__lang-btn{background:none;border:none;color:rgba(255,255,255,.55);font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.03em;padding:5px 9px;border-radius:3px;cursor:pointer;text-decoration:none;transition:background .15s,color .15s;display:inline-block}
.nav__lang-btn:hover{color:#fff}
.nav__lang-btn.is-active{background:var(--gold);color:var(--navy-dk)}
.nav__mobile-lang-switch{display:flex;gap:8px;padding:14px 24px 0}
.nav__mobile-lang-switch .nav__lang-btn{flex:1;text-align:center;padding:9px;border:1px solid rgba(255,255,255,.15)}
.nav__search{position:relative;display:flex;align-items:center;margin-left:6px}
.nav__search-toggle{background:none;border:none;color:rgba(255,255,255,.72);cursor:pointer;padding:8px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}
.nav__search-toggle:hover,.nav__search-toggle:focus-visible{color:#fff;background:rgba(255,255,255,.08)}
.nav__search-form{position:absolute;right:0;top:calc(100% + 8px);background:var(--navy-dk);border:1px solid rgba(255,255,255,.12);border-radius:5px;box-shadow:0 8px 24px rgba(0,0,0,.3);padding:8px;z-index:20;display:flex;gap:6px}
.nav__search-form input{width:220px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.5);border-radius:4px;color:#fff;font-family:var(--font-sans);font-size:13px;padding:8px 10px}
.nav__search-form input::placeholder{color:rgba(255,255,255,.45)}
.nav__search-form input:focus{border-color:var(--gold-lt)}
.nav__search-form[hidden]{display:none}
.nav__search-submit{background:var(--gold);color:var(--navy-dk);border:none;border-radius:4px;font-family:var(--font-sans);font-size:12.5px;font-weight:600;padding:0 12px;cursor:pointer;flex-shrink:0;min-height:32px}
.nav__search-submit:hover{background:var(--gold-lt)}
.nav__mobile-search{display:flex;align-items:center;gap:8px;margin:0 24px 10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.5);border-radius:5px;padding:9px 12px}
.nav__mobile-search svg{flex-shrink:0;color:rgba(255,255,255,.5)}
.nav__mobile-search input{flex:1;min-width:0;background:none;border:none;color:#fff;font-family:var(--font-sans);font-size:14px}
.nav__mobile-search input::placeholder{color:rgba(255,255,255,.45)}

/* ── Page Nos équipes : professions par service ───────────────────────────── */
.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.team-grid .team-card{display:flex;flex-direction:column;align-items:flex-start}
.team-grid .team-card>.bullet-list{align-self:stretch}
.team-grid .team-card__doc{margin-top:auto}
.team-grid .team-card>.bullet-list:not(:last-child){margin-bottom:18px}
.team-grid .section-title{font-size:24px}
.team-card--wide{grid-column:1/-1}
.team-card__title{font-family:var(--font-serif);font-size:16px;color:var(--navy);margin-bottom:14px;line-height:1.4}
.team-card__note{font-family:var(--font-sans);font-size:13px;font-weight:400;color:var(--ink-md)}
.team-card__doc{margin-top:18px;font-size:13px}
.team-card__doc,.flyer-buttons .btn{white-space:normal;max-width:100%}
.team-list{font-size:14.5px;line-height:1.5}
.bullet-list.team-list--cols{display:block;columns:2;column-gap:32px}
.team-list--cols .bullet-list__item{break-inside:avoid;margin-bottom:8px}

/* ── Encadrés de documents à télécharger (page CRPT) ─────────────────────── */
.flyer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.flyer-grid .team-card{display:flex;flex-direction:column;align-items:flex-start}
.flyer-grid .team-card__doc{margin-top:auto}
.flyer-card__contact{margin-bottom:18px}
.flyer-card__text{color:var(--ink-md);font-size:14px;line-height:1.65;margin-bottom:12px}
.flyer-card__contact{color:var(--ink-md);font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.flyer-buttons{display:flex;flex-wrap:wrap;gap:10px}

/* ── Page Plan et accès : deux tuiles alignées ligne par ligne ────────────── */
.access-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(6,auto);column-gap:32px}
.access-grid__card{background:var(--ivory-lt);border:1px solid var(--ivory-dk);border-radius:8px;display:grid;grid-row:span 6;grid-template-rows:subgrid}

/* ── Footer ────────────────────────────────────────────────────────────────*/
.footer{background:var(--navy-dk);color:rgba(255,255,255,.55)}
.footer__inner{max-width:var(--max-w);margin:0 auto;padding:52px 40px 0;display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:48px}
.footer__brand p{margin-top:14px;font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.55);max-width:220px}
.footer__socials{display:flex;gap:8px;margin-top:16px}
.footer__social-icon{width:26px;height:26px;border-radius:3px;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer}
.footer__social-icon:hover{border-color:rgba(255,255,255,.4)}
.footer__has-badge{display:inline-flex;flex-direction:column;align-items:center;gap:6px;margin-top:16px}
.footer__has-logo{display:block;height:134px;width:auto}
.footer__has-caption{font-size:11px;line-height:1.3;color:var(--navy-dk);text-align:center;font-weight:600}
.footer__col-title{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:14px}
.footer__link{font-size:12.5px;margin-bottom:9px;color:rgba(255,255,255,.55);cursor:pointer;display:block;background:none;border:none;text-align:left;padding:0;font-family:var(--font-sans);transition:color .12s}
.footer__link:hover{color:#fff}
.footer__bottom{max-width:var(--max-w);margin:0 auto;padding:18px 40px 36px;border-top:1px solid rgba(255,255,255,.07);margin-top:36px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;align-items:center}
.footer__copy{font-size:11.5px;color:rgba(255,255,255,.55)}
.footer__legal{display:flex;gap:18px;flex-wrap:wrap}
.footer__legal span{font-size:11.5px;color:rgba(255,255,255,.55);cursor:pointer}

/* ── Hero ──────────────────────────────────────────────────────────────────*/
.hero{position:relative;padding-top:112px;background:var(--navy-dk);overflow:hidden}
.hero__bg{position:absolute;inset:0;background:linear-gradient(150deg,var(--navy-dk) 0%,var(--navy) 45%,#0d2a1a 100%)}
.hero__video-wrap{position:absolute;right:0;top:0;bottom:0;width:52%;overflow:hidden}
.hero__video-wrap video{width:100%;height:100%;object-fit:cover;display:block}
.hero__video-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(4,23,48,1) 0%,rgba(4,23,48,.7) 35%,rgba(4,23,48,.1) 100%)}
.hero-video-toggle{position:absolute;z-index:5;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:rgba(4,23,48,.55);border:1px solid rgba(255,255,255,.35);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:background .15s}
.hero-video-toggle:hover,.hero-video-toggle:focus-visible{background:rgba(4,23,48,.85)}
.hero__stripe{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);opacity:.5}
.hero__content{position:relative;z-index:2;max-width:var(--max-w);margin:0 auto;width:100%;padding:0 40px 64px}
.hero__eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.hero__eyebrow::before{display:none}
.hero__eyebrow>div{width:22px;height:1px;background:var(--gold-lt);flex-shrink:0}
.hero__eyebrow span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-lt);font-weight:500}
.hero__title{font-family:var(--font-serif);font-size:38px;font-weight:700;line-height:1.25;color:#fff;max-width:580px;margin-bottom:10px}
.hero__subtitle{font-family:var(--font-serif);font-size:20px;font-style:italic;line-height:1.55;color:rgba(255,255,255,.78);max-width:560px;margin-bottom:14px;font-weight:400}
.hero__body{font-size:14.5px;line-height:1.78;color:rgba(255,255,255,.5);max-width:520px;margin-bottom:30px;font-weight:300}
.hero__btns{display:flex;flex-wrap:wrap;gap:12px}

/* ── Care page ─────────────────────────────────────────────────────────────*/
.care-header{background:var(--navy-dk);padding:60px var(--px) 52px;position:relative;overflow:hidden}
.care-header__bg{position:absolute;right:0;top:0;bottom:0;width:40%;opacity:.22}
.care-header__bg img{width:100%;height:100%;object-fit:cover}
.care-header__bg-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(4,23,48,1) 0%,rgba(4,23,48,0) 100%)}
.care-header__content{position:relative;z-index:1;max-width:var(--max-w-sm);margin:0 auto}
.care-header h1{font-family:var(--font-serif);font-size:38px;font-weight:700;color:#fff;margin-bottom:16px;line-height:1.25;max-width:560px}
.care-header p{font-size:16px;color:rgba(255,255,255,.6);font-weight:300;line-height:1.72;max-width:540px}

/* ── Admission ─────────────────────────────────────────────────────────────*/
.admission-step{display:flex;gap:18px;align-items:flex-start;margin-bottom:22px}
.admission-step__num{width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.admission-step__title{font-weight:700;color:var(--navy);font-size:15px;margin-bottom:5px}
.admission-step__desc{font-size:14px;color:var(--ink-md);line-height:1.65}

/* ── Paiement ──────────────────────────────────────────────────────────────*/
.paiement-header{background:var(--navy-dk);padding:0 24px}
.paiement-header__inner{max-width:680px;margin:0 auto;padding:22px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.07)}
.paiement-ssl{font-size:12.5px;color:rgba(255,255,255,.4);display:flex;align-items:center;gap:6px}
.paiement-content{max-width:680px;margin:0 auto;padding:48px 24px 80px}
.paiement-content h1{font-family:var(--font-serif);font-size:30px;font-weight:700;color:var(--navy);margin-bottom:6px}
.paiement-content>p{font-size:14.5px;color:var(--ink-lt);line-height:1.6;margin-bottom:32px}
.paiement-pay-btn{width:100%;background:var(--navy);color:#fff;border:none;border-radius:4px;padding:16px 24px;font-family:var(--font-sans);font-weight:700;font-size:16px;cursor:pointer;transition:background .15s;margin-bottom:14px}
.paiement-pay-btn:hover{background:var(--navy-md)}
.paiement-note{text-align:center;font-size:12.5px;color:var(--ink-lt);display:flex;gap:6px;justify-content:center;align-items:center}

/* ── Contact box ───────────────────────────────────────────────────────────*/
.contact-box{background:var(--navy);border-radius:6px;padding:24px 22px;margin-bottom:16px}
.contact-box__title{font-family:var(--font-serif);font-size:17px;color:#fff;font-weight:700;margin-bottom:14px}
.contact-box__item{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.contact-box__label{font-size:13.5px;color:rgba(255,255,255,.7)}

/* ── Vie à l'INI image col swap ────────────────────────────────────────────*/
.vie-images-col{order:-1}

/* ── Page switcher ─────────────────────────────────────────────────────────*/
.page-switcher{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;gap:4px;flex-wrap:wrap;justify-content:center;background:rgba(4,23,48,.88);border-radius:8px;padding:6px 8px;backdrop-filter:blur(8px);max-width:calc(100vw - 24px)}
.page-switcher button{background:transparent;color:rgba(255,255,255,.7);border:none;border-radius:3px;padding:5px 10px;cursor:pointer;font-size:11px;font-family:var(--font-sans);font-weight:400;white-space:nowrap;transition:background .12s}
.page-switcher button.is-active{background:var(--navy-lt);color:#fff;font-weight:700}
.page-switcher button:hover{background:rgba(255,255,255,.1);color:#fff}

/* ── Utilities ─────────────────────────────────────────────────────────────*/
.section-title{font-family:var(--font-serif);font-size:34px;font-weight:700;color:var(--navy);max-width:520px;margin-bottom:24px}
.section-title--light{color:#fff;max-width:none}
.section-title--center{max-width:none;text-align:center}
/* Titres h3 sans classe (ex. sous-titres saisis via l'éditeur admin) : sur
   fond sombre, le noir hérité par défaut n'est pas lisible. */
.section--navy h3, .section--navy-dk h3{color:#fff}
.body-text{font-size:15.5px;color:var(--ink-md);line-height:1.78}
.label-text{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.3)}

/* Texte présent uniquement pour les technologies d'assistance (RGAA) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Pictogramme signalant l'ouverture d'un lien dans une nouvelle fenêtre (RGAA 6.3/8.9),
   ajouté dynamiquement par js/external-links.js */
.ext-link-icon{display:inline-block;width:.85em;height:.85em;margin-left:.35em;vertical-align:middle;object-fit:contain}
.ext-link-icon--light{filter:invert(1)}

/* Bandeau d'accréditations (cartouche "Nos engagements qualité") */
.accred-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
@media (max-width:768px){
  .accred-grid{grid-template-columns:1fr}
}

/* ── Legal / content pages ─────────────────────────────────────────────────*/
.section--ivory{background:var(--ivory-lt)}

/* Info box (white bordered panel) */
.info-box        {background:#fff;border:1px solid var(--ivory-dk);border-radius:6px;padding:24px 28px}
.info-box--lg    {padding:28px 32px}
.info-box--sm    {padding:16px 20px}
.info-box--inline{display:inline-block}
.info-box--flex  {display:flex;gap:32px;flex-wrap:wrap}
.info-title      {font-weight:600;color:var(--navy);margin-bottom:6px}
.info-title--lg  {font-weight:700;font-size:16px;color:var(--navy);margin-bottom:16px}

/* Two-column info grid */
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;color:var(--ink-md);font-size:14px;line-height:1.8}

/* Field label */
.field-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-lt);margin-bottom:4px}

/* Item cards (colored left-border accent) */
.item-stack          {display:flex;flex-direction:column;gap:16px}
.item-card           {background:#fff;border-radius:6px;padding:20px 24px;border-left:3px solid var(--gold)}
.item-card--navy     {border-left-color:var(--navy)}
.item-card--gold     {border-left-color:var(--gold)}
.item-card--sage     {border-left-color:var(--sage)}
.item-card--sage-dim {border-left-color:var(--sage-dim)}
.item-card__title    {font-weight:600;color:var(--navy);margin-bottom:6px}
.item-card__text     {color:var(--ink-md);font-size:14px;line-height:1.6}

/* Bullet list */
.bullet-list        {list-style:none;padding:0;display:flex;flex-direction:column;gap:8px;color:var(--ink-md)}
.bullet-list--gap-md{gap:10px}
.bullet-list--gap-lg{gap:12px}
.bullet-list__item  {display:flex;gap:12px;align-items:baseline}
.bullet-list__marker       {font-weight:700;flex-shrink:0;color:var(--gold)}
.bullet-list__marker--navy {color:var(--navy)}

/* Data table */
.table-wrap                         {overflow-x:auto}
.data-table                         {width:100%;border-collapse:collapse;font-size:14px}
.data-table thead tr                {background:var(--navy);color:#fff;text-align:left}
.data-table th                      {padding:12px 16px;font-weight:600}
.data-table td                      {padding:12px 16px;color:var(--ink-md)}
.data-table tbody tr                {border-bottom:1px solid var(--ivory-dk)}
.data-table tbody tr:nth-child(even){background:var(--ivory-lt)}

/* Compliance status (RGAA) */
.compliance-status       {display:flex;align-items:center;gap:24px;margin-bottom:24px;flex-wrap:wrap}
.compliance-badge        {background:var(--gold-pl);border:2px solid var(--gold);border-radius:6px;padding:16px 24px;text-align:center;flex-shrink:0}
.compliance-badge__value {font-family:var(--font-serif);font-size:36px;font-weight:700;color:var(--navy);line-height:1}
.compliance-badge__label {font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-lt);margin-top:4px}
.compliance-status__title{font-weight:700;font-size:16px;color:var(--navy);margin-bottom:8px}
.compliance-status__desc {color:var(--ink-md);line-height:1.7;font-size:14px}
.compliance-history      {font-size:14px;line-height:1.7}
.fix-log                 {color:var(--ink-lt);font-size:13px;line-height:1.6;margin-top:10px}

/* Tech tags */
.tag-list{display:flex;flex-wrap:wrap;gap:10px}
.tag     {background:#fff;border:1px solid var(--ivory-dk);border-radius:4px;padding:6px 14px;font-size:13px;font-weight:600;color:var(--navy)}

/* Rights grid (dark section) */
.rights-grid       {display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rights-card       {background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:18px 20px}
.rights-card__title{color:var(--gold-lt);font-weight:600;margin-bottom:6px}
.rights-card__text {color:rgba(255,255,255,.55);font-size:13px;line-height:1.6}

/* Cookie list */
.cookie-list       {display:flex;flex-direction:column;gap:12px}
.cookie-item       {background:#fff;border-radius:6px;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.cookie-item__title{font-weight:600;color:var(--navy)}
.cookie-item__desc {font-size:13px;color:var(--ink-lt);margin-top:2px}

/* Badge (pill label) */
.badge      {font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}
.badge--navy{background:var(--navy);color:#fff}
/* Texte marine et non blanc : var(--gold) est trop clair pour porter du blanc
   (2,81:1) ; en marine le badge donne 5,41:1. */
.badge--gold{background:var(--gold);color:var(--navy-dk)}

/* Section lead text (dark sections) */
.section-lead{color:rgba(255,255,255,.65);line-height:1.8;margin-bottom:24px}

/* Contact row (dark sections) */
.contact-row    {display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.contact-address{color:rgba(255,255,255,.55);font-size:14px}

/* Notice / footnote */
.notice{color:var(--ink-lt);font-size:13px;margin-top:20px}

/* Footnote reference and back-link (accessible: underlined, not color-only, explicit aria-label) */
.footnote-ref{color:inherit;text-decoration:underline;text-underline-offset:2px}
.footnote-ref:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* Inline code */

/* ── Cookie Banner ──────────────────────────────────────────────────────────*/
.cookie-banner {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
  background: var(--navy); padding: 16px 24px;
  box-shadow: 0 -2px 20px rgba(0,0,0,.3);
  transform: translateY(100%);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}
.cookie-banner--in  { transform: translateY(0); }
.cookie-banner--out { transform: translateY(100%); }
.cookie-banner__inner {
  max-width: 960px; margin: 0 auto;
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.cookie-banner__text  { flex: 1; min-width: 220px; }
.cookie-banner__title {
  font-weight: 600; font-family: var(--font-serif);
  color: var(--ivory-lt); margin-bottom: 4px;
}
.cookie-banner__desc  { font-size: 13.5px; color: rgba(255,255,255,.65); line-height: 1.5; }
.cookie-banner__link  { color: var(--gold); text-decoration: underline; }
.cookie-banner__actions { display: flex; gap: 10px; flex-shrink: 0; }
.cookie-btn {
  font-family: var(--font-sans); font-size: 13px; font-weight: 600;
  padding: 8px 20px; border-radius: 4px; cursor: pointer;
  border: 1.5px solid transparent;
  transition: background .2s, color .2s, border-color .2s;
}
.cookie-btn--accept { background: var(--gold); color: var(--navy-dk); border-color: var(--gold); }
.cookie-btn--accept:hover { filter: brightness(1.1); }
.cookie-btn--refuse {
  background: transparent; color: rgba(255,255,255,.75);
  border-color: rgba(255,255,255,.35);
}
.cookie-btn--refuse:hover { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.6); }
@media (max-width: 600px) {
  .cookie-banner__inner   { flex-direction: column; align-items: flex-start; gap: 12px; }
  .cookie-banner__actions { width: 100%; }
  .cookie-btn             { flex: 1; text-align: center; }
}
code{background:var(--ivory-dk);padding:1px 5px;border-radius:3px;font-size:13px}

/* Link color */
.link-navy{color:var(--navy);text-decoration:underline}

/* Spacing utilities */
.mb-12{margin-bottom:12px}
.mb-16{margin-bottom:16px}
.mb-20{margin-bottom:20px}
.mb-24{margin-bottom:24px}
.mb-28{margin-bottom:28px}
.mb-32{margin-bottom:32px}
.mt-12{margin-top:12px}
.mt-20{margin-top:20px}

/* ── Responsive ────────────────────────────────────────────────────────────*/
@media(max-width:900px){
  :root{--px:24px}
  .nav__items{display:none}
  .nav__lang-switch{display:none}
  .nav__search{display:none}
  .nav__hamburger{display:block}
  .access-grid{grid-template-columns:1fr;grid-template-rows:none;column-gap:0;row-gap:24px}
  .team-grid{grid-template-columns:1fr}
  .bullet-list.team-list--cols{columns:1}
  .flyer-grid{grid-template-columns:1fr}
  .access-grid__card{display:block;grid-row:auto}
  .nav__body{flex-wrap:wrap;row-gap:6px}
  .hero__video-wrap{width:100%;opacity:.12}
  .hero__video-overlay{background:rgba(4,23,48,.7)}
  .hero__title{font-size:26px}
  .hero__subtitle{font-size:16px}
  .hero__content{padding:0 24px 48px}
  .card-grid--3,.card-grid--4{grid-template-columns:1fr}
  .card-grid--2{grid-template-columns:1fr 1fr}
  .two-col{grid-template-columns:1fr;gap:36px}
  .vie-images-col{order:1}
  .audience-grid{grid-template-columns:1fr 1fr}
  .footer__inner{grid-template-columns:1fr;gap:32px;padding-bottom:28px}
  .footer__col--desktop{display:none}
  .footer__bottom{padding:18px 24px 28px}
  .page-header{padding:44px 24px 38px}
  .page-header h1{font-size:26px;max-width:none}
  .care-header{padding:44px 24px 38px}
  .care-header__bg{display:none}
  .care-header h1{font-size:26px}
  .timeline{padding-left:32px}
  .timeline::before{left:10px}
  .timeline__dot{left:-28px}
  .timeline__row{flex-direction:column;gap:4px}
  .section{padding:52px 24px}
  .donation-cta{padding:60px 24px}
  .donation-cta h2{font-size:26px}
  .form-grid--2{grid-template-columns:1fr}
  .section-title{font-size:24px}
  .form-step-btns{flex-wrap:wrap}
  .info-grid{grid-template-columns:1fr}
  .rights-grid{grid-template-columns:1fr}
  .compliance-status{flex-direction:column;align-items:flex-start}

  /* Filet de sécurité : plusieurs pages (admission, appareillage, crpt,
     mecenat, pensionnaires...) utilisent des grilles en style inline sans
     variante mobile, ce qui écrase illisiblement leurs colonnes en dessous
     de 900px. On les force à s'empiler. */
  [style*="repeat(2"],
  [style*="repeat(3"],
  [style*="repeat(4"],
  [style*="repeat(5"],
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1fr auto"],
  [style*="grid-template-columns: 1fr auto"]{
    grid-template-columns:1fr !important;
  }
}


/* ── FAQ accordéon ──────────────────────────────────────────────────────────── */


/* Generated by css_inline_to_class.py */

.s-d8ca {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 15.5px;
  margin-bottom: 4px;
}

.s-f137 {
  align-items: center;
  background: var(--sage-pl);
  border: 1px solid var(--sage-dim);
  border-radius: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: space-between;
  margin-top: 28px;
  padding: 20px 26px;
}

.s-2d15 {
  align-items: center;
  display: inline-flex;
  font-size: 13px;
  gap: 8px;
  padding: 9px 16px;
}

.s-e54e {
  color: var(--ink-lt);
  font-size: 11.5px;
  letter-spacing: 0.03em;
}

.s-b98c {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
}

.s-c9f3 {
  color: var(--ink-md);
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 14px;
}

.s-912d {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 16.5px;
  margin-bottom: 8px;
}

.s-c5ca {
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  font-weight: 700;
}

.s-a1a9 {
  align-items: center;
  background: var(--sage);
  color: var(--navy-dk);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 6px;
  justify-content: center;
  width: 116px;
}

.s-a778 {
  background: #ffffff;
  border-radius: 6px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.06);
  display: flex;
  overflow: hidden;
}

.s-61de {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, 1fr);
}

.s-c2c1 {
  margin: 0 auto;
  max-width: 1280px;
  padding: 68px 40px;
}

/* Grille des rapports d'activité : pas de variante mobile à l'origine,
   déborde en dessous de 900px (colonne fixe 116px + libellés longs). */
@media(max-width:900px){
  .s-61de{grid-template-columns:1fr}
  .s-a778{flex-direction:column}
  .s-a1a9{width:100%;flex-direction:row;padding:14px 0}
  .s-b98c{flex-direction:column;align-items:flex-start}
  .s-2d15{white-space:normal;text-align:center}
  .s-f137{flex-direction:column;align-items:stretch}
  .s-f137 .btn{white-space:normal}
}

.s-3719 {
  color: rgba(255,255,255,0.62);
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.78;
  max-width: 580px;
}

.s-0de5 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 18px;
  max-width: 640px;
  text-wrap: pretty;
}

.s-db9f {
  margin: 0 auto;
  max-width: 1280px;
  position: relative;
}

.s-b696 {
  background: linear-gradient(to right, var(--navy-dk) 0%, rgba(8,21,46,0.30) 42%, transparent 100%);
  inset: 0;
  position: absolute;
}

.s-68a2 {
  bottom: 0;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: 0;
  width: 46%;
}

.s-7a47 {
  background: var(--navy-dk);
  overflow: hidden;
  padding: 72px 40px 80px;
  position: relative;
}


/* Generated by css_inline_to_class.py */

.s-ef8a {
  background: none;
  border: none;
  color: rgba(255,255,255,0.4);
  cursor: pointer;
  font-size: 12px;
  text-decoration: underline;
}

.s-7d0c {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.s-666a {
  color: rgba(255,255,255,0.52);
  font-size: 13.5px;
  line-height: 1.65;
}

.s-9f62 {
  color: #ffffff;
  font-family: 'Libre Baskerville',serif;
  font-size: 22px;
  margin-bottom: 7px;
}

.s-4564 {
  align-items: center;
  display: grid;
  gap: 22px;
  grid-template-columns: 1fr auto;
  margin: 0 auto;
  max-width: 860px;
}

.s-4b2e {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.55;
}

.s-ec85 {
  color: var(--gold);
  flex-shrink: 0;
  font-size: 12px;
  margin-top: 2px;
}

.s-333d {
  align-items: flex-start;
  display: flex;
  gap: 12px;
}

.s-2146 {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.s-2341 {
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  padding: 22px 24px;
}

.s-fc3e {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 20px;
}

.s-a697 {
  background: var(--ivory-dk);
  border-radius: 3px;
  color: var(--ink-lt);
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  white-space: nowrap;
}

.s-75eb {
  color: var(--ink-md);
  font-size: 12.5px;
  line-height: 1.55;
  margin: 0;
}

.s-167e {
  color: var(--navy);
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
}

.s-0c24 {
  align-items: flex-start;
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 16px 18px;
}

.s-5484 {
  background: var(--sage-pl);
  border-radius: 3px;
  color: var(--sage);
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  white-space: nowrap;
}

.s-4bae {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.s-5e42 {
  color: var(--ink-md);
  font-size: 13.5px;
  line-height: 1.65;
  margin: 0;
}

.s-69a9 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 15px;
  margin-bottom: 6px;
}

.s-7c36 {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  flex: 1;
  padding: 16px 20px;
}

.s-0717 {
  align-items: center;
  background: var(--navy);
  border-radius: 50%;
  color: #ffffff;
  display: flex;
  flex-shrink: 0;
  font-family: 'Libre Baskerville',serif;
  font-size: 13px;
  font-weight: 700;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.s-6cbc {
  align-items: flex-start;
  display: flex;
  gap: 22px;
}

.s-edda {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.s-3d7a {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 32px;
}

.s-85fd {
  color: var(--ink-md);
  font-size: 13.5px;
  line-height: 1.65;
}

.s-8d5a {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 16px;
  margin-bottom: 8px;
}

.s-6f49 {
  background: var(--ivory-lt);
  border-radius: 5px;
  border-top: 3px solid var(--gold);
  padding: 24px 26px;
}

.s-8305 {
  background: var(--ivory-lt);
  border-radius: 5px;
  border-top: 3px solid var(--sage);
  padding: 24px 26px;
}

.s-a3d7 {
  background: var(--ivory-lt);
  border-radius: 5px;
  border-top: 3px solid var(--navy);
  padding: 24px 26px;
}

.s-cc36 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 28px;
}

.s-9cd6 {
  color: var(--navy);
  font-size: 13.5px;
  line-height: 1.65;
  margin: 0;
}

.s-9d04 {
  background: var(--sage-pl);
  border-left: 4px solid var(--sage);
  border-radius: 4px;
  max-width: 720px;
  padding: 18px 22px;
}

.s-b1f0 {
  color: var(--ink-md);
  font-size: 15px;
  line-height: 1.75;
  margin-bottom: 28px;
  max-width: 720px;
}

.s-e3ce {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 16px;
}

.s-6dab {
  color: rgba(255,255,255,0.55);
  font-size: 15px;
  line-height: 1.65;
  max-width: 580px;
}

.s-981b {
  color: #ffffff;
  font-family: 'Libre Baskerville',serif;
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 10px;
}

.s-c0a6 {
  background: var(--gold);
  height: 2px;
  opacity: 0.4;
  width: 8px;
}

.s-b08a {
  background: var(--gold);
  height: 2px;
  width: 32px;
}

.s-b35b {
  display: flex;
  gap: 3px;
  margin-bottom: 16px;
}

.s-2037 {
  color: var(--ink-md);
  font-size: 13px;
  line-height: 1.65;
}

.s-51ab {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 15px;
  margin-bottom: 7px;
}

.s-c99d {
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
  padding: 20px 22px;
}

.s-cff7 {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr;
}

.s-b713 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 24px;
}

.s-0406 {
  color: var(--ink-md);
  font-size: 13.5px;
  line-height: 1.7;
}

.s-7807 {
  align-items: center;
  background: var(--gold-pl);
  border-radius: 50%;
  display: flex;
  height: 40px;
  justify-content: center;
  margin-bottom: 14px;
  width: 40px;
}

.s-02d6 {
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  padding: 26px 28px;
}

.s-b161 {
  align-items: center;
  background: var(--sage-pl);
  border-radius: 50%;
  display: flex;
  height: 40px;
  justify-content: center;
  margin-bottom: 14px;
  width: 40px;
}

.s-5c8f {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 15px;
  margin-bottom: 8px;
}

.s-4aff {
  align-items: center;
  background: var(--navy);
  border-radius: 50%;
  color: #ffffff;
  display: flex;
  flex-shrink: 0;
  font-family: 'Libre Baskerville',serif;
  font-size: 14px;
  font-weight: 700;
  height: 44px;
  justify-content: center;
  margin: 0 auto 16px;
  width: 44px;
}

.s-0151 {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, 1fr);
  text-align: center;
}

.s-4b26 {
  background: var(--ivory-dk);
  height: 1px;
  left: 12.5%;
  position: absolute;
  right: 12.5%;
  top: 22px;
}

.s-4bd5 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 48px;
}

.s-06aa {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 8px;
}

.s-87bd {
  color: var(--sage);
  font-size: 20px;
  margin-bottom: 10px;
}

.s-b64b {
  background: #ffffff;
  border-left: 4px solid var(--sage);
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  padding: 22px 24px;
}

.s-522b {
  color: var(--navy);
  font-size: 20px;
  margin-bottom: 10px;
}

.s-4e41 {
  background: #ffffff;
  border-left: 4px solid var(--navy);
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  padding: 22px 24px;
}

.s-1986 {
  color: var(--gold);
  font-size: 20px;
  margin-bottom: 10px;
}

.s-1892 {
  background: #ffffff;
  border-left: 4px solid var(--gold);
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  padding: 22px 24px;
}

.s-995d {
  color: var(--ink-md);
  font-size: 14px;
  line-height: 1.7;
  margin-top: 12px;
  max-width: 660px;
}

.s-0032 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 28px;
  font-weight: 700;
  max-width: 540px;
  text-wrap: pretty;
}

.s-94d4 {
  border-bottom: 3px solid transparent;
  color: var(--ink-lt);
  font-size: 14.5px;
  font-weight: 600;
  padding: 18px 24px;
}

.s-9814 {
  border-bottom: 3px solid var(--gold);
  color: var(--navy);
  font-size: 14.5px;
  font-weight: 600;
  padding: 18px 24px;
}

.s-e069 {
  display: flex;
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 40px;
}

.s-516d {
  color: #ffffff;
  font-size: 12.5px;
  font-weight: 500;
}

.s-b479 {
  align-items: center;
  display: flex;
  gap: 10px;
}

.s-8d63 {
  background: var(--navy);
  display: flex;
  flex-wrap: wrap;
  gap: 44px;
  justify-content: center;
  padding: 12px 40px;
}

.s-2b22 {
  color: rgba(255,255,255,0.62);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.78;
  margin-bottom: 28px;
  max-width: 520px;
}

.s-759d {
  color: #ffffff;
  font-family: 'Libre Baskerville',serif;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.18;
  margin-bottom: 16px;
  max-width: 560px;
  text-wrap: pretty;
}

.s-bb40 {
  background: var(--gold);
  bottom: 0;
  left: 0;
  opacity: 0.6;
  position: absolute;
  top: 0;
  width: 3px;
  z-index: 1;
}

.s-4817 {
  background: var(--navy-dk);
  overflow: hidden;
  padding: 68px 40px 76px;
  position: relative;
}

.s-9b83 {
  color: var(--ink-md);
  font-size: 14.5px;
  line-height: 1.72;
  margin-top: 14px;
}

.s-4124 {
  align-items: center;
  color: var(--navy);
  cursor: pointer;
  display: flex;
  font-size: 15px;
  font-weight: 600;
  justify-content: space-between;
  list-style: none;
}

.s-f2e5 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  margin-bottom: 28px;
}

.s-f391 {
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  margin-bottom: 4px;
}

.s-2faf {
  align-items: center;
  background: rgba(255,255,255,0.06);
  border-left: 3px solid var(--gold);
  border-radius: 5px;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  padding: 20px 24px;
}

.s-3241 {
  color: rgba(255,255,255,0.65);
  font-size: 13px;
  line-height: 1.65;
}

.s-7efe {
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
}

.s-986d {
  background: rgba(255,255,255,0.07);
  border-radius: 5px;
  border-top: 2px solid var(--gold);
  padding: 20px;
}

.s-3192 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  margin-bottom: 28px;
  max-width: 560px;
}

.s-fbb8 {
  color: var(--ink-md);
  font-size: 14.5px;
  line-height: 1.72;
}

.s-e6a6 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 17px;
  margin-bottom: 10px;
}

.s-a8b1 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 38px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 12px;
  opacity: 0.12;
}

.s-c353 {
  background: var(--ivory-lt);
  border-radius: 4px;
  padding: 28px 24px;
  position: relative;
}

.s-1d00 {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(4, 1fr);
}

.s-70af {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 31px;
  margin-bottom: 40px;
  text-wrap: pretty;
}

.s-ebf9 {
  background: #ffffff;
  border-left: 3px solid var(--navy);
  border-radius: 4px;
  padding: 28px 28px 28px 24px;
}

.s-f136 {
  border-radius: 6px;
  height: 420px;
  order: 2;
}

.s-73a1 {
  color: var(--navy);
  flex-shrink: 0;
  font-size: 14px;
  margin-top: 2px;
}

.s-16af {
  align-items: flex-start;
  color: var(--ink-md);
  display: flex;
  font-size: 14px;
  gap: 11px;
  line-height: 1.5;
}

.s-8f39 {
  display: flex;
  flex-direction: column;
  gap: 11px;
  list-style: none;
}

.s-602f {
  color: var(--ink-md);
  font-size: 15.5px;
  line-height: 1.82;
  margin-bottom: 22px;
}

.s-8924 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 31px;
  margin-bottom: 16px;
  text-wrap: pretty;
}

.s-1b31 {
  align-items: center;
  display: grid;
  gap: 64px;
  grid-template-columns: 1fr 1fr;
  margin: 0 auto;
  max-width: 1160px;
}

.s-4cfd {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.s-c8fc {
  color: rgba(255,255,255,0.62);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.78;
  max-width: 500px;
}

.s-7838 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 42px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 18px;
  text-wrap: pretty;
}

.s-cd65 {
  background: var(--ivory-lt);
  border-left: 3px solid var(--navy);
  border-radius: 4px;
  padding: 28px 28px 28px 24px;
}

.s-e538 {
  height: 340px;
  overflow: hidden;
  width: 100%;
}

.s-c3a8 {
  background: #ffffff;
  border-radius: 4px;
  padding: 28px 24px;
  position: relative;
}

.s-f8bf {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, 1fr);
}

.s-1930 {
  color: var(--ink-lt);
  font-size: 12px;
  margin-top: 16px;
}

.s-d342 {
  color: var(--ink-md);
  font-size: 13px;
  line-height: 1.6;
}

.s-eaea {
  color: var(--navy);
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 6px;
}

.s-a69b {
  background: #ffffff;
  border: 1px solid var(--ivory-dk);
  border-left: 3px solid var(--sage);
  border-radius: 6px;
  display: block;
  padding: 18px 20px;
  text-decoration: none;
}

.s-f899 {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, 1fr);
}

.s-0609 {
  color: var(--ink-md);
  font-size: 14px;
  line-height: 1.72;
  margin-bottom: 24px;
  max-width: 640px;
}

.s-72d3 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  margin-bottom: 14px;
}

.s-17cc {
  background: var(--ivory);
  padding: 64px 40px;
  scroll-margin-top: 70px;
}

.s-52fd {
  color: rgba(255,255,255,0.7);
  font-size: 12.5px;
  line-height: 1.4;
  margin-bottom: 7px;
}

.s-4200 {
  color: var(--gold-lt);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  margin-bottom: 11px;
  text-transform: uppercase;
}

.s-95fc {
  background: var(--navy-dk);
  border-radius: 6px;
  margin-bottom: 14px;
  padding: 18px 22px;
}

.s-bdde {
  color: var(--ink-md);
  font-size: 13px;
  line-height: 1.7;
}

.s-56ee {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 16px;
  margin-bottom: 9px;
}

.s-f5bb {
  background: #ffffff;
  border-radius: 6px;
  box-shadow: 0 3px 20px rgba(0,0,0,0.07);
  margin-bottom: 18px;
  overflow: hidden;
}

.s-19db {
  color: var(--ink-lt);
  font-size: 11.5px;
  margin-top: 11px;
  text-align: center;
}

.s-147f {
  box-sizing: border-box;
  display: block;
  padding: 15px;
  text-align: center;
  width: 100%;
}

.s-9e27 {
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  box-sizing: border-box;
  font-family: 'DM Sans', sans-serif;
  font-size: 14.5px;
  outline: none;
  padding: 10px 13px;
  width: 100%;
}

.s-00a1 {
  color: var(--ink-md);
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-bottom: 5px;
}

.s-cabd {
  background: var(--ivory-dk);
  border-radius: 3px;
  color: var(--ink-md);
  font-size: 11.5px;
  font-weight: 600;
  padding: 4px 10px;
}

.s-4df5 {
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  margin-bottom: 14px;
  padding: 22px;
}

.s-90b1 {
  color: var(--ink-lt);
  font-size: 13px;
  margin-bottom: 22px;
}

.s-48ae {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 20px;
  margin-bottom: 14px;
}

.s-0a11 {
  color: var(--ink-lt);
  font-size: 12px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.s-9f01 {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 12px;
}

.s-ad68 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 20px;
  margin-bottom: 18px;
}

.s-1c5e {
  box-sizing: border-box;
  display: block;
  font-size: 15.5px;
  font-weight: 700;
  padding: 15px;
  text-align: center;
  width: 100%;
}

/* Montant de réduction d'impôt (page don). Le doré sur fond --gold-pl ne
   donnait que 2,41:1, sous le seuil AA de 3:1 pour du grand texte — et le
   mode contraste renforcé n'y changeait rien, ni --gold ni --gold-pl n'y
   étant redéfinis. Passé en --navy : 13:1 dans les deux modes. */
.s-924e {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 20px;
  font-weight: 700;
}

.s-a937 {
  align-items: center;
  background: var(--gold-pl);
  border: 1px solid var(--gold)40;
  border-radius: 5px;
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
  padding: 11px 16px;
}

.s-c9f7 {
  color: var(--ink-md);
  font-size: 13px;
  line-height: 1.5;
}

.s-23f4 {
  color: var(--sage);
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 3px;
}

.s-4f9f {
  color: var(--sage);
  font-size: 15px;
  margin-top: 1px;
}

.s-0bc6 {
  align-items: flex-start;
  background: var(--sage-pl);
  border: 1px solid var(--sage-dim);
  border-radius: 5px;
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
  padding: 12px 16px;
}

.s-c8b1 {
  color: var(--ink-lt);
  font-size: 15px;
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
}

.s-5ee3 {
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  box-sizing: border-box;
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  outline: none;
  padding: 12px 44px 12px 14px;
  width: 100%;
}

.s-2826 {
  background: #ffffff;
  border: 2px solid var(--ivory-dk);
  border-radius: 5px;
  color: var(--ink-md);
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  font-size: 17px;
  font-weight: 700;
  padding: 13px 6px;
}

.s-f961 {
  background: var(--sage-pl);
  border: 3px solid var(--navy);
  border-radius: 5px;
  color: var(--navy);
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  font-size: 17px;
  font-weight: 700;
  padding: 13px 6px;
}
/* RGAA 3.1 : l'état sélectionné ne doit pas reposer sur la seule couleur.
   Bordure plus épaisse (2px → 3px) + coche, en plus du changement de teinte. */
.s-f961::before{content:'✓ '}

.s-4a90 {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 14px;
}

.s-e8c2 {
  background: #ffffff;
  border: none;
  color: var(--ink-md);
  cursor: pointer;
  flex: 1;
  font-family: 'DM Sans', sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  padding: 10px 0;
}

.s-5699 {
  background: var(--navy);
  border: none;
  color: #fff;
  cursor: pointer;
  flex: 1;
  font-family: 'DM Sans', sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  padding: 10px 0;
}

.s-f903 {
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  display: flex;
  gap: 0;
  margin-bottom: 22px;
  overflow: hidden;
}

.s-33d7 {
  color: var(--ink-md);
  font-size: 12.5px;
  margin-left: 8px;
}

.s-e53b {
  align-items: center;
  background: var(--ivory-dk);
  border-radius: 50%;
  color: var(--ink-lt);
  display: flex;
  flex-shrink: 0;
  font-size: 11.5px;
  font-weight: 600;
  height: 26px;
  justify-content: center;
  width: 26px;
}

.s-13ac {
  background: var(--ivory-dk);
  flex: 1;
  height: 1px;
}

.s-ffcd {
  align-items: center;
  background: var(--navy);
  border-radius: 50%;
  color: #fff;
  display: flex;
  flex-shrink: 0;
  font-size: 11.5px;
  font-weight: 600;
  height: 26px;
  justify-content: center;
  width: 26px;
}

.s-d974 {
  align-items: center;
  display: flex;
  gap: 8px;
  margin-bottom: 26px;
}

.s-484c {
  align-items: start;
  display: grid;
  gap: 28px;
  grid-template-columns: 1.1fr 0.9fr;
}

.s-fc98 {
  color: var(--ink-md);
  font-size: 12.5px;
  margin-top: 4px;
}

.s-d1ed {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  font-weight: 700;
}

.s-6343 {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 1px 8px rgba(0,0,0,0.04);
  padding: 18px 20px;
}

.s-7f56 {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 36px;
}

.s-f51e {
  color: var(--ink-md);
  font-size: 14px;
  line-height: 1.7;
  max-width: 560px;
}

.s-6fc9 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  margin-bottom: 10px;
}

.s-abe5 {
  border-top: 1px solid var(--ivory-dk);
  margin-bottom: 20px;
  padding-top: 32px;
  scroll-margin-top: 70px;
}

.s-c25b {
  color: var(--navy);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.s-5789 {
  color: var(--ink-md);
  font-size: 13px;
  line-height: 1.65;
  margin-bottom: 14px;
}

.s-4068 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 8px;
}

.s-68e1 {
  background: #ffffff;
  border: 1px solid var(--ivory-dk);
  border-radius: 6px;
  padding: 22px 20px;
}

.s-680a {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, 1fr);
  margin-bottom: 34px;
}

.s-2c92 {
  margin: 0 auto;
  max-width: 980px;
  padding: 44px 40px 76px;
}

.s-31dd {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.72;
  margin: 0 auto 16px;
  max-width: 520px;
}

.s-3cd4 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.22;
  margin: 0 auto 14px;
  max-width: 680px;
  text-wrap: pretty;
}

.s-ebb6 {
  background: var(--gold);
  height: 2px;
  margin: 0 auto 18px;
  width: 36px;
}

.s-19e6 {
  background: linear-gradient(135deg, var(--navy-dk) 0%, var(--navy) 100%);
  padding: 60px 40px 68px;
  text-align: center;
}

.s-9521 {
  color: var(--ink-lt);
  font-size: 13.5px;
  line-height: 1.7;
  max-width: 640px;
}

.s-1b5f {
  color: var(--ink-md);
  font-size: 14.5px;
  line-height: 1.78;
  margin-bottom: 14px;
  max-width: 640px;
}

.s-225d {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 24px;
  margin-bottom: 10px;
}

.s-3fd6 {
  color: var(--ink-lt);
  flex-shrink: 0;
  font-size: 14px;
  white-space: nowrap;
}

.s-20e7 {
  color: var(--navy);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
}

.s-450b {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--ivory-dk);
  border-radius: 6px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 17px 22px;
}

.s-6de2 {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 46px;
}

.s-64aa {
  color: var(--ink-md);
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 22px;
  max-width: 600px;
}

.s-43f0 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 24px;
  margin-bottom: 6px;
}

.s-b04d {
  color: var(--gold-lt);
  font-family: 'Libre Baskerville', serif;
  font-size: 64px;
  font-weight: 700;
}

.s-f562 {
  align-items: baseline;
  display: flex;
  flex-shrink: 0;
  gap: 4px;
}

.s-8ab9 {
  color: rgba(255,255,255,0.6);
  font-size: 13.5px;
  line-height: 1.6;
  max-width: 420px;
}

.s-924d {
  color: rgba(255,255,255,0.55);
  font-size: 11px;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.s-b180 {
  align-items: center;
  background: var(--navy);
  border-radius: 8px;
  color: #fff;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 44px;
  padding: 36px 40px;
}

.s-d599 {
  color: rgba(7,37,77,0.82);
  font-size: 13px;
  line-height: 1.6;
}

.s-6d81 {
  color: var(--navy-dk);
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
}

.s-6178 {
  background: var(--sage);
  border-radius: 6px;
  margin-bottom: 36px;
  padding: 18px 22px;
}

.s-fd21 {
  margin: 0 auto;
  max-width: 920px;
  padding: 56px 40px 76px;
}

.s-0242 {
  color: rgba(255,255,255,0.62);
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.78;
}

.s-d5e6 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 18px;
}

.s-8528 {
  color: var(--navy);
  font-weight: 600;
  margin-bottom: 2px;
}

.s-9a84 {
  color: var(--ink-md);
  font-size: 13px;
  line-height: 1.75;
  margin-top: 16px;
  padding: 4px 2px;
}

.s-e109 {
  color: var(--navy-dk);
  font-weight: 600;
  text-decoration: underline;
}

.s-8ecf {
  color: var(--navy-dk);
  font-size: 15.5px;
  line-height: 1.78;
}

.s-b67a {
  background: var(--sage);
  border-radius: 8px;
  margin-top: 16px;
  padding: 18px 20px;
}

.s-9d26 {
  background: var(--navy);
  border: none;
  border-radius: 5px;
  color: #fff;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  padding: 13px 30px;
  width: 100%;
}

.s-f70d {
  align-items: flex-start;
  color: var(--ink-md);
  display: flex;
  font-size: 12px;
  gap: 9px;
  line-height: 1.5;
  margin-bottom: 18px;
}

.s-74e7 {
  --altcha-color-base: var(--ivory-lt);
  --altcha-color-border: var(--ivory-dk);
  --altcha-color-text: var(--navy);
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
}
/* Le widget ALTCHA applique lui-même opacity:0.4 sur son pied de page
   (« Protected by ALTCHA »), ce qui ramène --altcha-color-text sous le
   seuil de contraste AA malgré une couleur de base conforme. Non pilotable
   via les variables --altcha-color-*, d'où cette surcharge ciblée. */
.s-74e7 .altcha-footer,
.s-74e7 .altcha-footer:hover {
  opacity: 1 !important;
}

.s-aaec {
  background: #ffffff;
  border: 1px solid var(--ink-lt);
  border-radius: 5px;
  box-sizing: border-box;
  color: var(--navy);
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  margin-bottom: 14px;
  min-height: 110px;
  padding: 11px 13px;
  resize: vertical;
  width: 100%;
}

.s-4eae {
  color: var(--navy);
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  margin-bottom: 6px;
}

.s-b0af {
  background: #ffffff;
  border: 1px solid var(--ink-lt);
  border-radius: 5px;
  box-sizing: border-box;
  color: var(--navy);
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  margin-bottom: 14px;
  padding: 11px 13px;
  width: 100%;
}

.s-3a17 {
  color: var(--ink-md);
  font-size: 12.5px;
  line-height: 1.6;
  margin-bottom: 20px;
}

.s-7f08 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 20px;
  margin-bottom: 6px;
}

.s-b456 {
  background: #ffffff;
  border: 1px solid var(--ivory-dk);
  border-radius: 8px;
  box-shadow: 0 4px 22px rgba(7,37,77,0.07);
  padding: 28px 26px;
}

.s-35c6 {
  color: var(--ink-md);
  font-size: 14px;
  line-height: 1.75;
  padding: 0 0 16px;
}

/* --sage-dk et non --sage : ce dernier ne donne que 2,43:1 sur blanc. */
.s-a08b {
  color: var(--sage-dk);
  flex-shrink: 0;
  font-size: 18px;
  transition: transform 0.2s;
}

.s-f872[aria-expanded="true"] .s-a08b {
  transform: rotate(180deg);
}

.s-f872 {
  align-items: center;
  background: none;
  border: none;
  color: var(--navy);
  cursor: pointer;
  display: flex;
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 600;
  gap: 12px;
  justify-content: space-between;
  line-height: 1.4;
  list-style: none;
  padding: 15px 0;
  text-align: left;
  width: 100%;
}

.s-d59a {
  color: var(--sage-dk);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.s-3599 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  margin-bottom: 26px;
}

.s-b048 {
  align-items: start;
  display: grid;
  gap: 60px;
  grid-template-columns: 1.5fr 1fr;
}

.s-d4ec {
  margin: 0 auto;
  max-width: 1200px;
  padding: 62px 40px 84px;
}

.s-86a5 {
  color: rgba(255,255,255,0.62);
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.78;
  max-width: 520px;
}

.s-c8ba {
  background: #ffffff;
  border: 1.5px solid var(--sage-dim);
  border-radius: 4px;
  color: var(--navy);
  font-size: 13.5px;
  font-weight: 500;
  padding: 11px 22px;
}

.s-c9c4 {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin: 0 auto;
  max-width: 1280px;
}

.s-c544 {
  color: var(--ink-md);
  font-size: 14.5px;
  line-height: 1.7;
  max-width: 560px;
}

.s-d7ca {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  margin-bottom: 8px;
}

.s-ffb0 {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1280px;
}

.s-0b55 {
  color: rgba(255,255,255,0.52);
  font-size: 13px;
  line-height: 1.65;
}

.s-2a4e {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 15px;
  margin-bottom: 5px;
}

.s-0f52 {
  background: var(--gold);
  border: 2px solid var(--navy);
  border-radius: 50%;
  height: 9px;
  left: -5px;
  position: absolute;
  top: 5px;
  width: 9px;
}

.s-e56a {
  color: var(--gold-lt);
  font-family: 'Libre Baskerville', serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  padding-right: 26px;
  text-align: right;
}

.s-bb4a {
  align-items: flex-start;
  display: flex;
  justify-content: flex-end;
}

.s-81dc {
  display: grid;
  gap: 28px;
  grid-template-columns: 110px 1fr;
  margin-bottom: 32px;
  padding-bottom: 32px;
}

.s-7369 {
  background: var(--sage);
  border: 2px solid var(--navy);
  border-radius: 50%;
  height: 9px;
  left: -5px;
  position: absolute;
  top: 5px;
  width: 9px;
}

.s-bad0 {
  color: rgba(255,255,255,0.55);
  font-family: 'Libre Baskerville', serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  padding-right: 26px;
  text-align: right;
}

.s-7383 {
  border-bottom: 1px solid rgba(255,255,255,0.06);
  display: grid;
  gap: 28px;
  grid-template-columns: 110px 1fr;
  margin-bottom: 32px;
  padding-bottom: 32px;
}

.s-e02e {
  background: rgba(255,255,255,0.1);
  bottom: 0;
  left: 110px;
  position: absolute;
  top: 0;
  width: 1px;
}

.s-905b {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 30px;
  margin-bottom: 44px;
}

.s-08eb {
  color: var(--ink-md);
  font-size: 12.5px;
  line-height: 1.65;
}

.s-ff10 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 14.5px;
  line-height: 1.35;
  margin-bottom: 9px;
}

.s-3d9b {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 2px 14px rgba(0,0,0,0.05);
  overflow: hidden;
}

.s-7ccb {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, 1fr);
}

.s-f64e {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 30px;
  margin-bottom: 32px;
  max-width: 460px;
}

.s-60c1 {
  color: var(--ink-md);
  font-size: 15.5px;
  line-height: 1.85;
}

.s-67a1 {
  color: var(--ink-md);
  font-size: 15.5px;
  line-height: 1.85;
  margin-bottom: 16px;
}

.s-5423 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  margin-bottom: 20px;
  max-width: 520px;
  text-wrap: pretty;
}

.s-1110 {
  color: var(--ink-md);
  font-size: 15.5px;
  line-height: 1.82;
  margin: 0 auto;
  max-width: 660px;
}

.s-937f {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  font-style: italic;
  line-height: 1.5;
  margin-bottom: 22px;
  text-wrap: pretty;
}

.s-6bbe {
  background: var(--gold);
  height: 2px;
  margin: 0 auto 24px;
  width: 36px;
}

.s-0ece {
  margin: 0 auto;
  max-width: 860px;
  text-align: center;
}

.s-9508 {
  color: rgba(255,255,255,0.62);
  font-size: 17px;
  font-weight: 300;
  line-height: 1.75;
  max-width: 580px;
}

.s-64d2 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.18;
  margin-bottom: 18px;
  max-width: 680px;
  text-wrap: pretty;
}

.s-2e36 {
  background: var(--navy-dk);
  overflow: hidden;
  padding: 76px 40px 84px;
  position: relative;
}

/* Mention fiscale du bandeau d'accueil, sur le dégradé bleu marine. À 0.38
   d'opacité le rapport tombait à 3,37:1, sous le seuil AA de 4,5:1 pour du
   texte de 12,5 px ; porté à 0.55 (5,51:1). Même défaut que la note de bas
   de page des bandeaux accueil et don. */
.s-77df {
  color: rgba(255,255,255,0.55);
  font-size: 12.5px;
  margin-top: 14px;
}

.s-fdd5 {
  color: rgba(255,255,255,0.6);
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.75;
  margin-bottom: 30px;
}

.s-6d19 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.22;
  margin-bottom: 14px;
  text-wrap: pretty;
}

.s-797d {
  margin: 0 auto;
  max-width: 780px;
  text-align: center;
}

.s-77ae {
  color: var(--ink-md);
  font-size: 15.5px;
  line-height: 1.78;
  margin-bottom: 28px;
}

.s-5597 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 18px;
  text-wrap: pretty;
}

.s-2200 {
  color: var(--ink-md);
  font-size: 15.5px;
  line-height: 1.78;
  margin-bottom: 18px;
}

.s-8a6b {
  margin: 0 auto;
  max-width: 1280px;
  padding: 76px 40px;
}

.s-9b30 {
  align-items: center;
  display: none;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  width: 100%;
}

.s-cb9b {
  color: rgba(255,255,255,0.5);
  font-size: 14px;
  font-weight: 300;
}

.s-4272 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
}

.s-df34 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 7px;
}

.s-73f4 {
  background: var(--sage);
  border-radius: 2px;
  height: 3px;
  margin-bottom: 12px;
  width: 24px;
}

.s-09e6 {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 3px 20px rgba(0,0,0,0.07);
  cursor: pointer;
  display: block;
  height: 100%;
  overflow: hidden;
  text-decoration: none;
  transition: transform 0.22s, box-shadow 0.22s;
}

.s-6aac {
  background: var(--gold);
  border-radius: 2px;
  height: 3px;
  margin-bottom: 12px;
  width: 24px;
}

.s-370c {
  background: var(--navy);
  border-radius: 2px;
  height: 3px;
  margin-bottom: 12px;
  width: 24px;
}

.s-6357 {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, 1fr);
}
@media(max-width:900px){
  .s-6357{grid-template-columns:1fr}
}

.s-1681 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 34px;
  font-weight: 700;
  max-width: 520px;
  text-wrap: pretty;
}

.s-d775 {
  margin: 0 auto;
  max-width: 1280px;
  padding: 76px 40px;
  scroll-margin-top: 72px;
}

.s-2d79 {
  border-color: rgba(184,150,62,0.5);
  color: var(--gold-lt);
  font-size: 15px;
  padding: 14px 28px;
}

.s-a45e {
  color: rgba(255,255,255,0.5);
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.78;
  margin-bottom: 30px;
  max-width: 520px;
  text-wrap: pretty;
}

.s-3932 {
  color: rgba(255,255,255,0.78);
  font-family: 'Libre Baskerville', serif;
  font-size: 20px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.55;
  margin-bottom: 14px;
  max-width: 580px;
  text-wrap: pretty;
}

.s-7548 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 10px;
  max-width: 580px;
  text-wrap: pretty;
}

.s-c405 {
  color: var(--gold-lt);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.s-ba38 {
  background: var(--gold-lt);
  flex-shrink: 0;
  height: 1px;
  width: 22px;
}

.s-3251 {
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 40px 64px;
  position: relative;
  width: 100%;
  z-index: 2;
}

.s-7c24 {
  background: var(--gold);
  bottom: 0;
  left: 0;
  opacity: 0.5;
  position: absolute;
  top: 0;
  width: 3px;
}

.s-30cb {
  background: linear-gradient(to right, rgba(4,23,48,1) 0%, rgba(4,23,48,0.7) 35%, rgba(4,23,48,0.1) 100%);
  inset: 0;
  position: absolute;
}

.s-be41 {
  display: block;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
  width: 100%;
}

.s-9b2e {
  background: linear-gradient(150deg, var(--navy-dk) 0%, var(--navy) 45%, #0d2a1a 100%);
  inset: 0;
  position: absolute;
}

.s-7c59 {
  color: rgba(255,255,255,0.55);
  font-size: 13.5px;
  line-height: 1.6;
}

.s-18ca {
  color: #ffffff;
  font-family: 'Libre Baskerville',serif;
  font-size: 17px;
  margin-bottom: 7px;
}

.s-f65c {
  align-items: center;
  background: var(--navy-dk);
  border-radius: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  justify-content: space-between;
  margin-top: 28px;
  margin-bottom: 28px;
  padding: 28px 36px;
}

.s-2712 {
  color: var(--ink-md);
  font-size: 14px;
  line-height: 1.75;
  margin-bottom: 18px;
  margin-top: 14px;
}

.s-86b8 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 16px;
  margin-bottom: 3px;
}

.s-c193 {
  background: var(--ivory-dk);
  border-radius: 2px;
  color: var(--ink-md);
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
}

.s-5520 {
  background: var(--sage-pl);
  border-radius: 2px;
  color: var(--navy);
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
}

.s-95ee {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 7px;
}

.s-b7ed {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  padding: 18px 22px;
}

.s-1393 {
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  margin-bottom: 10px;
  overflow: hidden;
}

.s-d1f0 {
  background: #fde8e8;
  border-radius: 2px;
  color: var(--red);
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
}

.s-dae0 {
  background: #ffffff;
  border: 1.5px solid var(--ivory-dk);
  border-radius: 3px;
  color: var(--ink-md);
  cursor: pointer;
  font-size: 12.5px;
  padding: 5px 14px;
}

.s-c151 {
  background: var(--sage-pl);
  border: 1.5px solid var(--navy);
  border-radius: 3px;
  color: var(--navy);
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 600;
  padding: 5px 14px;
}

.s-b576 {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 22px;
}

.s-581e {
  color: var(--ink-lt);
  font-size: 15px;
  font-weight: 400;
}

.s-e948 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 26px;
}

.s-9a9b {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  margin-bottom: 22px;
}

.s-a034 {
  margin: 0 auto;
  max-width: 1280px;
  padding: 60px 40px;
}

.s-397a {
  margin: 0 auto;
  max-width: 1280px;
  padding: 12px 40px 28px;
}

.s-a194 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 16px;
  margin-bottom: 9px;
}

.s-2dda {
  color: var(--gold);
  font-size: 24px;
  margin-bottom: 14px;
}

.s-8e47 {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  padding: 28px 26px;
}

.s-a5c9 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 26px;
  margin-bottom: 28px;
  text-align: center;
}

.s-f419 {
  color: rgba(255,255,255,0.62);
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.78;
  max-width: 480px;
}

.s-f52e {
  color: #ffffff;
  font-family: 'Libre Baskerville',serif;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 18px;
  text-wrap: pretty;
}

.s-383d {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.s-2dd2 {
  color: rgba(255,255,255,0.62);
  font-size: 15px;
  line-height: 1.75;
  margin-bottom: 28px;
}

.s-5000 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 30px;
  margin-bottom: 14px;
}

.s-8dba {
  background: var(--gold);
  height: 2px;
  margin: 0 auto 20px;
  width: 36px;
}

.s-a5b6 {
  margin: 0 auto;
  max-width: 680px;
  text-align: center;
}

.s-93b5 {
  height: 52px;
  max-width: 100%;
  width: auto;
}

.s-7366 {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--ivory-dk);
  border-radius: 6px;
  display: flex;
  height: 92px;
  justify-content: center;
  padding: 16px 20px;
}

.s-847c {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(5, 1fr);
}

.s-3581 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  margin-bottom: 30px;
}

.s-2479 {
  color: var(--sage);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.s-2cc7 {
  margin: 0 auto;
  max-width: 1080px;
  text-align: center;
}

.s-6049 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 16px;
  margin-bottom: 8px;
}

.s-7fd6 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  margin-bottom: 28px;
  max-width: 540px;
}

.s-005f {
  margin: 0 auto;
  max-width: 1280px;
  padding: 8px 40px 72px;
}

.s-76b1 {
  color: rgba(7,37,77,0.82);
  display: flex;
  font-size: 13.5px;
  gap: 10px;
  line-height: 1.5;
  margin-bottom: 10px;
}

.s-343d {
  color: var(--navy-dk);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 14px;
  text-transform: uppercase;
}

.s-d783 {
  align-items: flex-start;
  color: rgba(7,37,77,0.80);
  display: flex;
  font-size: 13px;
  gap: 10px;
  line-height: 1.5;
  margin-top: 2px;
}

.s-f560 {
  color: rgba(7,37,77,0.80);
  font-size: 13.5px;
  line-height: 1.6;
}

.s-b0f0 {
  color: var(--navy-dk);
  flex-shrink: 0;
  font-family: 'Libre Baskerville', serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  min-width: 64px;
  white-space: nowrap;
}

.s-594f {
  align-items: flex-start;
  display: flex;
  gap: 16px;
}

.s-7d20 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 16px;
  margin-bottom: 10px;
}

.s-3ef1 {
  background: #ffffff;
  border-radius: 5px;
  border-top: 3px solid var(--gold);
  box-shadow: 0 2px 14px rgba(0,0,0,0.05);
  padding: 24px 22px;
}

.s-df56 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  margin-bottom: 32px;
  max-width: 520px;
}

.s-65c0 {
  color: rgba(255,255,255,0.62);
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.78;
  margin-bottom: 28px;
  max-width: 480px;
}

.s-b7dd {
  color: var(--navy);
  font-size: 14px;
  font-weight: 600;
}

.s-8ab1 {
  color: var(--ink-md);
  font-size: 13.5px;
  line-height: 1.7;
  margin-bottom: 6px;
}

.s-f29f {
  color: var(--ink-lt);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.s-08ea {
  background: #ffffff;
  border: 1px solid var(--ivory-dk);
  border-radius: 6px;
  padding: 18px 20px;
}

.s-03f4 {
  align-items: center;
  background: var(--sage-pl);
  border-radius: 8px;
  display: flex;
  height: 220px;
  justify-content: center;
  margin-bottom: 24px;
}

.s-10e6 {
  color: var(--ink);
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 32px;
  text-wrap: pretty;
}

.s-a656 {
  align-items: start;
  display: grid;
  gap: 80px;
  grid-template-columns: 1fr 1fr;
  margin: 0 auto;
  max-width: 860px;
  padding: 64px 40px;
}

/* ── Accessibilité visuelle ──────────────────────────────────────────────── */

/* Police adaptée aux lecteurs dyslexiques (chargée uniquement si l'option est activée) */
@font-face{
  font-family:'OpenDyslexic';
  src:url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Regular.woff') format('woff');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'OpenDyslexic';
  src:url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Bold.woff') format('woff');
  font-weight:700;font-style:normal;font-display:swap;
}

/* Liens d'évitement (skip links) — invisibles tant qu'ils n'ont pas le focus clavier */
.skip-links{position:absolute;top:0;left:0;z-index:1000}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy-dk);color:#fff;padding:14px 22px;border-radius:0 0 4px 0;font-size:14px;font-weight:600;text-decoration:underline;white-space:nowrap}
.skip-link:focus{left:0;outline:2px solid var(--gold-lt);outline-offset:-2px}

/* Cibles des liens d'évitement : afficher un repère visuel au moment où le focus y arrive */
#contenu-principal:focus-visible,
#site-nav:focus-visible,
#site-footer:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}

/* Bouton + panneau d'accessibilité (injecté dans la nav par js/a11y.js) */
.a11y{position:relative}
.a11y-btn{background:none;border:1px solid rgba(255,255,255,.3);border-radius:5px;color:#fff;padding:7px 12px;font-size:12.5px;font-family:var(--font-sans);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .15s}
.a11y-btn:hover,.a11y-btn:focus-visible{background:rgba(255,255,255,.1)}
.a11y-panel{position:absolute;top:100%;right:0;margin-top:10px;width:280px;max-width:calc(100vw - 24px);background:#fff;color:var(--ink);border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.28);padding:18px;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .18s,transform .18s;z-index:300}
.a11y-panel.is-open{opacity:1;pointer-events:all;transform:translateY(0)}
.a11y-panel__title{font-family:var(--font-serif);font-size:15px;font-weight:700;color:var(--navy);margin-bottom:14px}
.a11y-panel__group{margin-bottom:14px}
.a11y-panel__group:last-of-type{margin-bottom:16px}
.a11y-panel__label{font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--ink-md);margin-bottom:7px;display:block}
.a11y-panel__row{display:flex;gap:8px;flex-wrap:wrap}
.a11y-option{background:var(--ivory-lt);border:1.5px solid var(--ink-lt);border-radius:4px;padding:8px 14px;font-size:12.5px;cursor:pointer;color:var(--ink-md);font-family:var(--font-sans);font-weight:600;text-align:left;transition:all .15s;max-width:100%;white-space:normal}
.a11y-option:hover{border-color:var(--navy)}
.a11y-option.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.a11y-option--step{min-width:44px;text-align:center;padding:8px 10px}
.a11y-option--step[data-a11y-text-level="0"]{font-size:12px}
.a11y-option--step[data-a11y-text-level="1"]{font-size:13.5px}
.a11y-option--step[data-a11y-text-level="2"]{font-size:15px}
.a11y-option--step[data-a11y-text-level="3"]{font-size:16.5px}
.a11y-panel__reset{width:100%;text-align:center;font-size:12px;color:var(--ink-lt);background:none;border:none;cursor:pointer;text-decoration:underline;padding-top:4px;border-top:1px solid var(--ivory-dk)}

/* Préférences appliquées globalement sur <html> */
html.a11y-dyslexic body,
html.a11y-dyslexic body *{font-family:'OpenDyslexic', var(--font-sans) !important}

html.a11y-contrast{
  --ink-lt:#3d3d4a;
  --ink-md:#16161f;
  --sage:#5c7853;
  --gold-lt:#e8be63;
}
html.a11y-contrast body{color:#000}
html.a11y-contrast .nav__btn,
html.a11y-contrast .footer__link,
html.a11y-contrast .footer__legal span,
html.a11y-contrast .footer__copy{color:rgba(255,255,255,.92) !important}
/* Le bouton CTA a un fond doré (pas bleu marine) : lui conserver un texte
   foncé, sinon la règle générique ci-dessus le blanchit et fait chuter son
   contraste (~2.6:1 au lieu de ~6.4:1), à l'inverse de l'effet recherché. */
html.a11y-contrast .nav__btn--cta{color:var(--navy-dk) !important}

/* Case "Avantages fiscaux" de la page mécénat : le texte y est en var(--navy-dk)
   plein sur fond var(--sage). En mode renforcé, --sage est assombri (pensé pour
   un usage en texte, pas en fond), ce qui rapproche fond et texte et fait CHUTER
   le contraste (7,4:1 → 3,65:1) au lieu de l'améliorer. On bascule donc son fond
   vers un blanc quasi plein, ce qui porte le contraste à ~18:1. */
html.a11y-contrast .fiscal-box{background:var(--ivory-lt) !important}

/* Même défaut sur le badge année de la page rapports d'activités (texte
   var(--navy-dk) plein sur fond var(--sage)) : même correctif. */
html.a11y-contrast .s-a1a9{background:var(--ivory-lt) !important}

/* Même défaut (texte var(--navy-dk) plein sur fond var(--sage), 7.4:1 → 3.65:1
   en contraste renforcé) trouvé sur 3 autres encarts : notice à compléter
   (égalité pro), "Demandes spécifiques" (FAQ), "Tournages et interviews"
   (presse). Même correctif : fond quasi blanc en mode renforcé (~16.9:1). */
html.a11y-contrast .s-6178,
html.a11y-contrast .s-b67a,
html.a11y-contrast .s-aa8c{background:var(--ivory-lt) !important}

/* Puces « — » des listes (mentions légales, RGPD, plan du site, démarche
   qualité) : var(--gold) ne donne que 2,7:1 sur fond clair. Elles sont
   marquées aria-hidden car purement décoratives — la sémantique est portée
   par <ul>/<li> — mais le mode renforcé doit rester lisible à l'œil, d'où
   cet or assombri à 4,5:1 sur blanc. */
html.a11y-contrast .bullet-list__marker{color:#8d7330}

/* ── Visibilité du focus clavier ──────────────────────────────────────────── */
/* Règle de secours volontairement placée en toute fin de fichier : à
   spécificité égale, elle l'emporte en cascade sur tout `outline:none` défini
   plus haut (ex: certains champs de formulaire de don.html / paiement.html)
   et garantit un contour de focus visible sur tout élément interactif,
   quelle que soit la page. Ne pas déplacer plus haut dans le fichier. */
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

.s-f025 {
  color: var(--ink-md);
  font-size: 14px;
  line-height: 1.75;
  padding-bottom: 16px;
}

.s-4072 {
  color: var(--navy);
  cursor: pointer;
  font-family: 'Libre Baskerville', serif;
  font-size: 15px;
  padding: 16px 0;
}

.s-b842 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 15px;
  margin-bottom: 10px;
  padding-right: 28px;
}

.s-b968 {
  color: var(--sage);
  font-family: 'Libre Baskerville', serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  position: absolute;
  right: 16px;
  top: 14px;
}

.s-b46b {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  padding: 22px 20px;
  position: relative;
}

.s-4954 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 28px;
  margin-bottom: 28px;
  max-width: 580px;
}

.s-3444 {
  color: var(--ink-md);
  font-size: 15.5px;
  line-height: 1.82;
  margin-bottom: 20px;
}

.s-e19a {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 15px;
  margin-bottom: 8px;
}

.s-3df5 {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  overflow: hidden;
}

.s-26c2 {
  color: var(--ink-md);
  display: flex;
  font-size: 14px;
  gap: 10px;
  line-height: 1.5;
}

.s-e6eb {
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.s-f05d {
  align-items: center;
  display: grid;
  gap: 72px;
  grid-template-columns: 1fr;
  margin: 0 auto;
  max-width: 1280px;
  position: relative;
}

.s-9ec4 {
  color: var(--gold);
  font-size: 12.5px;
  font-weight: 600;
}

.s-87d0 {
  align-items: center;
  border-top: 1px solid var(--ivory-dk);
  display: flex;
  justify-content: space-between;
  padding-top: 13px;
}

.s-be11 {
  color: var(--navy);
  flex: 1;
  font-family: 'Libre Baskerville', serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 18px;
}

.s-93a8 {
  color: var(--navy);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.s-8260 {
  align-items: center;
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}

.s-e83c {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px;
}

.s-0e3e {
  background: var(--ivory-lt);
  border: 1px solid var(--ivory-dk);
  border-radius: 7px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  text-decoration: none;
}

.s-8e46 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 30px;
  margin-bottom: 12px;
}

.s-8582 {
  margin: 0 auto;
  max-width: 1280px;
  padding: 60px 40px 72px;
}

.s-1ce2 {
  color: var(--navy-dk);
  font-size: 15.5px;
  font-weight: 700;
  margin-bottom: 8px;
}

.s-aa8c {
  background: var(--sage);
  border-radius: 5px;
  margin-top: 20px;
  padding: 18px 20px;
}

.s-1f5e {
  background: var(--ivory-dk);
  border-radius: 2px;
  color: var(--ink-md);
  font-size: 11.5px;
  padding: 2px 8px;
}

.s-524e {
  color: var(--navy);
  flex: 1;
  font-size: 13.5px;
  font-weight: 500;
  min-width: 0;
}

.s-cf91 {
  align-items: center;
  border-bottom: 1px solid var(--ivory-dk);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 13px 0;
}

.s-26da {
  align-items: center;
  border-bottom: 1px solid var(--ivory-dk);
  cursor: pointer;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 13px 0;
  text-decoration: none;
}

.s-d072 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 22px;
  margin-bottom: 18px;
}

.s-23e6 {
  color: var(--ink-md);
  font-size: 12.5px;
  margin-top: 3px;
}

.s-0ca0 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 22px;
  font-weight: 700;
}

.s-57ce {
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 1px 8px rgba(0,0,0,0.04);
  padding: 14px 16px;
}

.s-1fcc {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, 1fr);
}

.s-1f61 {
  color: var(--navy);
  font-weight: 600;
  margin-bottom: 4px;
}

.s-14af {
  color: var(--ink-md);
  font-size: 13.5px;
  line-height: 1.8;
}

.s-f7c5 {
  background: #ffffff;
  border-radius: 5px;
  box-shadow: 0 2px 14px rgba(0,0,0,0.05);
  margin-bottom: 24px;
  padding: 24px;
}

.s-e427 {
  color: var(--navy);
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  margin-bottom: 18px;
}

.s-e62c {
  display: grid;
  gap: 56px;
  grid-template-columns: 1fr 1fr;
}

.s-e62c > div {
  min-width: 0;
}

.s-9cd3 {
  margin: 0 auto;
  max-width: 1280px;
  padding: 64px 40px 56px;
}

.s-bfac {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 18px;
  max-width: 580px;
}

.s-9281 {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 28px;
  margin-bottom: 18px;
}

.s-200a {
  color: rgba(255,255,255,0.72);
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.7;
}

.s-1f63 {
  color: #ffffff;
  font-family: 'Libre Baskerville',serif;
  font-size: 30px;
  line-height: 1.25;
  margin-bottom: 12px;
  text-wrap: pretty;
}

.s-7e3a {
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 40px;
  width: 100%;
}

.s-5fd0 {
  align-items: center;
  background: linear-gradient(90deg, rgba(7,37,77,0.85) 0%, rgba(7,37,77,0.5) 52%, rgba(7,37,77,0.1) 100%);
  display: flex;
  inset: 0;
  position: absolute;
}

.s-6afd {
  height: 440px;
  overflow: hidden;
  position: relative;
}

.s-f98e {
  color: var(--navy);
  font-family: 'Libre Baskerville',serif;
  font-size: 16px;
  margin-bottom: 11px;
}

.s-bf45 {
  background: var(--gold);
  border-radius: 50%;
  flex-shrink: 0;
  height: 5px;
  width: 5px;
}

.s-7db8 {
  align-items: center;
  color: var(--ink-md);
  display: inline-flex;
  font-size: 12.5px;
  gap: 7px;
}

.s-d457 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  margin: 0 auto;
  max-width: 1280px;
}

.s-3e3c {
  background: var(--ivory);
  border-bottom: 1px solid var(--ivory-dk);
  padding: 15px 40px;
}

.s-09d8 {
  color: rgba(255,255,255,0.62);
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.78;
  max-width: 560px;
}

.s-5faa {
  color: #ffffff;
  font-family: 'Libre Baskerville',serif;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 18px;
  max-width: 640px;
  text-wrap: pretty;
}

.s-b2ef {
  background: linear-gradient(to right, var(--navy-dk) 0%, rgba(8,21,46,0.32) 44%, transparent 100%);
  inset: 0;
  position: absolute;
}

.s-47ed {
  bottom: 0;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: 0;
  width: 42%;
}

.s-4515 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 21px;
  margin-bottom: 7px;
}

.s-75d5 {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 860px;
}

.s-ac5e {
  border-radius: 6px;
  height: 420px;
  order: 1;
}

.s-e4ae {
  color: rgba(255,255,255,0.85);
  font-size: 18px;
  font-weight: 300;
  line-height: 1.7;
  max-width: 520px;
}

.s-8a73 {
  color: #fff;
  font-family: 'Libre Baskerville', serif;
  font-size: 52px;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 18px;
  text-wrap: pretty;
}

.s-a77f {
  align-items: center;
  display: flex;
  inset: 0;
  position: absolute;
}

.s-a16b {
  background: linear-gradient(to right, rgba(7,37,77,0.94) 0%, rgba(7,37,77,0.74) 36%, rgba(7,37,77,0.18) 72%, rgba(7,37,77,0.04) 100%);
  inset: 0;
  position: absolute;
}

.s-7ef5 {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.s-7f20 {
  height: 560px;
  overflow: hidden;
  position: relative;
}

/* Grilles texte+photo à 2 colonnes générées sans variante mobile :
   sur petit écran, la colonne se rétrécit mais la photo garde sa hauteur
   fixe (ex. .s-f136), ce qui la recadre de façon exagérée. On empile. */
@media(max-width:900px){
  .s-1b31,.s-a656,.s-e62c{grid-template-columns:1fr;gap:32px}
  .s-7ccb{grid-template-columns:1fr}
  .s-b048{grid-template-columns:1fr;gap:32px}
  .s-1fcc{grid-template-columns:1fr}
}

/* Page « Faire un don » — critère RGAA 10.11. Ces deux grilles conservaient
   leur disposition multi-colonnes à 320 px, provoquant un débordement
   horizontal (document 477 px pour 320 disponibles). Elles avaient échappé à
   la correction globale de juillet 2026, la page étant alors hors périmètre
   d'audit. Constat du réaudit du 08/09/2026. */
@media (max-width: 768px) {
  /* Grilles multi-colonnes ramenées à une colonne. */
  .s-7f56,   /* chiffres clés : 3 colonnes            */
  .s-484c,   /* formulaire + colonne latérale         */
  .s-680a,   /* cartes d'introduction                 */
  .s-9f01,   /* champs appariés (prénom/nom, etc.)    */
  .s-cff7 {  /* champs appariés (code postal/ville)   */
    grid-template-columns: 1fr;
  }
  /* Le bandeau réservait 80 px de marges latérales sur les 320 px
     disponibles, et son titre en 38 px ne pouvait y tenir : certains mots
     dépassaient à eux seuls la largeur utile. */
  .s-19e6 { padding-left: 20px; padding-right: 20px; }

  /* Titres de bandeau en 44 px (histoire) et 40 px (égalité pro) : mêmes
     symptôme et correctif que .s-3cd4, alignés sur .hero__title. */
  .s-3cd4, .s-64d2, .s-d5e6 { font-size: 26px; }

  /* Frise chronologique (histoire) : la colonne de date figée à 110 px plus
     28 px de gouttière ne laissait pas au texte de quoi tenir. */
  .s-7383 { grid-template-columns: 1fr; gap: 10px; }

  /* Encart « Index égalité professionnelle » : rangée flex non sécable, le
     bloc de note (flex-shrink:0) débordait de 16 px. */
  .s-b180 { flex-direction: column; align-items: flex-start; }
}

/* Sous 480 px, deux réglages tenables sur mobile courant ne le sont plus. */
@media (max-width: 480px) {
  /* .card-grid--2 reste volontairement sur deux colonnes à 768 px ; à 320 px
     les cartes de la démarche qualité n'y tiennent plus. */
  .card-grid--2 { grid-template-columns: 1fr; }

  /* .btn est en white-space:nowrap : un libellé long (« Consulter notre
     politique de protection des données », mentions légales) portait le
     bouton à 426 px. */
  .btn { white-space: normal; }
}
