/* =====================================================================
   BEFOZA — DESIGN SYSTEM v3
   Une seule source de vérité. Toutes les pages héritent de ce fichier.
   RÈGLES : 2 polices · 1 échelle typo · 1 échelle d'espacement.
   Ne jamais écrire de font-size / margin / padding "à la main" dans le
   HTML : toujours passer par un token ou une classe de ce fichier.
   ===================================================================== */

:root{
  /* ---- PALETTE (ancrée dans Madagascar : latérite, forêt, Ravintsara) */
  --paper:#F4EEE3; --paper-2:#EBE2D2; --sand:#E4D9C4;
  --ink:#1B160F; --ink-soft:#574E42; --ink-faint:#8B8072;
  --green:#6FA30F; --green-deep:#4F760A; --green-bright:#A6D63F;
  --forest:#14301C; --forest-2:#0E2415;
  --laterite:#C0341A; --laterite-deep:#7E2410; --laterite-soft:#E4653F;
  --line:#DFD4BF; --line-dark:rgba(255,255,255,.15);

  /* ---- POLICES : DEUX familles, deux rôles. Aucune troisième. */
  --font-display:"Bricolage Grotesque",system-ui,sans-serif; /* titres + chiffres + eyebrows */
  --font-text:"Figtree",system-ui,-apple-system,sans-serif;   /* tout le reste */

  /* ---- ÉCHELLE TYPO : valeurs FIXES et partagées. */
  --fs-display:clamp(2.75rem,1.4rem + 5.4vw,5.25rem); /* H1 hero UNIQUEMENT */
  --fs-h1:clamp(2.2rem,1.4rem + 3.4vw,3.4rem);        /* titre de page */
  --fs-h2:clamp(1.9rem,1.35rem + 2.2vw,2.85rem);      /* titre de section — UNIFORME partout */
  --fs-h3:1.375rem;                                    /* sous-titre / carte — UNIFORME partout (22px) */
  --fs-lead:clamp(1.1rem,1rem + .5vw,1.28rem);        /* chapô */
  --fs-body:1.0625rem;                                 /* texte courant (17px) */
  --fs-sm:.9375rem;                                    /* secondaire (15px) */
  --fs-cap:.8125rem;                                   /* légende / mention (13px) */
  --fs-eyebrow:.75rem;                                 /* sur-titre (12px) */

  --lh-tight:1.06; --lh-snug:1.2; --lh-body:1.62;
  --ls-head:-.022em; --ls-eyebrow:.22em;

  /* ---- ÉCHELLE D'ESPACEMENT : base 4px. Rien en dehors de cette liste. */
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem;
  --s6:2rem; --s7:3rem; --s8:4rem; --s9:6rem; --s10:8rem;

  /* ---- RYTHME (dérivé de l'échelle, appliqué partout à l'identique) */
  --section-y:clamp(4rem,8vw,7rem); /* padding vertical de CHAQUE section */
  --head-gap:var(--s5);             /* eyebrow → titre */
  --head-lead-gap:var(--s4);        /* titre → chapô */
  --card-pad:clamp(1.25rem,2vw,1.75rem);
  --grid-gap:clamp(1.25rem,2.5vw,1.75rem);
  --wrap:1200px;
  --wrap-pad:clamp(1.2rem,4vw,2.6rem);

  /* ---- RAYONS / OMBRES */
  --r:14px; --r-lg:24px; --r-pill:100px;
  --shadow:0 2px 4px rgba(27,22,15,.05),0 12px 40px rgba(27,22,15,.09);
  --shadow-lg:0 40px 80px -28px rgba(27,22,15,.4);
  --ease:cubic-bezier(.2,.8,.2,1);
}

/* ===================== BASE ===================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-body);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* Titres : tous en display, même famille, même graisse, même interlettrage.
   La SEULE variable est la taille, pilotée par le token. */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:var(--lh-tight);
  letter-spacing:var(--ls-head);margin:0;color:var(--ink)}
h1{font-size:var(--fs-h1);font-weight:700}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);line-height:var(--lh-snug)}
h4{font-size:var(--fs-sm)}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
/* Garde-fou ratio : une <img> porte désormais width/height en HTML (anti-CLS).
   Si le CSS ne pilote qu'une dimension, l'autre doit rester libre. */
img:not([class]){height:auto}
figure{margin:0}
ul{margin:0;padding:0;list-style:none}
::selection{background:var(--green);color:#fff}
sup{font-size:.55em;vertical-align:super}

/* ===================== PRIMITIVES ===================== */
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--wrap-pad)}
.wrap-narrow{max-width:720px;margin:0 auto;padding-inline:var(--wrap-pad)}

/* Toute section a le MÊME rythme vertical. */
.section{padding-block:var(--section-y)}
.section--tint{background:var(--paper-2)}
.section--tight{padding-block:clamp(2.75rem,5.5vw,4.5rem)} /* rythme resserré : pages éditoriales / articles */

/* En-tête de section : structure unique, réutilisée à l'identique. */
.head{max-width:44rem}
.head--center{margin-inline:auto;text-align:center}
.head .eyebrow{margin-bottom:var(--head-gap)}
.head h2,.head h1{margin:0}
.head .lead{margin-top:var(--head-lead-gap)}

.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);
  font-size:var(--fs-eyebrow);font-weight:700;text-transform:uppercase;
  letter-spacing:var(--ls-eyebrow);color:var(--green-deep)}
