/**
 * FFCU seasonal theme: Halloween (from Figma 002A).
 * Loaded only while the Halloween theme is on. Everything is scoped to
 * body.is-season-halloween, so nothing here affects the normal site.
 *
 * Contrast (WCAG 2.1 AA) of the main pairs:
 *   white on Night 18.9:1 · Mist on Night 9.6:1 · Link #FFA463 on Night 9.4:1
 *   Eyebrow #FF8A3D on Night 7.6:1 · Night on Pumpkin 6.7:1
 *   Night on Parchment 17.4:1 · brand red on Parchment 5.0:1 · white on red 5.2:1
 */

/* ---------- 1. Palette + theme tokens ---------- */
body.is-season-halloween {
	--hw-night: #120e1a;
	--hw-midnight: #0b0810;
	--hw-dusk: #241d31;
	--hw-border: #3a3150;
	--hw-input: #8a7fa3;
	--hw-mist: #bdb5cc;
	--hw-pumpkin: #f7731e;
	--hw-eyebrow: #ff8a3d;
	--hw-link: #ffa463;
	--hw-candle: #ffd27a;
	--hw-parchment: #fbf4e6;
	--hw-parchment-2: #f3e7cf;
	--hw-red: #dc0001;
	--hw-plum: #6b5a94;
	--hw-night-2: #1a1426;
	--hw-surface: #2c2440;
	--hw-surface-hover: #3b3256;

	/* palette slots used as text / light backgrounds */
	--dst--secondary-color3: var(--hw-mist);
	--dst--secondary-color4: var(--hw-mist);
	--dst--secondary-color5: var(--hw-mist);
	--dst--secondary-color6: var(--hw-dusk);
	--dst--secondary-color7: var(--hw-dusk);
	--dst--secondary-color8: var(--hw-dusk);
	--dst--secondary-color9: var(--hw-border);
	--dst--secondary-color10: var(--hw-midnight);
	--dst--secondary-color11: var(--hw-border);
	--dst--secondary-color12: var(--hw-dusk);

	/* derived tokens (theme.css resolves these on :root, so restate them) */
	--dst--base-heading-color: #fff;
	--dst--base-heading-color-alt: #fff;
	--dst--pretitle-color: var(--hw-eyebrow);
	--dst--pretitle-color-alt: var(--hw-eyebrow);
	--dst--subtitle-color: var(--hw-mist);
	--dst--subtitle-color-alt: var(--hw-mist);
	--dst--backtitle-color: var(--hw-eyebrow);
	--dst--backtitle-color-alt: var(--hw-eyebrow);
	--dst--base-text-color: var(--hw-mist);
	--dst--base-text-color-alt: var(--hw-mist);
	--dst--base-link-color: var(--hw-link);
	--dst--base-link-color-alt: var(--hw-link);
	--dst--border-color: var(--hw-border);
	--dst--border-color-alt: var(--hw-border);
	--dst--blockquote-color: var(--hw-eyebrow);
	--dst--btn-secondary-color: #fff;
	--dst--btn-secondary-border-color: var(--hw-input);
	--dst--btn-link-color: #fff;
	--dst--btn-link-color-hover: var(--hw-link);
	--dst--btn-link-icon-color: var(--hw-night);
	--dst--form-label-color: #fff;
	--dst--input-color: #fff;
	--dst--input-placeholder-color: var(--hw-mist);
	--dst--input-bg-color: var(--hw-dusk);
	--dst--input-border-color: var(--hw-input);
	--dst--header-top-bg: var(--hw-midnight);
	--dst--header-main-bg: var(--hw-midnight);
	--dst--header-sticky-bg: var(--hw-midnight);
	--dst--header-mobile-bar-color: var(--hw-midnight);
	--dst--header-mobile-menu-bgd: var(--hw-night);
	--dst--header-mobile-link-color: #fff;
	--dst--header-mobile-link-border-color: var(--hw-border);

	background-color: var(--hw-night);
	color: var(--hw-mist);
}

/* ---------- 2. Section backgrounds: Night / Midnight / Dusk ---------- */
body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--secondary-color1)"] { --dst--bg-layer: var(--hw-night) !important; }

body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--secondary-color6)"],
body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--secondary-color7)"],
body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--secondary-color8)"],
body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--secondary-color9)"],
body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--primary-color3)"] { --dst--bg-layer: var(--hw-dusk) !important; }

body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--primary-color1)"],
body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--secondary-color10)"],
body.is-season-halloween .c-bg[style*="--dst--bg-layer: var(--dst--secondary-color12)"] { --dst--bg-layer: var(--hw-midnight) !important; }

body.is-season-halloween .has-var-dst-secondary-color-1-background-color,
body.is-season-halloween .has-secondary-1-background-color,
body.is-season-halloween .has-white-background-color { background-color: var(--hw-night) !important; }

body.is-season-halloween .has-var-dst-secondary-color-6-background-color,
body.is-season-halloween .has-secondary-color-6-background-color,
body.is-season-halloween .has-var-dst-secondary-color-7-background-color { background-color: var(--hw-dusk) !important; }

body.is-season-halloween .has-var-dst-primary-color-1-background-color { background-color: var(--hw-midnight) !important; }

/* Band separation (classes added by halloween.js): no hairline seams (removed
   per review), alternate dark sections get "Night 2" with a
   soft plum glow, Dusk sections a glow on the other side. Text contrast:
   Mist on Night 2 8.8:1, Mist on the brightest glow point 7.8:1. */

body.is-season-halloween .ffcu-season-band.is-alt {
	--dst--bg-layer: var(--hw-night-2) !important;
	background-color: var(--hw-night-2) !important;
	background-image: linear-gradient(transparent, transparent), radial-gradient(ellipse 55% 75% at 92% 0%, rgba(107, 90, 148, 0.2), rgba(107, 90, 148, 0) 70%) !important;
	background-repeat: no-repeat !important;
	background-position: top left, top right !important;
	background-size: 100% 1px, 100% 100% !important;
}

