/* ============================================================
   THETFORD CENTER COMMUNITY TRUST — shared stylesheet
   Aesthetic: warm editorial / New England village heritage.
   ============================================================ */

:root{
  --paper:        #f1e9d6;
  --paper-deep:   #e9dec1;
  --card:         #fbf7ec;
  --ink:          #241e14;
  --ink-2:        #5b5240;
  --line:         #ddceaa;
  --forest:       #3f6b39;
  --forest-deep:  #1f3a23;
  --moss:         #6e9450;
  --gold:         #d99f3a;
  --gold-deep:    #b07d1d;
  --rust:         #a3472a;
  --river:        #437c9d;
  --ease: cubic-bezier(.22,.68,.18,1);
  --container: 1180px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:'Hanken Grotesk',sans-serif;
  background:var(--paper);color:var(--ink);
  font-size:1.0625rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;}
section{scroll-margin-top:104px;}

/* paper grain ------------------------------------------------ */
.grain{
  position:fixed;inset:0;z-index:9000;pointer-events:none;
  opacity:.45;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.12'/%3E%3C/svg%3E");
}

/* typography helpers ----------------------------------------- */
.container{max-width:var(--container);margin:0 auto;padding:0 clamp(20px,5vw,52px);}

.eyebrow{
  display:inline-flex;align-items:center;gap:.65rem;
  font-size:.74rem;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--moss);
}
.eyebrow::before{content:"";width:30px;height:1.6px;background:currentColor;}
.eyebrow--center{justify-content:center;}

.section-head{max-width:680px;margin-bottom:clamp(2.6rem,5vw,4rem);}
.section-head.center{margin-inline:auto;text-align:center;}
.section-head.center .eyebrow{justify-content:center;}
.section-head h2{
  font-family:'Fraunces',serif;font-optical-sizing:auto;font-weight:500;
  font-size:clamp(2rem,4.4vw,3.25rem);line-height:1.06;
  letter-spacing:-.018em;margin-top:1.1rem;
}
.section-head h2 em{font-style:italic;color:var(--forest);}
@media (min-width:768px){.section-head h2.nowrap-lg{white-space:nowrap;}}
.section-head p{color:var(--ink-2);margin-top:1.1rem;font-size:1.08rem;max-width:52ch;}
.section-head.center p{margin-inline:auto;}

/* long-form prose -------------------------------------------- */
.prose p{color:var(--ink-2);margin-bottom:1.15rem;}
.prose p:last-child{margin-bottom:0;}
.prose strong{color:var(--ink);font-weight:600;}

/* buttons ----------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:.96rem;
  padding:.92rem 1.6rem;border-radius:999px;border:1.6px solid transparent;
  cursor:pointer;text-decoration:none;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),
             background .25s var(--ease),color .25s var(--ease),
             border-color .25s var(--ease);
}
.btn svg{transition:transform .35s var(--ease);}
.btn:hover{transform:translateY(-2px);}
.btn:hover svg{transform:translateX(3px);}
.btn--primary{background:var(--forest);color:#f6f1e2;box-shadow:0 10px 24px -12px rgba(31,58,35,.7);}
.btn--primary:hover{background:#34602f;box-shadow:0 16px 30px -12px rgba(31,58,35,.8);}
.btn--gold{background:var(--gold);color:#3a2a08;box-shadow:0 10px 22px -12px rgba(176,125,29,.85);}
.btn--gold:hover{background:#e6ad48;box-shadow:0 16px 28px -12px rgba(176,125,29,.9);}
.btn--ghost{background:transparent;border-color:rgba(36,30,20,.28);color:var(--ink);}
.btn--ghost:hover{border-color:var(--ink);background:rgba(36,30,20,.04);}
.btn--lg{padding:1.05rem 2rem;font-size:1.02rem;}
.arrow{width:14px;height:14px;}

.tlink{
  display:inline-flex;align-items:center;gap:.4rem;
  font-weight:600;text-decoration:none;color:var(--forest);
  border-bottom:1.6px solid transparent;padding-bottom:1px;
  transition:border-color .3s var(--ease);
}
.tlink svg{transition:transform .3s var(--ease);}
.tlink:hover{border-color:var(--moss);}
.tlink:hover svg{transform:translateX(4px);}

/* ============================================================
   ANNOUNCEMENT
   ============================================================ */
.announce{
  background:var(--forest-deep);color:#e7e3cf;
  font-size:.83rem;text-align:center;padding:.6rem 1rem;
}
.announce a{color:var(--gold);text-decoration:none;font-weight:600;
  border-bottom:1px solid rgba(217,159,58,.4);}
