/*
 * Neuro-Sparks Ticket Booking — front-end UI
 * Version 6.0.0
 */

.wbm-booking-shell,
.wbm-booking-shell * {
	box-sizing: border-box;
}

.wbm-booking-shell {
	--wbm-purple: #423261;
	--wbm-purple-dark: #2e2147;
	--wbm-lilac: #ca8fed;
	--wbm-lilac-light: #ead0f9;
	--wbm-cream: #f6ece0;
	--wbm-cream-light: #fcf8f3;
	--wbm-text: #4b4055;
	--wbm-muted: #756b7c;
	--wbm-border: rgba(66, 50, 97, 0.14);
	--wbm-border-strong: rgba(66, 50, 97, 0.24);
	--wbm-white: #f7f7f7;
	--wbm-green: #2f7a58;
	--wbm-green-soft: #eaf6f0;
	--wbm-amber: #9a6418;
	--wbm-amber-soft: #f4eadc;
	--wbm-red: #a94355;
	--wbm-red-soft: #f4e7ea;

	position: relative;
	isolation: isolate;
	width: 100%;
	overflow: hidden;
	padding: clamp(22px, 3.2vw, 46px) 20px;
	background:
		radial-gradient(circle at 96% 7%, rgba(202, 143, 237, 0.17), transparent 26%),
		radial-gradient(circle at 2% 96%, rgba(66, 50, 97, 0.055), transparent 28%),
		linear-gradient(180deg, var(--wbm-cream-light), var(--wbm-cream));
	color: var(--wbm-text);
	font-family: "Lato", Arial, sans-serif;
}

.wbm-booking-decoration {
	position: absolute;
	z-index: -1;
	border-radius: 999px;
	pointer-events: none;
}

.wbm-booking-decoration-one {
	top: 7%;
	right: -92px;
	width: 286px;
	height: 286px;
	border: 1px solid rgba(202, 143, 237, 0.22);
}

.wbm-booking-decoration-two {
	right: 42px;
	bottom: -98px;
	width: 210px;
	height: 210px;
	border: 42px solid rgba(66, 50, 97, 0.035);
}

.wbm-booking-shell-inner {
	position: relative;
	z-index: 1;
	width: min(1220px, 100%);
	margin: 0 auto;
}

.wbm-booking-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.62fr);
	gap: clamp(34px, 7vw, 92px);
	align-items: end;
	margin-bottom: clamp(38px, 5vw, 60px);
}

.wbm-booking-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	margin-bottom: 20px;
	color: var(--wbm-purple);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.wbm-booking-eyebrow-icon {
	display: grid;
	width: 32px;
	height: 32px;
	place-items: center;
	border: 1px solid rgba(66, 50, 97, 0.22);
	border-radius: 50%;
	background: rgba(202, 143, 237, 0.18);
}

.wbm-booking-eyebrow-icon svg,
.wbm-booking-shell svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.wbm-booking-eyebrow-icon svg {
	width: 17px;
	height: 17px;
}

.wbm-booking-intro h2 {
	max-width: 860px;
	margin: 0;
	color: var(--wbm-purple);
	font-family: "Anton", Impact, sans-serif;
	font-size: clamp(48px, 6vw, 78px);
	font-weight: 400;
	line-height: 0.99;
	text-transform: uppercase;
}

.wbm-booking-intro h2 span {
	color: var(--wbm-lilac);
}

.wbm-booking-intro > p {
	margin: 0;
	padding-left: 26px;
	border-left: 3px solid var(--wbm-lilac);
	font-size: 17px;
	line-height: 1.68;
}

.wbm-booking-app {
	position: relative;
	width: 100%;
	min-width: 0;
	padding: clamp(18px, 3vw, 30px);
	border: 1px solid var(--wbm-border);
	border-radius: 30px;
	background: rgba(247, 247, 247, 0.78);
	box-shadow: 0 28px 84px rgba(66, 50, 97, 0.12);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.wbm-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 22px;
	padding: 7px;
	border: 1px solid var(--wbm-border);
	border-radius: 18px;
	background: rgba(246, 236, 224, 0.72);
}

.wbm-steps span {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 0;
	padding: 11px 9px;
	border-radius: 13px;
	color: var(--wbm-muted);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-align: center;
	text-transform: uppercase;
	transition: background-color 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.wbm-steps span b {
	font-family: "Anton", Impact, sans-serif;
	font-size: 13px;
	font-weight: 400;
}

.wbm-steps span.is-active {
	background: var(--wbm-purple);
	color: #f7f7f7;
	box-shadow: 0 10px 24px rgba(66, 50, 97, 0.2);
}

.wbm-flow-stage,
.wbm-flow-panel,
.wbm-flow-panel.is-prev,
.wbm-flow-panel.is-next {
	position: relative !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	overflow: visible !important;
	transform: none !important;
	transition: none !important;
}

.wbm-flow-panel,
.wbm-flow-panel.is-prev,
.wbm-flow-panel.is-next {
	display: none !important;
}

.wbm-flow-panel.is-active {
	display: block !important;
}

.wbm-panel {
	padding: clamp(20px, 4vw, 38px);
	border: 1px solid var(--wbm-border);
	border-radius: 24px;
	background: rgba(247, 247, 247, 0.86);
}

.wbm-panel-heading {
	max-width: 820px;
	margin-bottom: 28px;
}

.wbm-panel-kicker {
	display: inline-flex;
	margin-bottom: 10px;
	color: var(--wbm-lilac);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.wbm-panel h3,
.wbm-panel h4,
.wbm-panel p {
	box-sizing: border-box;
}

.wbm-panel h3 {
	margin: 0;
	color: var(--wbm-purple);
	font-family: "Anton", Impact, sans-serif;
	font-size: clamp(35px, 5vw, 54px);
	font-weight: 400;
	line-height: 1.02;
	text-transform: uppercase;
}

.wbm-muted {
	margin: 12px 0 0;
	color: var(--wbm-muted);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.65;
}

.wbm-back-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 22px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wbm-purple);
	font: inherit;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}

.wbm-back-btn svg {
	width: 19px;
	height: 19px;
	transition: transform 180ms ease;
}

.wbm-back-btn:hover svg,
.wbm-back-btn:focus-visible svg {
	transform: translateX(-4px);
}

.wbm-back-btn:focus-visible,
.wbm-experience-card:focus-visible,
.wbm-date:focus-visible,
.wbm-time:focus-visible,
.wbm-price-option:focus-visible,
.wbm-book-btn:focus-visible,
.wbm-ticket-qty-minus:focus-visible,
.wbm-ticket-qty-plus:focus-visible {
	outline: 3px solid rgba(202, 143, 237, 0.45);
	outline-offset: 3px;
}

/* Session groups and cards */
.wbm-experience-group {
	margin-top: 24px;
}

.wbm-experience-group + .wbm-experience-group {
	margin-top: 38px;
	padding-top: 34px;
	border-top: 1px solid var(--wbm-border);
}

.wbm-experience-group-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 17px;
}

