.page-hero { min-height: 430px; display: grid; align-items: end; padding: 100px 0 70px; color: white; background: var(--forest-900); }
.page-hero-image { position: relative; min-height: 620px; overflow: hidden; }
.page-hero-image > img, .page-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.page-hero-shade { background: linear-gradient(90deg,rgba(2,30,24,.95),rgba(2,30,24,.48) 68%,rgba(2,30,24,.18)); }
.page-hero-inner { position: relative; z-index: 2; }
.page-hero-inner h1 { max-width: 980px; margin: 14px 0 20px; font: 700 clamp(3.8rem,7vw,7.3rem)/.92 var(--font-display); letter-spacing: -.045em; }
.page-hero-inner p { max-width: 720px; margin: 0; color: rgba(255,255,255,.75); font-size: 1.2rem; }
.page-body-grid { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: clamp(65px,9vw,130px); }
.prose-large { font-size: 1.17rem; }
.page-body aside { display: grid; align-content: start; gap: 22px; }
.sidebar-cta { padding: 32px; color: white; background: var(--forest-900); }
.sidebar-cta h2 { margin: 11px 0 24px; font: 700 2.2rem/1.04 var(--font-display); }
.page-side-links { display: grid; border: 1px solid var(--line); }
.page-side-links a { display: flex; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--line); font-size: .84rem; font-weight: 700; }
.page-side-links a:last-child { border: 0; }
.team-section { background: var(--cream-100); }
.team-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.team-list article { min-width: 0; overflow: hidden; border: 1px solid var(--cream-300); background: white; }
.team-list article > img { width: 100%; aspect-ratio: 1/1; object-position: 50% 28%; }
.team-list article > span { display: grid; place-items: center; width: 100%; aspect-ratio: 1/1; color: white; background: var(--forest-900); font: 700 3rem var(--font-display); }
.team-list article > div { min-height: 116px; padding: 22px; }
.team-list h3 { margin: 0; color: var(--forest-900); font: 700 1.35rem var(--font-display); }
.team-list p { margin: 7px 0 0; color: var(--ink-500); font-size: .82rem; line-height: 1.55; }
.partner-section { overflow: hidden; background: white; }
.partner-section-home { padding-top: 86px; padding-bottom: 86px; border-top: 1px solid var(--cream-300); }
.partner-section-about { background: var(--cream-100); }
.partner-logo-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--cream-300); border-left: 1px solid var(--cream-300); }
.partner-logo-grid a { min-width: 0; min-height: 190px; display: grid; grid-template-rows: 1fr auto; align-items: center; justify-items: center; gap: 18px; padding: 28px 20px 22px; border-right: 1px solid var(--cream-300); border-bottom: 1px solid var(--cream-300); background: white; transition: transform .3s var(--ease),box-shadow .3s var(--ease); }
.partner-logo-grid a:hover { z-index: 1; transform: translateY(-5px); box-shadow: 0 18px 45px rgba(3,42,34,.1); }
.partner-logo-grid img { width: min(145px,90%); height: 96px; object-fit: contain; }
.partner-logo-grid span { color: var(--forest-900); font-size: .72rem; font-weight: 800; line-height: 1.4; text-align: center; }
.activities-section { background: var(--cream-100); }
.activity-list { display: grid; border-top: 1px solid var(--cream-300); }
.activity-list article { display: grid; grid-template-columns: 70px minmax(220px,.7fr) minmax(0,1.3fr); align-items: center; gap: clamp(24px,5vw,75px); padding: 28px 0; border-bottom: 1px solid var(--cream-300); }
.activity-list article > span { align-self: start; padding-top: 8px; color: var(--gold-700); font: italic 1rem var(--font-display); }
.activity-list img { width: 100%; aspect-ratio: 1.75; }
.activity-list small { color: var(--gold-700); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.activity-list h3 { margin: 7px 0 10px; color: var(--forest-900); font: 700 clamp(1.8rem,3vw,3rem)/1 var(--font-display); }
.activity-list p { color: var(--ink-700); }
.journal-hero { padding: 90px 0 82px; color: white; background: var(--forest-900); }
.journal-title h1 { max-width: 980px; margin: 14px 0 20px; font: 700 clamp(4rem,7.5vw,7.5rem)/.9 var(--font-display); letter-spacing: -.05em; }
.journal-title > p { max-width: 650px; color: rgba(255,255,255,.7); font-size: 1.13rem; }
.featured-story { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: clamp(45px,7vw,100px); margin-top: 70px; padding-top: 70px; border-top: 1px solid rgba(255,255,255,.18); }
.featured-story-image { aspect-ratio: 1.55; overflow: hidden; }
.featured-story-image img { width: 100%; height: 100%; }
.featured-story h2 { margin: 14px 0 17px; font: 700 clamp(2.3rem,4vw,4.25rem)/1 var(--font-display); }
.featured-story p { color: rgba(255,255,255,.72); }
.journal-layout { display: grid; grid-template-columns: 265px minmax(0,1fr); gap: clamp(55px,7vw,100px); }
.journal-sidebar { align-self: start; position: sticky; top: 115px; display: grid; gap: 32px; }
.search-form > label { margin-bottom: 9px; }
.search-form > div { display: flex; }
.search-form input { border-radius: 0; }
.search-form button { width: 48px; flex: 0 0 auto; border: 0; color: white; background: var(--forest-900); }
.side-section { display: grid; border-top: 1px solid var(--line); }
.side-section h2 { margin: 0; padding: 18px 0 12px; color: var(--forest-900); font: 700 1.2rem var(--font-display); }
.side-section > a { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); color: var(--ink-700); font-size: .84rem; }
.side-section > a.is-active, .side-section > a:hover { color: var(--gold-700); }
.side-section a b { color: var(--ink-500); font-size: .7rem; }
.side-section a small { display: block; margin-top: 2px; color: var(--ink-500); }
.sidebar-note { padding: 24px; background: var(--cream-100); }
.sidebar-note p { color: var(--ink-700); font-size: .86rem; }
.sidebar-note a { color: var(--forest-800); font-size: .78rem; font-weight: 800; }
.ad-shell { padding-top: 32px; }
.ad-placement { min-height: 112px; display: grid; align-content: center; margin: 32px 0; padding: 18px; overflow: hidden; border: 1px solid var(--line); background: var(--cream-100); }
.ad-placement > span { margin-bottom: 8px; color: var(--ink-500); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.ad-placement:empty { display: none; }
.ad-placement-wide { min-height: 130px; margin-bottom: 0; }
.ad-placement-inline { min-height: 180px; margin-top: 55px; }
.ad-placement-article { min-height: 180px; margin: 55px 0; }
.ad-placement-sidebar { min-height: 250px; margin: 0; }
.results-heading h2 { margin: 9px 0 34px; color: var(--forest-900); font: 700 clamp(2.4rem,4vw,4rem)/1 var(--font-display); }
.article-header { padding: 90px 0 55px; }
.article-heading { max-width: 1000px; margin: 0 auto; text-align: center; }
.article-kicker { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; color: var(--ink-500); font-size: .73rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.article-kicker a { color: var(--gold-700); }
.article-heading h1 { margin: 20px 0 24px; color: var(--forest-900); font: 700 clamp(3.6rem,7vw,7.1rem)/.94 var(--font-display); letter-spacing: -.045em; }
.article-deck { max-width: 760px; margin: 0 auto; color: var(--ink-700); font: 1.4rem/1.55 var(--font-display); }
.article-byline { display: flex; justify-content: center; align-items: center; gap: 15px; margin-top: 34px; }
.author-avatar { display: grid; place-items: center; width: 48px; height: 48px; overflow: hidden; border-radius: 50%; color: white; background: var(--forest-700); font: 700 1.2rem var(--font-display); }
.author-avatar img { width: 100%; height: 100%; }
.article-byline > div:not(.author-avatar) { display: grid; text-align: left; }
.article-byline span { color: var(--ink-500); font-size: .68rem; }
.article-byline strong { color: var(--forest-900); font-size: .83rem; }
.reviewed-by { margin-left: 18px; padding-left: 24px; border-left: 1px solid var(--line); }
.article-hero { margin-bottom: 65px; }
.article-hero img { width: 100%; aspect-ratio: 1.85; }
.article-hero figcaption { margin-top: 8px; color: var(--ink-500); font-size: .72rem; }
.article-layout { display: grid; grid-template-columns: 70px minmax(0,760px) 270px; justify-content: center; align-items: start; gap: clamp(35px,5vw,75px); }
.article-tools { position: sticky; top: 120px; }
.article-tools > div { display: grid; justify-items: center; gap: 9px; }
.article-tools span { margin-bottom: 4px; color: var(--ink-500); font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; }
.article-tools a, .article-tools button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; background: white; color: var(--forest-900); font-weight: 800; }
.article-sidebar { position: sticky; top: 115px; display: grid; gap: 28px; }
.author-note { display: flex; gap: 20px; padding: 28px; margin-top: 50px; background: var(--cream-100); }
.author-note h2 { margin: 2px 0 5px; font-size: 1.6rem; }
.author-note span { font-size: .7rem; text-transform: uppercase; color: var(--gold-700); }
.author-note p { margin: 0; font-size: .85rem; }
.related-section { margin-top: 110px; background: var(--cream-100); }
.page-hero-events { background: linear-gradient(120deg,var(--forest-950),var(--forest-700)); }
.events-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 42px 26px; }
.past-events { background: var(--cream-100); }
.past-event-list { border-top: 1px solid var(--cream-300); }
.past-event-list a { display: grid; grid-template-columns: 130px 1.2fr 1fr 30px; align-items: center; gap: 20px; min-height: 88px; border-bottom: 1px solid var(--cream-300); }
.past-event-list time { color: var(--gold-700); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.past-event-list span { color: var(--forest-900); font: 700 1.35rem var(--font-display); }
.past-event-list b { color: var(--ink-500); font-size: .78rem; }
.past-event-list i { font-style: normal; }
.event-detail-hero { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 730px; color: white; background: var(--forest-900); }
.event-detail-image img { width: 100%; height: 100%; }
.event-detail-copy { display: grid; align-content: center; padding: clamp(55px,7vw,110px); }
.back-link { display: inline-flex; width: fit-content; margin-bottom: 38px; color: inherit; font-size: .78rem; font-weight: 750; }
.event-detail-copy h1 { margin: 15px 0 20px; font: 700 clamp(3.4rem,5.7vw,6.2rem)/.94 var(--font-display); letter-spacing: -.04em; }
.event-detail-copy > p { color: rgba(255,255,255,.74); font-size: 1.08rem; }
.event-detail-copy dl { display: grid; margin: 22px 0 30px; border-top: 1px solid rgba(255,255,255,.18); }
.event-detail-copy dl div { display: grid; grid-template-columns: 80px 1fr; gap: 20px; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.event-detail-copy dt { color: var(--gold-300); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.event-detail-copy dd { font-size: .88rem; }
.event-detail-copy dd small { display: block; color: rgba(255,255,255,.58); }
.event-content { display: grid; grid-template-columns: minmax(0,760px) 290px; justify-content: center; gap: 100px; }
.event-content aside { position: sticky; top: 120px; border-top: 3px solid var(--gold-500); }
.event-fact { display: grid; gap: 5px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.event-fact span { color: var(--ink-500); font-size: .7rem; text-transform: uppercase; }
.event-fact strong { color: var(--forest-900); }
.event-content aside .text-link { margin-top: 22px; font-size: .8rem; }
.event-register { padding: 90px 0; color: white; background: var(--forest-950); }
.form-split { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(55px,8vw,120px); }
.form-split > div:first-child h2 { margin: 13px 0 20px; font: 700 clamp(3rem,5vw,5.2rem)/.98 var(--font-display); }
.form-split > div:first-child > p { color: rgba(255,255,255,.7); }
.contact-hero { padding: 100px 0 75px; color: white; background: var(--forest-900); }
.contact-hero-grid { display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 90px; }
.contact-hero h1 { max-width: 850px; margin: 15px 0 20px; font: 700 clamp(4rem,7vw,7.3rem)/.92 var(--font-display); }
.contact-hero p { max-width: 700px; color: rgba(255,255,255,.7); font-size: 1.15rem; }
.contact-hero dl { border-top: 1px solid rgba(255,255,255,.2); }
.contact-hero dl div { padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.contact-hero dt { color: var(--gold-300); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.contact-hero dd { font-size: .85rem; }
.contact-form-split { color: var(--ink-900); }
.contact-form-split > div:first-child > p { color: var(--ink-700); }
.contact-emergency { margin-top: 30px; padding: 22px; border-left: 3px solid var(--gold-500); background: var(--cream-100); }
.contact-emergency p { margin: 4px 0 0; color: var(--ink-700); }
.contact-emergency a { color: var(--gold-700); font-weight: 800; }
.surface-form-light { box-shadow: none; border: 1px solid var(--line); }
.donate-hero { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 690px; color: white; background: var(--forest-950); }
.donate-hero-media img { width: 100%; height: 100%; }
.donate-hero-copy { display: grid; align-content: center; padding: clamp(55px,7vw,110px); }
.donate-hero-copy h1 { margin: 14px 0 22px; font: 700 clamp(3.5rem,6vw,6.4rem)/.94 var(--font-display); }
.donate-hero-copy > p { color: rgba(255,255,255,.7); }
.donation-assurance { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 28px; color: var(--gold-300); font-size: .74rem; font-weight: 750; }
.donation-form-section { padding: 100px 0; background: var(--cream-100); }
.donation-form-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(55px,8vw,110px); }
.donation-purpose h2 { margin: 12px 0 24px; color: var(--forest-900); font: 700 clamp(2.8rem,4.5vw,4.6rem)/1 var(--font-display); }
.donation-purpose ul { list-style: none; padding: 0; margin: 30px 0; border-top: 1px solid var(--cream-300); }
.donation-purpose li { display: grid; grid-template-columns: 95px 1fr; padding: 14px 0; border-bottom: 1px solid var(--cream-300); }
.donation-purpose li strong { color: var(--gold-700); }
.donation-purpose li span { color: var(--ink-700); }
.donation-form { padding: clamp(28px,5vw,55px); background: white; box-shadow: var(--shadow-soft); }
.amount-picker { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-bottom: 27px; }
.amount-picker > button { padding: 15px 8px; border: 1px solid var(--line); background: white; font-weight: 800; }
.amount-picker > button.is-active { color: white; border-color: var(--forest-900); background: var(--forest-900); }
.amount-picker label { grid-column: 1/-1; position: relative; margin-top: 8px; }
.amount-picker label span { position: absolute; left: 14px; bottom: 12px; color: var(--forest-900); font-weight: 800; }
.amount-picker label input { padding-left: 35px; }
.thank-you-page, .error-page { min-height: 72vh; display: grid; place-items: center; align-content: center; gap: 14px; padding: 80px 24px; text-align: center; background: var(--cream-100); }
.thank-you-page h1, .error-page h1 { max-width: 900px; margin: 0; color: var(--forest-900); font: 700 clamp(3.4rem,7vw,7rem)/.94 var(--font-display); }
.thank-you-page p, .error-page p { max-width: 650px; color: var(--ink-700); }
.thank-you-page pre { min-width: min(560px,90vw); padding: 22px; background: white; border: 1px solid var(--line); text-align: left; white-space: pre-wrap; }
.thank-you-mark { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; color: white; background: var(--forest-700); font-size: 1.7rem; }
.error-code { color: var(--gold-500); font: 700 7rem/1 var(--font-display); opacity: .25; }
.error-page > div { display: flex; gap: 22px; align-items: center; }

/* Fundraising and multi-gateway giving */
.fundraiser-index-hero { background: linear-gradient(120deg,var(--forest-950),var(--forest-700)); }
.fundraiser-index-hero h1 { max-width: 1050px; margin: 14px 0 20px; font: 700 clamp(3.7rem,7vw,7rem)/.93 var(--font-display); letter-spacing: -.045em; }
.fundraiser-index-hero p { max-width: 720px; color: rgba(255,255,255,.72); font-size: 1.1rem; }
.fundraiser-list { display: grid; gap: 35px; }
.fundraiser-list-card { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); align-items: stretch; min-height: 470px; background: var(--cream-100); }
.fundraiser-list-image { overflow: hidden; }
.fundraiser-list-image img { width: 100%; height: 100%; transition: transform .8s var(--ease); }
.fundraiser-list-card:hover .fundraiser-list-image img { transform: scale(1.035); }
.fundraiser-list-card > div { display: grid; align-content: center; padding: clamp(32px,5vw,70px); }
.fundraiser-list-card h2 { margin: 10px 0 15px; color: var(--forest-900); font: 700 clamp(2.4rem,4vw,4.5rem)/.98 var(--font-display); }
.fundraiser-list-card .progress-track,.fundraiser-donate-panel .progress-track { background: var(--cream-300); }
.fundraiser-list-card .button { justify-self: start; margin-top: 25px; }
.fundraiser-detail-hero { position: relative; min-height: 700px; display: grid; align-items: end; overflow: hidden; color: white; background: var(--forest-950); }
.fundraiser-detail-media,.fundraiser-detail-shade { position: absolute; inset: 0; }
.fundraiser-detail-media img { width: 100%; height: 100%; }
.fundraiser-detail-shade { background: linear-gradient(90deg,rgba(2,30,24,.96),rgba(2,30,24,.48) 68%,rgba(2,30,24,.18)); }
.fundraiser-detail-hero .shell { position: relative; z-index: 1; padding-block: 90px; }
.fundraiser-detail-copy { max-width: 850px; overflow-wrap: anywhere; }
.fundraiser-detail-copy h1 { margin: 16px 0 22px; font: 700 clamp(3.7rem,7vw,7.2rem)/.93 var(--font-display); }
.fundraiser-detail-copy p { max-width: 700px; color: rgba(255,255,255,.74); font-size: 1.15rem; }
.fundraiser-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(340px,390px); align-items: start; gap: clamp(48px,6vw,96px); }
.fundraiser-detail-grid > * { min-width: 0; }
.fundraiser-detail-grid > .prose { max-width: 820px; overflow-wrap: anywhere; }
.fundraiser-detail-grid > .prose > * { width: 100%; max-width: 100%; }
.fundraiser-detail-grid > .prose h2 { font-size: clamp(1.9rem,3vw,2.8rem); text-wrap: pretty; }
.fundraiser-detail-grid > .prose h3 { font-size: clamp(1.5rem,2.25vw,2.05rem); text-wrap: pretty; }
.fundraiser-detail-grid > .prose pre,.fundraiser-detail-grid > .prose table { display: block; max-width: 100%; overflow-x: auto; }
.fundraiser-donate-panel { position: sticky; top: 115px; min-width: 0; padding: 34px; overflow: hidden; color: var(--forest-950); background: var(--cream-100); border-top: 4px solid var(--gold-500); }
.fundraiser-donate-panel .progress-numbers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px 14px; }
.fundraiser-donate-panel .progress-numbers > div { min-width: 0; }
.fundraiser-donate-panel .progress-numbers > div:last-child { grid-column: 1/-1; padding-top: 14px; border-top: 1px solid var(--cream-300); }
.fundraiser-donate-panel .progress-numbers strong { display: block; max-width: 100%; overflow-wrap: anywhere; font-size: clamp(1.25rem,1.5vw,1.6rem); line-height: 1.08; }
.fundraiser-donate-panel .button { margin-top: 25px; }
.fundraiser-donate-panel > p,.fundraiser-donate-panel > small { color: var(--ink-500); font-size: .78rem; }
.campaign-give-form { display: grid; gap: 15px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--cream-300); }
.campaign-give-form .currency-picker { grid-template-columns: 1fr; margin-bottom: 0; }
.campaign-give-form .gateway-picker { margin-bottom: 0; }
.campaign-give-form .gateway-picker > div { grid-template-columns: 1fr; }
.campaign-give-form .form-grid { grid-template-columns: 1fr; gap: 10px; }
.campaign-give-form .form-grid .wide { grid-column: auto; }
.campaign-give-form .button { margin-top: 0; }
.campaign-give-form > p { margin: 0; color: var(--ink-500); font-size: .67rem; }
.currency-picker,.gateway-picker { margin: 0 0 26px; padding: 0; border: 0; }
.currency-picker legend,.gateway-picker legend { margin-bottom: 11px; color: var(--forest-900); font-size: .78rem; font-weight: 800; }
.currency-picker { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.currency-picker label,.gateway-picker label { cursor: pointer; }
.currency-picker input,.gateway-picker input { position: absolute; opacity: 0; pointer-events: none; }
.currency-picker label > span,.gateway-picker label > span { display: grid; padding: 15px 17px; border: 1px solid var(--line); transition: border-color .2s,background .2s; }
.currency-picker label > span strong,.gateway-picker label > span strong { color: var(--forest-900); }
.currency-picker label > span small,.gateway-picker label > span small { color: var(--ink-500); font-weight: 500; }
.currency-picker input:checked + span,.gateway-picker input:checked + span { border-color: var(--forest-900); background: var(--cream-100); box-shadow: inset 4px 0 var(--gold-500); }
.currency-picker input:focus-visible + span,.gateway-picker input:focus-visible + span { outline: 3px solid rgba(204,145,24,.25); }
.gateway-picker > div { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.amount-picker { display: block; }
.amount-presets { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.amount-presets button { padding: 15px 8px; border: 1px solid var(--line); background: white; font-weight: 800; }
.amount-presets button.is-active { color: white; border-color: var(--forest-900); background: var(--forest-900); }
.amount-picker > label { position: relative; margin-top: 15px; }
.amount-picker > label span { position: absolute; left: 14px; bottom: 12px; color: var(--forest-900); font-weight: 800; }
.amount-picker > label input { padding-left: 35px; }
.gallery-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 36px; }
.album-card { display: grid; grid-template-columns: .95fr 1.05fr; background: var(--cream-100); }
.album-card img { width: 100%; height: 100%; min-height: 350px; }
.album-card > div { padding: 38px; align-self: center; }
.album-card span { color: var(--gold-700); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.album-card h2 { margin: 9px 0 15px; color: var(--forest-900); font: 700 2.3rem/1 var(--font-display); }
.album-card p { color: var(--ink-700); }
.album-hero { padding: 100px 0 55px; }
.album-hero h1 { margin: 12px 0 16px; color: var(--forest-900); font: 700 clamp(3.5rem,7vw,7rem)/.95 var(--font-display); }
.album-hero p { max-width: 680px; color: var(--ink-700); }
.photo-grid { columns: 3; column-gap: 14px; padding-bottom: 100px; }
.photo-grid > button { position: relative; display: block; width: 100%; margin: 0 0 14px; padding: 0; border: 0; break-inside: avoid; background: none; text-align: left; }
.photo-grid img { width: 100%; }
.photo-grid span { display: none; }
.lightbox { width: min(1100px,92vw); border: 0; padding: 0; background: transparent; color: white; }
.lightbox img { width: 100%; max-height: 82vh; object-fit: contain; }
.lightbox > button { position: fixed; top: 18px; right: 25px; border: 0; background: none; color: white; font-size: 3rem; }
.lightbox p { margin: 10px 0; text-align: center; }

/* v1.2 Blog sidebars */
.blog-side-feature { display: grid; overflow: hidden; border: 1px solid var(--line); background: white; }
.blog-side-feature img { width: 100%; aspect-ratio: 1.35; transition: transform .7s var(--ease); }
.blog-side-feature:hover img { transform: scale(1.035); }
.blog-side-feature > span,.blog-side-feature > strong,.blog-side-feature > small { margin-inline: 17px; }
.blog-side-feature > span { margin-top: 16px; color: var(--gold-700); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
.blog-side-feature > strong { margin-top: 7px; color: var(--forest-900); font: 700 1.35rem/1.08 var(--font-display); }
.blog-side-feature > small { margin-block: 13px 17px; color: var(--forest-700); font-weight: 750; }
.article-latest > a { grid-template-columns: 72px minmax(0,1fr); align-items: center; gap: 12px; }
.article-latest img { width: 72px; height: 58px; }
.article-latest > a > span { display: grid; min-width: 0; }
.article-latest strong { color: var(--forest-900); font: 700 .92rem/1.15 var(--font-display); }

/* v1.2 paid visit */
.visit-hero { position: relative; min-height: min(820px,82vh); display: grid; align-items: end; overflow: hidden; color: white; background: var(--forest-950); }
.visit-hero-media,.visit-hero-shade { position: absolute; inset: 0; }
.visit-hero-media img { width: 100%; height: 100%; animation: hero-drift 20s ease-in-out infinite alternate; }
.visit-hero-shade { background: linear-gradient(90deg,rgba(2,30,24,.96),rgba(2,30,24,.38) 72%,rgba(2,30,24,.08)); }
.visit-hero-copy { position: relative; z-index: 1; padding-block: clamp(75px,10vw,140px); }
.visit-hero-copy h1 { max-width: 980px; margin: 14px 0 22px; font: 700 clamp(4rem,7.5vw,8rem)/.9 var(--font-display); letter-spacing: -.05em; }
.visit-hero-copy p { max-width: 670px; margin-bottom: 30px; color: rgba(255,255,255,.74); font-size: 1.12rem; }
.visit-introduction { background: white; }
.visit-story-grid { display: grid; grid-template-columns: minmax(0,1fr) 360px; align-items: start; gap: clamp(55px,9vw,140px); }
.visit-story-copy { max-width: 850px; }
.visit-price-card { position: sticky; top: 120px; padding: 34px; border-top: 4px solid var(--gold-500); background: var(--cream-100); }
.visit-price-card [data-price-summary] { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 12px; padding-block: 18px; border-bottom: 1px solid var(--cream-300); }
.visit-price-card [data-price-summary][hidden] { display: none; }
.visit-price-card strong { color: var(--forest-900); font: 700 2.2rem var(--font-display); }
.visit-price-card small { color: var(--ink-500); }
.visit-price-card p { margin-bottom: 0; color: var(--ink-700); font-size: .78rem; }
.visit-gallery-section { padding-top: 0; background: white; }
.visit-gallery { display: grid; grid-template-columns: 1.35fr 1fr; grid-template-rows: repeat(2,300px); gap: 16px; }
.visit-gallery figure { position: relative; overflow: hidden; margin: 0; }
.visit-gallery figure.is-large { grid-row: 1/3; }
.visit-gallery img { width: 100%; height: 100%; transition: transform .9s var(--ease); }
.visit-gallery figure:hover img { transform: scale(1.045); }
.visit-gallery figcaption { position: absolute; inset: auto 0 0; display: grid; padding: 55px 25px 23px; color: white; background: linear-gradient(transparent,rgba(2,30,24,.94)); }
.visit-gallery figcaption small { color: var(--gold-300); font-weight: 800; text-transform: uppercase; }
.visit-gallery figcaption strong { font: 700 1.8rem var(--font-display); }
.visit-gallery figcaption span { color: rgba(255,255,255,.7); font-size: .75rem; }
.visit-booking-section { padding: clamp(80px,10vw,150px) 0; color: white; background: var(--forest-950); }
.visit-booking-grid { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); align-items: start; gap: clamp(50px,8vw,130px); }
.visit-booking-intro { position: sticky; top: 120px; }
.visit-booking-intro h2 { margin: 14px 0 22px; font: 700 clamp(3rem,5.5vw,6rem)/.94 var(--font-display); }
.visit-booking-intro > p { max-width: 570px; color: rgba(255,255,255,.68); }
.visit-total-card { margin-top: 40px; padding: 25px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.05); }
.visit-total-card > span,.visit-total-card > small { display: block; color: rgba(255,255,255,.62); }
.visit-total-card strong { display: block; margin: 7px 0; color: var(--gold-300); font: 700 clamp(2.6rem,5vw,5rem) var(--font-display); }
.visit-booking-form { color: var(--ink-900); }
.form-security { margin: 15px 0 0; color: var(--ink-500); font-size: .7rem; text-align: center; }
.currency-picker { grid-template-columns: repeat(3,1fr); }

/* v1.2 volunteer application */
.volunteer-hero { position: relative; min-height: min(800px,80vh); display: grid; align-items: end; overflow: hidden; color: white; background: var(--forest-950); }
.volunteer-hero > img,.volunteer-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.volunteer-hero > img { animation: hero-drift 21s ease-in-out infinite alternate; }
.volunteer-hero-shade { background: linear-gradient(90deg,rgba(2,30,24,.96),rgba(2,30,24,.34)); }
.volunteer-hero-copy { position: relative; z-index: 1; padding-block: clamp(75px,10vw,140px); }
.volunteer-hero-copy h1 { max-width: 1000px; margin: 14px 0 20px; font: 700 clamp(4rem,7.5vw,8rem)/.9 var(--font-display); letter-spacing: -.05em; }
.volunteer-hero-copy p { max-width: 680px; margin-bottom: 30px; color: rgba(255,255,255,.72); font-size: 1.12rem; }
.volunteer-intro { background: white; }
.volunteer-principles { display: grid; align-self: stretch; }
.volunteer-principles article { display: grid; grid-template-columns: 55px 1fr; align-content: center; padding: 28px 0; border-bottom: 1px solid var(--cream-300); }
.volunteer-principles article > b { grid-row: 1/3; color: var(--gold-700); font: 700 1rem var(--font-display); }
.volunteer-principles h2 { margin: 0 0 7px; color: var(--forest-900); font: 700 1.75rem var(--font-display); }
.volunteer-principles p { margin: 0; color: var(--ink-500); font-size: .8rem; }
.volunteer-application-section { padding: clamp(80px,10vw,150px) 0; background: var(--cream-100); }
.volunteer-app-shell { max-width: 1080px; }
.volunteer-form-heading { max-width: 720px; margin-bottom: 40px; }
.volunteer-form-heading h2 { margin: 10px 0 14px; color: var(--forest-900); font: 700 clamp(3.3rem,6vw,6rem)/.94 var(--font-display); }
.multi-step-form { padding: clamp(24px,5vw,58px); background: white; box-shadow: 0 25px 80px rgba(3,42,34,.1); }
.form-progress-track { height: 6px; overflow: hidden; border-radius: 99px; background: var(--cream-300); }
.form-progress-track > span { display: block; width: 0; height: 100%; background: linear-gradient(90deg,var(--forest-700),var(--gold-500)); transition: width .35s var(--ease); }
.form-step-dots { display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); margin: 20px 0 42px; }
.form-step-dots button { display: grid; justify-items: start; gap: 5px; padding: 0; border: 0; color: var(--ink-500); background: none; text-align: left; }
.form-step-dots button b { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; }
.form-step-dots button.is-current b,.form-step-dots button.is-complete b { color: white; border-color: var(--forest-800); background: var(--forest-800); }
.form-step-dots button.is-current span { color: var(--forest-900); font-weight: 800; }
.form-step-panel { margin: 0; padding: 0; border: 0; }
.form-step-panel[hidden] { display: none; }
.form-step-panel legend { display: grid; width: 100%; margin-bottom: 30px; }
.form-step-panel legend span { color: var(--gold-700); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.form-step-panel legend strong { margin: 5px 0; color: var(--forest-900); font: 700 2.3rem var(--font-display); }
.form-step-panel legend small { color: var(--ink-500); }
.option-group { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin-top: 7px; }
.option-group > label { display: flex; align-items: center; gap: 9px; padding: 13px; border: 1px solid var(--line); }
.option-group input { width: 17px; height: 17px; accent-color: var(--forest-700); }
.multi-step-actions { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 35px; padding-top: 22px; border-top: 1px solid var(--line); }
.multi-step-actions > span { margin-inline: auto; color: var(--ink-500); font-size: .7rem; font-weight: 750; }
