/* Minification failed. Returning unminified contents.
(9,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(10,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(11,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(12,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(14,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(15,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(16,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(17,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(18,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(19,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(20,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(21,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(22,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(23,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(28,20): run-time error CSS1039: Token not allowed after unary operator: '-sans'
(28,39): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(28,62): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(32,15): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(34,28): run-time error CSS1039: Token not allowed after unary operator: '-maxw'
(36,35): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(36,89): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(41,29): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(42,33): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(49,40): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(57,19): run-time error CSS1039: Token not allowed after unary operator: '-footer-bg'
(62,34): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(67,40): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(67,59): run-time error CSS1039: Token not allowed after unary operator: '-footer-bg'
(74,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(74,57): run-time error CSS1039: Token not allowed after unary operator: '-line'
(83,32): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(83,71): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(84,53): run-time error CSS1039: Token not allowed after unary operator: '-sans'
(84,140): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(86,85): run-time error CSS1039: Token not allowed after unary operator: '-line'
(86,112): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(87,74): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(91,14): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(92,44): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(94,67): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(94,91): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(95,41): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(99,46): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(103,27): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(104,33): run-time error CSS1039: Token not allowed after unary operator: '-brun-dark'
(107,33): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(107,57): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(108,37): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(116,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(116,50): run-time error CSS1039: Token not allowed after unary operator: '-line'
(116,77): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(122,59): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(123,48): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(125,68): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(125,92): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(144,14): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(151,28): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(151,71): run-time error CSS1039: Token not allowed after unary operator: '-line'
(155,68): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(156,57): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(156,96): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(162,37): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(163,37): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(174,34): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(174,65): run-time error CSS1039: Token not allowed after unary operator: '-line'
(175,22): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(178,60): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(180,35): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(181,14): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(184,31): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(185,20): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(185,96): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(187,86): run-time error CSS1039: Token not allowed after unary operator: '-sans'
(187,105): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(192,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(192,50): run-time error CSS1039: Token not allowed after unary operator: '-line'
(192,77): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(206,41): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(207,59): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(208,31): run-time error CSS1039: Token not allowed after unary operator: '-brun-dark'
(213,34): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(213,90): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(214,66): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(215,49): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(220,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(220,55): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(220,86): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(220,100): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(221,27): run-time error CSS1039: Token not allowed after unary operator: '-line'
(224,32): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(224,70): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(226,41): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(230,45): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(245,31): run-time error CSS1039: Token not allowed after unary operator: '-footer-bg'
(247,35): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(257,60): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(265,21): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(265,59): run-time error CSS1039: Token not allowed after unary operator: '-line'
(306,73): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(310,39): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(311,53): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(312,25): run-time error CSS1039: Token not allowed after unary operator: '-brun-dark'
(315,29): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(315,72): run-time error CSS1039: Token not allowed after unary operator: '-line'
(316,45): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(317,27): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(318,33): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(319,46): run-time error CSS1039: Token not allowed after unary operator: '-line'
(322,40): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(328,19): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(328,43): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(337,44): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(339,51): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(342,32): run-time error CSS1039: Token not allowed after unary operator: '-line'
(342,59): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(343,70): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(343,113): run-time error CSS1039: Token not allowed after unary operator: '-line'
(344,79): run-time error CSS1039: Token not allowed after unary operator: '-line'
(344,118): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(346,56): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(346,80): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(347,46): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(347,65): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(347,94): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(349,27): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(349,66): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(359,53): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(363,46): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(363,85): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(368,39): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(370,14): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(388,14): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(388,38): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(393,42): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(393,68): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(394,57): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(398,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(403,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(411,35): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(411,75): run-time error CSS1039: Token not allowed after unary operator: '-line'
(418,25): run-time error CSS1039: Token not allowed after unary operator: '-line'
(418,52): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(419,39): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(423,114): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(425,25): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(430,25): run-time error CSS1039: Token not allowed after unary operator: '-line'
(430,52): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(431,14): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(433,60): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(433,84): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(434,39): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(434,70): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(437,32): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(437,75): run-time error CSS1039: Token not allowed after unary operator: '-line'
(439,97): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(440,100): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(447,58): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(448,55): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(448,128): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(448,185): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(449,103): run-time error CSS1039: Token not allowed after unary operator: '-line'
(451,45): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(454,28): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(457,35): run-time error CSS1039: Token not allowed after unary operator: '-line'
(457,62): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(462,78): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(463,198): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(463,237): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(469,80): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(469,104): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(469,192): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(470,128): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(477,33): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(482,39): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(483,45): run-time error CSS1039: Token not allowed after unary operator: '-brun-dark'
(484,46): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(486,29): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(486,65): run-time error CSS1039: Token not allowed after unary operator: '-line'
(486,92): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(488,47): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(493,25): run-time error CSS1039: Token not allowed after unary operator: '-line'
(493,52): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(493,78): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(493,98): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(495,86): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(495,132): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(497,88): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(501,52): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(502,44): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(504,30): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(504,69): run-time error CSS1039: Token not allowed after unary operator: '-line'
(508,27): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(510,106): run-time error CSS1039: Token not allowed after unary operator: '-line'
(510,133): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(511,49): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(514,121): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(515,31): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(515,62): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(515,81): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(516,34): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(516,65): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(516,84): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(526,41): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(526,72): run-time error CSS1039: Token not allowed after unary operator: '-line'
(526,99): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(527,50): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(529,42): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(529,66): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(531,85): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(538,39): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(540,14): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(544,42): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(544,77): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(545,22): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(545,80): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(547,38): run-time error CSS1039: Token not allowed after unary operator: '-vert'
 */
