/**
 * Elementor editor bridge for the sitewide header/footer HTML widgets (1.8.1).
 * Base school CSS is loaded separately by functions.php; these rules keep the
 * chrome readable inside Elementor's constrained canvas.
 */

.dis-riverside-site-header-inner .navbar {
	width: 100%;
}
/* Editor only: give navbar readable height in Elementor canvas */
body.elementor-editor-active .dis-riverside-site-header-inner .navbar,
body.elementor-editor-preview .dis-riverside-site-header-inner .navbar {
	min-height: 96px;
}

/* 1.9.2: sizing only — do NOT force display (breaks sticky brand swap + crest hide) */
.dis-riverside-site-header-inner .navbar a.navbar-brand {
	align-items: center;
	flex-shrink: 0;
}

.dis-riverside-site-header-inner .navbar a.navbar-brand img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 96px;
	object-fit: contain;
}

.dis-riverside-site-header-inner .navbar a.navbar-brand img + img {
	margin-left: 8px;
}

/* One logo sitewide in chrome: hide crest; school sticky swap still controls nofixed/fixed */
#dis-riverside-site-header .dis-inner-logo,
#dis-riverside-site-header a.navbar-brand img.dis-inner-logo {
	display: none !important;
}

/* AOS starts sections at opacity:0 until its front-end JS runs. */
body.elementor-editor-active [data-aos],
body.elementor-editor-preview [data-aos],
.elementor-editor-active [data-aos],
.elementor-editor-preview [data-aos] {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
}


/* 1.9.0: Footer CTA — 4 equal boxes under sitewide chrome */
#dis-riverside-site-footer .footer-cta,
#dis-riverside-site-footer .dis-riverside-site-footer-cta {
	background-color: #1f4e2e !important;
	width: 100% !important;
	display: block !important;
}
#dis-riverside-site-footer .footer-cta .container,
#dis-riverside-site-footer .footer-cta .e-con,
#dis-riverside-site-footer .footer-cta .elementor-widget-container,
#dis-riverside-site-footer .elementor-widget-html,
#dis-riverside-site-footer .e-flexbox {
	width: 100% !important;
	max-width: 100% !important;
}
#dis-riverside-site-footer .footer-cta ul.footer-cta-row {
	display: flex !important;
	flex-wrap: wrap !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	justify-content: center !important;
}
#dis-riverside-site-footer .footer-cta ul.footer-cta-row li {
	width: 25% !important;
	flex: 0 0 25% !important;
	max-width: 25% !important;
	box-sizing: border-box !important;
	list-style: none !important;
}
#dis-riverside-site-footer .footer-cta .footer-cta-box a {
	background-color: #265c37 !important;
	display: block !important;
	text-align: center !important;
}
@media (max-width: 767px) {
	#dis-riverside-site-footer .footer-cta ul.footer-cta-row li {
		width: 50% !important;
		flex: 0 0 50% !important;
		max-width: 50% !important;
	}
}
@media (max-width: 480px) {
	#dis-riverside-site-footer .footer-cta ul.footer-cta-row li {
		width: 100% !important;
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
}


/* 1.9.0 front: keep offcanvas mega-menu / mobile menu hidden until JS opens them */
#dis-riverside-site-header .navigation:not(.open-nav) {
	visibility: hidden !important;
	transform: translateX(200%) !important;
}
#dis-riverside-site-header .mobile-offcanvas:not(.show) {
	visibility: hidden;
}
#dis-riverside-site-header .elementor-widget-html,
#dis-riverside-site-header .elementor-widget-container,
#dis-riverside-site-header .e-con,
#dis-riverside-site-header .e-flexbox {
	width: 100% !important;
	max-width: 100% !important;
}
#dis-riverside-site-header header.main-header {
	width: 100% !important;
}


/* 1.9.0: solid purple inner-page navbar (matches school .inner-header.header-relative) */
body.inner-header.header-relative #dis-riverside-site-header header.main-header nav.navbar {
	padding: 0 50px;
	background: #371e66 !important;
}
body.inner-header.header-relative #dis-riverside-site-header header.main-header nav.navbar a.navbar-brand {
	position: absolute;
	top: 6px;
	background: #371e66;
	padding: 12px;
	border-radius: 6px;
	z-index: 2;
}
body.inner-header.header-relative #dis-riverside-site-header header.main-header nav.navbar a.navbar-brand img {
	width: 75px;
	height: 98px;
	max-height: 98px !important;
}
/* 1.9.2: crest stays hidden even on inner pages (one logo expectation) */
body.inner-header #dis-riverside-site-header header.main-header nav.navbar ul.navbar-nav li.nav-item a.nav-link {
	color: #fff;
}