body.is-season-halloween .ffcu-season-band.is-dusk {
	background-image: linear-gradient(transparent, transparent), radial-gradient(ellipse 50% 70% at 6% 0%, rgba(107, 90, 148, 0.22), rgba(107, 90, 148, 0) 70%) !important;
	background-repeat: no-repeat !important;
	background-position: top left, top left !important;
	background-size: 100% 1px, 100% 100% !important;
}

/* Hero: moonlight glow + plum haze over the background photo (behind text). */
body.is-season-halloween .c-bg.ffcu-season-glow::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		radial-gradient(circle at 9% 14%, rgba(255, 210, 122, 0.2), rgba(255, 210, 122, 0) 16%),
		radial-gradient(ellipse 70% 90% at 18% 10%, rgba(107, 90, 148, 0.45), rgba(107, 90, 148, 0) 65%),
		linear-gradient(to top, rgba(11, 8, 16, 0.55), rgba(11, 8, 16, 0) 30%);
	content: "";
	pointer-events: none;
}

body.is-season-halloween .ffcu-season-glow:not(.c-bg) {
	background-image:
		radial-gradient(circle at 9% 14%, rgba(255, 210, 122, 0.2), rgba(255, 210, 122, 0) 16%),
		radial-gradient(ellipse 70% 90% at 18% 10%, rgba(107, 90, 148, 0.45), rgba(107, 90, 148, 0) 65%) !important;
}

.ffcu-deco--moon { filter: drop-shadow(0 0 2.8rem rgba(255, 226, 160, 0.5)); }

/* Light colours typed in by hand in the editor (hex values) */
body.is-season-halloween .c-bg:is([style*="--dst--bg-layer: #f"], [style*="--dst--bg-layer: #F"], [style*="--dst--bg-layer: #e"], [style*="--dst--bg-layer: #E"], [style*="--dst--bg-layer: #d"], [style*="--dst--bg-layer: #D"], [style*="--dst--bg-layer: white"]) { --dst--bg-layer: var(--hw-dusk) !important; }

body.is-season-halloween :is(.has-f-8-f-7-f-6-background-color, .has-subtle-light-gray-background-color, .has-subtle-pale-blue-background-color, .has-subtle-pale-green-background-color, .has-subtle-pale-pink-background-color, .has-secondary-color-7-background-color, .has-secondary-color-8-background-color, .has-secondary-color-9-background-color, .has-secondary-color-11-background-color) { background-color: var(--hw-dusk) !important; }

/* Safety net set by halloween.js for any other light section background */
body.is-season-halloween .c-bg.ffcu-season-darken { --dst--bg-layer: var(--hw-dusk) !important; background: var(--hw-dusk) !important; }

body.is-season-halloween .ffcu-season-darken:not(.c-bg) { background-color: var(--hw-dusk) !important; }