/* ============================================================
   Fondation de Mazenod — FO theme
   Ported verbatim from the approved mockup
   (.planning/.scratch/layout/mazenod-home.html <style> block).
   Single source of truth for the new FO layout (_LayoutMazenod).
   Tokens
   ============================================================ */
:root{
  --vert:        #A8C43B;   /* brand primary green  */
  --vert-dark:   #7E9722;   /* hover / AA-contrast green */
  --vert-tint:   #F4F7E6;   /* pale green wash for bands */
  --brun:        #8F3036;   /* brand secondary brown — CTA */
  --brun-dark:   #6E2429;
  --ink:         #2B2B26;   /* body text */
  --ink-soft:    #5C5C52;
  --paper:       #FFFFFF;
  --paper-warm:  #FBFAF6;   /* section alternation */
  --line:        #E2E0D6;
  --footer-bg:   #2E3320;   /* deep olive */
  --serif: "EB Garamond", Georgia, "Times New Roman", serif;
  --sans:  "Source Sans 3", "Segoe UI", Arial, sans-serif;
  --maxw: 1140px;
  --radius: 6px;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans); color:var(--ink); background:var(--paper);
  font-size:1.0625rem; line-height:1.65;
}
img{ max-width:100%; display:block; }
a{ color:var(--vert-dark); text-decoration:none; }
a:hover{ text-decoration:underline; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 1.25rem; }

h1,h2,h3,.serif{ font-family:var(--serif); font-weight:500; line-height:1.2; color:var(--ink); }

/* ---- Signature device: 19th-c. "filet double" rule ---------- */
.filet{
  border:0; height:7px; margin:0;
  border-top:1px solid var(--brun);
  border-bottom:3px double var(--brun);
  opacity:.55; width:72px;
}
.section-head{ text-align:center; margin-bottom:2.5rem; }
.section-head .filet{ margin:0 auto 1rem; }
.section-head .eyebrow{
  display:block; font-size:.8125rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--vert-dark); margin-bottom:.5rem;
}
.section-head h2{ font-size:clamp(1.75rem, 3.5vw, 2.375rem); }

/* ============================================================
   Top bar (utility)
   ============================================================ */
.topbar{
  background:var(--footer-bg); color:#D9DCC8; font-size:.8125rem;
}
.topbar .container{
  display:flex; justify-content:space-between; align-items:center; min-height:36px;
}
.topbar .motto{ font-family:var(--serif); font-style:italic; letter-spacing:.02em; }
.lang-switch{ display:flex; gap:2px; }
.lang-switch a{
  color:#D9DCC8; padding:.15rem .55rem; border-radius:3px; font-weight:600;
}
.lang-switch a.active{ background:var(--vert); color:var(--footer-bg); }
.lang-switch a:hover{ text-decoration:none; background:rgba(255,255,255,.12); }

/* ============================================================
   Header / nav
   ============================================================ */
.site-header{
  background:var(--paper); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
}
.site-header .container{
  display:flex; align-items:center; gap:1.5rem; min-height:76px;
}
.brand{ display:flex; align-items:center; gap:.75rem; text-decoration:none; }
.brand:hover{ text-decoration:none; }
.brand .brand-logo{ width:75px; height:auto; object-fit:contain; display:block; }
.brand .name{ font-family:var(--serif); font-size:1.35rem; color:var(--ink); line-height:1.1; }
.brand .name small{ display:block; font-family:var(--sans); font-size:.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }

.nav-toggle{ display:none; margin-left:auto; background:none; border:1px solid var(--line); border-radius:var(--radius); padding:.45rem .6rem; cursor:pointer; }
.nav-toggle span{ display:block; width:20px; height:2px; background:var(--ink); margin:4px 0; }

