/* =====================================================================
   La Maison Entre Familles — brand-new visual identity
   Concept: "the house between families" — home, hearth, the open table.
   Palette: deep spruce + warm buttermilk + marigold honey + garden leaf
   Type: Bricolage Grotesque (display) · Instrument Sans (body) · Caveat (hand)
   ===================================================================== */

:root{
  /* ---- colour ---- */
  --ink:        #173a32;   /* deep spruce — dark sections & brand dark   */
  --ink-700:    #204a3f;
  --ink-600:    #2d5a4c;
  --paper:      #fcf5e5;   /* warm buttermilk — page background           */
  --paper-2:    #f7ecd2;   /* deeper warm panel                           */
  --card:       #fffdf6;   /* warm near-white card                        */
  --honey:      #e79f34;   /* primary accent — warm light / donate        */
  --honey-600:  #cf8a1c;
  --honey-tint: #f7e3b8;
  --leaf:       #5c8f4e;   /* fresh green — growth / get help             */
  --leaf-600:   #497a3e;
  --leaf-tint:  #e5efda;
  --rose:       #c24b47;   /* warm rose — heart / urgent, used sparingly  */
  --rose-600:   #a63b38;
  --espresso:   #241e17;   /* body text                                   */
  --muted:      #6a6152;   /* secondary text on paper                     */
  --line:       #e8dcbf;   /* hairline on paper                           */
  --line-2:     #ecd9b0;
  --ink-line:   rgba(255,255,255,.16);
  --paper-on-ink:#f3ead6;
  --muted-on-ink:#b6c6bd;

  /* ---- type ---- */
  --display:'Bricolage Grotesque', ui-sans-serif, system-ui, sans-serif;
  --body:'Instrument Sans', ui-sans-serif, system-ui, sans-serif;
  --hand:'Caveat', ui-serif, cursive;

  /* ---- shape & depth ---- */
  --r-sm:12px; --r:18px; --r-lg:26px; --r-pill:999px;
  --sh-sm:0 2px 8px rgba(36,30,23,.06);
  --sh:0 14px 34px -18px rgba(36,30,23,.34);
  --sh-lg:0 30px 70px -30px rgba(23,58,50,.45);
  --container:1180px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ------------------------------------------------------------------ reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--espresso);
  font-family:var(--body);font-size:clamp(16px,.4vw + 15px,17.5px);
  line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:700;line-height:1.05;
  letter-spacing:-.02em;color:var(--ink)}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--honey);outline-offset:3px;border-radius:4px}
::selection{background:var(--honey-tint)}

/* ------------------------------------------------------------- utilities */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(20px,5vw,40px)}
.section{padding-block:clamp(64px,9vw,116px)}
.section--tight{padding-block:clamp(48px,6vw,72px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.center{text-align:center}
.lead{font-size:clamp(1.05rem,.6vw + 1rem,1.28rem);color:var(--muted);line-height:1.65}
.on-ink{color:var(--paper-on-ink)}
.hide{display:none !important}

/* eyebrow: small drawn icon + label — used to head sections */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--body);font-weight:600;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--leaf-600)}
.eyebrow .ic{width:1.05em;height:1.05em;color:var(--honey-600)}
.on-ink .eyebrow,.eyebrow.on-ink{color:var(--honey)}
.on-ink .eyebrow .ic{color:var(--honey)}
/* Long labels (French especially) may wrap on phones: tighten, and pin the icon to line one. */
@media (max-width:520px){
  .eyebrow{letter-spacing:.08em;align-items:flex-start;line-height:1.35}
  .eyebrow .ic{margin-top:.12em}
}

/* handwritten accent */
.hand{font-family:var(--hand);font-weight:600;color:var(--rose);
  font-size:1.5em;line-height:1;transform:rotate(-3deg);display:inline-block}

/* drawn icon helper */
.ic{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;flex:none}