.wbm-group-icon {
	display: grid;
	width: 48px;
	height: 48px;
	flex: 0 0 48px;
	place-items: center;
	border: 1px solid rgba(202, 143, 237, 0.36);
	border-radius: 15px;
	background: linear-gradient(145deg, rgba(202, 143, 237, 0.24), rgba(246, 236, 224, 0.78));
	color: var(--wbm-purple);
}

.wbm-group-icon svg {
	width: 25px;
	height: 25px;
}

.wbm-experience-group-head h4 {
	margin: 0;
	color: var(--wbm-purple);
	font-size: 19px;
	font-weight: 900;
}

.wbm-experience-group-head p {
	margin: 3px 0 0;
	color: var(--wbm-muted);
	font-size: 14px;
	line-height: 1.45;
}

.wbm-experience-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.wbm-experience-card {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 348px;
	overflow: hidden;
	flex-direction: column;
	align-items: stretch;
	padding: clamp(23px, 3vw, 30px);
	border: 1px solid var(--wbm-border);
	border-radius: 22px;
	background: rgba(247, 247, 247, 0.82);
	box-shadow: 0 18px 45px rgba(66, 50, 97, 0.07);
	color: var(--wbm-text);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease, background-color 240ms ease;
}

.wbm-experience-card::before {
	content: "";
	position: absolute;
	top: -92px;
	right: -72px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: rgba(202, 143, 237, 0.13);
	pointer-events: none;
	transition: transform 420ms ease;
}

.wbm-experience-card::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 4px;
	background: linear-gradient(90deg, transparent, var(--wbm-lilac), var(--wbm-purple), transparent);
	transform: scaleX(0.18);
	transform-origin: left;
	transition: transform 350ms ease;
}

.wbm-experience-card:hover,
.wbm-experience-card.is-selected {
	transform: translateY(-6px);
	border-color: rgba(202, 143, 237, 0.72);
	background: #f7f7f7;
	box-shadow: 0 27px 65px rgba(66, 50, 97, 0.14);
}

.wbm-experience-card:hover::before,
.wbm-experience-card.is-selected::before {
	transform: scale(1.17) translate(-8px, 10px);
}

.wbm-experience-card:hover::after,
.wbm-experience-card.is-selected::after {
	transform: scaleX(1);
}

.wbm-experience-card-top {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 24px;
}

.wbm-card-number {
	color: var(--wbm-lilac);
	font-family: "Anton", Impact, sans-serif;
	font-size: 14px;
	letter-spacing: 0.1em;
}

.wbm-card-icon {
	display: grid;
	width: 54px;
	height: 54px;
	flex: 0 0 54px;
	place-items: center;
	border: 1px solid rgba(202, 143, 237, 0.42);
	border-radius: 16px;
	background: linear-gradient(145deg, rgba(202, 143, 237, 0.25), rgba(246, 236, 224, 0.76));
	color: var(--wbm-purple);
	transition: transform 260ms ease;
}

.wbm-experience-card:hover .wbm-card-icon {
	transform: rotate(-4deg) scale(1.05);
}

.wbm-card-icon svg {
	width: 27px;
	height: 27px;
}

.wbm-experience-badge {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-self: flex-start;
	min-height: 29px;
	margin-bottom: 16px;
	padding: 7px 11px;
	border: 1px solid rgba(66, 50, 97, 0.15);
	border-radius: 999px;
	background: rgba(202, 143, 237, 0.12);
	color: var(--wbm-purple);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wbm-experience-card > strong {
	position: relative;
	z-index: 1;
	margin: 0;
	color: var(--wbm-purple);
	font-family: "Anton", Impact, sans-serif;
	font-size: clamp(29px, 3.6vw, 42px);
	font-weight: 400;
	line-height: 1.04;
	text-transform: uppercase;
}

.wbm-experience-card > small {
	position: relative;
	z-index: 1;
	display: block;
	margin-top: 15px;
	color: var(--wbm-text);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
}

.wbm-card-meta {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-top: 17px;
	color: var(--wbm-muted);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.45;
}

.wbm-card-meta svg {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
}

.wbm-card-footer {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: auto;
	padding-top: 20px;
	border-top: 1px solid var(--wbm-border);
	color: var(--wbm-purple);
	font-family: "Anton", Impact, sans-serif;
	font-size: 14px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.wbm-card-footer svg {
	width: 21px;
	height: 21px;
	transition: transform 180ms ease;
}

.wbm-experience-card:hover .wbm-card-footer svg {
	transform: translateX(5px);
}

.wbm-empty-experiences {
	display: grid;
	justify-items: center;
	gap: 8px;
	padding: clamp(34px, 6vw, 58px) 24px;
	border: 1px dashed rgba(66, 50, 97, 0.28);
	border-radius: 22px;
	background: rgba(246, 236, 224, 0.58);
	text-align: center;
}

.wbm-empty-icon {
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 50%;
	background: rgba(202, 143, 237, 0.18);
	color: var(--wbm-purple);
	font-size: 22px;
}

.wbm-empty-experiences strong {
	color: var(--wbm-purple);
	font-size: 20px;
}

.wbm-empty-experiences span:last-child {
	color: var(--wbm-muted);
}

/* Calendar */
.wbm-calendar-wrap {
	width: 100%;
	max-width: 720px;
	min-width: 0;
	margin: 0 auto;
	padding: clamp(14px, 2.4vw, 22px);
	border-radius: 22px;
	background:
		linear-gradient(145deg, rgba(246, 236, 224, 0.58), rgba(234, 208, 249, 0.14));
}

.wbm-calendar-head {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr) 40px;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
}

.wbm-month-title {
	color: var(--wbm-purple);
	font-family: "Anton", Impact, sans-serif;
	font-size: clamp(25px, 3.5vw, 34px);
	font-weight: 400;
	line-height: 1;
	text-align: center;
	text-transform: uppercase;
}

.wbm-cal-prev,
.wbm-cal-next {
	display: grid;
	width: 40px !important;
	height: 40px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: 40px !important;
	max-height: 40px !important;
	place-items: center;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--wbm-purple-dark) !important;
	font: inherit !important;
	font-size: 32px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	text-transform: none !important;
	cursor: pointer;
	transition: none !important;
	appearance: none;
}

.wbm-cal-prev:hover,
.wbm-cal-next:hover,
.wbm-cal-prev:focus,
.wbm-cal-next:focus,
.wbm-cal-prev:focus-visible,
.wbm-cal-next:focus-visible,
.wbm-cal-prev:active,
.wbm-cal-next:active {
	transform: none !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--wbm-purple-dark) !important;
	outline: 0 !important;
}

.wbm-filter-collapse {
	margin: 0 0 16px;
	border: 1px solid var(--wbm-border);
	border-radius: 17px;
	background: rgba(247, 247, 247, 0.82);
	overflow: hidden;
}

.wbm-filter-collapse summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	padding: 14px 16px;
	color: var(--wbm-purple);
	list-style: none;
	cursor: pointer;
}

.wbm-filter-collapse summary::-webkit-details-marker {
	display: none;
}

.wbm-filter-collapse summary span {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 2px;
}

