/* ─── Custom Properties ──────────────────────────────────────────────────── */

:root {
	--sp-purple:       #6B21A8;
	--sp-purple-dark:  #3B0764;
	--sp-purple-mid:   #A855F7;
	--sp-purple-light: #F3E8FF;
	--sp-yellow:       #FBBF24;
	--sp-yellow-light: #FEF9C3;
	--sp-charcoal:     #1E1B4B;
	--sp-white:        #FFFFFF;
	--sp-off-white:    #F8F7FF;
	--sp-radius:       12px;
	--sp-radius-lg:    20px;
	--sp-shadow:       0 4px 20px rgba(107, 33, 168, 0.12);
	--sp-shadow-hover: 0 8px 32px rgba(107, 33, 168, 0.22);
	--sp-transition:   0.2s ease;

	/* ── Sidebar filter design tokens ─────────────────────────────────────── */
	--pl-950: #1c0a3e;
	--pl-900: #270c52;
	--pl-800: #36156f;
	--pl-700: #4a1d93;
	--pl-600: #6726c7;
	--pl-500: #7c39e6;
	--pl-ink: #2c1b52;
	--pl-ink-soft: #5b4b86;
	--gold: #f8b81e;
	--gold-200: #ffe9a8;
	--gold-deep: #e89c00;
	--on-gold: #3a1466;
	--teal: #13a3b5;
	--teal-deep: #0c7d8c;
	--lav: #efeafc;
	--lav-line: #e0d6f7;
	--card-soft: #faf8ff;
	--line: #ece6f7;
	--line-strong: #ddd2f0;
	--chip-count: #f0ebfa;
	--good: #1f9d61;
	--radius: 14px;
	--radius-sm: 10px;
	--radius-pill: 999px;
	--sidebar-w: 17.5rem;
	--shadow-sm: 0 1px 2px rgba(34,12,72,.08);
	--shadow-md: 0 6px 20px rgba(34,12,72,.12);
	--shadow-lg: 0 18px 50px rgba(20,6,52,.28);
	--fs: 1;
}

/* ─── Base ───────────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }

body {
	font-family: 'Nunito', sans-serif;
	color: var(--sp-charcoal);
	background: var(--sp-white);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--sp-purple); transition: color var(--sp-transition); }
a:hover { color: var(--sp-purple-dark); }

/* ─── Header ─────────────────────────────────────────────────────────────── */

.site-header {
	position: relative;
	z-index: 100;
	padding: 0.75rem 1.5rem;
	box-shadow: 0 2px 16px rgba(59, 7, 100, 0.3);
}

/* ── Slim sticky bar ─────────────────────────────────────────────────────── */
.sp-sticky {
	position: fixed;
	top: -56px;
	left: 0;
	right: 0;
	z-index: 200;
	height: 48px;
	background: rgba(59, 7, 100, 0.97);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid rgba(251, 191, 36, 0.3);
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
	transition: top 0.25s ease;
}

.sp-sticky--visible {
	top: 0;
}

.sp-sticky__inner {
	max-width: 1200px;
	margin: 0 auto;
	height: 100%;
	padding: 0 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.sp-sticky__brand {
	text-decoration: none;
	font-size: 1.15rem;
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1;
	flex-shrink: 0;
}

.sp-sticky__right {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.sp-sticky__fs .senspot-fs-down,
.sp-sticky__fs .senspot-fs-up {
	padding: 3px 9px;
	font-size: 0.78rem;
}

.sp-sticky__events {
	background: #FBBF24;
	color: #1E1B4B;
	border-radius: 9999px;
	padding: 6px 16px;
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s;
}

.sp-sticky__events:hover {
	background: #F59E0B;
}

.site-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

/* Allow nav to compress rather than overflow at mid widths */
.site-header__nav { min-width: 0; }

.site-header .wp-block-site-title a {
	color: var(--sp-yellow) !important;
	text-decoration: none;
	font-weight: 900;
	font-size: 1.4rem;
	letter-spacing: -0.02em;
}

.site-header__logo-text {
	text-decoration: none;
	font-size: 1.4rem;
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1;
}
.site-header__logo-sen  { color: #FFFFFF; }
.site-header__logo-spot { color: #FBBF24; }

.site-header .wp-block-navigation a {
	color: var(--sp-white) !important;
	font-weight: 700;
	text-decoration: none;
	padding: 0.25rem 0.5rem;
	border-radius: 6px;
	transition: background var(--sp-transition);
}

/* ─── Header: mid-width squeeze fixes ───────────────────────────────────────
   960px: drop Submit Event button — it lives in the nav too
   860px: compact title, nav links, and account buttons to stop text stacking */
@media (max-width: 960px) {
	.site-header__cta .wp-block-buttons { display: none; }
}
@media (max-width: 860px) {
	.site-header .wp-block-site-title a { font-size: 1.1rem; }
	.site-header .wp-block-navigation a { font-size: 0.8rem; padding: 0.2rem 0.3rem; }
	.header-account-btn { font-size: 0.78rem; padding: 0.35rem 0.7rem; }
}

.site-header .wp-block-navigation a:hover {
	background: rgba(255,255,255,0.15);
}

/* Mobile nav */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	color: var(--sp-white) !important;
}

/* ─── Buttons ────────────────────────────────────────────────────────────── */

.btn, .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.65rem 1.5rem;
	min-height: 44px;
	border-radius: 9999px;
	font-weight: 700;
	font-family: 'Nunito', sans-serif;
	font-size: 1rem;
	text-decoration: none;
	transition: transform var(--sp-transition), box-shadow var(--sp-transition), opacity var(--sp-transition);
	cursor: pointer;
	border: none;
}

.btn--primary, .wp-element-button {
	background: var(--sp-purple);
	color: var(--sp-white);
}

.btn--primary:hover, .wp-element-button:hover {
	opacity: 0.9;
	transform: translateY(-1px);
	box-shadow: var(--sp-shadow-hover);
}

.btn--ghost {
	background: transparent;
	color: var(--sp-purple);
	border: 2px solid var(--sp-purple);
}

.btn--ghost:hover {
	background: var(--sp-purple-light);
}

/* ─── Hero ───────────────────────────────────────────────────────────────── */

.hero {
	position: relative;
	padding: 5rem 1.5rem;
	text-align: left;
	background-image:
		linear-gradient(to right, rgba(55, 10, 100, 0.85) 0%, rgba(55, 10, 100, 0.6) 40%, rgba(55, 10, 100, 0) 65%),
		url('/wp-content/uploads/2026/06/SENSpot-South-Yorkshire-Hero.png');
	background-size: cover;
	background-position: center top;
	background-color: #7C3AED; /* fallback if image fails to load */
	min-height: 340px;
}

/* Hero text indent */
.hero .hero__inner,
.hero .wp-block-group.hero__inner {
	max-width: 480px !important;
	margin-left: 8rem !important;
	margin-right: auto !important;
}

.hero__inner {
	max-width: 760px;
}

.hero h1 { margin-bottom: 1rem; }
.hero p   { margin-bottom: 2rem; }

@media (max-width: 768px) {
	.hero {
		background-position: center top;
		min-height: 280px;
	}
	.hero .hero__inner,
	.hero .wp-block-group.hero__inner {
		margin-left: 0 !important;
	}
}

/* ─── How It Works ───────────────────────────────────────────────────────── */

.how-it-works {
	padding: 4rem 1.5rem;
}

.how-it-works h2 {
	margin-bottom: 2.5rem;
}

.how-it-works__step {
	text-align: center;
	padding: 2rem 1.5rem 2.5rem;
	background: var(--sp-white);
	border-radius: var(--sp-radius-lg);
	box-shadow: var(--sp-shadow);
	display: flex;
	flex-direction: column;
	align-items: center;
}

.how-it-works__sennie {
	margin: 0 auto 1.25rem !important;
}

.how-it-works__sennie img {
	width: 140px;
	height: 140px;
	object-fit: contain;
	margin: 0 auto;
	display: block;
	transition: transform 0.3s ease;
}

.how-it-works__step:hover .how-it-works__sennie img {
	transform: scale(1.08) rotate(-3deg);
}

.how-it-works__step h3 {
	margin-bottom: 0.75rem;
}

.how-it-works__step--placeholder .how-it-works__sennie img {
	opacity: 0.5; /* subtle until real image arrives */
}

/* ─── Events Section ─────────────────────────────────────────────────────── */

.events-section,
.events-archive__content {
	padding: 3rem 1.5rem 4rem;
	position: relative;
	z-index: 1;
}

.events-section h2,
.events-archive h2 {
	margin-bottom: 1.5rem;
}

/* ─── Filter Bar ─────────────────────────────────────────────────────────── */

.senspot-filter {
	background: var(--sp-off-white);
	border: 2px solid var(--sp-purple-light);
	border-radius: var(--sp-radius-lg);
	padding: 1.5rem;
	margin-bottom: 2rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.filter__group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.filter__label {
	font-weight: 800;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--sp-purple-dark);
	margin: 0;
}

.filter__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.chip {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.9rem;
	border-radius: 9999px;
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 0.85rem;
	cursor: pointer;
	border: 2px solid var(--sp-purple-light);
	background: var(--sp-white);
	color: var(--sp-charcoal);
	transition: all var(--sp-transition);
	user-select: none;
}

.chip:hover {
	border-color: var(--sp-purple);
	color: var(--sp-purple);
}

.chip--active {
	background: var(--sp-purple);
	border-color: var(--sp-purple);
	color: var(--sp-white);
}

.chip:focus-visible {
	outline: 3px solid var(--sp-yellow);
	outline-offset: 2px;
}

.filter__results-count {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--sp-purple-mid);
	min-height: 1.2em;
}

/* ─── Filter on dark hero (events archive + homepage events panel) ───────── */

.events-archive__hero .senspot-filter,
.htab-panel--active .senspot-filter {
	background: rgba(255,255,255,0.08);
	border-color: rgba(255,255,255,0.2);
	margin-top: 1.5rem;
}

.events-archive__hero .filter__label,
.htab-panel .filter__label {
	color: rgba(255,255,255,0.7);
}

.events-archive__hero .chip,
.htab-panel .chip {
	background: rgba(255,255,255,0.1);
	border-color: rgba(255,255,255,0.25);
	color: var(--sp-white);
}

.events-archive__hero .chip:hover,
.htab-panel .chip:hover {
	background: rgba(255,255,255,0.2);
	border-color: var(--sp-yellow);
	color: var(--sp-white);
}

.events-archive__hero .chip--active,
.htab-panel .chip--active {
	background: var(--sp-yellow);
	border-color: var(--sp-yellow);
	color: var(--sp-charcoal);
}

.events-archive__hero .filter__results-count,
.htab-panel .filter__results-count {
	color: rgba(255,255,255,0.6);
}

/* ─── Homepage Tabs Section ──────────────────────────────────────────────── */

.homepage-tabs-section {
	padding: 0 1.5rem;
}

.homepage-tabs {
	margin-top: -1px;
}

/* Tab nav bar */
.homepage-tabs__nav {
	display: flex;
	gap: 0;
	background: #2D0A55;
	border-bottom: 3px solid var(--sp-yellow);
}

.htab {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 1rem 2rem;
	font-family: 'Nunito', sans-serif;
	font-size: 1rem;
	font-weight: 800;
	color: rgba(255,255,255,0.6);
	background: transparent;
	border: none;
	cursor: pointer;
	transition: color var(--sp-transition), background var(--sp-transition);
	position: relative;
}

.htab:hover {
	color: var(--sp-white);
	background: rgba(255,255,255,0.06);
}

.htab--active {
	color: var(--sp-white);
	background: rgba(255,255,255,0.08);
}

.htab--active::after {
	content: '';
	position: absolute;
	bottom: -3px;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--sp-yellow);
}

.htab__icon { font-size: 1.1rem; }

/* Tab panels */
.htab-panel {
	padding: 2.5rem 0 1rem;
}

.htab-panel__inner {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}


/* Panel CTA row */
.htab-panel__cta {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: center;
	padding-top: 0.5rem;
	border-top: 1px solid var(--sp-purple-light);
}

/* ─── Events Grid ────────────────────────────────────────────────────────── */

.senspot-events-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}

/* ─── Event Card ─────────────────────────────────────────────────────────── */

.senspot-event-card {
	background: var(--sp-white);
	border-radius: var(--sp-radius-lg);
	box-shadow: var(--sp-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform var(--sp-transition), box-shadow var(--sp-transition);
	border-top: 4px solid var(--sp-purple);
}

.senspot-event-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sp-shadow-hover);
}

.senspot-event-card[hidden] { display: none; }

/* Card cover image */
.event-card__cover {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: linear-gradient(135deg, #6B21A8 0%, #7C3AED 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

.event-card__cover img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.event-card__cover--sennie img {
	object-fit: cover;
	object-position: top center;
	width: 100%;
	height: 100%;
}


/* Card body */
.event-card__body {
	padding: 1.25rem 1.25rem 0.75rem;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	flex: 1;
}

/* Activity type chips — top of card */
.event-card__type-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
}

/* Title */
.event-card__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1.25;
}

.event-card__title a {
	color: var(--sp-purple-dark);
	text-decoration: none;
}

.event-card__title a:hover { color: var(--sp-purple); }

/* Date row */
.event-card__date {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--sp-purple);
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
}

.event-card__time-sep {
	color: #6B7280;
	font-weight: 400;
}

/* Venue + price rows */
.event-card__meta {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.event-card__venue-row,
.event-card__price-row {
	margin: 0;
	font-size: 0.82rem;
	color: #555;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

/* Consolidated chip row */
.event-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin-top: 0.1rem;
}

/* Shared chip base (type + recurring badges) */
.event-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.65rem;
	border-radius: 9999px;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.4;
}

.event-chip--type      { background: var(--sp-yellow-light); color: #78350F; }
.event-chip--recurring { background: #E0F2FE; color: #0C4A6E; border: 1px solid #BAE6FD; }

/* ─── Unified Chip System ─────────────────────────────────────────────────── */
.senspot-chip {
	position: relative;
	display: inline-flex;
	align-items: center;
}

/* Card context — compact pill */
.event-card__chips .senspot-chip {
	padding: 0.2rem 0.65rem;
	border-radius: 9999px;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.4;
	gap: 0.3rem;
}

/* Access chips — lavender */
.senspot-chip--access {
	background: var(--sp-purple-light);
	color: var(--sp-purple-dark);
	border: 1px solid var(--lav-line);
}

/* WHO chips — base (family / default) */
.senspot-chip--who {
	background: #DCFCE7;
	color: #15803D;
	border: 1px solid #86EFAC;
}

/* WHO modifiers */
.senspot-chip--parent-carer {
	background: #FFF7ED;
	color: #9A3412;
	border: 1px solid #FDBA74;
}
.senspot-chip--disabled {
	background: #EFF6FF;
	color: #1E40AF;
	border: 1px solid #BFDBFE;
}
.senspot-chip--carer-required {
	background: #FEF9C3;
	color: #854D0E;
	border: 1px solid #FDE047;
	font-weight: 800;
}

/* Age chip */
.senspot-chip--age {
	background: #f0fdf4;
	color: #14532d;
	border: 1px solid #bbf7d0;
}

/* Condition chip */
.senspot-chip--condition {
	background: #ECFDF5;
	color: #064E3B;
	border: 1px solid #6EE7B7;
}

/* Tooltip ⓘ trigger */
.senspot-chip__info {
	cursor: help;
	font-size: 0.85em;
	opacity: 0.65;
}

/* Tooltip */
.senspot-chip__tip {
	display: none;
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	background: #1e1b4b;
	color: #fff;
	font-size: 11px;
	font-weight: 400;
	line-height: 1.5;
	padding: 7px 11px;
	border-radius: 7px;
	width: 230px;
	text-align: center;
	z-index: 100;
	pointer-events: none;
	white-space: normal;
}
.senspot-chip:hover .senspot-chip__tip { display: block; }

.event-card__date--recurring { color: #0C4A6E; font-style: italic; }

/* Card footer — single CTA */
.event-card__footer {
	padding: 0 1.25rem 1.25rem;
	margin-top: auto;
}

.event-card__cta {
	display: block;
	width: 100%;
	text-align: center;
	padding: 0.6rem 1rem;
	background: var(--sp-purple);
	color: #fff !important;
	border-radius: 9999px;
	font-size: 0.875rem;
	font-weight: 800;
	text-decoration: none;
	transition: background var(--sp-transition);
	box-sizing: border-box;
}

.event-card__cta:hover {
	background: var(--sp-purple-dark);
	color: #fff !important;
}

/* Shared tag base — used by professionals + places cards */
.tag {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.65rem;
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 700;
}

.tag--type    { background: var(--sp-yellow-light); color: #78350f; }
.tag--access  { background: var(--sp-purple-light); color: var(--sp-purple-dark); }
.tag--age     { background: #f0fdf4; color: #14532d; border: 1px solid #bbf7d0; }

/* No events message */
.senspot-no-events {
	text-align: center;
	padding: 3rem;
	color: var(--sp-purple-mid);
	font-size: 1.1rem;
	font-weight: 600;
}

/* ─── Submit CTA ─────────────────────────────────────────────────────────── */

.submit-cta {
	padding: 4rem 1.5rem;
	text-align: center;
}

.submit-cta h2 { margin-bottom: 1rem; }
.submit-cta p  { margin-bottom: 2rem; max-width: 560px; margin-left: auto; margin-right: auto; }

/* ─── Page Templates ─────────────────────────────────────────────────────── */

.page-hero {
	padding: 3rem 1.5rem 2rem;
}

.page-content {
	padding: 2rem 1.5rem 4rem;
}

.page-content p,
.page-content li {
	font-size: 1.05rem;
	line-height: 1.75;
}

/* ─── Events Archive Hero ────────────────────────────────────────────────── */

.events-archive__hero {
	padding: 2rem 1.5rem 1.5rem;
	background-image: linear-gradient(135deg, #2D0A55 0%, #6B21A8 65%, #7C3AED 100%);
	background-repeat: no-repeat;
	background-size: cover;
	position: relative;
	overflow: visible;
}

.fv2-hero-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.5rem;
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
}

.fv2-hero-header__text { flex: 1; min-width: 0; }

.fv2-hero__title {
	color: #fff;
	font-weight: 900;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.1;
	margin: 0 0 0.4rem;
}

.fv2-hero__subtitle {
	color: var(--sp-yellow);
	font-size: 1.1rem;
	margin: 0;
}

.fv2-hero-header .fv2-mode-toggle {
	margin-bottom: 0;
	flex-shrink: 0;
}

@media (max-width: 600px) {
	.fv2-hero-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}
}

/* ─── Info bar (replaces hint + skip) ───────────────────────────────────── */

.fv2-info-bar {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 14px;
}

.fv2-info-bar__btn {
	font-size: 0.82rem;
	font-weight: 700;
	color: #5EEAD4;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	font-family: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.fv2-info-bar__btn:hover { color: #99F6E4; }

.fv2-info-bar__skip {
	font-size: 0.82rem;
	color: rgba(255, 255, 255, 0.65);
	text-decoration: none;
}

.fv2-info-bar__skip:hover { color: rgba(255, 255, 255, 0.9); }

.fv2-info-panel {
	border: 1.5px dashed rgba(94, 234, 212, 0.45);
	border-radius: var(--sp-radius);
	padding: 10px 14px;
	margin-bottom: 16px;
	color: #5EEAD4;
	font-size: 0.85rem;
	line-height: 1.55;
}

.fv2-info-panel p { margin: 0; }

.events-search-wrapper {
	position: relative;
}

.events-hero__sennie-peek {
	position: absolute;
	bottom: 100%;
	margin-bottom: -65px; /* paws overlap into the filter box top */
	right: 0;
	width: 300px;
	height: auto;
	z-index: 10;
	pointer-events: none;
}

/* ─── Single Event ───────────────────────────────────────────────────────── */

.event-single__hero {
	padding: 3rem 1.5rem 2rem;
}

.event-single__image {
	margin-top: 1.5rem;
	border-radius: var(--sp-radius);
	overflow: hidden;
}

.event-single__body {
	padding: 2rem 1.5rem 3rem;
}

.event-single__back {
	padding: 0 1.5rem 3rem;
}

/* ─── Footer ─────────────────────────────────────────────────────────────── */

.site-footer {
	padding: 3rem 1.5rem 1.5rem;
}

.site-footer__top {
	gap: 2rem;
	margin-bottom: 2rem;
}

.site-footer .wp-block-site-title a {
	color: var(--sp-yellow) !important;
	text-decoration: none;
	font-weight: 900;
}

.site-footer .wp-block-navigation a {
	color: var(--sp-purple-light) !important;
	font-size: 0.9rem;
	text-decoration: none;
	line-height: 2;
}

.site-footer .wp-block-navigation a:hover {
	color: var(--sp-yellow) !important;
}

.site-footer__bottom {
	padding-top: 1.25rem;
}

.site-footer__divider {
	margin: 0;
	opacity: 1;
}

/* ─── Accessibility ──────────────────────────────────────────────────────── */

:focus-visible {
	outline: 3px solid var(--sp-yellow);
	outline-offset: 3px;
	border-radius: 4px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Skip link */
.skip-link {
	position: absolute;
	top: -100%;
	left: 1rem;
	z-index: 9999;
	background: var(--sp-yellow);
	color: var(--sp-charcoal);
	font-weight: 800;
	padding: 0.75rem 1.5rem;
	border-radius: 0 0 var(--sp-radius) var(--sp-radius);
	text-decoration: none;
	transition: top 0.2s;
}

.skip-link:focus { top: 0; }

/* No results */
.senspot-no-results {
	text-align: center;
	padding: 3rem;
	color: var(--sp-purple-mid);
	font-size: 1.1rem;
	font-weight: 600;
	grid-column: 1 / -1;
}

/* ─── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
	.hero { padding: 3rem 1.25rem; }
	.hero .hero__inner,
	.hero .wp-block-group.hero__inner { margin-left: 0 !important; }
	.how-it-works { padding: 2.5rem 1.25rem; }
	.events-section, .events-archive__content { padding: 2rem 1.25rem 3rem; }
	.submit-cta { padding: 2.5rem 1.25rem; }

	.senspot-events-grid {
		grid-template-columns: 1fr;
	}

	.site-header__cta { display: none; }

}

@media (max-width: 480px) {
	.how-it-works__cols .wp-block-column { margin-bottom: 1rem; }
}

/* ─── Homepage Find Section ──────────────────────────────────────────────── */

.homepage-find {
	padding: 3rem 1.5rem 4rem;
}

.homepage-find__cols {
	gap: 2rem !important;
}

.find-card {
	padding: 2.5rem 2rem;
	border-radius: var(--sp-radius-lg);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.15);
	display: flex;
	flex-direction: column;
}

.find-card .wp-block-buttons {
	margin-top: auto;
}

.find-card__icon {
	font-size: 2.5rem;
	line-height: 1;
	margin: 0 0 0.5rem !important;
}

.find-card .wp-block-heading {
	margin-top: 0;
	margin-bottom: 0.75rem;
}

.find-card .wp-block-paragraph {
	margin-top: 0;
	margin-bottom: 1.25rem;
	line-height: 1.65;
}

.find-card__coming-soon {
	display: inline-block;
	background: rgba(251,191,36,0.2);
	color: #FBBF24;
	border: 1px solid rgba(251,191,36,0.4);
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.2rem 0.75rem;
	margin: 0 0 0.75rem !important;
}

@media (max-width: 768px) {
	.homepage-find { padding: 2rem 1.25rem 3rem; }
}

/* ─── Event Search Bar ───────────────────────────────────────────────────── */

.event-search {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--sp-radius-lg);
	padding: 1.5rem;
	margin-top: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* Suppress wpautop artefacts (stray <br> and <p> tags) inside the search form */
.event-search br,
.event-search p:empty { display: none; margin: 0; padding: 0; }

.event-search__fields {
	display: grid;
	grid-template-columns: 2fr 1.5fr 1.5fr;
	gap: 1rem;
}

.event-search__field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.event-search__label {
	font-size: 0.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

.event-search__input-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.event-search__icon {
	position: absolute;
	left: 0.85rem;
	font-size: 1rem;
	pointer-events: none;
}

.event-search__input {
	width: 100%;
	padding: 0.7rem 0.85rem 0.7rem 2.4rem;
	border: 2px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--sp-radius);
	background: rgba(255, 255, 255, 0.12);
	color: var(--sp-white);
	font-family: 'Nunito', sans-serif;
	font-size: 0.95rem;
	font-weight: 600;
	transition: border-color var(--sp-transition), background var(--sp-transition);
}

.event-search__input::placeholder { color: rgba(255, 255, 255, 0.55); }

.event-search__input:focus {
	outline: 2px solid #FBBF24;
	outline-offset: 2px;
	border-color: var(--sp-yellow);
	background: rgba(255, 255, 255, 0.18);
}

.event-search__select {
	width: 100%;
	padding: 0.7rem 2.5rem 0.7rem 0.85rem;
	border: 2px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--sp-radius);
	background: rgba(255, 255, 255, 0.12);
	color: var(--sp-white);
	font-family: 'Nunito', sans-serif;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	transition: border-color var(--sp-transition);
}

.event-search__select option { background: var(--sp-purple-dark); color: var(--sp-white); }

.event-search__select:focus {
	outline: 2px solid #FBBF24;
	outline-offset: 2px;
	border-color: var(--sp-yellow);
}

.event-search__fields--row2 {
	grid-template-columns: repeat(3, 1fr);
}

/* Age inputs — side-by-side number fields with "or" separator */
.event-search__age-builder {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.age-builder__row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.event-search__input--age {
	padding-left: 0.85rem;
	width: 80px;
	flex: 0 0 80px;
}

/* hide browser spinner arrows on number inputs */
.event-search__input--age::-webkit-outer-spin-button,
.event-search__input--age::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.event-search__input--age { -moz-appearance: textfield; }

.age-builder__add {
	background: transparent;
	border: 1.5px dashed rgba(255, 255, 255, 0.4);
	border-radius: 9999px;
	color: rgba(255, 255, 255, 0.75);
	font-family: 'Nunito', sans-serif;
	font-size: 0.78rem;
	font-weight: 700;
	padding: 0.3rem 0.85rem;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
	white-space: nowrap;
}

.age-builder__add:hover {
	border-color: var(--sp-yellow);
	color: var(--sp-yellow);
	background: rgba(251, 191, 36, 0.08);
}

.age-builder__remove {
	background: transparent;
	border: none;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.85rem;
	cursor: pointer;
	padding: 0.2rem 0.4rem;
	border-radius: 50%;
	line-height: 1;
	transition: color 0.2s ease, background 0.2s ease;
}

.age-builder__remove:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.15);
}

/* Accessibility needs — multi-chip row */
.event-search__access-row {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding-top: 0.25rem;
}

.event-search__label-hint {
	font-size: 0.78rem;
	font-weight: 400;
	opacity: 0.7;
}

/* Accordion wrapper */
.access-accordion-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.access-accordion {
	border: 1.5px solid rgba(255,255,255,0.15);
	border-radius: 10px;
	overflow: hidden;
	transition: border-color 0.2s ease;
}

.access-accordion--open {
	border-color: var(--sp-yellow);
}

.access-accordion__trigger {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.65rem 1rem;
	background: rgba(255,255,255,0.06);
	border: none;
	cursor: pointer;
	font-family: 'Nunito', sans-serif;
	font-size: 0.9rem;
	font-weight: 700;
	color: rgba(255,255,255,0.85);
	text-align: left;
	transition: background 0.2s ease;
}

.access-accordion__trigger:hover,
.access-accordion--open .access-accordion__trigger {
	background: rgba(255,255,255,0.1);
	color: #fff;
}

.access-accordion__emoji {
	font-size: 1rem;
	flex-shrink: 0;
}

.access-accordion__label {
	flex: 1;
}

.access-accordion__count {
	background: var(--sp-yellow);
	color: #1E1B4B;
	font-size: 0.7rem;
	font-weight: 900;
	border-radius: 9999px;
	padding: 0.1rem 0.5rem;
	flex-shrink: 0;
}

.access-accordion__arrow {
	font-size: 0.75rem;
	opacity: 0.6;
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.access-accordion--open .access-accordion__arrow {
	transform: rotate(180deg);
	opacity: 1;
}

.access-accordion__panel {
	padding: 0.75rem 1rem 1rem;
	background: rgba(0,0,0,0.15);
}

.access-accordion__panel[hidden] {
	display: none;
}

.event-search__access-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.access-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.3rem 0.85rem;
	border-radius: 9999px;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--sp-purple, #6B21A8);
	border: 1.5px solid rgba(255, 255, 255, 0.25);
	cursor: pointer;
	user-select: none;
	transition: background var(--sp-transition), color var(--sp-transition), border-color var(--sp-transition);
}

.access-chip:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.5);
	color: var(--sp-purple, #6B21A8);
}

.access-chip[data-state="must"] {
	background: var(--sp-yellow);
	border-color: var(--sp-yellow);
	color: #1E1B4B;
}

.access-chip[data-state="nice"] {
	background: transparent;
	border-color: var(--sp-yellow);
	color: var(--sp-yellow);
}

.access-chip__icon {
	font-size: 0.75rem;
	font-weight: 900;
	min-width: 0.8rem;
	text-align: center;
}

.access-chip__level-label {
	font-size: 0.7rem;
	font-weight: 700;
	opacity: 0.85;
}

/* Row 3: binary toggles */
.event-search__checks {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	align-items: center;
}

.event-search__check-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.85);
	cursor: pointer;
	user-select: none;
}