.announce a:hover{border-color:var(--gold);}
.announce .dot{opacity:.4;margin:0 .55rem;}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:8000;
  background:rgba(241,233,214,.82);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.site-header.scrolled{border-color:var(--line);
  box-shadow:0 6px 24px -18px rgba(36,30,20,.6);}
.nav{display:flex;align-items:center;justify-content:space-between;height:80px;}
.brand{display:flex;align-items:center;flex-shrink:0;}
.brand img{height:56px;width:auto;}
.brand:focus-visible{outline:2px solid var(--forest);outline-offset:4px;}
.nav-menu{display:flex;align-items:center;gap:2rem;}
.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none;}
.nav-links a{
  text-decoration:none;font-weight:500;font-size:.97rem;color:var(--ink);
  position:relative;padding:.2rem 0;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1.6px;
  background:var(--moss);transform:scaleX(0);transform-origin:right;
  transition:transform .32s var(--ease);
}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left;}
.nav-links a[aria-current="page"]{color:var(--forest);font-weight:600;}
.nav-links a[aria-current="page"]::after{transform:scaleX(1);}
.nav-toggle{
  display:none;background:none;border:1.6px solid var(--line);
  border-radius:10px;width:46px;height:42px;cursor:pointer;
  flex-direction:column;gap:5px;align-items:center;justify-content:center;
}
.nav-toggle span{width:20px;height:2px;background:var(--ink);border-radius:2px;
  transition:transform .3s var(--ease),opacity .3s var(--ease);}

/* ============================================================
   HERO  +  BEFORE / AFTER SLIDER
   ============================================================ */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(58% 56% at 86% 32%, rgba(217,159,58,.30), transparent 72%),
    linear-gradient(180deg,#f6e7c4 0%,#f1e9d6 72%);
  padding:clamp(2.4rem,5vw,3.6rem) 0 clamp(2.4rem,4.5vw,4rem);
}
.hero-grid{
  display:grid;grid-template-columns:0.95fr 1.3fr;
  gap:clamp(2rem,5vw,4.4rem);align-items:center;
}
.hero-copy{position:relative;z-index:2;}
.hero-tag{
  display:flex;align-items:center;gap:.6rem;
  font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--rust);margin-bottom:1.5rem;
}
.hero-tag .rule{width:34px;height:1.6px;background:currentColor;opacity:.55;}
.hero h1{
  font-family:'Fraunces',serif;font-optical-sizing:auto;
  font-weight:450;letter-spacing:-.02em;line-height:1.04;
  font-size:clamp(2.4rem,4.7vw,4.15rem);
}
.hero h1 em{font-style:italic;color:var(--rust);}
.hero-sub{
  margin-top:1.5rem;max-width:46ch;
  font-size:clamp(1.02rem,1.3vw,1.16rem);color:var(--ink-2);line-height:1.6;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.9rem;}
.hero-meta{
  margin-top:1.7rem;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;
  font-size:.84rem;color:var(--ink-2);
}
.hero-meta .pip{width:7px;height:7px;border-radius:50%;background:var(--moss);}
.hero-meta .sep{opacity:.4;}

