/* ==========================================================================
   JCMM Navigation & Styles  v4.0.0  (jcmmassandh.com)
   --------------------------------------------------------------------------
   Replaces v3.0 completely. What changed and why:

   1. No more site-wide colour overrides. v3 forced black on EVERY element in
      page content and white on EVERY <footer> with !important, so colours
      chosen in the editor never reached the live site. v4 only sets sensible
      defaults (anything set in the editor wins) and repairs text that would
      otherwise be invisible.
   2. Header, menu and footer set text colour TOGETHER with their background,
      so text can never end up white-on-white.
   3. Phone/tablet menu: full-screen navy sheet, large tap rows, collapsible
      sub-menus (driven by jcmm-nav.js). If the script does not load, the menu
      behaves exactly like stock WordPress (all sub-menus shown), never hidden.
   4. The hamburger menu is now used up to 1024px (tablets) instead of < 600px.
   5. Page content on phones: images, galleries, tables, columns, file/PDF
      blocks, embeds and headings sized for small screens.

   Rule kept from v3: this file does not hide WordPress's own menu elements.
   The two deliberate exceptions are labelled "MENU-VISIBILITY" below.

   Edit colours in the TOKENS block only.
   ========================================================================== */


/* ---------- TOKENS ------------------------------------------------------- */
:root {
	--jcmm-navy: #1a2a4e;
	--jcmm-navy-deep: #111d38;
	--jcmm-gold: #ffd700;
	--jcmm-ink: #1c2230;        /* body text on light backgrounds */
	--jcmm-line: #dfe3ec;       /* hairlines, table borders */
	--jcmm-surface: #f5f7fb;    /* light panels (file cards, table stripes) */
}


/* ---------- 1. SITE-WIDE GUARDS ------------------------------------------ */
html { -webkit-text-size-adjust: 100%; }

/* Stops sideways scrolling on phones. "clip" (unlike "hidden") keeps the
   sticky header working. */
.wp-site-blocks { overflow-x: clip; }

/* NOTE: never add transform / filter / backdrop-filter to the header or any
   of its parents — the phone menu is position:fixed and would break. */


/* ---------- 2. HEADER ---------------------------------------------------- */
header.wp-block-template-part,
header.wp-block-template-part .wp-block-group.logo-wrapper {
	background-color: var(--jcmm-navy) !important;
	color: #fff !important;
}
header.wp-block-template-part {
	border-bottom: 3px solid var(--jcmm-gold);
}
/* Inner sections of the header must not paint a white bar under white text */
header.wp-block-template-part .has-background:not(.wp-block-button__link, .wp-element-button, .wp-social-link, .wp-block-navigation__responsive-container, .wp-block-navigation__submenu-container) {
	background-color: transparent !important;
}
header.wp-block-template-part :is(.wp-block-group, p, span, li, strong, em, small, h1, h2, h3, h4, h5, h6, .wp-block-site-title, .wp-block-site-tagline, a:not(.wp-block-button__link, .wp-element-button)) {
	color: inherit !important;
	text-decoration: none;
}

/* Menu links sitting in the header bar */
header.wp-block-template-part .wp-block-navigation .wp-block-navigation-item__content {
	color: #fff !important;
	font-weight: 600;
	text-decoration: none;
	transition: color .15s ease;
}
header.wp-block-template-part .wp-block-navigation .wp-block-navigation-item__content:is(:hover, :focus-visible),
header.wp-block-template-part .wp-block-navigation .wp-block-navigation-item__content[aria-current="page"],
header.wp-block-template-part .wp-block-navigation :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content {
	color: var(--jcmm-gold) !important;
}
header.wp-block-template-part .wp-block-navigation__submenu-icon {
	color: inherit;
}

/* Hamburger button */
header.wp-block-template-part .wp-block-navigation__responsive-container-open {
	min-width: 44px;
	min-height: 44px;
	padding: 0 10px !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	border: 1px solid rgba(255, 255, 255, .38) !important;
	border-radius: 10px;
	background: rgba(255, 255, 255, .06) !important;
	color: #fff !important;
	-webkit-tap-highlight-color: rgba(255, 215, 0, .2);
}