.wbm-filter-collapse summary strong {
	font-size: 14px;
	font-weight: 900;
}

.wbm-filter-collapse summary small {
	color: var(--wbm-muted);
	font-size: 12px;
}

.wbm-filter-collapse summary em {
	padding: 6px 10px;
	border-radius: 999px;
	background: rgba(202, 143, 237, 0.14);
	font-size: 11px;
	font-style: normal;
	font-weight: 900;
	white-space: nowrap;
}

.wbm-age-filter {
	display: flex;
	position: relative;
	z-index: 5;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0 16px 16px;
}

.wbm-age-filter-chip {
	padding: 9px 12px;
	border: 1px solid var(--wbm-border-strong);
	border-radius: 999px;
	background: #f7f7f7;
	color: var(--wbm-purple);
	font: inherit;
	font-size: 12px;
	font-weight: 900;
	cursor: pointer;
}

.wbm-age-filter-chip:hover,
.wbm-age-filter-chip.is-active {
	border-color: var(--wbm-purple);
	background: var(--wbm-purple);
	color: #f7f7f7;
}

.wbm-calendar {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: clamp(4px, 0.8vw, 9px);
	align-items: stretch;
}

.wbm-day-label {
	padding: 2px 0 8px;
	color: rgba(66, 50, 97, 0.58);
	font-size: 10px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.06em;
	text-align: center;
	text-transform: uppercase;
}

.wbm-date-spacer {
	height: clamp(46px, 7vw, 64px);
	min-height: 0;
}

.wbm-date {
	display: grid !important;
	width: 100% !important;
	height: clamp(46px, 7vw, 64px) !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-height: 64px !important;
	place-content: center !important;
	gap: 3px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--wbm-purple-dark) !important;
	font-family: "Lato", Arial, sans-serif !important;
	font-size: 16px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	cursor: pointer;
	transition: transform 170ms ease, background-color 170ms ease, box-shadow 170ms ease !important;
	appearance: none;
}

.wbm-date strong {
	display: block;
	margin: 0;
	color: inherit;
	font-family: "Lato", Arial, sans-serif !important;
	font-size: clamp(18px, 2.2vw, 23px) !important;
	font-weight: 900 !important;
	line-height: 1 !important;
}

.wbm-date small {
	display: block;
	margin: 0;
	color: inherit;
	font-family: "Lato", Arial, sans-serif !important;
	font-size: 8px !important;
	font-weight: 900 !important;
	line-height: 1 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
}

.wbm-date.available {
	background: rgba(202, 143, 237, 0.19) !important;
	color: var(--wbm-purple-dark) !important;
}

.wbm-date.few {
	background: rgba(246, 236, 224, 0.96) !important;
	color: var(--wbm-purple-dark) !important;
	box-shadow: inset 0 0 0 1px rgba(154, 100, 24, 0.16) !important;
}

.wbm-date.full {
	background: rgba(66, 50, 97, 0.055) !important;
	color: rgba(66, 50, 97, 0.42) !important;
	cursor: not-allowed;
}

.wbm-date.closed {
	background: transparent !important;
	color: rgba(66, 50, 97, 0.27) !important;
	cursor: default;
}

.wbm-date.full,
.wbm-date.closed {
	opacity: 1 !important;
}

.wbm-date:hover:not(:disabled),
.wbm-date.is-selected {
	transform: translateY(-2px) !important;
	background: var(--wbm-purple) !important;
	box-shadow: 0 9px 20px rgba(66, 50, 97, 0.2) !important;
	color: #f7f7f7 !important;
}

.wbm-date::before,
.wbm-date::after {
	display: none !important;
	content: none !important;
}

.wbm-date:disabled {
	pointer-events: none;
}

/* Times and programme date sets */
.wbm-date-times-inline {
	margin-top: 24px;
}

.wbm-inline-times-title {
	margin: 0 0 12px;
	color: var(--wbm-purple);
	font-size: 16px;
	font-weight: 900;
}

