/* ==========================================================================
   CPS branded checkout — matches the single-event template
   ========================================================================== */

body.cps-checkout {
	--cps-navy: #23285c;
	--cps-gray: #716c80;
	--cps-purple: #bb89bd;
	--cps-orange: #f79664;
	--cps-blue: #9192c8;
	--cps-bg-tint: #e1e4ed;
	--cps-border: #e7e6ee;
	--cps-gradient: linear-gradient(90deg, #9192c8 0%, #bb89bd 55%, #f79664 100%);
}

.cps-co {
	max-width: 1120px;
	margin: 0 auto;
	padding: 32px 20px 0;
	font-family: 'Nunito', sans-serif;
	color: var(--cps-gray);
	line-height: 1.6;
}
.cps-co *,
.cps-co *::before,
.cps-co *::after { box-sizing: border-box; }
.cps-co h1, .cps-co h2, .cps-co h3, .cps-co h4 {
	font-family: 'Poppins', sans-serif;
	color: var(--cps-navy);
	margin: 0;
}
.cps-co-eyebrow {
	font-family: 'Poppins', sans-serif;
	text-transform: uppercase;
	letter-spacing: 4px;
	font-size: 13px;
	font-weight: 500;
	color: var(--cps-purple);
	margin: 0 0 10px;
}

/* Hide the theme's "Checkout" page title — the hero replaces it */
body.cps-checkout .page-header,
body.cps-checkout .entry-title { display: none; }

/* ---------- Hero ---------- */
.cps-co-hero {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 40px;
	align-items: center;
	padding: 44px;
	border-radius: 24px;
	background: var(--cps-bg-tint);
	overflow: hidden;
}
.cps-co-hero::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 6px;
	background: var(--cps-gradient);
}
.cps-co-hero__text h1 {
	font-size: 34px;
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: 14px;
}
.cps-co-hero__text p:last-child { font-size: 16px; margin: 0; max-width: 520px; }

