/* ============================================================
   FLOSSENBÜRG — REFONTE 2026 — Pages intérieures
   Réutilise le design system de theme.css (variables, header, footer,
   .eyebrow, .btn, --gutter). Styles fluides (fond pleine largeur,
   contenu centré via --gutter).
   ============================================================ */

/* ── Bloc titre de page (hero intérieur, réutilisable) ── */
.page-title { width: 100%; padding: 70px var(--gutter) 64px; position: relative; }
.page-title .torn-edge {
  position: absolute; top: 0; left: 0; right: 0; height: 22px; pointer-events: none;
  background:
    radial-gradient(ellipse 14px 18px at 4% 0%, rgba(0,0,0,.04), transparent 70%),
    radial-gradient(ellipse 18px 14px at 18% 0%, rgba(0,0,0,.05), transparent 70%),
    radial-gradient(ellipse 12px 16px at 36% 0%, rgba(0,0,0,.05), transparent 70%),
    radial-gradient(ellipse 16px 12px at 52% 0%, rgba(0,0,0,.04), transparent 70%),
    radial-gradient(ellipse 14px 14px at 70% 0%, rgba(0,0,0,.05), transparent 70%),
    radial-gradient(ellipse 12px 18px at 86% 0%, rgba(0,0,0,.04), transparent 70%);
}
.page-title-inner { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 60px; }
.page-title h1 {
  font-family: 'Inria Serif', serif; font-weight: 700; font-size: 64px; line-height: 1.05;
  color: var(--ink); margin: 16px 0 22px; letter-spacing: -0.015em; max-width: 880px; text-wrap: balance;
}
.page-title h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.page-title .subtitle {
  font-family: 'Montserrat', sans-serif; font-size: 12.5px; color: var(--muted);
  letter-spacing: 0.22em; text-transform: uppercase; line-height: 1.7; max-width: 720px;
}
.page-title-rule { width: 60px; height: 3px; background: var(--accent); margin-top: 28px; }
.page-title-meta { font-family: 'Inria Serif', serif; font-style: italic; font-size: 14px; color: var(--muted); text-align: right; line-height: 1.6; }
.page-title-meta strong {
  font-style: normal; font-family: 'Inter', sans-serif; font-weight: 600; color: var(--ink);
  letter-spacing: 0.04em; font-size: 11.5px; text-transform: uppercase; display: block; margin-bottom: 4px;
}

/* Section générique (contenu page par défaut) */
.page-content { width: 100%; padding: 20px var(--gutter) 90px; }
.page-richtext { max-width: 820px; font-family: 'Montserrat', sans-serif; font-size: 16px; line-height: 1.8; color: var(--ink-2); }
.page-richtext h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 32px; color: var(--ink); margin: 40px 0 14px; letter-spacing: -0.01em; }
.page-richtext h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 22px; color: var(--ink); margin: 30px 0 10px; }
.page-richtext p { margin: 0 0 18px; }
.page-richtext a { color: var(--accent); border-bottom: 1px solid var(--accent); }
.page-richtext img { border-radius: 8px; margin: 24px 0; }
.page-richtext ul, .page-richtext ol { margin: 0 0 18px; padding-left: 22px; }
.page-richtext li { margin-bottom: 8px; }

/* ── Mise en page pages légales (Mentions légales, Confidentialité…) ── */
.page-legal .page-richtext { max-width: 860px; }
.page-legal .page-richtext > p:first-of-type { color: var(--muted); font-size: 14px; }
.page-legal .page-richtext h2 {
  position: relative;
  font-size: 26px;
  margin: 46px 0 16px;
  padding-top: 30px;
  border-top: 1px solid var(--cream-border);
}
.page-legal .page-richtext h2::before {
  content: "";
  position: absolute;
  top: -1px; left: 0;
  width: 48px; height: 3px;
  background: var(--accent);
}
.page-legal .page-richtext h2:first-of-type { margin-top: 24px; }
.page-legal .page-richtext ul { list-style: none; padding-left: 0; }
.page-legal .page-richtext ul li {
  position: relative;
  padding-left: 20px;
}
.page-legal .page-richtext ul li::before {
  content: "";
  position: absolute;
  left: 2px; top: 12px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
}

/* ── FONDATRICES ── */
.fondatrices { padding: 80px var(--gutter) 60px; width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: start; position: relative; }
.fondatrices .col-head { position: absolute; top: 80px; right: var(--gutter); text-align: right; }
.fondatrices-text { font-family: 'Montserrat', sans-serif; font-size: 14.5px; line-height: 1.75; color: var(--ink-2); max-width: 540px; padding-top: 64px; }
.fondatrices-text p { margin: 0 0 16px; }
.fondatrices-text .lede { font-family: 'Inria Serif', serif; font-style: italic; font-size: 17px; line-height: 1.55; color: var(--ink); margin-bottom: 22px; border-left: 3px solid var(--accent); padding-left: 20px; }
.fondatrices-illu { align-self: center; justify-self: end; transform: rotate(-2.4deg); width: 100%; max-width: 460px; position: relative; }
.fondatrices-illu::before { display: none; }
.fondatrices-illu img { width: 100%; height: auto; display: block; border: 0; border-radius: 10px;
  box-shadow: none; filter: var(--photo-filter); }

/* ── MISSIONS ── */
.missions { width: 100%; padding: 100px var(--gutter) 110px;
  background: linear-gradient(180deg, transparent 0%, var(--paper-warm) 8%, var(--paper-warm) 92%, transparent 100%); position: relative; }
/* En-tête : titre à gauche, accroche à droite — pleine largeur */
.missions .missions-head { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: end; padding-bottom: 48px; margin-bottom: 56px; border-bottom: 1px solid var(--cream-border); }
.missions .missions-head .head-title { border-left: 3px solid var(--accent); padding-left: 24px; }
.missions .missions-head .eyebrow { padding-left: 0; font-size: 11px; }
.missions .missions-head .eyebrow::before { display: none; }
.missions .missions-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 40px; line-height: 1.12; color: var(--ink); margin: 16px 0 0; }
.missions .missions-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.missions .missions-head .head-lead { font-family: 'Inria Serif', serif; font-style: italic; color: var(--ink-2); font-size: 17px; line-height: 1.6; margin: 0; }

/* Trois cartes numérotées — la pièce maîtresse */
.missions-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; counter-reset: mission; }
.mission-card { counter-increment: mission; position: relative; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 6px; padding: 38px 34px 36px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.mission-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.mission-card:hover { transform: translateY(-6px); border-color: rgba(209,36,36,.25); box-shadow: 0 24px 48px -28px rgba(31,26,22,.5); }
.mission-card:hover::before { transform: scaleX(1); }
.mission-card .num { font-family: 'Inria Serif', serif; font-style: italic; font-size: 56px; line-height: 1; color: var(--accent); opacity: .9; }
.mission-card .num::before { content: '0' counter(mission); }
.mission-card .card-rule { width: 36px; height: 2px; background: var(--cream-border); margin: 22px 0 20px; }
.mission-card h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--ink); margin: 0 0 12px; }
.mission-card p { font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 1.7; color: var(--ink-2); margin: 0; }

/* Bande de conclusion sombre — pleine largeur */
.missions-closing { margin-top: 56px; background: var(--ink); color: var(--paper); border-radius: 6px; padding: 64px 72px; display: grid; grid-template-columns: 1.05fr 1fr; gap: 64px; align-items: center; position: relative; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); overflow: hidden; }
.missions-closing::before { content: '"'; position: absolute; top: 4px; left: 40px; font-family: 'Inria Serif', serif; font-size: 150px; color: var(--accent); line-height: 1; font-style: italic; opacity: .9; }
.missions-closing .closing-lead { padding-top: 26px; }
.missions-closing .closing-lead, .missions-closing .closing-lead p { font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.8; color: rgba(250,246,238,.82); margin: 0; }
.missions-closing .closing-lead p + p { margin-top: 14px; }
.missions-closing .closing-quote { border-left: 2px solid var(--accent); padding-left: 30px; }
.missions-closing .closing-quote .label { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); display: block; margin-bottom: 14px; }
.missions-closing .closing-quote p { font-family: 'Inria Serif', serif; font-style: italic; font-size: 18px; line-height: 1.6; color: rgba(250,246,238,.9); margin: 0; }

/* ── PRÉSIDENTS (frise dynamique codée) ── */
.presidents { width: 100%; padding: 100px var(--gutter) 110px;
  background: linear-gradient(180deg, transparent 0%, var(--paper-warm) 10%, var(--paper-warm) 90%, transparent 100%); }
.presidents .row-head { margin-bottom: 64px; }
.presidents .row-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 38px; line-height: 1.1; color: var(--ink); margin: 12px 0 0; }
.presidents .row-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.presidents .row-head .sub-head { font-family: 'Montserrat', sans-serif; font-size: 11.5px; color: var(--muted); letter-spacing: 0.22em; text-transform: uppercase; margin-top: 8px; }
.presidents .timeline-img { width: 100%; height: auto; display: block; border-radius: 6px; box-shadow: 0 20px 50px -28px rgba(31,26,22,.3); }

/* Frise horizontale : axe central + repères alternés haut/bas */
.pres-timeline { position: relative; display: flex; min-height: 360px; }
.pres-timeline .pres-axis { position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: var(--cream-border); transform: translateY(-50%); }
.pres-timeline .pres-axis::before, .pres-timeline .pres-axis::after { content: ''; position: absolute; top: 50%; width: 9px; height: 9px; border-radius: 50%; background: var(--cream-border); transform: translateY(-50%); }
.pres-timeline .pres-axis::before { left: -3px; }
.pres-timeline .pres-axis::after { right: -3px; }
.pres-node { position: relative; flex: 1 1 0; min-width: 0; }
.pres-dot { position: absolute; top: 50%; left: 50%; width: 13px; height: 13px; border-radius: 50%; background: var(--accent); transform: translate(-50%, -50%); z-index: 3; box-shadow: 0 0 0 5px var(--paper-warm), 0 0 0 6px rgba(209,36,36,.28); transition: transform .2s ease, box-shadow .2s ease; }
.pres-conn { position: absolute; left: 50%; width: 2px; background: var(--cream-border); transform: translateX(-50%); z-index: 1; transition: background .2s ease; }
.pres-node.up .pres-conn { bottom: 50%; height: 56px; }
.pres-node.down .pres-conn { top: 50%; height: 56px; }
.pres-card { position: absolute; left: 50%; transform: translateX(-50%); width: 210px; max-width: 94%; text-align: center; }
.pres-node.up .pres-card { bottom: calc(50% + 68px); }
.pres-node.down .pres-card { top: calc(50% + 68px); }
.pres-card .pres-year { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); display: block; margin-bottom: 8px; }
.pres-card h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 17px; line-height: 1.25; color: var(--ink); margin: 0 0 6px; }
.pres-card p { font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.5; color: var(--ink-2); margin: 0; }
.pres-node:hover .pres-dot { transform: translate(-50%, -50%) scale(1.25); box-shadow: 0 0 0 5px var(--paper-warm), 0 0 0 7px rgba(209,36,36,.45); }
.pres-node:hover .pres-conn { background: var(--accent); }

/* Frise → version verticale sur petits écrans */
@media (max-width: 900px) {
  .pres-timeline { display: block; min-height: 0; padding-left: 6px; }
  .pres-timeline .pres-axis { left: 6px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; transform: none; }
  .pres-timeline .pres-axis::before { left: 50%; top: -3px; transform: translateX(-50%); }
  .pres-timeline .pres-axis::after { left: 50%; bottom: -3px; top: auto; transform: translateX(-50%); }
  .pres-node { display: block; padding: 0 0 36px 34px; }
  .pres-node:last-child { padding-bottom: 0; }
  .pres-dot { left: 6px; top: 6px; transform: translate(-50%, 0); }
  .pres-node:hover .pres-dot { transform: translate(-50%, 0) scale(1.25); }
  .pres-conn { display: none; }
  .pres-card { position: static; transform: none; width: auto; max-width: none; text-align: left; }
  .pres-node.up .pres-card, .pres-node.down .pres-card { top: auto; bottom: auto; }
}

