/* Recognisable holiday artwork, layered over the unchanged brand palette. */
html[data-season="easter"] { --season-colour: #bd7dc4; --season-scene: url('../seasonal/easter.svg'); --season-icon: url('../seasonal/easter-icon.svg'); }
html[data-season="halloween"] { --season-colour: #ef9b48; --season-scene: url('../seasonal/halloween.svg'); --season-icon: url('../seasonal/halloween-icon.svg'); }
html[data-season="christmas"] { --season-colour: #5ba68d; --season-scene: url('../seasonal/christmas.svg'); --season-icon: url('../seasonal/christmas-icon.svg'); }
html[data-season="new-year"] { --season-colour: #d6b366; --season-scene: url('../seasonal/new-year.svg'); --season-icon: url('../seasonal/new-year-icon.svg'); }
.season-banner { position: relative; overflow: hidden; border-bottom: 1px solid var(--border); color: var(--ink); background: var(--surface); background: color-mix(in srgb, var(--season-colour) 12%, var(--surface)); }
.season-banner .container { min-height: 126px; display: flex; align-items: center; gap: 16px; position: relative; }
.season-banner .container::after { content: ''; position: absolute; right: 0; bottom: 0; width: 490px; height: 160px; background: var(--season-scene) right bottom / contain no-repeat; pointer-events: none; }
.season-symbol { flex: 0 0 48px; width: 48px; height: 48px; background: var(--season-icon) center / contain no-repeat; }
.season-copy { position: relative; z-index: 1; max-width: calc(100% - 420px); padding: 20px 0; }
.season-label { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--ink-soft); margin-bottom: 4px; }
.season-greeting { display: block; font-size: clamp(1.25rem, 2.3vw, 1.8rem); line-height: 1.25; letter-spacing: -.02em; overflow-wrap: anywhere; }
html:not([data-season="normal"])[data-season-decorations="true"] .hero,
html:not([data-season="normal"])[data-season-decorations="true"] .page-head { position: relative; overflow: hidden; background-image: radial-gradient(ellipse at bottom right, color-mix(in srgb, var(--season-colour) 15%, transparent), transparent 65%); }
html:not([data-season="normal"])[data-season-decorations="true"] .hero::after,
html:not([data-season="normal"])[data-season-decorations="true"] .page-head::after { content: ''; position: absolute; right: 0; bottom: 0; width: 430px; height: 148px; background: var(--season-scene) right bottom / contain no-repeat; opacity: .22; pointer-events: none; }
html:not([data-season="normal"])[data-season-decorations="true"] .hero > .container,
html:not([data-season="normal"])[data-season-decorations="true"] .page-head > .container { position: relative; z-index: 1; }
html:not([data-season="normal"])[data-season-decorations="true"] .section-head h2 { display: flex; align-items: center; gap: 10px; }
html:not([data-season="normal"])[data-season-decorations="true"] .section-head h2::before { content: ''; flex: 0 0 26px; height: 26px; background: var(--season-icon) center / contain no-repeat; }
html:not([data-season="normal"])[data-season-decorations="true"] .group-card,
html:not([data-season="normal"])[data-season-decorations="true"] .plan-card { border-top: 3px solid color-mix(in srgb, var(--season-colour) 60%, var(--border)); }
html:not([data-season="normal"])[data-season-decorations="true"] .site-footer { border-top: 2px solid var(--season-colour); position: relative; overflow: hidden; }
html:not([data-season="normal"])[data-season-decorations="true"] .site-footer::before { content: ''; position: absolute; right: 0; top: 0; width: 380px; height: 131px; background: var(--season-scene) right top / contain no-repeat; opacity: .16; pointer-events: none; }
html:not([data-season="normal"])[data-season-decorations="true"] .footer-grid { position: relative; z-index: 1; }
/* Subtle keeps the greeting and small icons; festive adds full illustrated scenes. */
html[data-season-intensity="subtle"] .season-banner .container { min-height: 78px; }
html[data-season-intensity="subtle"] .season-copy { max-width: none; padding: 14px 0; }
html[data-season-intensity="subtle"] .season-greeting { font-size: 1.2rem; }
html[data-season-intensity="subtle"] .season-banner .container::after,
html[data-season-intensity="subtle"] .hero::after,
html[data-season-intensity="subtle"] .page-head::after,
html[data-season-intensity="subtle"] .site-footer::before { display: none; }
html[data-season-decorations="false"] .season-banner .container::after,
html[data-season-decorations="false"] .season-symbol { display: none; }
html[data-season-decorations="false"] .season-copy { max-width: none; }
@media (max-width: 700px) {
  .season-banner .container { min-height: 116px; gap: 10px; }
  .season-symbol { flex-basis: 34px; width: 34px; height: 34px; }
  .season-copy { max-width: calc(100% - 200px); }
  .season-label { font-size: .62rem; letter-spacing: .06em; }
  .season-banner .container::after { width: 250px; height: 108px; right: -12px; opacity: .85; }
  html:not([data-season="normal"])[data-season-decorations="true"] .hero::after,
  html:not([data-season="normal"])[data-season-decorations="true"] .page-head::after { width: 280px; height: 97px; opacity: .13; }
}
@media (max-width: 400px) { .season-symbol { display: none; } .season-copy { max-width: calc(100% - 155px); } .season-banner .container::after { right: -18px; width: 220px; } }