.cps-co-tier {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 28px;
	border-radius: 60px 16px 16px 16px;
	background: var(--cps-navy);
	color: #fff;
	box-shadow: 0 18px 40px rgba(35, 40, 92, .22);
}
.cps-co-tier__label {
	font-size: 11px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--cps-purple);
	font-weight: 700;
}
.cps-co-tier__name {
	font-family: 'Poppins', sans-serif;
	font-size: 20px;
	line-height: 1.3;
	font-weight: 600;
}
.cps-co-tier__price {
	font-family: 'Poppins', sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 1.1;
	margin-top: 4px;
	background: var(--cps-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.cps-co-tier__price small {
	font-size: 15px;
	font-weight: 500;
	-webkit-text-fill-color: rgba(255, 255, 255, .7);
}
.cps-co-tier__perk {
	align-self: flex-start;
	margin-top: 6px;
	padding: 5px 12px;
	border-radius: 30px;
	background: rgba(255, 255, 255, .12);
	font-size: 13px;
	font-weight: 600;
}
.cps-co-tier__change {
	margin-top: 10px;
	font-size: 13px;
	font-weight: 700;
	color: #fff !important;
	opacity: .75;
	text-decoration: underline;
}
.cps-co-tier__change:hover { opacity: 1; }

/* ---------- Trust row ---------- */
.cps-co-trust {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 32px;
	margin: 24px 0 8px;
	padding: 0;
	font-size: 14px;
}
.cps-co-trust li {
	display: flex;
	align-items: center;
	gap: 8px;
}
.cps-co-trust li::before {
	content: "✓";
	flex: none;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--cps-gradient);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cps-co-trust a { color: var(--cps-purple); font-weight: 700; text-decoration: none; }

/* ==========================================================================
   WooCommerce block checkout
   ========================================================================== */
.cps-co--bottom { padding-bottom: 80px; }

body.cps-checkout .wp-block-woocommerce-checkout {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 20px;
	font-family: 'Nunito', sans-serif;
	color: var(--cps-gray);
}

/* Each step as a card with our own gradient numbers */
body.cps-checkout .wc-block-checkout__form { counter-reset: cps-step; }
body.cps-checkout .wc-block-components-checkout-step {
	position: relative;
	margin: 0 0 20px !important;
	padding: 28px 28px 28px 84px !important;
	border: 1px solid var(--cps-border);
	border-radius: 16px;
	background: #fff;
}
body.cps-checkout .wc-block-components-checkout-step::before {
	counter-increment: cps-step;
	content: counter(cps-step);
	position: absolute;
	left: 28px;
	top: 26px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--cps-gradient);
	color: #fff;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* Remove Woo's built-in numbers and connector line */
body.cps-checkout .wc-block-components-checkout-step__title::before,
body.cps-checkout .wc-block-components-checkout-step__container::after,
body.cps-checkout .wc-block-components-checkout-step::after { display: none !important; content: none !important; }
body.cps-checkout .wc-block-components-checkout-step__container,
body.cps-checkout .wc-block-components-checkout-step__heading { padding-left: 0 !important; margin-left: 0 !important; }

body.cps-checkout .wc-block-components-checkout-step__title {
	font-family: 'Poppins', sans-serif;
	color: var(--cps-navy);
	font-size: 19px;
	font-weight: 600;
}
body.cps-checkout .wc-block-components-checkout-step__description { color: var(--cps-gray); }

/* Fields */
body.cps-checkout .wc-block-components-text-input input,
body.cps-checkout .wc-block-components-combobox .wc-block-components-combobox-control input,
body.cps-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body.cps-checkout .wc-block-components-textarea {
	border: 1px solid var(--cps-border) !important;
	border-radius: 10px !important;
	background: #fbfbfd !important;
	color: var(--cps-navy) !important;
	font-family: 'Nunito', sans-serif;
	transition: border-color .2s, box-shadow .2s;
}
body.cps-checkout .wc-block-components-text-input input:focus,
body.cps-checkout .wc-block-components-combobox input:focus,
body.cps-checkout .wc-blocks-components-select__select:focus,
body.cps-checkout .wc-block-components-textarea:focus {
	border-color: var(--cps-purple) !important;
	box-shadow: 0 0 0 3px rgba(187, 137, 189, .25) !important;
	background: #fff !important;
	outline: none;
}
body.cps-checkout .wc-block-components-text-input label,
body.cps-checkout .wc-block-components-combobox label { color: var(--cps-gray); }

/* Payment method options */
body.cps-checkout .wc-block-components-radio-control__option,
body.cps-checkout .wc-block-components-radio-control-accordion-option {
	border-radius: 12px;
}
body.cps-checkout .wc-block-components-radio-control__input:checked { border-color: var(--cps-purple); }
body.cps-checkout .wc-block-components-radio-control__input:checked::before { background: var(--cps-purple); }

/* Checkboxes */
body.cps-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked {
	background: var(--cps-navy);
	border-color: var(--cps-navy);
}
body.cps-checkout .wc-block-components-checkbox__mark { fill: #fff; }

/* ---------- Place Order: gradient pill ---------- */
body.cps-checkout .wc-block-checkout__actions { padding-left: 0 !important; }
body.cps-checkout .wc-block-components-checkout-place-order-button,
body.cps-checkout #place_order {
	width: 100%;
	min-height: 58px;
	padding: 16px 32px !important;
	border: none !important;
	border-radius: 40px !important;
	background: var(--cps-gradient) !important;
	background-size: 150% 100% !important;
	color: #fff !important;
	font-family: 'Poppins', sans-serif !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	letter-spacing: .3px;
	box-shadow: 0 10px 24px rgba(187, 137, 189, .35);
	transition: background-position .4s, transform .15s, box-shadow .2s;
}
body.cps-checkout .wc-block-components-checkout-place-order-button:hover,
body.cps-checkout #place_order:hover {
	background-position: 100% 0 !important;
	transform: translateY(-1px);
	box-shadow: 0 14px 30px rgba(187, 137, 189, .45);
}
body.cps-checkout .wc-block-components-checkout-place-order-button .wc-block-components-button__text::after {
	content: " →";
}

/* Skipping the cart, so no "Return to Cart" */
body.cps-checkout .wc-block-components-checkout-return-to-cart-button { display: none !important; }

body.cps-checkout .wc-block-checkout__terms { font-size: 13px; color: var(--cps-gray); }
body.cps-checkout .wc-block-checkout__terms a { color: var(--cps-purple); }

/* ---------- Order summary sidebar ---------- */
body.cps-checkout .wc-block-components-sidebar {
	padding: 0 !important;
}
body.cps-checkout .wp-block-woocommerce-checkout-order-summary-block {
	border: 1px solid var(--cps-border) !important;
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
}
body.cps-checkout .wc-block-components-checkout-order-summary__title,
body.cps-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title {
	padding: 20px 24px;
	margin: 0;
	background: var(--cps-bg-tint);
	font-family: 'Poppins', sans-serif;
	color: var(--cps-navy);
	font-size: 16px;
	font-weight: 600;
}
/* Membership has no image or quantity */
body.cps-checkout .wc-block-components-order-summary-item__image,
body.cps-checkout .wc-block-components-order-summary-item__quantity { display: none !important; }
body.cps-checkout .wc-block-components-order-summary-item__description { padding-left: 0 !important; }
body.cps-checkout .wc-block-components-product-name {
	font-family: 'Poppins', sans-serif;
	color: var(--cps-navy);
	font-weight: 600;
	font-size: 15px;
}
body.cps-checkout .wc-block-components-product-metadata { font-size: 13px; }
body.cps-checkout .wc-block-components-totals-footer-item {
	font-family: 'Poppins', sans-serif;
}
body.cps-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	color: var(--cps-navy);
	font-weight: 600;
}
body.cps-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--cps-navy);
	font-size: 24px;
	font-weight: 700;
}