/* section heading block */
.head{max-width:64ch}
.head h2{font-size:clamp(1.9rem,3.4vw,3rem);margin-top:.5rem}
.head.center{margin-inline:auto}
.head .lead{margin-top:1rem}

/* the honey "marker" swoosh under a hero word */
.mark{position:relative;display:inline-block;color:var(--honey-600)}
.mark svg{position:absolute;left:-2%;bottom:-.28em;width:104%;height:.5em;overflow:visible}
.mark svg path{fill:none;stroke:var(--honey);stroke-width:8;stroke-linecap:round;
  stroke-dasharray:640;stroke-dashoffset:640;animation:draw 1.1s .5s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* -------------------------------------------------------------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  border:1.5px solid transparent;border-radius:var(--r-pill);
  padding:.82rem 1.4rem;font-weight:600;font-size:.98rem;letter-spacing:-.01em;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s,color .2s,border-color .2s;
  white-space:nowrap}
.btn .ic{width:1.15em;height:1.15em;stroke-width:1.9}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--honey{background:var(--honey);color:#3a2708;box-shadow:0 10px 22px -12px rgba(207,138,28,.85)}
.btn--honey:hover{background:var(--honey-600);color:#2f1f04;box-shadow:0 16px 30px -14px rgba(207,138,28,.9)}
.btn--rose{background:var(--rose);color:#fff;box-shadow:0 10px 22px -12px rgba(166,59,56,.75)}
.btn--rose:hover{background:var(--rose-600)}
.btn--ink{background:var(--ink);color:var(--paper-on-ink)}
.btn--ink:hover{background:var(--ink-700)}
.btn--ghost{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink);background:#fff9ec}
.btn--ghost.on-ink{border-color:var(--ink-line);color:var(--paper-on-ink)}
.btn--ghost.on-ink:hover{border-color:var(--honey);background:rgba(255,255,255,.06)}
.btn--lg{padding:1rem 1.7rem;font-size:1.05rem}
.btn--block{width:100%}

/* ---------------------------------------------------------------- header */
.site-header{position:sticky;top:0;z-index:60;
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,background .3s}
.site-header.scrolled{border-color:var(--line);box-shadow:var(--sh-sm);
  background:color-mix(in srgb,var(--paper) 94%,transparent)}
.nav{display:flex;align-items:center;gap:1.2rem;min-height:74px}
/* The header uses the full window width, unlike the page content. */
.site-header > .container{max-width:none}
/* Desktop: logo at the left edge, menu starting 30% across, actions at the
   right edge. Columns never shrink below their content, so a header that
   cannot fit overflows measurably and main.js tightens or collapses it. */
@media (min-width:961px){
  .nav:not(.nav--compact){display:grid;align-items:center;column-gap:1.2rem;
    grid-template-columns:minmax(max-content,calc(30% - 1.2rem)) minmax(max-content,1fr) max-content}
  .nav:not(.nav--compact) .brand{margin-right:0}
}
.brand{display:flex;align-items:center;gap:.6rem;margin-right:auto;font-family:var(--display);
  font-weight:700;color:var(--ink);font-size:1.06rem;letter-spacing:-.02em;line-height:1.05}
.brand img{width:42px;height:42px;border-radius:10px;object-fit:contain;background:var(--card);
  padding:3px;box-shadow:var(--sh-sm)}
.brand small{display:block;font-family:var(--body);font-weight:500;font-size:.7rem;
  letter-spacing:.04em;color:var(--leaf-600);text-transform:none}
.nav-links{display:flex;align-items:center;gap:.35rem}
.nav-links a{white-space:nowrap;padding:.5rem .7rem;border-radius:var(--r-pill);font-weight:500;font-size:.95rem;
  color:var(--espresso);transition:background .2s,color .2s}
.nav-links a:hover{background:#fff8ea;color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--leaf-600);font-weight:600}
.nav-actions{display:flex;align-items:center;gap:.55rem;flex:none}
.nav-actions .btn{white-space:nowrap}
.nav-actions .btn[aria-current="page"]{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--leaf)}
/* Desktop: the logo keeps its full width, so an over-long header collapses
   instead of squeezing it. Phones: it may shrink and wrap under the controls. */
@media (min-width:961px){.brand{flex:none}.brand > span{white-space:nowrap}}
@media (max-width:960px){.brand{min-width:0}}

/* language toggle */
.lang{display:inline-flex;border:1.5px solid var(--line-2);border-radius:var(--r-pill);
  overflow:hidden;font-weight:600;font-size:.82rem}
.lang button{background:transparent;color:var(--muted);padding:.34rem .66rem;border:0}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--paper-on-ink)}

/* mobile menu button */
.burger{display:none;width:44px;height:44px;border:1.5px solid var(--line-2);border-radius:12px;
  background:var(--card);align-items:center;justify-content:center}
.burger .ic{width:22px;height:22px;color:var(--ink)}

/* Collapsed header. Applied below 960px by media query, and at any width by
   main.js when the labels (longer in French) do not fit on one line. */
@media (max-width:960px){
  .nav-links,.nav .nav-actions .btn{display:none}
  .burger{display:inline-flex}
}
/* Tight: first step before collapsing — less spacing, no tagline. */
.nav--tight{gap:.7rem}
.nav--tight .brand small{display:none}
.nav--tight .nav-links{gap:.1rem}
.nav--tight .nav-links a{padding:.5rem .55rem}
.nav--tight .nav-actions{gap:.4rem}
.nav--tight .nav-actions .btn{padding-left:1rem;padding-right:1rem}
.nav--compact .nav-links,.nav.nav--compact .nav-actions .btn{display:none}
.nav--compact .burger{display:inline-flex}
.nav.mobile-open .nav-links{display:flex;position:absolute;left:0;right:0;top:100%;
  flex-direction:column;align-items:stretch;gap:.15rem;background:var(--paper);
  border-bottom:1px solid var(--line);padding:.8rem clamp(20px,5vw,40px) 1.2rem;
  box-shadow:var(--sh)}
.nav.mobile-open .nav-links a{padding:.85rem .6rem;border-radius:12px;font-size:1.05rem;white-space:normal}
.nav.mobile-open .nav-links .btn{display:inline-flex;margin-top:.4rem;font-weight:600;border-radius:var(--r-pill)}
/* Menu-link colours must not override the buttons inside the open menu. */
.nav-links a.btn--rose{color:#fff}
.nav-links a.btn--honey{color:#3a2708}
/* Phones: the name alone; the tagline would push the header to four lines. */
@media (max-width:520px){.brand small{display:none}}
.nav.mobile-open .nav-links .only-mobile{display:block}
.only-mobile{display:none}

/* ------------------------------------------------------------------ hero */
.hero{position:relative;overflow:hidden}
.hero .container{position:relative;z-index:2;display:grid;gap:clamp(2rem,4vw,3.6rem);
  grid-template-columns:1.05fr .95fr;align-items:center;
  padding-block:clamp(48px,7vw,92px)}
.hero-copy{max-width:37rem}
.hero h1{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;letter-spacing:-.035em}
/* The underlined phrase and its full stop never split across lines. */
.keep,.keep .mark{white-space:nowrap}
/* Very small phones: shrink the headline and logo so nothing wraps awkwardly. */
@media (max-width:380px){
  .hero h1{font-size:2.05rem}
  .brand{font-size:.95rem;gap:.45rem}
  .brand img{width:36px;height:36px}
  .nav{gap:.6rem}
}
.hero .lead{margin-top:1.25rem;max-width:34rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.9rem}
.hero-trust{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;margin-top:1.7rem;
  color:var(--muted);font-size:.9rem}
.hero-trust span{display:inline-flex;align-items:center;gap:.4rem}
.hero-trust .ic{width:1.1em;height:1.1em;color:var(--leaf-600)}

/* hero image cluster */
.hero-art{position:relative}
.hero-photo{position:relative;z-index:2;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-lg);border:6px solid var(--card);rotate:1.4deg}
.hero-photo img{width:100%;height:clamp(320px,42vw,500px);object-fit:cover}
.hero-badge{position:absolute;z-index:3;right:-6px;top:-22px;background:var(--honey);
  color:#3a2708;border-radius:var(--r-pill);padding:.7rem 1.05rem;text-align:center;
  box-shadow:var(--sh);rotate:-6deg;line-height:1}
.hero-badge b{font-family:var(--hand);font-size:1.9rem;display:block}
.hero-badge small{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.hero-chip{position:absolute;z-index:3;left:-18px;bottom:26px;background:var(--card);
  border-radius:var(--r);padding:.7rem .95rem;box-shadow:var(--sh);display:flex;
  align-items:center;gap:.6rem;border:1px solid var(--line)}
.hero-chip .dot{width:34px;height:34px;border-radius:10px;background:var(--leaf-tint);
  display:grid;place-items:center;color:var(--leaf-600)}
.hero-chip .dot .ic{width:19px;height:19px}
.hero-chip b{display:block;font-family:var(--display);color:var(--ink);font-size:1.05rem;line-height:1}
.hero-chip span{font-size:.78rem;color:var(--muted)}

/* the hearth glow — the recurring "warm light of home" signature */
.hearth-glow{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hearth-glow::before{content:"";position:absolute;width:60vw;height:60vw;max-width:760px;max-height:760px;
  right:-8%;top:-30%;border-radius:50%;
  background:radial-gradient(circle,rgba(231,159,52,.30),rgba(231,159,52,.08) 45%,transparent 66%);
  filter:blur(4px);animation:breathe 9s var(--ease) infinite alternate}
.hearth-glow::after{content:"";position:absolute;width:40vw;height:40vw;max-width:520px;max-height:520px;
  left:-12%;bottom:-30%;border-radius:50%;
  background:radial-gradient(circle,rgba(92,143,78,.22),transparent 66%)}
@keyframes breathe{to{transform:scale(1.08) translateY(10px)}}
@media (prefers-reduced-motion:reduce){
  .hearth-glow::before{animation:none}
  .mark svg path{animation:none;stroke-dashoffset:0}
}
.hero{background:
  radial-gradient(120% 90% at 90% -10%,var(--honey-tint) 0%,transparent 42%),
  var(--paper)}

@media (max-width:900px){
  .hero .container{grid-template-columns:1fr;padding-block:44px 8px}
  .hero-art{margin-top:.5rem}
  .hero-photo img{height:clamp(300px,70vw,420px)}
}

/* --------------------------------------------------------------- impact  */
.impact{background:var(--ink);color:var(--paper-on-ink);position:relative;overflow:hidden}
.impact .hearth-glow::before{background:radial-gradient(circle,rgba(231,159,52,.22),transparent 62%);right:2%}
.impact .container{position:relative;z-index:2}
.impact .head h2{color:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.4rem}
.stat{padding:1.4rem 1.3rem;border:1px solid var(--ink-line);border-radius:var(--r);
  background:rgba(255,255,255,.03)}
.stat .num{font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,4vw,3.1rem);
  color:var(--honey);letter-spacing:-.03em;line-height:1}
.stat .lab{margin-top:.5rem;color:var(--muted-on-ink);font-size:.95rem}
.stat .ic{width:1.4rem;height:1.4rem;color:var(--leaf);margin-bottom:.7rem;opacity:.9}
@media (max-width:820px){.stat-grid{grid-template-columns:repeat(2,1fr)}}

/* ------------------------------------------------------------- pathways  */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.6rem}
.path{position:relative;display:flex;flex-direction:column;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-lg);padding:1.9rem 1.7rem;
  overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.path:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:transparent}
.path .badge{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin-bottom:1.1rem}
.path .badge .ic{width:28px;height:28px}
.path h3{font-size:1.42rem}
.path p{margin-top:.55rem;color:var(--muted);flex:1}
.path .go{margin-top:1.25rem;display:inline-flex;align-items:center;gap:.45rem;font-weight:600;color:var(--ink)}
.path .go .ic{width:1.05em;height:1.05em;transition:transform .2s var(--ease)}
.path:hover .go .ic{transform:translateX(4px)}
.path::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;transition:height .25s var(--ease)}
.path:hover::after{height:8px}
.path--help .badge{background:var(--leaf-tint);color:var(--leaf-600)}
.path--help::after{background:var(--leaf)}
.path--help .go{color:var(--leaf-600)}
.path--vol .badge{background:#e7eef1;color:var(--ink)}
.path--vol::after{background:var(--ink)}
.path--give .badge{background:var(--honey-tint);color:var(--honey-600)}
.path--give::after{background:var(--honey)}
.path--give .go{color:var(--honey-600)}
@media (max-width:820px){.paths{grid-template-columns:1fr}}

/* --------------------------------------------------------- feature split */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.feature--flip .feature-media{order:2}
.feature-media{position:relative}
.feature-media img{width:100%;border-radius:var(--r-lg);object-fit:cover;box-shadow:var(--sh);
  border:5px solid var(--card)}
.feature-media .tape{position:absolute;top:-14px;left:24px;background:var(--honey-tint);
  color:var(--honey-600);font-family:var(--hand);font-size:1.5rem;padding:.1rem 1rem;
  rotate:-4deg;border-radius:4px;box-shadow:var(--sh-sm)}
.feature-body h2{font-size:clamp(1.8rem,3.2vw,2.7rem);margin-top:.6rem}
.feature-body p+p{margin-top:1rem}
.feature-body .lead{margin-top:1.1rem}
.pillars{display:grid;gap:.9rem;margin-top:1.6rem}
.pillar{display:flex;gap:.9rem;align-items:flex-start}
.pillar .ic{width:1.5rem;height:1.5rem;color:var(--leaf-600);margin-top:.15rem}
.pillar b{color:var(--ink);font-family:var(--display)}
@media (max-width:840px){
  .feature{grid-template-columns:1fr}
  .feature--flip .feature-media{order:0}
}

/* ------------------------------------------------------------- programs  */
.prog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:2.4rem}
.prog{display:flex;gap:1.1rem;padding:1.5rem;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);transition:box-shadow .2s,transform .2s var(--ease)}
.prog:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.prog .badge{flex:none;width:52px;height:52px;border-radius:14px;background:var(--leaf-tint);
  color:var(--leaf-600);display:grid;place-items:center}