/* ---------- 3. DESKTOP DROP-DOWNS (1025px and wider) --------------------- */
/* Cosmetic only: WordPress decides when a drop-down opens. */
@media (min-width: 1025px) {
	header.wp-block-template-part .wp-block-navigation .wp-block-navigation__submenu-container {
		background-color: var(--jcmm-navy) !important;
		color: #fff !important;
		border: 0 !important;
		border-top: 3px solid var(--jcmm-gold) !important;
		border-radius: 0 0 10px 10px;
		box-shadow: 0 16px 32px rgba(8, 16, 36, .28);
		padding: 6px 0 !important;
	}
	header.wp-block-template-part .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 10px 18px !important;
		font-weight: 500;
	}
	header.wp-block-template-part .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
		background: rgba(255, 255, 255, .08);
	}
}


/* ---------- 4. MENU-VISIBILITY: hamburger on tablets (600–1024px) --------- */
/* WordPress switches to the hamburger only below 600px; a full college menu
   wraps into several rows on tablets. Delete this block to restore that. */
@media (min-width: 600px) and (max-width: 1024px) {
	header.wp-block-template-part .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex !important;
	}
	header.wp-block-template-part .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none !important;
	}
}


/* ---------- 5. PHONE / TABLET MENU SHEET (when the menu is open) --------- */
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--jcmm-navy) !important;
	color: #fff !important;
	padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) 0 env(safe-area-inset-left, 0px) !important;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

/* Tablets: keep the menu column a comfortable width */
@media (min-width: 600px) {
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
		max-width: 640px !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* Close button: stays reachable while a long menu scrolls */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: sticky !important;
	top: 12px !important;
	right: auto !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 12px 12px 0 auto;
	border-radius: 50%;
	background: var(--jcmm-navy-deep) !important;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .25);
	color: #fff !important;
	z-index: 3;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding: 8px 0 calc(32px + env(safe-area-inset-bottom, 0px)) !important;
	align-items: stretch !important;
	gap: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	width: 100%;
	align-items: stretch !important;
	gap: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	width: 100%;
	align-items: stretch !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container > .wp-block-navigation-item {
	border-bottom: 1px solid rgba(255, 255, 255, .1);
}

/* Rows */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 54px;
	padding: 12px 22px !important;
	color: #fff !important;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	text-decoration: none;
	-webkit-tap-highlight-color: rgba(255, 215, 0, .2);
}

/* Sub-menu rows: indented band */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item .wp-block-navigation__submenu-container {
	width: 100% !important;
	min-width: 0 !important;
	gap: 0 !important;
	padding: 0 0 8px !important;
	border: 0 !important;
	background: rgba(0, 0, 0, .2) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	min-height: 46px;
	padding: 10px 22px 10px 38px !important;
	color: rgba(255, 255, 255, .9) !important;
	font-size: 15.5px;
	font-weight: 500;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding-left: 54px !important;
	font-size: 15px;
}

/* Current page / section (placed after row colours so gold wins) */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"],
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
	color: var(--jcmm-gold) !important;
	background: rgba(255, 255, 255, .07);
	box-shadow: inset 4px 0 0 var(--jcmm-gold);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--jcmm-gold) !important;
}

/* ---- MENU-VISIBILITY: collapsible sub-menus ------------------------------
   Active only when jcmm-nav.js has added its arrow button (.jcmm-sub-toggle)
   to a menu item. No button => WordPress default (sub-menu shown). */
