/* MSM Broadcast: station look built on theme.json tokens.
 * Colors come from the palette (brand, brand-deep, live, paper, haze, ink, slate),
 * so a station restyles by changing its palette in Appearance > Editor > Styles. */

:root {
	--b-brand: var(--wp--preset--color--brand);
	--b-deep: var(--wp--preset--color--brand-deep);
	--b-live: var(--wp--preset--color--live);
	--b-paper: var(--wp--preset--color--paper);
	--b-haze: var(--wp--preset--color--haze);
	--b-ink: var(--wp--preset--color--ink);
	--b-slate: var(--wp--preset--color--slate);
	--b-serif: var(--wp--preset--font-family--serif);
	--b-rule: color-mix(in srgb, var(--b-ink) 14%, transparent);
}

body { -webkit-font-smoothing: antialiased; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
main.home > * { margin-block: 0; }
body.has-msm-player { padding-bottom: 0; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid var(--b-live); outline-offset: 2px; }

/* ---------- Header ---------- */
.site-header { background: var(--b-paper); border-bottom: 1px solid var(--b-rule); padding-block: 12px; }
.site-header__bar { gap: 24px; }
.site-header__logo img { height: auto; max-height: 72px; width: auto; }
.site-header__right { gap: 20px; }
.site-header__nav a { color: var(--b-ink); text-decoration: none; }
.site-header__nav a:hover, .site-header__nav a:focus-visible { color: var(--b-brand); text-decoration: underline; text-underline-offset: 4px; }

/* Listen button: the logo's "97.7 FM • 960 AM" capsule. */
.msm-listen-live {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 10px 20px 10px 12px;
	background: var(--b-brand); color: var(--b-paper);
	border: 0; border-radius: 999px; cursor: pointer;
	font: 700 1rem/1 var(--wp--preset--font-family--sans);
	font-stretch: 90%; letter-spacing: 0; text-transform: none;
	white-space: nowrap;
}
.msm-listen-live::before {
	content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%;
	background: var(--b-live); box-shadow: 0 0 0 3px var(--b-paper);
	border: 0;
}
.msm-listen-live[aria-pressed="true"]::before { background: var(--b-paper); box-shadow: inset 0 0 0 5px var(--b-live), 0 0 0 3px var(--b-paper); width: 18px; height: 18px; }
.msm-listen-live:hover { background: var(--b-deep); }

@media (max-width: 600px) {
	.site-header__logo img { max-height: 52px; }
	.site-header__right { gap: 8px; }
	.site-header .msm-listen-live { padding: 8px 14px 8px 10px; font-size: .9375rem; }
}

/* ---------- On-air band (the one loud thing) ---------- */
.onair-band { padding-block: clamp(28px, 5vw, 56px); }
.msm-onair--band { background: transparent; padding: 0; color: inherit; }
.msm-onair--band .msm-onair__now { gap: clamp(16px, 4vw, 48px); align-items: flex-end; }
.msm-onair--band .msm-onair__label { font-size: 1rem; font-weight: 600; color: color-mix(in srgb, var(--b-paper) 85%, transparent); }
.msm-onair--band .msm-onair__dot { width: 12px; height: 12px; background: var(--b-live); box-shadow: 0 0 0 3px color-mix(in srgb, var(--b-paper) 90%, transparent); }
.msm-onair--band .msm-onair__title {
	margin: 10px 0 6px;
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 900; font-stretch: 72%;
	font-size: clamp(3rem, 9vw, 7.5rem); line-height: .9; letter-spacing: -0.01em;
	color: var(--b-paper);
}
.msm-onair--band .msm-onair__meta { font-size: 1.125rem; opacity: .9; }
.msm-onair--band .msm-onair__img { width: clamp(220px, 28vw, 380px); height: auto; aspect-ratio: 960 / 417; object-fit: cover; border-radius: 14px; box-shadow: 0 10px 30px rgb(0 0 0 / .2); }
.msm-onair--band .msm-onair__actions { align-items: flex-start; }
.msm-onair--band .msm-listen-live { background: var(--b-paper); color: var(--b-brand); font-size: 1.25rem; padding: 14px 26px 14px 14px; }
.msm-onair--band .msm-listen-live::before { width: 22px; height: 22px; box-shadow: 0 0 0 3px var(--b-brand); }
.msm-onair--band .msm-listen-live:hover { background: var(--b-haze); }
.msm-onair--band .msm-onair__next { font-size: 1rem; color: color-mix(in srgb, var(--b-paper) 85%, transparent); }
.msm-onair--band .msm-onair__next a { color: var(--b-paper); }
.msm-onair--band .msm-onair__sponsor { color: color-mix(in srgb, var(--b-paper) 80%, transparent); }

/* ---------- Home: news + rail ---------- */
.home-main { padding-block: clamp(32px, 5vw, 56px); }
.home-main__cols { gap: clamp(24px, 4vw, 48px); }
.section-title { font-stretch: 80%; font-weight: 900; margin: 0 0 16px; font-size: clamp(1.75rem, 3vw, 2.25rem); }
.home-rail > * + * { margin-top: 28px; }
.rail-box { padding: 20px 22px; border-radius: 12px; }
.rail-box .section-title { font-size: 1.5rem; }

/* MSJ: lead story large, the rest as compact rows. */
.home-news .msm-msj { grid-template-columns: 1fr; gap: 0; }
.home-news .msm-msj__card { background: transparent; border: 0; border-radius: 0; border-top: 1px solid var(--b-rule); flex-direction: row; gap: 16px; padding: 16px 0; overflow: visible; }
.home-news .msm-msj__card .msm-msj__img { width: 132px; flex: none; aspect-ratio: 4 / 3; border-radius: 8px; }
.home-news .msm-msj__body { padding: 0; }
.home-news .msm-msj__card.is-lead { flex-direction: column; border-top: 0; padding-top: 0; gap: 14px; }
.home-news .msm-msj__card.is-lead .msm-msj__img { width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; }
.home-news .msm-msj__card.is-lead .msm-msj__title { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; font-stretch: 85%; line-height: 1.1; }
.home-news .msm-msj__title { font-size: 1.125rem; font-weight: 700; line-height: 1.25; }
.home-news .msm-msj__excerpt { font-family: var(--b-serif); font-size: 1rem; line-height: 1.5; color: var(--b-ink); }
.home-news .msm-msj__card:not(.is-lead) .msm-msj__excerpt { display: none; }
.home-news .msm-msj__meta { color: var(--b-slate); opacity: 1; font-size: .875rem; }
.home-news .msm-msj__credit { font-size: .9375rem; color: var(--b-slate); margin-top: 8px; }
@media (max-width: 600px) {
	.home-news .msm-msj__card .msm-msj__img { width: 96px; }
}

.home-leader { padding-block: 28px; border-top: 1px solid var(--b-rule); }

/* Events */
.msm-events__date { border-color: var(--b-brand); color: var(--b-brand); }
.msm-events__day { font-stretch: 80%; font-weight: 900; }
.msm-events__title { color: var(--b-ink); }
.msm-events__meta { color: var(--b-slate); opacity: 1; }

/* Ads */
.msm-ad__label { color: var(--b-slate); opacity: 1; }
.msm-ad__house { color: var(--b-brand); border-color: color-mix(in srgb, var(--b-brand) 45%, transparent); background: var(--b-paper); }

/* ---------- Pages ---------- */
.page-main { padding-block: clamp(32px, 6vw, 72px); }
.page-title { font-stretch: 78%; font-weight: 900; margin-bottom: 24px; }
.post-meta { color: var(--b-slate); font-size: .9375rem; }
.post-list__item { gap: 20px; padding-block: 20px; border-top: 1px solid var(--b-rule); }
.post-list__item .wp-block-post-title a { color: var(--b-ink); text-decoration: none; }
.post-list__item .wp-block-post-title a:hover { text-decoration: underline; }
.post-list__item .wp-block-post-excerpt { font-family: var(--b-serif); }

/* Schedule page */
.msm-schedule__day { background: var(--b-paper); }
.msm-schedule__day.is-today { border-color: var(--b-brand); }
.msm-schedule__today { background: var(--b-brand); }
.msm-schedule__live { color: var(--b-live); }

/* ---------- Footer ---------- */

/* Player bar matches the brand. */
.msm-player { background: var(--b-deep); font-family: var(--wp--preset--font-family--sans); }
.msm-player__toggle { background: var(--b-live); color: var(--b-paper); }
.msm-player__vol input { accent-color: var(--b-live); }

/* ---------- Weather band ---------- */
.weather-band { padding-block: clamp(28px, 4vw, 44px); background: var(--b-paper); border-bottom: 1px solid var(--b-rule); }
.msm-wx--band .msm-wx__place { font-size: 1.125rem; color: var(--b-slate); font-weight: 600; }
.msm-wx--band .msm-wx__current { color: var(--b-brand); }
.msm-wx--band .msm-wx__temp { font-size: clamp(4rem, 8vw, 6rem); font-weight: 900; font-stretch: 75%; color: var(--b-ink); }
.msm-wx--band .msm-wx__cond { font-size: 1.125rem; font-weight: 600; }
.msm-wx__day { background: var(--b-haze); color: var(--b-ink); }
.msm-wx__day .msm-wx__icon { color: var(--b-brand); }
.msm-wx__dname { font-stretch: 85%; }
.msm-wx__hi { font-size: 1.25rem; font-stretch: 85%; font-weight: 900; }
.msm-wx__lo { font-size: 1.25rem; font-stretch: 85%; color: var(--b-slate); opacity: 1; }
.msm-wx__pop { color: var(--b-brand); }
.msm-wx__credit { color: var(--b-slate); }
.msm-wx--compact { background: var(--b-haze); border-radius: 12px; padding: 18px; gap: 12px; }
.msm-wx--compact .msm-wx__temp { font-size: 3rem; font-stretch: 75%; font-weight: 900; }
.msm-wx--compact .msm-wx__current .msm-wx__icon { width: 52px; height: 52px; color: var(--b-brand); }
.msm-wx--compact .msm-wx__day { background: var(--b-paper); padding: 8px 4px; }
.msm-wx--compact .msm-wx__short, .msm-wx--compact .msm-wx__pop { display: none; }

/* ---------- Pages with sidebar ---------- */
.page-cols { gap: clamp(24px, 4vw, 56px); }
.page-rail > * + * { margin-top: 28px; }
@media (max-width: 781px) { .page-rail { order: 2; } }

/* ---------- Network strip ---------- */

/* ---------- Videos + social ---------- */
.home-videos { padding-block: clamp(32px, 5vw, 56px); }
.msm-videos__item figcaption a { color: var(--b-ink); }

/* Announcements + Get on the air */
.home-notices { padding-block: clamp(32px, 5vw, 56px); background: var(--b-paper); }
.home-notices__cols { gap: clamp(24px, 4vw, 56px) !important; align-items: flex-start !important; }
.onair-links-box { padding: 26px 28px 18px; border-radius: 14px; }
.onair-links-box .section-title { color: inherit; margin-top: 0; }
.home-ann .msm-ann__title { font-weight: 800; font-stretch: 90%; }
.home-ann .msm-ann__text { font-family: var(--b-serif); }
.home-ann .msm-ann__meta { color: var(--b-slate); }
.msm-form-wrap, .msm-form input, .msm-form select, .msm-form textarea, .msm-form button { font-family: var(--wp--preset--font-family--sans); }
.home-news .msm-feeds__heading { margin-top: clamp(32px, 4vw, 48px) !important; }
.home-news .msm-feed__desc { font-family: var(--b-serif); }

/* ---------- Footer ---------- */
.site-footer { padding-top: 0 !important; padding-bottom: 0 !important; --f-soft: color-mix(in srgb, var(--b-paper) 72%, transparent); --f-line: color-mix(in srgb, var(--b-paper) 16%, transparent); }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.site-footer a:focus-visible { outline: 2px solid var(--b-paper); outline-offset: 3px; border-radius: 2px; }

.site-footer__top { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); padding-block: clamp(56px, 8vw, 104px) clamp(40px, 5vw, 64px); }
.msm-mark__name { margin: 0; font-weight: 900; font-stretch: 75%; font-size: clamp(3.5rem, 8.5vw, 7rem); line-height: .86; letter-spacing: -.01em; }
.msm-mark__name a { text-decoration: none !important; }
.msm-mark__tag { margin: 18px 0 0; max-width: 26ch; font-family: var(--b-serif); font-size: 1.125rem; line-height: 1.45; color: var(--f-soft); }
.site-footer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin-top: 32px; }
.site-footer .msm-listen-live { background: var(--b-paper); color: var(--b-deep); }
.site-footer .msm-social { gap: 6px; margin: 0; }
.site-footer .msm-social a { width: 40px; height: 40px; border: 0; color: var(--f-soft); }
.site-footer .msm-social a:hover { color: var(--b-paper); background: color-mix(in srgb, var(--b-paper) 12%, transparent); text-decoration: none; }