/* ==========================================================================
   Upcoming events strip
   ========================================================================== */
.cps-co-events {
	margin-top: 64px;
	padding-top: 56px;
	border-top: 2px solid var(--cps-bg-tint);
	text-align: center;
}
.cps-co-events h2 { font-size: 30px; margin-bottom: 36px; }
.cps-co-events__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	text-align: left;
}
.cps-co-event {
	display: block;
	border: 1px solid var(--cps-border);
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none;
	background: #fff;
	transition: transform .2s, box-shadow .2s;
}
.cps-co-event:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 36px rgba(35, 40, 92, .12);
}
.cps-co-event__thumb {
	position: relative;
	height: 220px;
	background: var(--cps-bg-tint) center top / cover no-repeat;
}
.cps-co-event__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 5px 12px;
	border-radius: 30px;
	background: var(--cps-gradient);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
}
.cps-co-event__body { padding: 20px; }
.cps-co-event__date {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--cps-orange);
}
.cps-co-event h4 { font-size: 16px; margin: 6px 0 0; }
.cps-co-event__venue { margin: 6px 0 0; font-size: 13px; }
.cps-co-events__all { margin: 32px 0 0; }
.cps-co-events__all a {
	color: var(--cps-purple);
	font-weight: 700;
	text-decoration: none;
}
.cps-co-events__all a:hover { text-decoration: underline; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 900px) {
	.cps-co-hero { grid-template-columns: 1fr; padding: 32px 24px; gap: 28px; }
	.cps-co-hero__text h1 { font-size: 28px; }
	.cps-co-events__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.cps-co { padding-top: 16px; }
	body.cps-checkout .wc-block-components-checkout-step { padding: 72px 20px 20px !important; }
	body.cps-checkout .wc-block-components-checkout-step::before { left: 20px; top: 20px; }
	.cps-co-trust { justify-content: flex-start; }
}

/* Override theme/Elementor link styles inside event cards */
body.cps-checkout .cps-co a.cps-co-event,
body.cps-checkout .cps-co a.cps-co-event:hover,
body.cps-checkout .cps-co a.cps-co-event:focus,
body.cps-checkout .cps-co a.cps-co-event * {
	text-decoration: none !important;
	color: inherit;
}
body.cps-checkout .cps-co a.cps-co-event { color: var(--cps-gray) !important; }
body.cps-checkout .cps-co a.cps-co-event h4 { color: var(--cps-navy) !important; }
body.cps-checkout .cps-co a.cps-co-event .cps-co-event__date { color: var(--cps-orange) !important; }
body.cps-checkout .cps-co a.cps-co-event .cps-co-event__venue { color: var(--cps-gray) !important; }
body.cps-checkout .cps-co a.cps-co-event .cps-co-event__badge { color: #fff !important; }
body.cps-checkout .cps-co a.cps-co-event:hover h4 { color: var(--cps-purple) !important; }