.jcmm-sub-toggle { display: none; }

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child:has(> .jcmm-sub-toggle) {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child:has(> .jcmm-sub-toggle) > .wp-block-navigation-item__content {
	order: 1;
	flex: 1 1 0%;
	width: auto;
	min-width: 0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .jcmm-sub-toggle {
	order: 2;
	flex: 0 0 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 0;
	border: 0;
	border-left: 1px solid rgba(255, 255, 255, .1);
	background: transparent;
	color: var(--jcmm-gold);
	cursor: pointer;
	-webkit-tap-highlight-color: rgba(255, 215, 0, .2);
}
.jcmm-sub-toggle svg {
	width: 18px;
	height: 18px;
	transition: transform .2s ease;
}
.jcmm-sub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child:has(> .jcmm-sub-toggle) > .wp-block-navigation__submenu-container {
	order: 3;
	flex: 0 0 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child:has(> .jcmm-sub-toggle[aria-expanded="false"]) > .wp-block-navigation__submenu-container {
	display: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child:has(> .jcmm-sub-toggle[aria-expanded="true"]) > .wp-block-navigation__submenu-container {
	animation: jcmm-reveal .18s ease-out;
}
@keyframes jcmm-reveal {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: none; }
}
/* Browsers without :has() keep WordPress's default (everything shown) */
@supports not selector(:has(*)) {
	.jcmm-sub-toggle { display: none !important; }
}

/* Keyboard focus */
header.wp-block-template-part :focus-visible,
.wp-block-navigation__responsive-container.is-menu-open :focus-visible {
	outline: 2px solid var(--jcmm-gold) !important;
	outline-offset: 2px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item :focus-visible {
	outline-offset: -3px;
}


/* ---------- 6. COMPACT STICKY HEADER (phones & tablets) ------------------ */
@media (max-width: 1024px) {
	.wp-site-blocks > header.wp-block-template-part {
		position: sticky;
		top: var(--wp-admin--admin-bar--height, 0px);
		z-index: 9990;
		box-shadow: 0 4px 14px rgba(8, 16, 36, .22);
	}
	:target { scroll-margin-top: 96px; }
}
@media (max-width: 600px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; }
	header.wp-block-template-part > .wp-block-group {
		padding-top: 10px !important;
		padding-bottom: 10px !important;
	}
	header.wp-block-template-part .wp-block-site-logo img {
		width: auto !important;
		height: auto !important;
		max-height: 46px;
		max-width: calc(100vw - 110px);
	}
	header.wp-block-template-part .wp-block-site-title {
		font-size: clamp(15px, 4.3vw, 18px) !important;
		line-height: 1.2 !important;
	}
	header.wp-block-template-part .wp-block-site-tagline { font-size: 12px !important; }
}


/* ---------- 7. PAGE TEXT: readable by default ---------------------------- */
/* Zero-specificity default: any colour chosen in the editor still wins. */
:where(.wp-block-post-content, .entry-content) {
	color: var(--jcmm-ink);
}
:where(.wp-block-post-content, .entry-content) :where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, td, th, figcaption, blockquote, cite):not(.has-text-color):not([style*="color"]) {
	color: inherit;
}
/* Page title sits outside the content area: same readable default,
   except when it is placed on a cover image or coloured section. */
:where(main .wp-block-post-title:not(.has-text-color, .wp-block-cover *, .has-background *)) {
	color: var(--jcmm-ink);
}

/* Text explicitly set to WHITE but sitting on the plain page (no coloured
   section, cover image or button behind it) is invisible — make it dark.
   White text inside coloured sections is left alone. */
:where(.wp-block-post-content, .entry-content) :is(.has-white-color, [style*="color:#fff"], [style*="color:#FFF"], [style*="color: #fff"], [style*="color: #FFF"], [style*="color:white"], [style*="color: white"], [style*="color:rgb(255, 255, 255)"], [style*="color: rgb(255, 255, 255)"]):not(.has-background, .wp-element-button, .wp-block-button__link, [style*="background-color:#"], [style*="background-color: #"], [style*="background:#"], [style*="background: #"], [style*="background-image"]):not(:is(.has-background, .wp-block-cover, .wp-block-media-text, .wp-block-buttons, [style*="background-color:#"], [style*="background-color: #"], [style*="background-image"]) *) {
	color: var(--jcmm-ink) !important;
}

/* Added by jcmm-nav.js only when text colour ≈ background colour */
:root .jcmm-ink-dark  { color: var(--jcmm-ink) !important; }
:root .jcmm-ink-light { color: #fff !important; }

/* Long e-mail addresses / URLs must not push the page sideways */
:where(.wp-block-post-content, .entry-content) :where(p, li, td, th, dd, figcaption) { overflow-wrap: break-word; }
:where(.wp-block-post-content, .entry-content) a { overflow-wrap: anywhere; }

/* Content hidden until an animation script runs (e.g. Elementor entrance
   animations while LiteSpeed delays JavaScript) — never leave it blank. */
.elementor-invisible { visibility: visible !important; }


/* ---------- 8. PHONES: spacing and headings ------------------------------ */
@media (max-width: 600px) {
	:root body {
		--wp--style--root--padding-left: 1rem;
		--wp--style--root--padding-right: 1rem;
	}
	:where(main, .wp-block-post-content, .entry-content) :is(h1, .wp-block-post-title) {
		font-size: clamp(1.6rem, 7vw, 2.1rem) !important;
		line-height: 1.2 !important;
	}
	:where(main, .wp-block-post-content, .entry-content) h2 {
		font-size: clamp(1.35rem, 5.8vw, 1.75rem) !important;
		line-height: 1.25 !important;
	}
	:where(main, .wp-block-post-content, .entry-content) h3 {
		font-size: clamp(1.15rem, 4.8vw, 1.4rem) !important;
		line-height: 1.3 !important;
	}
	:where(main, .wp-block-post-content, .entry-content) :is(h4, h5, h6) {
		font-size: 1.05rem !important;
	}
	:where(.wp-block-post-content, .entry-content) :where(p, li) { line-height: 1.65; }
}


/* ---------- 9. IMAGES ---------------------------------------------------- */
:where(.wp-block-post-content, .entry-content) :where(img, video) {
	max-width: 100%;
	height: auto;
}
:where(.wp-block-post-content, .entry-content) :where(.wp-block-image, .wp-block-gallery) img {
	border-radius: 8px;
}
@media (max-width: 781px) {
	/* Images resized in the editor keep their proportions on small screens */
	:where(.wp-block-post-content, .entry-content) .wp-block-image img { max-width: 100% !important; }
	:where(.wp-block-post-content, .entry-content) .wp-block-image img[style*="height"]:not([style*="aspect-ratio"]) { height: auto !important; }
}
@media (max-width: 600px) {
	/* Left/right-aligned images stop squeezing text into a narrow strip */
	:where(.wp-block-post-content, .entry-content) :is(.wp-block-image.alignleft, .wp-block-image.alignright, .wp-block-image .alignleft, .wp-block-image .alignright, img.alignleft, img.alignright) {
		float: none !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}


/* ---------- 10. GALLERIES (staff photos, achievements) ------------------- */
@media (max-width: 781px) {
	/* Names/captions go BELOW the photo instead of over it */
	.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { display: none !important; }
	.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
		position: static !important;
		max-height: none !important;
		overflow: visible !important;
		padding: 6px 2px 2px !important;
		background: none !important;
		color: inherit !important;
		text-shadow: none !important;
		font-size: 13.5px !important;
		line-height: 1.35;
		text-align: center;
	}
	.wp-block-gallery.has-nested-images figure.wp-block-image {
		flex-direction: column !important;
		justify-content: flex-start !important;
	}
	/* "Crop images" galleries: even square tiles, faces kept in frame */
	.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a {
		flex: none !important;
		height: auto !important;
	}
	.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img {
		flex: none !important;
		height: auto !important;
		aspect-ratio: 1 / 1;
		object-fit: cover;
		object-position: 50% 22%;
	}
}


/* ---------- 11. COLUMNS / MEDIA & TEXT (phones) -------------------------- */
@media (max-width: 600px) {
	:is(main, .wp-block-post-content, .entry-content) .wp-block-columns.is-not-stacked-on-mobile {
		flex-wrap: wrap !important;
	}
	:is(main, .wp-block-post-content, .entry-content) .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
		flex-basis: 100% !important;
		flex-grow: 1 !important;
	}
	:is(main, .wp-block-post-content, .entry-content) .wp-block-media-text:not(.is-stacked-on-mobile) {
		grid-template-columns: 100% !important;
	}
	:is(main, .wp-block-post-content, .entry-content) .wp-block-media-text:not(.is-stacked-on-mobile) > .wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
	}
	:is(main, .wp-block-post-content, .entry-content) .wp-block-media-text:not(.is-stacked-on-mobile) > .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
		padding: 1.25rem 0 0 !important;
	}
}


