/* Category archive page — layered on homepage-v2.css */

.jb-archive { color: var(--jb-text); font-family: var(--jb-font-body); line-height: 1.55; }

/* Breadcrumbs (same style as Christmas) */
.jb-crumbs {
	background: var(--jb-bg-soft);
	font-size: .9rem;
	padding: .9rem 0;
	border-bottom: 1px solid var(--jb-gray-2);
}
.jb-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.jb-crumbs li + li::before { content: "/"; color: var(--jb-gray-2); margin-right: .4rem; }
.jb-crumbs a { color: var(--jb-blue-deep); text-decoration: none; }
.jb-crumbs a:hover { text-decoration: underline; }
.jb-crumbs [aria-current="page"] { color: var(--jb-text); font-weight: 600; }

/* Hero */
.jb-hero--archive {
	min-height: 0;
	background:
		radial-gradient(ellipse at 80% 15%, rgba(0,166,255,.35), transparent 55%),
		radial-gradient(ellipse at 10% 90%, rgba(123,63,242,.25), transparent 50%),
		linear-gradient(180deg, var(--jb-bg-dark) 0%, var(--jb-bg-dark-2) 100%);
}

/* Intro — fills the jb-container width so copy reads edge-to-edge */
.jb-archive-intro { background: #fff; text-align: center; }
.jb-archive-intro__text {
	margin: 0 auto;
	font-size: 1.1rem;
	color: var(--jb-text);
}
.jb-archive-intro__text p { margin: 0 0 1.1rem; }
.jb-archive-intro__text p:last-child { margin-bottom: 0; }

/* Child grid — auto-fit so a single card fills cleanly and 3+ cards still grid */
.jb-archive-grid { background: var(--jb-bg-soft); }
.jb-archive-grid h2 { text-align: center; margin-bottom: 2rem; }

.jb-archive-grid__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.5rem;
	max-width: 1100px;
	margin: 0 auto;
}
@media (min-width: 960px) {
	.jb-archive-grid__list { gap: 2rem; }
	/* When there's only one card, center it and cap its width so it doesn't stretch full row */
	.jb-archive-grid__list:has(> .jb-archive-card:only-child) {
		grid-template-columns: minmax(320px, 480px);
		justify-content: center;
	}
}

.jb-archive-empty {
	text-align: center;
	margin: 0 auto;
	padding: 1.25rem 1rem;
	font-size: 1.15rem;
	line-height: 1.6;
	color: var(--jb-text);
}
.jb-archive-empty a { color: var(--jb-blue-deep); font-weight: 700; }

.jb-archive-grid__list .jb-archive-card {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}
.jb-archive-card .jb-archive-card__media {
	margin: 0;
	height: 220px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--jb-bg-soft) 0%, #e6f3ff 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}
.jb-archive-card .jb-archive-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.jb-archive-card__placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: .4;
}
.jb-archive-card__body { padding: 1.5rem 1.5rem 1.75rem; text-align: center; }
.jb-archive-card__body h3 {
	margin: 0;
	color: var(--jb-black);
	font-weight: 800;
	font-size: clamp(1.6rem, 3vw, 2rem);
	font-family: var(--jb-font-head);
	letter-spacing: -0.01em;
}

/* FAQ (reuses the Christmas pattern) */
.jb-archive-faq { background: #fff; }
.jb-archive-faq h2 { text-align: center; margin-bottom: 2rem; }
.jb-archive-faq .jb-faq { display: grid; gap: .75rem; max-width: 860px; margin: 0 auto; }
.jb-archive-faq .jb-faq__item {
	background: var(--jb-bg-soft);
	border-radius: var(--jb-radius);
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--jb-blue);
	box-shadow: var(--jb-shadow);
}
.jb-archive-faq .jb-faq__item summary {
	cursor: pointer;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--jb-black);
	list-style: none;
	position: relative;
	padding-right: 2rem;
}
.jb-archive-faq .jb-faq__item summary::-webkit-details-marker { display: none; }
.jb-archive-faq .jb-faq__item summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.4rem;
	line-height: 1;
	color: var(--jb-blue);
	font-weight: 800;
}
.jb-archive-faq .jb-faq__item[open] summary::after { content: "\2212"; }
.jb-archive-faq .jb-faq__item p { margin: .75rem 0 0; color: var(--jb-text); }

/* ---------- Games (jb-archive--games) — carnival-midway palette ---------- */