/* ── CONSEIL D'ADMINISTRATION ── */
.members { width: 100%; padding: 110px var(--gutter) 120px;
  background: linear-gradient(180deg, transparent 0%, #f0e6cf 10%, #f0e6cf 92%, transparent 100%); }
.members .row-head { margin-bottom: 50px; }
.members .row-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 38px; line-height: 1.1; color: var(--ink); margin: 12px 0 0; }
.members .row-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.members .row-head .sub-head { font-family: 'Montserrat', sans-serif; font-size: 11.5px; color: var(--muted); letter-spacing: 0.22em; text-transform: uppercase; margin-top: 8px; }
.members .rule { width: 48px; height: 3px; background: var(--accent); margin-top: 14px; }
.members-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px 24px; }
.member { display: flex; flex-direction: column; text-align: center; align-items: center; min-width: 0; }
.member .photo {
  width: 100%; aspect-ratio: 1 / 1; background: linear-gradient(135deg, #6b5a47 0%, #4a3d30 100%);
  background-size: cover; background-position: center;
  box-shadow: none;
  filter: var(--photo-filter); margin-bottom: 14px; border-radius: 12px; position: relative; overflow: hidden;
}
.member .photo .ph-mark { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: 'Inria Serif', serif; font-size: 40px; color: rgba(250,246,238,.5); }
.member .name { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 15px; color: var(--ink); line-height: 1.2; margin-bottom: 5px; }
.members-grid.featured .member .name { font-size: 18px; }
.member .role { font-family: 'Montserrat', sans-serif; font-size: 9.5px; letter-spacing: 0.16em; color: var(--accent); text-transform: uppercase; font-weight: 700; margin-bottom: 7px; }
.member .lineage { font-family: 'Inria Serif', serif; font-style: italic; font-size: 12px; color: var(--muted); line-height: 1.45; max-width: 200px; }
.member .contact { margin-top: 10px; display: flex; gap: 8px; justify-content: center; }
.member .contact a { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: var(--paper-warm); border: 1px solid var(--cream-border); display: inline-flex; align-items: center; justify-content: center; transition: background .15s, color .15s, border-color .15s; color: var(--ink); }
.member .contact a:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.member .contact svg { width: 15px; height: 15px; display: block; }

/* ── BULLETIN D'ADHÉSION (bandeau, réutilisable) ── */
.bulletin { width: 100%; padding: 0 var(--gutter) 100px; }
.bulletin-band { background: linear-gradient(135deg, rgba(74,64,57,.97) 0%, rgba(31,26,22,.97) 100%); color: var(--paper);
  padding: 80px 88px; border-radius: 8px; text-align: center; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.bulletin-band::before { content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 90% 10%, rgba(209,36,36,.18) 0%, transparent 50%), radial-gradient(circle at 10% 90%, rgba(209,36,36,.12) 0%, transparent 50%), var(--grain);
  background-size: auto, auto, 240px 240px; opacity: .8; pointer-events: none; }
.bulletin-band > * { position: relative; z-index: 1; }
.bulletin-band .eyebrow { color: #fff; }
.bulletin-band .eyebrow::before { background: #fff; }
.bulletin-band h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 36px; line-height: 1.2; color: #fff; margin: 18px 0 14px; letter-spacing: -0.01em; }
.bulletin-band p { font-family: 'Inria Serif', serif; font-style: italic; font-size: 16px; line-height: 1.55; color: rgba(250,246,238,.78); max-width: 540px; margin: 0 auto 32px; }
.bulletin-band .btn { background: #fff; color: var(--ink); padding: 16px 32px; letter-spacing: 0.18em; text-transform: uppercase; font-size: 12px; box-shadow: 0 12px 28px -10px rgba(0,0,0,.35); }
.bulletin-band .btn:hover { background: var(--accent); color: #fff; }
.bulletin-band .btn svg { width: 14px; height: 14px; }

/* ── KOMMANDOS : carte + répertoire ── */
.map-band { width: 100%; padding: 20px var(--gutter) 20px; display: grid; grid-template-columns: 1fr 360px; gap: 64px; align-items: center; }
.map-frame { position: relative; border-radius: 4px; overflow: hidden; box-shadow: 0 26px 54px -28px rgba(31,26,22,.5), 0 4px 12px -6px rgba(31,26,22,.2); border: 6px solid #fff; outline: 1px solid var(--cream-border); }
.map-frame img { width: 100%; height: 360px; object-fit: cover; filter: sepia(.22) saturate(.82) contrast(1.04); display: block; }
.map-frame .map-grade { position: absolute; inset: 0; background: radial-gradient(120% 90% at 50% 30%, transparent 55%, rgba(31,26,22,.22) 100%); pointer-events: none; }
.map-band .map-dot { position: absolute; transform: translate(-50%, -50%); }
.map-band .map-dot .pin { width: 13px; height: 13px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(250,246,238,.85), 0 2px 6px rgba(31,26,22,.4); }
.map-band .map-dot.principal .pin { width: 17px; height: 17px; box-shadow: 0 0 0 5px rgba(250,246,238,.9), 0 0 0 11px rgba(209,36,36,.18); }
.map-band .map-dot .tag { position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%); font-family: 'Inter', sans-serif; font-weight: 600; font-size: 10.5px; color: var(--ink); background: rgba(255,255,255,.92); padding: 3px 7px; border-radius: 3px; white-space: nowrap; box-shadow: 0 4px 10px -4px rgba(31,26,22,.35); }
.map-aside .eyebrow { margin-bottom: 16px; }
.map-aside p { font-family: 'Montserrat', sans-serif; font-size: 14.5px; line-height: 1.75; color: var(--ink-2); margin: 0 0 16px; }
.map-aside p em { font-style: italic; color: var(--accent); }
.map-aside .legend { display: inline-flex; align-items: center; gap: 9px; margin-top: 6px; font-family: 'Montserrat', sans-serif; font-size: 12.5px; color: var(--muted); }
.map-aside .legend b { font-family: 'Inria Serif', serif; font-style: italic; font-weight: 700; color: var(--accent); font-size: 15px; }

.komm { width: 100%; padding: 56px var(--gutter) 96px; }
.komm-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 34px; }
.komm-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 30px; color: var(--ink); margin: 10px 0 0; }
.komm-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.komm-search { position: relative; width: 320px; max-width: 100%; }
.komm-search input { width: 100%; height: 48px; border: 1px solid var(--cream-border); background: var(--paper-card); border-radius: 999px; padding: 0 20px 0 46px; font-family: 'Montserrat', sans-serif; font-size: 14px; color: var(--ink); outline: none; transition: border-color .2s, box-shadow .2s; }
.komm-search input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-tint); }
.komm-search::before { content: ''; position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237a6f65' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") center/contain no-repeat; }
.komm-count { font-family: 'Montserrat', sans-serif; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 18px; }
.komm-count b { color: var(--accent); font-family: 'Inria Serif', serif; font-style: italic; font-size: 15px; letter-spacing: 0; }
.komm-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.kcard { position: relative; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 6px; padding: 24px 26px; min-height: 104px; display: flex; flex-direction: column; justify-content: center; transition: transform .18s ease, box-shadow .2s ease, border-color .2s; overflow: hidden; }
.kcard::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent); transform: scaleY(0); transform-origin: top; transition: transform .22s ease; }
.kcard:hover { transform: translateY(-3px); box-shadow: 0 18px 34px -20px rgba(31,26,22,.4); border-color: #ddd0b6; }
.kcard:hover::before { transform: scaleY(1); }
.kcard .kname { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 17px; line-height: 1.3; color: var(--ink); letter-spacing: -0.005em; }
.kcard .kmeta { display: flex; align-items: center; gap: 9px; margin-top: 10px; flex-wrap: nowrap; }
.kcard .knum { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: 0.14em; color: var(--accent); white-space: nowrap; }
.kcard .kfemme { font-family: 'Montserrat', sans-serif; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--cream-border); border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.komm-empty { grid-column: 1 / -1; text-align: center; padding: 60px 0; font-family: 'Inria Serif', serif; font-style: italic; font-size: 18px; color: var(--muted); }

/* ── CROSS-LINK CTA (réutilisable) ── */
.crosslink { width: 100%; padding: 0 var(--gutter) 100px; }
.crosslink-band { background: linear-gradient(135deg, rgba(74,64,57,.97) 0%, rgba(31,26,22,.97) 100%); border-radius: 8px; padding: 56px 64px; display: flex; align-items: center; justify-content: space-between; gap: 50px; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.crosslink-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 92% 12%, rgba(209,36,36,.2) 0%, transparent 52%), var(--grain); background-size: auto, 240px 240px; opacity: .85; pointer-events: none; }
.crosslink-band > * { position: relative; z-index: 1; }
.crosslink-band .eyebrow { color: #fff; } .crosslink-band .eyebrow::before { background: #fff; }
.crosslink-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 28px; line-height: 1.25; color: #fff; margin: 14px 0 0; max-width: 560px; }
.crosslink-band h3 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.crosslink-band .btn { background: #fff; color: var(--ink); flex-shrink: 0; }
.crosslink-band .btn:hover { background: var(--accent); color: #fff; }

/* ── SINGLE (kommando, lecture, message, deporte) ── */
.single-wrap { width: 100%; padding: 20px var(--gutter) 60px; display: grid; grid-template-columns: 1fr 340px; gap: 60px; align-items: start; }
.single-main { min-width: 0; }
.single-main .single-richtext { font-family: 'Montserrat', sans-serif; font-size: 16px; line-height: 1.8; color: var(--ink-2); }
.single-main .single-richtext h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 28px; color: var(--ink); margin: 36px 0 12px; }
.single-main .single-richtext h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 20px; color: var(--ink); margin: 26px 0 10px; }
.single-main .single-richtext p { margin: 0 0 18px; }
.single-main .single-richtext a { color: var(--accent); border-bottom: 1px solid var(--accent); }
.single-main .single-richtext img { border-radius: 8px; margin: 22px 0; max-width: 100%; height: auto; }
.single-main .single-richtext ul, .single-main .single-richtext ol { margin: 0 0 18px; padding-left: 22px; }
.single-aside { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 20px; }
.aside-box { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 8px; padding: 24px 22px; box-shadow: 0 14px 30px -22px rgba(31,26,22,.3); }
.aside-box h4 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 16px; color: var(--ink); margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--cream-border); }
.aside-box dl { margin: 0; font-family: 'Montserrat', sans-serif; font-size: 13.5px; }
.aside-box dt { color: var(--muted); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; margin-top: 12px; }
.aside-box dt:first-child { margin-top: 0; }
.aside-box dd { margin: 2px 0 0; color: var(--ink); font-weight: 600; }
.aside-box .aside-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; color: var(--accent); }
.agenda-date-card .event-date-box { border-radius: 10px; margin-bottom: 16px; padding: 24px 12px; }
.agenda-date-card .event-date-box .day { font-size: 52px; }
.single-main .single-richtext .lead-intro { font-family: 'Inria Serif', serif; font-style: italic; font-size: 19px; line-height: 1.55; color: var(--ink); margin: 0 0 24px; }
.back-link { display: inline-flex; align-items: center; gap: 8px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.back-link:hover { color: var(--accent); }

/* ── MÉMORIAL : intro + recherche + résultats ── */
.mem-intro { width: 100%; padding: 10px var(--gutter) 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.mem-intro p { font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.8; color: var(--ink-2); margin: 0; }
.mem-intro p strong { color: var(--ink); font-weight: 600; }
.mem-intro p.first { font-family: 'Inria Serif', serif; font-style: italic; font-size: 18px; line-height: 1.6; color: var(--ink); }
.searchband { width: 100%; background: var(--accent); position: relative; padding: 64px var(--gutter); }
.searchband .sb-input .search-results { top: 66px; text-align: left; }
.searchband::before { content: ''; position: absolute; inset: 0; background: radial-gradient(700px 300px at 80% -10%, rgba(255,255,255,.12), transparent 60%), var(--grain); background-size: auto, 240px 240px; opacity: .5; mix-blend-mode: overlay; pointer-events: none; }
.searchband .sb-inner { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; text-align: center; }
.searchband .sb-eye { font-family: 'Inria Serif', serif; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(255,255,255,.85); }
.searchband h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 30px; color: #fff; margin: 14px 0 8px; }
.searchband p { font-family: 'Montserrat', sans-serif; font-size: 14px; color: rgba(255,255,255,.9); margin: 0 0 28px; }
.searchband p b { font-weight: 700; }
.sb-form { display: flex; gap: 12px; max-width: 620px; margin: 0 auto; }
.sb-input { flex: 1; position: relative; }
.sb-input input { width: 100%; height: 58px; border: 0; border-radius: 999px; padding: 0 24px 0 54px; font-family: 'Montserrat', sans-serif; font-size: 15px; color: var(--ink); background: #fff; outline: none; box-shadow: 0 16px 30px -16px rgba(0,0,0,.4); }
.sb-input > svg { position: absolute; left: 22px; top: 50%; transform: translateY(-50%); width: 19px; height: 19px; color: var(--muted); }
.sb-form .btn { background: var(--ink); color: #fff; height: 58px; padding: 0 30px; box-shadow: 0 16px 30px -16px rgba(0,0,0,.45); }
.sb-form .btn:hover { background: #000; }

.results { width: 100%; padding: 56px var(--gutter) 40px; }
.results-head { text-align: center; margin-bottom: 36px; }
.results-head .count { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 26px; color: var(--ink); }
.results-head .count b { color: var(--accent); font-style: italic; }
.results-head .hint { font-family: 'Montserrat', sans-serif; font-size: 13px; color: var(--muted); margin-top: 8px; }
.res-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; max-width: 1060px; margin: 0 auto; }
.fiche-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 24px; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 8px; padding: 22px 26px; transition: transform .16s ease, box-shadow .2s ease, border-color .2s; }
.fiche-row:hover { transform: translateY(-2px); box-shadow: 0 18px 34px -22px rgba(31,26,22,.4); border-color: #ddd0b6; }
.fiche-row .nm { font-family: 'Inria Serif', serif; line-height: 1.25; }
.fiche-row .nm .pre { font-weight: 400; font-size: 15px; color: var(--ink-2); display: block; }
.fiche-row .nm .last { font-weight: 700; font-size: 19px; color: var(--ink); letter-spacing: -0.005em; }
.fiche-row .tem-badge { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; padding: 3px 10px 3px 8px; border-radius: 999px; background: rgba(168,28,28,.08); border: 1px solid rgba(168,28,28,.2); color: var(--accent); font-family: 'Montserrat', sans-serif; font-size: 11.5px; font-weight: 600; letter-spacing: 0.01em; line-height: 1; }
.fiche-row .tem-badge svg { width: 12px; height: 12px; }
.fiche-row:hover .tem-badge { background: rgba(168,28,28,.14); border-color: rgba(168,28,28,.32); }
.fiche-row .born { font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.5; color: var(--muted); text-align: right; }
.fiche-row .born b { color: var(--ink-2); font-weight: 600; }
.fiche-row .view { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--cream-border); display: flex; align-items: center; justify-content: center; color: var(--ink); transition: all .2s ease; flex-shrink: 0; }
.fiche-row:hover .view { background: var(--accent); border-color: var(--accent); color: #fff; }
.fiche-row .view svg { width: 19px; height: 19px; }
.res-empty { grid-column: 1 / -1; text-align: center; padding: 50px 0; font-family: 'Inria Serif', serif; font-style: italic; font-size: 18px; color: var(--muted); }
.res-note { text-align: center; font-family: 'Montserrat', sans-serif; font-size: 12px; color: var(--muted); margin-top: 18px; font-style: italic; }
.pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: 44px; }
.pager .pg { min-width: 40px; height: 40px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--cream-border); background: var(--paper-card); border-radius: 999px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 14px; color: var(--ink-2); text-decoration: none; transition: background .15s, color .15s, border-color .15s, transform .15s; }
.pager a.pg:hover { border-color: var(--ink); color: var(--ink); transform: translateY(-1px); }
.pager .pg.is-current { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 6px 14px -6px rgba(209,36,36,.5); }
.pager .pg.is-disabled { opacity: .35; pointer-events: none; }
.pager .pg-gap { border: 0; background: transparent; color: var(--muted); min-width: 22px; padding: 0; }
.res-more { text-align:center; margin-top: 30px; }

/* Bandeau bulletin (variante) */
.bul { width: 100%; padding: 70px var(--gutter) 100px; }
.bul-band { background: linear-gradient(135deg, rgba(74,64,57,.97), rgba(31,26,22,.97)); border-radius: 8px; padding: 64px; text-align: center; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.bul-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 88% 10%, rgba(209,36,36,.2), transparent 52%), var(--grain); background-size: auto, 240px 240px; opacity: .85; pointer-events: none; }
.bul-band > * { position: relative; z-index: 1; }
.bul-band .eyebrow { color: #fff; } .bul-band .eyebrow::before { background: #fff; }
.bul-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 32px; color: #fff; margin: 16px 0 14px; } .bul-band h3 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.bul-band p { font-family: 'Inria Serif', serif; font-style: italic; font-size: 16px; color: rgba(250,246,238,.78); max-width: 560px; margin: 0 auto 30px; line-height: 1.55; }
.bul-band .btn { background: #fff; color: var(--ink); } .bul-band .btn:hover { background: var(--accent); color: #fff; }

/* ── TÉMOIGNAGES : filtres + liste ── */
.filters { width: 100%; padding: 26px var(--gutter) 8px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.filter-label { font-family: 'Inria Serif', serif; font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; display: block; }
.seg { display: inline-flex; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 999px; padding: 5px; gap: 4px; box-shadow: 0 6px 18px -12px rgba(31,26,22,.3); }
.seg button { border: 0; background: transparent; border-radius: 999px; padding: 12px 26px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 14px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; transition: background .2s, color .2s; }
.seg button svg { width: 17px; height: 17px; }
.seg button:hover { color: var(--accent); }
.seg button.on { background: var(--accent); color: #fff; box-shadow: 0 8px 18px -8px rgba(209,36,36,.55); }
.seg button.on:hover { color: #fff; }
.filters-count { font-family: 'Montserrat', sans-serif; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); padding-bottom: 18px; }
.filters-count b { color: var(--accent); font-family: 'Inria Serif', serif; font-style: italic; font-size: 16px; letter-spacing: 0; }
.tlist { width: 100%; padding: 30px var(--gutter) 90px; }
.tgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.tcard { position: relative; display: flex; align-items: center; gap: 22px; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 8px; padding: 24px 28px; overflow: hidden; transition: transform .18s ease, box-shadow .2s ease, border-color .2s; }
.tcard::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent); transform: scaleY(0); transform-origin: top; transition: transform .22s ease; }
.tcard:hover { transform: translateY(-3px); box-shadow: 0 20px 38px -22px rgba(31,26,22,.42); border-color: #ddd0b6; }
.tcard:hover::before { transform: scaleY(1); }
.tcard .tico { flex-shrink: 0; width: 52px; height: 52px; border-radius: 10px; background: var(--paper-warm); border: 1px solid var(--cream-border); display: flex; align-items: center; justify-content: center; color: var(--ink-2); transition: background .2s, color .2s, border-color .2s; }
.tcard .tico svg { width: 23px; height: 23px; }
.tcard[data-type="regarder"] .tico { background: var(--accent-tint); border-color: #f3cdc6; color: var(--accent); }
.tcard:hover .tico { background: var(--accent); border-color: var(--accent); color: #fff; }
.tcard .tbody { min-width: 0; }
.tcard h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 17px; line-height: 1.32; color: var(--ink); margin: 0; letter-spacing: -0.005em; text-wrap: pretty; }
.tcard .tmore { display: flex; align-items: center; gap: 6px; margin-top: 10px; font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); }
.tcard .tmore .arr { transition: transform .2s; } .tcard:hover .tmore .arr { transform: translateX(3px); }
.tcard .tkind { display: inline-block; margin-top: 4px; font-family: 'Montserrat', sans-serif; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.tlist-empty { grid-column:1/-1; text-align:center; padding:50px 0; font-family:'Inria Serif',serif; font-style:italic; font-size:18px; color:var(--muted); }

/* CTA partager (réutilise crosslink) */
.share { width: 100%; padding: 0 var(--gutter) 100px; }
.share-band { background: linear-gradient(135deg, rgba(74,64,57,.97) 0%, rgba(31,26,22,.97) 100%); border-radius: 8px; padding: 56px 64px; display: flex; align-items: center; justify-content: space-between; gap: 50px; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.share-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 92% 12%, rgba(209,36,36,.2) 0%, transparent 52%), var(--grain); background-size: auto, 240px 240px; opacity: .85; pointer-events: none; }
.share-band > * { position: relative; z-index: 1; }
.share-band .eyebrow { color: #fff; } .share-band .eyebrow::before { background: #fff; }
.share-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 28px; line-height: 1.25; color: #fff; margin: 14px 0 0; max-width: 600px; } .share-band h3 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.share-band .btn { background: #fff; color: var(--ink); flex-shrink: 0; } .share-band .btn:hover { background: var(--accent); color: #fff; }

/* ── ACTUALITÉS : à la une + feed ── */
.featured { width: 100%; padding: 24px var(--gutter) 20px; }
.featured a { display: grid; grid-template-columns: 1.25fr 1fr; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 10px; overflow: hidden; box-shadow: 0 30px 60px -34px rgba(31,26,22,.45); transition: transform .2s ease, box-shadow .2s ease; }
.featured a:hover { transform: translateY(-3px); box-shadow: 0 38px 70px -34px rgba(31,26,22,.5); }
.featured .ph { position: relative; min-height: 420px; overflow: hidden; }
.featured .ph .img { position: absolute; inset: 0; background-size: cover; background-position: center; filter: var(--photo-filter); transition: transform .5s ease; }
.featured a:hover .ph .img { transform: scale(1.04); }
.featured .ph .tag { position: absolute; top: 20px; left: 20px; background: var(--accent); color: #fff; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; padding: 8px 14px; border-radius: 999px; }
.featured .ph .pill-une { position: absolute; top: 20px; right: 20px; background: rgba(31,26,22,.78); color: #fff; font-family: 'Inria Serif', serif; font-style: italic; font-size: 13px; padding: 6px 14px; border-radius: 999px; }
.featured .body { padding: 52px 56px; display: flex; flex-direction: column; justify-content: center; }
.featured .meta { font-family: 'Montserrat', sans-serif; font-size: 12.5px; color: var(--muted); display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.featured .meta .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); }
.featured .body h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 38px; line-height: 1.14; color: var(--ink); margin: 0 0 18px; letter-spacing: -0.01em; text-wrap: balance; }
.featured .body p { font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.7; color: var(--ink-2); margin: 0 0 26px; max-width: 460px; }
.featured .read { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 0.04em; color: var(--accent); display: inline-flex; align-items: center; gap: 8px; }
.featured a:hover .read .arr { transform: translateX(4px); } .featured .read .arr { transition: transform .2s; }

.feed { width: 100%; padding: 40px var(--gutter) 96px; }
.feed-head { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid var(--cream-border); flex-wrap: wrap; }
.feed-head h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 26px; color: var(--ink); margin: 0; } .feed-head h3 em { font-style: italic; color: var(--accent); font-weight: 400; }
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chips button { border: 1px solid var(--cream-border); background: var(--paper-card); color: var(--ink-2); border-radius: 999px; padding: 9px 18px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12.5px; transition: all .18s ease; }
.chips button:hover { border-color: var(--accent); color: var(--accent); }
.chips button.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.rows { display: flex; flex-direction: column; }
.row { display: grid; grid-template-columns: 300px 1fr auto; gap: 36px; align-items: center; padding: 30px 0; border-bottom: 1px solid var(--cream-border); transition: background .2s; }
.row:hover { background: linear-gradient(90deg, rgba(241,233,216,.5), transparent 80%); }
.row .thumb { width: 300px; aspect-ratio: 16/10; border-radius: 8px; overflow: hidden; position: relative; box-shadow: 0 16px 30px -20px rgba(31,26,22,.4); }
.row .thumb .img { position: absolute; inset: 0; background-size: cover; background-position: center; filter: var(--photo-filter); transition: transform .5s ease; }
.row:hover .thumb .img { transform: scale(1.05); }
.row .rbody { min-width: 0; }
.row .rmeta { font-family: 'Montserrat', sans-serif; font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.row .rcat { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); }
.row .rmeta .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--cream-border); }
.row h4 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 24px; line-height: 1.2; color: var(--ink); margin: 0 0 10px; transition: color .2s; letter-spacing: -0.01em; }
.row:hover h4 { color: var(--accent); }
.row p { font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 1.65; color: var(--ink-2); margin: 0; max-width: 620px; }
.row .go { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--cream-border); display: flex; align-items: center; justify-content: center; color: var(--ink); flex-shrink: 0; transition: all .2s ease; }
.row:hover .go { background: var(--accent); border-color: var(--accent); color: #fff; transform: translateX(4px); }
.row .go svg { width: 18px; height: 18px; }
.feed-empty { padding: 60px 0; text-align: center; font-family: 'Inria Serif', serif; font-style: italic; font-size: 18px; color: var(--muted); }
.nl { width: 100%; padding: 0 var(--gutter) 100px; }
.nl-band { background: linear-gradient(135deg, rgba(74,64,57,.97) 0%, rgba(31,26,22,.97) 100%); border-radius: 8px; padding: 56px 64px; display: flex; align-items: center; justify-content: space-between; gap: 50px; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.nl-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 92% 12%, rgba(209,36,36,.2) 0%, transparent 52%), var(--grain); background-size: auto, 240px 240px; opacity: .85; pointer-events: none; }
.nl-band > * { position: relative; z-index: 1; }
.nl-band .eyebrow { color: #fff; } .nl-band .eyebrow::before { background: #fff; }
.nl-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 28px; line-height: 1.25; color: #fff; margin: 14px 0 0; max-width: 540px; } .nl-band h3 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.nl-form { display: flex; gap: 10px; }
.nl-form input { width: 280px; max-width: 100%; height: 52px; border: 0; border-radius: 999px; padding: 0 22px; font-family: 'Montserrat', sans-serif; font-size: 14px; color: var(--ink); background: #fff; outline: none; }
.nl-form .btn { background: var(--accent); color: #fff; } .nl-form .btn:hover { background: var(--accent-soft); }

/* ── ARTICLE (single post) ── */
.breadcrumb { width: 100%; padding: 70px var(--gutter) 0; }
.breadcrumb a { font-family: 'Inter', sans-serif; font-size: 13px; color: var(--muted); display: inline-flex; align-items: center; gap: 8px; transition: color .2s; }
.breadcrumb a:hover { color: var(--accent); }
.breadcrumb a svg { width: 15px; height: 15px; transition: transform .2s; }
.breadcrumb a:hover svg { transform: translateX(-3px); }
.art-head { width: 100%; padding: 30px var(--gutter) 36px; max-width: 1000px; margin: 0 auto; text-align: center; }
.art-cat { display: inline-block; background: var(--accent); color: #fff; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; padding: 8px 16px; border-radius: 999px; margin-bottom: 26px; }
.art-head h1 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 52px; line-height: 1.1; color: var(--ink); margin: 0 0 26px; letter-spacing: -0.015em; text-wrap: balance; }
.art-meta { display: inline-flex; align-items: center; gap: 14px; font-family: 'Montserrat', sans-serif; font-size: 13px; color: var(--muted); flex-wrap: wrap; justify-content: center; }
.art-meta .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); }
.art-meta .author { color: var(--ink); font-weight: 600; }
.art-hero { width: 100%; padding: 12px var(--gutter) 0; }
.art-hero figure { margin: 0; }
.art-hero .frame { border: 8px solid #fff; outline: 1px solid var(--cream-border); border-radius: 4px; overflow: hidden; box-shadow: 0 40px 80px -40px rgba(31,26,22,.5); }
.art-hero img { width: 100%; height: 540px; object-fit: cover; display: block; filter: var(--photo-filter); }
.art-hero figcaption { font-family: 'Inria Serif', serif; font-style: italic; font-size: 13.5px; color: var(--muted); margin-top: 14px; text-align: center; }
.art-wrap { width: 100%; padding: 60px var(--gutter) 90px; display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 72px; align-items: start; }
.prose { max-width: 720px; justify-self: center; width: 100%; }
.prose > p:first-of-type { font-family: 'Inria Serif', serif; font-size: 22px; line-height: 1.55; color: var(--ink); margin: 0 0 30px; }
.prose p { font-family: 'Montserrat', sans-serif; font-size: 16px; line-height: 1.85; color: var(--ink-2); margin: 0 0 22px; text-wrap: pretty; }
.prose p strong { color: var(--ink); font-weight: 600; }
.prose h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 28px; line-height: 1.2; color: var(--ink); margin: 44px 0 18px; letter-spacing: -0.01em; }
.prose h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.prose h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 22px; color: var(--ink); margin: 32px 0 12px; }
.prose img { max-width: 100%; height: auto; border-radius: 8px; margin: 26px 0; }
.prose ul, .prose ol { margin: 0 0 22px; padding-left: 22px; }
.prose li { margin-bottom: 8px; font-family: 'Montserrat', sans-serif; font-size: 16px; line-height: 1.7; color: var(--ink-2); }
.prose a { color: var(--accent); border-bottom: 1px solid var(--accent); }
.prose blockquote { margin: 40px 0; padding: 8px 0 8px 32px; border-left: 3px solid var(--accent); }
.prose blockquote p { font-family: 'Inria Serif', serif; font-style: italic; font-size: 25px; line-height: 1.45; color: var(--ink); margin: 0; }
aside.art-side { position: sticky; top: 116px; display: flex; flex-direction: column; gap: 22px; }
.infobox { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 10px; padding: 26px 26px 28px; box-shadow: 0 18px 38px -26px rgba(31,26,22,.32); }
.infobox h4 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 17px; color: var(--ink); margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--cream-border); }
.infobox dl { margin: 0; display: flex; flex-direction: column; gap: 14px; }
.infobox dt { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); margin-bottom: 3px; }
.infobox dd { margin: 0; font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 1.5; color: var(--ink); }
.infobox .btn { width: 100%; justify-content: center; margin-top: 22px; }
.art-share { background: var(--paper-warm); border: 1px solid var(--cream-border); border-radius: 10px; padding: 22px 24px; }
.art-share .lbl { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.share-row { display: flex; gap: 10px; }
.share-row a { width: 42px; height: 42px; border-radius: 50%; background: #fff; border: 1px solid var(--cream-border); display: flex; align-items: center; justify-content: center; color: var(--ink); transition: all .2s ease; }
.share-row a:hover { background: var(--accent); border-color: var(--accent); color: #fff; transform: translateY(-2px); }
.share-row a svg { width: 17px; height: 17px; }
.related { width: 100%; padding: 70px var(--gutter) 96px; background: linear-gradient(180deg, transparent, #f0e6cf 12%, #f0e6cf 88%, transparent); }
.related-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 32px; gap: 20px; flex-wrap: wrap; }
.related-head h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 30px; color: var(--ink); margin: 10px 0 0; } .related-head h3 em { font-style: italic; color: var(--accent); font-weight: 400; }
.related-head a { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; color: var(--accent); display: inline-flex; gap: 8px; align-items: center; }
.rgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.rcard { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 10px; overflow: hidden; display: flex; transition: transform .2s ease, box-shadow .2s ease; }
.rcard:hover { transform: translateY(-4px); box-shadow: 0 26px 46px -26px rgba(31,26,22,.4); }
.rcard .rimg { width: 210px; flex-shrink: 0; position: relative; overflow: hidden; }
.rcard .rimg .img { position: absolute; inset: 0; background-size: cover; background-position: center; filter: var(--photo-filter); transition: transform .5s ease; }
.rcard:hover .rimg .img { transform: scale(1.05); }
.rcard .rc-body { padding: 26px 28px; display: flex; flex-direction: column; justify-content: center; }
.rcard .rc-cat { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.rcard h4 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--ink); margin: 0 0 10px; transition: color .2s; }
.rcard:hover h4 { color: var(--accent); }
.rcard .rc-date { font-family: 'Montserrat', sans-serif; font-size: 12px; color: var(--muted); }

/* ── LECTURES & FILMS : médiathèque ── */
.bar { width: 100%; padding: 24px var(--gutter) 6px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.bar-count { font-family: 'Montserrat', sans-serif; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); padding-bottom: 18px; }
.bar-count b { color: var(--accent); font-family: 'Inria Serif', serif; font-style: italic; font-size: 16px; letter-spacing: 0; }
.shelf { width: 100%; padding: 32px var(--gutter) 96px; }
.shelf .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 36px; align-items: stretch; grid-auto-rows: 1fr; }
.work { display: flex; flex-direction: column; }
.work .frame { flex: 1; display: flex; flex-direction: column; position: relative; border-radius: 8px; padding: 22px; background: var(--paper-card); border: 1px solid var(--cream-border); box-shadow: 0 18px 36px -24px rgba(31,26,22,.34); transition: transform .2s ease, box-shadow .2s ease; }
.work:hover .frame { transform: translateY(-5px); box-shadow: 0 30px 52px -26px rgba(31,26,22,.45); }
.cover { flex: 1; position: relative; min-height: 420px; border-radius: 3px; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 26px 24px; box-shadow: 0 14px 30px -14px rgba(31,26,22,.5); background-size: cover; background-position: center; }
.cover::after { content: ''; position: absolute; inset: 0; background: var(--grain); background-size: 160px 160px; opacity: .5; mix-blend-mode: overlay; pointer-events: none; }
.cover::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 7px; background: linear-gradient(90deg, rgba(0,0,0,.28), rgba(0,0,0,0)); pointer-events: none; }
.cover .ctop { display: flex; align-items: center; justify-content: space-between; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 9.5px; letter-spacing: 0.18em; text-transform: uppercase; opacity: .82; }
.cover .ctop .cdate { letter-spacing: 0.14em; opacity: .9; }
.cover .ctitle { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 21px; line-height: 1.18; letter-spacing: -0.01em; text-wrap: balance; }
.cover .crule { width: 34px; height: 2px; margin: 0 0 12px; opacity: .85; }
.cover .cexcerpt { font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.18; margin: 10px 0 0; opacity: .82;
  max-height: 132px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: currentColor transparent; }