.wbm-times,
.wbm-times.wbm-times-inline {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.wbm-time,
.wbm-course-run {
	display: flex;
	min-width: 0;
	min-height: 104px;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	padding: 20px;
	border: 1px solid var(--wbm-border);
	border-radius: 19px;
	background: #f7f7f7;
	color: var(--wbm-purple);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: transform 190ms ease, border-color 190ms ease, box-shadow 190ms ease, background-color 190ms ease;
}

.wbm-time > span {
	display: flex;
	min-width: 0;
	flex-direction: column;
	align-items: flex-start;
	gap: 7px;
}

.wbm-time strong,
.wbm-course-run strong {
	font-family: "Anton", Impact, sans-serif;
	font-size: clamp(22px, 3vw, 31px);
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
}

.wbm-time em,
.wbm-course-run em {
	display: inline-flex;
	padding: 5px 8px;
	border-radius: 999px;
	background: rgba(202, 143, 237, 0.14);
	font-size: 10px;
	font-style: normal;
	font-weight: 900;
	line-height: 1.2;
}

.wbm-time small {
	flex: 0 0 auto;
	padding: 7px 9px;
	border-radius: 999px;
	background: var(--wbm-green-soft);
	color: var(--wbm-green);
	font-size: 10px;
	font-weight: 900;
	white-space: nowrap;
}

.wbm-time:hover:not(:disabled),
.wbm-time.is-selected,
.wbm-course-run:hover:not(:disabled),
.wbm-course-run.is-selected {
	transform: translateY(-4px);
	border-color: rgba(202, 143, 237, 0.72);
	background: rgba(202, 143, 237, 0.09);
	box-shadow: 0 17px 36px rgba(66, 50, 97, 0.12);
}

.wbm-time:disabled,
.wbm-course-run:disabled {
	cursor: not-allowed;
	opacity: 0.56;
}

.wbm-course-run {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 0;
	margin-bottom: 12px;
}

.wbm-course-run strong,
.wbm-course-run small {
	display: block;
}

.wbm-course-run small {
	grid-column: 1;
	margin-top: 7px;
	color: var(--wbm-muted);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.55;
}

.wbm-course-run em {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: center;
	background: var(--wbm-green-soft);
	color: var(--wbm-green);
}

.wbm-course-date-summary {
	margin-bottom: 18px;
	padding: 18px 20px;
	border: 1px solid rgba(202, 143, 237, 0.28);
	border-radius: 18px;
	background: rgba(202, 143, 237, 0.09);
}

.wbm-course-date-summary strong {
	display: block;
	margin-bottom: 8px;
	color: var(--wbm-purple);
	font-size: 16px;
	font-weight: 900;
}

.wbm-course-date-summary ul {
	margin: 0;
	padding-left: 19px;
	color: var(--wbm-text);
	line-height: 1.65;
}

/* Tickets */
.wbm-prices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.wbm-price-option {
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 19px;
	border: 1px solid var(--wbm-border);
	border-radius: 18px;
	background: #f7f7f7;
	color: var(--wbm-text);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: transform 190ms ease, border-color 190ms ease, box-shadow 190ms ease, background-color 190ms ease;
}

.wbm-price-option > span:first-child {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 4px;
}

.wbm-price-option strong {
	color: var(--wbm-purple);
	font-size: 16px;
	font-weight: 900;
	line-height: 1.25;
}

.wbm-price-option small {
	color: var(--wbm-muted);
	font-size: 12px;
	line-height: 1.35;
}

.wbm-price {
	flex: 0 0 auto;
	color: var(--wbm-purple);
	font-family: "Anton", Impact, sans-serif;
	font-size: 24px;
	font-weight: 400;
}

.wbm-price-side {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: flex-end;
	gap: 3px;
}

.wbm-ticket-status {
	color: var(--wbm-purple);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.wbm-price-option.is-unavailable {
	cursor: not-allowed;
	opacity: 0.55;
}

.wbm-price-option.is-unavailable .wbm-ticket-status {
	color: var(--wbm-red);
}

.wbm-price-option:hover,
.wbm-price-option.is-selected {
	transform: translateY(-3px);
	border-color: var(--wbm-purple);
	background: rgba(202, 143, 237, 0.09);
	box-shadow: 0 14px 30px rgba(66, 50, 97, 0.1);
}

.wbm-ticket-quantity {
	margin-top: 13px;
}

.wbm-ticket-quantity-card,
.wbm-siblings,
.wbm-extra-adults {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 17px 19px;
	border: 1px solid var(--wbm-border);
	border-radius: 18px;
	background: rgba(246, 236, 224, 0.55);
}

.wbm-ticket-quantity-card > span {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 3px;
}

.wbm-ticket-quantity-card strong {
	color: var(--wbm-purple);
	font-size: 15px;
	font-weight: 900;
}

.wbm-ticket-quantity-card small {
	color: var(--wbm-muted);
	font-size: 12px;
}

.wbm-quantity-controls,
.wbm-siblings > div,
.wbm-extra-adults > div {
	display: grid;
	grid-template-columns: 40px 46px 40px;
	align-items: center;
	overflow: hidden;
	border: 1px solid var(--wbm-border-strong);
	border-radius: 14px;
	background: #f7f7f7;
}

.wbm-ticket-qty-minus,
.wbm-ticket-qty-plus,
.wbm-addon-minus,
.wbm-addon-plus {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wbm-purple);
	font-size: 22px;
	font-weight: 800;
	cursor: pointer;
}

.wbm-ticket-qty-minus:hover,
.wbm-ticket-qty-plus:hover,
.wbm-addon-minus:hover,
.wbm-addon-plus:hover {
	background: rgba(202, 143, 237, 0.15);
}

.wbm-ticket-qty-input,
.wbm-addon-input {
	width: 46px !important;
	height: 40px;
	padding: 0 !important;
	border: 0 !important;
	border-right: 1px solid var(--wbm-border) !important;
	border-left: 1px solid var(--wbm-border) !important;
	border-radius: 0 !important;
	background: #f7f7f7 !important;
	box-shadow: none !important;
	color: var(--wbm-purple) !important;
	font: inherit !important;
	font-weight: 900 !important;
	text-align: center;
	-moz-appearance: textfield;
}

.wbm-ticket-qty-input::-webkit-outer-spin-button,
.wbm-ticket-qty-input::-webkit-inner-spin-button,
.wbm-addon-input::-webkit-outer-spin-button,
.wbm-addon-input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.wbm-addons {
	margin-top: 14px;
}

.wbm-custom-addons {
	padding-top: 18px;
	border-top: 1px solid var(--wbm-border);
}

.wbm-custom-addons h4 {
	margin: 0 0 11px;
	color: var(--wbm-purple);
	font-size: 16px;
	font-weight: 900;
}

.wbm-custom-addon {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	margin-top: 9px;
	padding: 14px;
	border: 1px solid var(--wbm-border);
	border-radius: 16px;
	background: #f7f7f7;
	cursor: pointer;
}

.wbm-custom-addon input {
	width: 20px;
	height: 20px;
	accent-color: var(--wbm-purple);
}

.wbm-custom-addon span {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 3px;
}

.wbm-custom-addon strong {
	color: var(--wbm-purple);
	font-size: 14px;
	font-weight: 900;
}

.wbm-custom-addon small {
	color: var(--wbm-muted);
	font-size: 12px;
}

.wbm-custom-addon em {
	color: var(--wbm-purple);
	font-style: normal;
	font-weight: 900;
}

.wbm-capacity-note {
	display: none !important;
	margin-top: 13px;
	padding: 11px 13px;
	border-radius: 13px;
	background: var(--wbm-green-soft);
	color: var(--wbm-green);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.45;
}

/* Attendee details */
.wbm-booking-details {
	margin-top: 22px;
	padding: clamp(18px, 3vw, 25px);
	border: 1px solid rgba(202, 143, 237, 0.28);
	border-radius: 21px;
	background: linear-gradient(145deg, rgba(202, 143, 237, 0.1), rgba(246, 236, 224, 0.42));
}

.wbm-booking-details-heading {
	display: flex;
	align-items: flex-start;
	gap: 13px;
	margin-bottom: 20px;
}

.wbm-details-icon {
	display: grid;
	width: 46px;
	height: 46px;
	flex: 0 0 46px;
	place-items: center;
	border: 1px solid rgba(202, 143, 237, 0.42);
	border-radius: 14px;
	background: #f7f7f7;
	color: var(--wbm-purple);
}

.wbm-details-icon svg {
	width: 24px;
	height: 24px;
}

.wbm-booking-details h4 {
	margin: 0;
	color: var(--wbm-purple);
	font-size: 20px;
	font-weight: 900;
}

.wbm-booking-details-heading p {
	margin: 4px 0 0;
	color: var(--wbm-muted);
	font-size: 13px;
	line-height: 1.5;
}

.wbm-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px;
}

.wbm-field-full {
	grid-column: 1 / -1;
}

.wbm-field-label {
	display: block;
	min-width: 0;
	color: var(--wbm-purple);
	font-size: 13px;
	font-weight: 900;
	line-height: 1.4;
}

.wbm-field-label > span {
	color: var(--wbm-red);
}

.wbm-field-label > small {
	color: var(--wbm-muted);
	font-size: 11px;
	font-weight: 700;
}

.wbm-field-label input,
.wbm-field-label textarea {
	display: block;
	width: 100%;
	min-height: 48px;
	margin-top: 7px;
	padding: 12px 14px;
	border: 1px solid var(--wbm-border-strong);
	border-radius: 13px;
	background: #f7f7f7;
	box-shadow: 0 1px 0 rgba(66, 50, 97, 0.02);
	color: var(--wbm-text);
	font: inherit;
	font-size: 15px;
	font-weight: 500;
	transition: border-color 170ms ease, box-shadow 170ms ease;
}

.wbm-field-label textarea {
	min-height: 110px;
	resize: vertical;
}

.wbm-field-label input:focus,
.wbm-field-label textarea:focus {
	border-color: var(--wbm-lilac);
	box-shadow: 0 0 0 4px rgba(202, 143, 237, 0.15);
	outline: 0;
}