/* ==========================================================================
 * 1.9.1: Collapse Elementor wrappers around absolute site header (white-gap fix)
 * ========================================================================== */
#dis-riverside-site-header,
#dis-riverside-site-header > .elementor,
#dis-riverside-site-header .e-con,
#dis-riverside-site-header .e-flexbox,
#dis-riverside-site-header .elementor-widget,
#dis-riverside-site-header .elementor-widget-html,
#dis-riverside-site-header .elementor-widget-container {
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}
#dis-riverside-site-header header.main-header {
	height: 0 !important;
	overflow: visible !important;
}
/* Keep mega-menu / offcanvas paintable outside collapsed wrappers */
#dis-riverside-site-header .navigation.open-nav,
#dis-riverside-site-header .mobile-offcanvas.show {
	overflow: visible !important;
}

/* Frontend: never force 96px min-height on absolute overlay navbar (home) */
body:not(.elementor-editor-active):not(.elementor-editor-preview)
	.dis-riverside-site-header-inner .navbar {
	min-height: 0;
}

/* ==========================================================================
 * 1.9.1: Inner Elementor pages — column flex + breadcrumbs + banner polish
 * ========================================================================== */
body.dis-riverside-inner-elementor .breadcrumbs-menu,
body.dis-riverside-clubs-elementor .breadcrumbs-menu {
	width: 100% !important;
	display: block !important;
}
body.dis-riverside-inner-elementor .breadcrumbs-menu ul {
	display: flex !important;
	justify-content: center !important;
	flex-wrap: wrap !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
body.dis-riverside-inner-elementor main .elementor > .e-con,
body.dis-riverside-inner-elementor main .elementor > .e-flexbox,
body.dis-riverside-inner-elementor main .elementor > .e-flexbox-base,
body.dis-riverside-inner-elementor main .elementor > [data-element_type="e-flexbox"],
body.dis-riverside-inner-elementor main .e-flexbox-base {
	flex-direction: column !important;
	width: 100% !important;
	max-width: 100% !important;
}
body.dis-riverside-inner-elementor .elementor-widget-html,
body.dis-riverside-inner-elementor .elementor-widget-html > .elementor-widget-container,
body.dis-riverside-inner-elementor .elementor > .e-con,
body.dis-riverside-inner-elementor .elementor .e-con.e-flexbox {
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
}
body.dis-riverside-inner-elementor .elementor-widget-html .inner-banner,
body.dis-riverside-inner-elementor .elementor-widget-html .breadcrumbs-menu,
body.dis-riverside-inner-elementor .elementor-widget-html .breadcrumb-block,
body.dis-riverside-inner-elementor .elementor-widget-html .wrapper-section {
	display: block;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

/* Contact / Principal / Directors: full-width purple banner-relative (school match) */
body.dis-riverside-inner-elementor .inner-banner.banner-relative {
	background: #1e1136 !important;
	width: 100% !important;
	height: auto !important;
}
body.dis-riverside-inner-elementor .inner-banner.banner-relative .inner-banner-content {
	clip-path: none !important;
	text-align: center !important;
	width: 100% !important;
	max-width: 100% !important;
	background: transparent !important;
	padding: 140px 20px 30px !important;
	position: relative !important;
	left: auto !important;
	bottom: auto !important;
}
body.dis-riverside-inner-elementor .inner-banner.banner-relative:before {
	background: transparent !important;
}

/* Breadcrumbs tab active state (school-like) */
body.dis-riverside-inner-elementor .breadcrumbs-menu ul li a.active,
body.dis-riverside-inner-elementor .breadcrumbs-menu ul li.active a,
body.dis-riverside-clubs-elementor .breadcrumbs-menu ul li a.active {
	background: #fff;
	color: #a92b25 !important;
}


/* ==========================================================================
 * 1.9.2: Logo / sticky brand — editor canvas helpers
 * ========================================================================== */
body.elementor-editor-active .dis-riverside-site-header-inner .navbar a.navbar-brand.navbar-brand-nofixed,
body.elementor-editor-preview .dis-riverside-site-header-inner .navbar a.navbar-brand.navbar-brand-nofixed {
	display: block;
}
body.elementor-editor-active .dis-riverside-site-header-inner .navbar a.navbar-brand.navbar-brand-fixed,
body.elementor-editor-preview .dis-riverside-site-header-inner .navbar a.navbar-brand.navbar-brand-fixed {
	display: none;
}


/* 1.9.3: never show mobile Menu chrome on desktop (school responsive.css rule) */
@media (min-width: 992px) {
	#dis-riverside-site-header .mobile-navbar-menu,
	.dis-riverside-site-header-inner .mobile-navbar-menu {
		display: none !important;
	}
}

/* 1.9.2: hide Elementor edit-instructions widget if ever rendered on front */
#dis-riverside-site-header .dis-riverside-header-edit-note {
	display: none !important;
}


/* ==========================================================================
 * 1.9.6: Sticky header — MENU / nav ALWAYS on the RIGHT (fixes 1.9.4 miss)
 *
 * Why 1.9.4 failed:
 * 1) School responsive.css still has
 *      nav.navbar.fixed-top .container-fluid { justify-content: inherit !important }
 *    (and sometimes width:92% on .container-fluid).
 * 2) On sticky, brand is often position:absolute (out of flex flow). If
 *    .navbar-collapse is only as wide as its content (no flex-grow), then
 *    margin-left:auto on the inner ul does NOTHING — the collapse sits at
 *    flex-start glued to the logo. Desktop screenshot = exactly that.
 *
 * Fix: force full-width flex bar + make .navbar-collapse grow and
 * justify its contents to flex-end. Beat school inherit !important with
 * #dis-riverside-site-header + body.dis-riverside-has-site-header.
 * Do not touch sticky logo swap (nofixed/fixed) or single-logo rule.
 * ========================================================================== */

/* Non-sticky: sizing only — do NOT force space-between (inner absolute brand before scroll) */
#dis-riverside-site-header nav.navbar:not(.fixed-top) .container-fluid,
.dis-riverside-site-header-inner nav.navbar:not(.fixed-top) .container-fluid {
	width: 100%;
	max-width: 100%;
	align-items: center;
}

/* Always pin the mobile Menu control to the right edge (visible when desktop nav hidden) */
#dis-riverside-site-header nav.navbar .mobile-navbar-menu,
.dis-riverside-site-header-inner nav.navbar .mobile-navbar-menu,
body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar .mobile-navbar-menu {
	margin-left: auto !important;
	flex-shrink: 0;
	align-self: center;
}

/* Sticky: full-bleed purple bar */
#dis-riverside-site-header nav.navbar.fixed-top,
.dis-riverside-site-header-inner nav.navbar.fixed-top,
body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top {
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	max-width: 100vw !important;
	box-sizing: border-box;
}

/* Sticky flex bar: override school justify-content:inherit !important + width:92% */
#dis-riverside-site-header nav.navbar.fixed-top .container-fluid,
.dis-riverside-site-header-inner nav.navbar.fixed-top .container-fluid,
body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top .container-fluid,
body.dis-riverside-has-site-header #dis-riverside-site-header header.main-header nav.navbar.fixed-top .container-fluid {
	display: flex !important;
	width: 100% !important;
	max-width: 100% !important;
	justify-content: space-between !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	box-sizing: border-box !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 12px !important;
	padding-right: 12px !important;
}