.main-nav{ margin-left:auto; display:flex; align-items:center; gap:.25rem; }
.main-nav a.nav-link{
  color:var(--ink); font-weight:600; font-size:.9375rem;
  padding:.55rem .8rem; border-radius:var(--radius);
}
.main-nav a.nav-link:hover{ text-decoration:none; background:var(--vert-tint); color:var(--vert-dark); }
.main-nav a.nav-link.active{ color:var(--vert-dark); }

.btn{
  display:inline-block; font-weight:700; font-size:.9375rem;
  padding:.65rem 1.35rem; border-radius:var(--radius); border:2px solid transparent;
  text-decoration:none; cursor:pointer; transition:background .15s,color .15s;
}
.btn:hover{ text-decoration:none; }
.btn-don{ background:var(--brun); color:#fff; }
.btn-don:hover{ background:var(--brun-dark); }
.btn-ghost{ border-color:#fff; color:#fff; background:transparent; }
.btn-ghost:hover{ background:rgba(255,255,255,.15); }
.btn-outline{ border-color:var(--vert-dark); color:var(--vert-dark); background:transparent; }
.btn-outline:hover{ background:var(--vert-tint); }
.main-nav .btn-don{ margin-left:.5rem; }

/* DB-driven nav dropdowns (Phase 2d): CSS hover/focus, no JS dependency. */
.main-nav .has-dropdown{ position:relative; }
.main-nav .has-dropdown > .nav-link .caret{ font-size:.7em; margin-left:.25rem; }
.main-nav .dropdown{
  display:none; position:absolute; top:100%; left:0; min-width:230px;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 10px 28px rgba(0,0,0,.10); padding:.4rem; z-index:60;
}
.main-nav .has-dropdown:hover > .dropdown,
.main-nav .has-dropdown:focus-within > .dropdown{ display:block; }
.main-nav .dropdown a{
  display:block; padding:.5rem .75rem; border-radius:var(--radius);
  font-size:.9rem; font-weight:600; color:var(--ink); white-space:nowrap;
}
.main-nav .dropdown a:hover{ text-decoration:none; background:var(--vert-tint); color:var(--vert-dark); }

/* ============================================================
   Hero
   ============================================================ */
.hero{
  position:relative; color:#fff;
  background:
    linear-gradient(rgba(30,36,18,.55), rgba(30,36,18,.72)),
    url('../images/mazenod/banniere-accueil.jpg') center/cover no-repeat;
  min-height:520px; display:flex; align-items:center;
}
.hero .ph-label{
  position:absolute; top:1rem; right:1rem; font-size:.75rem; letter-spacing:.1em;
  background:rgba(0,0,0,.4); padding:.25rem .6rem; border-radius:3px;
}
.hero-inner{ max-width:720px; padding:4.5rem 0; }
.hero .eyebrow{
  font-size:.8125rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--vert); margin-bottom:1rem; display:block;
}
.hero h1{ color:#fff; font-size:clamp(2.1rem, 5vw, 3.25rem); margin-bottom:1.1rem; }
.hero p{ font-size:1.15rem; max-width:56ch; margin-bottom:1.75rem; color:#EDEEE4; }
.hero .actions{ display:flex; gap:.9rem; flex-wrap:wrap; }

/* Heritage strip */
.heritage{ background:var(--paper-warm); border-bottom:1px solid var(--line); }
.heritage .container{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; padding:1.4rem 1.25rem;
}
.heritage .item{ text-align:center; font-size:.9375rem; color:var(--ink-soft); }
.heritage .item strong{ display:block; font-family:var(--serif); font-size:1.15rem; color:var(--ink); font-weight:600; }

/* ============================================================
   Sections
   ============================================================ */
section.block{ padding:4.5rem 0; }
section.block.warm{ background:var(--paper-warm); }
section.block.tint{ background:var(--vert-tint); }

/* Intro */
.intro-grid{ display:grid; grid-template-columns:1.3fr .7fr; gap:3rem; align-items:center; }
.intro-grid .lead{ font-size:1.2rem; }
.intro-grid p + p{ margin-top:1rem; }
/* Founder portrait — the Intro's right cell holds nothing else; the quote lives in the left column.
   The frame sits on the <a> so the caption stays outside it. The asset is already 4:5, so the image
   needs no cropping rule. */
.intro-portrait{ margin:0; }
.intro-portrait a{
  display:block; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:.6rem;
}
.intro-portrait img{ width:100%; height:auto; display:block; }
.intro-portrait figcaption{ font-size:.8125rem; color:var(--ink-soft); margin-top:.75rem; font-style:italic; }
.intro-portrait figcaption .name{
  display:block; font-family:var(--serif); font-style:normal; font-size:1.05rem;
  color:var(--brun); margin-bottom:.15rem;
}
.pullquote{
  border-left:3px double var(--brun); padding:1rem 0 1rem 1.5rem;
  font-family:var(--serif); font-style:italic; font-size:1.45rem; line-height:1.45; color:var(--brun);
}
.pullquote cite{ display:block; font-size:.9rem; font-style:normal; font-family:var(--sans); color:var(--ink-soft); margin-top:.75rem; }

/* Cards */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; }
.card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .15s, transform .15s;
}
.card:hover{ box-shadow:0 8px 24px rgba(43,43,38,.1); transform:translateY(-2px); }
.card .thumb{
  aspect-ratio:16/9; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:.75rem; letter-spacing:.1em;
  background:linear-gradient(135deg,#B9CB6A,#7E9722);
}
.card .thumb.brun{ background:linear-gradient(135deg,#A7484E,#6E2429); }
/* Real cover image (when the article has one) fills the 16/9 frame; no image = gradient above. */
.card .thumb img,.featured .ph img{ width:100%; height:100%; object-fit:cover; display:block; }
.card .body{ padding:1.25rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.card h3{ font-size:1.3rem; }
.card p{ font-size:.9375rem; color:var(--ink-soft); flex:1; }
.card .link{ font-weight:700; font-size:.9rem; color:var(--brun); }
.card .link:hover{ color:var(--brun-dark); }
.section-cta{ text-align:center; margin-top:2.5rem; }

/* Chiffres */
.chiffres{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; text-align:center; }
.chiffres .num{ font-family:var(--serif); font-size:clamp(2.4rem,4vw,3.4rem); color:var(--vert-dark); line-height:1; }
.chiffres .lbl{ margin-top:.5rem; font-size:.9375rem; color:var(--ink-soft); }
.chiffres .note{ font-size:.8125rem; color:var(--ink-soft); margin-top:2rem; text-align:center; font-style:italic; }

/* Engagement paths */
.paths{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; }
.path{
  background:var(--paper); border-top:3px double var(--brun); border-radius:0 0 var(--radius) var(--radius);
  box-shadow:0 1px 0 var(--line), 0 6px 18px rgba(43,43,38,.05);
  padding:1.75rem 1.6rem;
}
.path .glyph{ font-family:var(--serif); font-size:1.6rem; color:var(--vert-dark); }
.path h3{ font-size:1.35rem; margin:.4rem 0 .5rem; }
.path p{ font-size:.9375rem; color:var(--ink-soft); margin-bottom:1rem; }

/* News */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; }
.news .date{ font-size:.8125rem; color:var(--ink-soft); letter-spacing:.04em; }

/* Donate band */
.don-band{
  background:linear-gradient(rgba(110,36,41,.92),rgba(110,36,41,.92)),
             repeating-linear-gradient(45deg,#8F3036 0 24px,#7c282e 24px 48px);
  color:#fff; text-align:center; padding:4.5rem 0;
}
.don-band h2{ color:#fff; font-size:clamp(1.9rem,4vw,2.6rem); max-width:22ch; margin:0 auto 1rem; }
.don-band p{ color:#F3E2E3; max-width:60ch; margin:0 auto 2rem; }
.don-band .filet{ border-color:#fff; margin:0 auto 1.25rem; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer{ background:var(--footer-bg); color:#C9CDB4; font-size:.9rem; }
.footer-main{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:2rem; padding-top:3.5rem; padding-bottom:2.5rem; }
.site-footer h4{ font-family:var(--serif); font-weight:500; color:#fff; font-size:1.1rem; margin-bottom:.9rem; }
.site-footer ul{ list-style:none; }
.site-footer li{ margin-bottom:.45rem; }
.site-footer a{ color:#C9CDB4; }
.site-footer a:hover{ color:#fff; }
.footer-about p{ margin-top:.75rem; }
.footer-legal{
  border-top:1px solid rgba(255,255,255,.14); padding-top:1.25rem; padding-bottom:1.25rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.8125rem;
}
.footer-legal .decret{ font-style:italic; font-family:var(--serif); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 960px){
  .main-nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:stretch; padding:.75rem 1.25rem 1.25rem; gap:.15rem;
  }
  .main-nav.open{ display:flex; }
  .main-nav .btn-don{ margin:.6rem 0 0; text-align:center; }
  /* On mobile, dropdowns render inline (always open) inside the toggled menu. */
  .main-nav .has-dropdown{ display:flex; flex-direction:column; }
  .main-nav .dropdown{ display:block; position:static; border:0; box-shadow:none; padding:.1rem 0 .3rem .9rem; min-width:0; }
  .nav-toggle{ display:block; }
  .intro-grid{ grid-template-columns:1fr; gap:2rem; }
  /* Stacked, the portrait would span the full container width (its source is 465px wide) */
  .intro-portrait{ max-width:340px; margin-left:auto; margin-right:auto; }
  .card-grid,.paths,.news-grid,.chiffres{ grid-template-columns:1fr 1fr; }
  .footer-main{ grid-template-columns:1fr 1fr; }
  /* Phone/tablet: the about block spans the full row, so the four link columns pair up 2x2
     (La Fondation | Nos actions / S'engager | S'informer). */
  .footer-about{ grid-column:1 / -1; }
}
@media (max-width: 620px){
  /* Wider gutter on phones: 1.25rem reads tight against the full-bleed dark footer band. */
  .container{ padding-left:1.75rem; padding-right:1.75rem; }
  .topbar .motto{ display:none; }
  .heritage .container{ grid-template-columns:1fr; gap:.9rem; }
  .card-grid,.paths,.news-grid,.chiffres{ grid-template-columns:1fr; }
  section.block{ padding:3rem 0; }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .card:hover{ transform:none; }
}

/* ============================================================
   INNER PAGES — added for content / project / news-list /
   news-article / contact mockups. Shell tokens, .filet,
   .section-head, .card(+grid), .btn* and the responsive rules
   above are REUSED and deliberately NOT redefined here.
   ============================================================ */

/* ---- Generic placeholder / helpers (shared by inner pages) ---- */
.ph{
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:.75rem; letter-spacing:.1em; border-radius:var(--radius);
  background:linear-gradient(135deg,#B9CB6A,#7E9722);
}
.ph.tall{ aspect-ratio:16/8; }
.date{ font-size:.8125rem; color:var(--ink-soft); letter-spacing:.04em; }
.link{ font-weight:700; font-size:.9rem; color:var(--brun); }
.link:hover{ color:var(--brun-dark); }

/* ---- Page header + breadcrumb (content / project / news-list / contact) ---- */
.page-head{ background:var(--paper-warm); border-bottom:1px solid var(--line); padding:2.25rem 0 2rem; }
.breadcrumb{ font-size:.8125rem; color:var(--ink-soft); margin-bottom:1rem; }
.breadcrumb a{ color:var(--ink-soft); }
.breadcrumb a:hover{ color:var(--vert-dark); }
.breadcrumb .sep{ margin:0 .4rem; color:var(--line); }
.page-head .eyebrow{
  display:block; font-size:.8125rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--vert-dark); margin:.9rem 0 .4rem;
}
.page-head h1{ font-size:clamp(1.9rem, 4vw, 2.75rem); }
.page-head .tags{ margin-top:.9rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.tag{
  font-size:.75rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:var(--vert-tint); color:var(--vert-dark); padding:.3rem .7rem; border-radius:999px;
}
.page-body{ padding:3.5rem 0 4.5rem; }

/* ---- Content page: content + sidebar ---- */
.layout{ display:grid; grid-template-columns:1fr 300px; gap:3.5rem; align-items:start; }
.prose h2{ font-size:1.75rem; margin:2.25rem 0 .9rem; }
.prose h2:first-child{ margin-top:0; }
.prose p{ margin-bottom:1rem; }
.prose .lead{ font-size:1.2rem; color:var(--ink); }
.prose figure{ margin:2rem 0; }
.prose figcaption{ font-size:.8125rem; color:var(--ink-soft); margin-top:.5rem; font-style:italic; }

.sidebar{ position:sticky; top:96px; display:flex; flex-direction:column; gap:1.5rem; }
.subnav{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.subnav h3{ font-size:1.15rem; padding:1rem 1.25rem; background:var(--paper-warm); border-bottom:1px solid var(--line); }
.subnav a{ display:block; padding:.7rem 1.25rem; border-bottom:1px solid var(--line); font-size:.9375rem; color:var(--ink); font-weight:600; }
.subnav a:last-child{ border-bottom:0; }
.subnav a:hover{ text-decoration:none; background:var(--vert-tint); color:var(--vert-dark); }
.subnav a.active{ border-left:3px solid var(--vert); color:var(--vert-dark); background:var(--vert-tint); }

.don-box{ background:var(--brun); color:#fff; border-radius:var(--radius); padding:1.5rem; text-align:center; }
.don-box .filet{ border-color:#fff; margin:0 auto .9rem; }
.don-box h3{ color:#fff; font-size:1.35rem; margin-bottom:.5rem; }
.don-box p{ font-size:.875rem; color:#F3E2E3; margin-bottom:1rem; }

/* ---- Project detail ---- */
.project{ max-width:820px; margin:0 auto; }
.project .lead{ font-size:1.25rem; margin-bottom:2rem; }
.project figure{ margin:0 0 2rem; }
.project figure .ph{ aspect-ratio:16/9; }
.project figcaption{ font-size:.8125rem; color:var(--ink-soft); margin-top:.5rem; font-style:italic; }
.project p{ margin-bottom:1rem; }
.project h2{ font-size:1.7rem; margin:2rem 0 .8rem; }

.don-panel{ margin:3rem 0 0; background:var(--brun); color:#fff; border-radius:var(--radius); padding:2.25rem 2rem; text-align:center; }
.don-panel .filet{ border-color:#fff; margin:0 auto 1rem; }
.don-panel h2{ color:#fff; font-size:1.8rem; margin:0 0 .5rem; }
.don-panel p{ color:#F3E2E3; max-width:52ch; margin:0 auto 1.5rem; font-size:.9375rem; }
.helloasso-slot{
  background:#fff; border-radius:var(--radius); min-height:340px;
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-soft); font-size:.875rem; border:2px dashed rgba(143,48,54,.35);
}
/* .helloasso-slot has two states, both emitted by CommonHelper.FixContentForView from the
   #HelloAsso:{id}# token: the labelled dashed placeholder (no HelloAssoFormBaseUrl configured — the
   original "form comes later" look), and .has-embed, which holds the real widget iframe. */
.helloasso-slot.has-embed{
  min-height:0; display:block; border:0; padding:0; margin:1.5rem 0; overflow:hidden;
}
.helloasso-slot.has-embed iframe{ display:block; width:100%; border:0; }
/* Full-screen control, injected per embed by Content/js/mazenod-helloasso.js (never in the article
   body). It lives INSIDE the wrapper so it stays visible once expanded — a fullscreen element paints
   only its own subtree. Reuses the .link idiom rather than a new colour. */
.helloasso-slot.has-embed .helloasso-actions{ margin:0 0 .6rem; text-align:right; }
/* Same pill shape as .btn but one size down — the control sits above a form, it must read as a button
   without competing with "Faire un don". The ⤢ glyph comes from CSS so the JS keeps owning only the label. */
.helloasso-expand{
  display:inline-flex; align-items:center; gap:.45rem; cursor:pointer;
  font-family:inherit; font-size:.8125rem; font-weight:700; line-height:1;
  color:var(--brun); background:var(--paper); border:1px solid rgba(143,48,54,.35);
  padding:.5rem .95rem; border-radius:999px;
  transition:background .15s, color .15s, border-color .15s;
}
.helloasso-expand::before{ content:"\2922"; font-size:.95rem; font-weight:400; }
.helloasso-expand:hover{ background:var(--brun); border-color:var(--brun); color:#fff; }
.helloasso-expand:focus-visible{ outline:2px solid var(--brun); outline-offset:2px; }
/* Expanded: a fullscreen element is painted on black by default, so give it the page's own paper, and
   pin the box to the screen so the iframe can take every pixel left under the button bar. */
.helloasso-slot.has-embed:fullscreen{
  background:var(--paper); display:flex; flex-direction:column;
  width:100%; height:100%; padding:.75rem 1rem 1rem; margin:0;
}
.helloasso-slot.has-embed:fullscreen iframe{ flex:1 1 auto; width:100%; height:100%; min-height:0; }
.helloasso-slot.has-embed:-webkit-full-screen{
  background:var(--paper); display:flex; flex-direction:column;
  width:100%; height:100%; padding:.75rem 1rem 1rem; margin:0;
}
.helloasso-slot.has-embed:-webkit-full-screen iframe{ flex:1 1 auto; width:100%; height:100%; min-height:0; }
.don-panel .alt{ margin-top:1rem; font-size:.8125rem; color:#E7C9CB; }
.don-panel .alt a{ color:#fff; text-decoration:underline; }

/* "Other projects" / "related" section wrappers (reuse .section-head + .card-grid) */
.others,.related{ background:var(--paper-warm); border-top:1px solid var(--line); padding:4rem 0; }
.others .section-head,.related .section-head{ margin-bottom:2.25rem; }
.others h2,.related h2{ font-size:1.9rem; }

/* ---- News list ---- */
.featured{
  display:grid; grid-template-columns:1.2fr 1fr; gap:0;
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  margin-bottom:3rem; background:var(--paper);
}
.featured .ph{ min-height:300px; border-radius:0; }
.featured .body{ padding:2.25rem 2.5rem; display:flex; flex-direction:column; justify-content:center; gap:.75rem; }
.featured .kicker{ font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--brun); }
.featured h2{ font-size:1.9rem; }
.featured p{ color:var(--ink-soft); }

.pagination{ display:flex; justify-content:center; gap:.4rem; margin-top:3rem; }
.pagination a,.pagination span{
  min-width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:var(--radius); font-weight:600; font-size:.9375rem;
  color:var(--ink); padding:0 .6rem;
}
.pagination a:hover{ text-decoration:none; background:var(--vert-tint); color:var(--vert-dark); }
.pagination .current{ background:var(--vert-dark); border-color:var(--vert-dark); color:#fff; }

/* ---- News article ---- */
.article-head{ background:var(--paper-warm); border-bottom:1px solid var(--line); padding:2.25rem 0 2rem; }
.article-head .inner,.article-body{ max-width:780px; margin:0 auto; }
.article-head .meta{ display:flex; gap:1rem; align-items:center; font-size:.8125rem; color:var(--ink-soft); margin:.9rem 0 .5rem; }
.article-head .kicker{ font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--brun); font-size:.75rem; }
.article-head h1{ font-size:clamp(1.9rem, 4vw, 2.6rem); }
.article-body .lead{ font-size:1.25rem; margin-bottom:1.5rem; }
.article-body p{ margin-bottom:1rem; }
.article-body h2{ font-size:1.6rem; margin:2rem 0 .8rem; }
.article-body figure{ margin:2rem 0; }
.article-body figure .ph{ aspect-ratio:16/9; }
.article-body figcaption{ font-size:.8125rem; color:var(--ink-soft); margin-top:.5rem; font-style:italic; }
.article-body blockquote{ border-left:3px double var(--brun); padding:.5rem 0 .5rem 1.5rem; margin:1.75rem 0; font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--brun); }
.article-footer{ max-width:780px; margin:2.5rem auto 0; padding-top:1.5rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.article-footer .back{ font-weight:700; font-size:.9375rem; }
.card .date{ font-size:.8125rem; color:var(--ink-soft); }

/* ---- Contact ---- */
.btn-vert{ background:var(--vert-dark); color:#fff; border:0; }
.btn-vert:hover{ background:#6a7f1d; }
.contact-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:3.5rem; align-items:start; }
.info-card{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
/* Contact map — a pre-rendered image already graded to the palette, so no CSS filter is needed.
   No radius here: .info-card's overflow:hidden already rounds the top corners. The cream address block
   sits underneath and shows through whenever the image is absent (server-side) or fails to load
   (the img's onerror hides its link), so one rule set covers both fallback paths. */
.info-card .info-map{ position:relative; aspect-ratio:16/10; background:var(--paper-warm); }
.info-card .map-fallback{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.25rem; padding:1rem; text-align:center; font-family:var(--serif); font-size:1.05rem; color:var(--ink); }
.info-card .info-map .map-link{ position:absolute; inset:0; display:block; }
.info-card .info-map img{ width:100%; height:auto; display:block; }
.info-card .body{ padding:1.75rem; }
.info-card h2{ font-size:1.5rem; margin-bottom:1rem; }
.info-row{ display:flex; gap:.9rem; margin-bottom:1.1rem; font-size:.9375rem; }
.info-row .ico{ flex:0 0 34px; height:34px; border-radius:50%; background:var(--vert-tint); color:var(--vert-dark); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.05rem; }
.info-row .lbl{ font-weight:700; display:block; font-size:.8125rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
/* Standalone error pages (500 / Error). Those two render WITHOUT the DB-driven shell so they still
   work when the database is what failed — hence their own self-contained centered block. */
.error-standalone{ max-width:44rem; margin:0 auto; padding:5rem 1.25rem; text-align:center; }
.error-standalone .brand-logo{ width:96px; height:auto; margin:0 auto 1.75rem; display:block; }
.error-standalone .filet{ margin-bottom:1.75rem; }
.error-standalone h1{ font-size:clamp(1.6rem,3vw,2.1rem); margin-bottom:1rem; }
.error-standalone p{ color:var(--ink-soft); margin-bottom:1.75rem; }

/* Phone/email slots — filled at runtime by Content/js/mazenod-contact.js with real tel:/mailto:
   links, so the served HTML carries nothing. One line each; the footer inherits .site-footer a. */
.contact-slot{ display:block; margin-top:.2rem; }
.info-row .contact-slot a{ color:var(--brun); font-weight:600; }
.info-row .contact-slot a:hover{ color:var(--brun-dark); }
.anti-scrape{ font-size:.8125rem; color:var(--ink-soft); font-style:italic; margin-top:.5rem; }

.form-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--radius); padding:2rem; }
.form-card h2{ font-size:1.5rem; margin-bottom:.4rem; }
.form-card .hint{ font-size:.9rem; color:var(--ink-soft); margin-bottom:1.5rem; }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-weight:700; font-size:.875rem; margin-bottom:.35rem; }
.field input,.field select,.field textarea{
  width:100%; padding:.7rem .85rem; font:inherit; font-size:.9375rem;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); color:var(--ink);
}
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--vert); outline-offset:1px; border-color:var(--vert-dark); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.check{ display:flex; gap:.6rem; align-items:flex-start; font-size:.875rem; color:var(--ink-soft); margin:1.25rem 0; }
.check input{ margin-top:.25rem; }
.form-actions{ display:flex; justify-content:flex-end; }
/* Server-side validation (MVC ValidationMessageFor) — layout has no jQuery unobtrusive validation. */
.field-validation-error{ display:block; color:var(--brun); font-size:.8125rem; margin-top:.3rem; }
.input-validation-error{ border-color:var(--brun) !important; }

.newsletter{ background:var(--vert-tint); border-top:1px solid var(--line); padding:3.5rem 0; }
.newsletter .inner{ max-width:640px; margin:0 auto; text-align:center; }
.newsletter .filet{ margin:0 auto 1rem; }
.newsletter h2{ font-size:1.8rem; margin-bottom:.5rem; }
.newsletter p{ color:var(--ink-soft); margin-bottom:1.5rem; }
.newsletter form{ display:flex; gap:.75rem; max-width:460px; margin:0 auto; }
.newsletter input{ flex:1; padding:.7rem .85rem; font:inherit; font-size:.9375rem; border:1px solid var(--line); border-radius:var(--radius); }
.newsletter input:focus{ outline:2px solid var(--vert); outline-offset:1px; }

/* Flash message for the newsletter band (TempData, server-rendered after the POST redirect). */
.form-msg{ font-size:.9375rem; font-weight:600; margin:0 auto; max-width:460px; padding:.75rem 1rem; border-radius:var(--radius); }
.form-msg.ok{ background:var(--paper); border:1px solid var(--vert); color:var(--vert-dark); }
.form-msg.error{ background:var(--paper); border:1px solid var(--brun); color:var(--brun); margin-bottom:1rem; }

/* ---- Partner logo grid (used inside a content-page .prose body: S'informer > Nos partenaires) ----
   Authored as a <ul class="partner-grid"> in the article HTML, so the grid is content-editable in the
   BO without touching a view. Logos are deferred like every other image, so each cell carries the
   REUSED .ph placeholder until the real logo lands. */
.partner-grid{ list-style:none; padding:0; margin:1.75rem 0; display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.partner-grid li{ margin:0; }
.partner-grid a,.partner-grid .cell{
  height:100%; display:flex; flex-direction:column; gap:.75rem; align-items:center; text-align:center;
  padding:1.25rem 1rem; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  font-size:.875rem; font-weight:600; color:var(--ink);
}
.partner-grid a:hover{ border-color:var(--vert-dark); color:var(--vert-dark); }
.partner-grid .ph{ width:100%; aspect-ratio:16/9; }
.partner-grid .role{ display:block; font-weight:400; font-size:.8125rem; color:var(--ink-soft); }

/* ---- Attached document: labelled placeholder + the real download link ----
   .doc-slot is the same "deliberately empty, labelled" convention as .helloasso-slot (authored in the
   article body while the file is still pending). .doc-download is rendered by ContentPage.cshtml once
   an article actually carries a FileName2 upload. */
.doc-slot{
  background:#fff; border-radius:var(--radius); min-height:120px; margin:1.5rem 0;
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:var(--ink-soft); font-size:.875rem; border:2px dashed rgba(143,48,54,.35); padding:1rem;
}
.doc-download{
  display:inline-flex; align-items:center; gap:.5rem; margin-top:1.75rem;
  padding:.7rem 1.15rem; background:var(--vert-tint); border:1px solid var(--vert);
  border-radius:var(--radius); font-weight:700; font-size:.9375rem; color:var(--vert-dark);
}
.doc-download:hover{ background:var(--vert); color:#fff; }

/* ---- Inner-page responsive (extends the shell breakpoints above) ---- */
@media (max-width: 960px){
  .layout{ grid-template-columns:1fr; gap:2.5rem; }
  .sidebar{ position:static; }
  .featured{ grid-template-columns:1fr; }
  .featured .ph{ min-height:220px; }
  .contact-grid{ grid-template-columns:1fr; gap:2.5rem; }
  .partner-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 620px){
  /* Wider gutter on phones: 1.25rem reads tight against the full-bleed dark footer band. */
  .container{ padding-left:1.75rem; padding-right:1.75rem; }
  .field-row{ grid-template-columns:1fr; }
  .newsletter form{ flex-direction:column; }
  .don-panel{ padding:1.75rem 1.25rem; }
  .featured .body{ padding:1.5rem 1.25rem; }
  .partner-grid{ grid-template-columns:1fr; }
}