.event-search__check-label--soon {
	opacity: 0.55;
	cursor: not-allowed;
}

.event-search__checkbox {
	width: 1.1rem;
	height: 1.1rem;
	accent-color: var(--sp-yellow);
	cursor: pointer;
	flex-shrink: 0;
}

.event-search__check-label--soon .event-search__checkbox {
	cursor: not-allowed;
}

.event-search__badge {
	display: inline-flex;
	padding: 0.15rem 0.55rem;
	border-radius: 9999px;
	background: rgba(251, 191, 36, 0.25);
	color: var(--sp-yellow);
	font-size: 0.7rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	vertical-align: middle;
}

.event-search__actions {
	display: flex;
	gap: 1rem;
	align-items: center;
	flex-wrap: wrap;
}

.event-search__btn {
	background: var(--sp-yellow);
	color: var(--sp-charcoal);
	display: inline-flex;
	align-items: center;
	padding: 0.75rem 2rem;
	border-radius: 9999px;
	font-family: 'Nunito', sans-serif;
	font-size: 1rem;
	font-weight: 800;
	border: none;
	cursor: pointer;
	transition: background var(--sp-transition), transform var(--sp-transition);
}

.event-search__btn:hover {
	background: #f0b520;
	color: var(--sp-charcoal);
	transform: translateY(-1px);
}

.event-search__clear {
	font-size: 0.85rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.6);
	text-decoration: underline;
}

.event-search__clear:hover { color: var(--sp-white); }