/* ---------- 12. TABLES (staff lists, results) ---------------------------- */
:where(.wp-block-post-content, .entry-content) .wp-block-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
:where(.wp-block-post-content, .entry-content) .wp-block-table :is(th, td) {
	border-color: var(--jcmm-line);
	padding: .6em .8em;
	vertical-align: top;
}
:where(.wp-block-post-content, .entry-content) .wp-block-table thead th:not(.has-text-color) {
	background: var(--jcmm-navy);
	border-color: var(--jcmm-navy);
	color: #fff;
	text-align: left;
}
:where(.wp-block-post-content, .entry-content) .wp-block-table:not(.is-style-stripes) tbody tr:nth-child(even) {
	background: var(--jcmm-surface);
}
@media (max-width: 781px) {
	/* Table scrolls sideways inside its box instead of squashing words */
	:where(.wp-block-post-content, .entry-content) .wp-block-table table {
		table-layout: auto !important;
		min-width: 100%;
		font-size: 14.5px;
	}
	:where(.wp-block-post-content, .entry-content) .wp-block-table :is(th, td) {
		min-width: 6.5em;
		word-break: normal !important;   /* WordPress's fixed-layout tables break words mid-way */
		overflow-wrap: normal !important;
	}
	:where(.wp-block-post-content, .entry-content) .wp-block-table th { white-space: nowrap; }
	:where(.wp-block-post-content, .entry-content) .wp-block-table :is(th, td):first-child { min-width: 3em; }
	/* Tables pasted as HTML (not in a Table block) */
	:where(.wp-block-post-content, .entry-content) table:not(.wp-block-table table) {
		display: block;
		max-width: 100%;
		overflow-x: auto;
	}
}