.hero-figure{position:relative;z-index:1;margin:0;}
.ba{
  --pos:50%;
  position:relative;width:100%;aspect-ratio:3/2;
  border-radius:18px;overflow:hidden;background:#cdbf9f;
  border:1px solid var(--line);
  box-shadow:0 44px 74px -46px rgba(36,30,20,.75);
  user-select:none;touch-action:pan-y;
}
.ba-img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;}
.ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0);}
.ba-divider{
  position:absolute;top:0;bottom:0;left:var(--pos);width:3px;
  background:#fbf7ec;transform:translateX(-50%);
  box-shadow:0 0 14px rgba(0,0,0,.4);pointer-events:none;z-index:3;
}
.ba-handle{
  position:absolute;top:50%;left:var(--pos);
  width:52px;height:52px;border-radius:50%;
  transform:translate(-50%,-50%);
  background:#fbf7ec;display:grid;place-items:center;color:var(--ink);
  box-shadow:0 6px 20px -4px rgba(0,0,0,.55);
  pointer-events:none;z-index:4;
}
.ba-range{
  position:absolute;inset:0;width:100%;height:100%;margin:0;
  -webkit-appearance:none;appearance:none;background:none;
  opacity:0;cursor:ew-resize;z-index:5;
}
.ba-range::-webkit-slider-thumb{-webkit-appearance:none;width:60px;height:100%;}
.ba-range::-moz-range-thumb{width:60px;height:100%;border:none;}
.ba-range:focus-visible{outline:none;}
.ba-range:focus-visible ~ .ba-handle{outline:3px solid var(--gold);outline-offset:3px;}
.ba-label{
  position:absolute;bottom:14px;z-index:3;pointer-events:none;
  font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  padding:.4rem .72rem;border-radius:999px;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  transition:opacity .2s ease;
}
.ba-label.before{left:14px;background:rgba(36,30,20,.74);color:#f1e9d6;}
.ba-label.after{right:14px;background:rgba(217,159,58,.94);color:#3a2a08;}
.ba-caption{
  margin-top:1rem;display:flex;align-items:center;justify-content:center;
  gap:.5rem;font-size:.87rem;color:var(--ink-2);text-align:center;
}
.ba-caption svg{flex-shrink:0;color:var(--rust);}

/* ============================================================
   PAGE HERO (sub-pages)
   ============================================================ */
.page-hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(58% 70% at 88% 18%, rgba(217,159,58,.28), transparent 72%),
    linear-gradient(180deg,#f6e7c4 0%,var(--paper) 82%);
  padding:clamp(2.6rem,6vw,4.8rem) 0 clamp(2.6rem,6vw,4.4rem);
  border-bottom:1px solid var(--line);
}
.crumbs{display:flex;gap:.5rem;align-items:center;font-size:.82rem;
  color:var(--ink-2);margin-bottom:1.4rem;}
.crumbs a{text-decoration:none;color:var(--ink-2);
  transition:color .25s var(--ease);}
.crumbs a:hover{color:var(--forest);}
.crumbs .div{opacity:.45;}
.crumbs .here{color:var(--ink);font-weight:600;}
.page-hero h1{
  font-family:'Fraunces',serif;font-optical-sizing:auto;font-weight:450;
  font-size:clamp(2.4rem,5.4vw,4rem);line-height:1.05;letter-spacing:-.02em;
  max-width:20ch;
}
.page-hero h1 em{font-style:italic;color:var(--rust);}
.page-hero p{margin-top:1.2rem;max-width:56ch;color:var(--ink-2);
  font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.6;}
.page-hero p a{color:var(--gold-deep);text-decoration:underline;
  text-underline-offset:2px;font-weight:600;}
.ph-split{
  display:grid;grid-template-columns:1.08fr .92fr;
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
.ph-art{margin:0;}
.ph-art img{
  width:100%;height:auto;display:block;border-radius:18px;
  border:1px solid var(--line);
  box-shadow:0 40px 70px -46px rgba(36,30,20,.7);
}
.ph-art figcaption{margin-top:.85rem;font-size:.84rem;color:var(--ink-2);
  font-style:italic;text-align:center;}

/* ============================================================
   MISSION
   ============================================================ */
.mission{position:relative;padding:clamp(2.4rem,5.5vw,4rem) 0 clamp(3.2rem,6.5vw,5rem);overflow:hidden;}
.mission .contour{
  position:absolute;right:-6%;top:-14%;width:min(560px,52vw);
  color:var(--moss);opacity:.15;pointer-events:none;
}
.mission-statement{position:relative;max-width:40ch;margin:0 auto;text-align:center;}
.mission-statement .eyebrow{margin-bottom:1.6rem;}
.mission-statement p{
  font-family:'Fraunces',serif;font-optical-sizing:auto;font-weight:400;
  font-size:clamp(1.65rem,3.9vw,2.95rem);line-height:1.17;letter-spacing:-.015em;
}
.mission-statement em{font-style:italic;color:var(--forest);}
.mission-statement .b-rust{color:var(--rust);font-style:italic;}
.mission-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;
  margin-top:2.4rem;}
.mission-foot span{display:inline-flex;align-items:center;gap:.5rem;
  font-size:.9rem;font-weight:600;color:var(--ink-2);}
.mission-foot span::before{content:"";width:7px;height:7px;border-radius:2px;
  background:var(--moss);transform:rotate(45deg);}

/* two-column mission section */
.mission-grid{
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,5vw,4.4rem);
  max-width:1100px;margin:0 auto;
  align-items:center;
}
.mission-copy .eyebrow{margin-bottom:1.4rem;}
.mission-copy p{
  color:var(--ink-2);
  font-size:clamp(1rem,1.15vw,1.12rem);
  line-height:1.65;max-width:52ch;
}
.mission-copy p + p{margin-top:1.1rem;}
.mission-copy p strong{color:var(--ink);font-weight:600;}
.mission-link{margin-top:1.7rem;display:inline-flex;}
.mission-art{display:flex;align-items:center;justify-content:center;}
.mission-art-frame{
  background:var(--card);border:1px solid var(--line);
  border-radius:22px;
  padding:clamp(1.8rem,4vw,3rem);
  box-shadow:0 32px 56px -36px rgba(36,30,20,.55);
  width:100%;max-width:408px;
}
.mission-art-frame img{width:100%;height:auto;display:block;}

/* side-by-side call-to-action links */
.cta-pair{
  display:flex;justify-content:center;gap:clamp(1.4rem,3vw,2.6rem);
  flex-wrap:wrap;margin-top:clamp(2rem,4vw,3rem);
}

/* ============================================================
   GENERIC SECTION
   ============================================================ */
.band{padding:clamp(3.2rem,6.5vw,5.4rem) 0;}
.band--deep{background:var(--paper-deep);border-top:1px solid var(--line);}

/* ============================================================
   SPLIT (image + copy)
   ============================================================ */
.why-grid{
  display:grid;grid-template-columns:1.04fr .96fr;
  gap:clamp(2rem,5vw,4.2rem);align-items:center;
}
.why-grid.flip .why-figure{order:-1;}
.why-points{display:flex;flex-direction:column;gap:1.5rem;margin-top:2rem;}
.why-point{display:flex;gap:1.1rem;}
.why-point .ic{
  width:48px;height:48px;border-radius:12px;flex-shrink:0;display:grid;
  place-items:center;background:rgba(110,148,80,.16);color:var(--forest);
}
.why-point h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.22rem;
  letter-spacing:-.008em;}
