:root {
  --ink: #2b2723;
  --ink-2: #38312c;
  --paper: #f3ecdf;
  --paper-2: #e9decd;
  --paper-3: #fbf7ef;
  --copper: #d77e3b;
  --copper-deep: #b95d25;
  --blue: #83cddd;
  --line: rgba(43, 39, 35, .16);
  --white-line: rgba(255, 248, 234, .18);
  --shadow: 0 24px 60px rgba(35, 28, 22, .16);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); line-height: 1.65; }
body.modal-open { overflow: hidden; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
img { max-width: 100%; }

.skip-link { position: fixed; z-index: 999; top: 12px; left: 12px; padding: 10px 14px; background: white; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }

.preview-bar { min-height: 34px; padding: 7px 5vw; display: flex; align-items: center; justify-content: center; gap: 20px; background: var(--blue); color: #16343a; font-size: 12px; letter-spacing: .04em; text-align: center; }
.text-button { border: 0; border-bottom: 1px solid currentColor; padding: 0; background: none; color: inherit; font-weight: 800; cursor: pointer; }

.site-header { position: relative; z-index: 50; height: 70px; margin-bottom: -70px; padding: 0 max(5vw, 24px); display: flex; align-items: center; gap: 36px; color: var(--paper-3); background: transparent; border: 0; }
.site-header .brand { font-family: "Helvetica Neue", ui-sans-serif, system-ui, sans-serif; font-size: 20px; font-weight: 300; letter-spacing: .2em; }
.site-header .desktop-nav a { font-family: "Helvetica Neue", ui-sans-serif, system-ui, sans-serif; font-weight: 400; color: #fff8ec; text-shadow: 0 1px 6px #10221e; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-family: var(--serif); font-size: 15px; font-weight: 800; letter-spacing: .16em; text-decoration: none; text-transform: uppercase; }
.brand-mark { color: var(--copper); font-size: 20px; }
.desktop-nav { margin-left: auto; display: flex; align-items: center; gap: 24px; }
.desktop-nav a { color: rgba(251, 247, 239, .74); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.desktop-nav a:hover { color: white; }

.hero { min-height: calc(100vh - 104px); padding: clamp(70px, 8vw, 130px) max(6vw, 28px); display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: center; gap: 6vw; color: var(--paper-3); background: radial-gradient(circle at 78% 36%, rgba(215, 126, 59, .12), transparent 34%), linear-gradient(135deg, #332d28 0%, #27231f 70%); overflow: hidden; }
.eyebrow { margin: 0 0 18px; color: var(--copper-deep); font-size: 11px; font-weight: 900; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow-light { color: #efaa70; }
h1, h2, h3 { margin: 0; font-family: var(--serif); line-height: .98; }
h1 { max-width: 760px; font-size: clamp(64px, 8.2vw, 132px); letter-spacing: -.055em; text-transform: uppercase; }
h1 span, .closing h2 span { color: var(--copper); }
.hero-lede { max-width: 650px; margin: 34px 0 12px; font-family: var(--serif); font-size: clamp(22px, 2.4vw, 34px); font-weight: 700; line-height: 1.23; }
.hero-copy > p:not(.eyebrow):not(.hero-lede) { max-width: 640px; color: rgba(251, 247, 239, .72); }
.hero-actions { margin: 30px 0 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.button { min-height: 48px; padding: 14px 20px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 2px; font-size: 11px; font-weight: 900; letter-spacing: .12em; line-height: 1.1; text-align: center; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 38px; padding: 10px 15px; }
.button-copper { background: var(--copper); color: #241f1b; }
.button-copper:hover { background: #e49355; }
.button-ghost { border-color: rgba(251, 247, 239, .28); background: transparent; color: var(--paper-3); }
.button-ivory { background: var(--paper-3); color: var(--ink); }
.button-dark { width: fit-content; background: var(--ink); color: var(--paper-3); }
.full-width { width: 100%; }
.quiet-link { color: rgba(251, 247, 239, .7); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-underline-offset: 5px; }

.hero-visual { position: relative; min-height: 670px; display: flex; align-items: flex-end; }
.hero-photo-wrap { position: relative; width: min(100%, 760px); height: 670px; margin: 0; overflow: hidden; background: #17201b; box-shadow: 0 34px 90px rgba(0,0,0,.36); }
.hero-photo-wrap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 48%, rgba(18,18,15,.48)); pointer-events: none; }
.hero-photo { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 48% center; transform: scale(1.025); }
.hero-photo-wrap figcaption { position: absolute; z-index: 2; right: 24px; bottom: 22px; padding: 9px 13px; border: 1px solid rgba(251,247,239,.3); color: rgba(251,247,239,.88); font-family: var(--serif); font-size: 13px; font-style: italic; backdrop-filter: blur(10px); }
.asset-slot { width: 100%; min-height: 420px; padding: 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 1px dashed currentColor; text-align: center; }
.asset-slot strong { font-family: var(--serif); font-size: 24px; line-height: 1.15; }
.asset-slot small { opacity: .68; }
.asset-slot-dark { position: relative; z-index: 2; color: rgba(251, 247, 239, .76); background: linear-gradient(150deg, rgba(255,255,255,.055), rgba(255,255,255,.01)); }
.asset-number { width: 42px; height: 42px; margin-bottom: 8px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; font-weight: 900; }
.goal-card { position: absolute; z-index: 3; right: -2vw; bottom: -34px; width: min(330px, 78%); padding: 24px 28px; display: grid; color: var(--ink); background: var(--paper-3); box-shadow: var(--shadow); }
.goal-card strong { font-family: var(--serif); font-size: 42px; line-height: 1; }
.goal-card > span:not(.goal-label) { font-size: 12px; }
.goal-label { margin-bottom: 5px; color: var(--copper-deep); font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.goal-card small { color: #746d64; font-size: 10px; }
.goal-line { height: 3px; margin: 18px 0 9px; background: #d9cec0; }
.goal-line i { display: block; width: 0; height: 100%; background: var(--copper); }

.section-pad { padding: 110px max(7vw, 28px); }
.intro { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(350px, 1.1fr); gap: 7vw; align-items: center; padding-bottom: 60px; }
.intro-photo { margin: 0; }
.story-photo { width: 100%; height: 540px; display: block; object-fit: cover; object-position: center 35%; box-shadow: var(--shadow); }
.photo-caption { margin: 10px 0 0; color: #83786c; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.photo-story { position: relative; min-height: min(78vh, 820px); display: grid; align-items: end; overflow: hidden; color: var(--paper-3); background: var(--ink); }
.photo-story::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(22,19,17,.9) 0%, rgba(22,19,17,.44) 52%, rgba(22,19,17,.08) 100%), linear-gradient(0deg, rgba(22,19,17,.5), transparent 55%); }
.photo-story > img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; }
.photo-story-origin > img { object-position: center 44%; }
.photo-story-community > img { object-position: center 47%; }
.photo-story-copy { position: relative; z-index: 2; width: min(720px, 88vw); margin: 0 0 clamp(54px, 8vw, 110px) max(6vw, 28px); }
.photo-story-copy h2 { margin-bottom: 22px; font-size: clamp(48px, 6.5vw, 92px); color: var(--paper-3); }
.photo-story-copy p:last-child { max-width: 640px; color: rgba(251,247,239,.78); font-size: 17px; }
h2 { font-size: clamp(46px, 5.4vw, 82px); letter-spacing: -.045em; }
.intro-copy h2 { max-width: 700px; }
.intro-copy > p { max-width: 670px; }
.large-copy { font-family: var(--serif); font-size: clamp(20px, 2vw, 28px); font-weight: 700; line-height: 1.3; }
blockquote { margin: 34px 0 0; padding: 22px 0 0 30px; border-left: 3px solid var(--copper); font-family: var(--serif); font-size: 22px; font-weight: 700; line-height: 1.35; }

.dispute { color: var(--ink); background: var(--paper); }
.fundraiser-story { max-width: 780px; margin: 0 auto; }
.fundraiser-story .section-heading { margin-bottom: 38px; }
.fundraiser-story h2 { font-size: clamp(38px, 4.5vw, 58px); }
.story-chapter { margin-bottom: 32px; }
.story-chapter h3 { font-size: clamp(25px, 2.7vw, 32px); line-height: 1.18; letter-spacing: -.025em; }
.story-chapter p { margin: 14px 0; font-size: 17px; line-height: 1.75; color: #514a43; }
.additional-history { margin: 22px 0; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.additional-history summary { cursor: pointer; font-size: 14px; font-weight: 650; line-height: 1.5; }
.additional-history p { font-size: 15px; }
.story-plan { padding-top: 30px; border-top: 1px solid var(--line); margin-bottom: 0; }
.story-plan .button { margin-top: 10px; }
.timeline-intro { margin: 18px 0 0; color: #655a4e; }
.case-timeline { list-style: none; padding: 0; margin: 0 0 32px; }
.case-timeline li { display: grid; grid-template-columns: 135px minmax(0,1fr); gap: 22px; padding: 22px 0; border-top: 1px solid var(--line); }
.case-date { padding-top: 4px; color: #9d4e20; font-size: 12px; font-weight: 600; line-height: 1.6; }
.case-timeline h3 { font-family: var(--sans); font-size: 17px; font-weight: 600; line-height: 1.4; }
.case-timeline p { margin: 8px 0 0; font-size: 15px; line-height: 1.65; color: #514a43; }
.case-timeline a { color: #8b451b; font-size: 12px; text-underline-offset: 3px; white-space: nowrap; }
@media (max-width: 580px) {
  .case-timeline li { grid-template-columns: 1fr; gap: 7px; padding-block: 20px; }
  .case-date { padding-top: 0; }
}
.dispute-heading .eyebrow-light, .chronology-heading .eyebrow-light { color: var(--copper-deep); }
.section-heading { max-width: 1050px; margin-bottom: 60px; }
.section-heading h2 span { color: var(--copper); }
.dispute-heading { margin-bottom: 80px; }
.dispute-intro { max-width: 790px; margin: 30px 0 0; color: #685f56; font-family: var(--serif); font-size: clamp(20px, 2.1vw, 30px); line-height: 1.35; }
.evidence-grid { margin: 0 0 22px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--white-line); }
.evidence-card { min-height: 310px; padding: clamp(30px, 4vw, 54px); display: flex; flex-direction: column; background: var(--paper-3); box-shadow: inset 0 0 0 1px var(--line); }
.evidence-card > span { color: var(--copper-deep); font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.evidence-card strong { max-width: 520px; margin: 28px 0 18px; font-family: var(--serif); font-size: clamp(28px, 3.2vw, 48px); line-height: 1.05; }
.evidence-card p { max-width: 580px; margin: auto 0 0; color: #6f655b; font-size: 14px; }
.evidence-card-denied { background: var(--copper); color: #271f19; }
.evidence-card-denied > span { color: #5f2f17; }
.evidence-card-denied p { color: rgba(39,31,25,.8); }
.policy-test { margin: 24px 0 60px; padding: 20px 24px; border-left: 3px solid var(--copper); color: #5d544b; background: rgba(255,255,255,.42); font-family: var(--serif); font-size: 18px; }
.policy-test span { color: var(--ink); font-weight: 800; }
.contradiction { max-width: 1040px; margin: 0 auto 80px; padding: clamp(34px, 5vw, 68px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); background: var(--paper-2); }
.contradiction .eyebrow-light { color: var(--copper-deep); }
.contradiction h3 { max-width: 900px; font-size: clamp(34px, 4.3vw, 58px); line-height: 1.04; }
.contradiction > p:last-child { max-width: 850px; margin: 30px 0 0; color: #625950; font-size: 16px; }
.contradiction-quotes { margin: 38px 0 28px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: stretch; }
.contradiction-quotes q { padding: 28px; border-left: 3px solid var(--copper); background: rgba(255,255,255,.055); font-family: var(--serif); font-size: clamp(18px, 2vw, 27px); font-weight: 700; line-height: 1.3; }
.contradiction-quotes > span { display: grid; place-items: center; color: var(--copper); font-size: 30px; }
.chronology-heading { max-width: 1180px; margin: 0 auto 52px; }
.chronology-heading h3 { font-size: clamp(42px, 5vw, 72px); }
.story-timeline { max-width: 1180px; margin: 0 auto 70px; }
.story-step { display: grid; grid-template-columns: 62px 150px 1fr; gap: 28px; }
.step-marker { position: relative; display: flex; justify-content: center; }
.step-marker span { position: relative; z-index: 2; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--copper); border-radius: 50%; color: var(--copper-deep); background: var(--paper); font-size: 10px; font-weight: 900; }
.step-marker i { position: absolute; top: 46px; bottom: 0; width: 1px; background: linear-gradient(var(--copper), var(--white-line)); }
.story-step:last-child .step-marker i { display: none; }
.step-date { padding-top: 11px; color: #efaa70; font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.step-copy { padding: 4px 0 58px; }
.step-copy h3 { margin-bottom: 16px; font-size: clamp(30px, 3.2vw, 48px); }
.step-copy > p { max-width: 800px; color: #6b6259; }
.record-note { padding: 22px 24px; border-left: 3px solid var(--copper); background: var(--paper-3); color: var(--ink) !important; font-family: var(--serif); font-size: 18px; line-height: 1.45; }
.story-step-denied .step-marker span { color: var(--ink); background: var(--copper); }
.story-step-denied .step-copy { padding: 34px; color: var(--paper-3); background: var(--ink); }
.story-step-denied .step-copy > p { color: rgba(251,247,239,.72); }
.story-step-denied .record-note { color: var(--paper-3) !important; background: rgba(255,255,255,.06); }
.trust-break { max-width: 1040px; margin: 0 auto 70px; padding: 0 0 60px; display: block; border-bottom: 1px solid var(--line); color: var(--ink); }
.trust-break-number { margin-bottom: 18px; color: var(--copper-deep); font-size: 11px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.trust-break h3 { max-width: 820px; font-size: clamp(32px, 4vw, 52px); }
.trust-break p:last-child { max-width: 800px; color: #665d54; }
.denial-clash { margin: 0 0 22px; display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--line); }
.denial-clash > div { padding: clamp(30px, 4vw, 54px); background: var(--paper-3); }
.denial-clash > div + div { border-left: 1px solid var(--line); background: var(--paper-2); }
.denial-clash p { margin: 18px 0 0; font-family: var(--serif); font-size: clamp(18px, 1.8vw, 25px); line-height: 1.4; }
.dispute-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.fact-card, .position-card { min-height: 470px; padding: clamp(30px, 4vw, 58px); }
.fact-card { color: var(--ink); background: var(--paper-3); }
.position-card { border: 1px solid var(--white-line); background: #332d28; }
.card-kicker { color: var(--copper); font-size: 10px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.fact-card h3 { margin: 26px 0; font-size: clamp(34px, 4vw, 55px); }
.fine-print { color: #786f66; font-size: 12px; }
.quote-pair { margin: 30px 0; display: grid; gap: 10px; }
.quote-pair q { padding: 18px; border-left: 3px solid var(--copper); background: rgba(255,255,255,.05); font-family: var(--serif); font-size: 20px; font-weight: 700; line-height: 1.25; }
.family-response { margin: 22px 0; padding: 32px clamp(30px, 5vw, 70px); display: grid; grid-template-columns: 150px 1fr; gap: 30px; align-items: start; border-left: 4px solid var(--copper); background: var(--paper-2); color: #261f1a; }
.family-response span { font-size: 10px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.family-response p { max-width: 900px; margin: 0; font-family: var(--serif); font-size: clamp(22px, 2.4vw, 34px); font-weight: 700; line-height: 1.25; }
.family-response .burden-line { margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(38,31,26,.24); font-family: var(--sans); font-size: 14px; font-weight: 650; line-height: 1.6; }
.our-plan { margin-top: 22px; padding: clamp(36px, 6vw, 84px); color: var(--ink); background: var(--paper-3); }
.our-plan h3 { max-width: 900px; font-size: clamp(44px, 6vw, 86px); }
.our-plan > p:not(.eyebrow) { max-width: 900px; font-size: 17px; }
.our-plan .plan-emphasis { margin: 28px 0 !important; padding-left: 24px; border-left: 3px solid var(--copper); font-family: var(--serif); font-size: clamp(21px, 2.2vw, 30px) !important; font-weight: 700; line-height: 1.35; }
.timeline { border-top: 1px solid var(--white-line); border-bottom: 1px solid var(--white-line); }
.timeline summary { padding: 24px 0; display: flex; justify-content: space-between; font-size: 12px; font-weight: 900; letter-spacing: .12em; list-style: none; text-transform: uppercase; cursor: pointer; }
.timeline summary::-webkit-details-marker { display: none; }
.timeline[open] summary span { transform: rotate(45deg); }
.timeline-list { padding: 4px 0 30px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--white-line); }
.timeline-list div { padding: 24px; background: var(--ink); }
.timeline-list time { color: var(--copper); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.timeline-list p { font-size: 13px; }

.help { background: var(--paper-3); }
.centered { margin-inline: auto; text-align: center; }
.centered > p:last-child { max-width: 760px; margin: 22px auto 0; }
.product { margin: 32px auto; max-width: 1240px; display: grid; grid-template-columns: 1.15fr .85fr; box-shadow: var(--shadow); }
.product-art, .product-copy, .collar-concept { min-height: 540px; }
.product-art { padding: 42px; display: flex; align-items: center; background: var(--paper-2); }
.asset-slot-product { min-height: 430px; color: #7b6e62; background: rgba(255,255,255,.34); }
.shirt-figure { position: relative; width: 100%; margin: 0; }
.shirt-mockup { width: 100%; display: block; box-shadow: 0 18px 48px rgba(50,40,30,.14); }
.art-detail { position: absolute; right: -20px; bottom: -28px; width: 150px; padding: 10px; color: var(--paper-3); background: var(--ink); box-shadow: 0 14px 36px rgba(0,0,0,.24); }
.art-detail img { width: 100%; aspect-ratio: 1; display: block; object-fit: contain; background: #151311; }
.art-detail span { padding-top: 8px; display: block; font-size: 9px; font-weight: 900; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.product-copy { padding: clamp(36px, 5vw, 74px); display: flex; flex-direction: column; justify-content: center; background: white; }
.product-copy h3 { font-size: clamp(43px, 5vw, 72px); }
.tbd-row { padding: 14px 0; display: flex; justify-content: space-between; gap: 22px; border-top: 1px solid var(--line); font-size: 12px; }
.tbd-row span { font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.tbd-row strong { text-align: right; }
.product-copy .button { margin-top: 22px; }
.preview-note { margin-top: 10px; color: #756c64; }
.product-collar { grid-template-columns: .88fr 1.12fr; color: var(--ink); background: white; }
.product-collar .product-copy { background: white; }
.product-shirt { color: var(--paper-3); background: var(--ink); }
.product-shirt .product-copy { background: var(--ink); }
.dark-row { border-color: var(--white-line); }
.light-note { color: rgba(251,247,239,.58); }
.collar-concept { position: relative; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at center, rgba(131,205,221,.19), transparent 22%), linear-gradient(150deg, #3c342e, #292521); }
.collar-concept > span { position: absolute; bottom: 28px; font-size: 10px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.orbit { position: absolute; width: 64%; aspect-ratio: 1; border: 22px solid transparent; border-radius: 50%; background: linear-gradient(90deg, var(--copper), #f2d78a, var(--blue), #9e73b8, var(--copper)) border-box; mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0); mask-composite: exclude; transform: rotate(-12deg); filter: drop-shadow(0 0 28px rgba(131,205,221,.25)); }
.orbit-two { width: 48%; border-width: 2px; opacity: .45; }
.orbit-center { z-index: 2; width: 104px; height: 104px; display: grid; place-items: center; border-radius: 50%; color: var(--copper); background: var(--ink); font-size: 46px; }

.donate { display: grid; grid-template-columns: 1.1fr .9fr; gap: 9vw; align-items: center; background: var(--paper-2); }
.donate-copy > p { max-width: 720px; }
.estimate { margin-top: 34px; border-top: 1px solid var(--line); }
.estimate > div { padding: 14px 0; display: flex; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--line); font-size: 13px; }
.estimate-total { font-family: var(--serif); font-size: 18px !important; font-weight: 800; }
.donation-card { padding: clamp(34px, 5vw, 58px); background: var(--paper-3); box-shadow: var(--shadow); }
.donation-card h3 { margin: 18px 0 26px; font-size: 42px; }
.preview-pill { padding: 6px 10px; border-radius: 999px; color: #60441f; background: #f0ce8c; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.amounts { margin-bottom: 14px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.amounts button { min-height: 52px; border: 1px solid var(--line); background: transparent; color: var(--ink); font-size: 12px; font-weight: 900; cursor: pointer; }
.amounts button:hover, .amounts button.selected { border-color: var(--copper); background: rgba(215,126,59,.14); }
.donation-card > p { color: #746d64; font-size: 11px; }

.answers { background: var(--paper); }
.faq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 44px; border-top: 1px solid var(--line); }
.faq-grid details { padding: 24px 0; border-bottom: 1px solid var(--line); }
.faq-grid summary { font-family: var(--serif); font-size: 19px; font-weight: 800; line-height: 1.25; cursor: pointer; }
.faq-grid p { color: #6f665d; font-size: 13px; }
.updates { background: var(--paper-3); }
.empty-update { padding: 44px; border: 1px dashed #9f9284; text-align: center; }
.empty-update span { font-family: var(--serif); font-size: 26px; font-weight: 800; }
.empty-update p { max-width: 600px; margin: 8px auto 0; color: #756d65; }
.closing { position: relative; isolation: isolate; min-height: 680px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--paper-3); background: linear-gradient(rgba(31,28,25,.7), rgba(31,28,25,.84)), url("assets/apollo-beach.jpg") center 43% / cover no-repeat; text-align: center; }
.closing::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at center, rgba(215,126,59,.1), transparent 32%); }
.closing h2 { font-size: clamp(58px, 8vw, 118px); text-transform: uppercase; }
.closing-star { margin-bottom: 26px; color: var(--copper); font-size: 60px; }
.closing > p:not(.eyebrow) { color: rgba(251,247,239,.7); }
.closing-actions { justify-content: center; }
footer { min-height: 150px; padding: 38px max(6vw, 28px); display: flex; align-items: center; justify-content: space-between; gap: 24px; color: var(--paper-3); background: #1f1c19; border-top: 1px solid var(--white-line); }
footer p { color: rgba(251,247,239,.5); font-size: 11px; }
.mobile-donate { display: none; }

dialog { width: min(640px, calc(100% - 32px)); max-height: 86vh; padding: 42px; border: 0; color: var(--ink); background: var(--paper-3); box-shadow: 0 30px 100px rgba(0,0,0,.4); }
dialog::backdrop { background: rgba(31,28,25,.72); backdrop-filter: blur(5px); }
dialog h2 { margin-bottom: 22px; font-size: 46px; }
dialog li { margin-bottom: 8px; }
.dialog-close { position: absolute; top: 12px; right: 16px; border: 0; background: none; font-size: 30px; cursor: pointer; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 950px) {
  .desktop-nav { display: flex; }
  .site-header .button { margin-left: auto; }
  .hero { grid-template-columns: 1fr; padding-top: 90px; }
  .hero-visual { min-height: 600px; }
  .hero-photo-wrap { height: 600px; }
  .goal-card { right: 20px; }
  .intro, .donate { grid-template-columns: 1fr; }
  .intro-photo { order: 2; }
  .dispute-grid { grid-template-columns: 1fr; }
  .evidence-grid { grid-template-columns: 1fr; }
  .contradiction-quotes { grid-template-columns: 1fr; }
  .contradiction-quotes > span { transform: rotate(90deg); }
  .denial-clash { grid-template-columns: 1fr; }
  .denial-clash > div + div { border-top: 1px solid var(--white-line); border-left: 0; }
  .trust-break { grid-template-columns: 1fr; gap: 28px; }
  .timeline-list { grid-template-columns: repeat(2, 1fr); }
  .product, .product-collar { grid-template-columns: 1fr; }
  .product-collar .collar-concept { grid-row: 1; }
}

@media (max-width: 640px) {
  html { scroll-padding-top: 72px; }
  .preview-bar { justify-content: space-between; text-align: left; }
  .site-header { height: 62px; margin-bottom: -62px; padding-inline: 18px; }
  .site-header .brand { font-size: 18px; text-shadow: 0 1px 8px #10221e; }
  .site-header .button { display: none; }
  .brand { font-size: 12px; }
  .hero { min-height: auto; padding: 76px 22px 92px; gap: 50px; }
  h1 { font-size: clamp(52px, 17vw, 78px); }
  .hero-visual { min-height: 490px; }
  .hero-photo-wrap { height: 490px; }
  .hero-photo-wrap figcaption { right: 14px; bottom: 14px; }
  .asset-slot { padding: 24px; }
  .goal-card { right: 0; bottom: -50px; width: 92%; }
  .section-pad { padding: 82px 22px; }
  h2 { font-size: clamp(42px, 13vw, 64px); }
  .story-photo { height: 560px; }
  .photo-story { min-height: 620px; }
  .photo-story::after { background: linear-gradient(0deg, rgba(22,19,17,.9) 0%, rgba(22,19,17,.26) 74%, rgba(22,19,17,.12) 100%); }
  .photo-story-copy { margin: 0 22px 54px; }
  .dispute { padding-inline: 18px; }
  .fact-card, .position-card { padding: 28px 22px; }
  .story-step { grid-template-columns: 46px 1fr; gap: 16px; }
  .step-date { grid-column: 2; padding: 7px 0 0; }
  .step-copy { grid-column: 2; padding-bottom: 46px; }
  .step-marker { grid-row: 1 / span 2; }
  .step-marker span { width: 40px; height: 40px; }
  .step-marker i { top: 40px; }
  .story-step-denied .step-copy { padding: 24px 18px; }
  .family-response { grid-template-columns: 1fr; gap: 10px; }
  .timeline-list { grid-template-columns: 1fr; }
  .product-art, .product-copy, .collar-concept { min-height: 470px; }
  .product-art { padding: 18px; }
  .art-detail { right: -6px; bottom: -34px; width: 112px; }
  .product-copy { padding: 38px 24px; }
  .collar-concept { min-height: 420px; }
  .orbit { width: 78%; }
  .faq-grid { grid-template-columns: 1fr; }
  .closing { padding-bottom: 120px; }
  footer { padding-bottom: 90px; flex-direction: column; align-items: flex-start; }
  .mobile-donate { position: fixed; z-index: 45; right: 14px; bottom: 14px; left: 14px; min-height: 50px; display: grid; place-items: center; background: var(--copper); color: #241f1b; box-shadow: 0 10px 40px rgba(0,0,0,.28); font-size: 11px; font-weight: 900; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
  dialog { padding: 34px 24px; }
  dialog h2 { font-size: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .button { transition: none; }
}

/* Compact fundraiser layout, shared with the Wix handoff. */
.section-pad { padding: 76px max(7vw, 24px); }
h1 { font-size: clamp(54px, 6.6vw, 96px); text-transform: none; line-height: 1.02; letter-spacing: -.055em; }
h2 { font-size: clamp(36px, 4vw, 54px); line-height: 1.08; }
.hero { min-height: auto; padding-block: 60px; gap: 5vw; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
.hero-lede { font-size: clamp(22px, 2vw, 28px); margin-top: 24px; }
.hero-copy > p:not(.eyebrow):not(.hero-lede) { font-size: 16px; max-width: 440px; }
.hero-visual { min-height: 0; display: block; }
.hero-photo-wrap { width: 100%; height: clamp(340px, 32vw, 490px); box-shadow: none; border-radius: 4px 4px 0 0; }
.hero-photo { transform: none; object-position: 42% center; }
.hero-photo-wrap figcaption { right: 18px; bottom: 18px; border: 0; padding: 0; backdrop-filter: none; }
.goal-card { position: static; width: 100%; padding: 20px 24px; grid-template-columns: auto 1fr; column-gap: 22px; box-shadow: none; border-radius: 0 0 4px 4px; }
.goal-label { grid-column: 1; }
.goal-card strong { grid-column: 1; font-size: 34px; }
.goal-card > span:not(.goal-label) { grid-column: 2; grid-row: 1 / 3; align-self: center; padding-left: 22px; border-left: 1px solid var(--line); font-size: 14px; max-width: 200px; }
.button { text-transform: none; font-size: 13px; font-weight: 750; letter-spacing: .02em; border-radius: 4px; }
.hero-actions { margin: 24px 0 0; }
.intro { max-width: 1200px; margin: 0 auto; grid-template-columns: minmax(240px, .7fr) minmax(0, 1fr); gap: 7vw; padding-bottom: 48px; }
.story-photo { height: 420px; border-radius: 4px; box-shadow: none; object-position: center 32%; }
.intro-copy .large-copy { font-size: 23px; line-height: 1.4; }
.intro-copy > p { color: #514a43; }
.dispute { padding-top: 38px; }
.fundraiser-story { max-width: 720px; padding-top: 40px; border-top: 1px solid var(--line); }
.fundraiser-story h2 { font-size: clamp(36px, 4vw, 48px); }
.fundraiser-story .section-heading { margin-bottom: 30px; }
.story-chapter { margin-bottom: 28px; }
.story-chapter h3 { font-size: 27px; }
.story-chapter p { font-size: 17px; line-height: 1.72; }
.donate { gap: 6vw; }
.donate-copy .large-copy { font-family: var(--sans); font-size: 17px; font-weight: 400; line-height: 1.65; }
.donation-card { padding: 32px; border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 12px 30px rgba(35,28,22,.07); }
.donation-card h3 { font-size: 30px; }
.section-heading { margin-bottom: 34px; }
.products-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; max-width: 1100px; margin: 0 auto; }
.product, .product-collar { margin: 0; width: 100%; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; box-shadow: none; }
.product-art, .collar-concept { min-height: 0; height: 300px; flex-shrink: 0; }
.product-art { padding: 16px; background: #eee5d8; }
.shirt-figure { height: 100%; }
.shirt-mockup { height: 100%; object-fit: contain; box-shadow: none; }
.product-copy { min-height: 0; flex: 1; padding: 30px; justify-content: flex-start; }
.product-copy h3 { font-size: 34px; line-height: 1.1; }
.product-copy p { font-size: 15px; }
.product-copy .button { margin-top: auto; }
.product-copy .tbd-row:last-of-type { margin-bottom: 24px; }
.product-collar .collar-concept { order: -1; }
.orbit { width: 210px; border-width: 15px; }
.orbit-two { width: 160px; border-width: 2px; }
.orbit-center { width: 70px; height: 70px; font-size: 32px; }
.collar-concept > span { font-size: 9px; bottom: 15px; }
.answers { padding-block: 52px; }
.answers h2 { font-size: 36px; }
.closing { min-height: 360px; padding-block: 62px; background-position: center 42%; }
.closing h2 { font-size: clamp(38px, 4.6vw, 62px); line-height: 1.08; text-transform: none; }
footer { min-height: 100px; padding-block: 24px; }
.reveal { opacity: 1; transform: none; transition: none; }

@media (max-width: 800px) {
  .hero { grid-template-columns: 1fr; padding: 34px 24px 40px; gap: 30px; }
  .hero-copy { max-width: 600px; }
  h1 { font-size: clamp(48px, 8vw, 70px); }
  .hero-photo-wrap { height: clamp(250px, 65vw, 440px); }
  .intro { grid-template-columns: minmax(180px, .7fr) minmax(0, 1fr); gap: 28px; }
  .intro-photo { order: 0; }
  .story-photo { height: 390px; }
  .product-copy { padding: 24px; }
  .product-art, .collar-concept { height: 240px; }
}

@media (max-width: 560px) {
  .preview-bar { font-size: 10px; gap: 10px; padding: 6px 16px; }
  .section-pad { padding: 48px 22px; }
  .hero { padding: 30px 22px 34px; }
  .hero .eyebrow { margin-bottom: 14px; }
  .hero-lede { font-size: 21px; margin: 18px 0 10px; }
  .hero-copy > p:not(.eyebrow):not(.hero-lede) { font-size: 15px; }
  .hero-actions { gap: 8px; margin-top: 18px; }
  .hero-actions .button { padding-inline: 14px; font-size: 12px; }
  .goal-card { padding: 17px; gap: 0 15px; }
  .goal-card strong { font-size: 30px; }
  .goal-card > span:not(.goal-label) { padding-left: 15px; font-size: 12px; }
  .intro { grid-template-columns: 1fr; gap: 24px; }
  .intro-photo { display: none; }
  .intro-copy .large-copy { font-size: 21px; }
  .dispute { padding-top: 0; }
  .fundraiser-story { padding-top: 32px; }
  .story-chapter h3 { font-size: 25px; }
  .story-chapter p { font-size: 16px; }
  .products-grid { grid-template-columns: 1fr; gap: 20px; }
  .product-art, .collar-concept { height: 245px; }
  .donation-card { padding: 24px; }
  .donate { gap: 24px; }
  .closing { min-height: 320px; padding-bottom: 56px; }
  footer { padding: 24px 22px 90px; gap: 8px; }
}

/* The family's letter leads the page; the appeal follows it. */
.letter-opening { background: var(--paper-3); }
.letter-title { padding: 48px max(6vw, 24px) 44px; background: var(--ink); color: var(--paper-3); }
.letter-title .eyebrow { color: #efaa70; }
.letter-title h1 { max-width: 1200px; margin: 0 auto; font-size: clamp(48px, 6.2vw, 88px); }
.letter-title .eyebrow { max-width: 1200px; margin-inline: auto; }
.family-letter-layout { max-width: 1320px; margin: 0 auto; padding: 54px max(4vw, 24px) 60px; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 70px); align-items: start; }
.letter-photo { position: sticky; top: 96px; margin: 0; }
.letter-photo img { display: block; width: 100%; height: auto; max-height: 760px; object-fit: cover; object-position: center 28%; border-radius: 4px; }
.letter-photo figcaption { margin-top: 12px; font-family: var(--serif); font-size: 16px; font-style: italic; color: #6b6055; line-height: 1.4; }
.family-letter { max-width: 680px; color: #443c34; font-size: 16px; line-height: 1.72; }
.family-letter p { margin: 0 0 19px; }
.family-letter .letter-greeting { font-family: var(--serif); font-size: clamp(25px, 2.6vw, 34px); color: var(--ink); line-height: 1.2; margin-bottom: 25px; }
.family-letter .letter-signature { font-family: var(--serif); color: var(--ink); font-size: 22px; line-height: 1.6; margin: 25px 0 0; }
.letter-signature span { font-size: 19px; font-style: italic; }
.care-overview { padding: 44px max(7vw, 24px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 50px; align-items: center; background: var(--ink); color: var(--paper-3); }
.care-overview .eyebrow { color: #efaa70; }
.care-overview h2 { font-size: clamp(32px, 3.6vw, 46px); }
.care-overview-copy > p:not(.eyebrow) { max-width: 680px; color: #d8cfc2; }
.care-overview-goal { display: grid; gap: 8px; padding: 20px 0 20px 40px; border-left: 1px solid var(--white-line); }
.care-overview-goal .goal-label { color: #efaa70; }
.care-overview-goal strong { font-family: var(--serif); font-size: 50px; line-height: 1; }
.care-overview-goal > span:last-child { font-size: 13px; color: #d8cfc2; }
@media (max-width: 580px) {
  .letter-title { padding: 34px 22px; }
  .letter-title h1 { max-width: 600px; font-size: clamp(46px, 8.8vw, 65px); }
  .family-letter-layout { grid-template-columns: 1fr; gap: 30px; padding: 30px 22px 40px; }
  .letter-photo { position: static; width: 100%; }
  .letter-photo img { height: clamp(310px, 90vw, 490px); object-position: center 27%; }
  .family-letter { max-width: none; }
  .family-letter .letter-signature { font-size: 21px; }
  .care-overview { grid-template-columns: 1fr; gap: 28px; padding: 34px 22px; }
  .care-overview-goal { padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--white-line); }
}

/* Keep the portrait and letter together at tablet and desktop widths. */
@media (min-width: 581px) {
  .family-letter-layout { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); padding: 38px clamp(22px, 3.5vw, 48px) 48px; gap: clamp(24px, 3.5vw, 48px); }
  .family-letter { font-size: clamp(15px, 1.3vw, 17px); line-height: 1.75; }
  .family-letter p { margin-bottom: 16px; }
  .letter-photo img { max-height: none; }
}

.next-steps { background: var(--paper-3); }
.next-steps > * { max-width: 1100px; margin-inline: auto; }
.next-steps h2 { font-size: clamp(32px, 4vw, 46px); }
.care-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 0; list-style: none; }
.care-steps li { display: flex; align-items: flex-start; gap: 20px; border-top: 1px solid var(--line); padding-top: 24px; }
.step-number { color: var(--copper); font-family: var(--serif); font-size: 30px; }
.care-steps h3 { font-size: 28px; margin: 0 0 12px; }
.care-steps p { margin: 0; }
.steps-note { color: #6b6055; font-size: 14px; margin-top: 24px; }
@media (max-width: 580px) { .care-steps { grid-template-columns: 1fr; gap: 24px; } }

.case-documents { background: var(--paper-3); border-top: 1px solid var(--line); }
.documents-inner { max-width: 1100px; margin: auto; }
.case-documents h2 { font-size: clamp(32px, 4vw, 46px); }
.case-documents .section-heading > p:last-child { max-width: 720px; }
.featured-document { display: grid; grid-template-columns: 170px 1fr; gap: 32px; align-items: center; padding: 28px; margin-bottom: 30px; border: 1px solid var(--line); border-radius: 6px; text-decoration: none; background: #fffdf8; color: var(--ink); }
.featured-document > img { width: 100%; max-height: 220px; object-fit: contain; box-shadow: 0 3px 12px #0002; }
.featured-document h3 { font-size: 30px; margin: 10px 0; }
.featured-document p { max-width: 600px; margin-bottom: 18px; }
.document-link { color: #9d4e20; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.document-groups > details { border-top: 1px solid var(--line); padding: 20px 0; }
.document-groups > details:last-child { border-bottom: 1px solid var(--line); }
.document-groups summary { font-family: var(--serif); font-size: 23px; cursor: pointer; }
.document-groups summary > span { font-family: var(--sans); font-size: 12px; color: #6b6055; margin-left: 12px; white-space: nowrap; }
.document-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 24px; }
.document-card { display: block; padding: 16px; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 4px; text-decoration: none; }
.document-card:hover, .featured-document:hover { border-color: #9d4e20; }
.document-card img { width: 100%; height: 180px; object-fit: contain; background: #f5f2ed; }
.document-card h3 { margin: 16px 0 8px; font-family: var(--sans); font-size: 16px; line-height: 1.4; }
.document-card span { font-size: 12px; color: #6b6055; }
.document-download { display: grid; gap: 8px; margin-top: 26px; }
.document-download a { color: #9d4e20; text-underline-offset: 4px; }
.document-download span { font-size: 12px; color: #6b6055; }
#document-dialog { width: min(1000px,96vw); max-width: none; height: 92vh; max-height: 92vh; padding: 0; overflow: hidden; }
#document-dialog[open] { display: flex; flex-direction: column; }
.document-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 22px; }
.document-toolbar h2 { font-family: var(--sans); font-size: 18px; margin: 0; }
.document-toolbar button { font-size: 28px; background: transparent; border: 0; padding: 4px 12px; cursor: pointer; }
.document-pagination { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 0 22px 16px; font-size: 13px; }
.document-pagination button { background: white; border: 1px solid var(--line); padding: 10px; cursor: pointer; }
.document-pagination button:disabled { opacity: .4; cursor: default; }
.document-pagination a { margin-left: auto; color: #9d4e20; }
.document-image-wrap { overflow: auto; background: #ddd8d0; padding: 20px; flex: 1; }
#document-image { display: block; width: 100%; height: auto; margin: 0 auto; }
@media (max-width: 700px) { .document-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 580px) {
  .featured-document { grid-template-columns: 90px 1fr; gap: 18px; padding: 18px; align-items: start; }
  .featured-document h3 { font-size: 24px; }
  .featured-document p { font-size: 14px; }
  .document-groups summary { font-size: 20px; }
  .document-groups summary > span { display: block; margin: 5px 0 0 18px; }
  .document-card { padding: 12px; }
  .document-card img { height: 140px; }
  .document-card h3 { font-size: 14px; }
  .document-image-wrap { padding: 6px; }
}

/* Photo-led opening and a clearer path from the family story to support. */
.apollo-masthead { position: relative; isolation: isolate; min-height: 700px; min-height: min(820px, calc(100svh - 100px)); overflow: hidden; background: #18251f; color: #fff8ec; }
.masthead-photo { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: 70% 44%; }
.masthead-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(15,27,22,.95) 0%, rgba(15,27,22,.83) 28%, rgba(15,27,22,.38) 49%, rgba(15,27,22,0) 70%), linear-gradient(0deg,rgba(15,27,22,.25),transparent 50%); }
.masthead-content { position: relative; width: 53%; max-width: 800px; padding: calc(70px + clamp(48px,6vw,88px)) 0 40px max(6vw,28px); }
.masthead-content .eyebrow { color: #efd8b6; font-size: 10px; letter-spacing: .18em; }
.masthead-content h1 { font-size: clamp(56px,6.1vw,94px); line-height: 1.02; text-transform: none; letter-spacing: -.045em; font-weight: 400; }
.masthead-content h1 span { color: #f1b37b; font-style: italic; }
.masthead-lede { font-family: var(--serif); font-size: clamp(23px,2.2vw,31px); line-height: 1.35; margin: 26px 0 16px; }
.masthead-story { max-width: 410px; font-size: 15px; line-height: 1.75; color: #e5e6dc; }
.masthead-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 27px 0 30px; }
.masthead-actions .button { min-height: 52px; font-size: 12px; letter-spacing: .035em; text-transform: none; border-radius: 4px; padding-inline: 22px; }
.masthead-actions .button span { padding-left: 20px; font-size: 18px; }
.masthead-actions .button-ghost { background: #10221e55; border-color: #fff8ec66; }
.masthead-goal { display: flex; gap: 20px; align-items: center; max-width: 420px; border-top: 1px solid #fff8ec45; padding-top: 23px; }
.masthead-goal strong { font-family: var(--serif); font-weight: 400; font-size: 36px; line-height: 1; }
.masthead-goal span { font-size: 11px; line-height: 1.6; color: #e5e6dc; }
.masthead-letter-link { display: inline-flex; gap: 16px; margin-top: 28px; color: #f3ecdf; text-decoration: none; border-bottom: 1px solid #f3ecdf66; font-size: 12px; padding-bottom: 4px; }
.family-letter-layout { padding-block: 80px; }
.family-letter .eyebrow { font-size: 10px; margin-bottom: 18px; }
.family-letter .letter-greeting { font-size: clamp(28px,3vw,42px); font-weight: 400; line-height: 1.18; margin-bottom: 24px; }
.letter-photo { top: 100px; }
.letter-photo img { aspect-ratio: 1400 / 2337; height: auto; object-fit: cover; object-position: center; border-radius: 110px 110px 6px 6px; }
.letter-photo figcaption { text-align: center; margin-top: 18px; }
/* Let the letter determine the shared row height; crop the portrait to fit. */
@media (min-width: 581px) {
  .family-letter-layout { align-items: stretch; }
  .letter-photo { position: relative; top: auto; align-self: stretch; min-height: 0; }
  .letter-photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; aspect-ratio: auto; object-fit: cover; object-position: center; }
}
.next-steps { background: #ece6d9; padding-block: 56px; text-align: center; }
.next-steps .section-heading { margin-bottom: 28px; }
.next-steps h2, .donate h2, .help h2, .dispute h2, .case-documents h2, .answers h2 { font-weight: 400; line-height: 1.1; letter-spacing: -.025em; }
.care-steps h3 { font-weight: 400; }
.care-steps p { font-size: 15px; }
.donate { background: #faf6ed; gap: clamp(32px,6vw,86px); padding-block: 80px; }
.donate-copy { min-width: 0; container-type: inline-size; }
.donate h2 { font-size: min(58px, 7.2cqi); white-space: nowrap; }
.donation-card { background: #fffdf9; border: 1px solid #d7b895; border-radius: 14px; padding: 36px; box-shadow: 0 16px 50px #674b2e12; }
.donation-card .preview-pill { margin-bottom: 18px; }
.donation-card .eyebrow { margin-bottom: 12px; }
.donation-card h3 { font-size: 36px; font-weight: 400; }
.donation-card .donation-intro { font-size: 15px; color: #655a4e; margin: 16px 0 24px; }
.amounts { gap: 10px; }
.amounts button { min-height: 52px; border-radius: 5px; font-size: 16px; }
.amounts button.selected { background: #e8c19c; border-color: #9d4e20; color: #241f1b; }
.donation-card .button { border-radius: 5px; font-size: 13px; letter-spacing: .02em; text-transform: none; min-height: 54px; }
.help { background: #ece6d9; padding-block: 80px; }
.help .section-heading { container-type: inline-size; }
.help h2 { font-size: min(62px, 6cqi); white-space: nowrap; }
.help .section-heading > p:last-child { max-width: 800px; font-size: 16px; margin: 18px auto 0; text-wrap: balance; }
.products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1240px; gap: 24px; }
.product, .product-collar { border: 0; border-radius: 10px; }
.product-art, .collar-concept { height: clamp(270px,29vw,390px); }
.product-art { background: #f5eee4; padding: 14px; }
.product-copy { padding: 30px 32px; }
.product-copy { container-type: inline-size; }
.product-copy h3 { font-weight: 400; font-size: min(28px, 8cqi); white-space: nowrap; }
.product-copy .product-status { display: inline-block; align-self: flex-start; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; border: 1px solid currentColor; border-radius: 20px; padding: 3px 11px; margin: 4px 0 14px; }
.product-copy .product-prelaunch { font-size: 13px; line-height: 1.65; margin: 0 0 24px; }
.product-copy .button { width: 100%; border-radius: 4px; font-size: 12px; letter-spacing: .025em; text-transform: none; }
.product-copy .preview-note { margin-top: 12px; text-align: center; }
.dispute { padding-block: 70px; background: #fbf7ef; }
.fundraiser-story { border-top: 0; padding-top: 0; }
.story-chapter h3 { font-weight: 400; }
.case-documents { background: #f1eadf; }
.answers { background: #fbf7ef; }
.closing { min-height: 430px; container-type: inline-size; }
.closing h2 { font-weight: 400; }
.closing-share { position: relative; max-width: 100%; font-size: min(14px, 2.7cqi); white-space: nowrap; color: #eee0cc; margin: 20px 0 0; }
.leash-placeholder { height: clamp(270px,29vw,390px); flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 24px; text-align: center; background: #e5ded0; color: #514b42; }
.leash-placeholder .eyebrow { margin: 0; }
.leash-placeholder-title { font-family: Georgia, serif; font-size: 38px; }
.leash-photos { display: grid; grid-template-columns: 1fr; background: #080e12; flex-shrink: 0; }
.leash-photos a { display: flex; min-width: 0; align-items: center; }
.leash-photos img { display: block; width: 100%; height: clamp(270px,29vw,390px); object-fit: cover; object-position: center 55%; }
.leash-photos a:focus-visible { outline: 3px solid #d77e3b; outline-offset: -3px; }
.collar-photo { display: block; flex-shrink: 0; }
.collar-photo img { display: block; width: 100%; height: clamp(270px,29vw,390px); object-fit: cover; object-position: center 25%; }
.collar-photo:focus-visible { outline: 3px solid #d77e3b; outline-offset: -3px; }
.product-shirt .shirt-specs { border-color: rgba(255,255,255,.25); }
.leash-specs { margin: 0 0 22px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 14px 0; }
.leash-specs summary { cursor: pointer; font-size: 13px; font-weight: 600; }
.leash-specs dl { font-size: 13px; line-height: 1.55; margin: 16px 0; }
.leash-specs dt { font-weight: 600; margin-top: 10px; }
.leash-specs dd { margin: 2px 0 0; }
.product-copy .spec-source { font-size: 11px; line-height: 1.5; color: #74685c; }
.leash-placeholder > span:last-child { font-size: 12px; }
.funds-note { padding: 48px 24px; max-width: 840px; margin: auto; }
.funds-note h2 { font-size: 28px; font-weight: 400; margin-bottom: 18px; }
.funds-note p { font-size: 15px; line-height: 1.75; }
.funds-note a { text-decoration: underline; text-underline-offset: 3px; }
.fundraising-progress { margin: 24px 0; }
.fundraising-progress-labels { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-size: 12px; }
.fundraising-progress-track { height: 12px; margin-top: 12px; border-radius: 20px; border: 1px solid #d7c9b8; background: repeating-linear-gradient(135deg, #e9dfd2, #e9dfd2 7px, #f4ede3 7px, #f4ede3 14px); }
.fundraising-progress #progress-note { font-size: 12px; line-height: 1.5; margin: 10px 0 0; }
.fundraising-progress-track[aria-valuenow] { background: #e9dfd2; }
.fundraising-progress-track { position: relative; overflow: hidden; }
.fundraising-progress-track::before { content: ''; display: block; width: var(--progress, 0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, #b65d28, #efa94f); box-shadow: inset 0 1px 2px #ffffff70; }
.campaign-progress { padding: 30px max(5vw, 20px) 28px; text-align: center; background: radial-gradient(ellipse at 50% 0%, #ffe4bc 0%, transparent 65%), linear-gradient(180deg, #fbf4e9, #f3ecdf); border-bottom: 1px solid #dfc9ad; box-shadow: inset 0 1px 0 #fff8; }
.campaign-progress-totals { display: flex; flex-wrap: nowrap; align-items: baseline; justify-content: center; gap: clamp(10px, 2vw, 24px); white-space: nowrap; }
.campaign-progress-totals > div { display: flex; align-items: baseline; gap: 7px; }
.campaign-progress-totals span { font-size: clamp(11px, 2.5vw, 14px); color: #716050; }
.campaign-progress-totals strong { font-size: clamp(21px, 4vw, 36px); font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.campaign-progress-totals > div:first-child strong { color: #a95125; }
.campaign-progress-totals .campaign-progress-divider { color: #bc916c; font-size: 24px; font-weight: 300; }
.campaign-progress .fundraising-progress-track { position: relative; width: min(100%, 960px); height: 20px; margin: 20px auto 22px; border: 1px solid #cba27c; border-radius: 999px; background: linear-gradient(180deg, #e4d1bb, #f9f0e4); box-shadow: inset 0 2px 5px #70462220, 0 2px 0 #fff9, 0 6px 18px #ad703016; }
.campaign-progress .fundraising-progress-track::after { content: ''; position: absolute; inset: 4px; border-radius: inherit; background: repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), #ad805044 calc(25% - 1px), #ad805044 25%); pointer-events: none; }
#hero-progress-note { font-size: 12px; color: #62594e; margin: 10px 0 20px; }
.campaign-promise { margin: 0 auto; max-width: none; text-align: center; font-size: clamp(10px, .92vw, 14px); line-height: 1.65; text-wrap: balance; }
.campaign-promise strong { font-weight: 500; }
@media (min-width: 1200px) { .campaign-promise { white-space: nowrap; } }
.campaign-promise a { text-decoration: underline; text-underline-offset: 3px; }
.funds-commitment { border-left: 3px solid #b96529; padding: 16px 20px; background: #f3ecdf; }
.apollo-gallery { background: #fbf7ef; }
.gallery-hint { display: block; margin-top: 24px; font-size: 12px; letter-spacing: .035em; color: #74685c; }
.apollo-photo-grid { display: flex; flex-wrap: wrap; gap: 12px; max-width: 1240px; margin: auto; align-items: flex-start; }
.apollo-photo-grid a { flex: var(--photo-ratio, 1) 1 calc(var(--photo-ratio, 1) * 220px); min-width: 0; display: block; overflow: hidden; border-radius: 5px; background: #eae2d7; box-shadow: 0 3px 12px #2b272310; transition: box-shadow .2s ease, transform .2s ease; }
.apollo-photo-grid img { display: block; width: 100%; height: auto; }
.apollo-photo-grid a { position: relative; max-width: min(100%, calc(var(--photo-ratio, 1) * 280px)); }
.apollo-photo-grid .photo-year { position: absolute; bottom: 6px; left: 6px; color: #ffad62; background: rgba(25, 20, 16, .72); padding: 2px 5px; border-radius: 3px; font-size: 10px; font-weight: 600; line-height: 1.3; letter-spacing: .02em; pointer-events: none; }
.apollo-photo-grid a:hover { transform: translateY(-3px); box-shadow: 0 8px 20px #2b272328; }
#photo-dialog { width: min(1100px, 96vw); max-width: 96vw; padding: 20px; background: #211f1b; color: #fbf7ef; border: 0; border-radius: 10px; }
#photo-dialog::backdrop { background: #111d; }
.photo-toolbar, .photo-navigation { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.photo-toolbar { margin-bottom: 16px; font-size: 13px; }
#photo-dialog button { background: transparent; color: inherit; border: 1px solid #ffffff40; padding: 10px 14px; border-radius: 5px; cursor: pointer; flex-shrink: 0; }
#photo-dialog button:focus-visible { outline: 3px solid #d77e3b; outline-offset: 3px; }
#album-photo { display: block; width: 100%; height: 66vh; object-fit: contain; }
#photo-caption { font-size: 13px; line-height: 1.5; text-align: center; margin: 16px 0; }
@media (prefers-reduced-motion: reduce) { .apollo-photo-grid a { transition: none; } .apollo-photo-grid a:hover { transform: none; } }
.apollo-photo-grid a:focus-visible { outline: 3px solid #b96529; outline-offset: 5px; }
@media (max-width: 900px) {
  .apollo-photo-grid a { flex-basis: calc(var(--photo-ratio, 1) * 180px); }
}
@media (max-width: 580px) {
  .apollo-gallery { padding-block: 48px; }
  .apollo-photo-grid { gap: 8px; }
  .apollo-photo-grid a { flex-basis: calc(var(--photo-ratio, 1) * 125px); }
  #photo-dialog { padding: 12px; }
  .photo-navigation { flex-wrap: wrap; gap: 8px; }
  #photo-caption { order: 3; width: 100%; }
}
@media (max-width: 1000px) {
  .products-grid { grid-template-columns: 1fr; max-width: 640px; }
}
@media (min-width: 581px) and (max-width: 900px) {
  .apollo-masthead { min-height: 670px; }
  .masthead-content { width: 57%; padding-left: 28px; padding-top: 118px; }
  .masthead-content h1 { font-size: clamp(48px,7.5vw,67px); }
  .masthead-shade { background: linear-gradient(90deg,#14261ff5 0%,#14261fd9 36%,#14261f40 65%,transparent); }
  .masthead-photo { object-position: 64% center; }
  .masthead-goal { gap: 14px; }
  .masthead-goal strong { font-size: 30px; }
}
@media (max-width: 580px) {
  .apollo-masthead { min-height: 0; padding-top: 320px; }
  .masthead-photo { height: 390px; object-position: 70% 25%; }
  .masthead-shade { background: linear-gradient(0deg,#18251f 0%,#18251f 38%,#18251f00 70%); }
  .masthead-content { width: 100%; max-width: none; padding: 0 24px 36px; }
  .masthead-content h1 { font-size: clamp(48px,13vw,68px); }
  .masthead-content .eyebrow { font-size: 9px; margin-bottom: 15px; }
  .masthead-lede { margin-top: 20px; font-size: 24px; }
  .masthead-story { font-size: 15px; }
  .masthead-actions { margin-block: 22px; gap: 10px; }
  .masthead-actions .button { flex: 1; padding: 13px 12px; font-size: 12px; }
  .masthead-actions .button span { padding-left: 8px; }
  .masthead-goal { gap: 18px; }
  .masthead-goal strong { font-size: 32px; }
  .family-letter-layout { padding-block: 42px; }
  .letter-photo img { height: 350px; border-radius: 80px 80px 5px 5px; }
  .family-letter { font-size: 16px; }
  .donate, .help, .dispute { padding-block: 48px; }
  .donation-card { padding: 26px; }
  .product-copy { padding: 26px; }
  .product-art, .collar-concept { height: 285px; }
  .closing { min-height: 400px; }
}

/* Light The Way Tee: three product photos (front + back, front, back). Added Oct 29, 2026. */
.product-shirt .product-art { background: #e7e7e2; }
.shirt-figure { display: flex; flex-direction: column; gap: 10px; }
.shirt-main { display: block; flex: 1; min-height: 0; }
.shirt-main .shirt-mockup { width: 100%; height: 100%; object-fit: contain; }
.shirt-main:focus-visible { outline: 3px solid #d77e3b; outline-offset: -3px; }
.shirt-thumbs { display: flex; justify-content: center; gap: 8px; flex-shrink: 0; }
.shirt-thumbs button { width: 52px; height: 52px; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 6px; background: #e7e7e2; box-shadow: 0 1px 4px rgba(43,39,35,.18); cursor: pointer; }
.shirt-thumbs button img { display: block; width: 100%; height: 100%; object-fit: cover; }
.shirt-thumbs button:hover, .shirt-thumbs button.selected { border-color: var(--copper); }
.shirt-thumbs button:focus-visible { outline: 3px solid #b96529; outline-offset: 2px; }
@media (max-width: 580px) { .shirt-thumbs button { width: 44px; height: 44px; } }

/* Gallery: justified rows (set by gallery.js). Added Oct 29, 2026. */
.apollo-photo-grid.is-justified { justify-content: center; }
.apollo-photo-grid.is-justified img { height: 100%; object-fit: cover; }