.prog .badge .ic{width:26px;height:26px}
.prog h3{font-size:1.22rem}
.prog p{margin-top:.35rem;color:var(--muted);font-size:.97rem}
.prog--alt .badge{background:var(--honey-tint);color:var(--honey-600)}
@media (max-width:720px){.prog-grid{grid-template-columns:1fr}}

/* checklist */
.checks{display:grid;gap:.8rem;margin-top:1.5rem}
.checks li{display:flex;gap:.75rem;align-items:flex-start}
.checks .ic{width:1.4rem;height:1.4rem;color:var(--leaf-600);flex:none;margin-top:.12rem}

/* callout / dignity card */
.callout{border-radius:var(--r-lg);padding:clamp(1.8rem,4vw,2.8rem);background:var(--leaf-tint);
  border:1px solid #d3e3c6;position:relative;overflow:hidden}
.callout.honey{background:var(--honey-tint);border-color:#ecd39c}
.callout .eyebrow{color:var(--leaf-600)}
.callout h2{margin-top:.5rem;font-size:clamp(1.6rem,3vw,2.3rem)}
.callout p{margin-top:.9rem;max-width:62ch}
.callout .quote-lg{font-family:var(--display);font-weight:600;font-size:clamp(1.2rem,2.2vw,1.6rem);
  color:var(--ink);margin-top:1.2rem;line-height:1.3}

/* ----------------------------------------------------------- testimonial */
.quote{max-width:60rem;margin-inline:auto;text-align:center}
.quote .ic{width:3rem;height:3rem;color:var(--honey);margin-inline:auto;opacity:.9}
.quote blockquote{font-family:var(--display);font-weight:600;letter-spacing:-.02em;
  font-size:clamp(1.5rem,3.3vw,2.35rem);line-height:1.28;color:var(--ink);margin:1.1rem 0 0}
.quote cite{display:block;margin-top:1.3rem;font-style:normal;color:var(--muted);font-weight:600}

/* --------------------------------------------------------------- partners*/
.partners{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:var(--r-pill);
  background:var(--card);border:1px solid var(--line);font-weight:600;font-size:.92rem;color:var(--ink)}
.chip .ic{width:1.05em;height:1.05em;color:var(--leaf-600)}

/* --------------------------------------------------------------- CTA band*/
.cta{position:relative;overflow:hidden;background:var(--ink);color:var(--paper-on-ink);
  border-radius:clamp(20px,4vw,34px);padding:clamp(2.4rem,6vw,4.4rem);text-align:center}
.cta .container{position:relative;z-index:2;padding-inline:0}
.cta h2{color:#fff;font-size:clamp(2rem,4.4vw,3.2rem);max-width:20ch;margin-inline:auto}
.cta .lead{color:var(--muted-on-ink);margin:1.1rem auto 0;max-width:52ch}
.cta-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:2rem}
.cta-wrap{padding-inline:clamp(20px,5vw,40px)}

/* ---------------------------------------------------------------- footer */
.site-footer{background:var(--ink);color:var(--muted-on-ink);padding-block:clamp(48px,6vw,72px) 2rem}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2rem}
.foot-brand{display:flex;align-items:center;gap:.6rem;color:#fff;font-family:var(--display);
  font-weight:700;font-size:1.1rem}
.foot-brand img{width:44px;height:44px;border-radius:10px;background:var(--card);padding:3px;object-fit:contain}
.site-footer p{margin-top:1rem;max-width:34ch;color:var(--muted-on-ink);font-size:.95rem}
.foot-col h4{color:#fff;font-family:var(--display);font-size:1rem;margin-bottom:.9rem;letter-spacing:-.01em}
.foot-col a,.foot-col li{display:block;padding:.28rem 0;color:var(--muted-on-ink);font-size:.95rem}
.foot-col a:hover{color:var(--honey)}
.foot-contact li{display:flex;gap:.6rem;align-items:flex-start;padding:.35rem 0}
.foot-contact .ic{width:1.15rem;height:1.15rem;color:var(--honey);flex:none;margin-top:.18rem}
.foot-social{display:flex;gap:.6rem;margin-top:1.2rem}
.foot-social a{width:42px;height:42px;border-radius:12px;border:1px solid var(--ink-line);
  display:grid;place-items:center;color:var(--paper-on-ink);transition:background .2s,color .2s,transform .2s}
.foot-social a:hover{background:var(--honey);color:#3a2708;transform:translateY(-2px)}
.foot-social .ic{width:20px;height:20px}
.foot-bottom{margin-top:2.4rem;padding-top:1.5rem;border-top:1px solid var(--ink-line);
  display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;justify-content:space-between;
  font-size:.85rem;color:var(--muted-on-ink)}
.foot-bottom a{color:var(--muted-on-ink)}
.foot-bottom a:hover{color:var(--honey)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* --------------------------------------------------------- interior hero */
.phero{position:relative;overflow:hidden;background:
  radial-gradient(120% 100% at 88% -20%,var(--honey-tint) 0,transparent 46%),var(--paper);
  border-bottom:1px solid var(--line)}
.phero .container{position:relative;z-index:2;padding-block:clamp(52px,7vw,88px)}
.phero h1{font-size:clamp(2.3rem,5.2vw,3.9rem);font-weight:800;max-width:18ch}
.phero .lead{margin-top:1.1rem;max-width:52ch}
.crumb{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.88rem;margin-bottom:1rem}
.crumb a:hover{color:var(--ink)}
.crumb .ic{width:1em;height:1em}

/* -------------------------------------------------------------- fr notice */
.fr-note{display:none;gap:.7rem;align-items:flex-start;background:var(--honey-tint);
  border:1px solid #ecd39c;border-radius:var(--r);padding:1rem 1.15rem;margin-bottom:2rem;
  color:#5a3f12;font-size:.95rem}
.fr-note .ic{width:1.3rem;height:1.3rem;color:var(--honey-600);flex:none;margin-top:.1rem}
html[lang="fr"] .fr-note{display:flex}

/* ---------------------------------------------------------------- gallery*/
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-top:2.2rem}
.gallery figure{margin:0;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm);
  border:4px solid var(--card);aspect-ratio:1;background:var(--paper-2)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.gallery figure:hover img{transform:scale(1.06)}
.gallery figure:nth-child(3n){aspect-ratio:auto}
@media (max-width:820px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* ------------------------------------------------------------------ FAQ  */
.faq{max-width:52rem;margin-top:2rem}
.faq details{border:1px solid var(--line);border-radius:var(--r);background:var(--card);
  margin-bottom:.8rem;overflow:hidden;transition:box-shadow .2s}
.faq details[open]{box-shadow:var(--sh-sm)}
.faq summary{list-style:none;cursor:pointer;padding:1.15rem 1.3rem;font-family:var(--display);
  font-weight:600;color:var(--ink);display:flex;justify-content:space-between;gap:1rem;align-items:center;
  font-size:1.08rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{width:1.3rem;height:1.3rem;color:var(--honey-600);transition:transform .25s var(--ease);flex:none}
.faq details[open] summary .ic{transform:rotate(45deg)}
.faq .a{padding:0 1.3rem 1.25rem;color:var(--muted)}

/* --------------------------------------------------------- info / contact*/
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.4rem);align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.info-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.2rem)}
.info-list li{display:flex;gap:.9rem;align-items:flex-start;padding:.7rem 0;border-bottom:1px dashed var(--line)}
.info-list li:last-child{border-bottom:0}
.info-list .ic{width:1.35rem;height:1.35rem;color:var(--leaf-600);flex:none;margin-top:.15rem}
.info-list b{display:block;color:var(--ink);font-family:var(--display)}
.info-list span{color:var(--muted);font-size:.95rem}
.info-list a:hover{color:var(--leaf-600)}
.hours{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem;margin-top:.6rem}
.hours dt{font-weight:600;color:var(--ink)}
.hours dd{margin:0;color:var(--muted);text-align:right}

/* forms */
.field{margin-bottom:1.1rem}
.field label{display:block;font-weight:600;color:var(--ink);margin-bottom:.4rem;font-size:.95rem}
.field input,.field textarea,.field select{width:100%;padding:.8rem .95rem;border:1.5px solid var(--line-2);
  border-radius:12px;background:#fffdf8;font:inherit;color:var(--espresso);transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--leaf);
  box-shadow:0 0 0 3px var(--leaf-tint)}
.field textarea{min-height:130px;resize:vertical}
.field .hint{font-size:.83rem;color:var(--muted);margin-top:.35rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media (max-width:520px){.two{grid-template-columns:1fr}}
.form-note{font-size:.85rem;color:var(--muted);margin-top:.4rem}

/* map */
.map{border-radius:var(--r-lg);overflow:hidden;border:5px solid var(--card);box-shadow:var(--sh);min-height:340px}
.map iframe{display:block;width:100%;height:100%;min-height:340px;border:0;filter:saturate(.9)}

/* ways-to-give cards */
.give-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;margin-top:2.4rem}
@media (max-width:760px){.give-grid{grid-template-columns:1fr}}
.give{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(1.6rem,3vw,2rem);position:relative;overflow:hidden}
.give .badge{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;margin-bottom:1rem;
  background:var(--honey-tint);color:var(--honey-600)}
.give .badge .ic{width:27px;height:27px}
.give--food .badge{background:var(--leaf-tint);color:var(--leaf-600)}
.give h3{font-size:1.4rem}
.give p{margin-top:.5rem;color:var(--muted)}
.give .detail{margin-top:1.1rem;padding:1rem 1.1rem;background:var(--paper);border-radius:12px;
  border:1px dashed var(--line-2)}
.give .detail b{color:var(--ink)}
.give .detail code{font-family:var(--body);background:var(--honey-tint);color:#5a3f12;
  padding:.15rem .5rem;border-radius:6px;font-weight:600;word-break:break-all}

/* impact-tiers */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.8rem}
@media (max-width:760px){.tiers{grid-template-columns:1fr}}
.tier{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;
  text-align:center;transition:transform .2s var(--ease),box-shadow .2s}
.tier:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.tier .amt{font-family:var(--display);font-weight:800;font-size:2rem;color:var(--honey-600)}
.tier p{margin-top:.4rem;color:var(--muted);font-size:.95rem}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero-photo,.hero-badge,.hero-chip{rotate:none !important}
  .btn:hover,.path:hover,.prog:hover,.tier:hover,.foot-social a:hover{transform:none}
}

/* numbered steps (a real sequence — order matters) */
.steps{counter-reset:step;display:grid;gap:1rem;margin-top:1.9rem;max-width:46rem}
.steps li{counter-increment:step;display:flex;gap:1.1rem;align-items:flex-start;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);padding:1.15rem 1.35rem}
.steps li::before{content:counter(step);flex:none;width:2.2rem;height:2.2rem;border-radius:50%;
  background:var(--honey);color:#3a2708;font-family:var(--display);font-weight:800;font-size:1.1rem;
  display:grid;place-items:center}