/* Sticky mobile MENU — RIGHT edge. Brand is often absolute when fixed-top, so
   MENU is the primary in-flow child and needs margin-left:auto. Do NOT force
   .navbar-collapse display:flex here — that broke 1.9.5 first deploy by keeping
   desktop links in-flow on <992px and pinning MENU left. */
#dis-riverside-site-header nav.navbar.fixed-top .mobile-navbar-menu,
.dis-riverside-site-header-inner nav.navbar.fixed-top .mobile-navbar-menu,
body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top .mobile-navbar-menu {
	margin-left: auto !important;
	margin-right: 0 !important;
	flex: 0 0 auto !important;
	flex-shrink: 0 !important;
	position: relative !important;
	left: auto !important;
	right: auto !important;
	align-self: center !important;
	order: 3;
}

/* Desktop (≥992 / navbar-expand-lg): collapse must GROW + flex-end so links sit RIGHT.
   Content-sized collapse made 1.9.4's ul { margin-left:auto } a visual no-op. */
@media only screen and (min-width: 992px) {
	#dis-riverside-site-header nav.navbar.fixed-top .navbar-collapse,
	.dis-riverside-site-header-inner nav.navbar.fixed-top .navbar-collapse,
	body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top .navbar-collapse {
		flex: 1 1 auto !important;
		display: flex !important;
		justify-content: flex-end !important;
		margin-left: auto !important;
		width: auto !important;
		max-width: 100% !important;
		align-items: center !important;
	}

	#dis-riverside-site-header nav.navbar.fixed-top ul.navbar-nav,
	.dis-riverside-site-header-inner nav.navbar.fixed-top ul.navbar-nav,
	body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top ul.navbar-nav {
		margin-left: auto !important;
		justify-content: flex-end !important;
		width: auto !important;
		display: flex !important;
		align-items: center !important;
	}
}

