/* One-page content extension: retains the approved foundation visual system. */
.quick-nav { border-bottom: 1px solid var(--line); background: var(--ivory); }
.quick-nav-inner { display: flex; align-items: center; gap: 27px; padding-block: 16px; overflow-x: auto; scrollbar-width: thin; }
.quick-nav-label { color: #7b8377; font-size: 9px; font-weight: 700; letter-spacing: .15em; white-space: nowrap; text-transform: uppercase; }
.quick-nav a { font-size: 11px; font-weight: 650; white-space: nowrap; padding-block: 8px; }
.quick-nav a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 5px; }
.content-section { padding-block: 74px; border-top: 1px solid var(--line); }
.content-section.soft-section { background: #efeee4; }
.content-section.white-section { background: #fcfbf6; }
.content-intro { max-width: 730px; }
.content-intro h2 { margin-top: 13px; }
.content-intro > p:not(.eyebrow) { margin-top: 20px; font-size: 15px; line-height: 1.85; color: #5b695d; }
.section-number { color: #94a18d; font-family: var(--display); font-size: 12px; letter-spacing: .04em; margin-left: auto; }
.section-header-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; }
.content-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; margin-top: 24px; }
.content-actions .button { font-size: 12px; }
.button-border-green { border-color: var(--green); color: var(--green); background: transparent; }
.button-border-green:hover { background: #e8ecdf; }
.content-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 32px; }
.content-columns.asymmetric { grid-template-columns: 1.25fr 1fr; gap: 55px; }
.rich-copy { color: #59685c; font-size: 14px; line-height: 1.9; }
.rich-copy p + p { margin-top: 15px; }
.rich-copy h3 { margin-bottom: 12px; font-size: 25px; }
.rich-copy h4 { color: var(--green); font-family: var(--display); font-size: 19px; font-weight: 600; margin: 22px 0 9px; }
.rich-copy ul, .rich-copy ol { margin: 12px 0 0; padding-left: 19px; }
.rich-copy li { margin-block: 7px; padding-left: 4px; }
.rich-copy a:not(.button) { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.content-panel { background: #fcfbf6; border: 1px solid var(--line); border-radius: 8px; padding: 28px; }
.content-panel h3 { margin-bottom: 13px; font-size: 24px; }
.content-panel p { color: #5c6b5f; font-size: 13px; line-height: 1.85; }
.content-panel p + p { margin-top: 12px; }
.content-panel .text-link { margin-top: 15px; }
.detail-stack { margin-top: 31px; border-top: 1px solid #ccd4c5; }
.detail-panel { border-bottom: 1px solid #ccd4c5; }
.detail-panel > summary { list-style: none; padding: 22px 0; font-family: var(--display); font-size: 21px; font-weight: 600; color: var(--green); display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; }
.detail-panel > summary::-webkit-details-marker { display: none; }
.detail-panel > summary::after { content: '+'; font-family: var(--sans); font-size: 26px; font-weight: 400; flex-shrink: 0; }
.detail-panel[open] > summary::after { content: '−'; }
.detail-panel > summary:hover { color: var(--blue); }
.detail-panel > summary:focus-visible { outline: 3px solid #b39022; outline-offset: 4px; }
.detail-body { padding: 0 0 25px; max-width: 1020px; }
.detail-body > p, .detail-body > ul, .detail-body > ol { color: #59685c; font-size: 14px; line-height: 1.9; }
.detail-body > p + p { margin-top: 14px; }
.detail-body ul, .detail-body ol { padding-left: 20px; }
.detail-body li { margin-block: 7px; }
.detail-body h4 { font-family: var(--display); font-size: 19px; color: var(--green); margin: 22px 0 12px; }
.detail-body .content-panel { margin-top: 20px; }
.archive-label, .small-label { display: inline-block; padding: 6px 10px; border: 1px solid #c8d2bf; color: #566d55; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; border-radius: 3px; margin-bottom: 14px; }
.source-note { color: #73806f; font-size: 10px; line-height: 1.8; margin-top: 18px; }
.source-note a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.notice { border-left: 3px solid #d1af4d; padding: 16px 20px; background: #eee7cf; border-radius: 0 5px 5px 0; color: #5c634c; font-size: 12px; line-height: 1.8; margin-top: 26px; }
.notice a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.fact-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 28px; }
.fact-card { background: #fcfbf6; border: 1px solid var(--line); border-radius: 7px; padding: 23px; }
.fact-card .fact-value { font-family: var(--display); color: var(--green); font-size: 34px; font-weight: 650; line-height: 1.1; letter-spacing: -.03em; }
.fact-card .fact-label { font-size: 11px; line-height: 1.65; color: #627360; margin-top: 8px; }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; }
.team-member { padding: 16px 20px; background: #eeefe5; border-radius: 5px; }
.team-member h4 { margin: 0; font-size: 17px; font-family: var(--display); font-weight: 600; color: var(--green); }
.team-member p { font-size: 11px; line-height: 1.5; margin-top: 5px; color: #61735e; }
.sponsor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 31px; }
.sponsor-level { padding: 27px; border: 1px solid var(--line); border-radius: 8px; background: #fcfbf6; display: flex; flex-direction: column; }
.sponsor-level h3 { font-size: 23px; }
.sponsor-price { font-family: var(--display); color: var(--green); font-size: 33px; letter-spacing: -.03em; font-weight: 650; margin-top: 17px; }
.sponsor-level p, .sponsor-level li { color: #5c6c5c; font-size: 12px; line-height: 1.85; }
.sponsor-level p { margin-top: 10px; }
.sponsor-level ul { padding-left: 17px; margin: 15px 0 22px; }
.sponsor-level li { padding-left: 2px; margin-bottom: 7px; }
.sponsor-level .button { margin-top: auto; font-size: 11px; min-height: 47px; }
.sponsor-level.featured { background: var(--green); color: var(--ivory); border-color: var(--green); }
.sponsor-level.featured h3, .sponsor-level.featured .sponsor-price { color: var(--gold); }
.sponsor-level.featured p, .sponsor-level.featured li { color: #e1e7d9; }
.supporter-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.supporter-list span { background: #f7f5ed; border: 1px solid var(--line); padding: 11px 15px; border-radius: 4px; color: #426140; font-size: 12px; }
.sponsor-logo-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-top: 22px; }
.sponsor-logo { display: flex; align-items: center; justify-content: center; padding: 20px; min-height: 100px; background: #fff; border: 1px solid var(--line); border-radius: 5px; }
.sponsor-logo img { max-height: 80px; width: 100%; object-fit: contain; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 22px; }
.gallery-grid a { display: block; overflow: hidden; border-radius: 6px; background: #d6dfcd; }
.gallery-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s ease; }
.gallery-grid a:hover img { transform: scale(1.04); }
.route-map { margin-top: 25px; border: 1px solid var(--line); border-radius: 6px; background: #fcfbf6; padding: 12px; }
.route-map img { width: 100%; height: auto; }
.map-link { font-size: 11px; color: var(--blue); display: block; padding: 10px 5px 3px; text-decoration: underline; text-underline-offset: 3px; }
.shop-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.shop-feature > img { width: 100%; aspect-ratio: 1.45; object-fit: cover; border-radius: 8px; }
.donation-section { background: var(--deep-green); color: var(--ivory); }
.donation-section h2 { color: var(--ivory); }
.donation-section .content-intro > p:not(.eyebrow) { color: #d7e1d2; }
.donation-layout { display: grid; grid-template-columns: 1.3fr 1fr; gap: 60px; align-items: center; }
.donation-box { border: 1px solid #63826a; border-radius: 8px; padding: 35px; }
.donation-box h3 { color: var(--gold); font-size: 28px; }
.donation-box p { font-size: 13px; line-height: 1.9; color: #d7e1d2; margin-top: 12px; }
.donation-box .button { width: 100%; margin-top: 22px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 31px; }
.contact-card { border: 1px solid var(--line); border-radius: 7px; padding: 29px; background: #fcfbf6; }
.contact-card h3 { font-size: 24px; margin-bottom: 15px; }
.contact-card p { font-size: 13px; line-height: 1.85; color: #5b6d5b; }
.contact-card p + p { margin-top: 10px; }
.contact-card a:not(.button) { color: var(--blue); overflow-wrap: anywhere; }
.contact-card .button { margin-top: 22px; font-size: 12px; }
.contact-value { display: block; font-family: var(--display); font-size: 21px; line-height: 1.5; margin-top: 12px; }
.social-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.social-links a { border: 1px solid #c4cfbb; border-radius: 4px; padding: 10px 14px; font-size: 11px; font-weight: 600; color: var(--green); }
.embed-wrapper { border: 1px solid var(--line); background: #fff; border-radius: 7px; overflow: hidden; margin-top: 25px; }
.embed-wrapper iframe { display: block; width: 100%; min-height: 780px; border: 0; }
.embed-note { font-size: 11px; line-height: 1.8; color: #6c7964; margin-top: 12px; }
@media (max-width: 1150px) {
  .quick-nav-inner { gap: 20px; }
  .content-columns, .content-columns.asymmetric { gap: 32px; }
  .sponsor-grid { gap: 16px; }
  .sponsor-level { padding: 23px; }
  .shop-feature { gap: 35px; }
}
@media (max-width: 850px) {
  .content-section { padding-block: 52px; }
  .content-columns, .content-columns.asymmetric, .shop-feature, .donation-layout { grid-template-columns: 1fr; gap: 30px; }
  .content-intro { max-width: none; }
  .fact-cards, .team-grid { gap: 13px; }
  .sponsor-grid { grid-template-columns: 1fr; }
  .sponsor-level { padding: 28px; }
  .sponsor-logo-grid { grid-template-columns: repeat(3, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns: 1fr; }
  .shop-feature > img { aspect-ratio: 1.7; }
  .contact-value { font-size: 23px; }
}
@media (max-width: 540px) {
  .quick-nav-inner { gap: 22px; padding-block: 11px; }
  .quick-nav-label { display: none; }
  .quick-nav a { font-size: 10px; }
  .content-section { padding-block: 41px; }
  .content-intro h2 { font-size: 38px; }
  .content-intro > p:not(.eyebrow) { font-size: 13px; margin-top: 16px; }
  .section-number { display: none; }
  .rich-copy, .detail-body > p, .detail-body > ul, .detail-body > ol { font-size: 13px; }
  .content-columns { margin-top: 24px; }
  .content-panel { padding: 22px; }
  .detail-panel > summary { font-size: 19px; padding-block: 19px; }
  .detail-stack { margin-top: 25px; }
  .fact-cards { grid-template-columns: 1fr; }
  .fact-card { display: flex; align-items: center; gap: 20px; padding: 19px 22px; }
  .fact-card .fact-value { font-size: 31px; min-width: 85px; }
  .fact-card .fact-label { margin: 0; }
  .team-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .team-member { padding: 15px; }
  .team-member h4 { font-size: 15px; }
  .team-member p { font-size: 10px; }
  .sponsor-level { padding: 24px; }
  .sponsor-logo-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .sponsor-logo { padding: 16px; min-height: 80px; }
  .gallery-grid { gap: 10px; }
  .notice { padding: 14px 16px; font-size: 11px; }
  .shop-feature > img { aspect-ratio: 1.4; }
  .donation-box { padding: 25px; }
  .contact-card { padding: 24px; }
  .contact-value { font-size: 19px; }
  .embed-wrapper iframe { min-height: 980px; }
}

/* Content-specific finishing rules. */
.section-photo { width: 100%; border-radius: 8px; object-fit: cover; align-self: start; }
.shop-feature { margin-top: 30px; }
.mascot-photo { object-fit: contain !important; background: #ecebe0; }
.sponsor-level { display: block; align-self: start; }
.sponsor-level > summary { list-style: none; cursor: pointer; color: var(--green); }
.sponsor-level > summary::-webkit-details-marker { display: none; }
.sponsor-level > summary > span:first-child { display: block; font-family: var(--display); font-size: 21px; font-weight: 650; line-height: 1.25; }
.sponsor-level > summary > .sponsor-price { display: block; font-size: 31px; margin-top: 15px; }
.tier-expand { display: block; font-size: 10px; color: #567153; margin-top: 16px; font-weight: 600; }
.sponsor-level[open] .tier-expand { display: none; }
.sponsor-level[open] > summary { margin-bottom: 13px; }
.sponsor-level > summary:focus-visible { outline: 3px solid #b39022; outline-offset: 6px; }
.supporter-list a { background: #f7f5ed; border: 1px solid var(--line); padding: 12px 15px; border-radius: 4px; color: #426140; font-size: 12px; }
.supporter-list a:hover { border-color: var(--green); color: var(--blue); }
.sponsor-logo img { width: auto; max-width: 100%; height: auto; max-height: 80px; }
.volunteer-cards .fact-card { display: flex; align-items: center; gap: 15px; }
.volunteer-cards .option-icon { color: var(--green); }
.volunteer-cards h3 { font-size: 20px; }
.donation-section .green-eyebrow { color: var(--gold); }
.donation-layout { margin-top: 32px; }
.donation-copy { color: #d5e1d1; }
.donation-amounts { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 23px; }
.donation-amounts span { padding: 11px 17px; border-radius: 4px; border: 1px solid #68866d; color: var(--gold); font-family: var(--display); font-size: 20px; }
.donation-links { display: flex; flex-wrap: wrap; gap: 25px; margin-top: 32px; }
.donation-links .text-link { color: #e5dec4; }
.gallery-embed { border-radius: 7px; overflow: hidden; background: #e4e5d8; }
.gallery-embed iframe { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; }
.embed-note a { text-decoration: underline; color: var(--blue); text-underline-offset: 3px; }
.contact-card .contact-value { overflow-wrap: anywhere; font-size: 19px; }
@media (max-width: 540px) {
  .sponsor-level > summary > span:first-child { font-size: 22px; }
  .shop-feature { margin-top: 23px; }
  .volunteer-cards .fact-card { padding-block: 22px; }
  .donation-amounts span { padding: 10px 14px; font-size: 18px; }
  .donation-links { gap: 7px 19px; }
  .contact-card .contact-value { font-size: 17px; }
}

/* 2027 sponsorship guide: explicit categories and published availability. */
.sponsor-category { margin-top: 38px; }
.sponsor-category > h3 { font-size: 25px; }
.sponsor-category .sponsor-grid { margin-top: 18px; }
.sponsor-availability { display: block; color: #63755e; font-size: 11px; font-weight: 600; margin-top: 10px; }