@media (max-width: 768px) {
	.event-search__fields,
	.event-search__fields--row2 { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   SINGLE EVENT PAGE — Storybook Design (.evs-*)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hide FSE hero block — our PHP hero replaces it ──────────────────────── */

.event-single__hero { display: none !important; }

.event-single__body { padding: 0; max-width: 100% !important; }

/* ── Paper texture background ─────────────────────────────────────────────── */

.event-single {
	background: #FFFAF0;
	background-image: radial-gradient(circle at 1px 1px, rgba(107,33,168,0.04) 1px, transparent 0);
	background-size: 20px 20px;
}

/* ── Two-column layout ────────────────────────────────────────────────────── */

.evs-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	padding-bottom: 3rem;
}

@media (min-width: 1024px) {
	.evs-layout {
		grid-template-columns: 420px 1fr;
		gap: 2rem;
		align-items: start;
	}

	.evs-col--left {
		position: sticky;
		top: 88px;
		align-self: start;
	}
}

.evs-col {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

/* ── Hero card ────────────────────────────────────────────────────────────── */

.evs-hero {
	position: relative;
	background: linear-gradient(135deg, #6B21A8 0%, #9333EA 52%, #C084FC 100%);
	border-radius: 28px;
	padding: 20px 20px 0;
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(107,33,168,.25);
}

.evs-hero__star {
	position: absolute;
	color: #FBBF24;
	pointer-events: none;
	font-style: normal;
	line-height: 1;
}

.evs-hero__star--1 { top: 20px; right: 24px; font-size: 18px; }
.evs-hero__star--2 { top: 60px; right: 16px; font-size: 12px; opacity: .7; }
.evs-hero__star--3 { top: 110px; left: 30px; font-size: 14px; opacity: .6; }

.evs-hero__type-chip {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: #FBBF24;
	color: #3B0764;
	padding: 4px 12px;
	border-radius: 9999px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .01em;
	line-height: 1.2;
}

.evs-hero__title {
	color: #fff;
	font-size: clamp(1.4rem, 3.2vw, 2rem);
	font-weight: 900;
	line-height: 1.1;
	margin: 12px 0 8px;
	letter-spacing: -.025em;
	word-break: break-word;
	overflow-wrap: break-word;
}

/* When there's no type chip, pull title up a touch */
.evs-hero__title:first-child { margin-top: 4px; }

.evs-hero__subline {
	display: inline-block;
	font-family: 'Caveat', cursive;
	font-size: 22px;
	font-weight: 700;
	color: #FBBF24;
	margin-bottom: 12px;
	line-height: 1;
	transform: rotate(-1deg);
}

.evs-hero__sennie {
	position: relative;
	height: 260px;
	margin: 0 -20px -10px;
}

.evs-hero__sennie-img {
	position: absolute;
	bottom: 0;
	right: -10px;
	height: 310px;
	width: auto;
	object-fit: contain;
	filter: drop-shadow(0 8px 16px rgba(0,0,0,.2));
}

.evs-hero__bubble {
	position: absolute;
	bottom: 120px;
	left: 4px;
	max-width: 185px;
	background: #fff;
	border-radius: 18px 4px 18px 18px;
	padding: 9px 13px;
	font-size: 13px;
	line-height: 1.4;
	color: #2A1B4A;
	font-weight: 600;
	box-shadow: 0 6px 16px rgba(0,0,0,.18);
	transform: rotate(-2deg);
}

.evs-hero__bubble strong {
	display: block;
	font-weight: 800;
	color: #6B21A8;
	font-size: 10px;
	margin-bottom: 3px;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.evs-hero__bubble p {
	margin: 0;
}

.evs-hero__bubble-tail {
	position: absolute;
	top: -10px;
	right: 20px;
	width: 0;
	height: 0;
	border-left: 8px solid transparent;
	border-right: 8px solid transparent;
	border-bottom: 12px solid #fff;
}

@media (max-width: 600px) {
	.evs-hero__sennie  { height: 220px; }
	.evs-hero__sennie-img { height: 270px; }
	.evs-hero__bubble  { max-width: 155px; font-size: 12px; bottom: 105px; }
}

/* Event photo strip between hero and facts */
.evs-event-img {
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #F3E8FF;
	margin: 12px 0;
}

.evs-event-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ── Quick Facts grid ─────────────────────────────────────────────────────── */

.evs-facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.evs-fact {
	border-radius: 18px;
	padding: 12px;
}

/* 3-card grid: last card alone in its row spans full width */
.evs-fact:last-child:nth-child(odd) { grid-column: span 2; }

.evs-fact--purple { background: #F3E8FF; border: 2px solid rgba(107,33,168,.2); }
.evs-fact--yellow { background: #FEF3C7; border: 2px solid rgba(251,191,36,.4); }
.evs-fact--green  { background: #DCFCE7; border: 2px solid rgba(22,163,74,.25); }

.evs-fact__icon  { font-size: 22px; margin-bottom: 2px; }
.evs-fact__label {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: 2px;
}

.evs-fact--purple .evs-fact__label { color: #6B21A8; }
.evs-fact--yellow .evs-fact__label { color: #92400E; }
.evs-fact--green  .evs-fact__label { color: #15803D; }

.evs-fact__value {
	font-size: 16px;
	font-weight: 900;
	color: #2A1B4A;
	line-height: 1.1;
}

.evs-fact__sub {
	font-size: 11px;
	color: #5B4A7A;
	font-weight: 600;
	margin-top: 2px;
}

/* ── Primary CTA block ────────────────────────────────────────────────────── */

.evs-cta-block {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.evs-book-btn {
	display: block;
	background: #FBBF24;
	color: #3B0764;
	text-align: center;
	padding: 18px 20px;
	border-radius: 22px;
	font-family: 'Nunito', sans-serif;
	font-size: 19px;
	font-weight: 900;
	text-decoration: none;
	box-shadow: 0 6px 0 #3B0764, 0 12px 24px rgba(107,33,168,.2);
	letter-spacing: -.02em;
	position: relative;
	transition: transform .15s ease, box-shadow .15s ease;
}

.evs-book-btn:hover {
	color: #3B0764;
	transform: translateY(-2px);
	box-shadow: 0 8px 0 #3B0764, 0 16px 28px rgba(107,33,168,.25);
}

.evs-book-btn__ribbon {
	position: absolute;
	top: -8px;
	right: -4px;
	background: #DC2626;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	padding: 3px 8px;
	border-radius: 9999px;
	transform: rotate(8deg);
	box-shadow: 0 2px 6px rgba(0,0,0,.2);
	white-space: nowrap;
}

.evs-save-btn {
	width: 100%;
	background: transparent;
	border: 2px solid #6B21A8;
	color: #6B21A8;
	padding: 12px;
	border-radius: 9999px;
	font-family: 'Nunito', sans-serif;
	font-size: 15px;
	font-weight: 800;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}

.evs-save-btn:hover,
.evs-save-btn.saved { background: #6B21A8; color: #fff; }

/* ── Section header ───────────────────────────────────────────────────────── */

.evs-section-hdr {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

.evs-section-hdr__icon { font-size: 22px; line-height: 1; flex-shrink: 0; }

.evs-section-hdr__title {
	display: block;
	font-size: 20px;
	font-weight: 900;
	color: #3B0764;
	letter-spacing: -.025em;
	line-height: 1.2;
}

.evs-section-hdr__sub {
	display: block;
	font-size: 13px;
	color: #5B4A7A;
	font-weight: 600;
	margin-top: 2px;
}

.evs-section-hdr__squiggle {
	display: block;
	width: 70px;
	height: 9px;
	margin-top: 6px;
	background-image: url("data:image/svg+xml,%3Csvg width='70' height='9' viewBox='0 0 70 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4.5 Q 9 1%2C 17 4.5 T 33 4.5 T 49 4.5 T 65 4.5' stroke='%23FBBF24' stroke-width='2.5' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
}

/* ── Sniff Test card ──────────────────────────────────────────────────────── */

.evs-sniff-card {
	background: var(--card-soft);
	border: 1px solid var(--lav-line);
	border-radius: 20px;
	padding: 16px;
	margin-top: 3px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* Tier 1 — taxonomy term chips */
.evs-sniff-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.evs-sniff-chips .senspot-chip {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	border-radius: 20px;
	padding: 4px 10px 4px 7px;
	font-size: 13px;
	font-weight: 700;
}
.evs-sniff-chips .senspot-chip .senspot-chip__icon { font-size: 15px; line-height: 1; }
.evs-sniff-chips .senspot-chip .senspot-chip__label { line-height: 1.2; }

/* Tier 2 — confirmed physical meta */
.evs-sniff-meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-self: flex-start;
	min-width: 240px;
}

.evs-sniff-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 3px 0;
	width: 100%;
}

.evs-sniff-item__icon {
	width: 34px;
	height: 34px;
	border-radius: 10px;
	display: grid;
	place-items: center;
	font-size: 17px;
	flex-shrink: 0;
}

.evs-sniff-item--yes .evs-sniff-item__icon     { background: #DCFCE7; }
.evs-sniff-item--no .evs-sniff-item__icon      { background: #FEE2E2; }
.evs-sniff-item--unknown .evs-sniff-item__icon { background: #F4F0E8; }

.evs-sniff-item__label {
	flex: 1;
	font-size: 14px;
	font-weight: 700;
	color: #2A1B4A;
}

.evs-sniff-item--unknown .evs-sniff-item__label { color: #5B4A7A; }

.evs-sniff-item__state {
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.evs-sniff-item--yes .evs-sniff-item__state     { color: #16A34A; }
.evs-sniff-item--no .evs-sniff-item__state      { color: #DC2626; }
.evs-sniff-item--unknown .evs-sniff-item__state { color: #5B4A7A; }
.evs-sniff-item--info .evs-sniff-item__icon     { background: var(--lav); }
.evs-sniff-item--info .evs-sniff-item__state    { color: var(--pl-700); }

/* Condition sniff item (tier 3) */
.evs-sniff-item--condition .evs-sniff-item__icon  { background: #ECFDF5; }
.evs-sniff-item--condition .evs-sniff-item__state { color: #064E3B; }


/* Empty state */
.evs-sniff-empty {
	font-size: 13px;
	color: #5B4A7A;
	line-height: 1.5;
	margin: 0;
}
.evs-sniff-empty a { color: var(--teal); font-weight: 700; text-decoration: none; }
.evs-sniff-empty a:hover { text-decoration: underline; }

.evs-sniff-footer {
	padding-top: 12px;
	border-top: 1px dashed var(--lav-line);
	font-size: 12px;
	color: #5B4A7A;
	font-weight: 600;
}

.evs-sniff-footer a { color: var(--teal); font-weight: 800; text-decoration: none; }
.evs-sniff-footer a:hover { text-decoration: underline; }

/* ── Sennie's Take card ───────────────────────────────────────────────────── */

.evs-take-card {
	background: linear-gradient(135deg, #FEF3C7, #FFF8EC);
	border: 2px solid #FBBF24;
	border-radius: 22px;
	padding: 16px;
	margin-top: 12px;
	margin-bottom: 14px;
	position: relative;
}

.evs-take-card__label {
	position: absolute;
	top: -13px;
	left: 14px;
	background: #FBBF24;
	color: #3B0764;
	padding: 4px 10px;
	border-radius: 9999px;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .05em;
	white-space: nowrap;
}

.evs-take-card__text {
	margin: 6px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: #2A1B4A;
	font-weight: 600;
	font-style: italic;
}

/* ── Accordion ────────────────────────────────────────────────────────────── */

.evs-accordion { display: flex; flex-direction: column; }

.evs-acc-item {
	background: #fff;
	border-radius: 20px;
	border: 2px solid #F0E4D0;
	margin-bottom: 10px;
	overflow: hidden;
	transition: box-shadow .2s ease, border-color .2s ease;
}

.evs-acc-item--open {
	box-shadow: 0 6px 20px rgba(107,33,168,.08);
	border-color: rgba(107,33,168,.18);
}

.evs-acc-trigger {
	width: 100%;
	text-align: left;
	background: transparent;
	border: none;
	padding: 14px 16px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	font-family: 'Nunito', sans-serif;
	transition: background .15s ease;
}

.evs-acc-trigger:hover { background: rgba(107,33,168,.03); }

.evs-acc-trigger__icon {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 14px;
	background: #FEF3C7;
	border: 2px solid #FBBF24;
	display: grid;
	place-items: center;
	font-size: 20px;
}

.evs-acc-trigger__text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.evs-acc-trigger__title {
	display: block;
	font-size: 16px;
	font-weight: 800;
	color: #2A1B4A;
	line-height: 1.2;
}

.evs-acc-trigger__summary {
	display: block;
	font-size: 13px;
	color: #5B4A7A;
	font-weight: 600;
	line-height: 1.35;
}

.evs-acc-trigger__chevron {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border-radius: 9999px;
	background: #F3E8FF;
	color: #6B21A8;
	display: grid;
	place-items: center;
	font-size: 16px;
	font-weight: 900;
	transition: transform .25s ease;
	margin-top: 6px;
}

.evs-acc-item--open .evs-acc-trigger__chevron { transform: rotate(180deg); }

.evs-acc-body[hidden] { display: none; }

.evs-acc-body__inner {
	padding: 0 16px 20px 68px;
	font-size: 14px;
	line-height: 1.65;
	color: #2A1B4A;
}

.evs-acc-body__inner p { margin: 0 0 .75em; }
.evs-acc-body__inner p:last-child { margin-bottom: 0; }

.evs-sennie-para {
	background: #FFF9E6;
	border-left: 3px solid #FBBF24;
	border-radius: 0 8px 8px 0;
	padding: 10px 14px;
	margin: 0 0 1rem;
	font-size: 14px;
	line-height: 1.6;
	color: #2A1B4A;
	font-weight: 500;
}

.evs-acc-row {
	padding: 5px 0;
	font-size: 14px;
	line-height: 1.55;
	color: #2A1B4A;
	font-weight: 600;
}

.evs-acc-link { color: #6B21A8; font-weight: 700; text-decoration: none; }
.evs-acc-link:hover { text-decoration: underline; }

.evs-acc-book-btn {
	display: inline-block;
	margin-top: 12px;
	background: #6B21A8;
	color: #fff;
	padding: 10px 20px;
	border-radius: 9999px;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	font-family: 'Nunito', sans-serif;
}

.evs-acc-book-btn:hover { background: #3B0764; color: #fff; }

/* ── Accessibility list (inside accordion) ────────────────────────────────── */

.evs-access-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }

.evs-access-row {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 700;
	padding: 6px 10px;
	border-radius: 10px;
}

.evs-access-row__icon { font-size: 16px; }
.evs-access-row--yes  { background: #F0FDF4; color: #14532D; }
.evs-access-row--no   { background: #FEF2F2; color: #7F1D1D; }

/* ── Sensory callout ──────────────────────────────────────────────────────── */

.evs-sensory-callout {
	background: linear-gradient(135deg, #FFFBEB 0%, #FFF7ED 100%);
	border: 2px solid #FCD34D;
	border-radius: 14px;
	padding: 10px 14px;
	font-size: 14px;
	line-height: 1.65;
	color: #78350F;
	margin-top: 8px;
}

.evs-sensory-callout strong { font-weight: 800; }

/* ── Chip sets (for accessibility needs inside accordion) ─────────────────── */

.evs-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.evs-chip {
	display: inline-block;
	padding: .3rem .82rem;
	border-radius: 9999px;
	font-size: .8rem;
	font-weight: 700;
}

.evs-chip--purple { background: var(--sp-purple-light); color: var(--sp-purple-dark); }
.evs-chip--type   { background: var(--sp-purple); color: #fff; }

/* ── Mid-page CTA ─────────────────────────────────────────────────────────── */

.evs-cta-mid {
	background: #3B0764;
	border-radius: 24px;
	padding: 20px 18px;
	color: #fff;
	position: relative;
	overflow: hidden;
}

.evs-cta-mid__eyebrow {
	font-size: 12px;
	font-weight: 800;
	color: #FBBF24;
	letter-spacing: .05em;
	margin-bottom: 4px;
}

.evs-cta-mid__headline {
	font-size: 18px;
	font-weight: 900;
	line-height: 1.25;
	margin-bottom: 14px;
}

.evs-cta-mid__btn {
	display: inline-block;
	background: #FBBF24;
	color: #3B0764;
	padding: 12px 22px;
	border-radius: 9999px;
	font-family: 'Nunito', sans-serif;
	font-size: 16px;
	font-weight: 900;
	text-decoration: none;
	box-shadow: 0 4px 0 #B68500;
	transition: transform .15s ease;
}

.evs-cta-mid__btn:hover { color: #3B0764; transform: translateY(-1px); }

/* ── Map embed ────────────────────────────────────────────────────────────── */

.evs-map-embed {
	margin-top: .85rem;
	border-radius: 14px;
	overflow: hidden;
	line-height: 0;
}

.evs-map-embed iframe {
	width: 100%;
	height: 240px;
	border: 0;
	display: block;
}

/* ── Venue card ───────────────────────────────────────────────────────────── */

.evs-venue-card {
	margin-top: 12px;
	background: #fff;
	border: 2px solid #F0E4D0;
	border-radius: 20px;
	overflow: hidden;
}

.evs-venue-card__map { height: 155px; overflow: hidden; line-height: 0; }
.evs-venue-card__map iframe { width: 100%; height: 155px; border: 0; display: block; }

.evs-venue-card__body { padding: 14px 14px 10px; }

.evs-venue-card__name { font-size: 16px; font-weight: 800; color: #2A1B4A; margin-bottom: 2px; }

.evs-venue-card__addr { font-size: 13px; color: #5B4A7A; font-weight: 600; line-height: 1.45; }

.evs-venue-card__maps-link {
	display: inline-block;
	margin-top: 8px;
	color: #6B21A8;
	font-weight: 800;
	font-size: 13px;
	text-decoration: none;
}

.evs-venue-card__maps-link:hover { text-decoration: underline; }

.evs-venue-card__site-link {
	display: block;
	margin-top: 0.5rem;
	font-size: 0.75rem;
	color: #6B7280;
	text-decoration: none;
}
.evs-venue-card__site-link:hover {
	color: #6B21A8;
	text-decoration: underline;
}

.evs-venue-card__organiser {
	border-top: 1.5px dashed #F0E4D0;
	padding: 12px 14px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.evs-venue-card__avatar {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: #F3E8FF;
	color: #6B21A8;
	display: grid;
	place-items: center;
	font-size: 13px;
	font-weight: 900;
	flex-shrink: 0;
}

.evs-venue-card__organiser-info { flex: 1; min-width: 0; }

.evs-venue-card__organiser-label {
	font-size: 10px;
	color: #5B4A7A;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.evs-venue-card__organiser-name { font-size: 14px; font-weight: 800; color: #2A1B4A; }

.evs-venue-card__verified {
	background: #DCFCE7;
	color: #15803D;
	padding: 4px 10px;
	border-radius: 9999px;
	font-size: 11px;
	font-weight: 800;
	white-space: nowrap;
}

/* ── Category tags ────────────────────────────────────────────────────────── */

.evs-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	padding: .75rem 0 .25rem;
}

.evs-tags__label {
	font-size: .68rem;
	font-weight: 900;
	color: var(--sp-purple);
	text-transform: uppercase;
	letter-spacing: .1em;
}

/* ── Source / verification footer ────────────────────────────────────────── */

.evs-source {
	margin-top: .5rem;
	font-size: .77rem;
	color: #9CA3AF;
	line-height: 1.6;
}

.evs-source a { color: #9CA3AF; }
.evs-source a:hover { color: var(--sp-purple); }

/* ── Suggested events ─────────────────────────────────────────────────────── */

.evs-suggested {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 2px solid #F0E4D0;
}

.evs-suggested__heading {
	font-family: 'Fredoka', 'Nunito', sans-serif;
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--sp-ink);
	margin: 0 0 1.25rem;
}

.evs-suggested__heading::before {
	content: '🐾 ';
}

.evs-suggested__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}

.evs-suggested__card {
	display: flex;
	flex-direction: column;
	border-radius: 12px;
	overflow: hidden;
	border: 1.5px solid #F0E4D0;
	background: #fff;
	text-decoration: none;
	color: var(--sp-ink);
	transition: box-shadow .15s, transform .15s;
}

.evs-suggested__card:hover {
	box-shadow: 0 4px 16px rgba(107,33,168,.12);
	transform: translateY(-2px);
}

.evs-suggested__img {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #F3E8FF;
}

.evs-suggested__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}

.evs-suggested__body {
	padding: .75rem 1rem 1rem;
	display: flex;
	flex-direction: column;
	gap: .3rem;
	flex: 1;
}

.evs-suggested__type {
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--sp-purple);
}

.evs-suggested__title {
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.35;
	margin: 0;
	color: var(--sp-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.evs-suggested__date,
.evs-suggested__recurring {
	font-size: .78rem;
	color: #6B7280;
	margin-top: auto;
	padding-top: .4rem;
}

.evs-suggested__organiser {
	font-size: .75rem;
	color: #9CA3AF;
}

@media (max-width: 900px) {
	.evs-suggested__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 500px) {
	.evs-suggested__grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
	.evs-suggested__title { font-size: .88rem; }
}

/* ── Mobile accordion padding ─────────────────────────────────────────────── */

@media (max-width: 480px) {
	.evs-acc-body__inner { padding-left: 16px; }
	.evs-hero__title     { font-size: 1.6rem; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   ACCESSIBLE PLACES — Archive & Cards (.senspot-places-grid, .senspot-place-card)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Archive layout ───────────────────────────────────────────────────────── */

.places-archive__hero {
	padding: 3rem 1.5rem 2.5rem;
}

.places-archive__content {
	padding: 2.5rem 1.5rem;
}

/* ── Places grid ──────────────────────────────────────────────────────────── */

.senspot-places-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}

/* ── Place card ───────────────────────────────────────────────────────────── */

.senspot-place-card {
	background: var(--sp-white);
	border-radius: var(--sp-radius-lg);
	box-shadow: var(--sp-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow var(--sp-transition), transform var(--sp-transition);
}

.senspot-place-card:hover {
	box-shadow: var(--sp-shadow-hover);
	transform: translateY(-3px);
}

.place-card__image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.place-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.senspot-place-card:hover .place-card__img {
	transform: scale(1.04);
}

.place-card__body {
	padding: 1.25rem 1.25rem 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	flex: 1;
}

.place-card__types {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.place-card__title {
	font-size: 1.1rem;
	font-weight: 900;
	margin: 0;
	line-height: 1.3;
}

.place-card__title a {
	color: var(--sp-purple-dark);
	text-decoration: none;
}

.place-card__title a:hover { color: var(--sp-purple); }

.place-card__location,
.place-card__hours {
	font-size: 0.875rem;
	color: #4B5563;
	margin: 0;
}

.place-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-top: 0.25rem;
}

.place-card__footer {
	margin-top: auto;
	padding-top: 0.75rem;
}

/* ── Place type tag variant ───────────────────────────────────────────────── */

.tag--place-type {
	background: var(--sp-purple-light);
	color: var(--sp-purple-dark);
	font-size: 0.72rem;
	font-weight: 800;
	padding: 0.2rem 0.6rem;
	border-radius: 9999px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.tag--access {
	background: #DBEAFE;
	color: #1E40AF;
	font-size: 0.75rem;
	font-weight: 700;
	padding: 0.2rem 0.6rem;
	border-radius: 9999px;
}

.tag--quiet {
	background: #F0FDF4;
	color: #166534;
	font-size: 0.75rem;
	font-weight: 700;
	padding: 0.2rem 0.6rem;
	border-radius: 9999px;
}

/* ── Places search bar ────────────────────────────────────────────────────── */

.places-search {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--sp-radius-lg);
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1.5rem;
}

.places-search__fields {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 1rem;
}

.places-search__field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.places-search__field label {
	font-size: 0.8rem;
	font-weight: 800;
	color: rgba(255, 255, 255, 0.75);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.places-search__field input,
.places-search__field select {
	width: 100%;
	padding: 0.65rem 0.9rem;
	border-radius: var(--sp-radius);
	border: none;
	font-family: 'Nunito', sans-serif;
	font-size: 0.95rem;
	background: rgba(255, 255, 255, 0.95);
	color: var(--sp-charcoal);
}

.places-search__actions {
	display: flex;
	gap: 1rem;
	align-items: center;
}

.places-search__btn {
	background: var(--sp-yellow);
	color: var(--sp-charcoal);
	display: inline-flex;
	align-items: center;
	padding: 0.75rem 2rem;
	border-radius: 9999px;
	font-family: 'Nunito', sans-serif;
	font-size: 1rem;
	font-weight: 800;
	border: none;
	cursor: pointer;
	transition: background var(--sp-transition), transform var(--sp-transition);
}

.places-search__btn:hover {
	background: #f0b520;
	transform: translateY(-1px);
}

.places-search__clear {
	font-size: 0.85rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.6);
	text-decoration: underline;
}

.places-search__clear:hover { color: var(--sp-white); }

@media (max-width: 768px) {
	.places-search__fields { grid-template-columns: 1fr; }
	.senspot-places-grid   { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SENNIE — EMPTY STATE (no events found)
   ═══════════════════════════════════════════════════════════════════════════ */

.senspot-no-events {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 3rem 1.5rem;
	text-align: center;
}

.senspot-no-events__sennie {
	width: 220px;
	max-width: 100%;
	margin-bottom: 1.25rem;
}

.senspot-no-events__text {
	font-size: 1.05rem;
	font-weight: 600;
	color: #4B5563;
	max-width: 420px;
}

.senspot-no-events__text a {
	color: var(--sp-purple);
	text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════════════════
   MEET SENNIE PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

.sennie-hero {
	padding: 5rem 1.5rem;
	background-image: linear-gradient(135deg, #2D0A55 0%, #6B21A8 65%, #7C3AED 100%);
}

.sennie-hero__label {
	margin-bottom: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.sennie-intro {
	padding: 4rem 1.5rem;
}

.sennie-intro__cols {
	gap: 3rem;
}

.sennie-intro__img figure,
.sennie-intro__img img {
	width: 100%;
	max-width: 420px;
	margin: 0 auto;
	display: block;
}

.sennie-values {
	padding: 4rem 1.5rem;
}

.sennie-values__cols {
	margin-top: 2.5rem;
	gap: 2rem;
}

.sennie-value {
	background: #fff;
	border-radius: 1rem;
	padding: 2rem 1.5rem 2.5rem;
	box-shadow: 0 2px 12px rgba(107, 33, 168, 0.08);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.sennie-value__img {
	margin: 0 auto 1.25rem !important;
}

.sennie-value__img img {
	width: 130px;
	height: 130px;
	object-fit: contain;
	margin: 0 auto;
	display: block;
	transition: transform 0.3s ease;
}

.sennie-value:hover .sennie-value__img img {
	transform: scale(1.08) rotate(-3deg);
}

.sennie-bsl {
	padding: 4.5rem 1.5rem;
}

.sennie-bsl__inner {
	text-align: center;
}

.sennie-bsl__img {
	margin: 1.5rem auto 0;
}

.sennie-bsl__img figure,
.sennie-bsl__img img {
	width: 280px;
	max-width: 100%;
	margin: 0 auto;
	display: block;
}

.sennie-cta {
	padding: 4.5rem 1.5rem;
	text-align: center;
	background-image: url('/wp-content/uploads/2026/04/Sennie-right.png');
	background-repeat: no-repeat;
	background-position: left 2% bottom;
	background-size: 220px auto;
}

.sennie-cta .wp-block-buttons {
	margin-top: 1.75rem;
	justify-content: center;
}

@media (max-width: 768px) {
	.sennie-intro__cols { flex-direction: column; }
	/* Hide Sennie decorative images on mobile to avoid crowding small screens */
	.events-hero__sennie-peek { display: none; }
	.sennie-cta { background-image: none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   404 PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

.page-404 {
	padding: 5rem 1.5rem;
	min-height: 60vh;
	display: flex;
	align-items: center;
}

.page-404__inner {
	text-align: center;
	width: 100%;
}

.page-404__sennie-img {
	margin: 0 auto 1.5rem !important;
}

.page-404__sennie-img img {
	width: 280px;
	max-width: 100%;
	margin: 0 auto;
	display: block;
	animation: sennie-wobble 3s ease-in-out infinite;
}

@keyframes sennie-wobble {
	0%, 100% { transform: rotate(-4deg); }
	50%       { transform: rotate(4deg); }
}

.page-404 h1 {
	margin-bottom: 1rem;
}

.page-404__links {
	margin: 2rem auto 1.5rem;
}

@media (max-width: 600px) {
	.page-404 { padding: 3rem 1.25rem; }
	.page-404__paw { font-size: 3.5rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   COSMIC WEBSITES BADGE
   ═══════════════════════════════════════════════════════════════════════════ */

.cw-badge {
	background-color: #2D0A55;
	text-align: center;
	padding: 0.6rem 1.5rem;
	border-top: 1px solid rgba(107, 33, 168, 0.4);
}

.cw-badge__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	text-decoration: none;
	color: #C4B5FD;
	font-family: 'Nunito', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	transition: color 0.2s ease;
}

.cw-badge__link:hover {
	color: #FBBF24;
}

.cw-badge__mark {
	font-size: 0.7rem;
	color: #6B21A8;
	transition: color 0.2s ease;
}

.cw-badge__link:hover .cw-badge__mark {
	color: #FBBF24;
}

.cw-badge__brand {
	color: #F3E8FF;
	font-weight: 800;
}

.cw-badge__link:hover .cw-badge__brand {
	color: #FBBF24;
}

/* ─── Header: Login / Account Buttons ───────────────────────────────────── */

.header-account-btn {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 1rem;
	border-radius: 9999px;
	font-weight: 700;
	font-size: 0.875rem;
	font-family: 'Nunito', sans-serif;
	text-decoration: none;
	transition: opacity var(--sp-transition), background var(--sp-transition);
	white-space: nowrap;
	color: var(--sp-white) !important;
	border: 2px solid rgba(255,255,255,0.4);
}
.header-account-btn:hover {
	border-color: var(--sp-white);
	opacity: 0.9;
}
.header-account-btn--register {
	background: var(--sp-yellow);
	color: var(--sp-charcoal) !important;
	border-color: var(--sp-yellow);
	margin-left: 0.4rem;
}
.header-account-btn--register:hover {
	opacity: 0.9;
	border-color: var(--sp-yellow);
}
.header-account-btn--in {
	background: rgba(255,255,255,0.15);
	border-color: rgba(255,255,255,0.5);
}
.header-account-btn--in:hover {
	background: rgba(255,255,255,0.25);
}

/* ─── Auth Pages (Login / Register / Forgot Password) ────────────────────── */

.page-auth {
	padding: 3rem 1rem 4rem;
}

.auth-wrap {
	max-width: 480px;
	margin: 0 auto;
	width: 100%;
}

.auth-card {
	background: var(--sp-white);
	border-radius: var(--sp-radius-lg);
	box-shadow: var(--sp-shadow);
	padding: 2.5rem 2rem;
}

.auth-card__heading {
	font-size: 1.75rem;
	font-weight: 900;
	color: var(--sp-charcoal);
	margin: 0 0 0.25rem;
}

.auth-card__sub {
	color: #6B7280;
	margin: 0 0 1.5rem;
}

.auth-card__errors {
	background: #FEF2F2;
	border: 1px solid #FECACA;
	border-radius: var(--sp-radius);
	padding: 0.75rem 1rem;
	margin-bottom: 1.25rem;
	color: #DC2626;
	font-size: 0.9rem;
}
.auth-card__errors p { margin: 0.2rem 0; }

.auth-card__type-toggle {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

.type-toggle__option {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.65rem 0.75rem;
	border: 2px solid #E5E7EB;
	border-radius: var(--sp-radius);
	cursor: pointer;
	font-weight: 700;
	font-size: 0.9rem;
	transition: border-color var(--sp-transition), background var(--sp-transition);
	user-select: none;
}
.type-toggle__option input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.type-toggle__option.is-active,
.type-toggle__option:has(input:checked) {
	border-color: var(--sp-purple);
	background: var(--sp-purple-light);
	color: var(--sp-purple);
}

.auth-card__fields-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}
@media (max-width: 480px) {
	.auth-card__fields-row { grid-template-columns: 1fr; }
}

.auth-card__field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	margin-bottom: 0.9rem;
}
.auth-card__field label {
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--sp-charcoal);
}
.auth-card__field input,
.dashboard__field input,
.dashboard__field select {
	padding: 0.6rem 0.9rem;
	border: 1.5px solid #D1D5DB;
	border-radius: var(--sp-radius);
	font-family: 'Nunito', sans-serif;
	font-size: 1rem;
	color: var(--sp-charcoal);
	transition: border-color var(--sp-transition);
	width: 100%;
	box-sizing: border-box;
}
.auth-card__field input:focus,
.dashboard__field input:focus {
	outline: 2px solid #6B21A8;
	outline-offset: 2px;
	border-color: var(--sp-purple);
}
.auth-card__password-wrap {
	position: relative;
	display: flex;
	align-items: center;
}
.auth-card__password-wrap input {
	padding-right: 4rem;
	flex: 1;
}
.auth-card__show-pass {
	position: absolute;
	right: 0.75rem;
	background: none;
	border: none;
	cursor: pointer;
	font-family: 'Nunito', sans-serif;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--sp-purple);
	padding: 0;
	line-height: 1;
}
.auth-card__show-pass:hover {
	text-decoration: underline;
}

.auth-card__hint {
	font-weight: 400;
	color: #6B7280;
	font-size: 0.82rem;
}

.auth-card__remember {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.9rem;
	margin-bottom: 1rem;
	cursor: pointer;
}

.auth-card__submit {
	width: 100%;
	justify-content: center;
	margin-top: 0.5rem;
}

.auth-card__footer {
	text-align: center;
	font-size: 0.9rem;
	color: #6B7280;
	margin: 1.25rem 0 0;
}

.auth-notice {
	text-align: center;
	padding: 2rem;
	color: #6B7280;
}

.auth-gate {
	text-align: center;
	padding: 3rem 1.5rem;
	color: #6B7280;
	font-size: 1.1rem;
}

/* ─── Event Card: Save Heart Button ─────────────────────────────────────── */

.event-card__footer {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.event-card__save {
	margin-left: auto;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 1.3rem;
	color: #D1D5DB;
	line-height: 1;
	padding: 0.2rem 0.3rem;
	transition: color var(--sp-transition), transform var(--sp-transition);
	border-radius: 50%;
}
.event-card__save:hover {
	color: var(--sp-purple);
	transform: scale(1.2);
}
.event-card__save.is-saved {
	color: var(--sp-purple);
}

/* ─── Verified Organiser Badge ───────────────────────────────────────────── */

.tag--verified {
	background: #D1FAE5;
	color: #065F46;
	border-radius: 9999px;
	padding: 0.2rem 0.6rem;
	font-size: 0.78rem;
	font-weight: 700;
	white-space: nowrap;
}

/* ─── Dashboard Layout ───────────────────────────────────────────────────── */

.page-dashboard {
	padding: 2rem 1rem 4rem;
}

.dashboard__notice {
	border-radius: var(--sp-radius);
	padding: 0.85rem 1.1rem;
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
}
.dashboard__notice--success { background: #D1FAE5; color: #065F46; }
.dashboard__notice--warn    { background: #FEF9C3; color: #92400E; }
.dashboard__notice--info    { background: var(--sp-purple-light); color: var(--sp-purple-dark); }

.dashboard__inner {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 2rem;
	align-items: start;
}
@media (max-width: 768px) {
	.dashboard__inner { grid-template-columns: 1fr; }
}

.dashboard__tab-nav {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	position: sticky;
	top: 80px;
}
@media (max-width: 768px) {
	.dashboard__tab-nav {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		position: static;
		gap: 0.5rem;
		padding-bottom: 0.25rem;
	}
}

.dashboard__tab {
	display: block;
	padding: 0.65rem 1rem;
	border-radius: var(--sp-radius);
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--sp-charcoal);
	text-decoration: none;
	transition: background var(--sp-transition), color var(--sp-transition);
	white-space: nowrap;
}
.dashboard__tab:hover {
	background: var(--sp-purple-light);
	color: var(--sp-purple);
}
.dashboard__tab.is-active {
	background: var(--sp-purple);
	color: var(--sp-white);
}

.dashboard__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--sp-yellow);
	color: var(--sp-charcoal);
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 800;
	padding: 0 0.45rem;
	min-width: 1.25rem;
	height: 1.25rem;
	margin-left: 0.35rem;
	vertical-align: middle;
}

.dashboard__panel {
	background: var(--sp-white);
	border-radius: var(--sp-radius-lg);
	box-shadow: var(--sp-shadow);
	padding: 2rem;
}
.dashboard__panel h2 {
	font-size: 1.4rem;
	font-weight: 900;
	margin: 0 0 1.5rem;
	color: var(--sp-charcoal);
}

.dashboard__form {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}

.dashboard__fields-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
	margin-bottom: 0.9rem;
}
@media (max-width: 560px) {
	.dashboard__fields-row { grid-template-columns: 1fr; }
}

.dashboard__field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	margin-bottom: 0.9rem;
}
.dashboard__field label {
	font-weight: 700;
	font-size: 0.9rem;
}
.dashboard__input--disabled {
	background: #F3F4F6;
	color: #9CA3AF;
	cursor: not-allowed;
}

.dashboard__subheading {
	font-size: 1.05rem;
	font-weight: 800;
	margin: 1.25rem 0 0.75rem;
	color: var(--sp-charcoal);
}

.dashboard__save {
	margin-top: 1rem;
	align-self: flex-start;
}

.dashboard__add-child {
	margin-top: 0.25rem;
	margin-bottom: 1rem;
}

.dashboard__organiser-upgrade {
	margin-top: 2rem;
	padding: 1.25rem 1.5rem;
	background: var(--sp-purple-light);
	border-radius: var(--sp-radius);
	border-left: 4px solid var(--sp-purple);
}
.dashboard__organiser-upgrade p {
	color: #4B5563;
	font-size: 0.95rem;
	margin: 0.4rem 0 1rem;
}

.dashboard__danger-zone {
	margin-top: 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid #E5E7EB;
}

.dashboard__empty {
	text-align: center;
	padding: 2.5rem;
	color: #6B7280;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.dashboard__edit-profile {
	margin-top: 1rem;
}

/* ─── Child Profile List ─────────────────────────────────────────────────── */

.child-profile-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}
.child-profile-list__item {
	display: grid;
	grid-template-columns: 1fr 80px 32px;
	gap: 0.5rem;
	align-items: center;
}
.child-profile-list__item input {
	padding: 0.55rem 0.75rem;
	border: 1.5px solid #D1D5DB;
	border-radius: var(--sp-radius);
	font-family: 'Nunito', sans-serif;
	font-size: 0.95rem;
}
.child-profile-list__remove {
	background: none;
	border: none;
	color: #9CA3AF;
	font-size: 1.2rem;
	cursor: pointer;
	padding: 0;
	line-height: 1;
	transition: color var(--sp-transition);
}
.child-profile-list__remove:hover { color: #DC2626; }

/* ─── Notification Preferences ──────────────────────────────────────────── */

.notif-prefs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}
.notif-prefs__option {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	cursor: pointer;
	padding: 0.45rem 0.9rem;
	border: 1.5px solid #E5E7EB;
	border-radius: 9999px;
	font-size: 0.9rem;
	font-weight: 600;
	transition: border-color var(--sp-transition), background var(--sp-transition);
}
.notif-prefs__option input { position: absolute; opacity: 0; pointer-events: none; }
.notif-prefs__option:has(input:checked) {
	border-color: var(--sp-purple);
	background: var(--sp-purple-light);
	color: var(--sp-purple);
}

/* ─── Accessibility Profile Summary ─────────────────────────────────────── */

.access-profile-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

/* ─── My Listings Table ──────────────────────────────────────────────────── */

.my-listings {
	background: var(--sp-white);
	border-radius: var(--sp-radius-lg);
	box-shadow: var(--sp-shadow);
	padding: 2rem;
}
.my-listings__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
	gap: 1rem;
}
.my-listings__header h2 {
	font-size: 1.4rem;
	font-weight: 900;
	margin: 0;
}
.my-listings__table {
	display: grid;
	gap: 0;
}
.my-listings__table-head,
.my-listings__table-row {
	display: grid;
	grid-template-columns: 2fr 120px 120px 90px 130px;
	gap: 1rem;
	padding: 0.75rem 0.5rem;
	align-items: center;
}
@media (max-width: 700px) {
	.my-listings__table-head { display: none; }
	.my-listings__table-row {
		grid-template-columns: 1fr;
		border: 1px solid #E5E7EB;
		border-radius: var(--sp-radius);
		margin-bottom: 0.75rem;
		padding: 0.9rem;
	}
}
.my-listings__table-head {
	font-weight: 800;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #9CA3AF;
	border-bottom: 1.5px solid #E5E7EB;
}
.my-listings__table-row {
	border-bottom: 1px solid #F3F4F6;
}
.my-listings__table-row:last-child { border-bottom: none; }
.my-listings__title a {
	font-weight: 700;
	color: var(--sp-charcoal);
	text-decoration: none;
}
.my-listings__title a:hover { color: var(--sp-purple); }
.my-listings__status {
	display: inline-flex;
	padding: 0.2rem 0.6rem;
	border-radius: 9999px;
	font-size: 0.8rem;
	font-weight: 700;
}
.my-listings__status--publish { background: #D1FAE5; color: #065F46; }
.my-listings__status--draft   { background: #FEF9C3; color: #92400E; }
.my-listings__status--pending { background: var(--sp-purple-light); color: var(--sp-purple-dark); }
.my-listings__actions {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}
.my-listings__edit {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--sp-purple);
	text-decoration: none;
}
.my-listings__edit:hover { text-decoration: underline; }
.my-listings__delete {
	background: none;
	border: none;
	color: #DC2626;
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
	font-family: 'Nunito', sans-serif;
	padding: 0;
}
.my-listings__delete:hover { text-decoration: underline; }

/* ─── Sennie Wizard ──────────────────────────────────────────────────────── */

.wizard {
	width: 100%;
}
.wizard__progress-wrap {
	height: 6px;
	background: #E5E7EB;
	border-radius: 9999px;
	margin-bottom: 0.5rem;
	overflow: hidden;
}
.wizard__progress {
	height: 100%;
	background: var(--sp-purple);
	border-radius: 9999px;
	transition: width 0.3s ease;
}
.wizard__step-label {
	font-size: 0.85rem;
	color: #9CA3AF;
	font-weight: 600;
	margin: 0 0 1.5rem;
}
.wizard__step {
	display: none;
}
.wizard__step.is-active {
	display: block;
}
.wizard__question {
	font-size: 1.35rem;
	font-weight: 900;
	color: var(--sp-charcoal);
	margin: 0 0 0.5rem;
}
.wizard__hint {
	color: #6B7280;
	margin: 0 0 1.25rem;
	font-size: 0.95rem;
}
/* Sennie speech bubble */
.wizard__sennie {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}
.wizard__sennie-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	flex-shrink: 0;
	background: var(--sp-purple);
	color: var(--sp-white);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: 1.1rem;
}
.wizard__sennie-bubble {
	background: var(--sp-purple-light);
	border-radius: var(--sp-radius);
	border-bottom-left-radius: 4px;
	padding: 0.75rem 1rem;
	font-size: 0.95rem;
	color: var(--sp-charcoal);
	flex: 1;
}

.wizard__choices {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}
@media (max-width: 480px) {
	.wizard__choices { grid-template-columns: 1fr; }
}
.wizard__choices .access-chip {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	padding: 0.75rem 1rem;
	border: 2px solid #E5E7EB;
	border-radius: var(--sp-radius);
	font-size: 0.9rem;
	width: 100%;
	white-space: normal;
	color: var(--sp-charcoal);
	background: var(--sp-white);
}
.wizard__choices .access-chip:hover {
	border-color: var(--sp-purple);
	background: var(--sp-white);
	color: var(--sp-charcoal);
}
.wizard__choices .access-chip[data-state="must"] {
	border-color: var(--sp-purple);
	background: var(--sp-purple);
	color: var(--sp-white);
}
.wizard__choices .access-chip[data-state="nice"] {
	border-color: var(--sp-purple);
	background: var(--sp-purple-light);
	color: var(--sp-purple);
}
.wizard__choices .access-chip__icon {
	font-size: 1rem;
	font-weight: 900;
	min-width: 1rem;
}
.wizard__choices .access-chip__name {
	flex: 1;
}
.wizard__choices .access-chip__level-label {
	font-size: 0.75rem;
	font-weight: 600;
	opacity: 0.8;
	min-height: 1em;
}
.wizard__add-child {
	margin-top: 0.5rem;
	margin-bottom: 1.5rem;
}
.wizard__nav {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 1rem;
}
.wizard__skip-all {
	font-size: 0.85rem;
	padding: 0.5rem 1rem;
	color: #9CA3AF;
	border-color: #E5E7EB;
}

/* Nice-to-have match badge on event cards */
.event-card__nice-match {
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--sp-purple);
	background: var(--sp-purple-light);
	border-radius: 9999px;
	padding: 0.15rem 0.55rem;
	white-space: nowrap;
}

/* Accessibility profile section labels */
.access-profile-label {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #9CA3AF;
	margin: 0.75rem 0 0.4rem;
}
.access-profile-label:first-child { margin-top: 0; }
.event-chip--nice {
	background: var(--sp-purple-light);
	color: var(--sp-purple);
	border: 1px solid var(--sp-purple-mid);
}

/* ═══════════════════════════════════════════════════════════
   PERSONALISED FILTER — Notice, Toggle, Collapsible, Nudge
   ═══════════════════════════════════════════════════════════ */

.senspot-filter-notice {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.75rem;
	background: rgba(168, 85, 247, 0.18);
	border: 1px solid rgba(168, 85, 247, 0.4);
	border-radius: var(--sp-radius);
	padding: 0.85rem 1.1rem;
	color: var(--sp-white);
	font-size: 0.9rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
}
.senspot-filter-notice__text { flex: 1; min-width: 0; }

.senspot-filter-toggle {
	flex-shrink: 0;
	background: transparent;
	border: 1.5px solid rgba(255, 255, 255, 0.45);
	border-radius: 9999px;
	color: var(--sp-white);
	font-family: 'Nunito', sans-serif;
	font-size: 0.82rem;
	font-weight: 800;
	padding: 0.35rem 1rem;
	cursor: pointer;
	transition: background var(--sp-transition), border-color var(--sp-transition);
	white-space: nowrap;
}
.senspot-filter-toggle:hover,
.senspot-filter-toggle:focus-visible {
	background: rgba(255, 255, 255, 0.12);
	border-color: var(--sp-white);
	outline: 2px solid #FBBF24;
	outline-offset: 2px;
}

.senspot-filter-collapsible--hidden { display: none; }

.senspot-login-nudge {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: space-between;
	background: rgba(251, 191, 36, 0.15);
	border: 1px solid rgba(251, 191, 36, 0.4);
	border-radius: var(--sp-radius);
	padding: 0.85rem 1.1rem;
	color: var(--sp-white);
	font-size: 0.9rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
}
.senspot-login-nudge__link {
	flex-shrink: 0;
	background: var(--sp-yellow);
	color: var(--sp-charcoal);
	font-weight: 800;
	font-size: 0.82rem;
	padding: 0.35rem 1rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: background var(--sp-transition);
	white-space: nowrap;
}
.senspot-login-nudge__link:hover { background: #f0b520; color: var(--sp-charcoal); }

/* ── Discount Cards Hub (dch-*) ──────────────────────────────────────────── */

.dch-wrap { max-width: 1200px; margin: 0 auto; padding: 1.5rem 1rem 3rem; }

.dch-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 2rem;
}

.dch-filter-btn {
	padding: 0.45rem 1.1rem;
	border-radius: 9999px;
	border: 2px solid var(--sp-purple);
	background: transparent;
	color: var(--sp-purple);
	font-weight: 700;
	font-size: 0.85rem;
	cursor: pointer;
	font-family: inherit;
	transition: background var(--sp-transition), color var(--sp-transition);
}
.dch-filter-btn:hover,
.dch-filter-btn.is-active {
	background: var(--sp-purple);
	color: #fff;
}

.dch-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
@media (max-width: 900px) { .dch-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .dch-grid { grid-template-columns: 1fr; } }

.dch-card {
	background: #fff;
	border-radius: var(--sp-radius-lg);
	border: 1.5px solid #F0E4D0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: var(--sp-shadow);
	transition: box-shadow var(--sp-transition), transform var(--sp-transition);
}
.dch-card:hover { box-shadow: var(--sp-shadow-hover); transform: translateY(-2px); }

.dch-card__img {
	height: 140px;
	background: var(--sp-purple-light);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.dch-card__img img { width: 100%; height: 100%; object-fit: cover; }
.dch-card__img-placeholder { font-size: 3rem; }

.dch-card__body {
	padding: 1.2rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	flex: 1;
}
.dch-card__title { font-size: 1.05rem; font-weight: 800; color: var(--sp-purple-dark); margin: 0; }
.dch-card__issuer { font-size: 0.8rem; color: #6B6B8A; margin: 0; }
.dch-card__summary { font-size: 0.85rem; color: #444; margin: 0; flex: 1; }

.dch-card__chips { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.dch-chip {
	padding: 0.2rem 0.7rem;
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 700;
}
.dch-chip--free  { background: #D1FAE5; color: #065F46; }
.dch-chip--paid  { background: #FEF9C3; color: #92400E; }
.dch-chip--scope { background: var(--sp-purple-light); color: var(--sp-purple-dark); }

.dch-card__cta {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.5rem 1.1rem;
	background: var(--sp-yellow);
	color: var(--sp-charcoal);
	border-radius: 9999px;
	font-weight: 800;
	font-size: 0.85rem;
	text-decoration: none;
	text-align: center;
	transition: background var(--sp-transition);
}
.dch-card__cta:hover { background: #f0b520; color: var(--sp-charcoal); }

.dch-empty { color: #6B7280; font-style: italic; padding: 1rem 0; }

/* ── Discount Card Single (dcs-*) ────────────────────────────────────────── */

.dcs-layout {
	display: grid;
	grid-template-columns: 340px 1fr;
	gap: 2.5rem;
	align-items: start;
	padding: 2rem 0 3rem;
}
@media (max-width: 1024px) {
	.dcs-layout { grid-template-columns: 1fr; }
}

.dcs-col--left {
	position: sticky;
	top: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
@media (max-width: 1024px) { .dcs-col--left { position: static; } }

/* Hero card */
.dcs-hero {
	background: linear-gradient(135deg, var(--sp-purple-dark) 0%, var(--sp-purple) 100%);
	border-radius: var(--sp-radius-lg);
	padding: 1.5rem;
	color: #fff;
	text-align: center;
}
.dcs-hero__logo { margin-bottom: 1rem; }
.dcs-hero__logo img { max-height: 80px; border-radius: 8px; background: #fff; padding: 0.5rem; }
.dcs-hero__title { font-size: 1.4rem; font-weight: 900; margin: 0 0 0.3rem; color: #fff; }
.dcs-hero__issuer { font-size: 0.85rem; opacity: 0.85; margin: 0 0 0.8rem; }
.dcs-sennie-bubble {
	display: inline-block;
	background: rgba(255,255,255,0.15);
	border-radius: 9999px;
	padding: 0.3rem 0.9rem;
	font-size: 0.8rem;
	font-weight: 700;
}

/* Facts grid */
.dcs-facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}
.dcs-fact {
	border-radius: var(--sp-radius);
	padding: 0.75rem 0.9rem;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}
.dcs-fact--cost  { background: #EDE9FE; }
.dcs-fact--who   { background: #FFFBEB; }
.dcs-fact--valid { background: #D1FAE5; }
.dcs-fact--scope { background: var(--sp-purple-light); }
.dcs-fact__label { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.7; }
.dcs-fact__value { font-size: 0.85rem; font-weight: 700; color: #2A1B4A; }

/* CTA */
.dcs-cta {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.dcs-cta__btn {
	display: block;
	padding: 0.85rem 1.5rem;
	background: var(--sp-yellow);
	color: var(--sp-charcoal);
	border-radius: 9999px;
	font-weight: 900;
	font-size: 1rem;
	text-align: center;
	text-decoration: none;
	transition: background var(--sp-transition);
}
.dcs-cta__btn:hover { background: #f0b520; color: var(--sp-charcoal); }
.dcs-cta__secondary {
	text-align: center;
	font-size: 0.82rem;
	color: var(--sp-purple);
	font-weight: 600;
}
.dcs-cta--bottom { margin-top: 2rem; }
.dcs-cta--bottom .dcs-cta__nudge {
	font-weight: 800;
	font-size: 1.1rem;
	color: var(--sp-purple-dark);
	margin: 0;
	text-align: center;
}

/* Content */
.dcs-content h2 {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--sp-purple-dark);
	margin: 1.8rem 0 0.6rem;
	padding-top: 1.5rem;
	border-top: 1.5px solid #F0E4D0;
}
.dcs-content h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.dcs-content p { line-height: 1.7; color: #2A1B4A; }

/* ── Discount card multi-select dropdown ─────────────────────────────── */
.ev-discount-dropdown { position: relative; display: inline-block; }

.ev-discount-dropdown__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.9rem;
	border: 1.5px solid #D8B4FE;
	border-radius: 9999px;
	background: #fff;
	color: #3B0764;
	font: inherit;
	font-size: 0.875rem;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.15s, background 0.15s;
}
.ev-discount-dropdown__trigger[data-active="true"],
.ev-discount-dropdown__trigger[aria-expanded="true"] {
	background: #F3E8FF;
	border-color: #7C3AED;
}
.ev-discount-dropdown__trigger:hover { border-color: #7C3AED; }
.ev-discount-dropdown__count { font-weight: 700; color: #7C3AED; }
.ev-discount-dropdown__arrow { font-size: 0.75rem; }

.ev-discount-dropdown__panel {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	z-index: 200;
	min-width: 260px;
	max-height: 320px;
	overflow-y: auto;
	background: #fff;
	border: 1.5px solid #D8B4FE;
	border-radius: 0.75rem;
	padding: 0.75rem;
	box-shadow: 0 4px 16px rgba(107,33,168,0.12);
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.ev-discount-dropdown__panel[hidden] { display: none; }
.ev-discount-dropdown__option {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.35rem 0.5rem;
	border-radius: 0.5rem;
	font-size: 0.875rem;
	color: #3B0764;
	cursor: pointer;
}
.ev-discount-dropdown__option:hover { background: #F3E8FF; }

/* ── Card page events carousel ───────────────────────────────────────── */
.dcs-events { margin-top: 2.5rem; }

.dcs-events__heading {
	font-size: 1.2rem;
	font-weight: 700;
	color: #2A1B4A;
	margin-bottom: 1rem;
}
.dcs-events__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1rem;
}
.dcs-event-card { box-shadow: 0 2px 8px rgba(107,33,168,0.08); }
.dcs-events__see-all {
	display: inline-block;
	margin-top: 1.25rem;
	color: #6B21A8;
	font-weight: 600;
	text-decoration: underline;
}
.dcs-events__see-all:hover { color: #4C1D95; }
.ev-discount-dropdown__option input[type="checkbox"] { accent-color: #7C3AED; cursor: pointer; }

/* =============================================
   Radius Search
   ============================================= */

/* Hide legacy town/area field */
.event-search__field--location-hidden {
	display: none;
}

/* Postcode input — uppercase display */
.ev-postcode-input {
	text-transform: uppercase;
}
.ev-postcode-input::placeholder {
	text-transform: none;
}

/* Radius slider field layout */
.event-search__field--radius {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ev-radius-slider {
	width: 100%;
	accent-color: #FBBF24;
	cursor: pointer;
	height: 6px;
}

.ev-show-all-uk {
	font-size: 0.78rem;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: underline;
	cursor: pointer;
	align-self: flex-start;
	background: none;
	border: none;
	padding: 0;
}
.ev-show-all-uk:hover { color: #ffffff; }

/* ─── Results bar (summary + compact location) ───────────────────────────── */

.ev-results-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 10px 0 6px;
}

.ev-radius-summary {
	font-size: 0.88rem;
	color: #2A1B4A;
	margin: 0;
	flex-shrink: 0;
}

.ev-quick-location {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.ev-quick-location__postcode {
	width: 90px;
	padding: 5px 8px;
	border: 1.5px solid #D8B4FE;
	border-radius: 6px;
	font-size: 0.82rem;
	font-family: inherit;
	color: #2A1B4A;
	text-transform: uppercase;
}

.ev-quick-location__postcode:focus {
	outline: 2px solid #6B21A8;
	outline-offset: 2px;
	border-color: #6B21A8;
}

.ev-quick-location__range {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
}

.ev-quick-location__range-label {
	font-size: 0.75rem;
	color: #6B7280;
	white-space: nowrap;
}

.ev-quick-location__radius {
	width: 90px;
	accent-color: #6B21A8;
	cursor: pointer;
}

.ev-quick-location__btn {
	padding: 5px 12px;
	background: var(--sp-purple);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 0.82rem;
	font-weight: 700;
	font-family: inherit;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--sp-transition);
}

.ev-quick-location__btn:hover { background: var(--sp-purple-dark); }

.ev-back-to-filter {
	font-size: 0.8rem;
	color: #6B21A8;
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
}

.ev-back-to-filter:hover { text-decoration: underline; color: #3B0764; }

@media (max-width: 700px) {
	.ev-results-bar { flex-direction: column; align-items: flex-start; }
}

/* Distance chip on event cards */
.event-card__distance {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.72rem;
	font-weight: 700;
	background: #EDE9FE;
	color: #6B21A8;
	border-radius: 999px;
	padding: 2px 10px;
	margin-top: 4px;
}

/* Empty state / Sennie prompt */
.ev-empty-state {
	text-align: center;
	padding: 48px 24px;
	color: #2A1B4A;
	font-size: 1.05rem;
	line-height: 1.6;
}
.ev-empty-state a {
	color: #6B21A8;
	font-weight: 700;
	text-decoration: underline;
}
.ev-empty-state a:hover { color: #4C1D95; }

/* ═══════════════════════════════════════════════════════════════════
   EVENT SUBMISSION FORM  (esf-*)
═══════════════════════════════════════════════════════════════════ */

.esf-errors {
	background: #FEE2E2;
	border: 1.5px solid #EF4444;
	border-radius: 10px;
	padding: 14px 18px;
	margin-bottom: 1.5rem;
	color: #7F1D1D;
	font-size: 14px;
}
.esf-errors ul { margin: 6px 0 0 18px; padding: 0; }
.esf-errors li { margin: 3px 0; }

.esf-form { max-width: 740px; }

.esf-section {
	background: #fff;
	border: 1.5px solid #E5D8F5;
	border-radius: 14px;
	padding: 24px 28px;
	margin-bottom: 1.5rem;
}
.esf-section__title {
	font-size: 18px;
	font-weight: 800;
	color: #6B21A8;
	margin: 0 0 1.1rem;
	padding-bottom: 10px;
	border-bottom: 2px solid #F3E8FF;
}
.esf-section__note {
	font-size: 13px;
	color: #6B7280;
	margin: -6px 0 1rem;
}

.esf-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 20px;
}
.esf-row .esf-field--third { grid-column: span 1; }

.esf-field { margin-bottom: 1rem; }
.esf-field--full { grid-column: 1 / -1; }
.esf-field--half { }
.esf-field--third { }

.esf-field label {
	display: block;
	font-size: 13.5px;
	font-weight: 700;
	color: #2A1B4A;
	margin-bottom: 5px;
}
.esf-req { color: #DC2626; margin-left: 2px; }
.esf-help {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: #6B7280;
	margin-top: 1px;
}

.esf-field input[type="text"],
.esf-field input[type="email"],
.esf-field input[type="tel"],
.esf-field input[type="url"],
.esf-field input[type="number"],
.esf-field input[type="date"],
.esf-field input[type="time"],
.esf-field select,
.esf-field textarea {
	width: 100%;
	padding: 9px 12px;
	border: 1.5px solid #D1C4E9;
	border-radius: 8px;
	font-family: 'Nunito', sans-serif;
	font-size: 14px;
	color: #2A1B4A;
	background: #FAFAFA;
	transition: border-color .15s;
	box-sizing: border-box;
}
.esf-field input:focus,
.esf-field select:focus,
.esf-field textarea:focus {
	outline: 2px solid #6B21A8;
	outline-offset: 2px;
	border-color: #6B21A8;
	background: #fff;
}

.esf-checkbox-label {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14px;
	font-weight: 600;
	color: #2A1B4A;
	cursor: pointer;
}
.esf-checkbox-label input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: #6B21A8;
	flex-shrink: 0;
}

.esf-section--submit {
	background: #F3E8FF;
	border-color: #C4B5FD;
	text-align: center;
}
.esf-privacy {
	font-size: 12.5px;
	color: #6B7280;
	margin-bottom: 1rem;
}
.esf-submit-btn { min-width: 240px; }

.page-id-7 .page-hero { display: none; }

.esf-success {
	background: linear-gradient(135deg, #6B21A8 0%, #9333EA 100%);
	border-radius: 18px;
	padding: 48px 36px;
	text-align: center;
	color: #fff;
	max-width: 540px;
	margin: 0 auto;
}
.esf-success__icon { font-size: 48px; margin-bottom: 12px; }
.esf-success__sennie { display: block; margin: 0 auto 16px; max-width: 220px; width: 100%; }
.esf-success h2 { font-size: 28px; font-weight: 900; color: #fff; margin: 0 0 .75rem; }
.esf-success p { font-size: 16px; opacity: .9; margin: 0 0 1.5rem; }
.esf-success__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.esf-success__actions .btn--primary { background: #FBBF24; color: #3B0764; border-color: #FBBF24; }
.esf-success__actions .btn--primary:hover { background: #F59E0B; border-color: #F59E0B; }
.esf-success__actions .btn--ghost { border-color: #fff; color: #fff; }
.esf-success__actions .btn--ghost:hover { background: rgba(255,255,255,0.15); }

/* My Listings status chips */
.my-listings__status--pending   { background: #FEF3C7; color: #92400E; }
.my-listings__status--rejected  { background: #FEE2E2; color: #991B1B; }
.my-listings__status--publish   { background: #D1FAE5; color: #065F46; }

@media (max-width: 640px) {
	.esf-row { grid-template-columns: 1fr; }
	.esf-section { padding: 18px 16px; }
	.esf-submit-btn { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Filter v2 — fv2-* component system
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  --fv2-chip-want-bg:    #FFF3CD;
  --fv2-chip-want-text:  #92600A;
  --fv2-chip-want-border:#FBBF24;
  --fv2-chip-need-shadow:0 2px 8px rgba(251,191,36,0.5);
}

/* ── Wrapper ─────────────────────────────────────────────────────────────── */
.fv2-filter {
  max-width: 860px;
  margin: 0 auto;
  font-family: 'Nunito', sans-serif;
}

/* ── Mode toggle ─────────────────────────────────────────────────────────── */
.fv2-mode-toggle {
  display: flex;
  background: var(--sp-purple-light);
  border-radius: 50px;
  padding: 4px;
  gap: 4px;
  margin-bottom: 24px;
  width: fit-content;
}
.fv2-mode-toggle__btn {
  padding: 10px 24px;
  border-radius: 50px;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  color: var(--sp-purple);
  cursor: pointer;
  transition: var(--sp-transition);
}
.fv2-mode-toggle__btn[aria-selected="true"] {
  background: var(--sp-purple);
  color: #ffffff;
}

/* ── Hint banner ─────────────────────────────────────────────────────────── */
.fv2-hint {
  border: 2px dashed #0D9488;
  border-radius: var(--sp-radius);
  padding: 14px 18px;
  margin-bottom: 12px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.fv2-hint__text { color: #0D9488; font-size: 0.9rem; margin: 0; }
.fv2-hint__dismiss {
  background: none;
  border: none;
  font-size: 1.1rem;
  cursor: pointer;
  color: #0D9488;
  padding: 0;
  flex-shrink: 0;
}

/* ── Skip bail-out ───────────────────────────────────────────────────────── */
.fv2-skip {
  border: 2px dashed #0D9488;
  border-radius: var(--sp-radius);
  padding: 12px 18px;
  margin-bottom: 20px;
  color: #0D9488;
  font-size: 0.9rem;
}
.fv2-skip a { color: #0D9488; font-weight: 700; }

/* ── Active tray ─────────────────────────────────────────────────────────── */
.fv2-tray {
  background: var(--sp-purple-light);
  border-radius: var(--sp-radius);
  padding: 14px 18px;
  margin-bottom: 20px;
}
.fv2-tray__heading {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--sp-purple);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
.fv2-tray__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.fv2-tray__chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 50px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  border: none;
  font-family: inherit;
}
.fv2-tray__chip--need { background: var(--sp-yellow); color: var(--sp-charcoal); }
.fv2-tray__chip--want { background: var(--fv2-chip-want-bg); color: var(--fv2-chip-want-text); border: 1.5px solid var(--fv2-chip-want-border); }
.fv2-tray__chip__remove { font-size: 1rem; line-height: 1; }
.fv2-tray__clear {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--sp-purple);
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  font-family: inherit;
}

/* ── Tri-state chips ─────────────────────────────────────────────────────── */
.fv2-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  min-height: 44px;
  border-radius: 50px;
  border: 2px solid #E9D5FF;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--sp-transition);
  background: #ffffff;
  color: var(--sp-charcoal);
  white-space: nowrap;
  position: relative;
}
.fv2-chip:hover { border-color: var(--sp-purple); }
.fv2-chip:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--sp-charcoal);
  color: #fff;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  white-space: nowrap;
  pointer-events: none;
  z-index: 10;
}
.fv2-chip[data-priority="want"] {
  background: var(--fv2-chip-want-bg);
  color: var(--fv2-chip-want-text);
  border-color: var(--fv2-chip-want-border);
}
.fv2-chip[data-priority="need"] {
  background: var(--sp-yellow);
  color: var(--sp-charcoal);
  border-color: transparent;
  box-shadow: var(--fv2-chip-need-shadow);
}
.fv2-chip__icon { font-size: 0.95rem; }
@keyframes fv2-pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}
.fv2-chip--pulse { animation: fv2-pulse 0.3s ease; }
.fv2-chip--unavailable {
  opacity: 0.4;
  background: #F3F4F6 !important;
  color: #9CA3AF !important;
  border-color: #E5E7EB !important;
  box-shadow: none !important;
  cursor: not-allowed;
}
.fv2-chip--unavailable .fv2-chip__icon { display: none; }

/* ── Chip groups grid ────────────────────────────────────────────────────── */
.fv2-chips-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.fv2-chip-group { padding: 16px 20px; border-top: 1px solid #F3E8FF; }
.fv2-chip-group:first-of-type { border-top: none; }
.fv2-chip-group__label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--sp-purple);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}

/* ── Location row ────────────────────────────────────────────────────────── */
.fv2-location-row {
  display: grid;
  grid-template-columns: 180px 1fr auto;
  gap: 16px;
  align-items: end;
  background: #ffffff;
  border-radius: var(--sp-radius);
  padding: 18px;
  box-shadow: var(--sp-shadow);
  margin-bottom: 24px;
}
.fv2-location-row__field { display: flex; flex-direction: column; gap: 6px; }
.fv2-location-row__label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--sp-purple);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.fv2-location-row input[type="text"],
.fv2-location-row select {
  border: 2px solid #E9D5FF;
  border-radius: 8px;
  padding: 9px 12px;
  font-family: inherit;
  font-size: 0.95rem;
  color: var(--sp-charcoal);
  background: #ffffff;
}
.fv2-location-row input[type="text"]:focus,
.fv2-location-row select:focus { border-color: var(--sp-purple); outline: 2px solid #6B21A8; outline-offset: 2px; }
.fv2-location-row input[type="range"] { width: 100%; accent-color: var(--sp-purple); margin-top: 4px; }
#fv2-radius-label { font-size: 0.85rem; font-weight: 700; color: var(--sp-charcoal); }
.fv2-show-all {
  font-size: 0.78rem;
  color: var(--sp-purple);
  text-decoration: underline;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  white-space: nowrap;
  margin-top: 4px;
  display: block;
}
@media (max-width: 640px) {
  .fv2-location-row { grid-template-columns: 1fr; }
}


/* ── Sticky footer CTA ───────────────────────────────────────────────────── */
.fv2-footer {
  position: sticky;
  bottom: 18px;
  background: var(--sp-charcoal);
  border-radius: 50px;
  padding: 14px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  box-shadow: 0 8px 32px rgba(30, 27, 75, 0.35);
  z-index: 100;
  margin-top: 24px;
}
.fv2-footer__count { color: #ffffff; font-size: 0.95rem; font-weight: 600; }
.fv2-footer__count strong { font-size: 1.2rem; color: var(--sp-yellow); }
.fv2-footer__btn {
  background: var(--sp-yellow);
  color: var(--sp-charcoal);
  border: none;
  border-radius: 50px;
  padding: 10px 24px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 800;
  cursor: pointer;
  transition: var(--sp-transition);
  white-space: nowrap;
}
.fv2-footer__btn:hover { background: #F59E0B; }
.fv2-footer__clear {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.82rem;
  font-family: inherit;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}
.fv2-footer__clear:hover { color: #ffffff; }

/* ── Profile pre-fill notice ─────────────────────────────────────────────── */
.fv2-profile-notice {
  background: var(--sp-purple-light);
  border-left: 4px solid var(--sp-purple);
  border-radius: 0 var(--sp-radius) var(--sp-radius) 0;
  padding: 12px 16px;
  font-size: 0.875rem;
  color: var(--sp-charcoal);
  margin-bottom: 20px;
}
.fv2-profile-notice a { color: var(--sp-purple); font-weight: 700; }

/* ── Focus + hover accessibility ─────────────────────────────────────────── */
.fv2-mode-toggle__btn:hover { background: rgba(107, 33, 168, 0.1); }
.fv2-mode-toggle__btn:focus-visible,
.fv2-hint__dismiss:focus-visible,
.fv2-tray__chip:focus-visible,
.fv2-tray__clear:focus-visible,
.fv2-chip:focus-visible,
.fv2-show-all:focus-visible,
.fv2-footer__btn:focus-visible {
  outline: 3px solid var(--sp-purple);
  outline-offset: 2px;
}
.fv2-hint__dismiss:hover { opacity: 0.7; }
.fv2-tray__chip:hover { opacity: 0.85; }
.fv2-tray__clear:hover { text-decoration: none; }
.fv2-show-all:hover { color: var(--sp-purple-dark); }

/* ── Filter v2 — Guided mode ─────────────────────────────────────────────── */

.fv2-guided {
  padding: 0;
}

/* Progress bar */
.fv2-guided__progress-wrap {
  height: 6px;
  background: #F0E4D0;
  border-radius: 3px;
  margin-bottom: 24px;
  overflow: hidden;
}

.fv2-guided__progress-bar {
  height: 100%;
  background: var(--sp-yellow, #FBBF24);
  border-radius: 3px;
  transition: width 0.35s ease;
}

/* Two-column layout */
.fv2-guided__layout {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 20px;
  align-items: start;
}

/* Sennie portrait column */
.fv2-guided__sennie {
  position: sticky;
  top: 80px;
}

.fv2-guided__sennie-img {
  width: 140px;
  height: 200px;
  object-fit: cover;
  object-position: top center;
  border-radius: 12px;
  display: block;
}

/* Content column */
.fv2-guided__content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Speech bubble */
.fv2-guided__bubble {
  background: #fff;
  border: 2px solid #F0E4D0;
  border-radius: 16px 16px 16px 4px;
  padding: 14px 18px;
  color: #2A1B4A;
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.4;
  position: relative;
}

.fv2-guided__bubble::before {
  content: '';
  position: absolute;
  left: -12px;
  top: 16px;
  border: 6px solid transparent;
  border-right-color: #F0E4D0;
}

.fv2-guided__bubble::after {
  content: '';
  position: absolute;
  left: -9px;
  top: 17px;
  border: 5px solid transparent;
  border-right-color: #fff;
}

/* Step panels */
.fv2-guided__step {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Fast-track link */
.fv2-guided__fasttrack {
  margin: 0;
  font-size: 0.875rem;
}

.fv2-guided__fasttrack a {
  color: #6B21A8;
  text-decoration: underline;
}

.fv2-guided__fasttrack a:hover {
  color: #3B0764;
}

.fv2-guided__fasttrack a:focus-visible {
  outline: 3px solid var(--sp-purple, #6B21A8);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Skip step button */
.fv2-guided__skip-step {
  background: none;
  border: none;
  color: #6B21A8;
  font-size: 0.875rem;
  cursor: pointer;
  padding: 4px 0;
  text-align: left;
  text-decoration: underline;
  width: fit-content;
}

.fv2-guided__skip-step:hover,
.fv2-guided__skip-step:focus-visible {
  color: #3B0764;
  outline: 3px solid var(--sp-purple, #6B21A8);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Navigation row */
.fv2-guided__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid #F0E4D0;
}

/* Step dots */
.fv2-guided__dots {
  display: flex;
  gap: 8px;
  align-items: center;
}

.fv2-guided__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #F0E4D0;
  transition: background 0.2s;
  display: inline-block;
}

.fv2-guided__dot--active {
  background: var(--sp-yellow, #FBBF24);
}

/* Back / Next buttons */
.fv2-guided__back,
.fv2-guided__next {
  padding: 10px 20px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  border: 2px solid #6B21A8;
  transition: background 0.15s, color 0.15s;
}

.fv2-guided__back {
  background: #fff;
  color: #6B21A8;
}

.fv2-guided__back:hover,
.fv2-guided__back:focus-visible {
  background: #F3E8FF;
  outline: 3px solid var(--sp-purple, #6B21A8);
  outline-offset: 2px;
}

.fv2-guided__next {
  background: #6B21A8;
  color: #fff;
}

.fv2-guided__next:hover,
.fv2-guided__next:focus-visible {
  background: #3B0764;
  outline: 3px solid var(--sp-purple, #6B21A8);
  outline-offset: 2px;
}

/* Mobile: stack layout */
@media (max-width: 600px) {
  .fv2-guided__layout {
    grid-template-columns: 1fr;
  }

  .fv2-guided__sennie {
    display: flex;
    align-items: center;
    gap: 12px;
    position: static;
  }

  .fv2-guided__sennie-img {
    width: 72px;
    height: 72px;
    border-radius: 50%;
  }
}

/* ── Wizard visual refresh ────────────────────────────────────────────────── */

/* Sennie portrait avatar */
.wizard__sennie-avatar-img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  object-position: top center;
  display: block;
  flex-shrink: 0;
}

/* Updated speech bubble style */
.wizard__bubble-v2 {
  background: #fff;
  border: 2px solid #F0E4D0;
  border-radius: 16px 16px 16px 4px;
  padding: 12px 16px;
  color: #2A1B4A;
  font-weight: 500;
  font-size: 0.95rem;
  line-height: 1.5;
  position: relative;
}

/* Wizard chip states — match fv2-chip visual language */
.wizard__choices .access-chip {
  background: #fff;
  border: 1.5px solid #E5E7EB;
  color: #2A1B4A;
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  width: auto;
  white-space: nowrap;
  gap: 6px;
  transition: background 0.15s, border-color 0.15s;
}

.wizard__choices .access-chip:hover,
.wizard__choices .access-chip:focus-visible {
  border-color: #6B21A8;
  outline: 3px solid var(--sp-purple, #6B21A8);
  outline-offset: 2px;
}

.wizard__choices .access-chip[data-state="nice"] {
  background: var(--fv2-chip-want-bg, #FFF3CD);
  border-color: var(--fv2-chip-want-border, #FBBF24);
  color: var(--fv2-chip-want-text, #92600A);
}

.wizard__choices .access-chip[data-state="must"] {
  background: var(--sp-yellow, #FBBF24);
  border-color: var(--sp-yellow, #FBBF24);
  color: #2A1B4A;
  font-weight: 700;
  box-shadow: var(--fv2-chip-need-shadow, 0 2px 8px rgba(251,191,36,0.5));
}

.wizard__choices .access-chip__icon {
  font-style: normal;
}

/* ── Filter v2 — nice-to-have tray note ──────────────────────────────────── */

.fv2-tray__nice-note {
  font-size: 0.8rem;
  font-style: italic;
  color: #6B5E7E;
  margin: 2px 0 8px;
  line-height: 1.4;
}

/* ── Events grid — best-match sort toggle ────────────────────────────────── */

.ev-sort-toggle {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.ev-sort-toggle__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 2px solid #6B21A8;
  color: #6B21A8;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}

.ev-sort-toggle__pill:hover {
  background: #F3E8FF;
}

.ev-sort-toggle__pill:focus-visible {
  outline: 3px solid #6B21A8;
  outline-offset: 2px;
}

.ev-sort-toggle__pill--active {
  background: var(--sp-yellow, #FBBF24);
  border-color: var(--sp-yellow, #FBBF24);
  color: #2A1B4A;
}

.ev-sort-toggle__pill--active:hover {
  background: #F59E0B;
  border-color: #F59E0B;
}

/* ── Filter v2 — chip event count badge + tooltip ────────────────────────── */

.fv2-chip__count {
  font-size: 0.7rem;
  color: #9B8FA8;
  margin-left: 5px;
  font-weight: 500;
  position: relative;
  cursor: default;
}

.fv2-chip__count::before {
  content: 'events currently offer this';
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: #2A1B4A;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 400;
  white-space: nowrap;
  padding: 4px 8px;
  border-radius: 6px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s;
  z-index: 10;
}

.fv2-chip__count:hover::before {
  opacity: 1;
}

/* ── CookieYes — move consent box to top on mobile so it doesn't cover the filter footer ── */

@media (max-width: 767px) {
  .cky-consent-container.cky-box-bottom-left,
  .cky-consent-container.cky-box-bottom-right {
    bottom: auto !important;
    top: 16px !important;
    left: 16px !important;
    right: 16px !important;
    width: auto !important;
  }
}


/* ── Generated postcode tooltip ──────────────────────────────────────────── */
.senspot-postcode-tip {
    position: relative;
    display: inline-block;
    cursor: help;
    color: #6B21A8;
    font-weight: 700;
}

.senspot-postcode-tip__text {
    display: none;
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: #1f1f1f;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 400;
    line-height: 1.45;
    padding: 0.5em 0.75em;
    border-radius: 6px;
    width: 220px;
    z-index: 100;
    pointer-events: none;
}

.senspot-postcode-tip__text::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #1f1f1f;
}

.senspot-postcode-tip:hover .senspot-postcode-tip__text,
.senspot-postcode-tip:focus .senspot-postcode-tip__text {
    display: block;
}

/* ==========================================================================
   Expansion Banner — South Yorkshire launch / national waitlist
   ========================================================================== */

.senspot-expansion {
    background: linear-gradient(135deg, #4C1D95 0%, #6B21A8 100%);
    padding: 1rem 1.5rem;
    margin: 0;
    overflow: hidden;
}

.senspot-expansion__inner {
    max-width: 1000px;
    margin-left: auto;
    margin-right: 110px;
    display: grid;
    grid-template-columns: 380px 1fr;
    align-items: stretch;
    gap: 0;
}

/* Sennie column — overlaps into the form card */
.senspot-expansion__sennie {
    position: relative;
    overflow: visible;
    z-index: 3;
}

.senspot-expansion__sennie img {
    position: absolute;
    right: -146px;
    bottom: -32px;
    height: 115%;
    width: auto;
    max-width: none;
    display: block;
    pointer-events: none;
}

.senspot-expansion__bubble {
    display: none;
}

/* Form card */
.senspot-expansion__form-wrap {
    flex: 1;
    position: relative;
    z-index: 2;
    background: #2D0A55;
    border-radius: 16px;
    border: 2px solid #FBBF24;
    padding: 0;
    margin-bottom: 1rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}

@media (max-width: 700px) {
    .senspot-expansion { padding-bottom: 3rem; }
    .senspot-expansion__inner { display: block; }
    .senspot-expansion__sennie { display: none; }
    .senspot-expansion__form-wrap { margin-bottom: 0; }
}

/* Override MailerLite defaults inside the expansion banner */
.senspot-expansion #mlb2-41891357.ml-form-embedContainer .ml-form-embedWrapper {
    background: transparent !important;
    border-radius: 16px !important;
    max-width: 100% !important;
    width: 100% !important;
}

.senspot-expansion #mlb2-41891357.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody {
    padding: 1.5rem !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedContent h4 {
    color: #FBBF24 !important;
    font-family: 'Fredoka', sans-serif !important;
    font-size: 1.6rem !important;
    font-weight: 800 !important;
    margin-bottom: 0.5rem !important;
    line-height: 1.2 !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedContent p {
    color: #E9D5FF !important;
    font-family: 'Nunito', sans-serif !important;
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
}

/* Inputs */
.senspot-expansion #mlb2-41891357 .ml-form-fieldRow input,
.senspot-expansion #mlb2-41891357 .ml-form-fieldRow textarea {
    background-color: rgba(255, 255, 255, 0.95) !important;
    border: none !important;
    border-radius: 10px !important;
    color: #1F1F1F !important;
    font-family: 'Nunito', sans-serif !important;
    font-size: 0.95rem !important;
    padding: 14px 12px !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-fieldRow input::placeholder,
.senspot-expansion #mlb2-41891357 .ml-form-fieldRow textarea::placeholder {
    color: #6B7280 !important;
}

/* Region textarea — single-line appearance */
.senspot-expansion #mlb2-41891357 .ml-field-region textarea {
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    resize: none !important;
    overflow: hidden !important;
    line-height: 21px !important;
}

/* Submit button */
.senspot-expansion #mlb2-41891357 .ml-form-embedSubmit button {
    background-color: #FBBF24 !important;
    color: #1E1B4B !important;
    border-color: #FBBF24 !important;
    font-family: 'Nunito', sans-serif !important;
    font-weight: 800 !important;
    border-radius: 10px !important;
    font-size: 1.05rem !important;
    padding: 16px 12px !important;
    transition: background-color 0.2s ease !important;
    letter-spacing: 0.01em !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedSubmit button:hover {
    background-color: #F59E0B !important;
    border-color: #F59E0B !important;
}

/* GDPR section */
.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions {
    padding-left: 0 !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions .ml-form-embedPermissionsContent h4 {
    color: #ffffff !important;
    font-family: 'Nunito', sans-serif !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions .ml-form-embedPermissionsContent p {
    color: #E9D5FF !important;
    font-family: 'Nunito', sans-serif !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description {
    color: #ffffff !important;
    font-family: 'Nunito', sans-serif !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .description {
    color: #E9D5FF !important;
    font-family: 'Nunito', sans-serif !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions .ml-form-embedMailerLite-GDPR p {
    color: #A78BFA !important;
    font-family: 'Nunito', sans-serif !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions .ml-form-embedMailerLite-GDPR p a {
    color: #FBBF24 !important;
}

/* Checkbox ticked state — SENspot purple instead of black */
.senspot-expansion #mlb2-41891357 .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox input[type=checkbox]:checked ~ .label-description::before {
    border-color: #FBBF24 !important;
    background-color: #FBBF24 !important;
}

/* Success state */
.senspot-expansion #mlb2-41891357 .ml-form-successContent h4 {
    color: #FBBF24 !important;
    font-family: 'Fredoka', sans-serif !important;
    font-size: 1.5rem !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-successContent p {
    color: #F3E8FF !important;
    font-family: 'Nunito', sans-serif !important;
}

.senspot-expansion #mlb2-41891357 .ml-form-successBody {
    padding: 1.5rem !important;
}

/* Responsive */
@media (max-width: 840px) {
    .senspot-expansion__inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

@media (max-width: 640px) {
    .senspot-expansion {
        padding: 2rem 1rem;
    }
    .senspot-expansion__heading {
        font-size: 1.4rem;
    }
}

/* ==========================================================================
   Events page expansion note
   ========================================================================== */

.senspot-expansion-note {
    background: #F5F3FF;
    border-left: 4px solid #6B21A8;
    padding: 0.7rem 1rem;
    margin-bottom: 1.25rem;
    border-radius: 0 6px 6px 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.senspot-expansion-note__text {
    color: #4C1D95;
    font-size: 0.9rem;
    font-weight: 600;
}

.senspot-expansion-note__cta {
    color: #6B21A8;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: underline;
    white-space: nowrap;
}

.senspot-expansion-note__cta:hover {
    color: #4C1D95;
}

/* ── Accessibility Highlights — Section 1 (event page left column) ─────── */
.evs-access-highlights {
  margin: 1rem 0;
}

.evs-access-highlights__label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #6B21A8;
  margin-bottom: 0.5rem;
}

.evs-access-highlights__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.evs-access-highlight-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #16A34A;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.35rem 0.85rem;
  border-radius: 2rem;
  white-space: nowrap;
}


/* Additional access information callout */
.evs-access-callout,
.evs-access-notes {
  background: #eff6ff;
  border-left: 3px solid #3b82f6;
  border-radius: 4px;
  padding: .6rem .9rem;
  margin-top: .75rem;
  font-size: .9rem;
  line-height: 1.5;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SIDEBAR FILTER — Events Page Redesign (v3)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Font scaling ──────────────────────────────────────────────────────────── */
html {
  font-size: calc(1rem * var(--fs, 1));
  /* Prevent iOS overscroll bounce from revealing content above the header */
  overscroll-behavior-y: none;
  background-color: #3B0764;
}

/* ── A−/A+ control (header injection) ─────────────────────────────────────── */
.senspot-fs-control {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--radius-pill);
  padding: 0.2rem 0.45rem 0.2rem 0.6rem;
}
.senspot-fs-control__label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,.7);
  text-transform: uppercase;
  margin-right: 0.25rem;
}
.senspot-fs-btn {
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: var(--radius-pill);
  color: #fff;
  font-family: 'Nunito', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 0.2rem 0.55rem;
  cursor: pointer;
  transition: background .15s;
  line-height: 1.4;
}
.senspot-fs-btn:hover:not(:disabled) { background: rgba(255,255,255,.3); }
.senspot-fs-btn:disabled { opacity: .35; cursor: default; }
.senspot-fs-btn:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
  border-radius: 6px;
}

/* ── A−/A+ new header variant (class names used by font-scale.js) ──────────── */
.senspot-fs-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--radius-pill);
  padding: 0.15rem 0.35rem;
}
.senspot-fs-down,
.senspot-fs-up {
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: var(--radius-pill);
  color: #fff;
  font-family: 'Nunito', sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  min-height: 44px;
  cursor: pointer;
  transition: background .15s;
  line-height: 1.4;
}
.senspot-fs-down:hover:not(:disabled),
.senspot-fs-up:hover:not(:disabled) { background: rgba(255,255,255,.3); }
.senspot-fs-down:disabled,
.senspot-fs-up:disabled { opacity: .35; cursor: default; }
.senspot-fs-down:focus-visible,
.senspot-fs-up:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
  border-radius: 6px;
}

/* ── Skip link ─────────────────────────────────────────────────────────────── */
.senspot-skip-link {
  position: absolute;
  left: -9999px;
  top: 0.5rem;
  z-index: 9999;
  background: var(--gold);
  color: var(--on-gold);
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: var(--radius-sm);
  text-decoration: none;
}
.senspot-skip-link:focus { left: 0.5rem; }

/* ── Events page canvas ────────────────────────────────────────────────────── */
.events-archive {
  background:
    radial-gradient(1100px 800px at 5% 0%, rgba(139,92,246,.18) 0%, transparent 55%),
    radial-gradient(900px 700px at 98% 20%, rgba(19,163,181,.13) 0%, transparent 50%),
    radial-gradient(700px 600px at 50% 90%, rgba(248,184,30,.08) 0%, transparent 50%),
    linear-gradient(155deg, #f0ebff 0%, #e9e1ff 45%, #ebf9fc 100%);
  position: relative;
}
.events-archive::before {
  content: '';
  position: fixed;
  inset: 0;
  background: url('/wp-content/themes/senspot-theme/assets/images/texture.svg') repeat;
  opacity: .55;
  filter: hue-rotate(10deg) saturate(.7);
  pointer-events: none;
  z-index: 0;
}
.events-archive > * { position: relative; z-index: 1; }

/* ── Events archive hero (top banner area) ─────────────────────────────────── */
.events-archive__hero {
  background: transparent !important;
  padding: 1.5rem 0 0 !important;
}

/* ── Location / expansion banner ──────────────────────────────────────────── */
.events-location-banner {
  background: #fff;
  border: 1px solid var(--lav-line);
  border-radius: var(--radius);
  padding: 0.75rem 1.1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
  color: var(--pl-ink-soft);
}
.events-location-banner__icon { color: var(--teal); font-size: 1.1rem; flex-shrink: 0; }
.events-location-banner__link {
  margin-left: auto;
  color: var(--pl-600);
  font-weight: 700;
  text-decoration: underline;
  white-space: nowrap;
}

/* ── Page title row ────────────────────────────────────────────────────────── */
.events-page-title {
  padding: 0.4rem 0 1.4rem;
}
.events-page-title h1 {
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: 2.8rem;
  color: var(--pl-900);
  letter-spacing: -0.01em;
  margin: 0 0 0.3rem;
  line-height: 1.1;
}
.events-page-title__sub {
  font-family: 'Nunito', sans-serif;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--pl-600);
  max-width: 34ch;
  margin: 0;
}

/* ── Two-column layout ─────────────────────────────────────────────────────── */
.events-layout {
  display: grid;
  grid-template-columns: var(--sidebar-w) 1fr;
  gap: 1.5rem;
  align-items: start;
}

/* ── Main results column ───────────────────────────────────────────────────── */
.events-main-col { min-width: 0; }

/* ── Archive body wrapper (replaces old dark purple hero) ──────────────────── */
.events-archive__body {
  padding-top: 1.25rem;
  padding-bottom: 3rem;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════════════════════════════════════════ */

.events-sidebar {
  position: sticky;
  top: 1rem;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  max-height: calc(100vh - 2rem);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.sb-scroll-area {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--lav-line) transparent;
}
.sb-scroll-area::-webkit-scrollbar { width: 4px; }
.sb-scroll-area::-webkit-scrollbar-thumb { background: var(--lav-line); border-radius: 2px; }

/* ── Notepad header (Sennie peeks from left edge) ─────────────────────────── */
.sb-notepad-header {
  position: relative;
  background:
    repeating-linear-gradient(0deg, transparent 0, transparent 22px, rgba(124,57,230,.06) 22px, rgba(124,57,230,.06) 23px),
    linear-gradient(180deg, #FFFBEB 0%, #FFF7DD 100%);
  padding: 0.95rem 1.1rem 0.95rem 4.6rem;
  border-bottom: 2px dashed rgba(124,57,230,.25);
  min-height: 76px;
  display: flex;
  align-items: center;
}
.sb-notepad-header__peek {
  position: absolute;
  left: -0.4rem;
  bottom: -0.2rem;
  width: 5.2rem;
  height: auto;
  filter: drop-shadow(0 4px 6px rgba(30,10,60,.18));
  pointer-events: none;
}
.sb-notepad-header__text { min-width: 0; }
.sb-notepad-header__title {
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--pl-900, #1e0a42);
  line-height: 1.15;
  letter-spacing: -0.005em;
}
.sb-notepad-header__sub {
  font-family: 'Nunito', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  color: #6b4ea0;
  margin-top: 0.15rem;
}

/* ── Step counter pill ─────────────────────────────────────────────────────── */
.sb-step-counter {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.1rem;
  background: #fff;
  border-bottom: 1px solid var(--line);
  font-family: 'Nunito', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pl-ink, #1e0a42);
}
.sb-step-counter__dot {
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: #D1D5DB;
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(209,213,219,.25);
  transition: background .25s, box-shadow .25s;
}
.sb-step-counter[data-progress="0"] .sb-step-counter__dot { background: #D1D5DB; box-shadow: 0 0 0 3px rgba(209,213,219,.25); }
.sb-step-counter[data-progress="1"] .sb-step-counter__dot,
.sb-step-counter[data-progress="2"] .sb-step-counter__dot { background: #FBBF24; box-shadow: 0 0 0 3px rgba(251,191,36,.25); }
.sb-step-counter[data-progress="3"] .sb-step-counter__dot,
.sb-step-counter[data-progress="4"] .sb-step-counter__dot,
.sb-step-counter[data-progress="5"] .sb-step-counter__dot { background: var(--pl-600, #6B21A8); box-shadow: 0 0 0 3px rgba(107,33,168,.18); }
.sb-step-counter__text { line-height: 1.3; }

/* ── Location controls ─────────────────────────────────────────────────────── */
.sb-location {
  padding: 0.9rem 1.1rem;
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.sb-location__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--pl-ink-soft);
  display: block;
  margin-bottom: 0.3rem;
}
.sb-location__input {
  width: 100%;
  border: 1.5px solid var(--line-strong);
  border-radius: var(--radius-sm);
  padding: 0.5rem 0.75rem;
  font-family: 'Nunito', sans-serif;
  font-size: 0.9rem;
  color: var(--pl-ink);
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.sb-location__input:focus {
  outline: 2px solid #6B21A8;
  outline-offset: 2px;
  border-color: var(--pl-500);
  box-shadow: 0 0 0 3px rgba(124,57,230,.12);
}
.sb-location__radius-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.3rem;
}
.sb-location__radius-val {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--pl-600);
}
.sb-location__slider {
  -webkit-appearance: none;
  width: 100%;
  height: 4px;
  border-radius: 2px;
  background: var(--line-strong);
  cursor: pointer;
}
.sb-location__slider:focus-visible {
  outline: 2px solid #6B21A8;
  outline-offset: 4px;
}
.sb-location__slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--pl-600);
  border: 3px solid #fff;
  box-shadow: 0 1px 4px rgba(103,38,199,.35);
  cursor: pointer;
}
.sb-location__slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--pl-600);
  border: 3px solid #fff;
  box-shadow: 0 1px 4px rgba(103,38,199,.35);
  cursor: pointer;
}
.sb-location__show-all {
  background: none;
  border: none;
  color: var(--pl-600);
  font-family: 'Nunito', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
  text-align: left;
}
.sb-location__select {
  width: 100%;
  border: 1.5px solid var(--line-strong);
  border-radius: var(--radius-sm);
  padding: 0.45rem 0.75rem;
  font-family: 'Nunito', sans-serif;
  font-size: 0.9rem;
  color: var(--pl-ink);
  background: #fff;
  cursor: pointer;
}
.sb-location__select:focus {
  outline: 2px solid #6B21A8;
  outline-offset: 2px;
  border-color: var(--pl-500);
  box-shadow: 0 0 0 3px rgba(124,57,230,.12);
}

/* ── Active filter pills ────────────────────────────────────────────────────── */
.sb-active-pills {
  padding: 0.7rem 1.1rem;
  background: var(--card-soft);
  border-bottom: 1px solid var(--line);
  display: none;
}
.sb-active-pills.has-filters { display: block; }
.sb-active-pills__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.sb-active-pills__count {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pl-ink-soft);
}
.sb-active-pills__clear {
  background: none;
  border: none;
  color: var(--pl-600);
  font-family: 'Nunito', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
}
.sb-active-pills__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.sb-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--pl-600);
  color: #fff;
  font-size: 0.74rem;
  font-weight: 700;
  padding: 0.25rem 0.6rem;
  border-radius: var(--radius-pill);
}
.sb-pill__remove {
  background: none;
  border: none;
  color: rgba(255,255,255,.8);
  cursor: pointer;
  padding: 0;
  font-size: 0.9rem;
  line-height: 1;
  margin-left: 0.1rem;
  display: flex;
  align-items: center;
}
.sb-pill__remove:hover { color: #fff; }

/* ── Filter groups (accordions) ────────────────────────────────────────────── */
.sb-group {
  border-bottom: 1px solid var(--line);
}
.sb-group__header {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem 1.1rem;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background .15s;
}
.sb-group__header:hover { background: var(--card-soft); }
.sb-group__icon {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}
.sb-group__label {
  font-family: 'Fredoka', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--pl-ink);
  flex: 1;
  min-width: 0;
}
.sb-group__badge {
  background: var(--pl-600);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.15rem 0.5rem;
  border-radius: var(--radius-pill);
  display: none;
}
.sb-group__badge.visible { display: inline-flex; }
.sb-group__chevron {
  color: var(--pl-ink-soft);
  font-size: 0.75rem;
  transition: transform .22s;
  flex-shrink: 0;
}
.sb-group__header[aria-expanded="false"] .sb-group__chevron { transform: rotate(-90deg); }

.sb-group__body {
  padding: 0.2rem 1.1rem 0.9rem;
}
.sb-group__body[hidden] { display: none; }

/* ── Filter options (checkboxes) ────────────────────────────────────────────── */
.sb-options {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.sb-option {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.35rem 0.5rem;
  min-height: 44px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background .12s;
  width: 100%;
  background: none;
  border: none;
  text-align: left;
}
.sb-option:hover { background: var(--card-soft); }
.sb-option[aria-disabled="true"] { opacity: .38; cursor: not-allowed; pointer-events: none; }
.sb-option__check {
  width: 1.3rem;
  height: 1.3rem;
  border: 1.5px solid var(--line-strong);
  border-radius: 5px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .12s, border-color .12s;
  background: #fff;
}
.sb-option[aria-checked="true"] .sb-option__check {
  background: var(--pl-600);
  border-color: var(--pl-600);
}
.sb-option[aria-checked="true"] .sb-option__check::after {
  content: '';
  display: block;
  width: 7px;
  height: 4px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translateY(-1px);
}
.sb-option__label {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--pl-ink);
  flex: 1;
  min-width: 0;
  line-height: 1.3;
}
.sb-option__count {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--pl-600);
  background: var(--chip-count);
  padding: 0.1rem 0.45rem;
  border-radius: var(--radius-pill);
  min-width: 1.8rem;
  text-align: center;
  flex-shrink: 0;
}
.sb-option__emoji {
  font-size: 1rem;
  flex-shrink: 0;
}
/* Selected access chip states */
.sb-option--must {
  background: rgba(103,38,199,.08);
  color: var(--pl-600);
}
.sb-option--must .sb-option__count { background: var(--pl-600); color: #fff; }
.sb-option--nice {
  background: rgba(103,38,199,.04);
  color: var(--pl-ink-soft);
}
/* Type chip selected */
.sb-option[data-filter-type="type"][aria-checked="true"] {
  background: var(--pl-600);
  color: #fff;
}
.sb-option[data-filter-type="type"][aria-checked="true"] .sb-option__count {
  background: rgba(255,255,255,.25);
  color: #fff;
}
/* Grid loading state */
.sb-loading { opacity: .5; pointer-events: none; transition: opacity .2s; }

/* Mobile drawer close button */
/* Close button — lives inside .sb-notepad-header (position:relative) */
.sb-drawer-close {
  display: none;
  flex-shrink: 0;
  margin-left: auto;
  width: 2.2rem;
  height: 2.2rem;
  background: #6B21A8;
  border: 2px solid rgba(255,255,255,.7);
  border-radius: 50%;
  color: #fff;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(30,10,60,.3);
  transition: background .15s, transform .1s;
}
.sb-drawer-close:hover { background: #4C1D95; transform: scale(1.1); }
.sb-drawer-close:focus-visible { outline: 3px solid #FBBF24; outline-offset: 2px; }
@media (max-width: 1040px) {
  .sb-drawer-close { display: flex; }
}

/* ── Audience toggles ──────────────────────────────────────────────────────── */
.sb-audience {
  background: var(--card-soft);
  padding: 0.75rem 1.1rem 1rem;
  border-top: 1px solid var(--line);
}
.sb-audience__title {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--pl-ink-soft);
  margin: 0 0 0.6rem;
}
.sb-audience-check {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.45rem;
  cursor: pointer;
}
.sb-audience-check input[type="checkbox"] {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: var(--pl-600);
  cursor: pointer;
  flex-shrink: 0;
}
.sb-audience-check__label {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--pl-ink);
  line-height: 1.3;
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESULTS COLUMN
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── "On The Case" hero — purple-indigo gradient + landscape Detective Sennie ─ */
.sh-hero {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background:
    radial-gradient(ellipse 80% 60% at 80% 100%, rgba(251,191,36,.18) 0%, transparent 60%),
    linear-gradient(135deg, #6B21A8 0%, #5826B6 45%, #4338CA 100%);
  box-shadow: 0 10px 30px -10px rgba(67,56,202,.5);
  min-height: 200px;
  margin-bottom: 1.25rem;
  isolation: isolate;
}

/* Sennie wrap: positioned absolute, right half of panel, bottom-aligned */
.sh-hero__sennie-wrap {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 58%;
  max-width: 540px;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}
.sh-hero__halo {
  position: absolute;
  right: 6%;
  bottom: 10%;
  width: 60%;
  height: 70%;
  background: radial-gradient(ellipse at center, rgba(251,191,36,.35) 0%, rgba(251,191,36,.12) 40%, transparent 70%);
  filter: blur(12px);
  z-index: 1;
  pointer-events: none;
}
.sh-hero__sennie {
  position: absolute;
  right: 58px;
  bottom: -8%;
  width: 100%;
  height: auto;
  max-height: 240px;
  object-fit: contain;
  object-position: bottom right;
  z-index: 2;
  filter: drop-shadow(0 8px 18px rgba(30,10,60,.5));
  animation: shFloat 5.5s ease-in-out infinite;
}
@keyframes shFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-5px); }
}

/* Rosette: absolute, top-right corner */
.sh-hero__rosette {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  z-index: 4;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #FCD34D 0%, #FBBF24 60%, #D97706 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  font-size: 0.62rem;
  line-height: 1.1;
  color: #422006;
  box-shadow:
    0 4px 12px rgba(0,0,0,.25),
    inset 0 -2px 4px rgba(0,0,0,.1),
    inset 0 2px 4px rgba(255,255,255,.4);
  transform: rotate(-12deg);
  animation: shRosetteWobble 6s ease-in-out infinite;
}
.sh-hero__rosette-star { font-size: 0.95rem; line-height: 1; margin-bottom: 0.1rem; }
.sh-hero__rosette-text { letter-spacing: 0.02em; }
@keyframes shRosetteWobble {
  0%, 100% { transform: rotate(-12deg); }
  50%      { transform: rotate(-7deg); }
}

/* Inner content sits over the gradient, text in left 50-55% */
.sh-hero__inner {
  position: relative;
  z-index: 3;
  padding: 1.3rem 1.6rem;
  min-height: 200px;
  display: flex;
  align-items: center;
}
.sh-hero__content {
  width: min(100%, 56%);
  min-width: 0;
  color: #fff;
}

/* Decorative paws scattered across the gradient */
.sh-hero__paws {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  font-size: 1.6rem;
}
.sh-hero__paw {
  position: absolute;
  opacity: .35;
  color: rgba(255,255,255,.4);
}
.sh-hero__paw--1 { top:  12%; left:   3%; transform: rotate(-18deg); font-size: 0.95rem; }
.sh-hero__paw--2 { top:  74%; left:  14%; transform: rotate( 12deg); font-size: 1.1rem; }
.sh-hero__paw--3 { top:  30%; left:  32%; transform: rotate(-32deg); font-size: 0.85rem; }
.sh-hero__paw--4 { top:  82%; left:  42%; transform: rotate( 22deg); font-size: 0.9rem; }
.sh-hero__paw--5 { top:  16%; left:  48%; transform: rotate(  6deg); font-size: 0.8rem; }

/* Twinkling sparkles */
.sh-hero__sparkles {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.sh-hero__sparkle {
  position: absolute;
  color: #FBBF24;
  font-size: 1.1rem;
  filter: drop-shadow(0 0 8px rgba(251,191,36,.7));
  animation: shTwinkle 2.6s ease-in-out infinite;
}
.sh-hero__sparkle--1 { top:  14%; left:   5%; font-size: 1.3rem; animation-delay: 0s; }
.sh-hero__sparkle--2 { top:  74%; left:  44%; font-size: 0.9rem; animation-delay: .6s; }
.sh-hero__sparkle--3 { top:   8%; right:  18%; font-size: 1.1rem; animation-delay: 1.2s; }
.sh-hero__sparkle--4 { top:  62%; right:  46%; font-size: 1.0rem; animation-delay: 1.8s; }
@keyframes shTwinkle {
  0%, 100% { opacity: 0.25; transform: scale(0.7); }
  50%      { opacity: 1;    transform: scale(1.1); }
}

/* Text */
.sh-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: 'Nunito', sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #FBBF24;
  background: rgba(251,191,36,.12);
  border: 1px solid rgba(251,191,36,.4);
  padding: 0.25rem 0.7rem;
  border-radius: 9999px;
  margin-bottom: 0.55rem;
}
.sh-hero__eyebrow-mark {
  font-size: 0.85rem;
  line-height: 1;
}
.sh-hero__heading {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  font-size: clamp(1.4rem, 2vw + 0.5rem, 2.1rem);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: #fff;
  margin: 0 0 0.45rem;
  text-shadow: 0 2px 6px rgba(30,10,60,.3);
}
.sh-hero__desc {
  font-family: 'Nunito', sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.35;
  color: rgba(255,255,255,.92);
  margin: 0 0 0.7rem;
  max-width: 44ch;
}
.sh-hero__count {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  font-size: 1.15em;
  color: #FBBF24;
  letter-spacing: -0.01em;
  padding: 0 0.1em;
}

/* Sennie's rotating tip pill */
.sh-tip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(251,191,36,.35);
  border-radius: 12px;
  padding: 0.45rem 0.85rem;
  font-family: 'Nunito', sans-serif;
  font-weight: 600;
  font-size: 0.82rem;
  line-height: 1.35;
  color: rgba(255,255,255,.95);
  backdrop-filter: blur(4px);
  max-width: 100%;
}
.sh-tip__icon {
  font-size: 1rem;
  flex-shrink: 0;
}
.sh-tip__label {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #FBBF24;
  flex-shrink: 0;
  padding-right: 0.55rem;
  margin-right: 0.1rem;
  border-right: 1px solid rgba(251,191,36,.35);
}
.sh-tip__text {
  font-style: italic;
  color: rgba(255,255,255,.92);
  transition: opacity .35s;
}

/* State variants */
.sh-hero[data-state="sniffing"] .sh-hero__eyebrow {
  color: #E0F2FE;
  border-color: rgba(224,242,254,.5);
  background: rgba(224,242,254,.12);
}
.sh-hero[data-state="found"] .sh-hero__eyebrow {
  color: #86EFAC;
  border-color: rgba(134,239,172,.7);
  background: rgba(134,239,172,.22);
  box-shadow: 0 0 12px rgba(134,239,172,.25);
}
.sh-hero[data-state="empty"] .sh-hero__eyebrow {
  color: #FECACA;
  border-color: rgba(254,202,202,.5);
  background: rgba(254,202,202,.12);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .sh-hero__sennie,
  .sh-hero__rosette,
  .sh-hero__sparkle { animation: none !important; }
}

/* Tablet */
@media (max-width: 900px) {
  .sh-hero__inner { padding: 1.1rem 1.3rem; }
  .sh-hero__content { width: 60%; }
  .sh-hero__sennie-wrap { width: 50%; }
  .sh-hero__rosette { width: 3.4rem; height: 3.4rem; font-size: 0.55rem; }
  .sh-tip { font-size: 0.76rem; padding: 0.35rem 0.7rem; gap: 0.4rem; }
  .sh-tip__label { display: none; }
}

/* Mobile — Sennie hides on small screens to save vertical real estate */
@media (max-width: 640px) {
  .sh-hero { min-height: 140px; }
  .sh-hero__inner { padding: 0.9rem 1rem; min-height: 140px; }
  .sh-hero__content { width: 100%; }
  .sh-hero__sennie-wrap,
  .sh-hero__halo { display: none; }
  .sh-hero__heading { font-size: 1.3rem; }
  .sh-hero__desc { font-size: 0.85rem; max-width: none; }
  .sh-hero__rosette { width: 2.8rem; height: 2.8rem; font-size: 0.5rem; top: 0.4rem; right: 0.4rem; }
  .sh-tip { display: none; }
  .sh-hero__paw { display: none; }
}

/* ── Results toolbar ────────────────────────────────────────────────────────── */
.sb-toolbar {
  background: #fff;
  border: 1px solid var(--lav-line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 0.75rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.sb-toolbar__count {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--pl-ink);
}
.sb-toolbar__count strong { color: var(--pl-600); }
.sb-toolbar__sort {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  color: var(--pl-ink-soft);
  font-weight: 600;
}
.sb-toolbar__select {
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  padding: 0.35rem 0.65rem;
  font-family: 'Nunito', sans-serif;
  font-size: 0.82rem;
  color: var(--pl-ink);
  background: #fff;
  cursor: pointer;
}
.sb-toolbar__select:focus {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

/* ── Events grid ────────────────────────────────────────────────────────────── */
.sb-events-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: 1.4rem;
}

/* ── Loading state ─────────────────────────────────────────────────────────── */
.sb-events-grid--loading {
  opacity: .5;
  pointer-events: none;
  transition: opacity .2s;
}

/* ── Empty state ────────────────────────────────────────────────────────────── */
.sb-empty {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 3rem 2rem;
  text-align: center;
}
.sb-empty__img {
  width: 7rem;
  margin: 0 auto 1.25rem;
  display: block;
}
.sb-empty h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.3rem;
  color: var(--pl-ink);
  margin: 0 0 0.6rem;
}
.sb-empty p {
  font-size: 0.9rem;
  color: var(--pl-ink-soft);
  max-width: 32ch;
  margin: 0 auto 1.25rem;
  line-height: 1.5;
}
.sb-empty__btn {
  display: inline-flex;
  background: var(--pl-600);
  color: #fff;
  font-family: 'Nunito', sans-serif;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.6rem 1.4rem;
  border-radius: var(--radius-pill);
  border: none;
  cursor: pointer;
  transition: background .15s;
  text-decoration: none;
}
.sb-empty__btn:hover { background: var(--pl-700); color: #fff; }

/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE — off-canvas drawer
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Mobile: fix full header to top so it never scrolls away ─────────────── */
@media (max-width: 1040px) {
  .site-header {
    position: sticky;
    top: 0;
    z-index: 200;
  }
}

@media (max-width: 1040px) {
  .events-layout {
    grid-template-columns: 1fr;
  }

  .events-sidebar {
    position: fixed;
    top: var(--header-h, 64px);
    left: 0;
    bottom: 0;
    width: min(22rem, 88vw);
    transform: translateX(-104%);
    transition: transform .26s cubic-bezier(.3,.7,.4,1);
    z-index: 210;
    max-height: calc(100vh - var(--header-h, 64px));
    border-radius: 0;
    box-shadow: var(--shadow-lg);
  }
  .events-sidebar.sb-open { transform: translateX(0); }

  .sb-scrim {
    position: fixed;
    inset: 0;
    background: rgba(10,3,26,.75);
    z-index: 205;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s;
    cursor: pointer;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 5rem;
    font-family: 'Nunito', sans-serif;
    font-size: 0.85rem;
    color: rgba(255,255,255,.6);
    letter-spacing: 0.04em;
  }
  .sb-scrim::after { content: '\2715\00A0\00A0Tap here to close'; }
  .sb-scrim.sb-open { opacity: 1; pointer-events: auto; }

  .sb-fab {
    position: fixed;
    bottom: calc(1.25rem + env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    z-index: 110;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    background: #3B0764;
    color: #fff;
    font-family: 'Fredoka', sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    padding: 0.8rem 1.75rem;
    border-radius: var(--radius-pill);
    border: 3px solid #FBBF24;
    cursor: pointer;
    /* Layered shadow ensures visibility on any image/colour background */
    box-shadow:
      0 0 0 1px rgba(0,0,0,.15),
      0 4px 6px rgba(0,0,0,.35),
      0 8px 24px rgba(0,0,0,.25);
    white-space: nowrap;
    letter-spacing: 0.01em;
    transition: background .15s, transform .12s, box-shadow .12s;
  }
  .sb-fab:hover {
    background: #6B21A8;
    transform: translateX(-50%) translateY(-2px);
    box-shadow:
      0 0 0 1px rgba(0,0,0,.15),
      0 6px 10px rgba(0,0,0,.35),
      0 12px 28px rgba(0,0,0,.25);
  }
  .sb-fab:active {
    transform: translateX(-50%) translateY(1px);
    box-shadow: 0 2px 6px rgba(0,0,0,.3);
  }
  .sb-fab:focus-visible {
    outline: 3px solid #FBBF24;
    outline-offset: 3px;
  }
  /* Nudge event cards up so content isn't hidden behind the fixed FAB */
  .events-main-col { padding-bottom: 5rem; }
}

@media (min-width: 1041px) {
  .sb-fab { display: none; }
  .sb-scrim { display: none; }
}

@media (max-width: 560px) {
  .events-page-title h1 { font-size: 2rem; }
  .sh-hero__content { padding: 1rem 1rem 3.5rem; }
  .sh-hero__img-wrap { width: 8rem; right: 0; bottom: 2rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ACCESSIBILITY
   ═══════════════════════════════════════════════════════════════════════════ */

.sb-group__header:focus-visible,
.sb-option:focus-visible,
.sb-pill__remove:focus-visible,
.sb-audience-check input:focus-visible,
.sb-location__input:focus-visible,
.sb-location__select:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
  border-radius: 6px;
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABOUT PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

.about-hero,
.about-hero__inner {
  padding-top: 4rem;
  padding-bottom: 4rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.about-section {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.about-section__inner {
  max-width: 760px;
  margin: 0 auto;
}

.about-section h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  margin-bottom: 1.25rem;
}

.about-section h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}

.about-section p,
.about-section li {
  font-size: 1rem;
  line-height: 1.75;
  color: #1F2937;
}

.about-section--dark p,
.about-section--dark li {
  color: #E9D5FF;
}

.about-section ul,
.about-section ol {
  padding-left: 1.5rem;
  margin-bottom: 1rem;
}

.about-section li {
  margin-bottom: 0.5rem;
}

.about-faq h3 {
  border-top: 1px solid #E9D5FF;
  padding-top: 1.25rem;
  margin-top: 1.25rem;
}

.about-faq h3:first-of-type {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}

@media (max-width: 640px) {
  .about-hero,
  .about-hero__inner,
  .about-section {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE — WHY SENSPOT (Quote Wall)
   ═══════════════════════════════════════════════════════════════════════════ */

.why-senspot {
    position: relative !important;
    padding: 4rem 1.5rem 10rem !important;
    overflow: visible !important;
    /* Subtle radial glow for depth */
    background: radial-gradient(ellipse at 50% 35%, #4C1D95 0%, #3B0764 65%) !important;
}

.why-senspot .wp-block-heading {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.5rem;
}

/* Quote block */
.why-senspot__quote-wrap {
    position: relative;
    max-width: 680px;
    margin: 0 auto 3rem;
    text-align: center;
    padding: 1.5rem 2.5rem;
}

.why-senspot__quote-wrap::before {
    content: '\201C';
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(7rem, 14vw, 10rem);
    color: #FBBF24;
    line-height: 1;
    position: absolute;
    top: -1.5rem;
    left: -0.25rem;
    opacity: 0.35;
    pointer-events: none;
}

.why-senspot__quote-wrap::after {
    content: '\201D';
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(7rem, 14vw, 10rem);
    color: #FBBF24;
    line-height: 1;
    position: absolute;
    bottom: -3rem;
    right: -0.25rem;
    opacity: 0.35;
    pointer-events: none;
}

.why-senspot__quote {
    font-family: 'Caveat', cursive !important;
    font-size: clamp(1.5rem, 3.5vw, 2.1rem) !important;
    color: #FBBF24 !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    border: none !important;
    padding: 0 !important;
    font-style: normal !important;
    position: relative;
    z-index: 1;
}

/* Two-column body text */
.why-senspot__cols {
    max-width: 900px;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 3rem !important;
}

.why-senspot__cols .wp-block-column p {
    color: #E9D5FF !important;
    font-size: 1rem !important;
    line-height: 1.8 !important;
    margin: 0 !important;
}

/* Sennie peeking up from bottom right — fingers overlap into WHERE NOW */
.why-senspot__sennie-wrap {
    position: absolute;
    bottom: -58px;
    right: 5%;
    left: auto;
    transform: translateX(-120px);
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    z-index: 10;
    pointer-events: none;
    width: max-content;
}

.why-senspot__sennie-wrap img {
    height: 310px;
    width: auto;
    display: block;
}

.why-senspot__bubble {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 14px 18px;
    font-family: 'Nunito', sans-serif;
    font-size: 1rem;
    font-weight: 800;
    color: #4C1D95;
    line-height: 1.4;
    max-width: 195px;
    /* Push bubble up to sit next to Sennie's head; pull left toward him */
    margin-bottom: 165px;
    margin-left: -110px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25);
    position: relative;
    text-align: center;
}

/* Tail pointing left toward Sennie (bubble is now on the right) */
.why-senspot__bubble::after {
    content: '';
    position: absolute;
    left: -14px;
    top: 50%;
    transform: translateY(-50%);
    border: 10px solid transparent;
    border-right-color: #FFFFFF;
    border-left: none;
}

/* WHERE NOW gets top padding to clear Sennie's overlap */
.where-now {
    padding-top: 5rem !important;
}

@media (max-width: 1100px) {
    .why-senspot__sennie-wrap img { height: 200px; }
    .why-senspot__bubble { margin-bottom: 90px; font-size: 0.875rem; max-width: 165px; }
}

@media (max-width: 860px) {
    .why-senspot__sennie-wrap { display: none; }
    .why-senspot { padding-bottom: 4rem !important; }
    .where-now { padding-top: 3rem !important; }
}

@media (max-width: 600px) {
    .why-senspot__cols { flex-direction: column !important; }
}

/* WHERE NOW — map + cards redesign */
.where-now__inner {
    display: flex;
    gap: 3rem;
    align-items: center;
    margin-top: 2rem;
}

.where-now__map {
    flex: 0 0 55%;
    max-width: 55%;
}

.where-now__map svg {
    width: 100%;
    height: auto;
    display: block;
}

.where-now__map-img {
    width: 100%;
    height: auto;
    display: block;
    mix-blend-mode: multiply; /* removes white bg against lavender section */
}

.map-live   { fill: #6B21A8; }
.map-soon   { fill: #FBBF24; }
.map-future { fill: #E5E7EB; stroke: #D1D5DB; stroke-width: 0.5; }

.where-now__right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center;
    margin-top: -80px;
}

/* Status blocks — Live now / Coming soon */
.where-now__status {
    background: #FFFFFF;
    border-radius: 16px;
    padding: 1.25rem 1.4rem;
    box-shadow: 0 2px 12px rgba(107,33,168,0.07);
}

.where-now__status--live { border-left: 5px solid #6B21A8; }
.where-now__status--soon { border-left: 5px solid #FBBF24; }
.where-now__status--future {
    border-left: 4px dashed #9CA3AF;
    background: #F9FAFB;
    box-shadow: none;
}
.where-now__status--future .where-now__status-region { color: #6B7280; }
.where-now__status--future .where-now__status-note { color: #6B7280; }

.where-now__status-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.3rem;
}

.where-now__status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.where-now__status-dot--live { background: #6B21A8; }
.where-now__status-dot--soon { background: #FBBF24; }
.where-now__status-dot--future { background: #9CA3AF; }

.where-now__status-label {
    font-family: 'Nunito', sans-serif;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6B5B7B;
}

.where-now__status-region {
    font-family: 'Fredoka', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #3B0764;
    margin: 0 0 0.9rem;
    line-height: 1.2;
}

.where-now__status-note {
    font-family: 'Nunito', sans-serif;
    font-size: 0.95rem;
    color: #4B5563;
    margin: 0;
    line-height: 1.55;
}

.where-now__status-link {
    color: #6B21A8;
    font-weight: 700;
    text-decoration: underline;
}

.where-now__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.7rem;
}

.where-now__card {
    background: #F3E8FF;
    border-radius: 10px;
    padding: 0.75rem 0.9rem;
}

.where-now__card-name {
    font-family: 'Fredoka', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #6B21A8;
    margin: 0 0 0.15rem;
}

.where-now__card-count {
    font-family: 'Nunito', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    color: #4C1D95;
    margin: 0;
}

@media (max-width: 860px) {
    .where-now__inner {
        flex-direction: column;
    }
    .where-now__map {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .where-now__cards {
        grid-template-columns: 1fr;
    }
}

/* ================================================
   JOURNEY PATH — This Is Just The Beginning
   ================================================ */
.whats-coming { padding-top: 3rem !important; padding-bottom: 3rem !important; }

.journey {
    padding: 1rem 0 2rem;
}

/* ── Rows ─────────────────────────────────────────────────────────── */
.journey__row {
    display: flex;
    align-items: flex-start;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    -webkit-overflow-scrolling: touch;
}

/* ── Skipping Sennie frames ───────────────────────────────────────── */
.journey__skip-frame {
    display: block;
    width: 90px;
    height: 90px;
    object-fit: contain;
    margin: 0 auto 6px;
    flex-shrink: 0;
    opacity: 0;
    animation: sennie-skip 8s infinite;
    pointer-events: none;
}

/* Stagger each Sennie frame by 2s */
.journey__row--done .journey__node--done:nth-child(1) .journey__skip-frame { animation-delay: 0s; }
.journey__row--done .journey__node--done:nth-child(3) .journey__skip-frame { animation-delay: 2s; }
.journey__row--done .journey__node--done:nth-child(5) .journey__skip-frame { animation-delay: 4s; }
.journey__row--done .journey__node--done:nth-child(7) .journey__skip-frame { animation-delay: 6s; }

@keyframes sennie-skip {
    0%    { opacity: 0; transform: translateY(6px); }
    4%    { opacity: 1; transform: translateY(0); }
    22%   { opacity: 1; transform: translateY(0); }
    26%   { opacity: 0; transform: translateY(-6px); }
    100%  { opacity: 0; }
}

/* ── Connectors ───────────────────────────────────────────────────── */
.journey__connector {
    flex: 1;
    min-width: 20px;
    flex-shrink: 0;
}

/* Done row: align to centre of dot (skip 90 + gap 6 + half dot 40) */
.journey__row--done .journey__connector {
    margin-top: 136px;
}

/* Coming row: no skip frames, align to centre of dot (half dot 40) */
.journey__row--coming .journey__connector {
    margin-top: 40px;
}

.journey__connector--solid {
    height: 2px;
    background: #FBBF24;
}

.journey__connector--dashed {
    height: 0;
    border-top: 2px dashed rgba(255,255,255,0.3);
}

/* ── Nodes ────────────────────────────────────────────────────────── */
.journey__node {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 130px;
    flex-shrink: 0;
    text-align: center;
}

.journey__dot {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    margin-bottom: 0.75rem;
    flex-shrink: 0;
    overflow: hidden;
}

.journey__node--done .journey__dot {
    background: #FBBF24;
    border: 3px solid #FBBF24;
}

.journey__node--coming .journey__dot {
    background: rgba(255,255,255,0.08);
    border: 3px solid rgba(255,255,255,0.35);
}

/* Favicon geo-pin image inside coming dots */
.journey__favicon-icon {
    width: 52px;
    height: 52px;
    object-fit: contain;
    display: block;
    opacity: 0.6;
}

.journey__label {
    font-family: 'Nunito', sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
    color: #FFFFFF;
    margin: 0 0 0.3rem;
    line-height: 1.25;
}

.journey__node--coming .journey__label {
    color: rgba(255,255,255,0.55);
}

.journey__desc {
    font-family: 'Nunito', sans-serif;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.75);
    margin: 0;
    line-height: 1.35;
}

.journey__node--coming .journey__desc {
    color: rgba(255,255,255,0.7);
}

/* ── We are here strip ────────────────────────────────────────────── */
.journey__here-strip {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1.25rem 0;
}

.journey__here-line {
    flex: 1;
    height: 2px;
    background: #FBBF24;
}

.journey__here-line--dashed {
    background: transparent;
    border-top: 2px dashed rgba(255,255,255,0.3);
}

.journey__here-badge {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.journey__here-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #FBBF24;
    flex-shrink: 0;
    animation: journey-pulse 1.8s infinite;
}

@keyframes journey-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(251,191,36,0.7); }
    70%  { box-shadow: 0 0 0 10px rgba(251,191,36,0); }
    100% { box-shadow: 0 0 0 0 rgba(251,191,36,0); }
}

.journey__here-label {
    font-family: 'Caveat', cursive;
    font-size: 1.1rem;
    color: #FBBF24;
    white-space: nowrap;
}

/* ── Mobile ───────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .journey__row {
        flex-direction: column;
        align-items: center;
        overflow-x: visible;
    }

    .journey__row--done .journey__connector,
    .journey__row--coming .journey__connector {
        flex: unset;
        min-width: unset;
        margin-top: 0;
        width: 2px;
        height: 28px;
    }

    .journey__connector--solid {
        height: 28px;
        background: #FBBF24;
        border: none;
    }

    .journey__connector--dashed {
        height: 28px;
        border-left: 2px dashed rgba(255,255,255,0.3);
        border-top: none;
    }

    .journey__here-strip {
        flex-direction: column;
        gap: 0.5rem;
    }

    .journey__here-line {
        width: 2px;
        height: 24px;
        flex: unset;
    }

    .journey__here-line--dashed {
        border-left: 2px dashed rgba(255,255,255,0.3);
        border-top: none;
    }
}

/* =========================================================
   ESW — Sennie Event Submission Wizard
   ========================================================= */
.esw-wrap { max-width: 720px; margin: 0 auto; }

/* Draft-restored banner */
.esw-draft-banner {
    display: flex; align-items: center; gap: 0.75rem;
    background: #F3E8FF; border: 1px solid #A855F7; border-radius: 8px;
    padding: 0.75rem 1rem; margin-bottom: 1.5rem; font-size: 0.9rem;
}
.esw-draft-banner__clear {
    margin-left: auto; background: none; border: 1px solid #A855F7;
    border-radius: 6px; padding: 0.2rem 0.6rem; cursor: pointer;
    font-size: 0.8rem; color: #6B21A8;
}

/* Progress bar */
.esw-progress-wrap { margin-bottom: 1.5rem; }
.esw-step-label { display: block; font-size: 0.8rem; color: #6B21A8; font-weight: 700; margin-bottom: 0.4rem; }
.esw-progress-track { height: 8px; background: #E9D5FF; border-radius: 99px; overflow: hidden; }
.esw-progress-bar { height: 100%; background: #6B21A8; border-radius: 99px; transition: width 0.35s ease; }

/* Sennie row */
.esw-sennie { display: flex; align-items: flex-end; gap: 0.75rem; margin-bottom: 1.5rem; }
.esw-sennie__img { width: 60px; flex-shrink: 0; }
.esw-sennie__bubble {
    background: #F3E8FF; border: 2px solid #6B21A8;
    border-radius: 16px 16px 16px 0;
    padding: 0.7rem 1rem; font-size: 0.9rem; line-height: 1.4; flex: 1;
}

/* Step panels */
.esw-step { display: none; }
.esw-step.esw-step--active { display: block; }
.esw-step__title {
    font-size: 1.25rem; font-weight: 700; color: #1F2937;
    margin-bottom: 1.25rem; padding-bottom: 0.5rem;
    border-bottom: 2px solid #E9D5FF;
}

/* Fields */
.esw-field { margin-bottom: 1.25rem; }
.esw-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.esw-row--thirds { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 540px) { .esw-row, .esw-row--thirds { grid-template-columns: 1fr; } }

.esw-label { display: block; font-size: 0.9rem; font-weight: 700; color: #1F2937; margin-bottom: 0.35rem; }
.esw-label--help { font-weight: 400; color: #6B7280; font-size: 0.8rem; display: block; margin-top: 0.15rem; }
.esw-req { color: #DC2626; }

.esw-input, .esw-select, .esw-textarea {
    width: 100%; padding: 0.55rem 0.75rem;
    border: 1.5px solid #D1D5DB; border-radius: 8px;
    font-size: 0.95rem; font-family: inherit;
    transition: border-color 0.15s;
    box-sizing: border-box;
}
.esw-input:focus, .esw-select:focus, .esw-textarea:focus {
    outline: 2px solid #6B21A8;
    outline-offset: 2px;
    border-color: #6B21A8;
    box-shadow: 0 0 0 3px rgba(107,33,168,.15);
}
.esw-input.esw-field--invalid,
.esw-select.esw-field--invalid,
.esw-textarea.esw-field--invalid { border-color: #DC2626; }
.esw-error { display: block; color: #DC2626; font-size: 0.8rem; margin-top: 0.2rem; }
.esw-step-error {
    background: #FEF2F2;
    border: 1px solid #FCA5A5;
    border-radius: 8px;
    color: #DC2626;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
}

/* Checkbox / radio groups */
.esw-check-label, .esw-radio-label {
    display: flex; align-items: flex-start; gap: 0.5rem;
    font-size: 0.9rem; cursor: pointer; line-height: 1.3;
}
.esw-check-label input, .esw-radio-label input { margin-top: 0.15rem; flex-shrink: 0; accent-color: #6B21A8; }
.esw-checkbox-group, .esw-radio-group { display: flex; flex-direction: column; gap: 0.5rem; }

/* Accessibility checkbox grid */
.esw-access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; }
@media (max-width: 540px) { .esw-access-grid { grid-template-columns: 1fr; } }

/* Conditional wrappers */
.esw-conditional { margin-top: 0.75rem; }

/* Section label */
.esw-section-label {
    font-size: 0.8rem; font-weight: 700; color: #6B21A8; text-transform: uppercase;
    letter-spacing: 0.06em; margin: 1.5rem 0 0.75rem; display: block;
}

/* Navigation */
.esw-nav {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid #E9D5FF;
}

/* Privacy note */
.esw-privacy { font-size: 0.8rem; color: #6B7280; margin-bottom: 1.25rem; }

/* File input */
.esw-file-hint { font-size: 0.8rem; color: #6B7280; margin-top: 0.25rem; display: block; }

/* ==========================================================================
   ACCESSIBILITY UTILITIES
   ========================================================================== */

/* ── Screen-reader-only text ─────────────────────────────────────────────── */
/* .sr-only hides content visually but keeps it available to assistive tech.  */
/* Use for supplementary context (e.g. "required", off-screen labels).        */
.sr-only,
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ── Session timeout warning ─────────────────────────────────────────────── */
.sp-session-warning {
	position: fixed;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9999;
	background: #1E1B4B;
	color: #FFFFFF;
	border: 2px solid #FBBF24;
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	max-width: 420px;
	width: calc(100% - 2rem);
	box-shadow: 0 4px 24px rgba(0,0,0,0.5);
	font-family: 'Nunito', sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	display: none;
}

.sp-session-warning[aria-hidden="false"] {
	display: block;
}

.sp-session-warning__title {
	font-weight: 800;
	color: #FBBF24;
	margin-bottom: 0.5rem;
	font-size: 1.05rem;
}

.sp-session-warning__actions {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
	flex-wrap: wrap;
}

.sp-session-warning__stay {
	background: #FBBF24;
	color: #1E1B4B;
	border: none;
	border-radius: 9999px;
	padding: 0.5rem 1.25rem;
	font-weight: 800;
	font-size: 0.9rem;
	cursor: pointer;
}

.sp-session-warning__dismiss {
	background: transparent;
	color: rgba(255,255,255,0.7);
	border: 1px solid rgba(255,255,255,0.3);
	border-radius: 9999px;
	padding: 0.5rem 1.25rem;
	font-size: 0.9rem;
	cursor: pointer;
}
.sp-session-warning__always {
	display: block;
	margin-top: 0.75rem;
	background: none;
	border: none;
	padding: 0;
	color: rgba(255,255,255,0.5);
	font-size: 0.8rem;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.sp-session-warning__always:hover {
	color: rgba(255,255,255,0.85);
}

/* ── Reduced motion ──────────────────────────────────────────────────────── */
/* Respects the OS-level "reduce motion" accessibility preference.            */
/* Disables decorative animations for users with vestibular disorders,        */
/* epilepsy, motion sensitivity, or cognitive overload.                       */
@media (prefers-reduced-motion: reduce) {
	/* Stop all CSS animations and transitions site-wide */
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	/* Sennie skipping animation — journey section */
	.journey__skip-frame {
		display: none;
	}

	/* Pulsing "We are here" dot */
	.journey__here-dot {
		animation: none;
		box-shadow: 0 0 0 3px rgba(251,191,36,0.5);
	}

	/* Sticky header slide-in — instant instead of animated */
	.sp-sticky {
		transition: none;
	}

	/* Filter loading pulse */
	.sb-loading {
		opacity: 0.6;
	}
}


/* ── Sidebar tail: "more below" hint + sticky Find button ─────────────────── */
.sb-more-hint {
  position: sticky;
  bottom: 64px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin: 0 0.5rem;
  padding: 0.4rem 0.7rem;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 30%, #fff 100%);
  font-family: 'Nunito', sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  color: #6B21A8;
  letter-spacing: 0.02em;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .25s, transform .25s;
  pointer-events: none;
}
.sb-more-hint--visible {
  opacity: 1;
  transform: translateY(0);
}
.sb-more-hint__paw {
  display: inline-block;
  font-size: 0.85rem;
}
.sb-more-hint__arrow {
  display: inline-block;
  font-weight: 900;
  font-size: 1rem;
  color: #FBBF24;
  animation: sbMoreBounce 1.4s ease-in-out infinite;
}
@keyframes sbMoreBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(3px); }
}
@media (prefers-reduced-motion: reduce) {
  .sb-more-hint__arrow { animation: none; }
}

.sb-find-bar {
  flex-shrink: 0;
  padding: 0.7rem 0.9rem calc(0.7rem + env(safe-area-inset-bottom)) 0.9rem;
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -4px 12px -4px rgba(30,10,60,.08);
  border-radius: 0 0 var(--radius) var(--radius);
}
.sb-find-bar__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 48px;
  padding: 0.7rem 1rem;
  background: linear-gradient(180deg, #FBBF24 0%, #F59E0B 100%);
  color: #1F1305;
  border: 0;
  border-radius: 9999px;
  font-family: 'Fredoka', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 0 #B45309, 0 6px 12px rgba(180,83,9,.25);
  transition: transform .12s, box-shadow .12s, filter .15s;
}
.sb-find-bar__btn:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 5px 0 #B45309, 0 7px 14px rgba(180,83,9,.3);
}
.sb-find-bar__btn:active {
  transform: translateY(2px);
  box-shadow: 0 2px 0 #B45309, 0 3px 6px rgba(180,83,9,.2);
}
.sb-find-bar__btn:focus-visible {
  outline: 3px solid #6B21A8;
  outline-offset: 2px;
}
.sb-find-bar__icon { font-size: 1.1rem; line-height: 1; }
.sb-find-bar__label { white-space: nowrap; }

/* ── Sidebar polish: bigger icons, Fredoka group labels ───────────────────── */
.sb-group__icon {
  width: 38px !important;
  height: 38px !important;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  color: #fff;
  box-shadow: 0 2px 4px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.2);
  flex-shrink: 0;
}
.sb-group__label {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.98rem !important;
  letter-spacing: -0.005em;
}

/* Hide legacy page title in case any cached page still renders it */
.events-page-title { display: none; }

/* ─── Discount Cards → NTS cross-link strip ─────────────────────────────── */

.dch-nts-strip {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  background: #f5f0ff;
  border-radius: 16px;
  padding: 1.5rem 1.75rem;
  margin-top: 2.5rem;
}
.dch-nts-strip__icon { font-size: 2rem; flex-shrink: 0; }
.dch-nts-strip__body h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.1rem;
  color: var(--sp-purple-dark);
  margin-bottom: 0.35rem;
}
.dch-nts-strip__body p {
  font-size: 0.9rem;
  color: #4b5563;
  margin-bottom: 0.75rem;
  line-height: 1.6;
}
.dch-nts-strip__cta {
  display: inline-block;
  background: var(--sp-purple);
  color: #fff;
  padding: 0.5rem 1.1rem;
  border-radius: 99px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
}
.dch-nts-strip__cta:hover { background: var(--sp-purple-dark); }
@media (max-width: 600px) { .dch-nts-strip { flex-direction: column; gap: 0.75rem; } }

/* ─── Navigating the System ──────────────────────────────────────────────── */

/* Sennie intro block */
.nts-sennie-intro {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  background: linear-gradient(135deg, #3B0764 0%, #6B21A8 100%);
  border-radius: 16px;
  padding: 1.5rem 1.75rem;
  margin-bottom: 1.75rem;
}
.nts-sennie-intro__img {
  flex-shrink: 0;
  width: 90px;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
  align-self: flex-end;
}
.nts-sennie-intro__bubble {
  flex: 1;
  background: rgba(255,255,255,0.12);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  position: relative;
}
.nts-sennie-intro__bubble::before {
  content: '';
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-right-color: rgba(255,255,255,0.12);
}
.nts-sennie-intro__name {
  display: block;
  font-family: 'Fredoka', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--sp-yellow);
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.nts-sennie-intro__bubble p {
  margin: 0;
  color: #fff;
  font-size: 1rem;
  line-height: 1.65;
  font-weight: 500;
}
@media (max-width: 500px) {
  .nts-sennie-intro { flex-direction: column; align-items: center; text-align: center; }
  .nts-sennie-intro__bubble::before { display: none; }
  .nts-sennie-intro__img { width: 80px; }
}

.nts-breadcrumb {
  margin-bottom: 1.25rem;
}
.nts-breadcrumb a {
  color: var(--sp-purple);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
}
.nts-breadcrumb a:hover { text-decoration: underline; }

.nts-checked {
  display: inline-block;
  font-size: 0.8rem;
  color: #6b7280;
  background: #f3f4f6;
  border-radius: 99px;
  padding: 0.3rem 0.85rem;
  margin-bottom: 1.75rem;
}

.nts-intro {
  margin-bottom: 2rem;
}
.nts-intro__lead {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--sp-purple-dark);
  line-height: 1.65;
  margin-bottom: 0.75rem;
}

/* Facts grid */
.nts-facts {
  background: #f5f0ff;
  border-left: 4px solid var(--sp-purple);
  border-radius: 12px;
  padding: 1.5rem 1.75rem;
  margin-bottom: 2.25rem;
}
.nts-facts__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--sp-purple);
  margin-bottom: 1rem;
}
.nts-facts__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.75rem 1.5rem;
}
.nts-fact {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.nts-fact__label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #7c3aed;
}
.nts-fact__value {
  font-size: 0.95rem;
  color: #1f2937;
  font-weight: 500;
}

/* Content sections */
.nts-section {
  margin-bottom: 2rem;
}
.nts-section h2 {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--sp-purple-dark);
  margin-bottom: 0.75rem;
}
.nts-section h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--sp-purple);
  margin-bottom: 0.5rem;
}

.nts-list {
  padding-left: 1.5rem;
  margin-bottom: 0.75rem;
}
.nts-list li {
  margin-bottom: 0.4rem;
  line-height: 1.6;
  color: #374151;
}

/* Steps */
.nts-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.nts-step {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.nts-step__num {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  background: var(--sp-purple);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
  margin-top: 0.1rem;
}
.nts-step__body {
  flex: 1;
}
.nts-step__body strong {
  display: block;
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 0.25rem;
}
.nts-step__body p {
  font-size: 0.95rem;
  color: #4b5563;
  margin: 0;
  line-height: 1.6;
}

/* Rates */
.nts-rates {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}
.nts-rates__block {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 1rem 1.25rem;
}
.nts-rates__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 1rem;
  color: var(--sp-purple);
  margin-bottom: 0.6rem;
}
.nts-rates__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.nts-rates__list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
  gap: 0.5rem;
}
.nts-rates__label { color: #6b7280; }
.nts-rates__amount { font-weight: 700; color: #1f2937; }
.nts-rates__note {
  font-size: 0.9rem;
  color: #4b5563;
}

/* Short breaks tiers */
.nts-tiers {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.nts-tier {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 1rem 1.25rem;
}
.nts-tier p {
  margin: 0;
  font-size: 0.95rem;
  color: #4b5563;
  line-height: 1.6;
}
.nts-tier__label {
  font-family: 'Fredoka', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--sp-purple);
  margin-bottom: 0.35rem;
}

/* Sennie tip */
.nts-tip {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  background: #fffbeb;
  border: 2px solid var(--sp-yellow);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 2rem;
}
.nts-tip__paw {
  font-size: 1.75rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.nts-tip__body {
  font-size: 0.95rem;
  color: #374151;
  line-height: 1.65;
}
.nts-tip__body strong {
  display: block;
  font-family: 'Fredoka', sans-serif;
  font-size: 1rem;
  color: #92400e;
  margin-bottom: 0.3rem;
}

/* Useful links */
.nts-links {
  margin-bottom: 2rem;
}
.nts-links__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.15rem;
  color: var(--sp-purple-dark);
  margin-bottom: 0.85rem;
}
.nts-links__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.nts-link-btn {
  display: inline-block;
  background: var(--sp-purple);
  color: #fff;
  padding: 0.55rem 1.1rem;
  border-radius: 99px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s;
}
.nts-link-btn:hover {
  background: var(--sp-purple-dark);
  transform: translateY(-1px);
}

/* Related guides */
.nts-related {
  border-top: 1px solid #e5e7eb;
  padding-top: 1.75rem;
  margin-top: 2rem;
}
.nts-related__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.1rem;
  color: var(--sp-purple-dark);
  margin-bottom: 0.85rem;
}
.nts-related__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.nts-related__card {
  display: inline-block;
  border: 2px solid var(--sp-purple);
  color: var(--sp-purple);
  padding: 0.5rem 1.1rem;
  border-radius: 99px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.nts-related__card:hover {
  background: var(--sp-purple);
  color: #fff;
}

/* ── Hub page ── */
.nts-hub__intro {
  max-width: 720px;
  margin-bottom: 2.25rem;
  color: #374151;
  line-height: 1.7;
}
.nts-hub__intro p + p { margin-top: 0.75rem; }

.nts-hub__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}
.nts-hub-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 1.5rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  transition: box-shadow 0.2s, transform 0.15s;
}
.nts-hub-card:hover {
  box-shadow: 0 6px 20px rgba(107,33,168,0.12);
  transform: translateY(-2px);
}
.nts-hub-card__icon {
  font-size: 2rem;
}
.nts-hub-card__title {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--sp-purple-dark);
  margin: 0;
  line-height: 1.3;
}
.nts-hub-card__desc {
  font-size: 0.9rem;
  color: #4b5563;
  line-height: 1.6;
  flex: 1;
  margin: 0;
}
.nts-hub-card__cta {
  display: inline-block;
  margin-top: 0.5rem;
  color: var(--sp-purple);
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
}
.nts-hub-card__cta:hover { text-decoration: underline; }

/* Discount cards cross-link strip */
.nts-hub__cards-link { margin-top: 1rem; }
.nts-hub-cards-strip {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  background: #f5f0ff;
  border-radius: 16px;
  padding: 1.5rem 1.75rem;
}
.nts-hub-cards-strip__icon { font-size: 2rem; flex-shrink: 0; }
.nts-hub-cards-strip__body h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.1rem;
  color: var(--sp-purple-dark);
  margin-bottom: 0.35rem;
}
.nts-hub-cards-strip__body p {
  font-size: 0.9rem;
  color: #4b5563;
  margin-bottom: 0.75rem;
  line-height: 1.6;
}
.nts-hub-cards-strip__cta {
  display: inline-block;
  background: var(--sp-purple);
  color: #fff;
  padding: 0.5rem 1.1rem;
  border-radius: 99px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
}
.nts-hub-cards-strip__cta:hover { background: var(--sp-purple-dark); }

@media (max-width: 600px) {
  .nts-hub-cards-strip { flex-direction: column; gap: 0.75rem; }
  .nts-rates { grid-template-columns: 1fr; }
  .nts-facts__grid { grid-template-columns: 1fr; }
  .nts-hub__grid { grid-template-columns: 1fr; }
}


/* ─── Coming Soon Page ───────────────────────────────────────────────────── */

/* Page shell */
.cs-body { margin: 0; padding: 0; font-family: 'Nunito', sans-serif; background: #fff; color: #374151; }
.cs-page  { display: flex; flex-direction: column; min-height: 100vh; }

/* Header */
.cs-header {
  background: linear-gradient(160deg, #2D0A55 0%, #6B21A8 100%);
  padding: 1.25rem 2.5rem;
  display: flex;
  align-items: center;
}
.cs-header__logo { text-decoration: none; }
.cs-logo-img { height: 44px; width: auto; }
.cs-logo-text { font-family: 'Fredoka', sans-serif; font-size: 1.9rem; font-weight: 700; color: #fff; }
.cs-logo-text span { color: var(--sp-yellow); }

/* ── Section 1: Hero ───────────────────────────────────────────────────────── */
.cs-hero {
  background: linear-gradient(160deg, #2D0A55 0%, #6B21A8 100%);
  padding: 4.5rem 2.5rem 0;
  overflow: hidden;
}
.cs-hero__inner {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 0;
  max-width: 960px;
  margin: 0 auto;
  align-items: flex-end;
}
.cs-hero__text {
  padding-bottom: 5rem;
}
.cs-hero__badge {
  display: inline-block;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.9);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.35rem 1.1rem;
  border-radius: 99px;
  margin-bottom: 1.75rem;
}
.cs-hero__headline {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(2.4rem, 3.8vw, 3.75rem);
  font-weight: 600;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 1.25rem;
}
.cs-hero__headline em { color: var(--sp-yellow); font-style: normal; }
.cs-hero__copy {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.82);
  line-height: 1.7;
  max-width: 520px;
  margin: 0 0 2.5rem;
}
.cs-hero__ctas {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.cs-hero__cta {
  font-weight: 700;
  font-size: 1rem;
  padding: 0.9rem 2.25rem;
  border-radius: 99px;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, transform 0.15s;
  white-space: nowrap;
}
.cs-hero__cta--primary {
  background: var(--sp-yellow);
  color: #1a0030;
}
.cs-hero__cta--primary:hover { background: #FCD34D; transform: translateY(-2px); color: #1a0030; }
.cs-hero__cta--ghost {
  background: transparent;
  border: 2px solid rgba(255,255,255,0.45);
  color: #fff;
}
.cs-hero__cta--ghost:hover { border-color: #fff; background: rgba(255,255,255,0.1); transform: translateY(-2px); color: #fff; }
.cs-hero__media {
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.cs-hero__sennie {
  display: block;
  width: 140%;
  object-fit: contain;
  object-position: bottom;
  pointer-events: none;
}

/* ── Section 2: Problem ────────────────────────────────────────────────────── */
.cs-problem {
  background: #fff;
  padding: 5.5rem 2.5rem;
}
.cs-problem__inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 5rem;
  align-items: center;
}
.cs-problem__image { text-align: center; }
.cs-problem__image img { max-width: 260px; width: 100%; height: auto; }
.cs-problem__label {
  font-family: 'Caveat', cursive;
  font-size: 1.1rem;
  color: var(--sp-purple);
  font-weight: 600;
  margin: 0 0 0.5rem;
  display: block;
}
.cs-problem__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 2rem;
  font-weight: 600;
  color: #1a0030;
  margin: 0 0 1.75rem;
  line-height: 1.25;
}
.cs-problem__body p {
  font-size: 1.02rem;
  color: #374151;
  line-height: 1.8;
  margin: 0 0 1rem;
}
.cs-problem__signature {
  display: block;
  margin-top: 1.75rem;
  font-family: 'Caveat', cursive;
  font-size: 1.3rem;
  color: var(--sp-purple);
  font-weight: 600;
}

/* ── Section 3: How it works ───────────────────────────────────────────────── */
.cs-works {
  background: #F5F3FF;
  padding: 5.5rem 2.5rem;
  text-align: center;
}
.cs-works__inner { max-width: 960px; margin: 0 auto; }
.cs-works__label {
  font-family: 'Caveat', cursive;
  font-size: 1.1rem;
  color: var(--sp-purple);
  font-weight: 600;
  margin: 0 0 0.5rem;
  display: block;
}
.cs-works__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 2.1rem;
  font-weight: 600;
  color: #1a0030;
  margin: 0 0 3rem;
}
.cs-works__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  text-align: left;
}
.cs-works__card {
  background: #fff;
  border-radius: 18px;
  padding: 2.25rem 1.75rem;
  box-shadow: 0 2px 16px rgba(107,33,168,0.09);
}
.cs-works__step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  background: #EDE9FE;
  border-radius: 14px;
  font-size: 1.5rem;
  margin-bottom: 1.25rem;
}
.cs-works__card-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: #1a0030;
  margin: 0 0 0.6rem;
}
.cs-works__card-copy {
  font-size: 0.93rem;
  color: #6B7280;
  line-height: 1.65;
  margin: 0;
}

/* ── Section 4: Meet Sennie ────────────────────────────────────────────────── */
.cs-sennie-feat {
  background: #3B0764;
  padding: 5.5rem 2.5rem;
  color: #fff;
}
.cs-sennie-feat__inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.cs-sennie-feat__image { text-align: center; }
.cs-sennie-feat__image img { width: 100%; max-width: 300px; height: auto; display: block; margin: 0 auto; }
.cs-sennie-feat__label {
  font-family: 'Caveat', cursive;
  font-size: 1.1rem;
  color: var(--sp-yellow);
  font-weight: 600;
  margin: 0 0 0.5rem;
  display: block;
}
.cs-sennie-feat__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 2.1rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 1.5rem;
  line-height: 1.25;
}
.cs-sennie-feat__copy {
  font-size: 1rem;
  color: rgba(255,255,255,0.8);
  line-height: 1.75;
  margin: 0;
}

/* ── Section 5: Social proof stat ─────────────────────────────────────────── */
.cs-stat {
  background: #fff;
  padding: 4.5rem 2.5rem;
  text-align: center;
  border-top: 1px solid #E9D5FF;
  border-bottom: 1px solid #E9D5FF;
}
.cs-stat__inner { max-width: 580px; margin: 0 auto; }
.cs-stat__number {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(3.5rem, 9vw, 6rem);
  font-weight: 700;
  color: var(--sp-purple);
  line-height: 1;
  margin: 0 0 0.5rem;
  display: block;
}
.cs-stat__label {
  font-size: 1.15rem;
  color: #374151;
  font-weight: 600;
  margin: 0 0 0.5rem;
}
.cs-stat__sub {
  font-size: 0.88rem;
  color: #9CA3AF;
  margin: 0;
}

/* ── Section 6: Choose your path ──────────────────────────────────────────── */
.cs-paths {
  background: #F5F3FF;
  padding: 5.5rem 2.5rem;
}
.cs-paths__inner { max-width: 960px; margin: 0 auto; }
.cs-paths__label {
  text-align: center;
  font-family: 'Caveat', cursive;
  font-size: 1.1rem;
  color: var(--sp-purple);
  font-weight: 600;
  margin: 0 0 0.5rem;
  display: block;
}
.cs-paths__heading {
  text-align: center;
  font-family: 'Fredoka', sans-serif;
  font-size: 2.1rem;
  font-weight: 600;
  color: #1a0030;
  margin: 0 0 3rem;
}
.cs-paths__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}
.cs-path {
  border-radius: 22px;
  padding: 2.75rem 2.25rem;
}
.cs-path--family {
  background: linear-gradient(145deg, #4C1D95, #7C3AED);
  color: #fff;
}
.cs-path--organiser {
  background: #fff;
  border: 2px solid #E9D5FF;
  color: #1a0030;
}
.cs-path__icon { font-size: 2.75rem; display: block; margin-bottom: 1rem; }
.cs-path__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.55rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}
.cs-path--family .cs-path__heading { color: #fff; }
.cs-path--organiser .cs-path__heading { color: #1a0030; }
.cs-path__copy { font-size: 0.95rem; line-height: 1.7; margin: 0 0 1.75rem; }
.cs-path--family .cs-path__copy { color: rgba(255,255,255,0.82); }
.cs-path--organiser .cs-path__copy { color: #4B5563; }

/* MailerLite overrides inside purple family card */
.cs-path--family .ml-form-embedWrapper,
.cs-path--family .ml-form-embedBody { background: transparent !important; padding: 0 !important; }
.cs-path--family .ml-form-fieldRow { margin-bottom: 0.65rem !important; }
.cs-path--family .form-control {
  background: rgba(255,255,255,0.15) !important;
  border: 1px solid rgba(255,255,255,0.3) !important;
  color: #fff !important;
  border-radius: 10px !important;
  padding: 0.7rem 1rem !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.95rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.cs-path--family .form-control::placeholder { color: rgba(255,255,255,0.55) !important; }
.cs-path--family .ml-form-checkboxRow { margin: 0.75rem 0 1rem !important; }
.cs-path--family .label-description,
.cs-path--family .label-description strong { color: rgba(255,255,255,0.8) !important; font-size: 0.85rem !important; }
.cs-path--family .ml-form-embedSubmit { margin-top: 0.5rem !important; }
.cs-path--family button.primary {
  background: var(--sp-yellow) !important;
  color: #1a0030 !important;
  border: none !important;
  border-radius: 99px !important;
  padding: 0.8rem 1.5rem !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  font-family: 'Nunito', sans-serif !important;
  cursor: pointer !important;
  width: 100% !important;
  transition: background 0.2s !important;
}
.cs-path--family button.primary:hover { background: #FCD34D !important; }
.cs-path--family .ml-form-successContent h4 { color: #fff !important; }
.cs-path--family .ml-form-successContent p { color: rgba(255,255,255,0.85) !important; }
.cs-path--family .ml-field-label { color: #fff !important; }

/* Organiser path perk list + CTA */
.cs-path__perks {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.cs-path__perks li {
  font-size: 0.9rem;
  color: #4B5563;
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  line-height: 1.5;
}
.cs-path__perks li::before { content: '✓'; color: var(--sp-purple); font-weight: 700; flex-shrink: 0; }
.cs-path__cta {
  display: block;
  background: var(--sp-purple);
  color: #fff;
  text-decoration: none;
  text-align: center;
  font-weight: 700;
  font-size: 1rem;
  padding: 0.9rem 1.5rem;
  border-radius: 99px;
  transition: background 0.2s, transform 0.15s;
}
.cs-path__cta:hover { background: #4C1D95; transform: translateY(-2px); color: #fff; }

/* Organiser location toggle */
.cs-org-toggle {
  display: flex;
  border: 2px solid #6B21A8;
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 1.5rem;
}
.cs-org-toggle__btn {
  flex: 1;
  padding: 0.55rem 0.75rem;
  font-size: 0.82rem;
  font-weight: 700;
  font-family: 'Nunito', sans-serif;
  border: none;
  background: transparent;
  color: #6B21A8;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  line-height: 1.3;
}
.cs-org-toggle__btn--active {
  background: #6B21A8;
  color: #fff;
}
.cs-org-panel__copy {
  font-size: 0.95rem;
  line-height: 1.7;
  color: #4B5563;
  margin: 0 0 1.25rem;
}

/* Outside-SY waitlist form */
.cs-org-waitlist {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0;
}
.cs-org-waitlist__label {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1a0030;
  margin-bottom: -0.2rem;
}
.cs-org-waitlist__input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.65rem 1rem;
  border: 1px solid #D1B4F5;
  border-radius: 10px;
  font-family: 'Nunito', sans-serif;
  font-size: 0.9rem;
  color: #1a0030;
  background: #fff;
  outline: none;
  transition: border-color 0.2s;
}
.cs-org-waitlist__input:focus { border-color: #6B21A8; }
.cs-org-waitlist__submit {
  margin-top: 0.75rem;
  width: 100%;
  border: none;
  cursor: pointer;
  font-family: 'Nunito', sans-serif;
}
.cs-org-waitlist__note { display: none; }
.cs-org-waitlist__success { text-align: center; color: #4B5563; font-size: 0.95rem; padding: 1rem 0; }

/* ── Section 7: Organiser form ─────────────────────────────────────────────── */
.cs-org-form {
  background: #fff;
  padding: 5.5rem 2.5rem;
  border-top: 1px solid #E9D5FF;
}
.cs-org-form__inner { max-width: 780px; margin: 0 auto; }
.cs-org-form__intro { text-align: center; margin-bottom: 3rem; }
.cs-org-form__label {
  font-family: 'Caveat', cursive;
  font-size: 1.1rem;
  color: var(--sp-purple);
  font-weight: 600;
  margin: 0 0 0.5rem;
  display: block;
}
.cs-org-form__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 2.1rem;
  font-weight: 600;
  color: #1a0030;
  margin: 0 0 0.75rem;
}
.cs-org-form__copy {
  font-size: 1rem;
  color: #6B7280;
  line-height: 1.65;
  max-width: 520px;
  margin: 0 auto;
}

/* Organiser form success */
.cs-org-success {
  background: #F0FDF4;
  border: 2px solid #86EFAC;
  border-radius: 18px;
  padding: 3rem 2.5rem;
  text-align: center;
  max-width: 520px;
  margin: 0 auto;
}
.cs-org-success__check {
  width: 56px;
  height: 56px;
  background: #22C55E;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: #fff;
  font-weight: 700;
  margin: 0 auto 1.25rem;
}
.cs-org-success__title {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.65rem;
  color: #15803D;
  margin: 0 0 0.75rem;
}
.cs-org-success__copy { font-size: 0.95rem; color: #374151; margin: 0 0 0.5rem; line-height: 1.65; }
.cs-org-success__copy a { color: var(--sp-purple); }

/* ── Facebook + Footer ─────────────────────────────────────────────────────── */
.cs-social {
  background: linear-gradient(160deg, #2D0A55 0%, #4C1D95 100%);
  padding: 4.5rem 2.5rem;
  text-align: center;
  color: #fff;
}
.cs-social__inner { max-width: 540px; margin: 0 auto; }
.cs-social__heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.7rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 0.75rem;
}
.cs-social__copy { font-size: 0.95rem; color: rgba(255,255,255,0.8); line-height: 1.65; margin: 0 0 2rem; }
.cs-social__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: #1877F2;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.8rem 1.75rem;
  border-radius: 99px;
  transition: background 0.2s, transform 0.15s;
}
.cs-social__btn:hover { background: #1565d8; transform: translateY(-2px); }
.cs-footer {
  padding: 1.5rem 2.5rem;
  text-align: center;
  background: #13002B;
}
.cs-footer p { color: #a78bfa; font-size: 0.85rem; margin: 0; }
.cs-footer a { color: #c4b5fd; text-decoration: underline; }
.cs-footer a:hover { color: #fff; }

/* ── Mobile ─────────────────────────────────────────────────────────────────── */
@media (max-width: 720px) {
  .cs-header { padding: 1rem 1.25rem; }
  .cs-hero { padding: 3.5rem 1.25rem 0; }
  .cs-hero__inner { grid-template-columns: 1fr; }
  .cs-hero__text { padding-bottom: 3.5rem; }
  .cs-hero__media { display: none; }
  .cs-problem { padding: 4rem 1.25rem; }
  .cs-problem__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .cs-problem__image { order: -1; }
  .cs-problem__image img { max-width: 180px; }
  .cs-works { padding: 4rem 1.25rem; }
  .cs-works__cards { grid-template-columns: 1fr; }
  .cs-sennie-feat { padding: 4rem 1.25rem; }
  .cs-sennie-feat__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .cs-sennie-feat__image { order: -1; }
  .cs-stat { padding: 3.5rem 1.25rem; }
  .cs-paths { padding: 4rem 1.25rem; }
  .cs-paths__grid { grid-template-columns: 1fr; }
  .cs-org-form { padding: 4rem 1.25rem; }
  .cs-social { padding: 3.5rem 1.25rem; }
}

/* ─── Attendance Prompt ──────────────────────────────────────────────────── */

.attendance-prompt {
	background: #F5F3FF;
	border: 2px solid #6B21A8;
	border-radius: 12px;
	padding: 1rem 1.25rem;
	margin-top: 0.75rem;
}

.attendance-prompt__question {
	font-size: 0.95rem;
	color: #1F1235;
	margin: 0 0 0.75rem;
}

.attendance-prompt__actions {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.attendance-prompt__btn {
	padding: 0.4rem 1rem;
	border-radius: 99px;
	font-size: 0.875rem;
	cursor: pointer;
	border: 2px solid transparent;
	transition: background 0.15s;
}

.attendance-prompt__btn--yes  { background: #6B21A8; color: #fff; }
.attendance-prompt__btn--no   { background: #fff; color: #6B21A8; border-color: #6B21A8; }
.attendance-prompt__btn--skip { background: transparent; color: #9CA3AF; font-size: 0.8rem; }

.attendance-prompt__feedback { margin-top: 0.75rem; }

.attendance-prompt__feedback-label { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.5rem; }

.attendance-prompt__match-options { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.75rem; }

.attendance-prompt__match {
	padding: 0.35rem 0.9rem;
	border-radius: 99px;
	border: 2px solid #6B21A8;
	background: #fff;
	color: #6B21A8;
	font-size: 0.85rem;
	cursor: pointer;
}

.attendance-prompt__match--selected { background: #6B21A8; color: #fff; }

.attendance-prompt__text {
	width: 100%;
	border: 1px solid #D1D5DB;
	border-radius: 8px;
	padding: 0.5rem;
	font-size: 0.875rem;
	resize: vertical;
	min-height: 60px;
	margin-bottom: 0.5rem;
}

.attendance-prompt__submit {
	background: #FBBF24;
	color: #1F1235;
	border: none;
	border-radius: 99px;
	padding: 0.4rem 1.25rem;
	font-weight: 600;
	cursor: pointer;
}

.attendance-prompt__consent {
	font-size: 0.75rem;
	color: #9CA3AF;
	margin-top: 0.5rem;
}

.attendance-prompt__thanks {
	font-size: 0.9rem;
	color: #6B21A8;
	font-weight: 600;
	margin: 0;
}

/* ── Save Picker Popover ─────────────────────────────────────────────────── */
.sp-save-popover {
	position: absolute;
	z-index: 300;
	background: #fff;
	border: 2px solid #6B21A8;
	border-radius: 0.5em;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
	padding: 0.4em;
	width: 14em;
	max-width: 90vw;
}

.sp-save-popover[hidden] { display: none; }

.sp-save-popover__options {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sp-save-popover__option {
	display: block;
	width: 100%;
	text-align: left;
	background: none;
	border: none;
	border-radius: 0.3em;
	padding: 0.6em 0.8em;
	font-size: 0.9em;
	line-height: 1.3;
	cursor: pointer;
	color: #1f2937;
}

.sp-save-popover__option:hover,
.sp-save-popover__option:focus {
	background: #6B21A8;
	color: #fff;
	outline: none;
}

.sp-save-popover__option:focus-visible {
	outline: 2px solid #FBBF24;
	color: #fff;
	background: #6B21A8;
	outline-offset: 2px;
}
