.site-shell [hidden] { display: none !important; }

.site-seasonal-banner {
  position: relative;
  z-index: 8;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 72px;
  align-items: center;
  gap: 15px;
  overflow: hidden;
  border-bottom: 1px solid color-mix(in srgb, var(--campaign-primary) 68%, var(--border));
  background: color-mix(in srgb, var(--bg-soft) 94%, var(--campaign-primary));
  color: var(--text);
  padding: 10px max(20px, calc((100vw - 1420px) / 2));
  box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
}
.site-seasonal-banner > img { width: 74px; height: 50px; border: 1px solid color-mix(in srgb, var(--campaign-primary) 62%, var(--border)); border-radius: 5px; object-fit: cover; }
.site-seasonal-copy { min-width: 0; }
.site-seasonal-copy span,
.site-seasonal-copy strong,
.site-seasonal-copy small { display: block; overflow-wrap: anywhere; }
.site-seasonal-copy span { color: var(--campaign-primary); font-size: 9px; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
.site-seasonal-copy strong { margin-top: 2px; font-family: 'Bebas Neue', Impact, sans-serif; font-size: 29px; font-weight: 400; letter-spacing: 0; line-height: 1; }
.site-seasonal-copy small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.site-seasonal-cta { min-width: 170px; justify-content: center; }

body.site-decoration-patriotic-stripe .site-seasonal-banner::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  background: linear-gradient(180deg, #c8102e 0 33%, #fff 33% 66%, #c8102e 66%);
  content: '';
}
body.site-decoration-corner-ribbon .hero::after {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  width: min(180px, 22vw);
  height: 5px;
  background: var(--campaign-primary);
  box-shadow: 0 0 18px color-mix(in srgb, var(--campaign-primary) 65%, transparent);
  content: '';
}
body.site-decoration-subtle-stars .site-seasonal-banner { border-top: 2px solid var(--campaign-secondary); }
body.site-decoration-gold-garland .site-seasonal-banner { box-shadow: inset 0 2px 0 #d9a91b, 0 10px 28px rgba(0, 0, 0, .16); }
body.site-decoration-snow-specks .site-seasonal-copy strong::after { margin-left: 8px; color: var(--campaign-secondary); content: '·'; }

.site-experience-ready [data-site-section] { scroll-margin-top: 88px; }
[data-site-variant='compact'].section { padding-top: clamp(42px, 6vw, 74px); padding-bottom: clamp(42px, 6vw, 74px); }
[data-site-variant='featured'].section { border-block: 1px solid color-mix(in srgb, var(--gold) 40%, var(--border)); background: color-mix(in srgb, var(--gold) 5%, var(--bg-soft)); }
[data-site-variant='immersive'].section { min-height: min(760px, 82vh); display: grid; align-items: center; }

.section--about { overflow: hidden; border-block: 1px solid var(--border); background: var(--bg-soft); }
.about-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); min-height: 500px; align-items: stretch; border: 1px solid var(--border); border-radius: 7px; background: var(--surface); }
.about-media { position: relative; min-height: 500px; overflow: hidden; }
.about-media::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, color-mix(in srgb, var(--surface) 88%, transparent)); content: ''; pointer-events: none; }
.about-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.about-copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(30px, 5vw, 72px); }
.about-copy h2 { margin: 8px 0 17px; font-family: 'Bebas Neue', Impact, sans-serif; font-size: clamp(48px, 5.3vw, 82px); font-weight: 400; letter-spacing: 0; line-height: .95; }
.about-copy > p:not(.eyebrow) { margin: 0; color: var(--muted-strong); font-size: clamp(14px, 1.2vw, 18px); line-height: 1.65; }
.about-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 24px 0; }
.about-value { display: grid; min-height: 92px; align-content: center; gap: 6px; border-left: 2px solid var(--gold); background: var(--bg-soft); padding: 12px; }
.about-value strong { font-size: 10px; text-transform: uppercase; }
.about-value span { color: var(--muted); font-size: 10px; line-height: 1.4; }
.about-copy .button { align-self: flex-start; }

.footer-copyright { grid-column: 1 / -1; margin: 2px 0 0; color: var(--muted); font-size: 9px; text-align: center; }
.site-preview-mode .site-header { position: relative; }

@media (max-width: 900px) {
  .site-seasonal-banner { grid-template-columns: auto minmax(0, 1fr); }
  .site-seasonal-cta { grid-column: 2; min-width: 0; justify-self: start; }
  .about-layout { grid-template-columns: 1fr; }
  .about-media { min-height: 360px; }
  .about-media::after { background: linear-gradient(180deg, transparent 68%, var(--surface)); }
  .about-copy { padding: 30px; }
}

@media (max-width: 600px) {
  .site-seasonal-banner { grid-template-columns: 1fr; min-height: 0; gap: 8px; padding: 12px 18px; }
  .site-seasonal-banner > img { display: none; }
  .site-seasonal-copy strong { font-size: 24px; }
  .site-seasonal-copy small { font-size: 9px; }
  .site-seasonal-cta { grid-column: 1; width: 100%; min-height: 42px; justify-self: stretch; }
  .about-media { min-height: 280px; }
  .about-copy { padding: 24px 18px; }
  .about-copy h2 { font-size: 50px; }
  .about-values { grid-template-columns: 1fr; }
  .about-value { min-height: 72px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-seasonal-banner,
  .site-seasonal-cta { transition: none; }
}