/* Carnival-ticket hero: swap the blue/purple mist for yellow + pink + cream */
.jb-archive--games .jb-hero--archive {
	background:
		radial-gradient(ellipse at 85% 20%, rgba(255,212,0,.45), transparent 55%),
		radial-gradient(ellipse at 12% 88%, rgba(255,46,126,.32), transparent 50%),
		linear-gradient(180deg, #13254f 0%, #0d1b3d 100%);
}

/* A thin candy-stripe band above the intro, echoing carnival-booth bunting */
.jb-archive--games .jb-archive-intro {
	background: var(--jb-cream);
	position: relative;
	border-top: 6px solid transparent;
	border-image: repeating-linear-gradient(
		90deg,
		var(--jb-pink) 0 22px,
		var(--jb-yellow) 22px 44px,
		var(--jb-blue) 44px 66px
	) 6;
}
.jb-archive--games .jb-archive-intro__text { font-size: 1.12rem; }
.jb-archive--games .jb-archive-intro__text p:first-child::first-letter {
	font-family: var(--jb-font-head);
	font-size: 3.2rem;
	font-weight: 800;
	color: var(--jb-pink);
	float: left;
	line-height: .9;
	margin: .15rem .6rem 0 0;
	text-shadow: 3px 3px 0 var(--jb-yellow);
}

/* Grid background: warm cream so the cards pop against it */
.jb-archive--games .jb-archive-grid { background: var(--jb-cream-2); }
.jb-archive--games .jb-archive-grid h2 { color: var(--jb-black); }
.jb-archive--games .jb-archive-grid h2::after {
	content: "";
	display: block;
	width: 88px;
	height: 6px;
	margin: .75rem auto 0;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--jb-pink) 0 33%, var(--jb-yellow) 33% 66%, var(--jb-blue) 66% 100%);
}