.eyebrow .sp{width:1.15rem;height:1.15rem;flex:none;color:var(--laterite)}
.on-dark .eyebrow{color:var(--green-bright)}
.on-dark .eyebrow .sp{color:var(--green-bright)}

.lead{font-size:var(--fs-lead);line-height:1.5;color:var(--ink-soft)}
.on-dark .lead{color:rgba(255,255,255,.86)}
.accent{color:var(--green-deep)}
.on-dark .accent{color:var(--green-bright)}
.text-muted{color:var(--ink-soft)}
.fs-sm{font-size:var(--fs-sm)}
.fs-cap{font-size:var(--fs-cap);color:var(--ink-faint)}

/* Filet éditorial (note) — un seul style. */
.note{border-left:3px solid var(--green);padding-left:var(--s5);color:var(--ink-soft);font-size:var(--fs-sm)}
.note strong{color:var(--ink)}

/* ===================== BOUTONS ===================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--font-text);font-weight:700;font-size:var(--fs-sm);
  padding:.95rem 1.6rem;border-radius:var(--r-pill);border:1.5px solid transparent;
  cursor:pointer;line-height:1;white-space:nowrap;
  transition:transform .3s var(--ease),background .25s,color .25s,box-shadow .3s}
.btn svg{width:1.05em;height:1.05em;transition:transform .3s var(--ease)}
.btn-primary{background:var(--laterite);color:#fff;box-shadow:0 14px 30px -12px rgba(192,52,26,.65)}
.btn-primary:hover{background:var(--laterite-deep);transform:translateY(-3px)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-ghost{border-color:currentColor}
.btn-ghost:hover{background:var(--ink);color:var(--paper);transform:translateY(-3px)}
.on-dark .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.on-dark .btn-ghost:hover{background:#fff;color:var(--forest)}
.btn-lg{padding:1.1rem 2rem;font-size:var(--fs-body)}
.btn-block{width:100%}

/* ===================== MÉDIA PLACEHOLDER (signature photo-optionnelle) =====
   <figure class="media" data-ratio="4/3">
     <img src="..."> OU rien → le placeholder animé s'affiche
     <figcaption>…</figcaption>
   </figure>
   Aucune image = le site reste fini et premium. */
.media{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--sand);box-shadow:var(--shadow)}
.media::before{content:"";display:block;padding-top:66.66%} /* 3/2 par défaut */
.media[data-ratio="4/3"]::before{padding-top:75%}
.media[data-ratio="16/10"]::before{padding-top:62.5%}
.media[data-ratio="16/9"]::before{padding-top:56.25%}
.media[data-ratio="1/1"]::before{padding-top:100%}
.media[data-ratio="3/4"]::before{padding-top:133.33%}
.media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media>figcaption{position:absolute;left:var(--s4);bottom:var(--s4);z-index:2;
  background:rgba(20,48,28,.9);color:#fff;font-size:var(--fs-cap);font-weight:600;
  padding:.5rem .85rem;border-radius:var(--r-pill);backdrop-filter:blur(4px)}

.ph{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:.9rem;
  text-align:center;color:rgba(255,255,255,.6);overflow:hidden;
  background:linear-gradient(140deg,var(--forest),var(--forest-2))}