.why-point p{color:var(--ink-2);font-size:.99rem;margin-top:.25rem;}
.why-figure{margin:0;position:relative;}
.why-figure .ph{
  border-radius:18px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 34px 60px -42px rgba(36,30,20,.62);
}
.why-figure img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.why-figure-extra{
  position:absolute;bottom:-1.4rem;right:-1.2rem;
  width:40%;max-width:220px;z-index:3;
  border-radius:12px;overflow:hidden;
  background:var(--card);
  border:4px solid var(--card);outline:1px solid var(--line);
  box-shadow:0 22px 44px -18px rgba(36,30,20,.75);
}
.why-figure .why-figure-extra img{
  display:block;width:100%;
  aspect-ratio:16/9 !important;object-fit:cover;
}
.why-figure figcaption{margin-top:.9rem;font-size:.85rem;color:var(--ink-2);
  font-style:italic;text-align:center;}

/* feature card grid ------------------------------------------ */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(1rem,2vw,1.5rem);}
.fcard{
  background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:clamp(1.6rem,2.6vw,2.2rem);
  display:flex;flex-direction:column;gap:.85rem;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),
             border-color .4s var(--ease);
}
.fcard:hover{transform:translateY(-5px);border-color:var(--moss);
  box-shadow:0 26px 44px -30px rgba(36,30,20,.55);}
.fcard .ic{
  width:54px;height:54px;border-radius:13px;display:grid;place-items:center;
  background:rgba(110,148,80,.14);color:var(--forest);
  transition:background .35s var(--ease),color .35s var(--ease);
}
.fcard:hover .ic{background:var(--forest);color:#f3ead2;}
.fcard h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.34rem;
  letter-spacing:-.01em;}
.fcard p{color:var(--ink-2);font-size:1rem;}

/* ============================================================
   GALLERY + TIMELINE
   ============================================================ */