.steps b{font-family:var(--display);color:var(--ink);display:block;font-size:1.08rem}
.steps span{color:var(--muted);font-size:.96rem}

/* two-column prose */
.cols2{columns:2;column-gap:2.4rem;margin-top:1.4rem}
.cols2 p{break-inside:avoid;margin-bottom:1rem}
@media (max-width:720px){.cols2{columns:1}}

/* small helpers */
.mt-0{margin-top:0}
.tag{display:inline-block;background:var(--rose);color:#fff;font-size:.72rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:.25rem .6rem;border-radius:var(--r-pill)}
.divider-draw{display:block;width:100%;height:24px;color:var(--line-2);margin:0 auto}

/* ------------------------------------------------------ narrow screens */
/* Grid items default to min-width:auto, so one long word (an email address,
   a long French compound) can force a column wider than the screen. */
.stat-grid > *,.paths > *,.feature > *,.pillars > *,.prog-grid > *,.checks > *,.foot-grid > *,.gallery > *,.split > *,.hours > *,.two > *,.give-grid > *,.tiers > *{min-width:0}
a[href^="mailto:"],code{overflow-wrap:anywhere}
/* Buttons never exceed the screen: on very small phones a long label wraps. */
.btn{max-width:100%}
/* Numbered lists keep the browser default indent otherwise, which wastes a
   sixth of a phone screen. */
@media (max-width:520px){ol.steps{padding-left:0}}
@media (max-width:400px){
  .stat-grid{grid-template-columns:1fr}
  /* Keep full width and drop to the next line; wrap text only if a single
     label is wider than the screen. */
  .btn:not(.nav-actions .btn){white-space:normal;text-align:center;flex-shrink:0}
  .btn--lg{width:100%;font-size:.95rem;padding-left:.9rem;padding-right:.9rem;gap:.45rem}
}
