/* Exhibit RSGDX — custom-banner.css — v8
   (prior: title font-size settings/responsiveness, buttons, arrows, dark overlay, lights toggle — all working)
   HOMEPAGE BANNER SLIDER
   Slides move left-to-right via a translating flex track (not a fade),
   controlled by custom-banner.js. Buttons use the shared .exhibitrsgdx-btn
   classes from custom-style.css.
   ========================================================================== */

#exhibitrsgdx-main .exhibitrsgdx-slider {
	position: relative;
	width: 100%;
	/* Full viewport height minus the actual header height, measured by
	   custom-banner.js and set as --exhibitrsgdx-header-height — falls
	   back to an estimate if JS hasn't run yet. */
	height: calc(100vh - var(--exhibitrsgdx-header-height, 140px));
	min-height: 420px;
	overflow: hidden;
	background: var(--exhibitrsgdx-color-surface);
}

#exhibitrsgdx-main .exhibitrsgdx-slider__track {
	position: relative;
	display: flex;
	width: 100%;
	height: 100%;
	transition: transform 0.6s ease;
}

#exhibitrsgdx-main .exhibitrsgdx-slider__slide {
	position: relative;
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	background-color: var(--exhibitrsgdx-color-surface);
	display: flex;
	align-items: flex-end;
}

#exhibitrsgdx-main .exhibitrsgdx-slider__slide::before {
	content: "";
	position: absolute;
	inset: 0;
	/* Darkness is configurable in Settings → Banner Settings — set as
	   --exhibitrsgdx-banner-overlay inline on the slider element. Flat
	   dark layer (so even a white banner image keeps white text legible
	   everywhere) plus a stronger left-side gradient behind the text. */
	background:
		linear-gradient(90deg, rgba(0,0,0, var(--exhibitrsgdx-banner-overlay, 0.65)) 0%, rgba(0,0,0, calc(var(--exhibitrsgdx-banner-overlay, 0.65) * 0.55)) 55%, rgba(0,0,0, calc(var(--exhibitrsgdx-banner-overlay, 0.65) * 0.3)) 100%);
}

#exhibitrsgdx-main .exhibitrsgdx-slider__content {
	position: relative;
	z-index: 2;
	max-width: 1400px;
	width: 100%;
	height: 100%;
	margin: 0 auto;
	padding: 0 var(--exhibitrsgdx-space-6);
	padding-bottom: var(--exhibitrsgdx-space-6);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

#exhibitrsgdx-main .exhibitrsgdx-slider__subtext {
	color: #fff;
	font-size: var(--exhibitrsgdx-banner-subtext-size, 1rem);
	font-weight: 400;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-bottom: var(--exhibitrsgdx-space-3);
	text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

/* Title is deliberately the one place font-size goes well beyond the
   normal type scale — it's a banner, it should dominate. clamp() keeps
   it responsive; the upper bound is settings-controllable so the exact
   "how big" is tunable without editing CSS. */
/* Title is deliberately the one place font-size goes well beyond the
   normal type scale — it's a banner, it should dominate. The exact size
   is entirely settings-controlled — no hidden minimum here, whatever
   you set in Banner Settings is exactly what renders. */
#exhibitrsgdx-main .exhibitrsgdx-slider__title {
	color: #fff;
	font-size: var(--exhibitrsgdx-banner-title-size, 120px);
	line-height: 1.02;
	font-weight: 700;
	width: 100%;
	margin-bottom: var(--exhibitrsgdx-space-5);
	text-shadow: 0 2px 12px rgba(0,0,0,0.5);
}

#exhibitrsgdx-main .exhibitrsgdx-slider__buttons {
	display: flex;
	gap: var(--exhibitrsgdx-space-3);
}

/* Banner buttons stay settings-driven via Banner Settings → Button
   Padding — this is a real configurable field, not just a copy of the
   global default, so it needs its own override to keep working. */
#exhibitrsgdx-main .exhibitrsgdx-slider__buttons .exhibitrsgdx-btn {
	padding: var(--exhibitrsgdx-banner-button-padding-v, 6px) var(--exhibitrsgdx-banner-button-padding-h, 20px);
	font-size: 12px;
}

/* --- Lights toggle --- */

#exhibitrsgdx-main .exhibitrsgdx-slider__lights-toggle {
	position: absolute;
	top: var(--exhibitrsgdx-space-4);
	right: var(--exhibitrsgdx-space-4);
	z-index: 4;
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--exhibitrsgdx-color-primary);
	border: none;
	border-radius: var(--exhibitrsgdx-radius-full);
	padding: 6px 8px 6px 16px;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	cursor: pointer;
}