/* ---------- 13. FILE / PDF DOWNLOADS ------------------------------------- */
:where(.wp-block-post-content, .entry-content) .wp-block-file:not(.wp-element-button) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	padding: 14px 16px;
	border: 1px solid var(--jcmm-line);
	border-radius: 12px;
	background: var(--jcmm-surface);
	font-size: 1rem;
}
:where(.wp-block-post-content, .entry-content) .wp-block-file > a:not(.wp-block-file__button) {
	flex: 1 1 14rem;
	min-width: 0;
	color: var(--jcmm-navy);
	font-weight: 600;
	overflow-wrap: anywhere;
}
:where(.wp-block-post-content, .entry-content) .wp-block-file .wp-block-file__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin-left: 0 !important;
	padding: .55em 1.2em;
	border-radius: 8px;
	background: var(--jcmm-navy) !important;
	color: #fff !important;
	font-weight: 600;
	text-decoration: none;
}
:where(.wp-block-post-content, .entry-content) .wp-block-file__embed {
	flex: 1 1 100%;
	width: 100% !important;
	border-radius: 8px;
}
@media (max-width: 781px) {
	/* Inline PDF previews are blank white boxes on most phones */
	.wp-block-file__embed { display: none !important; }
	:where(.wp-block-post-content, .entry-content) .wp-block-file .wp-block-file__button { flex: 1 1 100%; }
}


/* ---------- 14. BUTTONS, MAPS, VIDEOS (phones & tablets) ----------------- */
@media (max-width: 781px) {
	:where(.wp-block-post-content, .entry-content) .wp-block-button__link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
	}
	:where(.wp-block-post-content, .entry-content) :is(iframe, embed, object, video) { max-width: 100% !important; }
	:where(.wp-block-post-content, .entry-content) iframe:not(.wp-block-embed__wrapper iframe) { width: 100% !important; }
}


/* ---------- 15. FOOTER --------------------------------------------------- */
/* Background and text colour are set together: never white-on-white. */
footer.wp-block-template-part {
	background-color: var(--jcmm-navy) !important;
	color: #e9edf6 !important;
	border-top: 3px solid var(--jcmm-gold);
}
footer.wp-block-template-part .has-background:not(.wp-block-button__link, .wp-element-button, .wp-social-link, .wp-block-navigation__responsive-container, .wp-block-navigation__submenu-container) {
	background-color: transparent !important;
}
footer.wp-block-template-part :is(.wp-block-group, p, span, li, h1, h2, h3, h4, h5, h6, strong, em, small, figcaption, a:not(.wp-block-button__link, .wp-element-button)) {
	color: inherit !important;
}
footer.wp-block-template-part a:not(.wp-block-button__link, .wp-element-button):is(:hover, :focus-visible) {
	color: var(--jcmm-gold) !important;
}


/* ---------- 16. REDUCED MOTION ------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.jcmm-sub-toggle svg { transition: none !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { animation: none !important; }
	header.wp-block-template-part .wp-block-navigation .wp-block-navigation-item__content { transition: none; }
}