.gallery{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(1.1rem,2.6vw,2rem);
}
.gallery figure{margin:0;}
.gallery .ph{
  border-radius:14px;overflow:hidden;
  border:6px solid var(--card);outline:1px solid var(--line);
  box-shadow:0 24px 44px -30px rgba(36,30,20,.6);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.gallery figure:nth-child(3n+1) .ph{transform:rotate(-1.8deg);}
.gallery figure:nth-child(3n) .ph{transform:rotate(1.6deg);}
.gallery figure:hover .ph{transform:rotate(0) scale(1.02);
  box-shadow:0 30px 50px -28px rgba(36,30,20,.66);}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.gallery figcaption{margin-top:.95rem;font-size:.86rem;color:var(--ink-2);
  font-style:italic;text-align:center;}
.gallery--two{grid-template-columns:1fr 1fr;}

/* staggered photo stack (uncropped — home history) */
.photo-stack{
  max-width:780px;margin:0 auto;
  display:flex;flex-direction:column;align-items:flex-start;
}
.photo-stack figure{margin:0;width:66%;position:relative;}
.photo-stack figure:nth-child(2){align-self:flex-end;margin-top:-2rem;}
.photo-stack figure:nth-child(3){margin-top:-2rem;}
.photo-stack .ph{
  border-radius:14px;overflow:hidden;
  border:8px solid var(--card);outline:1px solid var(--line);
  box-shadow:0 30px 52px -30px rgba(36,30,20,.62);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.photo-stack figure:nth-child(1) .ph{transform:rotate(-2.3deg);}
.photo-stack figure:nth-child(2) .ph{transform:rotate(2deg);}
.photo-stack figure:nth-child(3) .ph{transform:rotate(-1.4deg);}
.photo-stack figure:hover{z-index:3;}
.photo-stack figure:hover .ph{transform:rotate(0) scale(1.02);
  box-shadow:0 36px 58px -28px rgba(36,30,20,.68);}
.photo-stack img{width:100%;height:auto;display:block;}

/* uncropped masonry gallery */
.gallery-masonry{
  column-count:3;
  column-gap:clamp(1rem,2.2vw,1.7rem);
}
.gallery-masonry figure{
  margin:0 0 clamp(1rem,2.2vw,1.7rem);
  -webkit-column-break-inside:avoid;
  break-inside:avoid;
}
.gallery-masonry .ph{
  border-radius:14px;overflow:hidden;
  border:7px solid var(--card);outline:1px solid var(--line);
  box-shadow:0 22px 40px -30px rgba(36,30,20,.55);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.gallery-masonry figure:hover .ph{transform:scale(1.02);
  box-shadow:0 30px 52px -26px rgba(36,30,20,.62);}
.gallery-masonry img{width:100%;height:auto;display:block;}

.timeline{position:relative;max-width:720px;margin:0 auto;}
.timeline::before{content:"";position:absolute;left:10px;top:8px;bottom:8px;
  width:2px;background:var(--line);}
.tl-item{position:relative;padding-left:54px;padding-bottom:2.5rem;}
.tl-item:last-child{padding-bottom:0;}
.tl-dot{position:absolute;left:1px;top:3px;width:20px;height:20px;
  border-radius:50%;background:var(--card);border:3px solid var(--moss);}
.tl-item.goal .tl-dot{border-color:var(--gold);background:var(--gold);
  box-shadow:0 0 0 6px rgba(217,159,58,.18);}
.tl-year{font-family:'Fraunces',serif;font-style:italic;font-weight:600;
  color:var(--rust);font-size:1rem;}
.tl-item.goal .tl-year{color:var(--gold-deep);}
.tl-item h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.4rem;
  margin-top:.15rem;letter-spacing:-.01em;}
.tl-item p{color:var(--ink-2);margin-top:.35rem;}

/* ============================================================
   STEPS
   ============================================================ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(.9rem,1.8vw,1.3rem);}
.step{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:1.7rem 1.5rem;display:flex;flex-direction:column;gap:.7rem;
}
.step-n{font-family:'Fraunces',serif;font-weight:500;font-size:2.3rem;
  line-height:1;color:var(--line);}
.step h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.22rem;
  letter-spacing:-.008em;}
.step p{color:var(--ink-2);font-size:.96rem;flex-grow:1;}
.step-tag{
  align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:.3rem .65rem;border-radius:999px;
}
.step-tag.done{background:rgba(63,107,57,.16);color:var(--forest);}
.step-tag.now{background:rgba(217,159,58,.22);color:var(--gold-deep);}
.step-tag.next{background:rgba(36,30,20,.08);color:var(--ink-2);}
.step.is-done{border-color:var(--moss);}
.step.is-done .step-n{color:var(--moss);}

.towns{
  margin-top:clamp(2rem,4vw,3rem);
  background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:clamp(1.6rem,3vw,2.3rem);
  display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;
}
.towns .ic{flex-shrink:0;width:52px;height:52px;border-radius:50%;
  background:rgba(67,124,157,.14);color:var(--river);display:grid;place-items:center;}
.towns-body{flex:1;min-width:260px;}
.towns-body strong{font-family:'Fraunces',serif;font-weight:600;font-size:1.12rem;}
.towns-body p{color:var(--ink-2);font-size:.98rem;margin-top:.2rem;}
.towns-list{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem;}
.towns-list span,.towns-list a{
  font-size:.82rem;font-weight:600;padding:.28rem .7rem;border-radius:999px;
  background:var(--paper-deep);border:1px solid var(--line);color:var(--ink-2);
}
.towns-list a{text-decoration:none;transition:background .2s var(--ease),
  border-color .2s var(--ease),color .2s var(--ease);}
.towns-list a:hover{background:var(--gold);border-color:var(--gold-deep);
  color:#3a2a08;}

/* ============================================================
   OPERATOR
   ============================================================ */
.operator{
  margin-top:clamp(2rem,4vw,3rem);
  background:var(--forest-deep);color:#ece7d3;border-radius:20px;
  padding:clamp(2rem,4vw,3.2rem);
  display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,3vw,2.6rem);
  align-items:center;
}
.operator .portrait{
  width:128px;height:128px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(150deg,var(--gold),#c98427);
  display:grid;place-items:center;
  font-family:'Fraunces',serif;font-weight:500;font-size:2.6rem;color:#fff;
}
.operator .eyebrow{color:var(--gold);}
.operator blockquote{
  font-family:'Fraunces',serif;font-style:italic;font-weight:400;
  font-size:clamp(1.3rem,2.4vw,1.85rem);line-height:1.32;margin-top:.9rem;
}
.operator .who{margin-top:1.1rem;font-size:.95rem;color:#c8c8b0;}
.operator .who b{color:#fff;font-weight:600;}

/* ============================================================
   PROGRESS  (deep green)
   ============================================================ */
.progress{
  background:var(--forest-deep);color:#ece7d3;
  padding:clamp(3rem,6.5vw,4.8rem) 0;position:relative;overflow:hidden;
}
.progress::before{
  content:"";position:absolute;left:50%;top:-30%;width:120%;height:80%;
  transform:translateX(-50%);
  background:radial-gradient(50% 100% at 50% 0%,rgba(217,159,58,.2),transparent 70%);
}
.progress .container{position:relative;}
.progress-head{text-align:center;max-width:620px;margin:0 auto 2.6rem;}
.progress .eyebrow{color:var(--gold);}
.progress-head h2{font-family:'Fraunces',serif;font-weight:500;
  font-size:clamp(1.8rem,3.6vw,2.7rem);margin-top:1rem;letter-spacing:-.015em;
  line-height:1.1;}
.progress-head h2 em{font-style:italic;color:var(--gold);}
.progress-wrap{max-width:780px;margin:0 auto;}
.progress-track{
  height:24px;border-radius:999px;background:rgba(255,255,255,.1);
  overflow:hidden;border:1px solid rgba(255,255,255,.12);
}
.progress-fill{
  height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,#e3a93f,#f0c977);
  transition:width 1.9s var(--ease);
}
.progress-scale{display:flex;justify-content:space-between;
  font-size:.8rem;color:#9d9c84;margin-top:.5rem;}
.progress-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;
  margin-top:2.4rem;text-align:center;
}
.pstat .n{font-family:'Fraunces',serif;font-weight:500;
  font-size:clamp(1.9rem,4vw,3rem);line-height:1;color:var(--gold);}
.pstat .l{font-size:.86rem;color:#c8c8b0;margin-top:.5rem;}
.pstat + .pstat{border-left:1px solid rgba(236,231,211,.14);}
.progress-foot{text-align:center;margin-top:2.6rem;
  display:flex;flex-direction:column;align-items:center;gap:1.1rem;}
.progress-foot .note{font-size:.95rem;color:#c8c8b0;}
.progress-foot .note b{color:#fff;}

/* ============================================================
   BOARD
   ============================================================ */
.board-grid{display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(1rem,2vw,1.5rem);}
.board-card{
  background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:clamp(1.6rem,2.6vw,2.1rem);display:flex;gap:1.3rem;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.board-card:hover{transform:translateY(-4px);
  box-shadow:0 24px 42px -30px rgba(36,30,20,.5);}
.mono{
  width:66px;height:66px;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;
  font-family:'Fraunces',serif;font-weight:500;font-size:1.45rem;color:#fff;
}
.board-card h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.32rem;
  letter-spacing:-.01em;}
.board-card .role{
  font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--moss);margin-top:.15rem;}
.board-card .bio{font-size:.95rem;color:var(--ink-2);margin-top:.6rem;}

/* ============================================================
   NEWS
   ============================================================ */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(1rem,2vw,1.5rem);}
.news-card{
  background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:clamp(1.6rem,2.6vw,2.1rem);
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),
             border-color .4s var(--ease);
}
.news-card:hover{transform:translateY(-5px);border-color:var(--moss);
  box-shadow:0 26px 44px -30px rgba(36,30,20,.55);}
.news-meta{
  font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rust);display:flex;align-items:center;gap:.5rem;
}
.news-meta .sep{width:4px;height:4px;border-radius:50%;background:currentColor;
  opacity:.5;}
.news-card h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.32rem;
  line-height:1.22;margin-top:.9rem;letter-spacing:-.01em;flex-grow:1;}
.news-card .read{margin-top:1.3rem;display:inline-flex;align-items:center;
  gap:.4rem;font-weight:600;font-size:.92rem;color:var(--forest);}
.news-card .read svg{transition:transform .3s var(--ease);}
.news-card:hover .read svg{transform:translateX(4px);}

/* ============================================================
   DONATE BAND
   ============================================================ */
.donate{
  background:
    radial-gradient(70% 120% at 82% 0%,rgba(217,159,58,.32),transparent 60%),
    linear-gradient(160deg,#a3472a 0%,#86361d 70%,#732d18 100%);
  color:#f6ead2;padding:clamp(3.2rem,6.5vw,5rem) 0;
  position:relative;overflow:hidden;
}
.donate .container{position:relative;display:grid;
  grid-template-columns:1.3fr .7fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.donate .eyebrow{color:var(--gold);}
.donate h2{font-family:'Fraunces',serif;font-weight:500;
  font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.06;
  letter-spacing:-.018em;margin-top:1.1rem;}
.donate h2 em{font-style:italic;color:#f0c977;}
.donate p{margin-top:1.2rem;color:#e9d6bb;max-width:42ch;}
.donate-side{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;}
.donate-side .btn--gold{align-self:stretch;justify-content:center;}
.donate .fineprint{font-size:.82rem;color:#dcc2a3;line-height:1.5;}
.donate-store{position:absolute;right:-40px;bottom:-30px;width:300px;
  opacity:.14;pointer-events:none;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:#211b11;color:#cdc6b2;
  padding:clamp(3.5rem,7vw,5.5rem) 0 2rem;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.5fr;
  gap:clamp(1.8rem,4vw,3.2rem);}
.footer-logo{background:var(--paper);border-radius:14px;padding:.9rem 1.1rem;
  display:inline-block;margin-bottom:1.3rem;}
.footer-logo img{height:66px;width:auto;}
.footer-brand p{font-size:.95rem;color:#9c9582;max-width:34ch;}
.footer-col h4{font-size:.76rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem;}
.footer-col a{text-decoration:none;font-size:.96rem;color:#cdc6b2;
  transition:color .25s var(--ease);}
.footer-col a:hover{color:#fff;}
.footer-col address{font-style:normal;font-size:.96rem;color:#9c9582;
  line-height:1.8;}
.footer-col address a:hover{color:#fff;}
.news-form{display:flex;margin-top:.9rem;background:#2d2616;
  border:1.5px solid #423a28;border-radius:999px;padding:.3rem;}
.news-form input{flex:1;background:none;border:none;outline:none;color:#ece7d3;
  padding:.55rem .9rem;font-family:inherit;font-size:.92rem;}
.news-form input::placeholder{color:#8a8068;}
.news-form button{background:var(--gold);color:#211b11;border:none;
  border-radius:999px;padding:.55rem 1.1rem;font-weight:600;font-size:.88rem;
  cursor:pointer;font-family:inherit;transition:background .25s var(--ease);}
.news-form button:hover{background:#e8ad48;}
.news-note{font-size:.78rem;color:#7d745f;margin-top:.7rem;min-height:1em;}
.footer-base{margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:1.6rem;
  border-top:1px solid #34301f;display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:.8rem;font-size:.83rem;color:#867c66;}
.footer-base a{color:#867c66;}

/* ============================================================
   REVEAL
   ============================================================ */
.r{opacity:0;transform:translateY(26px);
  transition:opacity .85s var(--ease),transform .85s var(--ease);
  transition-delay:var(--d,0s);}
.r.show{opacity:1;transform:none;}
.stagger>*:nth-child(1){--d:.0s;}
.stagger>*:nth-child(2){--d:.08s;}
.stagger>*:nth-child(3){--d:.16s;}
.stagger>*:nth-child(4){--d:.24s;}
.stagger>*:nth-child(5){--d:.32s;}
.stagger>*:nth-child(6){--d:.40s;}

.skip-link{position:absolute;left:-999px;top:0;z-index:9999;
  background:var(--forest);color:#fff;padding:.7rem 1.2rem;border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:clamp(2rem,5vw,3rem);}
  .ph-split{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .why-grid.flip .why-figure{order:0;}
  .steps{grid-template-columns:1fr 1fr;}
  .donate .container{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .operator{grid-template-columns:1fr;text-align:center;}
  .operator .portrait{margin:0 auto;}
}
@media (max-width:760px){
  .nav-toggle{display:flex;}
  .nav-menu{
    position:fixed;inset:0 0 0 auto;width:min(86vw,360px);
    background:var(--paper);flex-direction:column;align-items:flex-start;
    padding:6.5rem 2rem 2rem;gap:0;border-left:1px solid var(--line);
    transform:translateX(105%);transition:transform .42s var(--ease);
    box-shadow:-30px 0 60px -40px rgba(36,30,20,.6);
  }
  .nav-menu.open{transform:translateX(0);}
  .nav-links{flex-direction:column;align-items:flex-start;gap:0;width:100%;}
  .nav-links li{width:100%;border-bottom:1px solid var(--line);}
  .nav-links a{display:block;padding:1rem 0;font-size:1.1rem;}
  .nav-links a::after{display:none;}
  .nav-menu .btn{margin-top:1.4rem;}
  body.menu-open{overflow:hidden;}
  .nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.active span:nth-child(2){opacity:0;}
  .nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .feature-grid,.news-grid{grid-template-columns:1fr;}
  .board-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .gallery,.gallery--two{grid-template-columns:1fr;gap:1.8rem;}
  .gallery .ph{transform:none!important;}
  .photo-stack figure{width:100%;}
  .photo-stack figure:nth-child(1){align-self:center;}
  .photo-stack figure:nth-child(2),
  .photo-stack figure:nth-child(3){align-self:center;margin-top:1.6rem;}
  .photo-stack .ph{transform:none!important;}
  .gallery-masonry{column-count:2;}
  .mission-grid{grid-template-columns:1fr;}
  .why-figure-extra{bottom:-1rem;right:-.8rem;width:46%;}
  .progress-stats{grid-template-columns:1fr;gap:1.8rem;}
  .pstat + .pstat{border-left:none;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-base{flex-direction:column;}
}
@media (max-width:560px){
  .gallery-masonry{column-count:1;}
}
@media (max-width:430px){
  .hero-cta{flex-direction:column;align-items:stretch;}
  .hero-cta .btn{justify-content:center;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .r{opacity:1;transform:none;}
}

/* ============================================================
   ARTICLE / ANNOUNCEMENT
   ============================================================ */
.article{max-width:760px;margin:0 auto;}
.article .lead{font-style:italic;color:var(--ink-2);
  font-size:clamp(1.08rem,1.5vw,1.24rem);line-height:1.6;
  margin-bottom:clamp(2rem,4vw,2.8rem);padding-bottom:clamp(1.6rem,3vw,2.2rem);
  border-bottom:1px solid var(--line);}
.article h2{font-family:'Fraunces',serif;font-weight:500;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.18;color:var(--ink);
  margin:clamp(2.6rem,4.5vw,3.4rem) 0 1.1rem;}
.article h2:first-of-type{margin-top:0;}
.article p{color:var(--ink-2);font-size:1.08rem;line-height:1.7;margin-bottom:1.2rem;}
.article a:not(.btn){color:var(--gold-deep);text-decoration:underline;
  text-underline-offset:2px;font-weight:600;}
.article figure{margin:clamp(1.8rem,4vw,2.6rem) 0;}
.article figure img{width:100%;height:auto;display:block;border-radius:16px;
  border:1px solid var(--line);box-shadow:0 30px 60px -42px rgba(36,30,20,.6);}
.article figure.narrow{max-width:480px;margin-inline:auto;}
.article figcaption{margin-top:.8rem;font-size:.86rem;font-style:italic;
  color:var(--ink-2);text-align:center;}
.article .give-cta{margin:1.4rem 0 .2rem;}
.article .divider{border:none;text-align:center;margin:clamp(2.6rem,5vw,3.6rem) 0;
  color:var(--ink-2);}
.article .divider::before{content:"\2217\00a0\00a0\00a0\2217\00a0\00a0\00a0\2217";
  letter-spacing:.2em;font-size:1.1rem;}
.article .signoff{margin-top:clamp(2rem,4vw,2.6rem);font-style:italic;color:var(--ink);}
