/* Public support content; loaded by app.js so index.html stays main-owned. */
body.hsa-content-modal-open { overflow: hidden; }
.tier { transform-origin: center top; cursor:pointer; }
.tier:hover, .tier:focus-within { transform: scale(1.015); border-color:var(--gold); box-shadow:0 8px 24px #0005; }
.tier-groups .tiers { padding-bottom:10px; }
/* Wrapped text must remain one continuous pointer and keyboard target. */
.tier a[data-modal="support"] { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; padding: 8px 0; line-height: 1.5; }
.tier a[data-modal="support"]:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.closing-time { color:var(--gold); font-family:'Cormorant Garamond'; font-size:26px; margin:10px 0; }
@media (prefers-reduced-motion: reduce) { .tier:hover, .tier:focus-within { transform:none; transition:none; } }
#modalWrap { padding: max(12px, env(safe-area-inset-top)) 12px; }
#modalWrap .modal { max-width: 760px; max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
#modalContent h2 { line-height: 1; padding-right: 20px; }
.content-form label { display: grid; gap: 7px; font-size: 14px; font-weight: 600; }
.content-form input, .content-form select, .content-form textarea { min-width: 0; font-size: 16px; color: #11102d; }
.content-form .content-note { margin: 0; font-size: 13px; font-weight: 400; }
.content-form .content-total { padding: 16px; border: 1px solid #b5a46b; line-height: 1.6; font-weight: 700; }
.content-form .content-error { color: #962626; margin: 0; }
.content-form .content-signin { color: #11102d; margin-left: 0; }
.content-auth:empty, .content-error:empty { display: none; }
.content-subheading { margin: 28px 0 12px; font-size: 28px; }
#modalContent .op-table { min-width: 510px; font-size: 13px; line-height: 1.6; }
#modalContent .op-table td { text-align: center; }
.content-form .donation-toggle { display:flex; align-items:center; gap:10px; }
.donation-fields { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
.content-tier-link { background: none; border: 0; color: #42340a; text-decoration: underline; font: inherit; cursor: pointer; }
.content-announcement { padding: 16px; border-left: 3px solid var(--gold); line-height: 1.6; white-space: pre-line; }
.closing > div > p:not(.eyebrow), .event-services { white-space: pre-line; }
.tier-details summary { cursor: pointer; color: var(--gold); }
.stardust-card { cursor: default; }
.stardust-card .outline-btn { margin: 10px 0 0; padding: 12px; }
.stardust-section > .gold-btn { margin-top: 24px; }
.content-supporters { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 24px; margin-top: 32px; }
.content-supporter { border: 1px solid var(--line); padding: 24px; overflow-wrap: anywhere; }
.content-supporter img { width: 100%; height: 100px; object-fit: contain; margin-bottom: 16px; }
.content-supporter h3 { font-size: 30px; }
.content-supporter p { color: var(--gold); }
#modalWrap [hidden], .content-recognition[hidden], #hsaAnnouncement[hidden] { display: none !important; }
#modalWrap button:disabled, .stardust-card button:disabled { opacity: .55; cursor: not-allowed; }
#modalWrap :focus-visible, .stardust-card button:focus-visible { outline: 3px solid #9d7900; outline-offset: 3px; }
@media (max-width: 600px) {
  .donation-fields { grid-template-columns:1fr; }
  #modalWrap .modal { padding: 36px 20px 24px; }
  .stardust-grid { grid-template-columns: 1fr; }
  .content-recognition h2 { font-size: 42px; }
}
/* Guest pages ship in their final layout. Loaded data fills reserved space or fades in place. */
.registration-cta[hidden] { display: none !important; }
#hsaAnnouncement:not([hidden]) { animation: content-fade 240ms ease-out; }
@keyframes content-fade { from { opacity: 0; } to { opacity: 1; } }
#basketGrid[aria-busy="true"] { min-height: 1100px; }
.site-footer .footer-links { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; }
.site-footer .footer-staff { opacity: .75; }
.site-footer .footer-staff:hover { opacity: 1; }
@media (prefers-reduced-motion: reduce) { #hsaAnnouncement:not([hidden]) { animation: none; } }
/* Privacy and terms pages. */
.legal { max-width: 760px; padding-top: 140px; }
.legal h1 { font: 500 clamp(44px, 7vw, 72px)/1.05 'Cormorant Garamond', Georgia, serif; margin: 10px 0 18px; }
.legal h2 { font: 500 30px/1.2 'Cormorant Garamond', Georgia, serif; color: var(--gold); margin: 42px 0 10px; }
.legal p, .legal li { color: var(--cream); line-height: 1.75; font-size: 17px; }
.legal ul { padding-left: 22px; }
.legal a { color: var(--gold); }
.legal .legal-updated { color: var(--muted); font-size: 14px; }
#support, #details { scroll-margin-top: 80px; }