.ph--laterite{background:linear-gradient(140deg,var(--laterite-deep),#5a1a0b)}
.ph--sand{background:linear-gradient(140deg,var(--sand),var(--paper-2));color:var(--ink-faint)}
.ph::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.05) 50%,transparent 60%)}
@keyframes ph-shimmer{to{background-position:-220% 0}}
.ph .wm{width:clamp(46px,9vw,80px);height:auto;opacity:.4;color:var(--green-bright)}
.ph--sand .wm{color:var(--green)}
@keyframes ph-spin{to{transform:rotate(360deg)}}
.ph .lab{font-family:var(--font-text);font-size:var(--fs-cap);font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.ph .sub{font-size:var(--fs-cap);opacity:.6;max-width:24ch}
@media(prefers-reduced-motion:reduce){.ph::after,.ph .wm{animation:none}}

/* ===================== GRILLES RÉUTILISABLES ===================== */
.split{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split.rev .media{order:-1}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gap)}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.card .media{border-radius:0;box-shadow:none}
.card .media::before{padding-top:62.5%}
.card-body{padding:var(--card-pad);display:flex;flex-direction:column;flex:1;gap:var(--s3)}
.card-body>*{margin:0}
.card p{color:var(--ink-soft);font-size:var(--fs-sm);flex:1}
.card .meta{font-size:var(--fs-cap);color:var(--ink-faint);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.card .lk{margin-top:auto;font-weight:700;color:var(--laterite);font-size:var(--fs-sm);display:inline-flex;align-items:center;gap:.4rem}
.card .lk svg{width:1em;height:1em;transition:transform .25s}
.card:hover .lk svg{transform:translateX(4px)}
/* Lien-flèche réutilisable hors carte (ponts de parcours) */
.lk{font-weight:700;color:var(--laterite);font-size:var(--fs-sm);display:inline-flex;align-items:center;gap:.4rem;text-decoration:none}
.lk svg{width:1em;height:1em;transition:transform .25s var(--ease)}
.lk:hover svg{transform:translateX(4px)}
.on-dark .lk{color:var(--green-bright)}

/* Newsletter — composant partagé (home, blog, articles) */
.news{background:linear-gradient(155deg,var(--laterite),var(--laterite-deep));color:#fff;text-align:center;padding-block:clamp(3.25rem,5.5vw,4.75rem)}
.news h2{color:#fff}
.news .lead{color:rgba(255,255,255,.9);margin:var(--s4) auto 0;max-width:36rem}
.news .inner{max-width:42rem;margin-inline:auto}
.nlform{display:flex;gap:.6rem;max-width:31rem;margin:var(--s6) auto 0;flex-wrap:wrap}
.nlform input{flex:1;min-width:14rem;padding:1rem 1.3rem;border-radius:var(--r-pill);border:none;font:inherit;color:var(--ink)}
.news .btn-primary{background:var(--forest);box-shadow:none}
.news .btn-primary:hover{background:var(--forest-2)}
.news small{display:block;margin-top:var(--s4);font-size:var(--fs-cap);color:rgba(255,255,255,.7)}

/* ===================== HEADER / NAV (partagé) ===================== */
header.site{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .35s,box-shadow .35s}
header.site.solid{background:rgba(244,238,227,.9);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.1rem;transition:padding-block .35s}
header.site.solid .nav{padding-block:.65rem}
.brand img{height:44px;width:auto;transition:height .35s;filter:drop-shadow(0 1px 4px rgba(0,0,0,.25))}
header.site.solid .brand img{height:38px;filter:none}
.navlinks{display:flex;gap:1.35rem;align-items:center;font-weight:600;font-size:var(--fs-sm)}
.navlinks a{position:relative;padding:.3rem 0;color:var(--nav-fg,#fff);text-shadow:0 1px 8px rgba(0,0,0,.4);transition:color .2s}
header.site.solid .navlinks a{color:var(--ink-soft);text-shadow:none}
header.site.solid .navlinks a:hover,.navlinks a[aria-current="page"]{color:var(--ink)}
header.site.solid .navlinks a[aria-current="page"]{color:var(--laterite)}
.navlinks a::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;background:var(--green);transition:width .3s var(--ease)}
.navlinks a:hover::after,.navlinks a[aria-current="page"]::after{width:100%}
.nav-right{display:flex;align-items:center;gap:1rem}
/* Switch de langue FR/EN */
.lang{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper)}
.lang button{font:700 var(--fs-cap)/1 var(--font-display);letter-spacing:.04em;padding:.4rem .55rem;border:none;border-radius:var(--r-pill);background:none;color:var(--ink-faint);cursor:pointer;transition:background .2s,color .2s}
.lang button[aria-pressed="true"]{background:var(--laterite);color:#fff}
.lang button:hover{color:var(--ink)}
.lang button[aria-pressed="true"]:hover{color:#fff}
@media(max-width:400px){.nav-right{gap:.55rem}.lang button{padding:.35rem .45rem;letter-spacing:0}}
.burger{display:none;background:none;border:none;cursor:pointer;padding:.4rem;color:var(--nav-fg,#fff)}
header.site.solid .burger{color:var(--ink)}
.burger svg{width:28px;height:28px}
/* Header sur page à fond clair (pas de hero sombre) : texte foncé d'emblée */
body.light-nav header.site .navlinks a,body.light-nav header.site .burger{color:var(--ink-soft);text-shadow:none}

.mobnav{position:fixed;inset:0;z-index:200;background:var(--forest);color:#fff;
  display:flex;flex-direction:column;justify-content:center;padding:2rem;gap:1.2rem;
  transform:translateX(100%);transition:transform .45s var(--ease);visibility:hidden}
.mobnav.open{transform:none;visibility:visible}
.mobnav a{font-family:var(--font-display);font-weight:600;font-size:1.9rem;color:#fff}
.mobnav a[aria-current="page"]{color:var(--green-bright)}
.mobnav .close{position:absolute;top:1.4rem;right:1.4rem;background:none;border:none;color:#fff;cursor:pointer}
.mobnav .close svg{width:32px;height:32px}
.mobnav .btn-primary{align-self:flex-start;margin-top:var(--s4)}

/* ===================== FORMULAIRE (béton armé) ===================== */
.form{display:grid;gap:var(--s5)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.field{display:grid;gap:.5rem}
.field>label{font-weight:700;font-size:var(--fs-sm);color:var(--ink)}
.field .req{color:var(--laterite)}
.field .hint{font-size:var(--fs-cap);color:var(--ink-faint)}
.control{width:100%;font:inherit;font-size:var(--fs-body);color:var(--ink);background:#fff;
  border:1.5px solid var(--line);border-radius:var(--r);padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s}
textarea.control{min-height:9rem;resize:vertical}
.control::placeholder{color:var(--ink-faint)}
.control:hover{border-color:var(--ink-faint)}
.control:focus{outline:none;border-color:var(--laterite);box-shadow:0 0 0 3px rgba(192,52,26,.14)}
select.control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23574E42' stroke-width='2'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.6rem;cursor:pointer}
.control:invalid:not(:placeholder-shown){border-color:var(--laterite)}
.field-error{display:none;font-size:var(--fs-cap);color:var(--laterite);font-weight:600}

/* Choix "cartes" (radios stylés) pour le motif de contact */
.choice-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem}
.choice-cards label{position:relative;border:1.5px solid var(--line);background:#fff;border-radius:var(--r);
  padding:.9rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:var(--fs-sm);transition:all .2s}
.choice-cards label:hover{border-color:var(--green)}
.choice-cards input{position:absolute;opacity:0;pointer-events:none}
.choice-cards input:checked+.mk+span{color:var(--laterite)}
.choice-cards label:has(input:checked){border-color:var(--laterite);background:#FFF6F3;box-shadow:0 0 0 3px rgba(192,52,26,.12)}
.choice-cards .mk{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid var(--line);flex:none;display:grid;place-items:center;transition:all .2s}
.choice-cards label:has(input:checked) .mk{border-color:var(--laterite)}
.choice-cards label:has(input:checked) .mk::after{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--laterite)}

.check{display:flex;gap:.7rem;align-items:flex-start;font-size:var(--fs-sm);color:var(--ink-soft)}
.check input{margin-top:.2rem;width:1.15rem;height:1.15rem;accent-color:var(--laterite);flex:none}
.check a{color:var(--green-deep);text-decoration:underline}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden} /* honeypot anti-spam */

.form-cond{display:none}
.form-cond.show{display:grid;gap:var(--s5);animation:cond-in .4s var(--ease)}
@keyframes cond-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.form-note{background:var(--paper-2);border-radius:var(--r);padding:var(--s4);font-size:var(--fs-sm);color:var(--ink-soft)}
.form-status{display:none;padding:var(--s4);border-radius:var(--r);font-weight:600}
.form-status.ok{display:block;background:#EEF6DE;color:var(--green-deep);border:1px solid var(--green-bright)}

/* ===================== BANDES IMMERSIVES (fond sombre + placeholder) ===================== */
.band{position:relative;color:#fff;overflow:hidden;padding-block:clamp(4.5rem,10vw,8rem)}
.band>.ph{z-index:-2}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,25,15,.78),rgba(14,25,15,.6))}
.band .head h2,.band h2{color:#fff}

/* ===================== FIL D'ARIANE ===================== */
.crumb{display:flex;gap:.5rem;align-items:center;font-size:var(--fs-cap);color:var(--ink-faint);flex-wrap:wrap}
.crumb a:hover{color:var(--laterite)}
.crumb .sep{opacity:.5}

/* En-tête de page interne (sous le header fixe) */
.page-hero{padding-top:calc(var(--section-y) + 3.5rem);padding-bottom:var(--section-y)}
.page-hero .crumb{margin-bottom:var(--s5)}
.page-hero h1{margin:0}
.page-hero .lead{margin-top:var(--head-lead-gap);max-width:46rem}

/* ===================== FOOTER (partagé) ===================== */
footer.site{background:var(--forest-2);color:rgba(255,255,255,.72);padding-block:clamp(3.5rem,6vw,5rem) 2rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:clamp(2rem,4vw,3.5rem)}
.foot-brand img{height:56px;width:auto;margin-bottom:var(--s4)}
.foot-brand p{font-size:var(--fs-sm);max-width:26rem}
footer.site h2{font-family:var(--font-text);font-size:var(--fs-cap);text-transform:uppercase;letter-spacing:.16em;color:var(--green-bright);margin:0 0 var(--s4);font-weight:700}
footer.site ul{display:flex;flex-direction:column;gap:.6rem;font-size:var(--fs-sm)}
footer.site a:hover{color:#fff}
.socials{display:flex;gap:.7rem;margin-top:var(--s5)}
.socials a{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-dark);display:grid;place-items:center;transition:all .25s}
.socials a:hover{background:var(--green);border-color:var(--green);color:var(--forest-2);transform:translateY(-3px)}
.socials svg{width:19px;height:19px}
.foot-bottom{border-top:1px solid var(--line-dark);margin-top:clamp(2rem,4vw,3rem);padding-top:1.5rem;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:var(--fs-cap);color:rgba(255,255,255,.5)}
.foot-bottom a{text-decoration:underline}

/* ===================== UTILITAIRES SYSTÈME ===================== */
.skip{position:absolute;left:-999px;top:0;z-index:10001;background:var(--forest);color:#fff;padding:.8rem 1.2rem;border-radius:0 0 10px 0}
.skip:focus{left:0}
a:focus-visible,button:focus-visible,.control:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:6px}
.grain{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Liens de contact protégés (email/tél assemblés en JS — invisibles aux robots) */
.c-link{cursor:pointer;text-decoration:underline;text-underline-offset:2px}

/* Bandeau don flottant : apparaît à mi-page, réassurance + CTA */
.donate-flyout{position:fixed;left:50%;bottom:1.1rem;transform:translate(-50%,140%);z-index:95;
  width:min(560px,calc(100vw - 2rem));display:flex;align-items:center;gap:1rem;
  background:var(--forest);color:#fff;border-radius:var(--r-pill);padding:.7rem .7rem .7rem 1.4rem;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.1);
  opacity:0;visibility:hidden;transition:transform .5s var(--ease),opacity .4s,visibility .4s}
.donate-flyout.show{transform:translate(-50%,0);opacity:1;visibility:visible}
.donate-flyout .fly-txt{flex:1;font-size:var(--fs-sm);line-height:1.3}
.donate-flyout .fly-txt b{font-family:var(--font-display);font-weight:700;display:block}
.donate-flyout .fly-txt span{color:rgba(255,255,255,.7);font-size:var(--fs-cap)}
.donate-flyout .btn-primary{flex:none;width:auto;white-space:nowrap;box-shadow:none}
.donate-flyout .fly-close{flex:none;background:none;border:none;color:rgba(255,255,255,.55);cursor:pointer;padding:.3rem;line-height:0}
.donate-flyout .fly-close:hover{color:#fff}
.donate-flyout .fly-close svg{width:18px;height:18px}
@media(max-width:560px){
  .donate-flyout{left:.6rem;right:.6rem;width:auto;transform:translateY(140%);border-radius:var(--r-lg);padding:.65rem .65rem .65rem 1rem;gap:.7rem}
  .donate-flyout.show{transform:translateY(0)}
  .donate-flyout .fly-txt span{display:none}
  .donate-flyout .fly-txt b{font-size:var(--fs-sm)}
  .donate-flyout .btn-primary{padding:.7rem 1.1rem;font-size:var(--fs-sm)}
}
@media(prefers-reduced-motion:reduce){.donate-flyout{transition:opacity .3s,visibility .3s}}

/* Révélation au scroll */
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.media>img{animation:none}}

/* ===================== RESPONSIVE (points de rupture uniques) ===================== */
@media(max-width:1080px){.navlinks{display:none}.burger{display:block}.nav-right .btn-primary{display:none}}
@media(max-width:940px){
  .split,.split.rev,.grid-2,.foot-grid,.form-row,.donate-grid{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr 1fr}      /* tablette : 2 colonnes */
  .split .media,.split.rev .media{order:-1}
  .foot-grid{gap:2.5rem}
  .donate-grid{gap:2.5rem}
}
@media(max-width:680px){
  .grid-3{grid-template-columns:1fr}          /* mobile : 1 colonne */
}
@media(max-width:600px){
  .wrap{padding-inline:1.5rem}                /* respiration mobile (logo + contenu) */
  .brand img{height:40px}
  .foot-bottom{flex-direction:column;gap:.5rem}
}
@media(max-width:520px){
  .btn{width:100%}
  .hero-cta .btn{flex:1}
}

/* Partenaires — bande de confiance sous le hero ; logos détourés, N&B -> couleur au survol */
.partners{padding:clamp(2.25rem,5vw,3.5rem) 0;background:var(--paper);text-align:center}
.partners-kicker{font:700 var(--fs-cap)/1 var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 clamp(1.5rem,3vw,2.25rem)}
/* Bande partenaires : une seule ligne, défilement continu ET manipulable.
   Le conteneur défile nativement — glisser au doigt fonctionne sans code.
   Le défilement automatique et la boucle infinie sont pilotés dans befoza.js. */
.partners-marquee{position:relative;display:flex;align-items:center;width:100%}
.pm-viewport{flex:1;min-width:0;display:flex;overflow-x:auto;overscroll-behavior-x:contain;
  scrollbar-width:none;-ms-overflow-style:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.pm-viewport::-webkit-scrollbar{display:none}
.partners-track{flex:none;display:flex;align-items:center;list-style:none;margin:0;
  gap:clamp(2rem,5vw,4.5rem);padding:0 clamp(2rem,5vw,4.5rem) 0 0}
.partners-track li{display:flex;align-items:center;justify-content:center;flex:none}
.partners-track a{display:inline-flex;line-height:0}
.partners-track img{height:clamp(52px,6.5vw,78px);width:auto;max-width:220px;object-fit:contain;
  filter:grayscale(1);opacity:.68;transition:filter .35s ease,opacity .35s ease}
.partners-track li:hover img,.partners-track a:focus-visible img{filter:grayscale(0);opacity:1}

/* Flèches — discrètes, réservées au pointeur fin (ordinateur) */
.pm-nav{flex:none;width:2.15rem;height:2.15rem;display:none;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink-faint);
  cursor:pointer;padding:0;transition:color .25s,border-color .25s,transform .25s}
.pm-nav svg{width:.95rem;height:.95rem}
.pm-nav:hover{color:var(--laterite);border-color:var(--laterite)}
.pm-nav:active{transform:scale(.92)}
.pm-nav:focus-visible{outline:2px solid var(--laterite);outline-offset:2px}
@media (hover:hover) and (pointer:fine) and (min-width:820px){.pm-nav{display:inline-flex}}

@media(prefers-reduced-motion:reduce){.partners-track img{transition:none}}

/* — Règle de rythme vertical uniforme : l'espacement des colonnes de texte est piloté par classe (fini les marges inline ad-hoc) — */
.wrap.split > div > * + *{margin-top:var(--s5)}
.wrap.split > div > h2 + .lead{margin-top:var(--head-lead-gap)}

/* Carte CTA vert foncé (sans image) — ex. « Devenir bénévole », d'après la maquette */
.card--cta{background:var(--forest);border-color:transparent;color:#fff}
.card--cta .card-body{justify-content:center}
.card--cta .meta{color:var(--green-bright)}
.card--cta h3{color:#fff}
.card--cta p{color:rgba(255,255,255,.8);flex:initial}
.card--cta .lk{color:var(--green-bright);margin-top:0}
.card--cta:hover{box-shadow:var(--shadow-lg)}

/* Écart uniforme en-tête de section -> contenu (cartes, tableau, grille…) */
.wrap .head + *{margin-top:clamp(2.25rem,4vw,3.25rem)}

/* Hiérarchie de lecture des articles : intertitres nettement sous le titre (~28px) */

/* Archive des lettres d'information (téléchargeable) */
.letters{list-style:none;padding:0;margin:0;display:grid;gap:var(--s3)}
.letters a{display:flex;align-items:center;gap:var(--s4);padding:clamp(1rem,2vw,1.25rem) clamp(1.1rem,2.5vw,1.5rem);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.letters a:hover{border-color:var(--laterite);transform:translateY(-2px)}
.letters .l-date{font-family:var(--font-display);font-weight:700;font-size:var(--fs-cap);color:var(--laterite);text-transform:uppercase;letter-spacing:.06em;min-width:9rem}
.letters .l-name{flex:1;color:var(--ink-soft)}
.letters .l-dl{width:22px;height:22px;color:var(--ink-faint);flex:none;transition:color .2s}
.letters a:hover .l-dl{color:var(--laterite)}
@media(max-width:520px){.letters a{flex-wrap:wrap}.letters .l-date{min-width:0;width:100%}}

/* ===================== GRAND FORMAT 16/9 POUR IMAGE PORTRAIT (blurred-fill) ===================== */
.media-fill{position:relative;aspect-ratio:16/9;width:100%;border-radius:var(--r-lg);overflow:hidden;background:var(--forest-2);margin:0}
.media-fill .mf-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(30px) brightness(.5) saturate(1.1);transform:scale(1.2)}
.media-fill > img{position:relative;height:100%;width:auto;max-width:92%;margin:0 auto;display:block;object-fit:contain}
.media-fill figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1.2rem .9rem;text-align:center;
  font-family:var(--font-display);font-weight:600;font-size:var(--fs-cap);letter-spacing:.03em;color:rgba(255,255,255,.92);
  background:linear-gradient(0deg,rgba(0,0,0,.6),transparent)}
@media(max-width:600px){.media-fill{aspect-ratio:4/3}.media-fill > img{max-width:74%}}


/* ============ Façade vidéo — aucun tiers chargé avant le clic ============ */
.video{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/9;cursor:pointer;
  background:linear-gradient(150deg,var(--forest),var(--forest-2));box-shadow:var(--shadow-lg)}
.video::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(70% 70% at 50% 45%,rgba(192,52,26,.28),transparent 70%)}
.video-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.video-inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:1rem;color:#fff;text-align:center;padding:2rem}
.video-play{width:74px;height:74px;border-radius:50%;border:none;background:var(--laterite);color:#fff;
  display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 34px -8px rgba(0,0,0,.6);
  transition:transform .25s var(--ease),background .25s}
.video:hover .video-play{transform:scale(1.08);background:var(--laterite-deep)}
.video-play svg{width:30px;height:30px;margin-left:4px}
.video-year{font-family:var(--font-display);font-weight:700;line-height:1;letter-spacing:-.02em;
  font-size:clamp(2rem,4vw,3.1rem);color:var(--green-bright);text-shadow:0 2px 20px rgba(0,0,0,.35)}
.video-cap{font-family:var(--font-display);font-weight:600;font-size:var(--fs-lead);max-width:34ch;
  text-shadow:0 2px 20px rgba(0,0,0,.4)}
.video-sub{font-size:var(--fs-sm);color:rgba(255,255,255,.75)}
.video-dur{position:absolute;right:.7rem;bottom:.7rem;z-index:3;background:rgba(8,18,10,.85);color:#fff;
  font-family:var(--font-display);font-weight:600;font-size:.74rem;padding:.22rem .5rem;border-radius:6px}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:4}
/* Vignette présente : elle porte déjà le titre → on n'affiche que le bouton */
.video.has-cover::after{background:linear-gradient(0deg,rgba(8,18,10,.42),transparent 58%)}
.video.has-cover .video-year,.video.has-cover .video-cap,.video.has-cover .video-sub{display:none}
/* Titre en vrai texte, sous la vidéo (lisible, traduisible, indexable) */
.film{margin:0}
.film .video{margin-top:0}
.film-cap{margin-top:.65rem;font-family:var(--font-display);font-weight:600;line-height:1.3;
  font-size:var(--fs-sm);color:var(--ink)}
.film--lead{margin-top:clamp(1.5rem,3vw,2.5rem)}
.film--lead .film-cap{font-size:var(--fs-lead)}
.film-year{color:var(--laterite);margin-right:.45rem}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.9rem,1.8vw,1.4rem);
  margin-top:clamp(.9rem,1.8vw,1.4rem)}
.video--sm .video-inner{gap:.55rem;padding:1rem}
.video--sm .video-play{width:52px;height:52px}
.video--sm .video-play svg{width:22px;height:22px;margin-left:3px}
.video-grid--2{grid-template-columns:repeat(2,1fr)}
@media(max-width:760px){.video-grid,.video-grid--2{grid-template-columns:1fr}}

/* ---- Rendez-vous récurrents : tuiles régulières, prêtes à recevoir une période ---- */
.ev-named{margin-top:clamp(2.5rem,5vw,4rem)}
.ev-named-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-bottom:clamp(1.1rem,2.4vw,1.7rem)}
.ev-named-head h2{font-size:var(--fs-h3);margin:0}
.ev-named-head p{margin:0;font-size:var(--fs-sm);color:var(--ink-faint)}
.ev-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(.8rem,1.6vw,1.1rem)}
.ev-item{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(1.05rem,2vw,1.35rem);display:flex;flex-direction:column;gap:.4rem;
  transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.ev-item:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--sand)}
.ev-n{font-family:var(--font-display);font-weight:600;font-size:1.03rem;line-height:1.25;color:var(--ink)}
.ev-v{display:flex;align-items:center;gap:.42rem;font-size:var(--fs-sm);color:var(--ink-faint);line-height:1.3}
.ev-v svg{width:.92rem;height:.92rem;flex:none;color:var(--laterite)}
@media(max-width:900px){.ev-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ev-list{grid-template-columns:1fr}}

/* ---- Rythme vertical unifié des médias en contexte éditorial ----
   Toutes les figures d'un article (photo, vidéo, film) suivent le même pas
   vertical, quelle que soit leur nature. Évite les écarts asymétriques. */
.article figure.media,
.article figure.film,
.article .media-fill{margin:var(--s6) 0}
.article figure.film--lead{margin-top:var(--s6)}
.article figure.film .film-cap{margin-top:var(--s3)}

.form-status.err{display:block;background:#FDECE8;border:1px solid #F3C4B8;color:#7E2410;padding:var(--s3) var(--s4);border-radius:var(--r);font-size:var(--fs-sm);margin-bottom:var(--s4)}

.nl-status{margin:var(--s3) 0 0;font-size:var(--fs-sm);min-height:1.2em}
.nl-status.ok{color:#A6D63F;font-weight:600}
.nl-status.err{color:#FFD9CF;font-weight:600}

/* ============ ÉVÉNEMENTS DATÉS ============
   Bandeau « prochain rendez-vous » + fiche événement.
   Le bandeau disparaît tout seul après la date (voir befoza.js). */
.ev-next{display:none;position:relative;overflow:hidden;border-radius:var(--r-lg);
  background:linear-gradient(120deg,var(--forest),var(--forest-2));color:#fff;box-shadow:var(--shadow-lg)}
.ev-next.is-live{display:block}
.ev-next-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:stretch}
/* L'image reprend sa place dans le flux : la hauteur du conteneur devient
   celle de l'image, quel que soit SON rapport. Avant, l'image était en
   position absolue et remplissait une boîte dont la hauteur était celle de la
   COLONNE DE TEXTE — donc plus le texte était long, plus l'image était rognée
   sur les côtés. Mesuré le 30/09/2026 : de 6 % à 66 % de l'image perdue selon
   la largeur, et le rognage changeait dès qu'on retouchait une description.
   Ainsi, aucun rapport n'est imposé : 4/3 pour les visuels des soirées, 16/9
   pour celui du golf, et 0 % de perte aux 8 largeurs mesurées. */
/* Quand la colonne de texte est plus haute que l'image — un visuel 16/9 avec
   une description longue — le reste se voyait tout entier SOUS l'image. Centré,
   l'écart se répartit en haut et en bas et se lit comme un cadrage voulu. */
.ev-next-img{position:relative;min-height:0;display:grid;align-content:center}
.ev-next-img img{position:static;display:block;width:100%;height:auto}
.ev-next-body{padding:clamp(1.5rem,3vw,2.4rem);display:flex;flex-direction:column;justify-content:center;gap:var(--s3)}
.ev-flag{display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;background:var(--laterite);
  color:#fff;font-family:var(--font-text);font-weight:700;font-size:var(--fs-cap);letter-spacing:.12em;
  text-transform:uppercase;padding:.34rem .78rem;border-radius:var(--r-pill)}
.ev-next h2,.ev-next h3{color:#fff;margin:0;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.12}
.ev-meta{display:flex;flex-wrap:wrap;gap:.5rem .9rem;font-size:var(--fs-sm);color:rgba(255,255,255,.82)}
.ev-meta span{display:inline-flex;align-items:center;gap:.4rem}
.ev-meta svg{width:.95rem;height:.95rem;flex:none;color:var(--green-bright)}
.ev-next p{margin:0;color:rgba(255,255,255,.8);font-size:var(--fs-sm);line-height:1.55}
.evn-cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--s2)}
.ev-count{font-family:var(--font-display);font-weight:700;color:var(--green-bright);font-size:var(--fs-sm)}
@media(max-width:820px){.ev-next-grid{grid-template-columns:minmax(0,1fr)}}

/* Fiche événement */
.evp-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:clamp(1.5rem,4vw,3rem);align-items:start}
.evp-affiche{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--line)}
.evp-affiche img{width:100%;height:auto;display:block}
.evp-facts{list-style:none;margin:var(--s5) 0 0;padding:0;border-top:1px solid var(--line)}
.evp-facts li{display:flex;gap:var(--s4);padding:var(--s3) 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.evp-facts b{flex:none;width:8.5rem;font-family:var(--font-text);font-weight:700;color:var(--ink-faint);
  text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-cap)}
.evp-note{background:var(--paper-2);border-left:3px solid var(--green);border-radius:0 var(--r) var(--r) 0;
  padding:var(--s4) var(--s5);margin-top:var(--s5);font-size:var(--fs-sm);color:var(--ink-soft)}
@media(max-width:800px){.evp-head{grid-template-columns:1fr}}

/* Archive des éditions passées */
.ev-past{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--s3)}
.ev-past li{border:1px solid var(--line);border-radius:var(--r);padding:var(--s4);background:#fff}
.ev-past .y{font-family:var(--font-display);font-weight:700;color:var(--laterite);font-size:var(--fs-sm)}
.ev-past .n{display:block;margin-top:.2rem;font-size:var(--fs-sm);color:var(--ink-soft)}

/* ============ BANDEAU DE PROMOTION D'ÉVÉNEMENT ============
   Injecté par befoza.js sur toutes les pages. Se retire seul après la date.
   Réglages : objet PROMO en haut de assets/befoza.js
   Parti pris : fond sombre, aucun bouton plein — le seul aplat rouge du haut
   de page reste le CTA « Faire un don » du menu. */
.promo{position:fixed;top:0;left:0;right:0;z-index:120;
  background:linear-gradient(90deg,var(--forest-2),var(--forest));
  border-bottom:1px solid rgba(255,255,255,.08);color:#fff}
.promo-in{max-width:var(--wrap);margin:0 auto;padding:.55rem clamp(1rem,4vw,2.6rem);
  display:flex;align-items:center;gap:.7rem;flex-wrap:nowrap}
.promo-dot{width:6px;height:6px;border-radius:50%;background:var(--laterite-soft);flex:none;
  box-shadow:0 0 0 0 rgba(228,101,63,.55);animation:promoPulse 2.6s ease-out infinite}
@keyframes promoPulse{0%{box-shadow:0 0 0 0 rgba(228,101,63,.5)}70%{box-shadow:0 0 0 7px rgba(228,101,63,0)}100%{box-shadow:0 0 0 0 rgba(228,101,63,0)}}
@media(prefers-reduced-motion:reduce){.promo-dot{animation:none}}
.promo-t{font-family:var(--font-display);font-weight:600;font-size:var(--fs-sm);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.promo-sep{width:1px;height:14px;background:rgba(255,255,255,.18);flex:none}
.promo-d{font-size:var(--fs-sm);color:rgba(255,255,255,.6);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
/* compte à rebours : le signal, à la place d'un bouton */
.promo-j{flex:none;font-family:var(--font-display);font-weight:700;font-size:var(--fs-cap);
  letter-spacing:.04em;color:var(--green-bright);background:rgba(166,214,63,.13);
  border:1px solid rgba(166,214,63,.28);padding:.22rem .5rem;border-radius:6px}
.promo-a{flex:none;margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;color:#fff;
  font-family:var(--font-text);font-weight:600;font-size:var(--fs-sm);
  border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:1px;transition:border-color .25s}
.promo-a:hover{border-bottom-color:#fff}
.promo-a svg{width:.85rem;height:.85rem;transition:transform .25s var(--ease)}
.promo-a:hover svg{transform:translateX(3px)}
.promo-x{flex:none;background:none;border:none;color:rgba(255,255,255,.45);cursor:pointer;
  padding:.3rem;line-height:0;border-radius:6px;transition:color .2s}
.promo-x:hover{color:#fff}
.promo-x svg{width:14px;height:14px}
/* décalage du reste du site quand le bandeau est présent */
body.has-promo{padding-top:var(--promo-h,42px)}
body.has-promo header.site{top:var(--promo-h,42px)}
body.has-promo .hero{min-height:calc(100svh - var(--promo-h,42px))}
@media(max-width:900px){.promo-d,.promo-sep{display:none}}
@media(max-width:620px){
  .promo-in{padding-block:.45rem;gap:.5rem}
  .promo-t{flex:1;min-width:0;font-size:var(--fs-cap)}
  .promo-a span{display:none}
}

/* marge sous le bandeau événement quand une grille suit */
/* Le conteneur [data-ev-un-seul] enveloppe les blocs d'événement de l'accueil
   pour n'en montrer qu'un. Il a donc PRIS LA PLACE de .ev-next comme frère
   immédiat de la grille qui suit, et le sélecteur « + » ci-dessous ne
   correspondait plus : 0 px entre l'événement et les trois cartes, à toutes
   les largeurs. Mesuré le 30/09/2026 sur le site en ligne. */
.ev-next + .grid-3,.ev-next + .cards,
[data-ev-un-seul] + .grid-3,[data-ev-un-seul] + .cards{margin-top:clamp(2rem,4vw,3rem)}
/* Plusieurs événements peuvent maintenant s'empiler : sans cette règle ils
   se touchent. Mesuré : 0 px entre les 4 blocs de la page Événements. */
.ev-next.is-live + .ev-next.is-live{margin-top:clamp(1.25rem,2.5vw,2rem)}

/* ---- Garde-fou : la première section doit toujours dégager l'en-tête fixe ----
   Convention du site : .page-hero. Cette règle rattrape les pages qui ne
   l'emploient pas (articles, fiches événement) et couvre les pages à venir. */
main > section:first-of-type:not(.hero){padding-top:calc(var(--section-y) + 3.5rem)}

/* ---- Fiche événement : la liste des informations s'empile sur mobile ---- */
@media(max-width:560px){
  .evp-facts li{flex-direction:column;gap:.2rem;padding:var(--s3) 0}
  .evp-facts b{width:auto}
}

/* Dates des rendez-vous : la prochaine échéance, calculée au chargement */
.ev-d{display:flex;align-items:flex-start;gap:.42rem;font-size:var(--fs-cap);font-weight:600;
  line-height:1.35;color:var(--green-deep);margin-top:.1rem}
.ev-d svg{width:.85rem;height:.85rem;flex:none;margin-top:.15rem}
.ev-d.is-tbc{color:var(--ink-faint);font-weight:500}
.ev-item a{display:flex;flex-direction:column;gap:.4rem}
.ev-item a .ev-n{text-decoration:underline;text-decoration-color:var(--sand);text-underline-offset:3px}
.ev-item a:hover .ev-n{text-decoration-color:var(--laterite)}