/* Playful card treatment — chunky rounded corners, thick drop-shadow, tilt on hover */
.jb-archive--games .jb-archive-card {
	background: #fff;
	border-radius: var(--jb-radius-lg);
	overflow: hidden;
	box-shadow: 0 8px 0 rgba(13,27,61,.06), 0 12px 32px rgba(13,27,61,.14);
	border: 3px solid transparent;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.jb-archive--games .jb-archive-card:hover,
.jb-archive--games .jb-archive-card:focus-visible {
	transform: translateY(-4px) rotate(-.35deg);
	box-shadow: 0 12px 0 rgba(13,27,61,.08), 0 18px 44px rgba(13,27,61,.20);
	border-color: var(--jb-yellow);
}
.jb-archive--games .jb-archive-card .jb-archive-card__media {
	height: 200px;
	background: linear-gradient(135deg, var(--jb-cream) 0%, #ffe9b3 100%);
}
.jb-archive--games .jb-archive-card__body { padding: 1.4rem 1.3rem 1.6rem; }
.jb-archive--games .jb-archive-card__body h3 {
	font-size: clamp(1.5rem, 2.6vw, 1.9rem);
	color: var(--jb-black);
}
.jb-archive--games .jb-archive-card__body h3::after {
	content: "";
	display: block;
	width: 40px;
	height: 4px;
	margin: .6rem auto 0;
	border-radius: 2px;
	background: var(--jb-pink);
}

/* Rotate card accents through carnival colors via :nth-child so without images
   the cards still read as distinct booths rather than identical cream tiles */
.jb-archive--games .jb-archive-card:nth-child(3n+1) .jb-archive-card__media { background: linear-gradient(135deg, #ffe9b3 0%, var(--jb-yellow) 100%); }
.jb-archive--games .jb-archive-card:nth-child(3n+2) .jb-archive-card__media { background: linear-gradient(135deg, #ffd6e6 0%, var(--jb-pink) 100%); }
.jb-archive--games .jb-archive-card:nth-child(3n+3) .jb-archive-card__media { background: linear-gradient(135deg, #cfe8ff 0%, var(--jb-blue) 100%); }

/* FAQ — left border flips from blue to carnival pink to tie into the band */
.jb-archive--games .jb-archive-faq .jb-faq__item { border-left-color: var(--jb-pink); }
.jb-archive--games .jb-archive-faq .jb-faq__item summary::after { color: var(--jb-pink); }

/* Final CTA gets a warmer, game-midway gradient */
.jb-archive--games .jb-archive-cta {
	background:
		radial-gradient(ellipse at 80% 0%, rgba(255,212,0,.22), transparent 55%),
		radial-gradient(ellipse at 15% 100%, rgba(255,46,126,.22), transparent 50%),
		linear-gradient(135deg, #13254f 0%, #0d1b3d 100%);
}

/* Final CTA */
.jb-archive-cta {
	background: linear-gradient(135deg, var(--jb-bg-dark) 0%, var(--jb-bg-dark-2) 100%);
	color: #fff;
	text-align: center;
}
.jb-archive-cta h2 { color: #fff; }
.jb-archive-cta p { color: rgba(255,255,255,.9); max-width: 640px; margin: 0 auto 1.25rem; }
.jb-archive-cta .jb-hero__cta { justify-content: center; }

/* =============================================================
   Water Fun archive — aqua/teal palette, splash details
   ============================================================= */

/* Hero: swap the default blue/purple haze for aqua + seafoam + deep ocean */
.jb-archive--water-fun .jb-hero--archive {
	background:
		radial-gradient(ellipse at 82% 18%, rgba(64,224,208,.45), transparent 55%),
		radial-gradient(ellipse at 12% 88%, rgba(0,188,212,.40), transparent 52%),
		radial-gradient(ellipse at 60% 60%, rgba(123,231,231,.18), transparent 60%),
		linear-gradient(180deg, #072033 0%, #0a2e4d 100%);
}

/* Soft wave band tucked under the hero copy */
.jb-archive--water-fun .jb-hero--archive::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 48px;
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 48' preserveAspectRatio='none'><path d='M0 24 Q 150 0 300 24 T 600 24 T 900 24 T 1200 24 V48 H0 Z' fill='%23e6f7fb'/></svg>") center/cover no-repeat;
	pointer-events: none;
}
.jb-archive--water-fun .jb-hero--archive { position: relative; }

/* Intro: cooler page background so the aqua hero lands on seafoam, not stark white */
.jb-archive--water-fun .jb-archive-intro { background: #e6f7fb; }
.jb-archive--water-fun .jb-archive-grid   { background: #d6f0f5; }

/* H1 accent — a subtle aqua wave glyph under the headline */
.jb-archive--water-fun .jb-hero__copy h1 {
	position: relative;
	padding-bottom: .75rem;
}
.jb-archive--water-fun .jb-hero__copy h1::after {
	content: "";
	display: block;
	width: 120px;
	height: 10px;
	margin-top: .6rem;
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10'><path d='M0 5 Q 15 0 30 5 T 60 5 T 90 5 T 120 5' fill='none' stroke='%2340e0d0' stroke-width='2.5' stroke-linecap='round'/></svg>") center/contain no-repeat;
}

/* Children cards — aqua-to-deep-teal placeholder background, white ripples */
.jb-archive--water-fun .jb-archive-card .jb-archive-card__media {
	background:
		radial-gradient(circle at 25% 30%, rgba(255,255,255,.45) 0, rgba(255,255,255,0) 8%),
		radial-gradient(circle at 72% 68%, rgba(255,255,255,.35) 0, rgba(255,255,255,0) 10%),
		radial-gradient(circle at 55% 22%, rgba(255,255,255,.30) 0, rgba(255,255,255,0) 7%),
		linear-gradient(135deg, #40e0d0 0%, #0a9ab8 60%, #0a5c7a 100%);
}
.jb-archive--water-fun .jb-archive-card__placeholder { opacity: .75; color: #fff; }
.jb-archive--water-fun .jb-archive-card__placeholder .jb-icon { stroke: #fff; }

/* FAQ left border — shift from primary blue to aqua for visual coherence */
.jb-archive--water-fun .jb-archive-faq .jb-faq__item { border-left-color: #0a9ab8; }
.jb-archive--water-fun .jb-archive-faq .jb-faq__item summary::after { color: #0a9ab8; }

/* Final CTA — deep-ocean gradient with a warm coral accent call-to-action */
.jb-archive--water-fun .jb-archive-cta {
	background:
		radial-gradient(ellipse at 20% 0%, rgba(64,224,208,.28), transparent 55%),
		linear-gradient(135deg, #083352 0%, #0a5c7a 55%, #0a9ab8 100%);
}

/* =============================================================
   Rides archive — thrill-ride sunset palette (orange + magenta)
   ============================================================= */

/* Hero: swap default blue mist for a neon orange+magenta carnival-at-dusk glow */
.jb-archive--rides .jb-hero--archive {
	background:
		radial-gradient(ellipse at 82% 18%, rgba(255,140,0,.45), transparent 55%),
		radial-gradient(ellipse at 14% 88%, rgba(236,72,153,.40), transparent 55%),
		radial-gradient(ellipse at 60% 50%, rgba(124,58,237,.22), transparent 62%),
		linear-gradient(180deg, #0f1033 0%, #07081f 100%);
}

/* H1 gets a neon-tube underline like a ride-marquee light bar */
.jb-archive--rides .jb-hero__copy h1 {
	position: relative;
	padding-bottom: .65rem;
}
.jb-archive--rides .jb-hero__copy h1::after {
	content: "";
	display: block;
	width: 140px;
	height: 6px;
	margin-top: .6rem;
	border-radius: 3px;
	background: linear-gradient(90deg, #ff8c00 0%, #ec4899 50%, #7c3aed 100%);
	box-shadow: 0 0 18px rgba(236,72,153,.65);
}

/* Intro band — warm sunset cream so the intro copy has breathing room */
.jb-archive--rides .jb-archive-intro {
	background: linear-gradient(180deg, #fff 0%, #fff5eb 100%);
	position: relative;
	border-top: 6px solid transparent;
	border-image: repeating-linear-gradient(
		90deg,
		#ff8c00 0 22px,
		#ec4899 22px 44px,
		#7c3aed 44px 66px
	) 6;
}
.jb-archive--rides .jb-archive-intro__text { font-size: 1.12rem; }

/* Grid background — deeper cream so ride cards read as spotlight tiles */
.jb-archive--rides .jb-archive-grid { background: #fff0e0; }
.jb-archive--rides .jb-archive-grid h2 { color: var(--jb-black); }
.jb-archive--rides .jb-archive-grid h2::after {
	content: "";
	display: block;
	width: 96px;
	height: 6px;
	margin: .75rem auto 0;
	border-radius: 3px;
	background: linear-gradient(90deg, #ff8c00 0 33%, #ec4899 33% 66%, #7c3aed 66% 100%);
}

/* Cards — chunky rounded, strong drop-shadow, lift + slight tilt on hover like a ride cart */
.jb-archive--rides .jb-archive-card {
	background: #fff;
	border-radius: var(--jb-radius-lg);
	overflow: hidden;
	box-shadow: 0 8px 0 rgba(15,16,51,.08), 0 12px 32px rgba(15,16,51,.16);
	border: 3px solid transparent;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.jb-archive--rides .jb-archive-card:hover,
.jb-archive--rides .jb-archive-card:focus-visible {
	transform: translateY(-5px) rotate(.4deg);
	box-shadow: 0 12px 0 rgba(15,16,51,.10), 0 18px 44px rgba(15,16,51,.22);
	border-color: #ff8c00;
}
.jb-archive--rides .jb-archive-card .jb-archive-card__media {
	height: 210px;
	background: linear-gradient(135deg, #fff5eb 0%, #ffd6a8 100%);
}
.jb-archive--rides .jb-archive-card__body { padding: 1.4rem 1.3rem 1.6rem; }
.jb-archive--rides .jb-archive-card__body h3 {
	font-size: clamp(1.5rem, 2.6vw, 1.9rem);
	color: var(--jb-black);
}
.jb-archive--rides .jb-archive-card__body h3::after {
	content: "";
	display: block;
	width: 40px;
	height: 4px;
	margin: .6rem auto 0;
	border-radius: 2px;
	background: #ec4899;
}

/* Rotate card placeholder backgrounds so empty-thumb cards still read as distinct attractions */
.jb-archive--rides .jb-archive-card:nth-child(3n+1) .jb-archive-card__media { background: linear-gradient(135deg, #ffd6a8 0%, #ff8c00 100%); }
.jb-archive--rides .jb-archive-card:nth-child(3n+2) .jb-archive-card__media { background: linear-gradient(135deg, #fbcfe8 0%, #ec4899 100%); }
.jb-archive--rides .jb-archive-card:nth-child(3n+3) .jb-archive-card__media { background: linear-gradient(135deg, #ddd6fe 0%, #7c3aed 100%); }

/* Placeholder icon — the ferris wheel — brighter on the gradient backdrops */
.jb-archive--rides .jb-archive-card__placeholder { opacity: .85; color: #fff; }
.jb-archive--rides .jb-archive-card__placeholder .jb-icon { stroke: #fff; }

/* FAQ accent — shift to neon magenta to tie into the sunset palette */
.jb-archive--rides .jb-archive-faq .jb-faq__item { border-left-color: #ec4899; }
.jb-archive--rides .jb-archive-faq .jb-faq__item summary::after { color: #ec4899; }

/* Final CTA — midnight carnival gradient, warm accents */
.jb-archive--rides .jb-archive-cta {
	background:
		radial-gradient(ellipse at 78% 0%, rgba(255,140,0,.28), transparent 55%),
		radial-gradient(ellipse at 12% 100%, rgba(236,72,153,.25), transparent 55%),
		linear-gradient(135deg, #0f1033 0%, #07081f 100%);
}

/* =============================================================
   Equipment archive — warm workshop palette (yellow + teal),
   floating tent/table/chair/heater icon strip in the hero
   ============================================================= */

.jb-archive--equipment .jb-hero--archive {
	background:
		radial-gradient(ellipse at 82% 12%, rgba(255,212,0,.32), transparent 55%),
		radial-gradient(ellipse at 8% 92%, rgba(31,216,197,.30), transparent 52%),
		radial-gradient(ellipse at 50% 100%, rgba(255,46,126,.15), transparent 60%),
		linear-gradient(180deg, var(--jb-bg-dark) 0%, var(--jb-bg-dark-2) 100%);
	position: relative;
}

/* Decorative icon strip — tent, table, chair, heater, sparkles — only rendered on Equipment */
.jb-archive-hero-icons {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.75rem 0;
	pointer-events: none;
	opacity: .28;
	z-index: 0;
}
.jb-archive-hero-icons__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
}
.jb-archive-hero-icons__item .jb-icon {
	width: 100%;
	height: 100%;
	stroke: currentColor;
}
.jb-archive-hero-icons__item:nth-child(1) { color: var(--jb-yellow); transform: translateY(6px)  rotate(-6deg); }
.jb-archive-hero-icons__item:nth-child(2) { color: var(--jb-teal);   transform: translateY(28px); }
.jb-archive-hero-icons__item:nth-child(3) { color: #fff;             transform: translateY(4px)  rotate(4deg); }
.jb-archive-hero-icons__item:nth-child(4) { color: var(--jb-pink);   transform: translateY(32px) rotate(-3deg); }
.jb-archive-hero-icons__item:nth-child(5) { color: var(--jb-yellow); transform: translateY(12px); }
@media (max-width: 720px) {
	.jb-archive-hero-icons { padding: .75rem 1rem 0; opacity: .22; }
	.jb-archive-hero-icons__item { width: 34px; height: 34px; }
}
.jb-archive--equipment .jb-hero__overlay { position: relative; z-index: 1; }

/* Intro: warm cream wash with a tri-color rule — shifts the page palette on scroll */
.jb-archive--equipment .jb-archive-intro {
	background: linear-gradient(180deg, #fff 0%, var(--jb-cream) 100%);
	position: relative;
}
.jb-archive--equipment .jb-archive-intro::after {
	content: "";
	display: block;
	margin: 1.5rem auto 0;
	width: 72px;
	height: 4px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--jb-yellow), var(--jb-teal), var(--jb-pink));
}

/* Child grid: subtle diagonal pegboard pattern under the cards */
.jb-archive--equipment .jb-archive-grid {
	background:
		repeating-linear-gradient(45deg, transparent 0 22px, rgba(13,27,61,.025) 22px 23px),
		var(--jb-bg-soft);
}

/* Cards: heavier crate-lid top border, slug-rotating accent color */
.jb-archive--equipment .jb-archive-card {
	border-top: 6px solid var(--jb-yellow);
	box-shadow: 0 6px 18px rgba(13,27,61,.10);
	transition: transform .2s ease, box-shadow .2s ease;
}
.jb-archive--equipment .jb-archive-card:hover,
.jb-archive--equipment .jb-archive-card:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(13,27,61,.18);
}
.jb-archive--equipment .jb-archive-card.jb-card--accent-1 { border-top-color: var(--jb-pink); }
.jb-archive--equipment .jb-archive-card.jb-card--accent-2 { border-top-color: var(--jb-teal); }
.jb-archive--equipment .jb-archive-card.jb-card--accent-3 { border-top-color: var(--jb-blue); }
.jb-archive--equipment .jb-archive-card .jb-archive-card__media {
	background: linear-gradient(135deg, var(--jb-cream) 0%, #ffe9bf 100%);
}
.jb-archive--equipment .jb-archive-card__placeholder { color: var(--jb-blue-deep); opacity: .55; }

/* Empty-state: dashed crate outline so the loop still feels intentional before children exist */
.jb-archive--equipment .jb-archive-empty {
	background: #fff;
	border: 2px dashed var(--jb-gray-2);
	border-radius: var(--jb-radius);
	padding: 1.75rem 1.5rem;
	box-shadow: var(--jb-shadow);
	max-width: 720px;
}

/* FAQ accent in teal (vs the default blue) */
.jb-archive--equipment .jb-archive-faq .jb-faq__item { border-left-color: var(--jb-teal); }
.jb-archive--equipment .jb-archive-faq .jb-faq__item summary::after { color: var(--jb-teal); }

/* Final CTA: warm sunset wash over the navy base */
.jb-archive--equipment .jb-archive-cta {
	background:
		radial-gradient(ellipse at 20% 0%, rgba(255,212,0,.20), transparent 55%),
		radial-gradient(ellipse at 80% 100%, rgba(255,46,126,.18), transparent 55%),
		linear-gradient(135deg, var(--jb-bg-dark) 0%, var(--jb-bg-dark-2) 100%);
}

/* =============================================================
   Entertainment archive — stage-spotlight palette
   (purple + magenta + teal). Designed to read as "talent & show,"
   distinct from the holiday/event-types blue and the rides sunset.
   ============================================================= */

/* Hero: three colored spotlights — magenta upper-right, teal mid-left,
   violet bottom — over a deep-stage navy. Evokes a live stage. */
.jb-archive--entertainment .jb-hero--archive {
	position: relative;
	background:
		radial-gradient(ellipse at 82% 14%, rgba(255,46,126,.42), transparent 55%),
		radial-gradient(ellipse at 10% 58%, rgba(31,216,197,.28), transparent 55%),
		radial-gradient(ellipse at 50% 100%, rgba(123,63,242,.48), transparent 55%),
		linear-gradient(180deg, #120a2a 0%, #1c0f3a 100%);
}

/* "House lights" shimmer running across the top of the stage */
.jb-archive--entertainment .jb-hero--archive::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(255,255,255,.25) 20%,
		rgba(255,46,126,.55) 50%,
		rgba(255,255,255,.25) 80%,
		transparent 100%
	);
	pointer-events: none;
	z-index: 2;
}

/* H1 gets a stage-marquee underline glowing in brand magenta */
.jb-archive--entertainment .jb-hero__copy h1 {
	position: relative;
	padding-bottom: .7rem;
}
.jb-archive--entertainment .jb-hero__copy h1::after {
	content: "";
	display: block;
	width: 150px;
	height: 6px;
	margin-top: .6rem;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--jb-purple) 0%, var(--jb-pink) 55%, var(--jb-teal) 100%);
	box-shadow: 0 0 20px rgba(255,46,126,.6);
}

/* Performer-icon strip: overrides the base .jb-archive-hero-icons absolute/opacity layout.
   Floats across the top of the hero like a lineup of acts on a marquee, each in a
   tinted spotlight circle cycling through purple/magenta/teal. */
.jb-archive-hero-icons--entertainment {
	position: absolute;
	inset: auto 0 auto 0;
	top: .9rem;
	left: 50%;
	transform: translateX(-50%);
	width: auto;
	max-width: 92%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1.2rem;
	padding: 0;
	opacity: 1;
	z-index: 1;
	pointer-events: none;
}
.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.22);
	transform: none;
	color: #fff;
	box-shadow: 0 0 12px rgba(123,63,242,.45);
	animation: jb-ent-glow 3.4s ease-in-out infinite;
}
.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item .jb-icon {
	width: 20px;
	height: 20px;
	stroke: currentColor;
}
.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item:nth-child(1) { color: #f9d3ff; box-shadow: 0 0 14px rgba(123,63,242,.55); animation-delay: 0s;   }
.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item:nth-child(2) { color: #ffd6e6; box-shadow: 0 0 14px rgba(255,46,126,.55); animation-delay: .25s; }
.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item:nth-child(3) { color: #c2f4ec; box-shadow: 0 0 14px rgba(31,216,197,.55);  animation-delay: .5s;  }
.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item:nth-child(4) { color: #ffd6e6; box-shadow: 0 0 14px rgba(255,46,126,.55); animation-delay: .75s; }
.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item:nth-child(5) { color: #f9d3ff; box-shadow: 0 0 14px rgba(123,63,242,.55); animation-delay: 1s;   }

@keyframes jb-ent-glow {
	0%, 100% { opacity: .85; transform: translateY(0); }
	50%      { opacity: 1;   transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
	.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item { animation: none; }
}
@media (max-width: 720px) {
	.jb-archive-hero-icons--entertainment { gap: .85rem; top: .6rem; }
	.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item { width: 28px; height: 28px; }
	.jb-archive-hero-icons--entertainment .jb-archive-hero-icons__item .jb-icon { width: 16px; height: 16px; }
}

.jb-archive--entertainment .jb-hero__overlay { position: relative; z-index: 1; }

/* Intro: soft lavender wash + tri-color border strip echoing the h1 underline */
.jb-archive--entertainment .jb-archive-intro {
	background: linear-gradient(180deg, #fff 0%, #faf5ff 100%);
	position: relative;
	border-top: 6px solid transparent;
	border-image: repeating-linear-gradient(
		90deg,
		var(--jb-purple) 0 22px,
		var(--jb-pink) 22px 44px,
		var(--jb-teal) 44px 66px
	) 6;
}
.jb-archive--entertainment .jb-archive-intro__text { font-size: 1.12rem; }
.jb-archive--entertainment .jb-archive-intro__text p:first-child::first-letter {
	font-family: var(--jb-font-head);
	font-size: 3.2rem;
	font-weight: 800;
	color: var(--jb-purple);
	float: left;
	line-height: .9;
	margin: .15rem .6rem 0 0;
	text-shadow: 3px 3px 0 rgba(255,46,126,.35);
}

/* Grid: cooler lavender so cards pop as spotlit tiles */
.jb-archive--entertainment .jb-archive-grid { background: #f3ebff; }
.jb-archive--entertainment .jb-archive-grid h2 { color: var(--jb-black); }
.jb-archive--entertainment .jb-archive-grid h2::after {
	content: "";
	display: block;
	width: 96px;
	height: 6px;
	margin: .75rem auto 0;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--jb-purple) 0 33%, var(--jb-pink) 33% 66%, var(--jb-teal) 66% 100%);
}

/* Cards: rounded, chunky drop-shadow, lift on hover with a purple spotlight glow */
.jb-archive--entertainment .jb-archive-card {
	background: #fff;
	border-radius: var(--jb-radius-lg);
	overflow: hidden;
	box-shadow: 0 8px 0 rgba(28,15,58,.08), 0 12px 32px rgba(28,15,58,.16);
	border: 3px solid transparent;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.jb-archive--entertainment .jb-archive-card:hover,
.jb-archive--entertainment .jb-archive-card:focus-visible {
	transform: translateY(-5px);
	box-shadow:
		0 12px 0 rgba(28,15,58,.10),
		0 18px 40px rgba(123,63,242,.28),
		0 0 0 3px rgba(255,46,126,.15);
	border-color: var(--jb-purple);
}
.jb-archive--entertainment .jb-archive-card .jb-archive-card__media {
	height: 210px;
	background: linear-gradient(135deg, #ede4ff 0%, #dcc8ff 100%);
}
.jb-archive--entertainment .jb-archive-card__body { padding: 1.4rem 1.3rem 1.6rem; }
.jb-archive--entertainment .jb-archive-card__body h3 {
	font-size: clamp(1.5rem, 2.6vw, 1.9rem);
	color: var(--jb-black);
}
.jb-archive--entertainment .jb-archive-card__body h3::after {
	content: "";
	display: block;
	width: 40px;
	height: 4px;
	margin: .6rem auto 0;
	border-radius: 2px;
	background: var(--jb-pink);
}

/* Rotate placeholder backgrounds — without thumbnails each card still reads as
   a distinct performer tile, not an identical stack */
.jb-archive--entertainment .jb-archive-card:nth-child(3n+1) .jb-archive-card__media { background: linear-gradient(135deg, #ede4ff 0%, var(--jb-purple) 100%); }
.jb-archive--entertainment .jb-archive-card:nth-child(3n+2) .jb-archive-card__media { background: linear-gradient(135deg, #ffd6e6 0%, var(--jb-pink) 100%); }
.jb-archive--entertainment .jb-archive-card:nth-child(3n+3) .jb-archive-card__media { background: linear-gradient(135deg, #c2f4ec 0%, var(--jb-teal) 100%); }

.jb-archive--entertainment .jb-archive-card__placeholder { opacity: .92; color: #fff; }
.jb-archive--entertainment .jb-archive-card__placeholder .jb-icon {
	stroke: #fff;
	width: 54px;
	height: 54px;
	filter: drop-shadow(0 2px 6px rgba(0,0,0,.25));
}

/* FAQ accent — brand purple so it ties back to the stage marquee */
.jb-archive--entertainment .jb-archive-faq .jb-faq__item { border-left-color: var(--jb-purple); }
.jb-archive--entertainment .jb-archive-faq .jb-faq__item summary::after { color: var(--jb-purple); }

/* Final CTA — deep-stage gradient with warm spotlight accents */
.jb-archive--entertainment .jb-archive-cta {
	background:
		radial-gradient(ellipse at 78% 0%, rgba(255,46,126,.26), transparent 55%),
		radial-gradient(ellipse at 18% 100%, rgba(31,216,197,.22), transparent 55%),
		linear-gradient(135deg, #1c0f3a 0%, #120a2a 100%);
}

/* ---------- Corporate (jb-archive--corporate) — boardroom-meets-bounce-house ---------- */

/* Hero: deep navy with a gold-leaf glow, nodding at corporate trust markers
   without going full beige-and-PowerPoint */
.jb-archive--corporate .jb-hero--archive {
	background:
		radial-gradient(ellipse at 85% 10%, rgba(255,212,0,.30), transparent 55%),
		radial-gradient(ellipse at 12% 95%, rgba(255,184,0,.18), transparent 60%),
		linear-gradient(165deg, #0d1b3d 0%, #13284f 55%, #1a3668 100%);
}

/* Icon trio above the intro text — briefcase (scope) + handshake (relationship)
   + trophy (outcomes) — the three beats a corporate buyer wants from a vendor page.
   Rendered via background-images on a single pseudo-element so no template edit is needed. */
.jb-archive--corporate .jb-archive-intro { background: #fff; position: relative; }
.jb-archive--corporate .jb-archive-intro__text::before {
	content: "";
	display: block;
	width: 100%;
	max-width: 260px;
	height: 48px;
	margin: 0 auto 1.5rem;
	background-repeat: no-repeat;
	background-position: left center, center center, right center;
	background-size: 44px 44px, 44px 44px, 44px 44px;
	background-image:
		url('icons/briefcase-business.svg'),
		url('icons/handshake.svg'),
		url('icons/trophy.svg');
	/* tint the default-black Lucide strokes to the corporate navy */
	filter: invert(10%) sepia(45%) saturate(1800%) hue-rotate(210deg) brightness(.9);
	opacity: .9;
}

.jb-archive--corporate .jb-archive-grid { background: #fffaed; }

.jb-archive--corporate .jb-archive-empty {
	background: #fff;
	border: 1px solid rgba(255,184,0,.4);
	border-radius: var(--jb-radius);
	padding: 2.25rem 1.75rem;
	box-shadow: 0 4px 18px rgba(13,27,61,.06);
}
.jb-archive--corporate .jb-archive-empty a { color: #0d1b3d; border-bottom: 2px solid #ffb800; }

/* Card accents — gold stripe on hover for a subtle executive-folio feel */
.jb-archive--corporate .jb-archive-card { border-top: 4px solid transparent; transition: border-color .18s ease, transform .18s ease; }
.jb-archive--corporate .jb-archive-card:hover { border-top-color: #ffb800; transform: translateY(-2px); }

/* FAQ accent — gold instead of the default blue */
.jb-archive--corporate .jb-archive-faq .jb-faq__item {
	border-left-color: #ffb800;
	background: #fffaed;
}
.jb-archive--corporate .jb-archive-faq .jb-faq__item summary::after { color: #0d1b3d; }

/* CTA — same deep navy, but the primary button swaps to gold so the contrast
   reads "sponsor / sign the contract" rather than the default birthday-party blue */
.jb-archive--corporate .jb-archive-cta {
	background:
		radial-gradient(ellipse at 20% 20%, rgba(255,212,0,.24), transparent 55%),
		linear-gradient(135deg, #0d1b3d 0%, #13284f 100%);
}
.jb-archive--corporate .jb-archive-cta .jb-btn--primary {
	background: #ffb800;
	color: #0d1b3d;
	border-color: #ffb800;
}
.jb-archive--corporate .jb-archive-cta .jb-btn--primary:hover {
	background: #ffd400;
	border-color: #ffd400;
}