.wbm-checkbox-row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 17px;
	color: var(--wbm-text);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.5;
}

.wbm-checkbox-row input {
	width: 19px;
	height: 19px;
	flex: 0 0 19px;
	margin-top: 1px;
	accent-color: var(--wbm-purple);
}

.wbm-checkbox-row a {
	color: var(--wbm-purple);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

/* Total and CTA */
.wbm-checkout-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 22px;
	padding: 16px;
	border: 1px solid var(--wbm-border);
	border-radius: 20px;
	background: #f7f7f7;
	box-shadow: 0 15px 34px rgba(66, 50, 97, 0.08);
}

.wbm-total {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 2px;
}

.wbm-total span {
	color: var(--wbm-muted);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wbm-total strong {
	color: var(--wbm-purple);
	font-family: "Anton", Impact, sans-serif;
	font-size: 32px;
	font-weight: 400;
	line-height: 1;
}

.wbm-book-btn {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 14px 22px;
	border: 1px solid var(--wbm-purple);
	border-radius: 999px;
	background: var(--wbm-purple);
	box-shadow: 0 14px 28px rgba(66, 50, 97, 0.22);
	color: #f7f7f7;
	font: inherit;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 190ms ease, background-color 190ms ease, box-shadow 190ms ease;
}

.wbm-book-btn svg {
	width: 20px;
	height: 20px;
	transition: transform 180ms ease;
}

.wbm-book-btn:hover:not(:disabled) {
	transform: translateY(-2px);
	background: var(--wbm-purple-dark);
	box-shadow: 0 19px 35px rgba(66, 50, 97, 0.27);
}

.wbm-book-btn:hover svg {
	transform: translateX(4px);
}

.wbm-book-btn:disabled {
	cursor: wait;
	opacity: 0.7;
}

.wbm-message {
	display: none;
	margin-top: 14px;
	padding: 13px 15px;
	border-radius: 14px;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.5;
}

.wbm-message:not(:empty) {
	display: block;
}

.wbm-message.error {
	border: 1px solid rgba(169, 67, 85, 0.24);
	background: var(--wbm-red-soft);
	color: var(--wbm-red);
}

.wbm-message.success {
	border: 1px solid rgba(47, 122, 88, 0.24);
	background: var(--wbm-green-soft);
	color: var(--wbm-green);
}

.wbm-loading {
	padding: 28px;
	border: 1px dashed var(--wbm-border-strong);
	border-radius: 18px;
	background: rgba(246, 236, 224, 0.45);
	color: var(--wbm-purple);
	font-weight: 900;
	text-align: center;
}

.wbm-no-motion *,
.wbm-no-motion *::before,
.wbm-no-motion *::after {
	transition: none !important;
}

/* Admin-only selector retained because this stylesheet is enqueued in plugin admin screens. */
.wbm-v4-check-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.wbm-v4-check-card {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border: 1px solid rgba(66, 50, 97, 0.12);
	border-radius: 14px;
	background: #f7f7f7;
	font-weight: 800;
	cursor: pointer;
}

.wbm-v4-check-card input {
	margin: 0;
}

@media (max-width: 980px) {
	.wbm-booking-intro {
		grid-template-columns: 1fr;
	}

	.wbm-booking-intro > p {
		max-width: 720px;
	}

	.wbm-times,
	.wbm-times.wbm-times-inline {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.wbm-experience-grid,
	.wbm-prices {
		grid-template-columns: 1fr;
	}

	.wbm-experience-card {
		min-height: 0;
	}
}

@media (max-width: 680px) {
	.wbm-booking-shell {
		padding: 14px 12px;
	}

	.wbm-booking-intro > p {
		padding-left: 18px;
	}

	.wbm-booking-app {
		padding: 11px;
		border-radius: 22px;
	}

	.wbm-steps {
		grid-template-columns: repeat(3, minmax(82px, 1fr));
		overflow-x: auto;
		scrollbar-width: none;
	}

	.wbm-steps::-webkit-scrollbar {
		display: none;
	}

	.wbm-steps span {
		padding: 10px 7px;
		font-size: 10px;
	}

	.wbm-panel {
		padding: 22px 17px;
		border-radius: 19px;
	}

	.wbm-experience-card {
		padding: 22px 19px;
		border-radius: 19px;
	}

	.wbm-calendar-wrap {
		padding: 12px 8px 14px;
		border-radius: 17px;
	}

	.wbm-calendar-head {
		grid-template-columns: 34px minmax(0, 1fr) 34px;
		margin-bottom: 11px;
	}

	.wbm-cal-prev,
	.wbm-cal-next {
		width: 34px !important;
		height: 34px !important;
		max-width: 34px !important;
		max-height: 34px !important;
		font-size: 29px !important;
	}

	.wbm-calendar {
		gap: 4px;
	}

	.wbm-day-label {
		font-size: 8px;
		letter-spacing: 0.03em;
	}

	.wbm-date,
	.wbm-date-spacer {
		height: 44px !important;
		max-height: 44px !important;
	}

	.wbm-date {
		border-radius: 9px !important;
	}

	.wbm-date strong {
		font-size: 17px !important;
	}

	.wbm-date small {
		font-size: 7px !important;
	}

	.wbm-times,
	.wbm-times.wbm-times-inline {
		grid-template-columns: 1fr;
	}

	.wbm-time {
		min-height: 88px;
		padding: 17px;
	}

	.wbm-form-grid {
		grid-template-columns: 1fr;
	}

	.wbm-field-full {
		grid-column: auto;
	}

	.wbm-checkout-row {
		align-items: stretch;
		flex-direction: column;
	}

	.wbm-book-btn {
		width: 100%;
	}
}

@media (max-width: 460px) {
	.wbm-booking-intro h2 {
		font-size: clamp(42px, 13vw, 58px);
	}

	.wbm-booking-intro > p {
		font-size: 15px;
	}

	.wbm-steps span {
		flex-direction: column;
		gap: 2px;
	}

	.wbm-ticket-quantity-card {
		align-items: flex-start;
		flex-direction: column;
	}

	.wbm-quantity-controls {
		align-self: stretch;
		grid-template-columns: 1fr 54px 1fr;
	}

	.wbm-ticket-qty-minus,
	.wbm-ticket-qty-plus {
		width: 100%;
	}

	.wbm-ticket-qty-input {
		width: 54px !important;
	}

	.wbm-custom-addon {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.wbm-custom-addon em {
		grid-column: 2;
	}

	.wbm-course-run {
		grid-template-columns: 1fr;
	}

	.wbm-course-run em {
		grid-column: 1;
		grid-row: auto;
		justify-self: start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wbm-booking-shell *,
	.wbm-booking-shell *::before,
	.wbm-booking-shell *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* Full-day upgrade prompt */
.wbm-day-upgrade-modal[hidden]{display:none!important}.wbm-day-upgrade-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:20px}.wbm-day-upgrade-backdrop{position:absolute;inset:0;background:rgba(46,33,71,.72);backdrop-filter:blur(5px)}.wbm-day-upgrade-card{position:relative;width:min(520px,100%);padding:34px;border-radius:22px;background:#f7f7f7;box-shadow:0 30px 90px rgba(46,33,71,.3);color:#2e2147}.wbm-day-upgrade-close{position:absolute!important;top:14px!important;right:16px!important;width:38px!important;height:38px!important;padding:0!important;border:0!important;background:transparent!important;color:#423261!important;font-size:30px!important;line-height:1!important;box-shadow:none!important}.wbm-day-upgrade-kicker{display:block;margin-bottom:10px;color:#ca8fed;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.wbm-day-upgrade-card h3{margin:0;color:#423261;font-family:"Anton",Impact,sans-serif;font-size:42px;font-weight:400;line-height:1;text-transform:uppercase}.wbm-day-upgrade-copy{margin:18px 0 0;color:#4b4055;font-size:16px;line-height:1.65}.wbm-day-upgrade-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.wbm-day-upgrade-accept,.wbm-day-upgrade-decline{min-height:50px!important;padding:14px 18px!important;border-radius:7px!important;font-family:"Anton",Impact,sans-serif!important;font-size:14px!important;text-transform:uppercase!important}.wbm-day-upgrade-accept{border:1px solid #423261!important;background:#423261!important;color:#f6ece0!important}.wbm-day-upgrade-decline{border:1px solid rgba(66,50,97,.18)!important;background:#f1e9df!important;color:#423261!important}@media(max-width:560px){.wbm-day-upgrade-card{padding:30px 22px 22px}.wbm-day-upgrade-card h3{font-size:35px}.wbm-day-upgrade-actions{flex-direction:column}.wbm-day-upgrade-actions button{width:100%}}

/* Optional live-status strip for the dynamic hero shortcode */
.ns-training-live-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:#f6ece0}.ns-training-status-date{font-weight:800}.ns-training-status-badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(202,143,237,.16);color:#ca8fed;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.ns-training-hero-links{display:flex;gap:10px;margin-top:14px}.ns-training-hero-links a{color:#ca8fed;font-weight:800}

.wbm-selected-date-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 24px;
    padding: 17px 19px;
    border-radius: 14px;
    background: #ead0f9;
    color: #2e2147;
}

.wbm-selected-date-icon {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 12px;
    background: #ca8fed;
    color: #2e2147;
}

.wbm-selected-date-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wbm-selected-date-banner > span:last-child {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.wbm-selected-date-banner small {
    color: #423261;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.wbm-selected-date-banner strong {
    color: #2e2147;
    font-size: clamp(17px, 2.2vw, 22px);
    line-height: 1.25;
}


/* Neuro-Sparks WooCommerce basket and checkout colour alignment. */
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
    color: #2e2147;
}

body.woocommerce-cart .woocommerce h1,
body.woocommerce-cart .woocommerce h2,
body.woocommerce-cart .woocommerce h3,
body.woocommerce-cart .woocommerce h4,
body.woocommerce-cart .woocommerce h5,
body.woocommerce-cart .woocommerce h6,
body.woocommerce-checkout .woocommerce h1,
body.woocommerce-checkout .woocommerce h2,
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-checkout .woocommerce h4,
body.woocommerce-checkout .woocommerce h5,
body.woocommerce-checkout .woocommerce h6,
body.woocommerce-cart .woocommerce table,
body.woocommerce-checkout .woocommerce table,
body.woocommerce-cart .woocommerce th,
body.woocommerce-cart .woocommerce td,
body.woocommerce-checkout .woocommerce th,
body.woocommerce-checkout .woocommerce td,
body.woocommerce-cart .woocommerce label,
body.woocommerce-checkout .woocommerce label,
body.woocommerce-cart .woocommerce p,
body.woocommerce-checkout .woocommerce p,
body.woocommerce-cart .woocommerce strong,
body.woocommerce-checkout .woocommerce strong,
body.woocommerce-cart .woocommerce .amount,
body.woocommerce-checkout .woocommerce .amount,
body.woocommerce-cart .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name,
body.woocommerce-cart .wc-block-components-formatted-money-amount,
body.woocommerce-checkout .wc-block-components-formatted-money-amount,
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__value {
    color: #2e2147 !important;
}

body.woocommerce-cart .woocommerce a:not(.button):not(.checkout-button),
body.woocommerce-checkout .woocommerce a:not(.button),
body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name {
    color: #423261 !important;
}

body.woocommerce-cart .woocommerce a:not(.button):not(.checkout-button):hover,
body.woocommerce-checkout .woocommerce a:not(.button):hover {
    color: #ca8fed !important;
}

body.woocommerce-cart .woocommerce input,
body.woocommerce-cart .woocommerce select,
body.woocommerce-cart .woocommerce textarea,
body.woocommerce-checkout .woocommerce input,
body.woocommerce-checkout .woocommerce select,
body.woocommerce-checkout .woocommerce textarea,
body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-cart .wc-block-components-combobox-control input,
body.woocommerce-checkout .wc-block-components-combobox-control input {
    color: #2e2147 !important;
    border-color: rgba(66, 50, 97, 0.24) !important;
}

body.woocommerce-cart .woocommerce input:focus,
body.woocommerce-cart .woocommerce select:focus,
body.woocommerce-cart .woocommerce textarea:focus,
body.woocommerce-checkout .woocommerce input:focus,
body.woocommerce-checkout .woocommerce select:focus,
body.woocommerce-checkout .woocommerce textarea:focus {
    border-color: #ca8fed !important;
    outline-color: rgba(202, 143, 237, 0.35) !important;
}

/* Neuro-Sparks WooCommerce basket and checkout layout. */
body.woocommerce-cart,
body.woocommerce-checkout {
    --ns-purple: #423261;
    --ns-purple-dark: #2e2147;
    --ns-purple-deep: #1b1232;
    --ns-lilac: #ca8fed;
    --ns-cream: #f6ece0;
    --ns-cream-light: #fbf5ee;
    background: var(--ns-cream) !important;
    color: var(--ns-purple-dark) !important;
    font-family: "Lato", Arial, sans-serif !important;
}

body.woocommerce-cart main,
body.woocommerce-checkout main,
body.woocommerce-cart #primary,
body.woocommerce-checkout #primary,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    width: min(1240px, calc(100% - 32px));
    margin-right: auto !important;
    margin-left: auto !important;
}

body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    padding-top: clamp(36px, 6vw, 82px) !important;
    padding-bottom: clamp(54px, 8vw, 110px) !important;
}

body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-cart .woocommerce > h1,
body.woocommerce-checkout .woocommerce > h1,
body.woocommerce-cart .wc-block-cart__title,
body.woocommerce-checkout .wc-block-checkout__title {
    margin: 0 0 clamp(24px, 4vw, 42px) !important;
    color: var(--ns-purple-dark) !important;
    font-family: "Anton", Impact, sans-serif !important;
    font-size: clamp(40px, 6vw, 72px) !important;
    font-weight: 400 !important;
    line-height: .98 !important;
    letter-spacing: 0 !important;
    text-transform: uppercase !important;
}

body.woocommerce-cart .woocommerce h2,
body.woocommerce-cart .woocommerce h3,
body.woocommerce-checkout .woocommerce h2,
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-cart .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-cart .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-checkout-step__title {
    color: var(--ns-purple-dark) !important;
    font-family: "Anton", Impact, sans-serif !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: uppercase !important;
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals,
body.woocommerce-checkout .woocommerce-form-coupon,
body.woocommerce-checkout .woocommerce-checkout-review-order,
body.woocommerce-checkout #customer_details,
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar,
body.woocommerce-checkout .wc-block-components-checkout-step,
body.woocommerce-checkout .wc-block-components-order-summary {
    border: 1px solid rgba(66, 50, 97, .14) !important;
    border-radius: 14px !important;
    background: var(--ns-cream-light) !important;
    box-shadow: 0 18px 46px rgba(46, 33, 71, .08) !important;
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout .woocommerce-checkout-review-order,
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
    padding: clamp(20px, 3vw, 34px) !important;
}

body.woocommerce-checkout .woocommerce-form-coupon {
    padding: 20px !important;
}

body.woocommerce-cart table.shop_table,
body.woocommerce-checkout table.shop_table,
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-checkout .wc-block-components-order-summary {
    overflow: hidden;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

body.woocommerce-cart table.shop_table th,
body.woocommerce-checkout table.shop_table th,
body.woocommerce-cart .wc-block-cart-items__header,
body.woocommerce-checkout .wc-block-components-order-summary__content {
    background: rgba(202, 143, 237, .10) !important;
}

body.woocommerce-cart table.shop_table th,
body.woocommerce-checkout table.shop_table th {
    padding: 15px 14px !important;
    border-color: rgba(66, 50, 97, .12) !important;
    color: var(--ns-purple-dark) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

body.woocommerce-cart table.shop_table td,
body.woocommerce-checkout table.shop_table td {
    padding: 17px 14px !important;
    border-color: rgba(66, 50, 97, .10) !important;
    background: transparent !important;
}

body.woocommerce-cart .product-name,
body.woocommerce-checkout .product-name,
body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name {
    color: var(--ns-purple-dark) !important;
    font-weight: 800 !important;
}

body.woocommerce-cart .woocommerce input,
body.woocommerce-cart .woocommerce select,
body.woocommerce-cart .woocommerce textarea,
body.woocommerce-checkout .woocommerce input,
body.woocommerce-checkout .woocommerce select,
body.woocommerce-checkout .woocommerce textarea,
body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-cart .wc-block-components-combobox-control input,
body.woocommerce-checkout .wc-block-components-combobox-control input {
    min-height: 50px !important;
    padding: 12px 14px !important;
    border: 1px solid rgba(66, 50, 97, .24) !important;
    border-radius: 8px !important;
    background: var(--ns-cream) !important;
    color: var(--ns-purple-dark) !important;
    font-family: "Lato", Arial, sans-serif !important;
    box-shadow: none !important;
}

body.woocommerce-cart .woocommerce textarea,
body.woocommerce-checkout .woocommerce textarea {
    min-height: 120px !important;
}

body.woocommerce-cart .woocommerce input:focus,
body.woocommerce-cart .woocommerce select:focus,
body.woocommerce-cart .woocommerce textarea:focus,
body.woocommerce-checkout .woocommerce input:focus,
body.woocommerce-checkout .woocommerce select:focus,
body.woocommerce-checkout .woocommerce textarea:focus,
body.woocommerce-cart .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-text-input input:focus {
    border-color: var(--ns-lilac) !important;
    outline: 3px solid rgba(202, 143, 237, .20) !important;
    outline-offset: 0 !important;
}

body.woocommerce-cart .woocommerce label,
body.woocommerce-checkout .woocommerce label,
body.woocommerce-cart .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-text-input label {
    color: var(--ns-purple-dark) !important;
    font-weight: 800 !important;
}

body.woocommerce-cart .button,
body.woocommerce-checkout .button,
body.woocommerce-cart .checkout-button,
body.woocommerce-checkout #place_order,
body.woocommerce-cart .wc-block-components-button,
body.woocommerce-checkout .wc-block-components-button {
    min-height: 52px !important;
    padding: 14px 22px !important;
    border: 1px solid var(--ns-lilac) !important;
    border-radius: 7px !important;
    background: var(--ns-lilac) !important;
    color: var(--ns-purple-dark) !important;
    font-family: "Anton", Impact, sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease !important;
}

body.woocommerce-cart .button:hover,
body.woocommerce-checkout .button:hover,
body.woocommerce-cart .checkout-button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-cart .wc-block-components-button:hover,
body.woocommerce-checkout .wc-block-components-button:hover,
body.woocommerce-cart .button:focus-visible,
body.woocommerce-checkout .button:focus-visible {
    transform: translateY(-2px);
    border-color: var(--ns-purple-dark) !important;
    background: var(--ns-purple-dark) !important;
    color: var(--ns-cream) !important;
}

body.woocommerce-cart a.remove,
body.woocommerce-cart .wc-block-cart-item__remove-link {
    color: var(--ns-purple) !important;
    font-weight: 800 !important;
}

body.woocommerce-cart a.remove:hover,
body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
    color: var(--ns-lilac) !important;
}

body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #order_review_heading {
    color: var(--ns-purple-dark) !important;
}

body.woocommerce-checkout #payment,
body.woocommerce-checkout .wc-block-checkout__payment-method {
    border-radius: 10px !important;
    background: rgba(202, 143, 237, .09) !important;
}

body.woocommerce-checkout #payment div.payment_box {
    background: var(--ns-cream) !important;
    color: var(--ns-purple-dark) !important;
}

body.woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: var(--ns-cream) !important;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-cart .wc-block-components-notice-banner,
body.woocommerce-checkout .wc-block-components-notice-banner {
    padding: 16px 18px !important;
    border: 1px solid rgba(202, 143, 237, .34) !important;
    border-left: 4px solid var(--ns-lilac) !important;
    border-radius: 8px !important;
    background: var(--ns-cream-light) !important;
    color: var(--ns-purple-dark) !important;
}

@media (max-width: 782px) {
    body.woocommerce-cart main,
    body.woocommerce-checkout main,
    body.woocommerce-cart #primary,
    body.woocommerce-checkout #primary,
    body.woocommerce-cart .site-main,
    body.woocommerce-checkout .site-main,
    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-cart .woocommerce,
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        width: min(100% - 20px, 1240px);
    }

    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-cart .woocommerce,
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        padding-top: 24px !important;
        padding-bottom: 54px !important;
    }

    body.woocommerce-cart .woocommerce-cart-form,
    body.woocommerce-checkout #customer_details,
    body.woocommerce-checkout .woocommerce-checkout-review-order,
    body.woocommerce-cart .wc-block-cart-items,
    body.woocommerce-cart .wc-block-cart__sidebar,
    body.woocommerce-checkout .wc-block-checkout__main,
    body.woocommerce-checkout .wc-block-checkout__sidebar {
        padding: 16px !important;
        border-radius: 10px !important;
    }

    body.woocommerce-cart table.shop_table td,
    body.woocommerce-checkout table.shop_table td {
        padding: 13px 10px !important;
    }
}