/* Mobile sticky: keep Bootstrap collapse hidden (do not fight .collapse) */
@media only screen and (max-width: 991px) {
	#dis-riverside-site-header nav.navbar.fixed-top .navbar-collapse:not(.show),
	.dis-riverside-site-header-inner nav.navbar.fixed-top .navbar-collapse:not(.show),
	body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top .navbar-collapse:not(.show) {
		display: none !important;
		flex: 0 0 auto !important;
		width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
	}
}

/* Brand stays left; do not disturb sticky logo swap */
#dis-riverside-site-header nav.navbar.fixed-top a.navbar-brand,
.dis-riverside-site-header-inner nav.navbar.fixed-top a.navbar-brand {
	margin-right: 0;
	flex-shrink: 0;
}

/* Avoid white strip under sticky bar when chrome wrappers stay height:0 */
body.dis-riverside-has-site-header #dis-riverside-site-header {
	position: relative;
	z-index: 10050;
}
body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top {
	background: rgba(55, 30, 102, 0.92);
}
body.inner-header.header-relative.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top {
	background: #371e66 !important;
}


/* ==========================================================================
 * 1.9.7: Sticky brand flush with purple header bar (kill tall purple notch)
 *
 * 1.9.0 inner-page rules force absolute brand + padding:12px + purple slab +
 * 75×98 vertical crest. That selector also matched fixed-top (no exclusion),
 * so after scroll the tall purple “lobe” stayed and sat uneven vs the thin bar.
 * School resets on fixed-top: relative, transparent bg, padding 2px 0 6px,
 * horizontal logo ~130×47. Keep 1.9.6 MENU-right rules; do not touch logo swap.
 * ========================================================================== */

#dis-riverside-site-header nav.navbar.fixed-top a.navbar-brand,
.dis-riverside-site-header-inner nav.navbar.fixed-top a.navbar-brand,
body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top a.navbar-brand,
body.inner-header #dis-riverside-site-header header.main-header nav.navbar.fixed-top a.navbar-brand,
body.inner-header.header-relative #dis-riverside-site-header header.main-header nav.navbar.fixed-top a.navbar-brand,
body.inner-header.header-relative.dis-riverside-has-site-header #dis-riverside-site-header header.main-header nav.navbar.fixed-top a.navbar-brand {
	position: relative !important;
	top: 0 !important;
	left: auto !important;
	right: auto !important;
	background: transparent !important;
	padding: 2px 0 6px !important;
	border-radius: 0 !important;
	height: auto !important;
	max-height: none !important;
	line-height: 1 !important;
	box-shadow: none !important;
	align-self: center !important;
	z-index: 2;
}

#dis-riverside-site-header nav.navbar.fixed-top a.navbar-brand img,
.dis-riverside-site-header-inner nav.navbar.fixed-top a.navbar-brand img,
body.dis-riverside-has-site-header #dis-riverside-site-header nav.navbar.fixed-top a.navbar-brand img,
body.inner-header #dis-riverside-site-header header.main-header nav.navbar.fixed-top a.navbar-brand img,
body.inner-header.header-relative #dis-riverside-site-header header.main-header nav.navbar.fixed-top a.navbar-brand img,
body.inner-header.header-relative.dis-riverside-has-site-header #dis-riverside-site-header header.main-header nav.navbar.fixed-top a.navbar-brand img {
	width: 130px !important;
	height: 47px !important;
	max-width: 130px !important;
	max-height: 47px !important;
	object-fit: contain !important;
}

/* Crest stays hidden (single-logo); sticky swap still via school nofixed/fixed */
#dis-riverside-site-header nav.navbar.fixed-top a.navbar-brand img.dis-inner-logo,
body.inner-header #dis-riverside-site-header nav.navbar.fixed-top a.navbar-brand img.dis-inner-logo {
	display: none !important;
}