.cover .cexcerpt::-webkit-scrollbar { width: 5px; }
.cover .cexcerpt::-webkit-scrollbar-thumb { background: currentColor; opacity: .4; border-radius: 3px; }
.cover .csee { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; opacity: .95; }
.cover .csee .arr { transition: transform .2s; }
.work:hover .cover .csee .arr { transform: translateX(3px); }
.cover.has-img { color: #fff; }
.cover.has-img::before { background: linear-gradient(0deg, rgba(20,15,10,.9) 0%, rgba(20,15,10,.55) 38%, transparent 74%); width: 100%; top: auto; }
.cover.has-img .crule { background: var(--accent); }
.p0 { background: linear-gradient(150deg,#2a231d,#1a1510); color: #f3e9d4; } .p0 .crule { background: var(--accent); }
.p1 { background: linear-gradient(150deg,#b62420,#8d1816); color: #fbeceb; } .p1 .crule { background: #fbeceb; }
.p2 { background: linear-gradient(150deg,#ece0c4,#dccba0); color: #3a2f22; } .p2 .crule { background: var(--accent); }
.p3 { background: linear-gradient(150deg,#6a4a2c,#4a3320); color: #f3e6d2; } .p3 .crule { background: #f3e6d2; }
.p4 { background: linear-gradient(150deg,#33453c,#21302a); color: #e6efe7; } .p4 .crule { background: var(--accent); }
.cover .badge { background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28); padding: 3px 9px; border-radius: 999px; }
.sug { width: 100%; padding: 0 var(--gutter) 100px; }
.sug-band { background: linear-gradient(135deg, rgba(74,64,57,.97) 0%, rgba(31,26,22,.97) 100%); border-radius: 8px; padding: 56px 64px; display: flex; align-items: center; justify-content: space-between; gap: 50px; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.sug-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 92% 12%, rgba(209,36,36,.2) 0%, transparent 52%), var(--grain); background-size: auto, 240px 240px; opacity: .85; pointer-events: none; }
.sug-band > * { position: relative; z-index: 1; }
.sug-band .eyebrow { color: #fff; } .sug-band .eyebrow::before { background: #fff; }
.sug-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 28px; line-height: 1.25; color: #fff; margin: 14px 0 0; max-width: 560px; } .sug-band h3 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.sug-band .btn { background: #fff; color: var(--ink); flex-shrink: 0; } .sug-band .btn:hover { background: var(--accent); color: #fff; }

/* Fiche déporté (PDF embed) */
.fiche-embed { width: 100%; height: 80vh; min-height: 520px; border: 6px solid #fff; border-radius: 4px; box-shadow: 0 26px 54px -28px rgba(31,26,22,.5); background: var(--paper-warm); }
.fiche-embed iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .mem-intro { grid-template-columns: 1fr; gap: 30px; }
  .res-grid { grid-template-columns: 1fr; }
  .map-band { grid-template-columns: 1fr; gap: 30px; }
  .komm-grid { grid-template-columns: repeat(2, 1fr); }
  .single-wrap { grid-template-columns: 1fr; gap: 36px; }
  .single-aside { position: static; }
  .crosslink-band { flex-direction: column; align-items: flex-start; gap: 24px; }
}
@media (max-width: 1024px) {
  .page-title-inner { grid-template-columns: 1fr; gap: 24px; }
  .page-title-meta { text-align: left; }
  .page-title h1 { font-size: 50px; }
  .fondatrices { grid-template-columns: 1fr; gap: 50px; }
  .fondatrices .col-head { position: static; text-align: left; margin-bottom: 10px; }
  .fondatrices-text { padding-top: 0; max-width: none; }
  .fondatrices-illu { justify-self: center; max-width: 420px; }
  .missions .missions-head { grid-template-columns: 1fr; gap: 24px; align-items: start; }
  .missions-closing { grid-template-columns: 1fr; gap: 36px; padding: 52px 40px; }
  .members-grid { grid-template-columns: repeat(3, 1fr); }
  .members-grid.featured { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 680px) {
  .page-title h1 { font-size: 38px; }
  .members-grid, .members-grid.featured { grid-template-columns: repeat(2, 1fr); }
  .bulletin-band { padding: 50px 24px; }
  .bulletin-band h2 { font-size: 28px; }
  .missions-cards { grid-template-columns: 1fr; gap: 18px; }
  .missions .missions-head h2 { font-size: 32px; }
  .missions-closing { padding: 44px 26px; }
  .missions-closing::before { left: 22px; font-size: 110px; }
}

/* ── RESPONSIVE (actualités + article) ── */
@media (max-width: 1024px) {
  .featured a { grid-template-columns: 1fr; }
  .featured .ph { min-height: 280px; }
  .featured .body { padding: 36px 32px; }
  .row { grid-template-columns: 200px 1fr; }
  .row .thumb { width: 200px; }
  .row .go { display: none; }
  .art-wrap { grid-template-columns: 1fr; gap: 40px; }
  aside.art-side { position: static; }
  .rgrid { grid-template-columns: 1fr; }
  .nl-band { flex-direction: column; align-items: flex-start; gap: 24px; }
}
@media (max-width: 680px) {
  .art-head h1 { font-size: 36px; }
  .art-hero img { height: 300px; }
  .row { grid-template-columns: 1fr; gap: 14px; }
  .row .thumb { width: 100%; }
  .rcard { flex-direction: column; }
  .rcard .rimg { width: 100%; height: 180px; }
  .tgrid { grid-template-columns: 1fr; }
}

@media (max-width: 1024px) {
  .shelf .grid { grid-template-columns: repeat(2, 1fr); }
  .sug-band { flex-direction: column; align-items: flex-start; gap: 24px; }
}
@media (max-width: 680px) {
  .shelf .grid { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  .bar { display: none; }
}

/* ============================================================
   PÈLERINAGE (CPT) — sections
   ============================================================ */
/* ── HERO ── */
.pel-hero { position: relative; width: 100%; min-height: 560px; display: flex; align-items: center; overflow: hidden; color: var(--paper); }
.pel-hero .hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; filter: grayscale(.25) contrast(1.05) brightness(.9); }
.pel-hero .hero-veil { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(20,15,10,.86) 0%, rgba(20,15,10,.6) 45%, rgba(20,15,10,.25) 100%); }
.pel-hero .hero-grain { position: absolute; inset: 0; background: var(--grain); background-size: 240px 240px; opacity: .5; mix-blend-mode: overlay; pointer-events: none; }
.pel-hero .hero-content { position: relative; z-index: 2; width: 100%; padding: 80px var(--gutter); }
.pel-hero .issue-badge { display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: #fff; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11.5px; letter-spacing: 0.16em; text-transform: uppercase; padding: 8px 16px; border-radius: 999px; }
.pel-hero h1 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 72px; line-height: 1.02; letter-spacing: -0.02em; color: #fff; margin: 22px 0 18px; max-width: 760px; text-wrap: balance; }
.pel-hero h1 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.pel-hero .hero-lead { font-family: 'Inria Serif', serif; font-style: italic; font-size: 20px; line-height: 1.5; color: rgba(250,246,238,.9); margin: 0 0 30px; max-width: 560px; border-left: 3px solid var(--accent); padding-left: 20px; }
.pel-hero .hero-facts { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 32px; }
.pel-hero .fact { background: rgba(250,246,238,.1); border: 1px solid rgba(250,246,238,.18); border-radius: 12px; padding: 14px 20px; backdrop-filter: blur(8px); min-width: 150px; }
.pel-hero .fact .fl { font-family: 'Inter', sans-serif; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(250,246,238,.6); }
.pel-hero .fact .fv { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 17px; color: #fff; margin-top: 4px; }
.pel-hero .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.pel-hero .hero-actions .btn.ghost { color: #fff; border-color: rgba(255,255,255,.6); }
.pel-hero .hero-actions .btn.ghost:hover { background: #fff; color: var(--ink); border-color: #fff; }
.pel-hero .hero-credit { margin-top: 36px; font-family: 'Montserrat', sans-serif; font-size: 12px; color: rgba(250,246,238,.55); letter-spacing: 0.04em; }
.pel-hero .hero-stamp { position: absolute; top: 34px; right: var(--gutter); z-index: 3; border: 1.5px solid rgba(240,184,176,.6); color: rgba(240,184,176,.85); border-radius: 50%; width: 92px; height: 92px; display: flex; align-items: center; justify-content: center; text-align: center; font-family: 'Inria Serif', serif; font-style: italic; font-weight: 700; font-size: 15px; transform: rotate(-10deg); }

/* ── INTRO + YEAR SELECTOR ── */
.intro { width: 100%; padding: 90px var(--gutter); background: var(--grain) 0 0 / 240px 240px repeat, var(--paper-warm); position: relative; }
.intro-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: center; }
.intro h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 48px; line-height: 1.05; color: var(--ink); margin: 18px 0 24px; letter-spacing: -0.015em; }
.intro h2 em { color: var(--accent); font-style: italic; font-weight: 400; }
.intro p { font-size: 15.5px; line-height: 1.7; color: var(--ink-2); margin: 0 0 18px; max-width: 56ch; font-family: 'Montserrat', sans-serif; }
.intro-photo { position: relative; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; box-shadow: 0 30px 60px -20px rgba(31,26,22,.25); }
.intro-photo .img { width: 100%; height: 100%; background-size: cover; background-position: center; filter: var(--photo-filter); }
.intro-photo .stamp { position: absolute; bottom: 16px; left: 16px; background: rgba(31,26,22,.85); color: var(--paper); padding: 7px 14px; border-radius: 999px; font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; backdrop-filter: blur(8px); }
.year-selector { margin-top: 60px; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 16px; padding: 22px 28px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; box-shadow: 0 10px 30px -16px rgba(31,26,22,.12); }
.year-selector .lbl { font-family: 'Inria Serif', serif; font-size: 12px; letter-spacing: 0.28em; color: var(--accent); text-transform: uppercase; }
.year-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.year-chip { background: transparent; border: 1px solid var(--cream-border); color: var(--ink-2); padding: 9px 18px; border-radius: 999px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; cursor: pointer; transition: all .15s; }
.year-chip:hover { border-color: var(--ink); color: var(--ink); }
.year-chip.active { background: var(--accent); color: #fff; border-color: var(--accent); box-shadow: 0 6px 14px -6px rgba(209,36,36,.5); }

/* ── PROGRAMME ── */
.programme { width: 100%; padding: 100px var(--gutter); position: relative; }
.programme .section-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 50px; gap: 40px; }
.programme .section-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 44px; line-height: 1.05; color: var(--ink); margin: 12px 0 0; letter-spacing: -0.015em; max-width: 640px; }
.programme .section-head h2 em { color: var(--accent); font-style: italic; font-weight: 400; }
.programme-grid { display: grid; grid-template-columns: 1fr 540px; gap: 60px; align-items: start; }
.timeline { position: relative; }
.day { display: grid; grid-template-columns: 130px 1fr; gap: 28px; align-items: flex-start; padding: 22px 28px 22px 32px; position: relative; border-radius: 12px; transition: background .2s; }
.day:hover, .day.active { background: rgba(255,255,255,.6); }
.day-date { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 17px; color: var(--ink); line-height: 1.2; }
.day-date .city { display: block; font-family: 'Inter', sans-serif; font-weight: 500; font-size: 12px; color: var(--accent); text-transform: uppercase; letter-spacing: 0.1em; margin-top: 6px; }
.day-desc { font-family: 'Montserrat', sans-serif; font-size: 14px; color: var(--ink-2); line-height: 1.55; }
.day-desc p { margin: 0 0 10px; }
.day-desc p:last-child { margin-bottom: 0; }
/* Photo de l'étape (style « polaroïd » comme le hero de la home) */
.pel-photo-panel { position: sticky; top: 110px; }
/* Simple boîte de positionnement : aucun fond, aucun cadre, aucun rognage —
   la photo est l'élément lui-même et glisse librement (comme .hero-photo sur la home).
   Le débordement est rattrapé par #page { overflow: clip }. */
.pel-photo-stage {
  position: relative; width: 100%; aspect-ratio: 4 / 3;
}
/* chaque photo porte sa propre patine + sa légende (même principe que .hero-photo).
   --rx/--tx/--ty = sa pose de repos dans la pile (posée par le JS selon l'étape). */
.pel-photo-slide {
  --rx: 2deg; --tx: 0px; --ty: 0px;
  position: absolute; inset: 0; background-size: cover; background-position: center;
  filter: sepia(.28) contrast(1) brightness(1.06) saturate(.82) hue-rotate(-4deg);
  border-radius: 1px; opacity: 0;
  box-shadow: 0 10px 22px -10px rgba(31,26,22,.42), 0 2px 6px -2px rgba(31,26,22,.22);
  will-change: transform, opacity; isolation: isolate;
}
.pel-photo-slide::before {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(ellipse at center, transparent 60%, rgba(28,14,4,.26) 100%),
    radial-gradient(circle at 6% 4%, rgba(120,72,28,.32) 0%, transparent 22%),
    radial-gradient(circle at 96% 8%, rgba(140,88,40,.26) 0%, transparent 20%),
    radial-gradient(circle at 4% 96%, rgba(110,64,22,.3) 0%, transparent 24%),
    radial-gradient(circle at 98% 94%, rgba(130,80,32,.3) 0%, transparent 22%);
  mix-blend-mode: multiply;
}
.pel-photo-slide::after {
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: var(--grain); background-size: 240px 240px; opacity: .38; mix-blend-mode: multiply;
}

/* légende encadrée posée sur la photo — reprise de .hero-photo .stamp */
.pel-photo-slide .stamp {
  position: absolute; top: 16px; left: 16px; z-index: 3; color: rgba(236,233,227,.92);
  border: 1.5px solid rgba(236,233,227,.65); padding: 5px 10px 4px;
  font-family: 'Inter', sans-serif; font-weight: 700; font-size: 10px; letter-spacing: 0.18em;
  text-transform: uppercase; background: transparent; pointer-events: none;
  transform: rotate(-4deg); opacity: .92;
  text-shadow: 0 1px 6px rgba(20,12,4,.45);
}

/* ── Pile de photos — même principe que les @keyframes slideIn du héros ──
   Dépose : la photo arrive du bas-droite, glisse, dépasse légèrement, puis se pose
            sur la pile à SA pose de repos (--rx/--tx/--ty) et y reste.
   Retrait : quand on revient en arrière, les photos posées par-dessus glissent
             vers le haut-gauche en s'effaçant.                                       */
@keyframes pelPhotoIn {
  0%   { opacity: 0; transform: rotate(12deg) translate(340px, 300px) scale(.93); }
  55%  { opacity: 1; }
  80%  { transform: rotate(calc(var(--rx) - 2deg)) translate(var(--tx), var(--ty)) scale(1.015); }
  100% { opacity: 1; transform: rotate(var(--rx)) translate(var(--tx), var(--ty)) scale(1); }
}
@keyframes pelPhotoOut {
  0%   { opacity: 1; transform: rotate(var(--rx)) translate(var(--tx), var(--ty)) scale(1); }
  100% { opacity: 0; transform: rotate(-10deg) translate(-320px, -280px) scale(.93); }
}
/* le z-index est posé en inline par le JS (= rang de l'étape dans la pile) */
.pel-photo-slide.is-active  { animation: pelPhotoIn .95s cubic-bezier(.18,.7,.25,1) both; }
.pel-photo-slide.is-leaving { animation: pelPhotoOut .62s cubic-bezier(.42,0,.72,.36) both; }

@media (prefers-reduced-motion: reduce) {
  /* pas de glissement : simple fondu */
  @keyframes pelPhotoIn  { 0% { opacity: 0; } 100% { opacity: 1; } }
  @keyframes pelPhotoOut { 0% { opacity: 1; } 100% { opacity: 0; } }
  .pel-photo-slide.is-active  { animation-duration: .25s; }
  .pel-photo-slide.is-leaving { animation-duration: .25s; }
}

/* ── HOMMAGES ── */
.hommages { width: 100%; padding: 100px var(--gutter); background: var(--grain) 0 0 / 240px 240px repeat, var(--paper-warm); }
.hommages-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 40px; }
.hommage-card { background: var(--paper-card); border-radius: 14px; padding: 26px 24px 24px; box-shadow: 0 14px 30px -18px rgba(31,26,22,.15); border: 1px solid var(--cream-border); display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s; min-height: 220px; }
.hommage-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -22px rgba(31,26,22,.2); }
.hommage-card .icon { width: 42px; height: 42px; background: var(--accent-tint); color: var(--accent); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.hommage-card .icon svg { width: 20px; height: 20px; }
.hommage-card h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 18px; line-height: 1.35; color: var(--ink); margin: 0 0 6px; }
.hommage-card .author { font-family: 'Montserrat', sans-serif; font-size: 12.5px; color: var(--muted); margin-bottom: 22px; }
.hommage-card .actions, .pt-card .actions { margin-top: auto; display: flex; gap: 8px; align-items: center; }
.hommage-card .ghost-btn, .pt-card .ghost-btn { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12px; color: var(--ink); background: transparent; border: 1px solid var(--cream-border); padding: 7px 12px; border-radius: 999px; cursor: pointer; transition: all .15s; display: inline-flex; align-items: center; gap: 6px; }
.hommage-card .ghost-btn:hover, .pt-card .ghost-btn:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.hommage-card .ghost-btn.primary, .pt-card .ghost-btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.hommage-card .ghost-btn.primary:hover, .pt-card .ghost-btn.primary:hover { background: var(--accent-soft); }

/* ── GALERIE ── */
.gallery { width: 100%; padding: 100px var(--gutter); background: var(--grain) 0 0 / 240px 240px repeat, var(--paper); }
.gallery-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 30px 0 40px; }
.gallery-filters .chip { border: 1px solid var(--cream-border); background: var(--paper-card); color: var(--ink-2); padding: 8px 16px; border-radius: 999px; font-family: 'Inter', sans-serif; font-weight: 500; font-size: 13px; cursor: pointer; transition: all .15s; }
.gallery-filters .chip:hover { border-color: var(--ink); color: var(--ink); }
.gallery-filters .chip.on { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 600; box-shadow: 0 6px 14px -6px rgba(209,36,36,.5); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.gallery-grid .photo { position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--paper-card); box-shadow: 0 14px 30px -22px rgba(31,26,22,.2); transition: transform .3s, box-shadow .3s; display: block; width: 100%; padding: 0; border: 0; font: inherit; color: inherit; text-align: left; cursor: zoom-in; -webkit-appearance: none; appearance: none; }
.gallery-grid .photo:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.gallery-grid .photo:hover { transform: translateY(-4px); box-shadow: 0 22px 40px -22px rgba(31,26,22,.28); }
.gallery-grid .photo .img { position: absolute; inset: 0; background-size: cover; background-position: center; filter: var(--photo-filter); transition: transform .6s ease; }
.gallery-grid .photo:hover .img { transform: scale(1.06); }
.gallery-grid .photo .cat { position: absolute; top: 12px; left: 12px; background: rgba(250,246,238,.95); color: var(--accent); padding: 4px 10px; border-radius: 999px; font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; backdrop-filter: blur(6px); }
.gallery-more { display: flex; justify-content: center; margin-top: 34px; }

/* ── Lightbox galerie ── */
.pel-lb { position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center; background: rgba(20,16,12,.92); backdrop-filter: blur(4px); opacity: 0; transition: opacity .25s ease; }
.pel-lb.open { display: flex; opacity: 1; }
.pel-lb-stage { position: relative; max-width: min(92vw, 1400px); max-height: 86vh; display: flex; align-items: center; justify-content: center; }
.pel-lb-img { max-width: min(92vw, 1400px); max-height: 86vh; width: auto; height: auto; object-fit: contain; border-radius: 6px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.6); transition: opacity .2s ease; }
.pel-lb-img.loading { opacity: 0; }
.pel-lb-cap { position: absolute; left: 0; right: 0; bottom: -34px; text-align: center; color: rgba(250,246,238,.85); font-family: 'Montserrat', sans-serif; font-size: 13px; letter-spacing: .04em; }
.pel-lb button { position: absolute; display: flex; align-items: center; justify-content: center; border: 0; cursor: pointer; color: #fff; background: rgba(255,255,255,.12); border-radius: 999px; transition: background .2s, transform .2s; -webkit-appearance: none; appearance: none; }
.pel-lb button:hover { background: rgba(255,255,255,.24); }
.pel-lb button svg { width: 26px; height: 26px; }
.pel-lb-close { top: 22px; right: 22px; width: 48px; height: 48px; }
.pel-lb-prev, .pel-lb-next { top: 50%; transform: translateY(-50%); width: 56px; height: 56px; }
.pel-lb-prev { left: 22px; }
.pel-lb-next { right: 22px; }
.pel-lb-prev:hover { transform: translateY(-50%) scale(1.08); }
.pel-lb-next:hover { transform: translateY(-50%) scale(1.08); }
.pel-lb-counter { position: absolute; top: 26px; left: 26px; color: rgba(250,246,238,.8); font-family: 'Montserrat', sans-serif; font-size: 13px; letter-spacing: .06em; }
@media (max-width: 640px) {
  .pel-lb-prev, .pel-lb-next { width: 46px; height: 46px; }
  .pel-lb-prev { left: 10px; } .pel-lb-next { right: 10px; }
  .pel-lb-close { top: 14px; right: 14px; }
}

/* ── TÉMOIGNAGES PÈLERINS ── */
.pilgrim-testimonies { width: 100%; padding: 100px var(--gutter); background: var(--grain) 0 0 / 240px 240px repeat, linear-gradient(180deg, var(--paper-warm), var(--paper)); }
.pilgrim-testimonies-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 40px; }
.pt-card { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 16px; padding: 30px; transition: transform .3s, box-shadow .3s; box-shadow: 0 14px 30px -18px rgba(31,26,22,.15); display: flex; flex-direction: column; }
.pt-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -22px rgba(31,26,22,.22); }
.pt-card .who { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.pt-card .name { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 16px; color: var(--ink); line-height: 1.2; }
.pt-card .role { font-family: 'Montserrat', sans-serif; font-size: 12px; color: var(--muted); margin-top: 2px; }
.pt-card .quote { font-family: 'Inria Serif', serif; font-style: italic; font-size: 16px; line-height: 1.55; color: var(--ink-2); margin: 0; flex: 1; padding-left: 18px; border-left: 3px solid var(--accent); }
.pt-card .actions { padding-top: 22px; }

/* ── FILM ── */
.film { width: 100%; padding: 100px var(--gutter); background: var(--ink); color: var(--paper); }
.film .section-head h2 { color: var(--paper); font-family: 'Inria Serif', serif; font-weight: 700; font-size: 44px; margin: 12px 0 0; }
.film .section-head h2 em { color: #f0b8b0; font-style: italic; font-weight: 400; }
.film .eyebrow { color: var(--accent); } .film .eyebrow::before { background: var(--accent); }
.film-sub { font-family: 'Montserrat', sans-serif; font-size: 15px; color: rgba(250,246,238,.7); margin: 20px 0 0; max-width: 720px; line-height: 1.6; }
.film-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 56px; margin-top: 50px; align-items: center; }
.video-frame { aspect-ratio: 16 / 9; background: linear-gradient(135deg, #2c2620, #1a1612); border-radius: 16px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.video-frame .vbg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .4; filter: grayscale(.4) contrast(.95); }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 4; }
.video-frame .play-btn { position: relative; width: 84px; height: 84px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 12px 36px -8px rgba(209,36,36,.6); z-index: 2; }
.video-frame .play-btn svg { width: 32px; height: 32px; margin-left: 4px; }
.video-frame .badge { position: absolute; bottom: 18px; left: 18px; z-index: 2; background: rgba(0,0,0,.7); color: #fff; padding: 7px 14px; border-radius: 999px; font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 8px; }
.film-info h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 18px; color: var(--accent); margin: 0 0 12px; letter-spacing: 0.04em; text-transform: uppercase; }
.film-info p { font-family: 'Montserrat', sans-serif; font-size: 13.5px; color: rgba(250,246,238,.75); line-height: 1.65; margin: 0 0 18px; }
.film-info .link { display: inline-flex; align-items: center; gap: 8px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; color: var(--paper); text-decoration: underline; text-underline-offset: 4px; margin: 12px 0 28px; word-break: break-all; }

/* ── RESPONSIVE PÈLERINAGE ── */
@media (max-width: 1024px) {
  .pel-hero h1 { font-size: 52px; }
  .intro-grid { grid-template-columns: 1fr; gap: 50px; }
  .programme-grid { grid-template-columns: 1fr; gap: 40px; }
  .pel-photo-panel { position: static; max-width: 520px; }
  .hommages-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
  .pilgrim-testimonies-grid { grid-template-columns: 1fr; }
  .film-grid { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 680px) {
  .pel-hero h1 { font-size: 38px; }
  .pel-hero .hero-stamp { display: none; }
  .hommages-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   LE CAMP (historique) — sections
   ============================================================ */
.lede-row { width: 100%; padding: 8px var(--gutter) 30px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 80px; align-items: center; }
.lede-row .lede { font-family: 'Inria Serif', serif; font-style: italic; font-size: 21px; line-height: 1.6; color: var(--ink); border-left: 3px solid var(--accent); padding-left: 26px; }
.stat-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 24px; }
.stat-strip .st .num { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 40px; line-height: 1; color: var(--accent); }
.stat-strip .st .num small { font-size: 22px; }
.stat-strip .st .lbl { font-family: 'Montserrat', sans-serif; font-size: 12px; color: var(--ink-2); margin-top: 8px; line-height: 1.4; }
.chapter { width: 100%; padding: 84px var(--gutter); position: relative; }
.chapter.cream { background: linear-gradient(180deg, transparent 0%, #f0e6cf 9%, #f0e6cf 91%, transparent 100%); }
.chapter-head { display: grid; grid-template-columns: 200px 1fr; gap: 48px; align-items: start; margin-bottom: 48px; }
.chapter-year { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 80px; line-height: .9; color: var(--ink); letter-spacing: -0.02em; position: relative; }
.chapter-year::after { content: ''; display: block; width: 48px; height: 3px; background: var(--accent); margin-top: 18px; }
.chapter-year span { display: block; font-size: 26px; color: var(--muted); font-style: italic; font-weight: 400; margin-top: 4px; }
.chapter-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 40px; line-height: 1.12; color: var(--ink); margin: 8px 0 0; letter-spacing: -0.01em; max-width: 760px; }
.chapter-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.chapter-head .eyebrow { margin-bottom: 4px; }
.chapter-body { display: grid; grid-template-columns: 200px 1fr; gap: 48px; }
.subs { max-width: 980px; }
.sub { margin-bottom: 38px; }
.sub:last-child { margin-bottom: 0; }
.sub h3 { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin: 0 0 16px; }
.sub p { font-family: 'Montserrat', sans-serif; font-size: 14.5px; line-height: 1.8; color: var(--ink-2); margin: 0 0 15px; max-width: 920px; text-wrap: pretty; }
.sub p:last-child { margin-bottom: 0; }
.sub p strong { color: var(--ink); font-weight: 600; }
.pullquote { width: 100%; background: var(--ink); color: var(--paper); padding: 96px var(--gutter); position: relative; }
.pullquote::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 88% 12%, rgba(209,36,36,.16) 0%, transparent 50%), radial-gradient(circle at 8% 90%, rgba(209,36,36,.1) 0%, transparent 50%), var(--grain); background-size: auto, auto, 240px 240px; opacity: .8; pointer-events: none; }
.pullquote-inner { position: relative; z-index: 1; max-width: 1000px; }
.pullquote .mark { font-family: 'Inria Serif', serif; font-style: italic; font-size: 120px; line-height: .6; color: var(--accent); display: block; height: 60px; }
.pullquote blockquote { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 38px; line-height: 1.34; color: #fff; margin: 0; letter-spacing: -0.01em; text-wrap: balance; }
.pullquote blockquote em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.pullquote .src { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(250,246,238,.6); margin-top: 34px; }
/* Retour à la ligne forcé uniquement sur desktop (dans un contenu éditable). */
.br-desktop { display: none; }
@media (min-width: 1025px) { .br-desktop { display: inline; } }
/* Deux colonnes : texte à gauche, plan à droite. Le plan reste à ~50 % de la
   largeur de contenu pour ne pas dépasser sa résolution native (1178 px) et
   éviter la pixelisation d'un affichage pleine largeur. */
.plan {
  width: 100%;
  padding: 96px var(--gutter);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 56px;
  row-gap: 16px;
  align-items: start;
}
.plan-head { grid-column: 1; grid-row: 1; margin-bottom: 0; max-width: 760px; align-self: center; }
.plan-frame { grid-column: 2; grid-row: 1; }
.plan-cap { grid-column: 2; grid-row: 2; }
.plan-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 38px; color: var(--ink); margin: 12px 0 16px; }
.plan-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.plan-head p { font-family: 'Montserrat', sans-serif; font-size: 14.5px; line-height: 1.75; color: var(--ink-2); margin: 0; max-width: 660px; }
.plan-frame { border: 8px solid #fff; outline: 1px solid var(--cream-border); box-shadow: 0 36px 70px -34px rgba(31,26,22,.55); border-radius: 3px; overflow: hidden; background: #1a1a1a; }
.plan-frame img { width: 100%; height: auto; display: block; }
.plan-cap { font-family: 'Inria Serif', serif; font-style: italic; font-size: 13.5px; color: var(--muted); margin-top: 16px; }
.plan-frame.is-zoomable { position: relative; margin: 0; cursor: zoom-in; }
.plan-frame.is-zoomable:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.plan-zoom-hint {
  position: absolute; right: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 7px;
  background: rgba(26,20,16,.82); color: #fff; padding: 8px 13px; border-radius: 999px;
  font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .01em;
  backdrop-filter: blur(6px); pointer-events: none; opacity: .92; transition: opacity .2s, transform .2s;
}
.plan-zoom-hint svg { width: 15px; height: 15px; }
.plan-frame.is-zoomable:hover .plan-zoom-hint { opacity: 1; transform: translateY(-2px); }
/* Sous 900px, la colonne serait trop étroite : on repasse en pile. */
@media (max-width: 900px) {
  .plan { grid-template-columns: 1fr; row-gap: 0; }
  .plan-head { grid-column: 1; grid-row: auto; margin-bottom: 40px; align-self: start; }
  .plan-frame { grid-column: 1; grid-row: auto; }
  .plan-cap { grid-column: 1; grid-row: auto; }
}

/* ── Visionneuse image zoomable (lightbox) ── */
.imgzoom { position: fixed; inset: 0; z-index: 3000; display: flex; opacity: 0; visibility: hidden;
  background: rgba(18,14,11,.94); backdrop-filter: blur(4px); transition: opacity .25s ease, visibility .25s; }
.imgzoom.open { opacity: 1; visibility: visible; }
.imgzoom-canvas { position: absolute; inset: 0; overflow: hidden; touch-action: none; cursor: grab; }
.imgzoom-canvas.grabbing { cursor: grabbing; }
.imgzoom-img { position: absolute; top: 0; left: 0; transform-origin: 0 0; user-select: none;
  -webkit-user-drag: none; will-change: transform; box-shadow: 0 30px 80px -30px rgba(0,0,0,.7); }
.imgzoom-img.animating { transition: transform .25s cubic-bezier(.2,.7,.3,1); }
.imgzoom-controls { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 2;
  display: flex; align-items: center; gap: 8px; background: rgba(26,20,16,.82); border: 1px solid rgba(255,255,255,.12);
  padding: 8px; border-radius: 999px; backdrop-filter: blur(8px); }
.imgzoom-controls button { width: 42px; height: 42px; border: none; border-radius: 50%; background: rgba(255,255,255,.1);
  color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .15s; }
.imgzoom-controls button:hover { background: rgba(255,255,255,.22); }
.imgzoom-controls svg { width: 20px; height: 20px; }
.imgzoom-close { position: absolute; top: 20px; right: 20px; z-index: 2; width: 46px; height: 46px; border: none;
  border-radius: 50%; background: rgba(26,20,16,.82); color: #fff; display: flex; align-items: center; justify-content: center;
  cursor: pointer; backdrop-filter: blur(8px); transition: background .15s; }
.imgzoom-close:hover { background: var(--accent); }
.imgzoom-close svg { width: 22px; height: 22px; }
.imgzoom-hint { position: absolute; top: 22px; left: 50%; transform: translateX(-50%); z-index: 2; color: rgba(255,255,255,.72);
  font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: .02em; pointer-events: none; }
@media (max-width: 640px) { .imgzoom-hint { display: none; } }
.sources { width: 100%; padding: 0 var(--gutter) 96px; }
.sources-band { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 8px; padding: 44px 52px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.sources-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 22px; color: var(--ink); margin: 0 0 10px; grid-column: 1 / -1; }
.sources-band .src-intro { grid-column: 1 / -1; font-family: 'Montserrat', sans-serif; font-size: 13.5px; line-height: 1.7; color: var(--muted); margin: 0 0 14px; max-width: 760px; }
.source-link { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border: 1px solid var(--cream-border); border-radius: 6px; background: var(--paper); transition: border-color .2s, transform .15s, box-shadow .2s; }
.source-link:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: 0 14px 28px -18px rgba(31,26,22,.35); }
.source-link .ic { width: 40px; height: 40px; border-radius: 8px; background: var(--accent-tint); color: var(--accent); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.source-link .ic svg { width: 20px; height: 20px; }
.source-link .t { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 14px; color: var(--ink); }
.source-link .u { font-family: 'Montserrat', sans-serif; font-size: 12px; color: var(--muted); margin-top: 3px; word-break: break-all; }

/* ============================================================
   NOUS SOUTENIR — sections (namespacé .ns-)
   ============================================================ */
.ns-hero { width: 100%; padding: 70px var(--gutter) 30px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: center; }
.ns-hero h1 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 60px; line-height: 1.06; color: var(--ink); margin: 18px 0 24px; letter-spacing: -0.015em; text-wrap: balance; }
.ns-hero h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.ns-hero .lede { font-family: 'Inria Serif', serif; font-style: italic; font-size: 19px; line-height: 1.6; color: var(--ink-2); margin: 0 0 30px; max-width: 560px; border-left: 3px solid var(--accent); padding-left: 24px; }
.ns-hero .cta-row { display: flex; gap: 14px; flex-wrap: wrap; }
.ns-hero-stats { display: grid; gap: 18px; }
.ns-hero-stat { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 12px; padding: 26px 28px; box-shadow: 0 18px 40px -28px rgba(31,26,22,.32); display: flex; align-items: baseline; gap: 18px; }
.ns-hero-stat .n { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 42px; line-height: 1; color: var(--accent); flex-shrink: 0; white-space: nowrap; }
.ns-hero-stat .n small { font-size: 22px; }
.ns-hero-stat .t { font-family: 'Montserrat', sans-serif; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }
.ways { width: 100%; padding: 60px var(--gutter) 30px; }
.ways-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.way { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 12px; padding: 36px 34px 32px; display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease, border-color .2s; }
.way:hover { transform: translateY(-5px); box-shadow: 0 30px 54px -28px rgba(31,26,22,.4); border-color: #ddd0b6; }
.way .ic { width: 56px; height: 56px; border-radius: 14px; background: var(--accent-tint); color: var(--accent); display: flex; align-items: center; justify-content: center; margin-bottom: 22px; }
.way .ic svg { width: 27px; height: 27px; }
.way h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 23px; color: var(--ink); margin: 0 0 12px; }
.way p { font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 1.7; color: var(--ink-2); margin: 0 0 22px; flex: 1; }
.way .lnk { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; color: var(--accent); display: inline-flex; align-items: center; gap: 8px; }
.way .lnk .arr { transition: transform .2s; } .way:hover .lnk .arr { transform: translateX(4px); }
.adh { width: 100%; padding: 90px var(--gutter); display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.adh-left { display: flex; flex-direction: column; gap: 60px; }
.adh-text h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 40px; line-height: 1.12; color: var(--ink); margin: 18px 0 20px; letter-spacing: -0.01em; }
.adh-text h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.adh-text p { font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.75; color: var(--ink-2); margin: 0 0 24px; max-width: 520px; }
.adh-list { list-style: none; padding: 0; margin: 0 0 30px; display: flex; flex-direction: column; gap: 14px; }
.adh-list li { position: relative; padding-left: 30px; font-family: 'Montserrat', sans-serif; font-size: 14.5px; line-height: 1.5; color: var(--ink); }
.adh-list li svg { position: absolute; left: 0; top: 2px; width: 18px; height: 18px; color: var(--accent); }
.adh-aside { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 112px; }
.bulletin-card { background: linear-gradient(135deg, rgba(74,64,57,.97), rgba(31,26,22,.97)); border-radius: 14px; padding: 48px 46px; color: var(--paper); position: relative; overflow: hidden; box-shadow: 0 34px 64px -32px rgba(31,26,22,.55); }
.bulletin-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 88% 10%, rgba(209,36,36,.22), transparent 52%), var(--grain); background-size: auto, 240px 240px; opacity: .85; pointer-events: none; }
.bulletin-card > * { position: relative; z-index: 1; }
.bulletin-card .price { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 56px; line-height: 1; color: #fff; }
.bulletin-card .price small { font-size: 18px; color: rgba(250,246,238,.7); font-style: italic; font-weight: 400; }
.bulletin-card .price-sub { font-family: 'Montserrat', sans-serif; font-size: 13px; color: rgba(250,246,238,.7); margin: 8px 0 26px; }
.bulletin-card h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 22px; color: #fff; margin: 0 0 8px; }
.bulletin-card .desc { font-family: 'Montserrat', sans-serif; font-size: 13.5px; line-height: 1.6; color: rgba(250,246,238,.8); margin: 0 0 28px; }
.bulletin-card .btn { background: #fff; color: var(--ink); width: 100%; justify-content: center; padding: 16px; }
.bulletin-card .btn:hover { background: var(--accent); color: #fff; }
.bulletin-card .small { font-family: 'Montserrat', sans-serif; font-size: 11.5px; color: rgba(250,246,238,.6); margin-top: 16px; text-align: center; }
.pay-card { padding: 40px 46px; }
.pay-card .desc { margin: 0 0 20px; }
.pay-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.pay-list li { position: relative; padding-left: 26px; font-family: 'Montserrat', sans-serif; font-size: 13.5px; line-height: 1.65; color: rgba(250,246,238,.85); }
.pay-list li::before { content: '»'; position: absolute; left: 0; top: 0; color: var(--accent); font-size: 15px; line-height: 1.5; }
.pay-list li b, .pay-list li strong { color: #fff; font-weight: 600; }
.pay-list li a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.pay-list li a:hover { color: var(--accent); }
.don { width: 100%; padding: 100px var(--gutter); background: linear-gradient(180deg, transparent, #f0e6cf 9%, #f0e6cf 91%, transparent); }
.don-inner { display: grid; grid-template-columns: 1fr 1.05fr; gap: 80px; align-items: center; }
.don-text h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 40px; line-height: 1.12; color: var(--ink); margin: 18px 0 20px; }
.don-text h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.don-text p { font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.75; color: var(--ink-2); margin: 0 0 20px; max-width: 480px; }
.taxbox { display: flex; gap: 14px; align-items: flex-start; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 10px; padding: 18px 20px; max-width: 480px; }
.taxbox svg { width: 22px; height: 22px; color: var(--accent); flex-shrink: 0; margin-top: 1px; }
.taxbox p { margin: 0; font-family: 'Montserrat', sans-serif; font-size: 13px; line-height: 1.6; color: var(--ink-2); }
.taxbox strong { color: var(--ink); }
.don-panel { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 16px; padding: 44px 44px 40px; box-shadow: 0 34px 64px -34px rgba(31,26,22,.45); }
.don-panel .lbl { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.amounts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px; }
.amounts button { border: 1.5px solid var(--cream-border); background: #fff; border-radius: 10px; padding: 18px 0; font-family: 'Inria Serif', serif; font-weight: 700; font-size: 22px; color: var(--ink); transition: all .18s ease; cursor: pointer; }
.amounts button:hover { border-color: var(--accent); }
.amounts button.on { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 12px 24px -12px rgba(209,36,36,.6); }
.amount-custom { display: flex; align-items: center; border: 1.5px solid var(--cream-border); border-radius: 10px; overflow: hidden; margin-bottom: 8px; }
.amount-custom span { padding: 0 16px; font-family: 'Inria Serif', serif; font-weight: 700; font-size: 18px; color: var(--muted); background: var(--paper-warm); align-self: stretch; display: flex; align-items: center; }
.amount-custom input { flex: 1; border: 0; outline: none; padding: 16px 18px; font-family: 'Montserrat', sans-serif; font-size: 15px; color: var(--ink); background: #fff; }
.freq { display: inline-flex; background: var(--paper-warm); border-radius: 999px; padding: 4px; gap: 3px; margin: 16px 0 24px; }
.freq button { border: 0; background: transparent; border-radius: 999px; padding: 9px 20px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; color: var(--ink-2); transition: all .18s; cursor: pointer; }
.freq button.on { background: var(--ink); color: #fff; }
.don-panel .give { width: 100%; justify-content: center; padding: 17px; font-size: 14px; }
.don-panel .pay-note { font-family: 'Montserrat', sans-serif; font-size: 12px; color: var(--muted); line-height: 1.6; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--cream-border); }
.don-panel .pay-note b { color: var(--ink); }
.don-embed { width: 100%; }
.don-embed iframe { width: 100% !important; max-width: 100%; min-height: 780px; border: 0; display: block; border-radius: 8px; }
.impact { width: 100%; padding: 100px var(--gutter); }
.impact-head { max-width: 760px; margin-bottom: 50px; }
.impact-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 38px; line-height: 1.12; color: var(--ink); margin: 12px 0 16px; }
.impact-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.impact-head p { font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.75; color: var(--ink-2); margin: 0; max-width: 640px; }
.impact-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--cream-border); }
.impact-item { padding: 34px 28px 34px 0; border-right: 1px solid var(--cream-border); }
.impact-item:last-child { border-right: 0; padding-right: 0; }
.impact-item:not(:first-child) { padding-left: 28px; }
.impact-item .num { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 0.14em; color: var(--accent); margin-bottom: 16px; }
.impact-item h4 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 19px; line-height: 1.25; color: var(--ink); margin: 0 0 10px; }
.impact-item p { font-family: 'Montserrat', sans-serif; font-size: 13.5px; line-height: 1.65; color: var(--ink-2); margin: 0; }
.contact { width: 100%; padding: 0 var(--gutter) 100px; }
.contact-band { background: var(--ink); color: var(--paper); border-radius: 8px; padding: 60px 64px; display: flex; align-items: center; justify-content: space-between; gap: 50px; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.contact-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 90% 10%, rgba(209,36,36,.18), transparent 55%), var(--grain); background-size: auto, 240px 240px; opacity: .8; pointer-events: none; }
.contact-band > * { position: relative; z-index: 1; }
.contact-band .eyebrow { color: #fff; } .contact-band .eyebrow::before { background: #fff; }
.contact-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 30px; line-height: 1.2; color: #fff; margin: 14px 0 0; max-width: 560px; }
.contact-band h3 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.contact-band .btn { background: #fff; color: var(--ink); flex-shrink: 0; } .contact-band .btn:hover { background: var(--accent); color: #fff; }

@media (max-width: 1024px) {
  .lede-row { grid-template-columns: 1fr; gap: 40px; }
  .chapter-head, .chapter-body { grid-template-columns: 1fr; gap: 16px; }
  .chapter-year { font-size: 60px; }
  .sources-band { grid-template-columns: 1fr; padding: 32px; }
  .ns-hero { grid-template-columns: 1fr; gap: 40px; }
  .ways-grid { grid-template-columns: 1fr; }
  .adh, .don-inner { grid-template-columns: 1fr; gap: 40px; }
  .adh-left { gap: 40px; }
  .adh-aside { position: static; top: auto; }
  .impact-grid { grid-template-columns: 1fr 1fr; }
  .impact-item { border-right: 0; border-bottom: 1px solid var(--cream-border); padding: 28px 0 !important; }
  .contact-band { flex-direction: column; align-items: flex-start; gap: 24px; }
}
@media (max-width: 680px) {
  .ns-hero h1 { font-size: 42px; }
  .pullquote blockquote { font-size: 26px; }
  .impact-grid { grid-template-columns: 1fr; }
  .amounts { grid-template-columns: 1fr 1fr; }
}

/* ── AGENDA (page liste sous Actualités) ── */
.agenda-list { width: 100%; padding: 60px var(--gutter) 100px; }
.agenda-list .row-head { margin-bottom: 34px; }
.agenda-list .row-head--past { margin-top: 72px; }
.agenda-list .row-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 34px; line-height: 1.1; color: var(--ink); margin: 10px 0 0; }
.agenda-list .row-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.agenda-list .agenda-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.agenda-list .agenda-grid.is-past .event-card { opacity: .72; }
.agenda-list .agenda-grid.is-past .event-date-box { background: #8a837a; }
.agenda-empty { font-family: 'Inria Serif', serif; font-style: italic; color: var(--muted); font-size: 18px; }
@media (max-width: 980px) { .agenda-list .agenda-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .agenda-list .agenda-grid { grid-template-columns: 1fr; } }

/* ============================================================
   KOMMANDO — page de présentation (single) — design importé
   Tout est scopé sous .kommando-single pour éviter les conflits.
   ============================================================ */
.kommando-single { position: relative; }

/* fil d'ariane */
.kommando-single .k-crumb { width: 100%; padding: 30px var(--gutter) 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.kommando-single .k-crumb .back { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 8px; transition: color .15s; }
.kommando-single .k-crumb .back:hover { color: var(--accent); }
.kommando-single .k-crumb .ref { font-family: 'Montserrat', sans-serif; font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--muted); }
.kommando-single .k-crumb .ref b { color: var(--accent); font-weight: 700; }

/* titre */
.kommando-single .k-title { width: 100%; padding: 34px var(--gutter) 8px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 60px; }
.kommando-single .k-title h1 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 64px; line-height: 1.05; color: var(--ink); margin: 14px 0 0; letter-spacing: -0.015em; }
.kommando-single .k-title h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.kommando-single .k-title .chapeau { font-family: 'Inria Serif', serif; font-style: italic; font-size: 19px; line-height: 1.6; color: var(--ink-2); max-width: 660px; margin: 20px 0 0; }
.kommando-single .k-title-meta { font-family: 'Inria Serif', serif; font-style: italic; font-size: 14px; color: var(--muted); text-align: right; line-height: 1.7; padding-bottom: 6px; }
.kommando-single .k-title-meta strong { font-style: normal; font-family: 'Inter', sans-serif; font-weight: 600; color: var(--ink); letter-spacing: 0.04em; font-size: 11.5px; text-transform: uppercase; display: block; margin-bottom: 4px; }

/* en bref */
.kommando-single .k-facts { width: 100%; padding: 36px var(--gutter) 0; }
.kommando-single .k-facts-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); border-top: 1px solid var(--cream-border); border-bottom: 1px solid var(--cream-border); }
.kommando-single .k-fact { padding: 26px 28px 24px; border-left: 1px solid var(--cream-border); }
.kommando-single .k-fact:first-child { border-left: 0; padding-left: 0; }
.kommando-single .k-fact .v { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 32px; color: var(--ink); line-height: 1; }
.kommando-single .k-fact .v em { font-style: italic; color: var(--accent); font-weight: 400; font-size: 26px; }
.kommando-single .k-fact .l { font-family: 'Montserrat', sans-serif; font-size: 12px; line-height: 1.55; color: var(--muted); margin-top: 10px; }

/* chronologie */
.kommando-single .k-timeline-band { width: 100%; padding: 44px var(--gutter) 10px; }
.kommando-single .k-timeline-band .eyebrow { margin-bottom: 26px; }
.kommando-single .k-timeline { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); position: relative; }
.kommando-single .k-timeline::before { content: ''; position: absolute; top: 5px; left: 0; right: 0; height: 1.5px; background: var(--cream-border); }
.kommando-single .k-tl-item { position: relative; padding: 26px 22px 22px 0; }
.kommando-single .k-tl-item::before { content: ''; position: absolute; top: 0; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--paper); border: 3px solid var(--accent); }
.kommando-single .k-tl-item .d { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); }
.kommando-single .k-tl-item .t { font-family: 'Montserrat', sans-serif; font-size: 12px; line-height: 1.6; color: var(--ink-2); margin-top: 7px; }

/* corps article + sidebar */
.kommando-single .k-article-wrap { width: 100%; padding: 56px var(--gutter) 30px; display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 76px; align-items: start; }
.kommando-single .k-article { max-width: 760px; }
.kommando-single .k-chapter { margin-bottom: 58px; scroll-margin-top: 130px; }
.kommando-single .chapter-head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 22px; padding-top: 8px; }
.kommando-single .chapter-head .no { font-family: 'Inria Serif', serif; font-style: italic; font-size: 30px; color: var(--accent); line-height: 1; }
.kommando-single .chapter-head h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 27px; color: var(--ink); margin: 0; line-height: 1.2; }
.kommando-single .chapter-rule { width: 44px; height: 2px; background: var(--cream-border); margin: 0 0 24px 46px; }
.kommando-single .k-body p { font-family: 'Inria Serif', serif; font-size: 17.5px; line-height: 1.85; color: var(--ink-2); margin: 0 0 20px; text-wrap: pretty; }
.kommando-single .k-body p:last-child { margin-bottom: 0; }
.kommando-single .k-body h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 24px; color: var(--ink); margin: 34px 0 16px; }
.kommando-single .k-body h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 19px; color: var(--ink); margin: 28px 0 12px; }
.kommando-single .k-body ul, .kommando-single .k-body ol { font-family: 'Inria Serif', serif; font-size: 17px; line-height: 1.8; color: var(--ink-2); padding-left: 22px; margin: 0 0 20px; }
.kommando-single .k-body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.kommando-single .k-body sup { line-height: 0; }
.kommando-single .k-body sup a { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11px; color: var(--accent); padding: 0 2px; text-decoration: none; }
.kommando-single .k-chapter:first-of-type .chapter-body > p:first-of-type::first-letter { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 58px; line-height: .82; float: left; padding: 6px 12px 0 0; color: var(--ink); }

/* cartes kommandos internes (dans le contenu d'un chapitre) */
.kommando-single .k-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 28px 0; }
.kommando-single .k-card { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 6px; padding: 24px 26px; position: relative; overflow: hidden; }
.kommando-single .k-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent); }
.kommando-single .k-card .lbl { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); }
.kommando-single .k-card .big { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 26px; color: var(--ink); margin-top: 10px; }
.kommando-single .k-card .sub { font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.6; color: var(--muted); margin-top: 8px; }