/* Upcoming events shortcode: [wbm_upcoming_events] — NeuroSparks training listings */
.wbm-upcoming-events,
.wbm-upcoming-events * {
    box-sizing: border-box;
}

.wbm-upcoming-events {
    --wbm-event-purple: #423261;
    --wbm-event-purple-mid: #6f4b8e;
    --wbm-event-purple-deep: #2e2147;
    --wbm-event-lilac: #ca8fed;
    --wbm-event-cream: #f6ece0;
    --wbm-event-cream-soft: rgba(246, 236, 224, 0.82);
    --wbm-event-cream-muted: rgba(246, 236, 224, 0.64);
    --wbm-event-border: rgba(246, 236, 224, 0.24);
    width: 100%;
    padding: 0;
    background: transparent;
    color: var(--wbm-event-cream);
    font-family: "Lato", Arial, sans-serif;
}

.wbm-upcoming-events-list {
    display: grid;
    gap: 18px;
    width: 100%;
    margin: 0;
}

.wbm-upcoming-date-group {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--wbm-event-border);
    border-radius: 22px;
    background: transparent;
    transition: border-color 180ms ease, background-color 180ms ease;
}

.wbm-upcoming-date-group:hover,
.wbm-upcoming-date-group:focus-within {
    border-color: rgba(202, 143, 237, 0.7);
    background: rgba(246, 236, 224, 0.035);
}