#exhibitrsgdx-main .exhibitrsgdx-slider__lights-switch {
	position: relative;
	width: 34px;
	height: 18px;
	border-radius: var(--exhibitrsgdx-radius-full);
	background: rgba(255,255,255,0.3);
	flex-shrink: 0;
}

#exhibitrsgdx-main .exhibitrsgdx-slider__lights-switch::before {
	content: "";
	position: absolute;
	top: 2px;
	left: 2px;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #fff;
	transition: left var(--exhibitrsgdx-transition);
}

#exhibitrsgdx-main .exhibitrsgdx-slider__lights-toggle[aria-pressed="true"] .exhibitrsgdx-slider__lights-switch::before {
	left: 18px;
}

#exhibitrsgdx-main .exhibitrsgdx-slider__lights-toggle[aria-pressed="false"] .exhibitrsgdx-slider__lights-switch {
	background: rgba(0,0,0,0.25);
}

/* --- Arrows / dots --- */

#exhibitrsgdx-main .exhibitrsgdx-slider__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	background: rgba(0,0,0,0.35);
	border: none;
	color: #fff;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	font-size: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background var(--exhibitrsgdx-transition);
}

#exhibitrsgdx-main .exhibitrsgdx-slider__arrow:hover {
	background: var(--exhibitrsgdx-color-primary);
}

#exhibitrsgdx-main .exhibitrsgdx-slider__arrow--prev { left: var(--exhibitrsgdx-space-5); }
#exhibitrsgdx-main .exhibitrsgdx-slider__arrow--next { right: var(--exhibitrsgdx-space-5); }

#exhibitrsgdx-main .exhibitrsgdx-slider__dots {
	position: absolute;
	bottom: var(--exhibitrsgdx-space-5);
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	gap: 10px;
}

#exhibitrsgdx-main .exhibitrsgdx-slider__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(255,255,255,0.4);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: background var(--exhibitrsgdx-transition);
}

#exhibitrsgdx-main .exhibitrsgdx-slider__dot.is-active {
	background: var(--exhibitrsgdx-color-primary);
}

/* ==========================================================================
   RESPONSIVE — 1200 / 767 / 500
   1200 covers common laptop screens (e.g. most MacBooks) so the banner
   doesn't just get tuned for a large desktop monitor and break on those.
   ========================================================================== */

@media (max-width: 1200px) {
#exhibitrsgdx-main .exhibitrsgdx-slider__title {
		/* max() guarantees a sensible floor — a small title setting can
		   never shrink below this and end up smaller than the subtext */
		font-size: max(2rem, calc(var(--exhibitrsgdx-banner-title-size, 120px) * 0.6));
	}
}

@media (max-width: 767px) {
#exhibitrsgdx-main .exhibitrsgdx-slider {
		height: calc(100vh - var(--exhibitrsgdx-header-height, 70px));
		min-height: 400px;
		max-height: 500px;
	}
#exhibitrsgdx-main .exhibitrsgdx-slider__title {
		font-size: max(1.75rem, calc(var(--exhibitrsgdx-banner-title-size, 120px) * 0.4));
	}
#exhibitrsgdx-main .exhibitrsgdx-slider__subtext {
		font-size: 0.8rem;
	}
	/* Side by side by default (they fit fine) — wrap is just a safety
	   net for a genuinely long custom button label, not the default */
#exhibitrsgdx-main .exhibitrsgdx-slider__buttons {
		flex-wrap: wrap;
	}

	/* Arrows were overlapping the title/buttons text — moved to the
	   top-left corner instead (lights toggle already owns top-right) */
#exhibitrsgdx-main .exhibitrsgdx-slider__arrow {
		top: var(--exhibitrsgdx-space-4);
		transform: none;
	}
#exhibitrsgdx-main .exhibitrsgdx-slider__arrow--prev {
		left: var(--exhibitrsgdx-space-4);
	}
#exhibitrsgdx-main .exhibitrsgdx-slider__arrow--next {
		left: calc(var(--exhibitrsgdx-space-4) + 38px);
		right: auto;
	}
}

@media (max-width: 500px) {
#exhibitrsgdx-main .exhibitrsgdx-slider {
		min-height: 360px;
	}
#exhibitrsgdx-main .exhibitrsgdx-slider__title {
		font-size: max(1.5rem, calc(var(--exhibitrsgdx-banner-title-size, 120px) * 0.28));
	}
#exhibitrsgdx-main .exhibitrsgdx-slider__subtext {
		font-size: 0.75rem;
	}
#exhibitrsgdx-main .exhibitrsgdx-slider__lights-toggle {
		font-size: 9px;
		padding: 4px 6px 4px 12px;
	}
}