/* 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'
(170,31): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(171,20): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(171,96): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(173,86): run-time error CSS1039: Token not allowed after unary operator: '-sans'
(173,105): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(178,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(178,50): run-time error CSS1039: Token not allowed after unary operator: '-line'
(178,77): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(192,41): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(193,59): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(194,31): run-time error CSS1039: Token not allowed after unary operator: '-brun-dark'
(199,34): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(199,90): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(200,66): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(201,49): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(206,19): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(206,55): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(206,86): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(206,100): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(207,27): run-time error CSS1039: Token not allowed after unary operator: '-line'
(210,32): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(210,70): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(212,41): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(216,45): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(231,31): run-time error CSS1039: Token not allowed after unary operator: '-footer-bg'
(233,35): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(243,60): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(251,21): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(251,59): run-time error CSS1039: Token not allowed after unary operator: '-line'
(286,73): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(290,39): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(291,53): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(292,25): run-time error CSS1039: Token not allowed after unary operator: '-brun-dark'
(295,29): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(295,72): run-time error CSS1039: Token not allowed after unary operator: '-line'
(296,45): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(297,27): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(298,33): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(299,46): run-time error CSS1039: Token not allowed after unary operator: '-line'
(302,40): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(308,19): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(308,43): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(317,44): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(319,51): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(322,32): run-time error CSS1039: Token not allowed after unary operator: '-line'
(322,59): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(323,70): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(323,113): run-time error CSS1039: Token not allowed after unary operator: '-line'
(324,79): run-time error CSS1039: Token not allowed after unary operator: '-line'
(324,118): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(326,56): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(326,80): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(327,46): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(327,65): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(327,94): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(329,27): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(329,66): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(339,53): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(343,46): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(343,85): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(348,39): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(350,14): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(356,35): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(356,75): run-time error CSS1039: Token not allowed after unary operator: '-line'
(363,25): run-time error CSS1039: Token not allowed after unary operator: '-line'
(363,52): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(364,39): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(368,114): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(370,25): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(375,25): run-time error CSS1039: Token not allowed after unary operator: '-line'
(375,52): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(376,14): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(378,60): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(378,84): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(379,39): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(379,70): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(382,32): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(382,75): run-time error CSS1039: Token not allowed after unary operator: '-line'
(384,97): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(385,100): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(392,58): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(393,55): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(393,128): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(393,185): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(394,103): run-time error CSS1039: Token not allowed after unary operator: '-line'
(396,45): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(399,28): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(402,35): run-time error CSS1039: Token not allowed after unary operator: '-line'
(402,62): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(407,80): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(407,104): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(407,192): run-time error CSS1039: Token not allowed after unary operator: '-serif'
(408,128): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(415,33): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(420,39): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(421,45): run-time error CSS1039: Token not allowed after unary operator: '-brun-dark'
(422,46): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(424,29): run-time error CSS1039: Token not allowed after unary operator: '-paper-warm'
(424,65): run-time error CSS1039: Token not allowed after unary operator: '-line'
(424,92): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(426,47): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(431,25): run-time error CSS1039: Token not allowed after unary operator: '-line'
(431,52): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(431,78): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(431,98): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(433,86): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(433,132): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(435,88): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(439,52): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(440,44): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(442,30): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(442,69): run-time error CSS1039: Token not allowed after unary operator: '-line'
(446,27): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(448,106): run-time error CSS1039: Token not allowed after unary operator: '-line'
(448,133): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(449,49): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(452,121): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(453,31): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(453,62): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(453,81): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(454,34): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(454,65): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(454,84): run-time error CSS1039: Token not allowed after unary operator: '-brun'
(464,41): run-time error CSS1039: Token not allowed after unary operator: '-paper'
(464,72): run-time error CSS1039: Token not allowed after unary operator: '-line'
(464,99): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(465,50): run-time error CSS1039: Token not allowed after unary operator: '-ink'
(467,42): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(467,66): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(469,85): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(476,39): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(478,14): run-time error CSS1039: Token not allowed after unary operator: '-ink-soft'
(482,42): run-time error CSS1039: Token not allowed after unary operator: '-vert-tint'
(482,77): run-time error CSS1039: Token not allowed after unary operator: '-vert'
(483,22): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(483,80): run-time error CSS1039: Token not allowed after unary operator: '-vert-dark'
(485,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.1fr .9fr; gap:3rem; align-items:center; }
.intro-grid .lead{ font-size:1.2rem; }
.intro-grid p + p{ margin-top:1rem; }
.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:3.5rem 0 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:1.25rem 0;
  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; }
  .card-grid,.paths,.news-grid,.chiffres{ grid-template-columns:1fr 1fr; }
  .footer-main{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 620px){
  .topbar .motto{ display:none; }
  .heritage .container{ grid-template-columns:1fr; gap:.9rem; }
  .card-grid,.paths,.news-grid,.chiffres{ grid-template-columns:1fr; }
  .footer-main{ 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);
}
.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; }
.info-card .map-ph{ aspect-ratio:16/10; display:flex; align-items:center; justify-content:center; color:#fff; font-size:.75rem; letter-spacing:.1em; background:linear-gradient(135deg,#B9CB6A,#7E9722); }
.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){
  .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; }
}

