@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root { --mist:#ededed; --ink:#282826; --trail:#40930a; --line:rgba(40,40,38,.22); --display:Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; --body:Montserrat, Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--mist); font:400 16px/1.6 var(--body); }
a { color:inherit; text-underline-offset:.18em; }
img { display:block; width:100%; height:auto; }
.skip-link { position:absolute; left:-999px; }
.skip-link:focus { left:1rem; top:1rem; z-index:5; background:var(--trail); color:#fff; padding:.5rem; }
.site-header, .site-footer, main { max-width:1200px; margin:auto; padding-left:clamp(1rem,4vw,3.5rem); padding-right:clamp(1rem,4vw,3.5rem); }
.site-header { min-height:100px; display:flex; justify-content:space-between; align-items:center; border-bottom:2px solid var(--ink); gap:1rem; }
.site-logo { color:var(--ink); font:900 1.08rem/.84 var(--display); letter-spacing:.05em; text-decoration:none; }
nav { display:flex; flex-wrap:wrap; gap:1.2rem; font-size:.78rem; font-weight:800; text-transform:uppercase; }
nav a[aria-current='page'] { color:var(--trail); }
.hero { min-height:590px; display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch; border-bottom:2px solid var(--ink); }
.hero__copy { padding:clamp(3rem,9vw,8rem) clamp(1.5rem,5vw,5rem) 3rem 0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
h1,h2,h3 { margin:.1em 0 .35em; font-family:var(--display); font-weight:900; line-height:.9; letter-spacing:.015em; text-transform:uppercase; }
h1 { font-size:clamp(4rem,10vw,9rem); }
h2 { font-size:clamp(2.6rem,5vw,4.8rem); }
h3 { font-size:clamp(1.8rem,3vw,2.8rem); }
.eyebrow { margin:0 0 1rem; font-size:.72rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.lead { max-width:38rem; font-size:1.14rem; }
.hero__image { min-height:100%; background:var(--ink); }
.hero__image img { height:100%; object-fit:cover; }
.hero__placeholder { min-height:360px; display:grid; place-items:center; padding:2rem; color:var(--mist); background:var(--ink); text-align:center; font-weight:700; }
.button { display:inline-block; margin-top:1rem; padding:.85rem 1.15rem; border:2px solid var(--trail); color:#fff; background:var(--trail); font-size:.76rem; font-weight:800; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.button:hover,.button:focus { background:var(--ink); border-color:var(--ink); }
.button--secondary { color:var(--ink); background:transparent; }
.page__header { max-width:780px; padding:clamp(4rem,10vw,8rem) 0 3rem; }
.layout { display:flex; gap:clamp(1.5rem,4vw,4rem); padding:clamp(2rem,5vw,4rem) 0; border-top:1px solid var(--line); }
.layout__column { flex:var(--column-width); min-width:0; }
.layout__column > *:first-child { margin-top:0; }
.mission-banner { padding:clamp(2rem,5vw,4rem); background:var(--trail); color:#fff; }
.mission-banner .button { border-color:#fff; background:var(--ink); }
.stat-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding:2rem 0; border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); }
.stat-strip strong,.stat-strip span { display:block; }
.stat-strip strong { font:clamp(2.4rem,5vw,4.8rem)/.85 var(--display); }
.stat-strip span { margin-top:.6rem; font-size:.72rem; font-weight:800; text-transform:uppercase; }
.site-footer { padding-top:3rem; padding-bottom:2.5rem; border-top:2px solid var(--ink); font-size:.8rem; }
.site-footer p { margin:.25rem 0; }
.small { opacity:.7; }
.feed__header { max-width:760px; margin-bottom:2rem; }
.feed__empty { padding:1rem 0; border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); font-weight:600; }
.feed__all-link { display:inline-block; margin-top:1.5rem; font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.luma-calendar-wrap { overflow:hidden; min-height:620px; border:2px solid var(--ink); background:#fff; }
.luma-calendar { display:block; width:100%; min-height:620px; border:0; }
.photo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; }
.photo-grid__item { position:relative; display:block; overflow:hidden; aspect-ratio:1/1; background:var(--ink); text-decoration:none; }
.photo-grid__item img { height:100%; object-fit:cover; filter:saturate(.8) contrast(1.06); transition:transform .35s ease, filter .35s ease; }
.photo-grid__item span { position:absolute; inset:auto .6rem .45rem; color:#fff; font-size:.67rem; font-weight:700; line-height:1.25; opacity:0; transform:translateY(.4rem); transition:opacity .25s ease, transform .25s ease; }
.photo-grid__item::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 40%,rgba(0,0,0,.72)); opacity:0; transition:opacity .25s ease; }
.photo-grid__item span { z-index:1; }
.photo-grid__item:hover img,.photo-grid__item:focus img { transform:scale(1.06); filter:saturate(1) contrast(1.05); }
.photo-grid__item:hover::after,.photo-grid__item:focus::after,.photo-grid__item:hover span,.photo-grid__item:focus span { opacity:1; }
.photo-grid__item:hover span,.photo-grid__item:focus span { transform:translateY(0); }
@media (max-width:700px) { .site-header { min-height:84px; } .hero,.layout { display:block; } .hero__copy { padding:4rem 0 3rem; } .hero__image { min-height:320px; } .layout__column + .layout__column { margin-top:2rem; } .stat-strip { grid-template-columns:1fr; } .photo-grid { grid-template-columns:repeat(2,1fr); } }