.msm-fnav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; align-content: start; padding-top: 10px; }
.msm-fnav__title { margin: 0 0 18px; font-size: .9375rem; font-weight: 600; color: var(--f-soft); }
.msm-fnav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.msm-fnav a { font-weight: 600; font-size: 1.0625rem; }
.msm-fnav__addr { margin-top: 22px; font-style: normal; font-size: .9375rem; line-height: 1.55; color: var(--f-soft); }
.msm-fnav__phone { display: block; margin-top: 6px; color: var(--b-paper) !important; font-weight: 700; font-size: 1.0625rem; }

.site-footer__legal { border-top: 1px solid var(--f-line); padding-block: 22px 28px; }
.site-footer .msm-compliance { font-size: .875rem; line-height: 1.6; color: var(--f-soft); }
.site-footer .msm-compliance ul { gap: 6px 24px; margin: 0; }
.site-footer .msm-compliance p { margin: 10px 0 0; }

.site-footer__network { background: color-mix(in srgb, var(--b-deep) 70%, #000); padding-block: 22px calc(var(--msm-bar-h, 64px) + 22px); }
.msm-network { gap: 12px 24px; }
.msm-network__brand { flex: none; }
.msm-network__logo-crop { position: relative; display: block; width: 104px; height: 52px; overflow: hidden; }
.msm-network__logo-crop .msm-network__logo { position: absolute; width: 146px; height: 146px; max-width: none; left: -21px; top: -45px; }
.msm-network__name { font-weight: 800; font-size: 1.0625rem; }
.msm-network__line { font-family: var(--b-serif); font-style: italic; font-size: 1.0625rem; color: var(--b-paper); }
.msm-network__copy { font-size: .8125rem; color: var(--f-soft); opacity: 1; }

@media (max-width: 900px) {
	.site-footer__top { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.msm-fnav { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
	.msm-fnav__group:last-child { grid-column: 1 / -1; }
	.msm-network { flex-direction: column; align-items: flex-start; }
}

/* ---------- Logo mark ---------- */
.msm-mark__logo { display: inline-block; line-height: 0; text-decoration: none !important; }
.msm-mark__logo img { display: block; width: clamp(180px, 22vw, 260px); height: auto; }
.msm-mark__logo:hover img { opacity: .9; }
.msm-onair__title--logo { margin: 0; line-height: 0; }
.msm-onair__title--logo img { display: block; width: clamp(200px, 26vw, 320px); height: auto; background: var(--b-paper); border-radius: 16px; padding: 18px 24px; box-sizing: content-box; box-shadow: 0 10px 30px rgb(0 0 0 / .18); }

/* ---------- Accent red (#CC1041, from the station logo) ---------- */
.site-header { border-bottom: 4px solid var(--b-live); }
.site-header .msm-listen-live, .msm-listen-live { background: var(--b-live); color: var(--b-paper); }
.site-header .msm-listen-live::before { background: var(--b-paper); box-shadow: 0 0 0 3px color-mix(in srgb, var(--b-paper) 35%, transparent); }
.site-header .msm-listen-live:hover { background: color-mix(in srgb, var(--b-live) 82%, #000); }
.msm-onair--band .msm-listen-live, .site-footer .msm-listen-live { background: var(--b-live); color: var(--b-paper); }
.msm-onair--band .msm-listen-live::before, .site-footer .msm-listen-live::before { background: var(--b-paper); box-shadow: 0 0 0 3px color-mix(in srgb, var(--b-paper) 35%, transparent); }
.msm-onair--band .msm-listen-live:hover, .site-footer .msm-listen-live:hover { background: color-mix(in srgb, var(--b-live) 82%, #000); }
.section-title::before { content: ""; display: block; width: 44px; height: 5px; border-radius: 3px; background: var(--b-live); margin-bottom: 14px; }
.site-header .wp-block-navigation-item__content:hover, .site-header .wp-block-navigation-item__content:focus-visible { text-decoration: underline; text-decoration-color: var(--b-live); text-decoration-thickness: 3px; text-underline-offset: 8px; }
.page-content a, .msm-ann__link a, .msm-ann__more a, .msm-msj__credit a { text-decoration-color: var(--b-live); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.msm-listen-links a::after { color: var(--b-live); border-color: var(--b-live); }
.onair-links-box { border-top: 5px solid var(--b-live); }
.msm-form__submit { background: var(--b-live); }
.msm-form__submit:hover { filter: none; background: color-mix(in srgb, var(--b-live) 82%, #000); }
.msm-schedule__day.is-today, .msm-schedule .is-today { border-color: var(--b-live); }
.site-footer { border-top: 5px solid var(--b-live); }
.home-news .msm-msj__title a:hover, .msm-feed__title:hover { text-decoration-color: var(--b-live); }
.site-header__nav a:hover, .site-header__nav a:focus-visible { color: var(--b-ink); text-decoration-color: var(--b-live); text-decoration-thickness: 3px; text-underline-offset: 8px; }
.msm-schedule__day.is-today { border-color: var(--b-live); }
.msm-schedule__live { font-weight: 700; }
.msm-onair--band .msm-onair__nextlabel { color: inherit; }
.msm-onair--band .msm-onair__nextcard { border-left: 4px solid var(--b-live); }
.msm-ticker { background: var(--b-deep); }
/* Show page: full cover, never cropped */
.show-cover { margin: 0 0 24px; }
.show-cover img { width: 100%; height: auto !important; aspect-ratio: auto !important; object-fit: contain !important; border-radius: 14px; display: block; }
.show-page .page-title { margin-bottom: 10px; }
/* On-air band with today's lineup: keep the three parts from colliding. */
.msm-onair--band .msm-onair__now { flex-wrap: wrap; }
.msm-onair--band .msm-onair__body { flex: 1 1 340px; min-width: 0; }
.msm-onair--band .msm-onair__title { font-size: clamp(2.6rem, 6vw, 5.5rem); overflow-wrap: anywhere; }
.msm-onair--band .msm-onair__title--logo { font-size: 1rem; }
.msm-onair--band .msm-lineup { align-self: center; }
.msm-onair--band .msm-lineup__title { color: color-mix(in srgb, var(--b-paper) 85%, transparent); font-family: var(--wp--preset--font-family--sans); }
.msm-onair--band .msm-lineup__show { color: var(--b-paper); }
@media (min-width: 1100px) { .msm-onair--band .msm-onair__body { flex: 0 1 34%; } }
@media (min-width: 1100px) {
	.msm-onair--band .msm-onair__now { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .95fr); gap: 40px; align-items: center; }
	.msm-onair--band .msm-onair__body, .msm-onair--band .msm-lineup { flex: none; max-width: none; }
	.msm-onair--band .msm-onair__actions { align-items: stretch; }
	.msm-onair--band .msm-onair__actions .msm-listen-live { align-self: flex-start; }
}
.msm-onair--band .msm-onair__img { display: block; margin: 12px 0 4px; width: min(100%, 340px); }
.msm-onair--band .msm-onair__title--logo img { width: min(100%, 320px); }

/* Home rail runs the full height of the news column; last ad follows the scroll. */
.home-main__cols { align-items: stretch !important; }
.home-rail { display: flex; flex-direction: column; gap: 28px; }
.home-rail > * { margin-block: 0 !important; }
.home-rail .rail-sticky { position: sticky; top: 24px; margin-top: auto !important; }
@media (min-width: 782px) { .home-rail .rail-sticky { margin-top: 0 !important; } .home-rail { position: relative; } }

.rail-box .msm-fbcard { margin-top: 20px; box-shadow: none; background: var(--b-haze); }
.rail-box .msm-videos__more { margin: 12px 0 0; font-weight: 600; }
/* Footer: white knockout logo straight on navy (no card) */
.msm-mark__knockout { display: inline-block; line-height: 0; }
.msm-mark__knockout img { display: block; width: clamp(200px, 22vw, 280px); height: auto; }
.msm-mark__knockout:hover img { opacity: .9; }
.rail-box .msm-follow { margin-top: 20px; }
/* Band order on wide screens: Listen live + Up next | Today's lineup | On air now */
@media (min-width: 1100px) {
	.msm-onair--band .msm-onair__actions { order: 1; }
	.msm-onair--band .msm-lineup { order: 2; }
	.msm-onair--band .msm-onair__body { order: 3; }
	.msm-onair--band .msm-onair__title { font-size: clamp(2.4rem, 4.2vw, 4.25rem); }
}

/* Brand texture: faint radio-wave rings from the logo's red dot. Used in two places only. */
.weather-band, .home-notices { position: relative; isolation: isolate; overflow: hidden; }
.weather-band::before, .home-notices::before {
	content: ""; position: absolute; z-index: -1; pointer-events: none;
	width: 1400px; height: 1400px;
	background: url("waves.svg") center / contain no-repeat;
	-webkit-mask-image: radial-gradient(circle, #000 18%, rgba(0,0,0,.55) 42%, transparent 68%);
	mask-image: radial-gradient(circle, #000 18%, rgba(0,0,0,.55) 42%, transparent 68%);
}
.weather-band::before { right: -700px; top: 50%; transform: translateY(-50%); }
.home-notices::before { left: -760px; top: -740px; }
.weather-band .msm-wx__day { box-shadow: 0 1px 0 rgba(19,40,92,.04); }
@media (max-width: 700px) {
	.weather-band::before, .home-notices::before { width: 900px; height: 900px; }
	.weather-band::before { right: -520px; }
	.home-notices::before { left: -520px; top: -420px; }
}

/* Skyscraper in the right margin; stays in view while scrolling.
   1400-1619px: content narrows a little to make room. 1620px+: natural margin. */
.gutter-ad { display: none; }
@media (min-width: 1400px) {
	.gutter-ad {
		display: block; position: fixed; z-index: 50;
		top: 222px; right: max(24px, calc((100vw - 1200px) / 2 - 160px - 48px));
		width: 160px; margin: 0 !important;
	}
	.admin-bar .gutter-ad { top: 254px; }
	.gutter-ad .msm-ad { margin: 0; }
}
@media (min-width: 1400px) and (max-width: 1619.98px) {
	html body { --wp--style--global--wide-size: calc(100vw - 460px); }
	.gutter-ad { right: 34px; }
}

/* ---------- Phones: an ad near the top, shorter page ---------- */
.home-mobile-ad{display:none}
@media (max-width:781px){
.home-mobile-ad{display:block;padding-block:20px;background:var(--wp--preset--color--haze,#eef2f8);text-align:center}
.home-mobile-ad .msm-ad{margin:0 auto}
.home-rail > :first-child{display:none}
.home-rail .msm-videos--stack{display:none}
.home-videos .msm-videos{grid-auto-flow:column;grid-auto-columns:80%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;overscroll-behavior-x:contain}
.home-videos .msm-videos__item{scroll-snap-align:start}
}
/* Room for the player ad strip at the bottom */
@media (max-width:1180px){
body:has(.msm-player__ads) .site-footer__network{padding-bottom:calc(var(--msm-bar-h,64px) + 84px)}
}

/* Footer: four columns with "Follow us" */
.msm-fnav { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.msm-fnav__social { display: inline-flex; align-items: center; gap: 10px; }
.msm-fnav__social svg { flex: none; width: 34px; height: 34px; padding: 7px; border-radius: 50%; border: 1.5px solid var(--f-line); transition: background .2s, border-color .2s; }
.msm-fnav__social:hover svg, .msm-fnav__social:focus-visible svg { background: var(--wp--preset--color--live, #CC1041); border-color: var(--wp--preset--color--live, #CC1041); }
@media (max-width: 1100px) { .msm-fnav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; } }
@media (max-width: 781px) { .msm-fnav__group:last-child { grid-column: auto; } }
@media (max-width:781px){.home-rail .rail-box:has(.msm-videos--stack){display:none}}
@media (min-width: 901px) { .site-footer__top { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 4vw, 64px); } }
.msm-fnav { column-gap: 24px; }
.msm-fnav a { overflow-wrap: normal; }
.msm-fnav__phone { white-space: nowrap; }
.msm-fnav__social svg { width: 30px; height: 30px; padding: 6px; }
@media (max-width: 1250px) { .msm-fnav { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; } }

/* Texture follows the station palette: rings in the brand color. */
.weather-band::before, .home-notices::before {
	background: color-mix(in srgb, var(--b-brand) 14%, transparent);
	-webkit-mask-image: url("waves-mask.svg"), radial-gradient(circle, #000 18%, rgba(0,0,0,.55) 42%, transparent 68%);
	-webkit-mask-size: contain, 100% 100%;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-composite: source-in;
	mask-image: url("waves-mask.svg"), radial-gradient(circle, #000 18%, rgba(0,0,0,.55) 42%, transparent 68%);
	mask-size: contain, 100% 100%;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-composite: intersect;
}

/* Now playing in the on-air band (music stations). */
.msm-onair--band .msm-np { align-self: center; }
.msm-onair--band .msm-np__label, .msm-onair--band .msm-np__sub { color: color-mix(in srgb, var(--b-paper) 85%, transparent); font-family: var(--wp--preset--font-family--sans); }
@media (min-width: 1100px) {
	.msm-onair--band .msm-np { order: 2; flex: none; max-width: none; }
}
@media (max-width: 1099px) { .msm-onair--band .msm-np { flex: 1 1 100%; max-width: none; } }

/* Local sports band */
.home-sports { padding-block: clamp(32px, 5vw, 56px); background: var(--b-deep); color: var(--b-paper); }
.home-sports .section-title { color: var(--b-paper); }
.home-sports .msm-msj__credit, .home-sports .msm-msj__credit a { color: color-mix(in srgb, var(--b-paper) 85%, transparent); }

/* Station logo standing in for a show cover in the band: keep it modest. */
.msm-onair--band .msm-onair__title--logo img { width: min(100%, 240px); }

/* ---------- Retro texture set (music + high school football stations) ---------- */
/* Weather band: a vinyl record easing in from the right. */
.msm-texture-retro .weather-band::before {
	-webkit-mask-image: url("vinyl-mask.svg"), radial-gradient(circle, #000 30%, rgba(0,0,0,.6) 52%, transparent 70%);
	mask-image: url("vinyl-mask.svg"), radial-gradient(circle, #000 30%, rgba(0,0,0,.6) 52%, transparent 70%);
	background: color-mix(in srgb, var(--b-brand) 17%, transparent);
	width: 1100px; height: 1100px; right: -480px;
}
/* Announcements: 70s sunset stripes from the corner. */
.msm-texture-retro .home-notices::before {
	-webkit-mask-image: url("stripes-mask.svg"), linear-gradient(#000, #000);
	mask-image: url("stripes-mask.svg"), linear-gradient(#000, #000);
	background: linear-gradient(135deg, color-mix(in srgb, var(--b-live) 14%, transparent), color-mix(in srgb, var(--b-brand) 9%, transparent));
	width: 1200px; height: 1200px; left: -640px; top: -640px;
}
/* Warriors band: yard lines, hash marks and numbers under the stories. */
.home-sports { position: relative; isolation: isolate; overflow: hidden; }
.msm-texture-retro .home-sports::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: color-mix(in srgb, var(--b-paper) 7%, transparent);
	-webkit-mask: url("field.svg") center / cover no-repeat;
	mask: url("field.svg") center / cover no-repeat;
}
@media (max-width: 700px) {
	.msm-texture-retro .weather-band::before { width: 760px; height: 760px; right: -420px; }
	.msm-texture-retro .home-notices::before { width: 860px; height: 860px; left: -470px; top: -470px; }
}

/* ---------- "Hometown photo and silver" look ---------- */
.home-photos { padding-block: clamp(32px, 5vw, 56px); }
.msm-texture-photo { --b-silver: #A9AAAD; --b-silver-lt: #E4E4E7; --b-silver-sheen: linear-gradient(135deg, #F7F7F8 0%, #E1E1E4 45%, #F4F4F6 55%, #D6D6DA 100%); }
/* No drawn rings: depth comes from the photo and the silver. */
.msm-texture-photo .weather-band::before,
.msm-texture-photo .home-notices::before,
.msm-texture-photo .home-sports::before { content: none; }
/* Weather sits over a toned hometown photo. */
.msm-texture-photo .weather-band { background:
	linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.93) 45%, rgba(255,255,255,.72) 100%),
	linear-gradient(color-mix(in srgb, var(--b-brand) 30%, transparent), color-mix(in srgb, var(--b-brand) 30%, transparent)),
	var(--msm-bg-photo, none) center 40% / cover no-repeat;
	background-blend-mode: normal, color, normal;
}
/* Silver touches */
.msm-texture-photo .msm-ticker { background: linear-gradient(90deg, #CFCFD3, #ECECEF 50%, #CFCFD3); color: var(--b-ink); }
.msm-texture-photo .msm-ticker a, .msm-texture-photo .msm-ticker span { color: var(--b-ink); }
.msm-texture-photo .msm-ticker__pause { background: var(--b-brand); color: #fff; }
.msm-texture-photo .site-header, .msm-texture-photo header.wp-block-template-part { border-bottom-color: var(--b-silver) !important; }
.msm-texture-photo .home-notices { background: var(--b-silver-sheen); }
.msm-texture-photo .onair-links-box { background: linear-gradient(160deg, var(--b-deep), color-mix(in srgb, var(--b-deep) 70%, #6b6b70)) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.msm-texture-photo .home-main { background: linear-gradient(180deg, #EDEDEF, #F7F7F8 30%, #EDEDEF) !important; }
.msm-texture-photo .home-sports { background: linear-gradient(135deg, var(--b-deep) 0%, color-mix(in srgb, var(--b-deep) 78%, #8E8F94) 100%); }
.msm-texture-photo .home-sports .section-title::before, .msm-texture-photo .onair-links-box .section-title::before { background: var(--b-silver-lt) !important; }
.msm-texture-photo .onair-band { background: linear-gradient(120deg, var(--b-brand) 0%, var(--b-brand) 55%, color-mix(in srgb, var(--b-brand) 70%, #9A9BA0) 100%) !important; }
.msm-texture-photo .rail-box { box-shadow: inset 0 0 0 1px var(--b-silver-lt); }
.msm-texture-photo .site-footer { border-top-color: var(--b-silver) !important; }
.msm-texture-photo .home-photos { background: #fff; }

/* ---------- Music hero (stations without a show schedule) ---------- */
.msm-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: clamp(24px, 5vw, 72px); padding-block: clamp(12px, 3vw, 36px); color: var(--b-paper); }
.msm-hero__live { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-weight: 700; font-size: 1rem; letter-spacing: .01em; color: color-mix(in srgb, var(--b-paper) 88%, transparent); }
.msm-hero__title { margin: 0; font-size: clamp(2.4rem, 5.2vw, 4.6rem); line-height: .98; font-weight: 900; font-stretch: 80%; letter-spacing: -.01em; max-width: 13ch; text-wrap: balance; }
.msm-hero__np { margin-top: 18px; }
.msm-hero__np .msm-np__now { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0; padding: 10px 16px; border-radius: 999px; background: rgba(255,255,255,.12); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.msm-hero__np .msm-np__now[hidden] { display: none; }
.msm-hero__nplabel { font-size: .8rem; font-weight: 800; color: var(--b-silver-lt, #E4E4E7); }
.msm-hero__np .msm-np__song { font-weight: 800; font-size: 1.05rem; }
.msm-hero__np .msm-np__artist { opacity: .85; }
.msm-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.msm-hero__listen { font-size: 1.15rem !important; padding: 16px 28px !important; }
.msm-hero__req { display: inline-flex; align-items: center; padding: 14px 26px; border-radius: 999px; border: 2px solid color-mix(in srgb, var(--b-paper) 70%, transparent); color: var(--b-paper); font-weight: 800; font-size: 1.05rem; text-decoration: none; }
.msm-hero__req:hover, .msm-hero__req:focus-visible { background: var(--b-paper); color: var(--b-brand); }
.msm-hero__more { margin: 22px 0 0; font-weight: 700; }
.msm-hero__more a { color: var(--b-paper); text-decoration-color: color-mix(in srgb, var(--b-paper) 50%, transparent); text-underline-offset: 4px; }
.msm-hero__art { display: flex; justify-content: center; }
.msm-record { position: relative; width: min(100%, 400px); aspect-ratio: 1; border-radius: 50%;
	background:
		conic-gradient(from 30deg, rgba(255,255,255,0) 0deg, rgba(255,255,255,.16) 30deg, rgba(255,255,255,0) 70deg, rgba(255,255,255,0) 180deg, rgba(255,255,255,.12) 215deg, rgba(255,255,255,0) 250deg),
		repeating-radial-gradient(circle, #141012 0 2px, #1d181a 2px 4px),
		#161214;
	box-shadow: 0 30px 60px rgba(0,0,0,.35), inset 0 0 0 6px #0d0a0b, 0 0 0 10px color-mix(in srgb, var(--b-paper) 10%, transparent); }
.msm-record__label { position: absolute; inset: 31%; border-radius: 50%; background: radial-gradient(circle, #fff 0 58%, #E4E4E7 100%); display: grid; place-items: center; box-shadow: 0 0 0 4px var(--b-brand), 0 0 0 9px #e4e4e7; }
.msm-record__label::after { content: ""; position: absolute; width: 4%; aspect-ratio: 1; border-radius: 50%; background: #161214; }
.msm-record__label img { width: 78%; height: auto; }
@keyframes msm-spin { to { transform: rotate(360deg); } }
html[data-msm-player="playing"] .msm-record { animation: msm-spin 1.8s linear infinite; }
@media (prefers-reduced-motion: reduce) { html[data-msm-player="playing"] .msm-record { animation: none; } }
@media (max-width: 760px) {
	.msm-hero { grid-template-columns: 1fr; gap: 28px; padding-block: 8px 4px; }
	.msm-hero__art { order: -1; justify-content: flex-start; }
	.msm-record { width: 150px; }
	.msm-hero__title { font-size: clamp(2.2rem, 10vw, 3rem); }
}
.msm-hero__title { color: var(--b-paper) !important; }
.msm-hero__np .msm-np__now { flex-direction: row; border-radius: 14px; }
.msm-record__label::after { content: none; }
.msm-hero__live .msm-onair__dot { background: var(--b-paper); box-shadow: 0 0 0 4px color-mix(in srgb, var(--b-paper) 25%, transparent); }
@media (max-width: 760px) { .msm-hero__live { font-size: .92rem; } .msm-hero__actions { margin-top: 20px; } }
.msm-hero .msm-hero__listen { background: var(--b-paper) !important; color: var(--b-brand) !important; box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.msm-hero .msm-hero__listen::before { border-color: var(--b-live) !important; }
.msm-hero__shows { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.msm-hero__show { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 10px 16px; border-radius: 14px; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); color: var(--b-paper); text-decoration: none; }
.msm-hero__show:hover, .msm-hero__show:focus-visible { background: rgba(255,255,255,.18); }
.msm-hero__show.is-now { background: var(--b-paper); color: var(--b-brand); }
.msm-hero__showlabel { font-size: .78rem; font-weight: 800; opacity: .8; }
.msm-hero__showtitle { font-weight: 800; }
.msm-hero__showtime { font-size: .9rem; opacity: .85; }

/* ---------- Photo behind the on-air band (Settings > Station > On-air band photo) ---------- */
.msm-hero-photo .onair-band {
	position: relative; isolation: isolate;
	background:
		linear-gradient(100deg, color-mix(in srgb, var(--b-brand) 93%, transparent) 0%, color-mix(in srgb, var(--b-brand) 82%, transparent) 38%, color-mix(in srgb, var(--b-brand) 55%, transparent) 70%, color-mix(in srgb, var(--b-deep) 55%, transparent) 100%),
		var(--msm-hero-photo) center 35% / cover no-repeat,
		var(--b-brand) !important;
}
.msm-hero-photo .msm-onair--band { position: relative; }
.msm-onair__photocredit { position: absolute; right: 0; bottom: calc(-1 * clamp(18px, 3.5vw, 40px)); margin: 0; font-size: .72rem; opacity: .75; }
.msm-hero-photo .msm-onair--band .msm-onair__img { width: 100%; max-width: 640px; margin: 14px 0 18px; border-radius: 16px; box-shadow: 0 18px 50px rgb(0 0 0 / .35); outline: 4px solid color-mix(in srgb, var(--b-paper) 85%, transparent); outline-offset: -4px; }
.msm-hero-photo .msm-onair--band .msm-onair__title { font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.02; }
.msm-hero-photo .msm-onair--band .msm-onair__meta { font-size: 1.05rem; }
.msm-hero-photo .msm-onair--band .msm-onair__actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 16px 22px; }
.msm-hero-photo .msm-onair--band .msm-onair__nextcard { background: color-mix(in srgb, var(--b-deep) 55%, transparent); backdrop-filter: blur(4px); }
.msm-hero-photo .msm-onair--band .msm-lineup { background: color-mix(in srgb, var(--b-deep) 45%, transparent); backdrop-filter: blur(6px); border-radius: 18px; padding: 22px 20px; }
@media (min-width: 1100px) {
	.msm-hero-photo .msm-onair--band .msm-onair__now { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-areas: "body lineup" "actions lineup"; gap: 18px 56px; align-items: start; }
	.msm-hero-photo .msm-onair--band .msm-onair__body { grid-area: body; order: 0; }
	.msm-hero-photo .msm-onair--band .msm-onair__actions { grid-area: actions; order: 0; }
	.msm-hero-photo .msm-onair--band .msm-lineup { grid-area: lineup; order: 0; align-self: center; }
}
@media (max-width: 1099px) {
	.msm-hero-photo .msm-onair--band .msm-onair__body { order: 1; }
	.msm-hero-photo .msm-onair--band .msm-onair__actions { order: 2; }
	.msm-hero-photo .msm-onair--band .msm-lineup { order: 3; }
	.msm-onair__photocredit { position: static; margin-top: 18px; }
}

/* ---------- Concerts coming up ---------- */
.home-concerts { padding-block: clamp(28px, 4.5vw, 52px); background: var(--b-deep); color: var(--b-paper); }
.msm-concerts__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.msm-concerts__title { margin: 0; color: var(--b-paper); }
.home-concerts .section-title::before { background: var(--b-brand); }
.msm-concerts__all { color: var(--b-paper); font-weight: 700; text-underline-offset: 4px; white-space: nowrap; }
.msm-concerts__list { list-style: none; margin: 0; padding: 0 0 10px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 1fr); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
@media (min-width: 1100px) { .msm-concerts__list { grid-auto-columns: calc((100% - 3 * 18px) / 4); } }
.msm-concerts__card { scroll-snap-align: start; background: var(--b-paper); color: var(--b-ink); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 10px 28px rgb(0 0 0 / .25); }
.msm-concerts__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--b-brand); }
.msm-concerts__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.msm-concerts__date { position: absolute; left: 12px; top: 12px; background: var(--b-brand); color: #fff; border-radius: 10px; padding: 6px 10px 5px; text-align: center; line-height: 1; box-shadow: 0 4px 12px rgb(0 0 0 / .3); }
.msm-concerts__date span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.msm-concerts__date b { display: block; font-size: 1.6rem; font-weight: 800; }
.msm-concerts__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.msm-concerts__name { margin: 0; font-size: 1.15rem; line-height: 1.2; }
.msm-concerts__name a { color: inherit; text-decoration: none; }
.msm-concerts__name a:hover { text-decoration: underline; }
.msm-concerts__when { margin: 0; font-weight: 700; color: var(--b-brand); font-size: .95rem; }
.msm-concerts__where { margin: 0; color: var(--b-slate); font-size: .92rem; }
.msm-concerts__tix { margin-top: auto; align-self: flex-start; background: var(--b-brand); color: #fff; font-weight: 700; padding: 8px 16px; border-radius: 999px; text-decoration: none; font-size: .92rem; }
.msm-concerts__tix:hover { background: color-mix(in srgb, var(--b-brand) 82%, #000); }
.msm-concerts__body .msm-concerts__tix { margin-top: 10px; }
.msm-concerts__credit { margin: 6px 0 0; font-size: .7rem; color: var(--b-slate); }

/* No announcements at all: "Get on the air" spans the row. */
.home-notices__cols > .home-onair-links:only-child { flex-basis: 100% !important; }
.home-notices__cols > .home-onair-links:only-child .onair-links-box ul, .home-notices__cols > .home-onair-links:only-child .msm-listen-links { columns: 2 260px; column-gap: 40px; }

/* Soft tint: the band photo shows through (calm, scenic stations). */
.msm-hero-soft.msm-hero-photo .onair-band {
	background:
		linear-gradient(100deg, color-mix(in srgb, var(--b-deep) 82%, transparent) 0%, color-mix(in srgb, var(--b-brand) 58%, transparent) 42%, color-mix(in srgb, var(--b-brand) 18%, transparent) 78%, transparent 100%),
		linear-gradient(0deg, color-mix(in srgb, var(--b-deep) 45%, transparent) 0%, transparent 45%),
		var(--msm-hero-photo) center 45% / cover no-repeat,
		var(--b-brand) !important;
}
.msm-hero-soft .msm-onair--band .msm-onair__img { outline-color: rgb(255 255 255 / .92); }
.msm-hero-soft .msm-onair--band .msm-lineup { background: rgb(255 255 255 / .14); border: 1px solid rgb(255 255 255 / .28); backdrop-filter: blur(10px) saturate(1.1); }
.msm-hero-soft .msm-onair--band .msm-onair__nextcard { background: rgb(255 255 255 / .16); border: 1px solid rgb(255 255 255 / .28); backdrop-filter: blur(8px); }
.msm-hero-soft .msm-onair--band .msm-onair__title, .msm-hero-soft .msm-onair--band .msm-onair__label { text-shadow: 0 2px 18px rgb(0 0 0 / .35); }

/* ---------- Artist videos ---------- */
.home-artistvids { padding-block: clamp(28px, 4.5vw, 52px); background: var(--b-haze); }
.msm-artistvids__title { margin: 0 0 22px; }
.msm-artistvids__list { list-style: none; margin: 0; padding: 0 0 10px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
@media (min-width: 1100px) { .msm-artistvids__list { grid-auto-columns: calc((100% - 3 * 18px) / 4); } }
.msm-artistvids__item { scroll-snap-align: start; }
.msm-artistvids .msm-videos__item { margin: 0; background: var(--b-paper); border-radius: 16px; overflow: hidden; box-shadow: 0 8px 24px rgb(20 40 60 / .12); height: 100%; }
.msm-artistvids .msm-videos__play { aspect-ratio: 16 / 9; width: 100%; overflow: hidden; display: block; position: relative; }
.msm-artistvids .msm-videos__play img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.msm-artistvids figcaption { padding: 12px 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.msm-artistvids__artist { font-weight: 800; color: var(--b-live); font-size: .9rem; }
.msm-artistvids figcaption a { color: var(--b-ink); text-decoration: none; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.msm-artistvids figcaption a:hover { text-decoration: underline; }

/* ---------- Christmas season (Settings > Station > Seasonal music, title mentions Christmas) ---------- */
/* Matches the stations' "Your Christmas Music Station" social art: Christmas red, white snowflakes, bow green. */
body.msm-season-christmas {
	--wp--preset--color--brand: #C8121B;
	--wp--preset--color--brand-deep: #7D0B11;
	--wp--preset--color--live: #1E8A3E;
	--wp--preset--color--haze: #FFF4F3;
	--b-brand: #C8121B;
	--b-deep: #7D0B11;
	--b-live: #1E8A3E;
	--b-haze: #FFF4F3;
	--msm-accent: #1E8A3E;
}
.msm-season-christmas .section-title::before { background: linear-gradient(90deg, #C8121B 0 50%, #1E8A3E 50% 100%); }
.msm-season-christmas .msm-ticker { background: var(--b-deep); box-shadow: inset 0 3px 0 #1E8A3E; }
.msm-season-christmas .site-header { border-bottom: 4px solid #C8121B; }
.msm-season-christmas.msm-hero-photo .onair-band {
	background:
		linear-gradient(100deg, rgb(200 18 27 / .92) 0%, rgb(200 18 27 / .72) 42%, rgb(125 11 17 / .35) 80%, rgb(125 11 17 / .2) 100%),
		var(--msm-hero-photo) center 45% / cover no-repeat,
		#C8121B !important;
}
.msm-season-christmas .onair-band { position: relative; isolation: isolate; overflow: hidden; }
.msm-season-christmas .onair-band::after {
	/* white snowflakes drifting down */
	content: ""; position: absolute; inset: -260px 0 0; z-index: -1; pointer-events: none; opacity: .8;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='260' viewBox='0 0 320 260'%3E%3Cg transform='translate(40 40) scale(0.28)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(190 110) scale(0.18)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(110 200) scale(0.22)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(260 30) scale(0.14)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(270 210) scale(0.12)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(20 150) scale(0.12)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Ccircle cx='80' cy='90' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='150' cy='20' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='230' cy='160' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='60' cy='240' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='290' cy='110' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='170' cy='230' r='2.2' fill='%23fff' opacity='.8'/%3E%3C/svg%3E") 0 0 / 320px 260px repeat;
	animation: msm-snow 24s linear infinite;
}
@keyframes msm-snow { from { transform: translateY(0); } to { transform: translateY(260px); } }
@media (prefers-reduced-motion: reduce) { .msm-season-christmas .onair-band::after { animation: none; } }
.msm-season-christmas .msm-concerts__date { background: #C8121B; }
.msm-season-christmas .home-concerts { background: var(--b-deep); }

/* ---------- Christmas section on the home page ([msm_season], 30 days before and during the season) ---------- */
.home-xmas { padding: 0 !important; }
.msm-xmas {
	position: relative; isolation: isolate; overflow: hidden; color: #fff;
	padding: clamp(56px, 7vw, 84px) clamp(16px, 4vw, 40px) clamp(36px, 5vw, 56px);
	background: radial-gradient(120% 90% at 50% 30%, #F0141C 0%, #D10E16 45%, #8E070D 100%);
	box-shadow: inset 0 -30px 60px rgb(0 0 0 / .18), inset 0 30px 60px rgb(0 0 0 / .12);
}
.msm-xmas::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .55; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='260' viewBox='0 0 320 260'%3E%3Cg transform='translate(40 40) scale(0.28)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(190 110) scale(0.18)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(110 200) scale(0.22)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(260 30) scale(0.14)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(270 210) scale(0.12)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(20 150) scale(0.12)'%3E%3Cg stroke='%23fff' stroke-width='7' stroke-linecap='round' fill='none'%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(0)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(60)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(120)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(180)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(240)'/%3E%3Cpath d='M0 0V-44M0 -26L-12 -38M0 -26L12 -38M0 -12L-9 -21M0 -12L9 -21' transform='rotate(300)'/%3E%3C/g%3E%3C/g%3E%3Ccircle cx='80' cy='90' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='150' cy='20' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='230' cy='160' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='60' cy='240' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='290' cy='110' r='2.2' fill='%23fff' opacity='.8'/%3E%3Ccircle cx='170' cy='230' r='2.2' fill='%23fff' opacity='.8'/%3E%3C/svg%3E") 0 0 / 320px 260px repeat; }
.msm-xmas__lights { position: absolute; left: 0; right: 0; top: 0; height: 44px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='44' viewBox='0 0 160 44'%3E%3Cpath d='M0 10 Q20 18 40 12 T80 12 T120 12 T160 10' stroke='%231d2a1d' stroke-width='2' fill='none'/%3E%3Ccircle cx='20' cy='26' r='11' fill='%23FF3B3B' opacity='.28'/%3E%3Crect x='17' y='12' width='6' height='5' rx='1' fill='%232f3a2f'/%3E%3Cellipse cx='20' cy='24' rx='5' ry='8' fill='%23FF3B3B'/%3E%3Cellipse cx='18.4' cy='21' rx='1.6' ry='3' fill='%23fff' opacity='.7'/%3E%3Ccircle cx='60' cy='32' r='11' fill='%232ECC71' opacity='.28'/%3E%3Crect x='57' y='18' width='6' height='5' rx='1' fill='%232f3a2f'/%3E%3Cellipse cx='60' cy='30' rx='5' ry='8' fill='%232ECC71'/%3E%3Cellipse cx='58.4' cy='27' rx='1.6' ry='3' fill='%23fff' opacity='.7'/%3E%3Ccircle cx='100' cy='26' r='11' fill='%23FFC93C' opacity='.28'/%3E%3Crect x='97' y='12' width='6' height='5' rx='1' fill='%232f3a2f'/%3E%3Cellipse cx='100' cy='24' rx='5' ry='8' fill='%23FFC93C'/%3E%3Cellipse cx='98.4' cy='21' rx='1.6' ry='3' fill='%23fff' opacity='.7'/%3E%3Ccircle cx='140' cy='32' r='11' fill='%233FA9FF' opacity='.28'/%3E%3Crect x='137' y='18' width='6' height='5' rx='1' fill='%232f3a2f'/%3E%3Cellipse cx='140' cy='30' rx='5' ry='8' fill='%233FA9FF'/%3E%3Cellipse cx='138.4' cy='27' rx='1.6' ry='3' fill='%23fff' opacity='.7'/%3E%3C/svg%3E") 0 0 / 160px 44px repeat-x; filter: drop-shadow(0 4px 8px rgb(0 0 0 / .25)); }
@media (prefers-reduced-motion: no-preference) { .msm-xmas__lights { animation: msm-twinkle 2.4s ease-in-out infinite alternate; } }
@keyframes msm-twinkle { from { filter: drop-shadow(0 4px 8px rgb(0 0 0 / .25)) brightness(.9); } to { filter: drop-shadow(0 0 10px rgb(255 230 150 / .55)) brightness(1.15); } }
.msm-xmas__top { max-width: 1180px; margin: 0 auto; display: grid; gap: 32px 56px; align-items: center; }
@media (min-width: 900px) { .msm-xmas__top { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } }
.msm-xmas__num { margin: 0 0 6px; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.msm-xmas__num b { font-size: clamp(5rem, 13vw, 9.5rem); line-height: .85; font-weight: 900; letter-spacing: -.04em; text-shadow: 0 6px 0 rgb(120 0 6 / .55), 0 18px 40px rgb(0 0 0 / .35); }
.msm-xmas__num span { font-size: clamp(1.1rem, 2vw, 1.5rem); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.msm-xmas__num--day b { font-size: clamp(3rem, 8vw, 5.5rem); }
.msm-xmas .msm-xmas__title, .msm-xmas .msm-xmas__h3--videos { color: #fff; }
.msm-xmas__title { margin: 10px 0 8px; font-size: clamp(1.75rem, 3.4vw, 2.6rem); line-height: 1.05; font-weight: 900; text-shadow: 0 3px 0 rgb(120 0 6 / .45); }
.msm-xmas__sub { margin: 0 0 22px; font-size: 1.1rem; opacity: .95; max-width: 34em; }
.msm-xmas__listen { border: 0; cursor: pointer; font: inherit; font-weight: 800; font-size: 1.1rem; padding: 14px 30px; border-radius: 999px; color: #fff;
	background: linear-gradient(180deg, #2DB05A, #157A35); box-shadow: 0 6px 0 #0C5424, 0 14px 28px rgb(0 0 0 / .3); }
.msm-xmas__listen:hover { filter: brightness(1.08); }
.msm-xmas__listen:active { transform: translateY(3px); box-shadow: 0 3px 0 #0C5424, 0 8px 18px rgb(0 0 0 / .3); }
.msm-xmas__h3 { margin: 0 0 14px; font-size: 1.35rem; font-weight: 900; }
.msm-xmas__local { background: #fff; color: var(--b-ink); border-radius: 18px; padding: 22px; box-shadow: 0 2px 0 rgb(0 0 0 / .05), 0 24px 50px rgb(80 0 4 / .45); transform: rotate(-.6deg); }
.msm-xmas__local ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.msm-xmas__local li { display: grid; grid-template-columns: 88px 1fr; gap: 14px; align-items: center; }
.msm-xmas__local li:not(:has(img)) { grid-template-columns: 1fr; }
.msm-xmas__local img { width: 88px; height: 66px; object-fit: cover; border-radius: 10px; }
.msm-xmas__local a { color: var(--b-ink); font-weight: 800; text-decoration: none; line-height: 1.25; }
.msm-xmas__local a:hover { color: #C8121B; text-decoration: underline; }
.msm-xmas__local .msm-xmas__h3 { color: #C8121B; }
.msm-xmas__src { margin: 12px 0 0; font-size: .8rem; color: var(--b-slate); }
.msm-xmas__h3--videos { max-width: 1180px; margin: 44px auto 14px; }
.msm-xmas__videos { max-width: 1180px; margin: 0 auto; list-style: none; padding: 0 0 8px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 1fr); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; }
@media (min-width: 1100px) { .msm-xmas__videos { grid-auto-columns: calc((100% - 3 * 16px) / 4); } }
.msm-xmas__videos li { scroll-snap-align: start; }
.msm-xmas__videos figure { margin: 0; background: #fff; color: var(--b-ink); border-radius: 14px; overflow: hidden; box-shadow: 0 16px 34px rgb(80 0 4 / .4); height: 100%; }
.msm-xmas__videos figcaption { padding: 10px 14px 14px; font-weight: 700; font-size: .95rem; line-height: 1.3; }
.msm-xmas__videos .msm-artistvids__artist { display: block; color: #C8121B; font-size: .8rem; font-weight: 800; margin-bottom: 2px; }

.msm-xmas__art { margin: 0; transform: rotate(1.2deg); }
.msm-xmas__art img { display: block; width: 100%; height: auto; border-radius: 16px; border: 6px solid #fff; box-shadow: 0 26px 56px rgb(80 0 4 / .5); }
/* Local Christmas stories sit under the countdown and art as a strip. */
.msm-xmas > .msm-xmas__local { max-width: 1180px; margin: 40px auto 0; transform: none; }
@media (min-width: 760px) { .msm-xmas > .msm-xmas__local ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- No background texture (Settings > Station > Background texture: None) ---------- */
.msm-texture-none .weather-band::before, .msm-texture-none .home-notices::before, .msm-texture-none .home-sports::before { content: none; display: none; }

/* ---------- Sports: team banner beside the heading ---------- */
.msm-sports.has-banner { display: grid; gap: 24px 44px; align-items: center; }
@media (min-width: 900px) { .msm-sports.has-banner { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }
.msm-sports__banner img { display: block; width: 100%; height: auto; border-radius: 16px; box-shadow: 0 18px 44px rgb(0 0 0 / .4); }
.msm-sports.has-banner .msm-sports__news { grid-column: 1 / -1; }
.msm-sports.has-banner .msm-sports__title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); line-height: 1.05; }
.msm-sports__note { font-size: 1.1rem; }

/* ---------- On-air talent: host posters ---------- */
.home-talent { padding-block: clamp(32px, 5vw, 56px); background: var(--b-haze); }
.msm-talent__title { margin: 0 0 22px; }
.msm-talent__list { list-style: none; margin: 0; padding: 0 0 8px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; }
@media (min-width: 1100px) { .msm-talent__list { grid-auto-columns: calc((100% - 3 * 20px) / 4); } }
.msm-talent__card { scroll-snap-align: start; }
.msm-talent__link { display: block; position: relative; border-radius: 16px; overflow: hidden; color: #fff; text-decoration: none; background: var(--b-deep); box-shadow: 0 14px 34px rgb(0 0 0 / .22); }
.msm-talent__img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; object-position: center top; transition: transform .4s ease; }
.msm-talent__link:hover .msm-talent__img, .msm-talent__link:focus-visible .msm-talent__img { transform: scale(1.03); }
.msm-talent__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 48px 16px 14px; background: linear-gradient(0deg, rgb(0 0 0 / .85), rgb(0 0 0 / .55) 55%, transparent); display: grid; gap: 2px; }
.msm-talent__name { font-weight: 900; font-size: 1.2rem; line-height: 1.15; }
.msm-talent__hosts { font-weight: 700; font-size: .95rem; }
.msm-talent__when { display: inline-block; justify-self: start; margin-top: 6px; background: var(--b-live); color: #fff; font-weight: 800; font-size: .8rem; padding: 4px 10px; border-radius: 999px; }
@media (prefers-reduced-motion: reduce) { .msm-talent__img { transition: none; } }
/* Posters already carry the show name: keep it for screen readers, show only the time tag. */
.msm-talent__name, .msm-talent__hosts { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.msm-talent__body { padding: 0 12px 12px; background: none; }
.msm-talent__when { box-shadow: 0 4px 12px rgb(0 0 0 / .35); }
/* Talent as a small rail box */
.rail-talent .msm-talent__title { font-size: 1.5rem; margin: 0 0 12px; }
.rail-talent .msm-talent__list { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-columns: auto; gap: 10px; overflow: visible; padding: 0; }
.rail-talent .msm-talent__link { border-radius: 10px; box-shadow: 0 6px 14px rgb(0 0 0 / .15); }
.rail-talent .msm-talent__body { padding: 0 6px 6px; }
.rail-talent .msm-talent__when { font-size: .68rem; padding: 3px 7px; }

/* ---------- Open layout (0.18): fewer boxes. Sections sit on their band; only photos get rounded corners. ---------- */
/* Sports: the team banner leads, stories read as headlines on the band. */
.home-sports .msm-msj__card { background: transparent; border: 0; border-radius: 0; overflow: visible; color: var(--b-paper); }
.home-sports .msm-msj__card .msm-msj__img { border-radius: 14px; }
.home-sports .msm-msj__card.is-lead .msm-msj__body { padding: 16px 0 0; }
.home-sports .msm-msj__card.is-lead .msm-msj__title { font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 800; line-height: 1.12; }
.home-sports .msm-msj__card:not(.is-lead) { border-top: 3px solid color-mix(in srgb, var(--b-paper) 22%, transparent); padding-top: 14px; }
.home-sports .msm-msj__card:not(.is-lead) .msm-msj__img, .home-sports .msm-msj__card:not(.is-lead) .msm-msj__excerpt { display: none; }
.home-sports .msm-msj__card:not(.is-lead) .msm-msj__body { padding: 0; }
.home-sports .msm-msj__card:not(.is-lead) .msm-msj__title { font-size: 1.08rem; font-weight: 700; line-height: 1.3; }
.home-sports .msm-msj__meta { color: color-mix(in srgb, var(--b-paper) 72%, transparent); opacity: 1; }
.home-sports .msm-msj__excerpt { color: color-mix(in srgb, var(--b-paper) 86%, transparent); font-size: 1rem; line-height: 1.5; }
@media (min-width: 760px) { .home-sports .msm-msj__card.is-lead .msm-msj__body { padding: 0 0 0 30px; } }
.home-sports .msm-sports__banner img { box-shadow: 0 24px 60px rgb(0 0 0 / .45); }

/* Weather: one open row, days split by hairlines instead of tiles. */
.msm-wx__day, .weather-band .msm-wx__day, .msm-wx--compact .msm-wx__day { background: transparent !important; box-shadow: none !important; border-radius: 0; }
.msm-wx__days { gap: 0; }
.msm-wx__day + .msm-wx__day { border-left: 1px solid var(--b-rule); }

/* Rail: open columns with a rule on top, not white boxes (the dark "Get on the air" panel stays). */
body:not(.msm-texture-photo) .home-rail .rail-box:not(.onair-links-box) { background: transparent !important; box-shadow: none; border-radius: 0; padding: 18px 0 0; border-top: 4px solid var(--b-ink); }

/* Concerts: posters on the band, details underneath. */
.msm-concerts__card { background: transparent; color: var(--b-paper); box-shadow: none; border-radius: 0; overflow: visible; }
.msm-concerts__media { border-radius: 14px; box-shadow: 0 16px 36px rgb(0 0 0 / .35); }
.msm-concerts__body { padding: 14px 2px 4px; }
.msm-concerts__when { color: color-mix(in srgb, var(--b-paper) 92%, transparent); }
.msm-concerts__where, .msm-concerts__credit { color: color-mix(in srgb, var(--b-paper) 70%, transparent); }

/* Artist videos: thumbnails and titles, no frames. */
.msm-artistvids .msm-videos__item { background: transparent; box-shadow: none; border-radius: 0; overflow: visible; }
.msm-artistvids .msm-videos__play { border-radius: 14px; box-shadow: 0 12px 28px rgb(20 40 60 / .18); }
.msm-artistvids figcaption { padding: 12px 2px 0; }
.home-sports .msm-msj__card .msm-msj__title a, .home-sports .msm-msj__card .msm-msj__title a:visited { color: var(--b-paper) !important; }

/* Meet the hosts cube (rail): one host per side, turns every few seconds. */
.msm-cube__stage { perspective: 900px; width: 100%; aspect-ratio: 4 / 5; }
.msm-cube__box { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transform: translateZ(calc(var(--msm-cube-w, 300px) / -2)); transition: transform .9s cubic-bezier(.5,0,.2,1); }
.msm-cube__face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 12px; overflow: hidden; background: var(--b-deep); }
.msm-cube__face:nth-child(1) { transform: rotateY(0deg) translateZ(calc(var(--msm-cube-w, 300px) / 2)); }
.msm-cube__face:nth-child(2) { transform: rotateY(90deg) translateZ(calc(var(--msm-cube-w, 300px) / 2)); }
.msm-cube__face:nth-child(3) { transform: rotateY(180deg) translateZ(calc(var(--msm-cube-w, 300px) / 2)); }
.msm-cube__face:nth-child(4) { transform: rotateY(270deg) translateZ(calc(var(--msm-cube-w, 300px) / 2)); }
.msm-cube__face .msm-talent__link { height: 100%; border-radius: 0; box-shadow: none; }
.msm-cube__face .msm-talent__img { height: 100%; aspect-ratio: auto; }
.msm-cube__face .msm-talent__body { padding: 0 12px 12px; }
.msm-cube__face .msm-talent__when { font-size: .85rem; padding: 5px 11px; }
.msm-cube__ctl { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 12px; }
.msm-cube__btn { border: 0; background: none; color: var(--b-ink); font-size: 1.4rem; line-height: 1; width: 34px; height: 34px; border-radius: 50%; cursor: pointer; }
.msm-cube__btn:hover { background: var(--b-haze); }
.msm-cube__pause { font-size: .7rem; letter-spacing: -.1em; }
.msm-cube__dots { display: inline-flex; gap: 6px; }
.msm-cube__ctl .msm-cube__dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background-color: var(--b-ink); opacity: .28; cursor: pointer; }
.msm-cube__ctl .msm-cube__dot[aria-current="true"] { background-color: var(--b-live); opacity: 1; }
.msm-cube__btn:focus-visible, .msm-cube__dot:focus-visible { outline: 3px solid var(--b-live); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .msm-cube__box { transition: none; } }
.msm-talent__list[hidden] { display: none !important; }

/* ---------- Sports: team look (logo + team colors, no banner graphic) ---------- */
.home-sports:has(.msm-sports.is-team) { background: radial-gradient(120% 150% at 0% 0%, var(--team-bg2, var(--b-brand)) 0%, var(--team-bg, var(--b-deep)) 62%) !important; border-top: 6px solid var(--team-accent, var(--b-live)); }
.home-sports:has(.msm-sports.is-team)::before { content: none !important; }
.msm-sports__team { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 400px); gap: clamp(20px, 4vw, 48px); align-items: center; margin-bottom: clamp(30px, 4.5vw, 48px); }
.msm-sports__logo img { display: block; width: clamp(110px, 13vw, 180px); height: auto; filter: drop-shadow(0 14px 30px rgb(0 0 0 / .4)); }
.msm-sports__kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: #fff; font-weight: 800; font-size: 1.05rem; }
.msm-sports__kicker::before { content: ''; width: 28px; height: 4px; border-radius: 2px; background: var(--team-accent, var(--b-live)); }
.msm-sports.is-team .msm-sports__title { margin: 0; color: #fff; font-size: clamp(2.2rem, 4.8vw, 3.75rem); line-height: .95; font-weight: 900; font-stretch: 80%; text-wrap: balance; }
.msm-sports.is-team .msm-sports__note { margin: 14px 0 20px; max-width: 44ch; font-size: 1.1rem; line-height: 1.5; color: rgb(255 255 255 / .88); }
.msm-sports__voices { margin: 0; justify-self: end; width: 100%; max-width: 380px; }
.msm-sports__voices img { display: block; width: 100%; height: auto; max-height: 340px; object-fit: cover; object-position: center 30%; border-radius: 14px; box-shadow: 0 22px 54px rgb(0 0 0 / .45); }
.msm-sports__voices figcaption { margin-top: 10px; font-weight: 700; font-size: .95rem; color: rgb(255 255 255 / .85); }
.msm-sports.is-team .msm-msj__card:not(.is-lead) { border-top-color: var(--team-accent, rgb(255 255 255 / .22)); }
@media (max-width: 960px) { .msm-sports__team { grid-template-columns: auto minmax(0, 1fr); } .msm-sports__voices { grid-column: 1 / -1; max-width: 520px; } }
@media (max-width: 560px) { .msm-sports__team { grid-template-columns: 1fr; } .msm-sports__logo img { width: 104px; } }