/* répartition nationalités (dans le contenu d'un chapitre) */
.kommando-single .nat { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 6px; padding: 30px 32px 26px; margin: 28px 0; }
.kommando-single .nat .nat-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); margin-bottom: 20px; }
.kommando-single .nat .nat-title b { color: var(--accent); }
.kommando-single .nat-row { display: grid; grid-template-columns: 120px 1fr 88px; align-items: center; gap: 14px; margin-bottom: 12px; }
.kommando-single .nat-row .n { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 12.5px; color: var(--ink-2); }
.kommando-single .nat-row .bar { height: 12px; background: var(--paper-warm); border-radius: 2px; overflow: hidden; }
.kommando-single .nat-row .bar i { display: block; height: 100%; background: var(--accent); opacity: .88; border-radius: 2px; }
.kommando-single .nat-row .v { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 15px; color: var(--ink); text-align: right; white-space: nowrap; }
.kommando-single .nat-row .v span { font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 10.5px; color: var(--muted); }
.kommando-single .nat-note { font-family: 'Montserrat', sans-serif; font-size: 11.5px; line-height: 1.6; color: var(--muted); margin-top: 16px; border-top: 1px solid var(--cream-border); padding-top: 14px; }

/* sidebar */
.kommando-single .k-side { position: sticky; top: 122px; display: flex; flex-direction: column; gap: 26px; }
.kommando-single .info-card { background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 6px; padding: 26px 28px; }
.kommando-single .info-card .ic-title { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 17px; color: var(--ink); padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px solid var(--cream-border); }
.kommando-single .info-row { margin-bottom: 15px; }
.kommando-single .info-row .k { font-family: 'Montserrat', sans-serif; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.kommando-single .info-row .w { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13.5px; color: var(--ink); line-height: 1.5; }
.kommando-single .info-card .all-link { display: inline-flex; align-items: center; gap: 7px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12.5px; color: var(--accent); margin-top: 4px; }
.kommando-single .info-card .all-link:hover { color: var(--accent-soft); }
.kommando-single .k-toc { border-left: 1px solid var(--cream-border); }
.kommando-single .k-toc .toc-title { font-family: 'Montserrat', sans-serif; font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); padding-left: 20px; margin-bottom: 14px; }
.kommando-single .k-toc a { display: block; position: relative; font-family: 'Inter', sans-serif; font-size: 13px; color: var(--ink-2); padding: 7px 0 7px 20px; line-height: 1.4; transition: color .15s; }
.kommando-single .k-toc a .tno { font-family: 'Inria Serif', serif; font-style: italic; color: var(--muted); margin-right: 8px; transition: color .15s; }
.kommando-single .k-toc a::before { content: ''; position: absolute; left: -1px; top: 6px; bottom: 6px; width: 2px; background: var(--accent); transform: scaleY(0); transition: transform .2s; }
.kommando-single .k-toc a:hover { color: var(--accent); }
.kommando-single .k-toc a.active { color: var(--accent); font-weight: 600; }
.kommando-single .k-toc a.active .tno { color: var(--accent); }
.kommando-single .k-toc a.active::before { transform: scaleY(1); }

