:root {
  --cp:   #2a3c52;
  --cs:   #3c5068;
  --ca:   #c05020;
  --cbr:  #d49020;
  --cbg:  #f0f4f8;
  --cbg2: #e2ecf4;
  --ct:   #141e28;
  --cm:   #3a5060;
  --cl:   #b8ccdc;
  --r:    4px;
  --font-d: 'Libre Baskerville', Georgia, serif;
  --font-b: 'Inter', system-ui, sans-serif;
}
.site-header { background:rgba(42,60,82,.95); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.mainnav.open { background:rgba(42,60,82,.98); }
.hero { background:linear-gradient(to bottom, rgba(0,0,0,0.12) 0%, transparent 50%),linear-gradient(165deg,#2a3c52 0%,#141e28 100%); }
.page-hero { background:linear-gradient(165deg,#2a3c52 0%,#141e28 100%); }
.btn-primary:hover { background:#d49020; box-shadow:0 4px 16px rgba(212,144,32,.35); }
.help-band { background:linear-gradient(135deg,#3c5068 0%,#2a3c52 100%); }
.site-header { border-bottom: 2px solid var(--ca); }
.card,.quick-card,.news-card { border-radius:4px; border:1px solid var(--cl); box-shadow:0 2px 6px rgba(0,0,0,.05); }
.btn-primary { border-radius:4px; letter-spacing:.08em; text-transform:uppercase; font-size:.87em; font-weight:600; }
.section-title { border-left:4px solid var(--ca); padding-left:16px; }

/* ================================================================
   KIT V1 — CHARTE GRAPHIQUE  (la SEULE zone à changer par commune)
   ----------------------------------------------------------------
   Remplis ces variables depuis _data/brief.json (palette + typo).
   Tout le reste du fichier est structurel et réutilisable tel quel.
   RÈGLE : jamais bleu-blanc-rouge / tricolore. Palette dérivée du
   blason + photos locales. Polices = celles du brief (display + corps).
   ================================================================ */


/* Si tu changes les Google Fonts, mets aussi à jour le <link> dans build_v1.py (fonction page()). */

/* paragraphe d'accroche (section signature) */
.big-p { max-width:760px; font-size:1.2rem; line-height:1.7; color:var(--cm); }

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-b); font-size: 1rem; line-height: 1.65;
       color: var(--ct); background: var(--cbg); }
img, picture { display: block; max-width: 100%; }
a { color: var(--ca); text-decoration: underline; }
a:hover { color: var(--cp); }
h1,h2,h3,h4 { font-family: var(--font-d); line-height: 1.2; }
h1 { font-size: clamp(2.4rem,5vw,4.5rem); font-weight: 600; }
h2 { font-size: clamp(1.5rem,3vw,2.4rem); font-weight: 600; margin-bottom: .5em; }
h3 { font-size: clamp(1.1rem,2vw,1.45rem); font-weight: 600; margin-bottom: .4em; }
p  { margin-bottom: 1em; }
ul, ol { padding-left: 1.5em; margin-bottom: 1em; }
li { margin-bottom: .3em; }
address { font-style: normal; }

/* ── Skip link ── */
.skip { position:absolute; top:-999px; left:0; background:var(--ca); color:#fff;
        padding:.5rem 1.1rem; text-decoration:none; font-weight:600; z-index:9999;
        border-radius:0 0 var(--r) 0; }
.skip:focus { top:0; }

/* ── Wrapper ── */
.wrap { max-width:1200px; margin:0 auto; padding:0 1.5rem; }

/* ══════════════════════ HEADER ══════════════════════ */
.site-header { position:fixed; top:0; left:0; right:0; z-index:200;
               background:rgba(30,50,56,.95); backdrop-filter:blur(14px);
               -webkit-backdrop-filter:blur(14px);
               border-bottom:1px solid rgba(255,255,255,.07); }
.bar { display:flex; align-items:center; gap:1.5rem; max-width:1200px;
       margin:0 auto; padding:.7rem 1.5rem; }
.brand { display:flex; align-items:center; gap:.75rem; text-decoration:none; flex-shrink:0; }
.brand-emblem { width:40px; height:48px; }
.brand-txt { display:flex; flex-direction:column; }
.brand-txt strong { font-family:var(--font-d); font-size:1.2rem; font-weight:700;
                    color:#fff; letter-spacing:.01em; }
.brand-txt em { font-family:var(--font-b); font-size:.65rem; font-style:normal;
                color:rgba(255,255,255,.55); letter-spacing:.1em; text-transform:uppercase; }

/* ── Navigation ── */
.mainnav { margin-left:auto; }
.navlist  { list-style:none; padding:0; margin:0; display:none; }
@media(min-width:980px){ .navlist{ display:flex; gap:.15rem; align-items:center; } }

.nav-item { position:relative; }
.nav-link { display:flex; align-items:center; gap:.3rem; padding:.48rem .7rem;
            color:rgba(255,255,255,.82); font-size:.85rem; font-weight:500;
            cursor:pointer; border-radius:8px;
            transition:background .18s,color .18s; text-decoration:none; user-select:none; }
.nav-link:hover, .nav-item.active .nav-link { background:rgba(255,255,255,.1); color:#fff; }
.caret { font-size:.65rem; opacity:.55; transition:transform .2s; }
.nav-item.open .caret { transform:rotate(90deg); }

/* Sous-menus — left:0;right:0 obligatoire (backdrop-filter stacking context) */
.sub { display:none; position:absolute; top:calc(100% + .4rem); left:0;
       background:#fff; border:1px solid var(--cl); border-radius:var(--r);
       box-shadow:0 14px 44px rgba(0,0,0,.14); min-width:220px; padding:.45rem 0; z-index:300; }
.sub-wide { left:0; right:0; width:auto; position:fixed; top:62px;
            padding:.75rem max(1.5rem,calc(50% - 600px));
            border-radius:0 0 var(--r) var(--r); }
.nav-item.open > .sub { display:block; }
.sub ul { list-style:none; padding:0; margin:0; }
.sub ul li a { display:block; padding:.5rem 1.1rem; color:var(--ct);
               font-size:.865rem; text-decoration:none;
               transition:background .14s,color .14s; white-space:nowrap; }
.sub ul li a:hover, .sub ul li a[aria-current="page"] { background:var(--cbg2); color:var(--ca); }

/* Burger mobile */
.burger { display:flex; flex-direction:column; gap:5px; background:none; border:none;
          cursor:pointer; padding:.4rem; margin-left:auto; }
.burger span { display:block; width:24px; height:2px; background:rgba(255,255,255,.82);
               border-radius:2px; transition:.25s; }
.mainnav.open { position:fixed; top:62px; left:0; right:0; bottom:0;
                background:rgba(28,46,52,.97); overflow-y:auto; padding:.5rem 1rem; }
.mainnav.open .navlist { display:flex; flex-direction:column; align-items:stretch; gap:0; padding:.5rem 0; }
.mainnav.open .nav-link { color:rgba(255,255,255,.88); }
.mainnav.open .sub { display:block; position:static; box-shadow:none; border:none;
                      background:rgba(255,255,255,.06); border-radius:8px; margin:.25rem .5rem; }
.mainnav.open .sub ul li a { color:rgba(255,255,255,.75); }
@media(min-width:980px){ .burger{display:none}
  .mainnav.open { position:static; background:none; padding:0; overflow:visible; } }

/* ══════════════════════ HERO ══════════════════════ */
.hero { position:relative; height:100dvh; min-height:580px;
        display:flex; align-items:center; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg picture, .hero-bg img { width:100%; height:100%; object-fit:cover; }
.hero-bg::after { content:''; position:absolute; inset:0;
  background:linear-gradient(to top,rgba(15,28,32,.85) 0%,rgba(15,28,32,.35) 55%,rgba(15,28,32,.1) 100%); }
.hero-inner { position:relative; z-index:1; max-width:1200px; margin:0 auto;
              padding:0 1.5rem; padding-top:82px; }
.hero-kicker { display:block; font-family:var(--font-b); font-size:.78rem; font-weight:700;
               letter-spacing:.18em; text-transform:uppercase; color:var(--cbr); margin-bottom:1rem; }
.hero-title  { font-family:var(--font-d); font-size:clamp(3rem,7.5vw,8rem); font-weight:600;
               color:#fff; line-height:1.03; margin-bottom:1rem; }
.hero-title .em { font-style:italic; color:var(--cbr); }
.hero-sub { font-size:clamp(.9rem,1.8vw,1.1rem); color:rgba(255,255,255,.8);
            max-width:540px; margin-bottom:2.2rem; line-height:1.65; }
.hero-cta  { display:flex; flex-wrap:wrap; gap:.75rem; }
.scroll-cue { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:1;
              color:rgba(255,255,255,.55); font-size:1.5rem; text-decoration:none;
              animation:bounce 2.2s infinite; }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(7px)} }
.hero-credit { position:absolute; bottom:.75rem; right:1.5rem; z-index:1;
               font-size:.62rem; color:rgba(255,255,255,.45); }

/* ══════════════════════ PAGE HERO ══════════════════════ */
.page-hero { background:linear-gradient(135deg,var(--cp) 0%,#2e5059 100%);
             padding:6rem 0 3rem; color:#fff; }
.page-hero h1 { font-family:var(--font-d); font-size:clamp(1.8rem,4vw,3.2rem);
                color:#fff; margin-bottom:.5rem; }
.page-hero .lead { font-size:1.05rem; color:rgba(255,255,255,.78); max-width:600px; }
.crumb { font-size:.8rem; color:rgba(255,255,255,.5); margin-bottom:1rem; }
.crumb a { color:rgba(255,255,255,.68); }
.crumb span { color:rgba(255,255,255,.88); }

/* ══════════════════════ SECTIONS ══════════════════════ */
.block  { padding:5rem 0; }
.block.tinted { background:var(--cbg2); }
.block.dark   { background:var(--cp); color:#fff; }
.block.dark h2, .block.dark h3, .block.dark h4 { color:#fff; }
.block.dark p  { color:rgba(255,255,255,.82); }
.block.dark a  { color:var(--cbr); }
.block.dark .eyebrow { color:var(--cbr); }

.sec-head { margin-bottom:3rem; }
.sec-head.center { text-align:center; }
.sec-head p { color:var(--cm); font-size:1.05rem; max-width:600px; }
.sec-head.center p { margin:0 auto; }

.eyebrow { display:block; font-family:var(--font-b); font-size:.72rem; font-weight:700;
           letter-spacing:.16em; text-transform:uppercase; color:var(--ca); margin-bottom:.5rem; }

/* ── Stats ── */
.stats { display:flex; flex-wrap:wrap; justify-content:center; gap:2.5rem;
         padding:2rem 1.5rem; max-width:1200px; margin:0 auto; }
.stat { text-align:center; min-width:140px; }
.stat .num { font-family:var(--font-d); font-size:clamp(2.6rem,5.5vw,5rem); font-weight:700;
             color:#fff; line-height:1; }
.stat .lab { font-size:.78rem; font-weight:500; color:rgba(255,255,255,.65);
             letter-spacing:.07em; margin-top:.5rem; text-transform:uppercase; }

/* ── Quick cards ── */
.quick { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
         gap:1rem; max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.qcard { background:#fff; border:1px solid var(--cl); border-radius:var(--r); padding:1.5rem;
         text-decoration:none; color:var(--ct);
         transition:transform .22s,box-shadow .22s,border-color .22s; }
.qcard:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1);
               border-color:var(--ca); color:var(--ct); }
.qcard .ic { font-size:2rem; margin-bottom:.75rem; }
.qcard h3 { font-family:var(--font-b); font-size:1rem; font-weight:600; margin-bottom:.3rem; }
.qcard p  { font-size:.875rem; color:var(--cm); margin:0; }

/* ── Cards grid ── */
.grid { display:grid; gap:1.5rem; max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.g3 { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.g2 { grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); }
.card { background:#fff; border:1px solid var(--cl); border-radius:var(--r); overflow:hidden;
        text-decoration:none; color:var(--ct); transition:transform .22s,box-shadow .22s; }
.card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.1); }
.card picture img { aspect-ratio:16/9; width:100%; object-fit:cover; transition:transform .4s; }
.card:hover picture img { transform:scale(1.04); }
.card .bd { padding:1.25rem; }
.card .tag { display:inline-block; background:var(--cbg2); color:var(--cp); font-size:.7rem;
             font-weight:700; padding:.2rem .55rem; border-radius:5px; margin-bottom:.5rem;
             text-transform:uppercase; letter-spacing:.06em; }
.card h3   { font-family:var(--font-d); font-size:1.2rem; margin-bottom:.4rem; }
.card .meta { font-size:.78rem; color:var(--cm); margin-bottom:.5rem; }
.card p    { font-size:.875rem; color:var(--cm); }
.card .more { font-size:.8rem; font-weight:600; color:var(--ca); }

/* ── Split layout ── */
.split { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center;
         max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.split-media { border-radius:var(--r); overflow:hidden; }
.split-media picture { display:block; }
.split-media img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .4s; }
.split-media:hover img { transform:scale(1.03); }
.split-txt h2 { margin-bottom:1rem; }
.split-txt p  { color:var(--cm); }
@media(max-width:768px){ .split { grid-template-columns:1fr; gap:2rem; } }

/* ── Mémoire section (dark + bg image) ── */
.block.memoire { position:relative; overflow:hidden; }
.memoire-bg { position:absolute; inset:0; z-index:0; }
.memoire-bg picture, .memoire-bg img { width:100%; height:100%; object-fit:cover; }
.memoire-bg::after { content:''; position:absolute; inset:0;
  background:rgba(15,26,30,.82); }
.block.memoire .wrap, .block.memoire .sec-head { position:relative; z-index:1; }
.cem-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
            gap:1rem; max-width:1000px; margin:0 auto; padding:0 1.5rem; position:relative; z-index:1; }
.cem-grid picture { border-radius:10px; overflow:hidden; }
.cem-grid img { width:100%; aspect-ratio:3/2; object-fit:cover; transition:transform .4s; }
.cem-grid picture:hover img { transform:scale(1.04); }

/* ── Élus ── */
.team-lead { display:grid; grid-template-columns:80px 1fr; gap:1.5rem; align-items:start;
             background:#fff; border:1px solid var(--cl); border-radius:var(--r);
             padding:1.5rem; margin-bottom:1.5rem; max-width:1200px; margin-inline:auto; }
.team-lead .av { width:80px; height:80px; border-radius:50%; background:var(--cp); color:#fff;
                  font-family:var(--font-d); font-size:2rem; font-weight:700;
                  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.team-lead .role { font-size:.85rem; color:var(--cm); margin-bottom:.75rem; }
.members { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
           gap:1rem; max-width:1200px; margin:0 auto; }
.member  { display:grid; grid-template-columns:48px 1fr; gap:1rem; align-items:center;
           background:#fff; border:1px solid var(--cl); border-radius:var(--r); padding:1rem; }
.member .av { width:48px; height:48px; border-radius:50%; background:var(--cs); color:#fff;
               font-family:var(--font-d); font-size:1rem; font-weight:700;
               display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.member b   { font-size:.88rem; display:block; }
.member span { font-size:.78rem; color:var(--cm); }
.member-role { font-size:.8rem; color:var(--cs); font-weight:500; margin-top:.15rem; }

/* ── Content pages ── */
.with-aside { display:grid; grid-template-columns:1fr 280px; gap:3rem;
              max-width:1200px; margin:0 auto; padding:0 1.5rem; align-items:start; }
@media(max-width:768px){ .with-aside{ grid-template-columns:1fr; } }
.prose h2 { margin-top:2.2rem; padding-top:1rem; border-top:2px solid var(--cl); }
.prose h2:first-child { margin-top:0; border-top:none; padding-top:0; }
.prose h3 { color:var(--cs); }
.prose ul li::marker { color:var(--ca); }
.prose a  { color:var(--ca); }
.prose ol { padding-left:1.5em; }
.prose .src { font-size:.78rem; color:var(--cm); font-style:italic; margin-top:2rem; }
.side-card { background:#fff; border:1px solid var(--cl); border-radius:var(--r);
             padding:1.5rem; position:sticky; top:80px; }
.side-card h3 { font-size:.95rem; font-family:var(--font-b); font-weight:700; color:var(--cp);
                border-bottom:2px solid var(--cl); padding-bottom:.45rem;
                margin-bottom:.75rem; margin-top:1.25rem; }
.side-card h3:first-child { margin-top:0; }
.side-card ul { list-style:none; padding:0; font-size:.875rem; }
.side-card ul li { padding:.3rem 0; border-bottom:1px solid var(--cl); color:var(--cm); }
.side-card ul li a { color:var(--ca); text-decoration:none; }
.htable { width:100%; border-collapse:collapse; font-size:.87rem; }
.htable td, .htable th { padding:.4rem .6rem; border-bottom:1px solid var(--cl); text-align:left; }
.htable th { font-weight:700; background:var(--cbg2); }
.htable td:first-child { font-weight:600; color:var(--cp); white-space:nowrap; }
.htable.wide { width:100%; }

/* ── Help band ── */
.help-band { background:linear-gradient(135deg,var(--cp) 0%,#2e5059 100%);
             padding:3rem 0; color:#fff; }
.help-band .wrap { display:flex; align-items:center; justify-content:space-between;
                    gap:2rem; flex-wrap:wrap; }
.help-band h3 { font-family:var(--font-d); font-size:1.7rem; color:#fff; margin-bottom:.25rem; }
.help-band p  { color:rgba(255,255,255,.78); margin:0; }
.hb-cta { display:flex; gap:.75rem; flex-wrap:wrap; }

/* ── Tele links ── */
.tele { display:flex; flex-direction:column; gap:.5rem; margin:1rem 0; }
.tele a { display:flex; align-items:center; justify-content:space-between;
           background:var(--cbg2); border:1px solid var(--cl); border-radius:10px;
           padding:.72rem 1rem; font-weight:500; font-size:.9rem; color:var(--cp);
           text-decoration:none; transition:background .18s,border-color .18s,color .18s; }
.tele a:hover { background:#fff; border-color:var(--ca); color:var(--ca); }
.tele a .ar { color:var(--ca); font-size:.9rem; flex-shrink:0; }

/* ── Timeline ── */
.timeline { list-style:none; padding:0; border-left:3px solid var(--cbr); margin:1.5rem 0; }
.tl-item  { padding:.5rem 0 1rem 1.5rem; position:relative; }
.tl-item::before { content:''; position:absolute; left:-7px; top:.65rem;
                    width:11px; height:11px; border-radius:50%;
                    background:var(--cbr); border:2px solid var(--cbg); }
.tl-date { display:inline-block; font-family:var(--font-d); font-weight:700;
            color:var(--ca); font-size:1rem; margin-bottom:.2rem; }
.tl-item p { margin:0; font-size:.88rem; color:var(--cm); }

/* ── Form ── */
.cform { display:flex; flex-direction:column; gap:1rem; margin:1.5rem 0; }
.frow  { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:600px){ .frow{ grid-template-columns:1fr; } }
.cform label { display:flex; flex-direction:column; gap:.4rem; font-size:.9rem;
               font-weight:500; color:var(--cp); }
.cform input, .cform textarea { font-family:var(--font-b); font-size:1rem;
  border:1.5px solid var(--cl); border-radius:8px; padding:.65rem .85rem;
  background:#fff; transition:border-color .18s,outline .18s; }
.cform input:focus, .cform textarea:focus { outline:2px solid var(--ca); border-color:var(--ca); }
.cform textarea { resize:vertical; min-height:120px; }
.form-note { font-size:.78rem; color:var(--cm); }
.form-note a { color:var(--cs); }

/* ── Annuaire cards ── */
.ann-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
            gap:1rem; margin:1.5rem 0; }
.ann-card { background:#fff; border:1px solid var(--cl); border-radius:var(--r); padding:1.25rem; }
.ann-card h3 { font-family:var(--font-b); font-size:.95rem; font-weight:700;
               color:var(--cp); margin-bottom:.3rem; }
.ann-card .ann-cat { font-size:.68rem; font-weight:700; color:var(--ca); text-transform:uppercase;
                      letter-spacing:.06em; background:var(--cbg2); padding:.15rem .5rem;
                      border-radius:4px; display:inline-block; margin-bottom:.5rem; }
.ann-card address { font-size:.84rem; color:var(--cm); line-height:1.5; }
.ann-card p { font-size:.84rem; color:var(--cm); margin:.25rem 0 0; }

/* ── Plan du site ── */
.ps-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
           gap:2rem; margin-top:1.5rem; }
.ps-col h3 { font-family:var(--font-b); font-size:.9rem; font-weight:700; color:var(--cp);
             border-bottom:2px solid var(--ca); padding-bottom:.4rem; margin-bottom:.75rem; }
.ps-col ul { list-style:none; padding:0; }
.ps-col ul li a { font-size:.875rem; color:var(--ct); text-decoration:none;
                   display:block; padding:.2rem 0; }
.ps-col ul li a:hover { color:var(--ca); }

/* ── Cols ── */
.cols-2 { columns:2; column-gap:2rem; }
@media(max-width:640px){ .cols-2{ columns:1; } }

/* ── Leaflet map ── */
#map { height:380px; border-radius:var(--r); overflow:hidden; border:1px solid var(--cl); margin-top:1.5rem; }

/* ══════════════════════ FOOTER ══════════════════════ */
.site-footer { background:var(--cp); color:rgba(255,255,255,.82); padding:4rem 0 0; }
.foot-grid { display:grid; grid-template-columns:1.8fr 1fr 1fr 1.4fr; gap:3rem;
             max-width:1200px; margin:0 auto; padding:0 1.5rem 3rem; }
@media(max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:2rem; } }
@media(max-width:600px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-emblem { width:52px; height:62px; margin-bottom:1rem; }
.foot-id h3  { font-family:var(--font-d); font-size:1.4rem; color:#fff; margin-bottom:.5rem; }
.foot-id p   { font-size:.87rem; color:rgba(255,255,255,.6); line-height:1.55; }
.foot-col h4 { font-family:var(--font-b); font-size:.76rem; font-weight:700; color:var(--cbr);
               text-transform:uppercase; letter-spacing:.12em; margin-bottom:1rem; }
.foot-col ul { list-style:none; padding:0; }
.foot-col ul li { margin-bottom:.4rem; }
.foot-col ul li a { font-size:.87rem; color:rgba(255,255,255,.68); text-decoration:none; }
.foot-col ul li a:hover { color:#fff; }
.foot-col address { font-size:.87rem; color:rgba(255,255,255,.68); line-height:1.8; }
.foot-col address a { color:rgba(255,255,255,.82); text-decoration:none; }
.foot-col address a:hover { color:#fff; }
.foot-hours { list-style:none; padding:0; margin-top:.75rem; }
.foot-hours li { display:flex; justify-content:space-between; gap:1rem;
                  font-size:.78rem; color:rgba(255,255,255,.55); padding:.2rem 0;
                  border-bottom:1px solid rgba(255,255,255,.08); }
.foot-bottom { border-top:1px solid rgba(255,255,255,.1); max-width:1200px; margin:0 auto;
               padding:1.25rem 1.5rem; display:flex; align-items:center;
               justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.foot-bottom span { font-size:.78rem; color:rgba(255,255,255,.45); }
.foot-bottom nav { display:flex; gap:1rem; flex-wrap:wrap; }
.foot-bottom nav a { font-size:.78rem; color:rgba(255,255,255,.45); text-decoration:none; }
.foot-bottom nav a:hover { color:rgba(255,255,255,.82); }
.credit a { color:rgba(255,255,255,.45); text-decoration:none; }
.credit a:hover { color:rgba(255,255,255,.75); }

/* ══════════════════════ BOUTONS ══════════════════════ */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
       padding:.65rem 1.4rem; border-radius:8px; font-family:var(--font-b);
       font-size:.88rem; font-weight:600; text-decoration:none; cursor:pointer;
       transition:background .2s,color .2s,transform .15s,box-shadow .18s;
       border:2px solid transparent; line-height:1.3; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--ca); color:#fff; }
.btn-primary:hover { background:#a33928; color:#fff; box-shadow:0 4px 16px rgba(187,67,46,.35); }
.btn-ghost { background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.28); }
.btn-ghost:hover { background:rgba(255,255,255,.22); color:#fff; }
.btn-out { background:transparent; color:var(--ca); border-color:var(--ca); }
.btn-out:hover { background:var(--ca); color:#fff; }
.btn.full { width:100%; margin-top:.75rem; }

/* ══════════════════════ REVEAL (screenshot-safe) ══════════════════════ */
.reveal { opacity:1; }
@keyframes rise { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }
html.anim .reveal { opacity:0; }
html.anim .reveal.in { animation:rise .62s ease forwards; }
html.anim .grid .reveal.in:nth-child(2) { animation-delay:.1s; }
html.anim .grid .reveal.in:nth-child(3) { animation-delay:.2s; }
html.anim .members .reveal.in:nth-child(2) { animation-delay:.08s; }
html.anim .members .reveal.in:nth-child(3) { animation-delay:.16s; }
html.anim .members .reveal.in:nth-child(4) { animation-delay:.24s; }

/* ══════════════════════ RESPONSIVE ══════════════════════ */
@media(max-width:768px){
  .block { padding:3.5rem 0; }
  .stats { gap:1.5rem; }
  .stat .num { font-size:clamp(2.2rem,8vw,3.5rem); }
  .split { gap:2rem; }
  .help-band .wrap { flex-direction:column; text-align:center; }
  .hb-cta { justify-content:center; }
  .team-lead { grid-template-columns:56px 1fr; gap:1rem; }
  .team-lead .av { width:56px; height:56px; font-size:1.4rem; }
  .sec-head { margin-bottom:2rem; }
}
@media(max-width:480px){
  .wrap, .grid, .with-aside, .quick { padding-inline:1rem; }
  .hero-inner { padding:0 1rem; padding-top:80px; }
  .quick { grid-template-columns:1fr 1fr; }
  .split { padding:0 1rem; }
}