.wbm-upcoming-date-group:focus-within {
    outline: 3px solid rgba(202, 143, 237, 0.28);
    outline-offset: 3px;
}

.wbm-upcoming-date-column {
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    padding: 24px 18px;
    border-right: 1px solid var(--wbm-event-border);
}

.wbm-upcoming-event-date {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 78px;
    min-height: 88px;
    padding: 12px 8px;
    border-radius: 14px;
    background: var(--wbm-event-cream);
    color: var(--wbm-event-purple-deep);
}

.wbm-upcoming-event-date span {
    color: var(--wbm-event-purple-mid);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.15em;
    line-height: 1;
}

.wbm-upcoming-event-date strong {
    margin-top: 7px;
    color: var(--wbm-event-purple-deep);
    font-family: "Anton", Impact, sans-serif;
    font-size: 43px;
    font-weight: 400;
    line-height: 0.92;
}

.wbm-upcoming-date-column > p {
    margin: 0 !important;
    color: var(--wbm-event-cream-soft) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center;
}

.wbm-upcoming-date-sessions {
    min-width: 0;
}

.wbm-upcoming-date-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 17px 24px;
    border-bottom: 1px solid var(--wbm-event-border);
    color: var(--wbm-event-cream-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.wbm-upcoming-session-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 30px;
    min-width: 0;
    padding: 24px;
}