/* sources */
.kommando-single .k-sources { width: 100%; padding: 10px var(--gutter) 70px; }
.kommando-single .sources-box { max-width: 760px; border-top: 2px solid var(--ink); }
.kommando-single .sources-box details { border-bottom: 1px solid var(--cream-border); }
.kommando-single .sources-box summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; padding: 22px 4px; }
.kommando-single .sources-box summary::-webkit-details-marker { display: none; }
.kommando-single .sources-box summary h2 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 22px; color: var(--ink); margin: 0; }
.kommando-single .sources-box summary .hint { font-family: 'Montserrat', sans-serif; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); display: inline-flex; align-items: center; gap: 10px; }
.kommando-single .sources-box summary .hint::after { content: '+'; font-family: 'Inria Serif', serif; font-size: 22px; color: var(--accent); line-height: 1; }
.kommando-single .sources-box details[open] summary .hint::after { content: '–'; }
.kommando-single .src-list { margin: 0; padding: 4px 4px 10px; counter-reset: src; list-style: none; }
.kommando-single .src-list li { position: relative; counter-increment: src; padding: 7px 0 7px 34px; font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.7; color: var(--ink-2); scroll-margin-top: 130px; }
.kommando-single .src-list li::before { content: counter(src); position: absolute; left: 0; top: 8px; font-family: 'Inria Serif', serif; font-style: italic; font-weight: 700; font-size: 14px; color: var(--accent); }
.kommando-single .src-list li:target { background: var(--accent-tint); border-radius: 4px; padding-left: 40px; }
.kommando-single .src-list li:target::before { left: 8px; }
.kommando-single .src-legacy { font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.7; color: var(--ink-2); padding: 8px 4px 14px; }
.kommando-single .src-legacy a { color: var(--accent); }
.kommando-single .src-lit { padding: 16px 4px 24px; border-top: 1px solid var(--cream-border); margin-top: 8px; }
.kommando-single .src-lit .lt { font-family: 'Montserrat', sans-serif; font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.kommando-single .src-lit p { font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.7; color: var(--ink-2); margin: 0 0 10px; }
.kommando-single .src-credit { padding: 18px 4px 0; font-family: 'Inria Serif', serif; font-style: italic; font-size: 14px; line-height: 1.7; color: var(--muted); }
.kommando-single .src-credit strong { font-style: normal; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12px; color: var(--ink); }

/* CTA mémorial */
.kommando-single .k-memorial-cta { width: 100%; padding: 0 var(--gutter) 40px; }
.kommando-single .memorial-band { background: linear-gradient(135deg, rgba(74,64,57,.97) 0%, rgba(31,26,22,.97) 100%); border-radius: 8px; padding: 52px 64px; display: flex; align-items: center; justify-content: space-between; gap: 50px; position: relative; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(31,26,22,.5); }
.kommando-single .memorial-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 92% 12%, rgba(209,36,36,.2) 0%, transparent 52%), var(--grain); background-size: auto, 240px 240px; opacity: .85; pointer-events: none; }
.kommando-single .memorial-band > * { position: relative; z-index: 1; }
.kommando-single .memorial-band .eyebrow { color: #fff; } .kommando-single .memorial-band .eyebrow::before { background: #fff; }
.kommando-single .memorial-band h3 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 26px; line-height: 1.3; color: #fff; margin: 12px 0 0; max-width: 620px; }
.kommando-single .memorial-band h3 em { font-style: italic; color: #f0b8b0; font-weight: 400; }
.kommando-single .memorial-band .btn { background: #fff; color: var(--ink); flex-shrink: 0; }
.kommando-single .memorial-band .btn:hover { background: var(--accent); color: #fff; }

/* suivant */
.kommando-single .k-next { width: 100%; padding: 0 var(--gutter) 90px; display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.kommando-single .k-next a { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13.5px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 10px; transition: color .15s; }
.kommando-single .k-next a:hover { color: var(--accent); }
.kommando-single .k-next .nxt { text-align: right; }
.kommando-single .k-next .nxt small { display: block; font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 5px; }

/* responsive */
@media (max-width: 1024px) {
  .kommando-single .k-title { grid-template-columns: 1fr; gap: 18px; }
  .kommando-single .k-title h1 { font-size: 48px; }
  .kommando-single .k-title-meta { text-align: left; }
  .kommando-single .k-article-wrap { grid-template-columns: 1fr; gap: 46px; }
  .kommando-single .k-side { position: static; flex-direction: column-reverse; }
  .kommando-single .k-toc { border-left: 0; }
  .kommando-single .k-toc .toc-title, .kommando-single .k-toc a { padding-left: 0; }
  .kommando-single .k-toc a::before { display: none; }
}
@media (max-width: 720px) {
  .kommando-single .k-facts-strip { grid-template-columns: 1fr 1fr; }
  .kommando-single .k-fact:nth-child(3), .kommando-single .k-fact:nth-child(4) { padding-top: 20px; }
  .kommando-single .k-fact:nth-child(odd) { border-left: 0; padding-left: 0; }
  .kommando-single .k-cards { grid-template-columns: 1fr; }
  .kommando-single .memorial-band { flex-direction: column; align-items: flex-start; gap: 26px; padding: 38px 32px; }
  .kommando-single .nat-row { grid-template-columns: 90px 1fr 70px; gap: 10px; }
}
@media (max-width: 560px) {
  .kommando-single .k-title h1 { font-size: 38px; }
  .kommando-single .k-facts-strip { grid-template-columns: 1fr; }
  .kommando-single .k-fact { border-left: 0; padding: 18px 0; border-top: 1px solid var(--cream-border); }
  .kommando-single .k-fact:first-child { border-top: 0; }
  .kommando-single .k-next { flex-direction: column; align-items: flex-start; gap: 20px; }
  .kommando-single .k-next .nxt { text-align: left; }
}

/* ============================================================
   CARTE INTERACTIVE DES KOMMANDOS (Leaflet)
   Points placés d'après les coordonnées GPS saisies en back-office.
   ============================================================ */
/* isolation: crée un contexte d'empilement pour que les z-index internes de
   Leaflet (400→800) ne passent jamais au-dessus du header sticky (z-index 200). */
.map.is-live { isolation: isolate; filter: none; background: var(--paper-warm); }
.map.is-live::after { display: none; }            /* pas de voile sur une carte manipulable */
.leaflet-container { background: var(--paper-warm); font-family: 'Montserrat', sans-serif; }
/* Patine légère seulement : on garde le relief, les forêts, les rivières et les routes
   bien lisibles. Le filtre ne touche que les tuiles — les pastilles gardent le rouge vif. */
.map.is-live .leaflet-tile-pane { filter: sepia(.18) saturate(.95) contrast(1.06); }

/* pastilles */
.flo-pin-wrap { background: none; border: 0; }
/* anneau crème + fin liseré sombre : la pastille reste lisible sur le relief chargé */
.flo-pin {
  display: block; width: 13px; height: 13px; border-radius: 50%; background: var(--accent);
  box-shadow: 0 0 0 3.5px rgba(250,246,238,.95), 0 0 0 4.6px rgba(31,26,22,.3), 0 2px 7px rgba(31,26,22,.45);
  transition: transform .15s ease;
}
.flo-pin-wrap:hover .flo-pin { transform: scale(1.4); }
/* Kommando de femmes (référence en « F ») : pastille annelée */
.flo-pin.women { box-shadow: inset 0 0 0 3.5px rgba(250,246,238,.95), 0 0 0 3.5px rgba(250,246,238,.95), 0 0 0 4.6px rgba(31,26,22,.3), 0 2px 7px rgba(31,26,22,.45); }

/* infobulle */
.leaflet-popup-content-wrap {
  border-radius: 8px; background: var(--paper-card); border: 1px solid var(--cream-border);
  box-shadow: 0 18px 40px -18px rgba(31,26,22,.5);
}
.leaflet-popup-content { margin: 0; }
.leaflet-popup-tip { background: var(--paper-card); }
.flo-pop { display: block; padding: 12px 15px; min-width: 168px; }
.flo-pop .nm { display: block; font-family: 'Inria Serif', serif; font-weight: 700; font-size: 15px; color: var(--ink); line-height: 1.25; }
.flo-pop .meta { display: flex; flex-wrap: wrap; gap: 3px 10px; margin-top: 6px; }
.flo-pop .meta span { font-family: 'Montserrat', sans-serif; font-size: 11px; color: var(--muted); }
.flo-pop .meta .ref { color: var(--accent); font-weight: 700; letter-spacing: .06em; }
.flo-pop .go { display: block; margin-top: 9px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 11.5px; color: var(--accent); }
.flo-pop:hover .go { text-decoration: underline; text-underline-offset: 3px; }

/* contrôles + attribution accordés à la charte */
.leaflet-bar a { background: var(--paper-card); color: var(--ink); border-bottom-color: var(--cream-border); }
.leaflet-bar a:hover { background: var(--accent-tint); color: var(--accent); }
.leaflet-control-attribution { background: rgba(250,246,238,.85); font-size: 10px; color: var(--muted); }
.leaflet-control-attribution a { color: var(--ink-2); }

/* La hauteur conditionne le zoom : l'emprise des Kommandos fait ~3° de latitude,
   soit ~4,8° une fois projetée. Trop bas, Leaflet doit dézoomer et la carte
   affiche la moitié de l'Europe. 560px permet d'atteindre un zoom lisible. */
.map-frame .map.is-live { height: 560px; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
@media (max-width: 640px) { .map-frame .map.is-live { height: 420px; } }
/* idem sur la home : on privilégie la hauteur au format panoramique */
.map.is-live { aspect-ratio: 4 / 3; }

/* légende + repère sous la carte des Kommandos */
.map-aside .map-hint { font-family: 'Montserrat', sans-serif; font-size: 13px; line-height: 1.6; color: var(--muted); margin: 0 0 10px; }
.map-aside .legend b { color: var(--accent); }
.lg-pin {
  display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: var(--accent);
  box-shadow: 0 0 0 3px rgba(250,246,238,.85), 0 1px 4px rgba(31,26,22,.35);
  vertical-align: middle; flex: none;
}
.lg-pin.women { box-shadow: inset 0 0 0 3px rgba(250,246,238,.95), 0 0 0 3px rgba(250,246,238,.85), 0 1px 4px rgba(31,26,22,.35); }

/* ───────────────────── 404 — Page introuvable ───────────────────── */
.nf { width: 100%; padding: 96px var(--gutter) 90px; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 90px; align-items: start; }
.nf .code { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 200px; line-height: .9; letter-spacing: -0.02em; color: var(--ink); margin: 26px 0 0; }
.nf .code em { font-style: italic; font-weight: 400; color: var(--accent); }
.nf h1 { font-family: 'Inria Serif', serif; font-weight: 700; font-size: 40px; line-height: 1.15; color: var(--ink); margin: 34px 0 0; letter-spacing: -0.01em; }
.nf .chapeau { font-family: 'Inria Serif', serif; font-style: italic; font-size: 19px; line-height: 1.65; color: var(--ink-2); max-width: 560px; margin: 18px 0 0; text-wrap: pretty; }
.nf .actions { display: flex; gap: 14px; margin-top: 36px; flex-wrap: wrap; }
.nf-rule { width: 44px; height: 2px; background: var(--accent); margin-top: 34px; }
.nf-side { border-left: 1px solid var(--cream-border); padding: 8px 0 8px 34px; margin-top: 40px; }
.nf-side .st { font-family: 'Montserrat', sans-serif; font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.nf-side nav { display: flex; flex-direction: column; }
.nf-side a { display: flex; align-items: baseline; gap: 14px; padding: 15px 2px; border-bottom: 1px solid var(--cream-border); font-family: 'Inter', sans-serif; font-weight: 600; font-size: 14.5px; color: var(--ink); transition: color .15s; }
.nf-side a:last-of-type { border-bottom: 0; }
.nf-side a .sno { font-family: 'Inria Serif', serif; font-style: italic; font-size: 13px; color: var(--muted); width: 20px; flex-shrink: 0; transition: color .15s; }
.nf-side a span.d { display: block; font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 11.5px; color: var(--muted); margin-top: 3px; letter-spacing: .01em; }
.nf-side a:hover, .nf-side a:hover .sno { color: var(--accent); }
.nf-side a b { font-weight: 600; display: block; }
.nf-help { margin-top: 30px; background: var(--paper-card); border: 1px solid var(--cream-border); border-radius: 6px; padding: 22px 24px; }
.nf-help p { font-family: 'Montserrat', sans-serif; font-size: 12.5px; line-height: 1.65; color: var(--ink-2); margin: 0; }
.nf-help a { font-family: 'Inter', sans-serif; font-weight: 600; color: var(--accent); }
.nf-help a:hover { color: var(--accent-soft); }

@media (max-width: 1024px) {
  .nf { grid-template-columns: 1fr; gap: 44px; padding-top: 60px; padding-bottom: 60px; }
  .nf .code { font-size: 150px; }
  .nf-side { border-left: 0; padding-left: 0; margin-top: 0; }
}
@media (max-width: 680px) {
  .nf .code { font-size: 104px; }
  .nf h1 { font-size: 30px; }
  .nf .chapeau { font-size: 17px; }
}