/* Text that is set to black / brown on the live modules */
body.is-season-halloween .has-primary-1-color,
body.is-season-halloween .has-black-color { color: #fff !important; }

body.is-season-halloween [style*="color:#786d66"],
body.is-season-halloween [style*="color: #786d66"],
body.is-season-halloween [style*="color:#989898"] { color: var(--hw-mist) !important; }

body.is-season-halloween .dst-cards,
body.is-season-halloween .dst-list,
body.is-season-halloween .c-heading,
body.is-season-halloween .dst-heading {
	--c-block__text-color: var(--hw-mist) !important;
	--c-block__title-color: #fff !important;
	--dst-list__title-color: var(--hw-mist) !important;
	--dst--title-color: #fff;
}

body.is-season-halloween .dst-cards .c-block__title,
body.is-season-halloween .dst-list__title { color: #fff; }

/* Cards / panels that had white or light-grey bodies */
body.is-season-halloween .dst-cards.card-has-white-body-bg .c-block__body,
body.is-season-halloween .dst-cards.card-has-grey-body-bg .c-block__body,
body.is-season-halloween .dst-cards.-version-4 .dst-card .c-block__body::before,
body.is-season-halloween .dst-cards.-version-10 .dst-card:hover .c-block__body,
body.is-season-halloween .dst-cards.-version-10 .dst-card:focus-within .c-block__body,
body.is-season-halloween .search-grid__item .c-block,
body.is-season-halloween .dst-documents-list__icon-wrap,
body.is-season-halloween .c-eligibility__condition .c-eligibility__options,
body.is-season-halloween .dst-wrapper:has(.list-feature-v1) { background-color: var(--hw-surface); }

/* "5 clickable cards with b&w images" module (cards-v3, e.g. Financial Education):
   raised card surface + border; the photo multiplies into the card so it
   reads as a dim illustration (as in the 002A mock) instead of a white box. */
body.is-season-halloween .dst-cards.cards-v3.-version-2 .dst-card:not(.dst-card-button) {
	background-color: var(--hw-surface) !important;
	box-shadow: inset 0 0 0 1px var(--hw-border);
}

body.is-season-halloween .dst-cards.cards-v3.-version-2 .dst-card:not(.dst-card-button):is(:hover, :focus-within) { background-color: var(--hw-surface-hover) !important; }

body.is-season-halloween .dst-cards.cards-v3.-version-2 .dst-cards__item .dst-card:not(.dst-card-button) .c-block__media { mix-blend-mode: multiply; opacity: 0.85; }

body.is-season-halloween .dst-cards.card-has-white-body-bg .c-block__body,
body.is-season-halloween .dst-cards.card-has-grey-body-bg .c-block__body { box-shadow: inset 0 0 0 1px var(--hw-border); }

body.is-season-halloween .dst-cards.-version-3 .dst-card .c-block__date .month { background-color: var(--hw-border); color: #fff; }

body.is-season-halloween .dst-cards.-version-2 .dst-cards__item .c-block__media { mix-blend-mode: normal; isolation: auto; }

/* FAQ / accordions: no blend modes, readable rows */
body.is-season-halloween .dst-accordion,
body.is-season-halloween .dst-accordion * { mix-blend-mode: normal !important; }

body.is-season-halloween .dst-accordion__item { border-color: var(--hw-border); }

body.is-season-halloween .dst-accordion__question,
body.is-season-halloween .dst-accordion__title { color: #fff; }

body.is-season-halloween .dst-accordion__text { color: var(--hw-mist); }

body.is-season-halloween .dst-accordion__arrow { color: #fff; }

/* Body copy links + wysiwyg */
body.is-season-halloween :where(.is-wysiwyg) a:not([class]),
body.is-season-halloween main p a:not([class]) { color: var(--hw-link); }

body.is-season-halloween :where(.is-wysiwyg) :is(h1, h2, h3, h4, h5, h6) { color: #fff; }

body.is-season-halloween :where(.is-wysiwyg) :is(p, li) { color: var(--hw-mist); }

/* Forms */
body.is-season-halloween :is(input, select, textarea):not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]) {
	background-color: var(--hw-dusk);
	border-color: var(--hw-input);
	color: #fff;
}

body.is-season-halloween .gform_wrapper .gfield input:is([type="checkbox"], [type="radio"]) { background-color: var(--hw-dusk); border-color: var(--hw-input); }

/* Secondary (outline) buttons + link buttons on dark */
body.is-season-halloween .c-btn.-secondary { color: #fff; border-color: var(--hw-input); }

body.is-season-halloween .c-btn.-secondary:hover,
body.is-season-halloween .c-btn.-secondary:focus-visible { color: #fff; }

/* Red (primary) buttons stay brand red with white text: tokens untouched. */

/* ---------- 3. Header (the logo is left untouched: the site's normal silver logo) ---------- */

body.is-season-halloween .site-header,
body.is-season-halloween .site-header__main,
body.is-season-halloween .site-header__top { background-color: var(--hw-midnight); }

body.is-season-halloween .search-autocomplete { background-color: var(--hw-dusk); color: #fff; }


/* Header bar keeps Midnight when a menu is open (theme turns it white). */
body.is-season-halloween .site-header {
	--dst--dropdown-bg: var(--hw-dusk) !important;
	--dst--megamenu-bg: var(--hw-night) !important;
	--dst--dropdown-color-active: var(--hw-link) !important;
	--dst--header-link-color-active: var(--hw-link) !important;
}

body.is-season-halloween .site-header__main {
	--dst--header-link-color: #fff !important;
	--dst--header-link-color-active: var(--hw-link) !important;
	--dst--header-main-bg: var(--hw-midnight) !important;
}

body.is-season-halloween .site-header__main .c-btn { --dst--btn-link-color: #fff !important; }

body.is-season-halloween .nav-main__links > .menu-item-has-children:has(.megamenu).is-open > :is(a, .plain-menu-item),
body.is-season-halloween .nav-main__links > .menu-item > a:not(.c-btn):hover { color: var(--hw-link) !important; }

body.is-season-halloween .sub-menu:has(.megamenu) {
	--dst--btn-link-color: #fff !important;
	--dst--btn-link-color-hover: var(--hw-link) !important;
	--dst--base-link-color: #fff !important;
	border: 1px solid var(--hw-border);
}

body.is-season-halloween .sub-menu:has(.megamenu) .dst-button-group .c-btn.-link { --dst--base-link-color: #fff !important; }

body.is-season-halloween .site-header:has(.megamenu) .megamenu :is(a, button, input, textarea, summary, [role="button"]) { --outline-color: var(--hw-candle); }

body.is-season-halloween .navbar-mobile .menu-item .megamenu .ds-column .wp-block-navigation ul a { color: var(--hw-mist); }

body.is-season-halloween .nav-main__btn.is-active { background-color: var(--hw-dusk); }

body.is-season-halloween .navbar-mobile .nav-icon,
body.is-season-halloween .nav-main .nav-icon { --toggle-submenu-btn-bg: transparent; }

/* Disclosure toggles + other small red text on dark become the link colour. */
body.is-season-halloween .dst-disclosures__toggle-text,
body.is-season-halloween .dst-disclosures__toggle { color: var(--hw-link) !important; }


/* In-page jump lists and current-page links */
body.is-season-halloween .dst-list__title a,
body.is-season-halloween .dst-list__title { color: #fff; }

body.is-season-halloween .dst-list__title a:hover { color: var(--hw-link); }

body.is-season-halloween :is(.site-footer, .megamenu, main) :is([aria-current="page"], .current-menu-item > a, .current-menu-item > .wp-block-navigation-item__content):not(.c-btn) { color: var(--hw-link) !important; }


/* Frosted-glass card captions (white 80%) become dark glass so white text passes. */
body.is-season-halloween .c-block__body--video { background-color: rgba(18, 14, 26, 0.88) !important; }

body.is-season-halloween .c-block__body--video :is(.c-btn, .c-btn__txt, .c-block__title, p) { color: #fff !important; }

body.is-season-halloween .js-dst-sticky-wrapper .dst-nav-btn { background: rgba(36, 29, 49, 0.92); color: #fff; }

/* ---------- 4. Rate tables: light Parchment band, Night text ---------- */
body.is-season-halloween .dst-wrapper.rates-table,
body.is-season-halloween .dst-wrapper:has(> .dst-wrapper__inner > .wp-block-table),
body.is-season-halloween .wp-block-table:not(.rates-table *) {
	--dst--base-heading-color: var(--hw-night);
	--dst--base-text-color: var(--hw-night);
	--dst--base-link-color: var(--hw-red);
	--dst--pretitle-color: var(--hw-night);
	--dst--border-color: rgba(18, 14, 26, 0.18);
	--dst--title-color: var(--hw-night);
	--c-block__text-color: var(--hw-night) !important;
	background-color: var(--hw-parchment) !important;
	color: var(--hw-night);
}

body.is-season-halloween .dst-wrapper.rates-table :is(h1, h2, h3, h4, h5, h6, p, li, td, th, caption, figcaption, span, strong, em, b, i, small, sub, sup, div),
body.is-season-halloween .wp-block-table :is(td, th, caption, figcaption, span, strong, em, b, i, small, sub, sup) { color: var(--hw-night) !important; }

body.is-season-halloween .dst-wrapper.rates-table a:not(.c-btn),
body.is-season-halloween .wp-block-table a { color: #a30001 !important; }

body.is-season-halloween .wp-block-table table,
body.is-season-halloween .rates-table table { background-color: var(--hw-parchment) !important; border-color: rgba(18, 14, 26, 0.18) !important; }

body.is-season-halloween .wp-block-table thead,
body.is-season-halloween .wp-block-table thead :is(th, td),
body.is-season-halloween .rates-table thead :is(th, td) { background-color: var(--hw-parchment-2) !important; }

body.is-season-halloween .wp-block-table :is(td, th),
body.is-season-halloween .rates-table :is(td, th) { border-color: rgba(18, 14, 26, 0.18) !important; }

body.is-season-halloween .rates-table .c-bg { --dst--bg-layer: var(--hw-parchment) !important; }

body.is-season-halloween .rates-table :focus-visible,
body.is-season-halloween .wp-block-table :focus-visible { outline-color: var(--hw-night) !important; }

/* ---------- 5. Footer: Stay Connected stays brand red ---------- */
body.is-season-halloween .site-footer,
body.is-season-halloween .site-footer__inner { background-color: var(--hw-midnight) !important; color: var(--hw-mist); }

body.is-season-halloween .site-footer__top .c-bg[style*="primary-color2"] { --dst--bg-layer: var(--hw-red) !important; }

body.is-season-halloween .site-footer :is(a, p, li, span, h2, h3, h4, h5, h6, strong, b) { color: inherit; }

body.is-season-halloween .site-footer :is(h2, h3, h4, h5, h6, strong, b, .menu-title) { color: #fff; }

body.is-season-halloween .site-footer a:not(.c-btn) { color: var(--hw-mist); }

body.is-season-halloween .site-footer a:not(.c-btn):hover { color: var(--hw-link); }

body.is-season-halloween .site-footer__top,
body.is-season-halloween .site-footer__top :is(a, p, span, div, label) { color: #fff; }

/* ---------- 6. Focus: Candlelight outline, visible everywhere ---------- */
body.is-season-halloween :focus-visible {
	outline: 3px solid var(--hw-candle) !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px var(--hw-night) !important;
}

body.is-season-halloween .site-footer__top :focus-visible { box-shadow: 0 0 0 6px var(--hw-night) !important; }

body.is-season-halloween .skip-link:focus { background-color: var(--hw-candle); color: var(--hw-night); }

/* ---------- 7. Pause animations: small floating corner button (WCAG 2.2.2) ----------
   The orange strip was removed (2.1.23). 44px target, Night glass with a Mist
   ring, white icon (16:1 on Night). Hidden with reduced motion (nothing moves). */
body.is-season-halloween .ffcu-season-pause {
	position: fixed;
	bottom: 16px;
	left: 16px;
	z-index: 9990;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 50%;
	background-color: rgba(18, 14, 26, 0.86);
	color: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
	cursor: pointer;
	opacity: 0.8;
	transition: opacity 0.2s ease, background-color 0.2s ease;
}

body.is-season-halloween .ffcu-season-pause:hover,
body.is-season-halloween .ffcu-season-pause:focus-visible { opacity: 1; background-color: var(--hw-dusk); }

body.is-season-halloween .ffcu-season-pause[aria-pressed="true"] { opacity: 1; }

body.is-season-halloween .ffcu-season-pause svg { fill: currentcolor; }

body.is-season-halloween .ffcu-season-pause .ffcu-i-play,
body.is-season-halloween .ffcu-season-pause[aria-pressed="true"] .ffcu-i-pause { display: none; }

body.is-season-halloween .ffcu-season-pause[aria-pressed="true"] .ffcu-i-play { display: inline; }

body.is-season-halloween .ffcu-season-pause[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {

	body.is-season-halloween .ffcu-season-pause { display: none !important; }
}

@media (forced-colors: active) {

	body.is-season-halloween .ffcu-season-pause { border: 1px solid ButtonText; background: ButtonFace; color: ButtonText; opacity: 1; }
}

/* ---------- 8. Decorations (added by halloween.js; decorative only) ---------- */
.ffcu-deco-layer {
	position: absolute;
	inset: 0;
	z-index: 2;
	overflow: hidden;
	pointer-events: none;
}

.ffcu-deco {
	position: absolute;
	display: block;
	pointer-events: none;
	user-select: none;
}

.ffcu-deco svg { display: block; width: 100%; height: 100%; overflow: visible; }

.ffcu-deco--web { color: rgba(189, 181, 204, 0.38); }

.ffcu-deco--bat { color: var(--hw-plum); }

/* Owl: eyelids are a separate layer that blinks shut for a moment. */
.ffcu-deco--owl > svg,
.ffcu-deco--owl-white > svg { position: absolute; inset: 0; }

/* Easter-egg snowy owl: a soft moonlit glow (static; only the blink animates). */
.ffcu-deco--owl-white { filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.55)) drop-shadow(0 0 14px rgba(200, 210, 255, 0.35)); }

.ffcu-deco--owl .ffcu-deco__lids,
.ffcu-deco--owl-white .ffcu-deco__lids { z-index: 1; transform: scaleY(0); transform-origin: 50% 41%; }

/* Black cat: body and tail are stacked layers; the tail flicks from its base. */
.ffcu-deco--cat > svg { position: absolute; inset: 0; }

.ffcu-deco--cat .ffcu-deco__tail { transform-origin: 69% 92%; }

/* the crossing trio flies over photos, so a lighter plum keeps it visible */
.ffcu-deco-flight .ffcu-deco--bat { color: #a596cc; }

.ffcu-deco--spider { color: var(--hw-plum); }

.ffcu-deco--spider .ffcu-deco__thread {
	position: absolute;
	bottom: 95%;
	left: 50%;
	width: 1px;
	height: 60rem;
	background-color: rgba(189, 181, 204, 0.6);
}

.ffcu-deco--leaf-1 { color: #e8701a; } /* autumn orange */

.ffcu-deco--leaf-2 { color: #e0a030; } /* amber */

.ffcu-deco--leaf-3 { color: #8b5a2b; } /* brown */

.ffcu-deco--bat .ffcu-deco__down { display: none; }

/* bats crossing the hero (desktop only, motion allowed, not paused) */
.ffcu-deco-flight { display: none; }

/* ground line on top of the footer */
.ffcu-deco-ground {
	position: relative;
	height: 12rem;
	overflow: hidden;
	background:
		radial-gradient(ellipse 38% 3.6rem at 22% 100%, #1a1426 97%, rgba(26, 20, 38, 0) 100%),
		radial-gradient(ellipse 30% 2.8rem at 76% 100%, #1a1426 97%, rgba(26, 20, 38, 0) 100%),
		linear-gradient(to top, #1a1426 0, #1a1426 1.6rem, rgba(26, 20, 38, 0) 1.6rem),
		var(--hw-night);
	pointer-events: none;
}

.ffcu-deco-ground::before {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background-color: var(--hw-border);
	content: "";
}

@media (max-width: 767px) {

	.ffcu-deco-ground { height: 9rem; }

}

/* ---------- 9. Animations: only when motion is OK and not paused ---------- */
@media (prefers-reduced-motion: no-preference) {

	html:not(.ffcu-season-paused) .ffcu-deco--owl-white .ffcu-deco__lids,
	html:not(.ffcu-season-paused) .ffcu-deco--owl .ffcu-deco__lids { animation: ffcu-blink 7s ease-in-out infinite; }

	html:not(.ffcu-season-paused) .ffcu-deco--cat .ffcu-deco__tail { animation: ffcu-tail 5s ease-in-out infinite; }

	html:not(.ffcu-season-paused) .ffcu-deco--spider.is-anim { animation: ffcu-spider 3.2s ease-in-out infinite; }

	html:not(.ffcu-season-paused) .ffcu-deco--ghost.is-anim { animation: ffcu-ghost 2.4s ease-in-out infinite alternate; }

	html:not(.ffcu-season-paused) .ffcu-deco--lantern .ffcu-deco__glow { animation: ffcu-glow 1.6s linear infinite; }

	/* Lantern and pumpkin glow: the symbols are drawn through <use>, so the glow
	   animates a drop-shadow on the outer SVG (same uneven, non-flashing cycle). */
	html:not(.ffcu-season-paused) .ffcu-deco--lantern > svg,
	html:not(.ffcu-season-paused) .ffcu-deco--jack > svg { animation: ffcu-candle 2s linear infinite; }

	html:not(.ffcu-season-paused) .ffcu-deco--leaf.is-anim { animation: ffcu-leaf 16s linear infinite; opacity: 0; }

	html:not(.ffcu-season-paused) .ffcu-deco--leaf.ffcu-deco--leaf-ground.is-anim { animation: ffcu-leaf-ground 9s ease-in-out infinite; opacity: 1; }

	html:not(.ffcu-season-paused) .ffcu-deco--leaf.is-anim svg { animation: ffcu-sway 3s ease-in-out infinite alternate; }

	html:not(.ffcu-season-paused) .ffcu-deco--bat.is-anim .ffcu-deco__up { animation: ffcu-flap-a 0.36s steps(1, end) infinite; }

	html:not(.ffcu-season-paused) .ffcu-deco--bat.is-anim .ffcu-deco__down { display: block; animation: ffcu-flap-b 0.36s steps(1, end) infinite; }

	html:not(.ffcu-season-paused) .ffcu-deco--bat.is-anim svg { position: absolute; inset: 0; }

	@media (min-width: 768px) {

		html:not(.ffcu-season-paused) .ffcu-deco-flight {
			position: absolute;
			top: 0;
			left: 0;
			display: block;
			width: 26rem;
			height: 12rem;
			animation: ffcu-cross 28s linear infinite;
		}

		/* Sine-like bob: the flight moves across, each bat's wrapper moves up/down. */
		html:not(.ffcu-season-paused) .ffcu-bob {
			position: absolute;
			animation: ffcu-bob var(--bob-dur, 2.4s) ease-in-out var(--bob-delay, 0s) infinite alternate;
			will-change: transform;
		}

		html:not(.ffcu-season-paused) .ffcu-deco-flight ~ .ffcu-deco--bat-still { display: none; }
	}
}

@keyframes ffcu-tail {

	0%,
	70%,
	100% { transform: rotate(0deg); }

	78% { transform: rotate(-9deg); }

	86% { transform: rotate(4deg); }
}

@keyframes ffcu-spider {

	0%, 100% { transform: translateY(0); }

	50% { transform: translateY(7rem); }
}

@keyframes ffcu-ghost {

	from { transform: translateY(0); }

	to { transform: translateY(-1rem); }
}

/* uneven dim/bright cycle, max ~3 changes per second, no flashing */
@keyframes ffcu-glow {

	0% { opacity: 0.35; }

	22% { opacity: 0.9; }

	38% { opacity: 0.6; }

	61% { opacity: 1; }

	83% { opacity: 0.5; }

	100% { opacity: 0.35; }
}

@keyframes ffcu-candle {

	0% { filter: drop-shadow(0 0 2px rgba(255, 210, 122, 0.35)); }

	30% { filter: drop-shadow(0 0 8px rgba(255, 210, 122, 0.8)); }

	55% { filter: drop-shadow(0 0 4px rgba(255, 210, 122, 0.5)); }

	80% { filter: drop-shadow(0 0 9px rgba(255, 210, 122, 0.85)); }

	100% { filter: drop-shadow(0 0 2px rgba(255, 210, 122, 0.35)); }
}

@keyframes ffcu-leaf {

	0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }

	4% { opacity: 1; }

	25% { transform: translate(2rem, 15rem) rotate(25deg); }

	46% { opacity: 1; }

	50% { transform: translate(-2rem, 30rem) rotate(-25deg); opacity: 0; }

	100% { transform: translate(-2rem, 30rem) rotate(-25deg); opacity: 0; }
}

/* footer leaves: a short, gentle drift down onto the ground line */
@keyframes ffcu-leaf-ground {

	0% { transform: translate(0, -2.4rem) rotate(-10deg); opacity: 0; }

	15% { opacity: 1; }

	60%, 100% { transform: translate(1.2rem, 1.6rem) rotate(18deg); opacity: 1; }
}

@keyframes ffcu-sway {

	from { transform: rotate(-12deg); }

	to { transform: rotate(12deg); }
}

@keyframes ffcu-flap-a {

	0% { visibility: visible; }

	50% { visibility: hidden; }
}

@keyframes ffcu-flap-b {

	0% { visibility: hidden; }

	50% { visibility: visible; }
}

/* 8s crossing then 20s rest (28s cycle) */
@keyframes ffcu-cross {

	0% { transform: translate(-30rem, 4rem); opacity: 1; }

	28.5% { transform: translate(calc(100vw + 2rem), 0); opacity: 1; }

	28.6%, 100% { transform: translate(calc(100vw + 2rem), 0); opacity: 0; }
}

/* Reduced motion: everything still (belt and braces). */

/* Moment Gallery (2.1.11) and Voice Stage (2.1.12+) use their own colour variables; while
   Halloween darkens their sections, switch them to the night palette (light and dark styles). */
body.is-season-halloween .dst-voice-stage {
	--vs-title: #fff;
	--vs-text: var(--hw-mist);
	--vs-card: var(--hw-surface);
	--vs-line: var(--hw-border);
	--vs-track: rgba(255, 255, 255, 0.2);
	--vs-focus: var(--hw-candle);
	--vs-card-shadow: none;
}

/* Social Cards (2.1.16): white cards keep their own colours; the section text goes night palette. */
body.is-season-halloween .dst-social-cards {
	--sc-title: #fff;
	--sc-text: var(--hw-mist);
	--sc-line: var(--hw-border);
	--sc-focus: var(--hw-candle);
	--sc-red: var(--hw-eyebrow);
	--sc-btn-hover-text: var(--hw-night);
}

body.is-season-halloween .dst-moment-gallery {
	--mg-title: #fff;
	--mg-text: var(--hw-mist);
	--mg-line: var(--hw-border);
	--mg-panel: var(--hw-surface);
	--mg-focus: var(--hw-candle);
}

@media (prefers-reduced-motion: reduce) {

	.ffcu-deco,
	.ffcu-deco *,
	.ffcu-deco-flight { animation: none !important; transition: none !important; }

	.ffcu-deco-flight { display: none !important; }
}

/* Windows high contrast: hide decorations. */
@media (forced-colors: active) {

	.ffcu-deco-layer,
	.ffcu-deco-ground { display: none; }
}

@media print {

	.ffcu-deco-layer,
	.ffcu-deco-ground,
	body.is-season-halloween .ffcu-season-pause { display: none !important; }
}

/* Decorations on a light (Parchment) band use the "on light" tones. */
.ffcu-deco-layer.is-on-light .ffcu-deco--bat,
.ffcu-deco-layer.is-on-light .ffcu-deco--spider { color: #120e1a; }

.ffcu-deco-layer.is-on-light .ffcu-deco--web { color: #8a7fa3; }

.ffcu-deco-layer.is-on-light .ffcu-deco__thread { background-color: #8a7fa3; }

/* ---------- 11. Block palette: one consistent night look ----------
   Light block variants keep their layout but take the night palette: white
   titles, Mist body text, Eyebrow orange pre-titles, Surface cards. Brand-red
   bands (Stats Band "brand", Callout Strip red) stay red with white text.
   Contrast: white on Surface #2c2440 14.6:1 · Mist on Surface 7.4:1 ·
   Link #ffa463 on Surface 7.3:1 · Eyebrow #ff8a3d on Night 7.6:1. */
body.is-season-halloween .c-heading__title,
body.is-season-halloween [class*="dst-"] [class*="__title"] { --for-text-on-light-bgs: none !important; }

body.is-season-halloween .dst-stats-band.dst-stats-band:not(.dst-stats-band--brand) {
	--dst-stats-band__pre-color: var(--hw-eyebrow);
	--dst-stats-band__value-color: #fff;
	--dst-stats-band__label-color: var(--hw-mist);
}

body.is-season-halloween .dst-stats-band.dst-stats-band--brand {
	--dst-stats-band__pre-color: #fff;
	--dst-stats-band__value-color: #fff;
	--dst-stats-band__label-color: #fff;
	--dst-stats-band__accent-color: #fff;
}

body.is-season-halloween .dst-text-card-stack.dst-text-card-stack {
	--dst-text-card-stack__pre-color: var(--hw-eyebrow);
	--dst-text-card-stack__title-color: #fff;
	--dst-text-card-stack__text-color: var(--hw-mist);
	--dst-text-card-stack__link-color: #fff;
	--dst-text-card-stack__card-bg: var(--hw-surface);
	--dst-text-card-stack__card-title: #fff;
	--dst-text-card-stack__card-text: var(--hw-mist);
	--dst-text-card-stack__accent: var(--hw-eyebrow);
	--dst-text-card-stack__hover-shadow: 0 14px 16px rgba(0, 0, 0, 0.4);
	--dst--base-text-color: var(--hw-mist);
	--dst--base-heading-color: #fff;
}

body.is-season-halloween .dst-info-panel.dst-info-panel {
	--dst-info-panel__pre-color: var(--hw-eyebrow);
	--dst-info-panel__title-color: #fff;
	--dst-info-panel__text-color: var(--hw-mist);
	--dst-info-panel__item-color: #fff;
	--dst-info-panel__tab-bg: transparent;
	--dst-info-panel__tab-color: #fff;
	--dst-info-panel__tab-border: rgba(255, 255, 255, 0.28);
	--dst-info-panel__tab-active-bg: #fff;
	--dst-info-panel__tab-active-color: var(--hw-night);
	--dst--base-text-color: var(--hw-mist);
	--dst--base-heading-color: #fff;
}

body.is-season-halloween .dst-department-directory.dst-department-directory {
	--dst-department-directory__card-bg: var(--hw-surface);
	--dst-department-directory__card-border: var(--hw-border);
	--dst-department-directory__label-color: #fff;
	--dst-department-directory__focus: #fff;
	--dst-department-directory__pre-color: var(--hw-eyebrow);
	--dst--btn-link-color: #fff;
}

body.is-season-halloween .dst-app-launcher.dst-app-launcher {
	--dst--pretitle-color: var(--hw-eyebrow);
	--dst-app-launcher__card-bg: var(--hw-surface);
	--dst-app-launcher__card-border: var(--hw-border);
	--dst-app-launcher__label-color: #fff;
	--dst-app-launcher__desc-color: var(--hw-mist);
	--dst-app-launcher__focus: #fff;
	--dst--btn-link-color: #fff;
}

body.is-season-halloween .dst-story-reel.dst-story-reel {
	--dst-story-reel__pre-color: var(--hw-eyebrow);
	--dst-story-reel__title-color: #fff;
	--dst-story-reel__text-color: var(--hw-mist);
	--dst-story-reel__link-color: #fff;
	--dst-story-reel__seg-color: var(--hw-border);
	--dst-story-reel__arrow-color: #fff;
	--dst-story-reel__arrow-hover-text: var(--hw-night);
}

body.is-season-halloween .dst-callout-strip.dst-callout-strip:not(.is-style-colors-inverted):not(.-text-guard) {
	--dst-callout-strip__text: #fff;
	--dst-callout-strip__line: var(--hw-border);
	--dst-callout-strip__btn-line: #fff;
	--dst-callout-strip__btn-text: #fff;
	--dst-callout-strip__btn-hover-bg: #fff;
	--dst-callout-strip__btn-hover-text: var(--hw-night);
}

body.is-season-halloween .dst-open-frame.dst-open-frame:not(.is-style-colors-inverted) .dst-open-frame__cue { color: var(--hw-mist); }

body.is-season-halloween .dst-open-frame.dst-open-frame:not(.is-style-colors-inverted).is-title-out .dst-open-frame__title { color: #fff; }

body.is-season-halloween .dst-open-frame.dst-open-frame:not(.is-style-colors-inverted).is-text-out .dst-open-frame__text { color: var(--hw-mist); }

body.is-season-halloween .dst-open-frame.dst-open-frame:not(.is-style-colors-inverted).is-actions-out .dst-open-frame__actions .c-btn.-secondary {
	--dst--btn-secondary-color: #fff;
	--dst--btn-secondary-border-color: #fff;
}

/* Frosted glass panels over photos: a Night tint instead of 80% white,
   so the light text stays AA over any photo (Mist on the tint >= 7:1). */
body.is-season-halloween .dst-wrapper.-version-2 .dst-wrapper__inner,
body.is-season-halloween .dst-cards.-version-10 .c-block__body,
body.is-season-halloween .dst-cards.-version-5 .-link {
	border-color: var(--hw-border) !important;
	background-color: rgba(18, 14, 26, 0.88) !important;
}

body.is-season-halloween .blog-grid .c-block__tag,
body.is-season-halloween .dst-cards.-version-12 .c-block__tag {
	border-color: var(--hw-border);
	background: rgba(18, 14, 26, 0.85);
	color: #fff;
}

/* Listing filter bar (events, articles): Dusk, light text. */
body.is-season-halloween .blog-filter {
	border-color: var(--hw-border) !important;
	background-color: var(--hw-dusk) !important;
	color: #fff;
}

body.is-season-halloween .blog-filter__title,
body.is-season-halloween .blog-filter label { color: #fff !important; }

/* Accordions: rows take the section background; a Plum-grey divider
   (#756699, >= 3.1:1 on Night, Night 2, Midnight and Dusk) separates them.
   Version 2 sits over photos and keeps its dark tint for text contrast. */
body.is-season-halloween .dst-accordion { --item-border-color: #756699; }

body.is-season-halloween .dst-accordion:not(.-version-2) :is(.dst-accordion__item, .dst-accordion__title, .dst-accordion__panel) {
	background-color: transparent !important;
	color: var(--hw-mist);
}

body.is-season-halloween .dst-accordion:not(.-version-2) .dst-accordion__item {
	border: 0 !important;
	border-bottom: 1px solid #756699 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.is-season-halloween .dst-accordion:not(.-version-2) .dst-accordion__item:first-child { border-top: 1px solid #756699 !important; }

/* one divider per row: no inner line in the open item, no icon outline */
body.is-season-halloween .dst-accordion:not(.-version-2) .dst-accordion__panel,
body.is-season-halloween .dst-accordion:not(.-version-2) .dst-accordion__panel .dst-button-group { border-top: 0 !important; }

body.is-season-halloween .dst-accordion:not(.-version-2) .dst-accordion__q-icon { border: 0 !important; }

/* toggle: brand red with a white icon, open or closed (white on red 5.2:1,
   red on Night 3.7:1 as a non-text cue) */
body.is-season-halloween .dst-accordion .dst-accordion__item .dst-accordion__arrow,
body.is-season-halloween .dst-accordion .dst-accordion__item[open] .dst-accordion__arrow {
	background-color: var(--hw-red) !important;
	color: #fff !important;
}

body.is-season-halloween .dst-accordion__title:focus-visible,
body.is-season-halloween .dst-accordion summary:focus-visible {
	outline: 2px solid var(--hw-candle) !important;
	outline-offset: 2px;
}

body.is-season-halloween .dst-accordion__text,
body.is-season-halloween .dst-accordion__text * { color: var(--hw-mist); }

body.is-season-halloween .dst-accordion__text a { color: var(--hw-link); }

body.is-season-halloween .dst-accordion__question { color: #fff !important; }

/* Contained section backgrounds (set by halloween.js) blend into the page,
   so a panel narrower than the viewport no longer leaves a seam. */
body.is-season-halloween .ffcu-season-blend.ffcu-season-blend.ffcu-season-blend {
	--dst--bg-layer: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
}

/* Remaining light surfaces and brand-red text found by the site sweep. */
body.is-season-halloween .pagination-link,
body.is-season-halloween .search-results-group-title,
body.is-season-halloween .frc-eyebrow,
body.is-season-halloween .frc-num { color: var(--hw-eyebrow) !important; }

body.is-season-halloween .article-info__tag a,
body.is-season-halloween .search-filter__list-item,
body.is-season-halloween .search-filter a { color: #fff !important; }

/* List items with a background (feature pills / tags): keep a visible pill
   outline, #756699 is >= 3.1:1 on Night, Night 2, Midnight and Dusk. */
body.is-season-halloween .dst-list__item.has-background.has-background {
	border: 1px solid #756699 !important;
	background-color: var(--hw-surface) !important;
}

body.is-season-halloween .frc-card {
	border-color: var(--hw-border) !important;
	background-color: var(--hw-surface) !important;
	color: var(--hw-mist);
}

body.is-season-halloween .frc-card :is(h1, h2, h3, h4, legend, strong) { color: #fff; }

body.is-season-halloween .a2a_kit .a2a_label { color: #fff !important; }

/* Stat cards (Cards "--stats") and Gravity Forms helpers. */
body.is-season-halloween .dst-cards__item.--stats .c-block {
	border-color: var(--hw-border) !important;
	background-color: var(--hw-surface) !important;
}

body.is-season-halloween .dst-cards__item.--stats .c-block__body { background-color: transparent !important; }

body.is-season-halloween .dst-cards__item.--stats .c-block__title,
body.is-season-halloween .dst-cards__item.--stats .c-block__title * { color: #fff !important; }

body.is-season-halloween .dst-cards__item.--stats .c-block__description,
body.is-season-halloween .dst-cards__item.--stats .c-block__description * { color: var(--hw-mist) !important; }

body.is-season-halloween .gform_wrapper .gfield_description { color: var(--hw-mist) !important; }

body.is-season-halloween .gform_wrapper .gform_drop_area {
	border-color: var(--hw-input) !important;
	background-color: var(--hw-dusk) !important;
	color: var(--hw-mist);
}

/* ---------- 12. Logo stays on brand (SVP feedback, 2.1.23) ----------
   The site's normal header logo (silver gradient) shows during Halloween,
   untouched: no swap, filter or colour override here. A logo picked under Appearance > Seasonal theme
   still swaps in through an inline style from the PHP. */

/* ---------- 13. Landing page banners: night-purple tint ----------
   Sits on the banner's background media layer (.c-bg), so the theme overlay,
   text, buttons and any video controls stay above it and clickable.
   Multiply only deepens the photo, so white banner text keeps or gains
   contrast. */
body.is-season-halloween :is(.dst-banner, .dst-banner-slide) > .c-bg { isolation: isolate; }

body.is-season-halloween :is(.dst-banner, .dst-banner-slide) > .c-bg::after {
	position: absolute;
	z-index: 1;
	background: rgba(58, 31, 92, 0.3);
	content: "";
	inset: 0;
	mix-blend-mode: multiply;
	pointer-events: none;
}

@media (forced-colors: active) {

	body.is-season-halloween :is(.dst-banner, .dst-banner-slide) > .c-bg::after { display: none; }
}

/* Remaining faint seams: the sticky sub-nav wrapper's bottom rule and the
   callout strips' top/bottom rules (glass panels keep their full outline). Tables, cards, inputs, tags
   and buttons keep their borders. */
body.is-season-halloween .dst-wrapper.js-dst-sticky-wrapper { border-bottom-color: transparent !important; }

body.is-season-halloween .dst-callout-strip { border-top-color: transparent !important; border-bottom-color: transparent !important; }

@keyframes ffcu-blink {

	0%,
	92%,
	100% { transform: scaleY(0); }

	95% { transform: scaleY(1); }
}

@keyframes ffcu-bob {

	from { transform: translateY(calc(var(--bob-amp, 10px) * -1)); }

	to { transform: translateY(var(--bob-amp, 10px)); }
}

/* ---------- 14. Rate tables on the Parchment band: visible outline (2.1.25) ----------
   Same 1px outline, row/column dividers and rounded corners as the normal site's
   tables, in a darker warm brown (#8a7660: 3.96:1 on Parchment, 3.54:1 on the
   header tint). "separate" borders keep the outer edge visible inside the
   rounded, overflow-clipped table (collapsed borders get clipped away). */
body.is-season-halloween .wp-block-table table,
body.is-season-halloween .rates-table table {
	border: 1px solid #8a7660 !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
}

body.is-season-halloween .wp-block-table :is(th, td),
body.is-season-halloween .rates-table :is(th, td) {
	border: 0 !important;
	border-bottom: 1px solid #8a7660 !important;
	border-left: 1px solid #8a7660 !important;
}

body.is-season-halloween .wp-block-table tr > :first-child,
body.is-season-halloween .rates-table tr > :first-child { border-left: 0 !important; }

body.is-season-halloween .wp-block-table tr:last-child > :is(th, td),
body.is-season-halloween .rates-table tr:last-child > :is(th, td) { border-bottom: 0 !important; }

body.is-season-halloween .wp-block-table thead tr:last-child > :is(th, td),
body.is-season-halloween .rates-table thead tr:last-child > :is(th, td) { border-bottom: 1px solid #8a7660 !important; }

/* 2.1.28: the Parchment fill on a table's figure is a square box, so on a dark
   section its corners poked out past the table's rounded (15px) corners.
   Round the figure to match; overflow stays as-is so wide tables still scroll. */
body.is-season-halloween .wp-block-table:not(.rates-table *) { border-radius: 15px; }

@media (forced-colors: active) {

	body.is-season-halloween :is(.wp-block-table, .rates-table) :is(table, th, td) { border-color: CanvasText !important; }
}