.wbm-upcoming-session-row + .wbm-upcoming-session-row {
    border-top: 1px solid rgba(246, 236, 224, 0.15);
}

.wbm-upcoming-session-main {
    min-width: 0;
}

.wbm-upcoming-event-format {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin: 0 0 10px;
    padding: 6px 10px;
    border: 1px solid rgba(202, 143, 237, 0.36);
    border-radius: 999px;
    background: rgba(202, 143, 237, 0.13);
    color: var(--wbm-event-lilac);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.13em;
    line-height: 1;
    text-transform: uppercase;
}

.wbm-upcoming-session-main h3 {
    margin: 0;
    color: var(--wbm-event-lilac);
    font-family: "Anton", Impact, sans-serif;
    font-size: clamp(30px, 3vw, 46px);
    font-weight: 400;
    line-height: 1.04;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.wbm-upcoming-session-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px 18px;
    margin-top: 14px;
}

.wbm-upcoming-session-meta > span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--wbm-event-cream-soft);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

.wbm-upcoming-session-meta svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: var(--wbm-event-cream);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wbm-upcoming-session-action {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
}

.wbm-upcoming-session-price {
    min-width: 74px;
    color: var(--wbm-event-cream);
    text-align: right;
}

.wbm-upcoming-session-price small {
    display: block;
    color: var(--wbm-event-cream-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
}

.wbm-upcoming-session-price strong {
    display: block;
    margin-top: 5px;
    color: var(--wbm-event-cream);
    font-family: "Anton", Impact, sans-serif;
    font-size: 31px;
    font-weight: 400;
    line-height: 1;
}

.wbm-upcoming-event-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 50px;
    padding: 13px 17px;
    border: 1px solid var(--wbm-event-cream);
    border-radius: 13px;
    background: transparent;
    color: var(--wbm-event-cream);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.wbm-upcoming-event-action:hover {
    border-color: var(--wbm-event-lilac);
    background: var(--wbm-event-lilac);
    color: var(--wbm-event-purple-deep);
}

.wbm-upcoming-event-action:focus {
    outline: 3px solid rgba(202, 143, 237, 0.44);
    outline-offset: 3px;
}

.wbm-upcoming-event-action:active {
    background: var(--wbm-event-cream);
    border-color: var(--wbm-event-cream);
    color: var(--wbm-event-purple-deep);
}

.wbm-upcoming-event-action svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wbm-upcoming-events-empty {
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid var(--wbm-event-border);
    border-radius: 18px;
    background: transparent;
    color: var(--wbm-event-cream);
    text-align: center;
}

.wbm-upcoming-events-empty strong {
    color: var(--wbm-event-lilac);
    font-size: 18px;
}

@media (max-width: 900px) {
    .wbm-upcoming-date-group {
        grid-template-columns: 96px minmax(0, 1fr);
    }

    .wbm-upcoming-date-column {
        padding: 20px 12px;
    }

    .wbm-upcoming-event-date {
        width: 70px;
        min-height: 82px;
    }

    .wbm-upcoming-session-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }

    .wbm-upcoming-session-action {
        justify-content: space-between;
    }
}

@media (max-width: 620px) {
    .wbm-upcoming-date-group {
        grid-template-columns: 1fr;
    }

    .wbm-upcoming-date-column {
        align-items: center;
        flex-direction: row;
        justify-content: flex-start;
        padding: 16px 18px;
        border-right: 0;
        border-bottom: 1px solid var(--wbm-event-border);
    }

    .wbm-upcoming-event-date {
        width: 68px;
        min-height: 70px;
    }

    .wbm-upcoming-event-date strong {
        font-size: 34px;
    }

    .wbm-upcoming-date-column > p {
        font-size: 14px !important;
        text-align: left;
    }

    .wbm-upcoming-date-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
        padding: 15px 18px;
    }

    .wbm-upcoming-session-row {
        padding: 20px 18px;
    }

    .wbm-upcoming-session-main h3 {
        font-size: clamp(28px, 9vw, 38px);
    }

    .wbm-upcoming-session-action {
        align-items: stretch;
        flex-direction: column;
    }

    .wbm-upcoming-session-price {
        text-align: left;
    }

    .wbm-upcoming-event-action {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wbm-upcoming-date-group,
    .wbm-upcoming-event-action {
        transition: none;
    }
}

