/*
 Navy branding for the WooCommerce cart, checkout and shop.
 Loaded on cart, checkout, shop, product and product category pages.
*/

:root {
	--zap-brand: #002448;
	--zap-brand-hover: #003a6e;
	--zap-text: #1f2933;
	--zap-line: #e1e6ec;
	--zap-muted: #5b6b7a;
	--zap-card: #f4f6f8;
}

/* ---- Buttons ---- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order,
.woocommerce .checkout-button,
.wc-block-components-button {
	background-color: var(--zap-brand) !important;
	border-color: var(--zap-brand) !important;
	color: #ffffff !important;
	border-radius: 8px !important;
	font-weight: 600;
	transition: background-color .15s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #place_order:hover,
.woocommerce .checkout-button:hover,
.wc-block-components-button:hover {
	background-color: var(--zap-brand-hover) !important;
	border-color: var(--zap-brand-hover) !important;
	color: #ffffff !important;
}

/* Already enrolled */
.woocommerce a.zap-goto-course,
.zap-goto-course {
	display: inline-block;
	background-color: #0f7a3d !important;
	border-color: #0f7a3d !important;
	color: #ffffff !important;
}
.woocommerce a.zap-goto-course:hover,
.zap-goto-course:hover {
	background-color: #0c632f !important;
	border-color: #0c632f !important;
}

/* ---- Headings and links ---- */
.woocommerce-cart h1,
.woocommerce-checkout h1,
.woocommerce-cart h2,
.woocommerce-checkout h2,
.woocommerce-cart h3,
.woocommerce-checkout h3 {
	color: var(--zap-brand);
}

.woocommerce a {
	color: var(--zap-brand);
}
.woocommerce a:hover {
	color: var(--zap-brand-hover);
}

/* ---- Cart and order tables ---- */
.woocommerce table.shop_table {
	border-radius: 14px;
	border-color: var(--zap-line);
	overflow: hidden;
}
.woocommerce table.shop_table thead th {
	background: #f1f4f7;
	color: var(--zap-brand);
}

/* ---- Cart totals and checkout review ---- */
.woocommerce .cart_totals h2,
.woocommerce-checkout #order_review_heading {
	color: var(--zap-brand);
}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
	border: 1px solid var(--zap-line);
	border-radius: 14px;
	padding: 18px 20px;
	background: #ffffff;
}

/* ---- Form fields ---- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout .select2-container .select2-selection {
	border: 1px solid var(--zap-line);
	border-radius: 8px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-checkout input:focus {
	border-color: var(--zap-brand);
	outline: none;
	box-shadow: 0 0 0 3px rgba(0, 36, 72, 0.12);
}

/* ---- Messages and coupons ---- */
.woocommerce-message,
.woocommerce-info {
	border-top-color: var(--zap-brand);
}
.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--zap-brand);
}

/* ---- Prices and sale badge ---- */
.woocommerce span.onsale {
	background-color: var(--zap-brand);
	color: #ffffff;
}
.woocommerce .price,
.woocommerce div.product p.price {
	color: var(--zap-brand);
}

/* ============================================================
   Shop grid (product archive)
   ============================================================ */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	grid-auto-rows: 1fr;
	gap: 24px;
	margin: 0 0 40px;
	padding: 0;
	transition: opacity .15s ease;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid var(--zap-line);
	border-radius: 16px;
	padding: 14px 14px 18px;
	text-align: left;
	box-shadow: 0 6px 18px rgba(0, 36, 72, 0.04);
	transition: transform .16s ease, box-shadow .16s ease;
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 38px rgba(0, 36, 72, 0.12);
}

.woocommerce ul.products li.product a img {
	border-radius: 12px;
	margin: 0 0 14px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--zap-brand);
	padding: 0;
	margin: 0 0 8px;
}

.woocommerce ul.products li.product .price {
	color: var(--zap-brand);
	font-weight: 700;
	font-size: 16px;
	margin: 0 0 14px;
}
.woocommerce ul.products li.product .price del {
	color: #9aa7b2;
	font-weight: 500;
	margin-right: 6px;
}
.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

.woocommerce ul.products li.product .star-rating {
	margin: 0 0 12px;
	color: var(--zap-brand);
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	margin-top: auto;
	width: 100%;
	text-align: center;
}

/* Result count and ordering bar */
.woocommerce .woocommerce-result-count {
	color: var(--zap-text);
}
.woocommerce .woocommerce-ordering select {
	border: 1px solid var(--zap-line);
	border-radius: 8px;
	padding: 8px 10px;
}

/* ============================================================
   Single product
   ============================================================ */
.single-product div.product .product_title {
	color: var(--zap-brand);
	font-size: 30px;
	line-height: 1.2;
	margin: 0 0 12px;
}

.single-product div.product .price,
.single-product div.product p.price {
	color: var(--zap-brand);
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 18px;
}
.single-product div.product .price del {
	color: #9aa7b2;
	font-weight: 500;
}

.single-product div.product .woocommerce-product-gallery img {
	border-radius: 16px;
}

.single-product div.product .woocommerce-product-details__short-description {
	color: #44515e;
	line-height: 1.6;
	margin-bottom: 22px;
}

.single-product .quantity input.qty {
	border: 1px solid var(--zap-line);
	border-radius: 8px;
	padding: 12px 8px;
	width: 70px;
}

.single-product div.product form.cart .button,
.single-product div.product .single_add_to_cart_button {
	padding: 14px 30px !important;
	font-size: 16px !important;
	border-radius: 10px !important;
}

.single-product div.product .zap-goto-course {
	padding: 14px 30px !important;
	font-size: 16px !important;
	border-radius: 10px !important;
}

/* Tabs */
.single-product .woocommerce-tabs ul.tabs::before {
	border-bottom-color: var(--zap-line);
}
.single-product .woocommerce-tabs ul.tabs li {
	border-color: var(--zap-line);
	border-radius: 8px 8px 0 0;
	background: #f1f4f7;
}
.single-product .woocommerce-tabs ul.tabs li.active {
	background: #ffffff;
	border-bottom-color: #ffffff;
}
.single-product .woocommerce-tabs ul.tabs li.active a {
	color: var(--zap-brand);
}
.single-product .woocommerce-tabs .panel h2 {
	color: var(--zap-brand);
}

/* Related and upsell headings */
.related.products > h2,
.upsells.products > h2 {
	color: var(--zap-brand);
	margin-bottom: 18px;
}

@media (max-width: 600px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
		gap: 16px;
	}
	.single-product div.product .product_title {
		font-size: 24px;
	}
}

/* ============================================================
   Cart page enhancements
   ============================================================ */
.woocommerce-cart table.cart thead th {
	padding: 15px 18px;
	font-size: 12px;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.woocommerce-cart table.cart td {
	padding: 20px 18px;
	vertical-align: middle;
	border-top: 1px solid var(--zap-line);
}
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.cart img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 10px;
	border: 1px solid var(--zap-line);
}
.woocommerce-cart table.cart td.product-name a {
	font-weight: 600;
	color: var(--zap-brand);
}
.woocommerce-cart table.cart td.product-name a:hover {
	color: var(--zap-brand-hover);
}

/* Remove item as a tidy circle */
.woocommerce a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	line-height: 1;
	border-radius: 50%;
	border: 1px solid var(--zap-line);
	color: #9aa7b2 !important;
	font-size: 15px;
	font-weight: 700;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.woocommerce a.remove:hover {
	background: #e02b2b !important;
	border-color: #e02b2b;
	color: #ffffff !important;
}

/* Quantity field */
.woocommerce-cart .quantity input.qty {
	border: 1px solid var(--zap-line);
	border-radius: 8px;
	padding: 10px 6px;
	width: 66px;
	text-align: center;
}

/* Coupon and actions row */
.woocommerce-cart .cart .actions {
	padding-top: 18px;
}
.woocommerce-cart .cart .actions .coupon .input-text {
	border: 1px solid var(--zap-line);
	border-radius: 8px;
	padding: 12px 14px;
	min-width: 220px;
	margin-right: 8px;
}
/* Update cart as a navy outline button so it never looks broken */
.woocommerce-cart .cart .actions button[name="update_cart"],
.woocommerce-cart .cart .actions input[name="update_cart"] {
	background: #ffffff !important;
	color: var(--zap-brand) !important;
	border: 1px solid var(--zap-brand) !important;
	opacity: 1 !important;
}
.woocommerce-cart .cart .actions button[name="update_cart"]:hover,
.woocommerce-cart .cart .actions input[name="update_cart"]:hover {
	background: var(--zap-brand) !important;
	color: #ffffff !important;
}

/* Totals card */
.woocommerce .cart-collaterals .cart_totals {
	box-shadow: 0 12px 30px rgba(0, 36, 72, 0.06);
	padding: 24px;
}
.cart_totals h2 {
	font-size: 22px;
	margin-bottom: 16px;
}
.cart_totals table {
	border: none;
	margin: 0;
}
.cart_totals table th,
.cart_totals table td {
	padding: 14px 0;
	border-top: 1px solid var(--zap-line);
}
.cart_totals table tr:first-child th,
.cart_totals table tr:first-child td {
	border-top: none;
}
.cart_totals table tr.order-total th,
.cart_totals table tr.order-total td {
	font-size: 18px;
}
.cart_totals table tr.order-total .amount {
	color: var(--zap-brand);
	font-weight: 800;
}
.cart_totals .wc-proceed-to-checkout {
	padding-top: 10px;
}
.cart_totals .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	padding: 15px !important;
	font-size: 16px !important;
}

/* ============================================================
   Order received / Thank you page
   ============================================================ */
.woocommerce-order .woocommerce-thankyou-order-received,
.woocommerce-order p.woocommerce-notice--success {
	display: flex;
	align-items: center;
	gap: 12px;
	background: linear-gradient(135deg, var(--zap-brand) 0%, var(--zap-brand-hover) 100%);
	color: #ffffff;
	border: none;
	border-radius: 16px;
	padding: 24px 26px;
	font-size: 19px;
	font-weight: 600;
	margin-bottom: 26px;
}
.woocommerce-order .woocommerce-thankyou-order-received::before {
	content: "";
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #ffffff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23002448' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / 18px no-repeat;
}

/* Order overview as cards */
ul.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	list-style: none;
	margin: 0 0 30px;
	padding: 0;
	border: none;
}
ul.woocommerce-order-overview li {
	flex: 1 1 150px;
	background: #ffffff;
	border: 1px solid var(--zap-line) !important;
	border-radius: 12px;
	padding: 14px 16px;
	font-size: 12px;
	color: var(--zap-muted);
	text-transform: uppercase;
	letter-spacing: .04em;
}
ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 6px;
	font-size: 16px;
	color: var(--zap-brand);
	text-transform: none;
	letter-spacing: 0;
}

/* Start learning call to action */
.zap-thankyou-cta {
	margin: 0 0 30px;
}
.zap-thankyou-cta .button {
	display: inline-block;
	padding: 14px 30px !important;
	font-size: 16px !important;
	border-radius: 10px !important;
}

/* Order details and customer details */
.woocommerce-order-details h2,
.woocommerce-customer-details h2,
.woocommerce-column__title {
	color: var(--zap-brand);
	font-size: 20px;
	margin-bottom: 14px;
}
.woocommerce-order-details table.order_details {
	border: 1px solid var(--zap-line);
	border-radius: 14px;
	overflow: hidden;
}
.woocommerce-order-details table.order_details th,
.woocommerce-order-details table.order_details td {
	padding: 14px 16px;
}
.woocommerce-order-details table.order_details tfoot th,
.woocommerce-order-details table.order_details tfoot .amount,
.woocommerce-order-details table.order_details tfoot tr:last-child .amount {
	color: var(--zap-brand);
}
.woocommerce-customer-details address {
	border: 1px solid var(--zap-line);
	border-radius: 14px;
	padding: 18px 20px;
	background: #ffffff;
}

@media (max-width: 600px) {
	.woocommerce-order .woocommerce-thankyou-order-received,
	.woocommerce-order p.woocommerce-notice--success {
		font-size: 17px;
		padding: 20px;
	}
}

/* ============================================================
   Course cards (content-product.php override)
   ============================================================ */
.woocommerce ul.products li.product.zap-course {
	padding: 0;
	overflow: hidden;
}
.zap-course-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.zap-course-media {
	position: relative;
	line-height: 0;
}
.zap-course-media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
}
.zap-course-price {
	position: absolute;
	top: 14px;
	right: 14px;
	background: #f4b41a;
	color: var(--zap-brand);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	padding: 6px 14px;
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);
}
.zap-course-price .woocommerce-Price-amount {
	color: inherit;
}
.zap-course-price del {
	display: none;
}
.zap-course-price ins {
	text-decoration: none;
}
.zap-course-body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
	padding: 18px 18px 20px;
}
.zap-course-title {
	margin: 0;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.2;
}
.zap-course-title a {
	color: var(--zap-brand);
	text-decoration: none;
}
.zap-course-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.zap-course-meta li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--zap-muted);
	font-size: 14px;
}
.zap-meta-icon {
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	color: var(--zap-muted);
}
/* Card meta row: plain, no box */
.zap-course-card .zap-course-meta {
	gap: 10px 16px;
	margin: 2px 0 4px;
}
.zap-course-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 4px;
}
.zap-course-actions .zap-btn-ghost,
.zap-course-actions .button,
.zap-course-actions .added_to_cart,
.zap-course-actions .zap-goto-course {
	margin: 0 !important;
	width: auto !important;
	padding: 11px 22px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	border-radius: 60px !important;
}
/* Force an identical radius on both card buttons, beating theme/plugin rules */
.woocommerce ul.products li.product .zap-course-actions a.zap-btn-ghost,
.woocommerce ul.products li.product .zap-course-actions a.button,
.woocommerce ul.products li.product .zap-course-actions .added_to_cart,
.woocommerce ul.products li.product .zap-course-actions .zap-goto-course {
	border-radius: 60px !important;
}
.zap-course-actions .zap-btn-ghost {
	display: inline-block;
	background: #ffffff;
	color: var(--zap-brand);
	border: 1.5px solid var(--zap-brand);
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
.zap-course-actions .zap-btn-ghost:hover {
	background: var(--zap-brand);
	color: #ffffff;
}
.zap-course-actions .button {
	background: var(--zap-brand) !important;
	color: #ffffff !important;
	border: 1.5px solid var(--zap-brand) !important;
}
.zap-course-actions .button:hover {
	background: var(--zap-brand-hover) !important;
	border-color: var(--zap-brand-hover) !important;
}

/* ============================================================
   Shop banner (replaces the shop title)
   ============================================================ */
.zap-shop-banner {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 545px;
	margin: 0 0 34px;
	border-radius: 18px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--zap-brand) 0%, var(--zap-brand-hover) 100%);
	background-size: cover;
	background-position: center;
}
.zap-shop-banner.has-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.12) 32%, rgba(0, 0, 0, 0) 60%);
}
.zap-shop-banner__inner {
	position: relative;
	z-index: 1;
	padding: 38px 42px;
}
.zap-shop-banner h1 {
	margin: 0;
	color: #ffffff;
	font-size: 42px;
	font-weight: 800;
	letter-spacing: .02em;
	text-transform: uppercase;
	line-height: 1.1;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

@media (max-width: 600px) {
	.zap-shop-banner {
		min-height: 180px;
		margin-bottom: 24px;
	}
	.zap-shop-banner__inner {
		padding: 24px 22px;
	}
	.zap-shop-banner h1 {
		font-size: 28px;
	}
}

/* ============================================================
   Single product details enhancements
   ============================================================ */
.zap-course-meta--single {
	gap: 14px 24px;
	margin: 4px 0 22px;
	padding: 16px 0;
	border-top: 1px solid var(--zap-line);
	border-bottom: 1px solid var(--zap-line);
}
.zap-course-meta--single li {
	font-size: 15px;
	color: var(--zap-text);
}
.zap-course-meta--single .zap-meta-icon {
	width: 19px;
	height: 19px;
	color: var(--zap-brand);
}

.single-product div.product .woocommerce-product-gallery img {
	box-shadow: 0 14px 34px rgba(0, 36, 72, 0.08);
}

.single-product div.product form.cart {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 6px;
}
.single-product div.product form.cart .button,
.single-product div.product .single_add_to_cart_button {
	border-radius: 999px !important;
	padding: 15px 40px !important;
	font-weight: 600 !important;
}
.single-product div.product .zap-goto-course {
	border-radius: 999px !important;
	padding: 15px 40px !important;
}

/* ============================================================
   Single product: image left, info card right, overview below
   (mirrors the Edwiser course page layout)
   ============================================================ */
body.single-product .kadence-breadcrumb-container {
	display: none !important;
}

/* White page background */
body.single-product,
body.single-product #inner-wrap,
body.single-product .content-container.site-container,
body.single-product #main {
	background-color: #ffffff !important;
}

/* Two column grid: image + card on top, full width sections below */
.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 44px;
	align-items: start;
	background: none;
	border: none;
	padding: 0;
	box-shadow: none;
}
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary.entry-summary {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}
.single-product div.product .woocommerce-tabs,
.single-product div.product .related.products,
.single-product div.product .up-sells.products,
.single-product div.product .upsells.products {
	grid-column: 1 / -1;
}

/* Left: framed image */
.single-product div.product .woocommerce-product-gallery img {
	box-shadow: none;
	border: 1px solid var(--zap-line);
	border-radius: 16px;
}

/* Right: soft grey info card */
.single-product div.product .summary.entry-summary {
	background: var(--zap-card);
	border: 1px solid var(--zap-line);
	border-radius: 16px;
	padding: 30px 32px;
	box-shadow: none;
}
.single-product div.product .product_title.entry-title {
	font-size: 26px;
	line-height: 1.25;
	margin: 0 0 4px;
	color: #111111;
}

/* Category line */
.zap-product-cat {
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--zap-muted);
	margin: 0 0 16px;
}
.zap-product-cat a {
	color: inherit;
	text-decoration: none;
}

/* Price */
.single-product div.product .summary .price,
.single-product div.product .summary p.price {
	font-size: 24px;
	font-weight: 700;
	color: var(--zap-brand);
	margin: 0 0 14px;
}
.single-product div.product .summary .price del {
	opacity: 0.5;
	font-weight: 500;
}

/* Access line */
.zap-course-access {
	font-size: 15px;
	color: var(--zap-muted);
	margin: 0 0 18px;
}
.zap-course-access span {
	color: var(--zap-text);
	font-weight: 600;
}

/* Short description */
.single-product div.product .woocommerce-product-details__short-description {
	color: var(--zap-muted);
	margin: 0 0 18px;
}

/* Enrolled badge */
.zap-enrolled-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #e8edf2;
	color: var(--zap-brand);
	font-weight: 600;
	font-size: 14px;
	border-radius: 999px;
	padding: 9px 18px;
	margin: 0 0 16px;
}
.zap-enrolled-badge::before {
	content: "";
	width: 16px;
	height: 16px;
	background-color: var(--zap-brand);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Buttons: quantity and both buy buttons aligned on one line */
.single-product div.product form.cart {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
}
.single-product div.product form.cart .quantity {
	flex: 0 0 auto;
}
.single-product div.product form.cart .quantity input.qty {
	height: 50px;
}
.single-product div.product form.cart .single_add_to_cart_button,
.single-product div.product form.cart .wi_btn_buy_now,
.single-product div.product form.cart .button,
.single-product div.product .zap-goto-course {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	min-width: 150px;
	margin: 0 !important;
	padding: 0 28px !important;
	line-height: 1 !important;
	font-weight: 600 !important;
	border-radius: 999px !important;
}
.single-product div.product .zap-goto-course {
	width: 100%;
}

/* Course meta row inside the card */
.zap-course-meta--single {
	margin: 0 0 18px;
}

/* Product meta (SKU, categories, tags) */
.single-product div.product .product_meta {
	margin: 18px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--zap-line);
	font-size: 13px;
	color: var(--zap-muted);
}
.single-product div.product .product_meta a {
	color: var(--zap-brand);
}
.single-product div.product .product_meta > span {
	display: block;
	margin-bottom: 4px;
}

/* Course Overview section below the two columns */
.single-product div.product .woocommerce-tabs {
	margin-top: 42px;
	padding-top: 34px;
	border-top: 1px solid var(--zap-line);
}
.single-product .woocommerce-tabs ul.tabs {
	display: none;
}
.single-product .woocommerce-tabs .panel {
	margin: 0;
	padding: 0;
}
.single-product .woocommerce-tabs .panel h2 {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.15;
	color: var(--zap-brand);
	margin: 0 0 16px;
}

@media (max-width: 992px) {
	.single-product div.product {
		grid-template-columns: 1fr;
		gap: 26px;
	}
}

/* ============================================================
   Empty cart state
   ============================================================ */
.woocommerce-cart .cart-empty {
	text-align: center;
	font-size: 20px;
	font-weight: 600;
	color: var(--zap-brand);
	background: none !important;
	border: none !important;
	padding: 50px 20px 0 !important;
	margin: 0 auto !important;
}
.woocommerce-cart .cart-empty::before {
	content: "" !important;
	display: block;
	width: 96px;
	height: 96px;
	margin: 0 auto 22px;
	border-radius: 50%;
	background-color: #eef2f6;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23002448' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 44px;
	position: static !important;
	left: auto !important;
	top: auto !important;
	font-size: 0 !important;
}
.woocommerce-cart .return-to-shop {
	text-align: center;
	margin-top: 22px;
	padding-bottom: 50px;
}
.woocommerce-cart .return-to-shop .button {
	display: inline-block;
	border-radius: 999px !important;
	padding: 14px 34px !important;
	font-weight: 600 !important;
}

/* ============================================================
   Shop: 3 columns, filter bar, card polish
   ============================================================ */
.woocommerce ul.products,
.woocommerce-page ul.products {
	grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 992px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 600px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: 1fr;
	}
}

/* Filter and sort bar */
.zap-filter-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin: 0 0 28px;
}
.zap-filter-select {
	appearance: none;
	-webkit-appearance: none;
	background-color: #ffffff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23002448' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px;
	border: 1px solid var(--zap-line);
	border-radius: 999px;
	padding: 11px 38px 11px 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--zap-brand);
	cursor: pointer;
}
.zap-filter-select:hover {
	border-color: var(--zap-brand);
}
.zap-filter-select:focus {
	outline: none;
	border-color: var(--zap-brand);
	box-shadow: 0 0 0 3px rgba(0, 36, 72, 0.12);
}
/* Leading "Filter & Sort" chip: sliders icon on the left, chevron on the right */
.zap-filter-select--sort {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23002448' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='21' y1='4' x2='14' y2='4'/%3E%3Cline x1='10' y1='4' x2='3' y2='4'/%3E%3Cline x1='21' y1='12' x2='12' y2='12'/%3E%3Cline x1='8' y1='12' x2='3' y2='12'/%3E%3Cline x1='21' y1='20' x2='16' y2='20'/%3E%3Cline x1='12' y1='20' x2='3' y2='20'/%3E%3Cline x1='14' y1='2' x2='14' y2='6'/%3E%3Cline x1='8' y1='10' x2='8' y2='14'/%3E%3Cline x1='16' y1='18' x2='16' y2='22'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23002448' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat, no-repeat;
	background-position: left 16px center, right 14px center;
	background-size: 16px, 12px;
	padding-left: 42px;
}
.zap-filter-apply {
	border-radius: 999px;
	padding: 11px 24px;
	background: var(--zap-brand);
	color: #ffffff;
	border: none;
	font-weight: 600;
	cursor: pointer;
}

/* Card polish: full title shown, tighter buttons so two fit per row */
.zap-course-title {
	overflow-wrap: break-word;
	word-break: break-word;
}
.zap-course-actions .zap-btn-ghost,
.zap-course-actions .button,
.zap-course-actions .added_to_cart,
.zap-course-actions .zap-goto-course {
	padding: 10px 18px !important;
	font-size: 14px !important;
}

/* ============================================================
   Thank you banner: keep all text and links readable on navy
   ============================================================ */
.woocommerce-order .woocommerce-thankyou-order-received {
	flex-wrap: wrap;
	gap: 6px 16px;
}
.woocommerce-order .woocommerce-thankyou-order-received,
.woocommerce-order .woocommerce-thankyou-order-received * {
	color: #ffffff !important;
}
.woocommerce-order .woocommerce-thankyou-order-received a {
	color: #ffffff !important;
	text-decoration: underline;
	font-weight: 600;
}

/* ============================================================
   Order overview cards: icons and a highlighted total
   ============================================================ */
ul.woocommerce-order-overview li {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 18px !important;
	transition: box-shadow .15s ease;
}
ul.woocommerce-order-overview li:hover {
	box-shadow: 0 10px 24px rgba(0, 36, 72, 0.08);
}
ul.woocommerce-order-overview li::before {
	content: "";
	width: 24px;
	height: 24px;
	margin-bottom: 8px;
	background-color: var(--zap-brand);
	-webkit-mask: var(--zap-oo-icon) center / contain no-repeat;
	mask: var(--zap-oo-icon) center / contain no-repeat;
}
ul.woocommerce-order-overview li.woocommerce-order-overview__order {
	--zap-oo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16M4 15h16M10 3 8 21M16 3l-2 18'/%3E%3C/svg%3E");
}
ul.woocommerce-order-overview li.woocommerce-order-overview__date {
	--zap-oo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
}
ul.woocommerce-order-overview li.woocommerce-order-overview__email {
	--zap-oo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}
ul.woocommerce-order-overview li.woocommerce-order-overview__total {
	--zap-oo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13 21a2 2 0 0 1-2.8 0l-7-7A2 2 0 0 1 3 12.6V4a1 1 0 0 1 1-1h8.6a2 2 0 0 1 1.4.6l6.6 6.6a2 2 0 0 1 0 2.6z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E");
}
ul.woocommerce-order-overview li.woocommerce-order-overview__payment-method {
	--zap-oo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/svg%3E");
}

/* Highlight the total */
ul.woocommerce-order-overview li.woocommerce-order-overview__total {
	background: linear-gradient(135deg, var(--zap-brand) 0%, var(--zap-brand-hover) 100%);
	border-color: transparent !important;
	color: #ffffff;
}
ul.woocommerce-order-overview li.woocommerce-order-overview__total strong {
	color: #ffffff;
}
ul.woocommerce-order-overview li.woocommerce-order-overview__total::before {
	background-color: #ffffff;
}

/* Thank you redirect notice */
.zap-thankyou-redirect {
	margin: 0 0 26px;
	font-size: 14px;
	color: var(--zap-muted);
}
.zap-thankyou-redirect a {
	color: var(--zap-brand);
	font-weight: 600;
}
.zap-thankyou-redirect .zap-redirect-cancel {
	margin-left: 8px;
	text-decoration: underline;
}

/* ============================================================
   Edwiser single course (eb_course): image left, info card
   right, Course Overview below, mirroring the product page
   ============================================================ */
body.single-eb_course,
body.single-eb_course #inner-wrap,
body.single-eb_course .content-container.site-container,
body.single-eb_course #main {
	background-color: #ffffff !important;
}

.single-eb_course article.single-course {
	max-width: 1100px;
	margin: 0 auto;
	padding: 30px 20px 50px;
}

/* Two column row: image + summary card */
.single-eb_course article.single-course > div:first-child {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 44px;
	align-items: start;
}

/* Left: framed image */
.single-eb_course .eb-course-img-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
	line-height: 0;
}
.single-eb_course .eb-course-img-wrapper img {
	width: 100% !important;
	height: auto;
	display: block;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border: 1px solid var(--zap-line);
	border-radius: 16px;
}

/* Right: soft grey info card */
.single-eb_course .eb-course-summary {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
	box-sizing: border-box;
	background: var(--zap-card);
	border: 1px solid var(--zap-line);
	border-radius: 16px;
	padding: 30px 32px;
}

/* Category */
.single-eb_course .eb-cat-wrapper-new {
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--zap-muted);
	margin: 0 0 12px;
}
.single-eb_course .eb-cat-wrapper-new strong {
	font-weight: 600;
}

/* Title (black) */
.single-eb_course .eb_single_course_title.entry-title {
	font-size: 26px;
	line-height: 1.25;
	font-weight: 800;
	color: #111111;
	margin: 0 0 12px;
}

/* Already enrolled badge */
.single-eb_course .user-already-enrolled-message {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #e8edf2;
	color: var(--zap-brand);
	font-weight: 600;
	font-size: 14px;
	border-radius: 999px;
	padding: 9px 18px;
	margin: 0 0 16px;
}
.single-eb_course .user-already-enrolled-message::before {
	content: "";
	width: 16px;
	height: 16px;
	background-color: var(--zap-brand);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Course access line */
.single-eb_course .eb-validity-wrapper {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--zap-muted);
	font-size: 15px;
	margin: 0 0 18px;
}
.single-eb_course .eb-validity-wrapper > div {
	display: inline-flex;
	align-items: center;
}
.single-eb_course .eb-validity-wrapper .dashicons {
	color: var(--zap-brand);
	font-size: 18px;
	width: 18px;
	height: 18px;
}
.single-eb_course .eb-validity-wrapper strong {
	color: var(--zap-text);
	font-weight: 600;
}

/* Access Course button: full width navy pill */
.single-eb_course .eb_single_course_price_wrapper {
	margin: 4px 0 0;
}
.single-eb_course .eb_join_button {
	margin: 0;
}
.single-eb_course .eb_single_course_price_wrapper a.wdm-btn,
.single-eb_course .eb_join_button a.wdm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 12px 28px;
	background: var(--zap-brand) !important;
	border: 1.5px solid var(--zap-brand) !important;
	color: #ffffff !important;
	font-weight: 600 !important;
	font-size: 16px;
	line-height: 1.2;
	border-radius: 999px !important;
	text-decoration: none;
	box-shadow: none !important;
	text-shadow: none !important;
	transition: background-color .15s ease, border-color .15s ease;
}
.single-eb_course .eb_single_course_price_wrapper a.wdm-btn:hover,
.single-eb_course .eb_join_button a.wdm-btn:hover {
	background: var(--zap-brand-hover) !important;
	border-color: var(--zap-brand-hover) !important;
	color: #ffffff !important;
}

/* Course Overview below the two columns */
.single-eb_course .eb-course-desc-wrapper {
	margin-top: 42px;
	padding-top: 34px;
	border-top: 1px solid var(--zap-line);
}
.single-eb_course .eb-course-desc-wrapper .eb_h4 {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.15;
	color: var(--zap-brand);
	margin: 0 0 16px;
}
.single-eb_course .eb-course-desc-wrapper p {
	color: var(--zap-text);
	line-height: 1.7;
}

@media (max-width: 992px) {
	.single-eb_course article.single-course > div:first-child {
		grid-template-columns: 1fr;
		gap: 26px;
	}
}

/* ============================================================
   Pagination: navy square for current page, plain navy links
   ============================================================ */
.woocommerce nav.woocommerce-pagination {
	margin: 12px 0 44px;
	text-align: center;
}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
}
.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	list-style: none;
}
.woocommerce nav.woocommerce-pagination ul li {
	display: inline-flex;
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul li span.page-numbers {
	display: inline-block;
	min-width: 2.5em;
	margin: 0 !important;
	padding: 8px 12px;
	border: 0 !important;
	border-radius: .25rem;
	background: transparent;
	color: var(--zap-brand);
	font-family: Inter !important;
	font-size: 24px;
	font-weight: 800;
	line-height: 2.25em;
	text-align: center;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:focus {
	background: #eef2f6 !important;
	color: var(--zap-brand);
}
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.current {
	background: var(--zap-brand) !important;
	color: #ffffff;
}
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.dots {
	background: transparent !important;
	color: var(--zap-muted);
	min-width: auto;
	padding: 0 4px;
}
.woocommerce nav.woocommerce-pagination ul li .zap-page-arrow {
	width: 0.85em;
	height: 0.85em;
	vertical-align: -0.12em;
}

/* Single course page: spacing for content lists */
body.single-eb_course .single-content ul,
body.single-eb_course .single-content ol {
	padding-top: 2em;
}

/* Single course page: Enrol Now (direct to checkout) button */
body.single-eb_course .zap-enrol-now {
	display: block;
	width: 100%;
	margin-top: 12px;
	padding: 14px 24px;
	border-radius: 999px;
	background: #f2b705;
	color: #002448 !important;
	font-size: 15px;
	font-weight: 800;
	text-align: center;
	text-decoration: none;
	transition: background-color .15s ease;
}
body.single-eb_course .zap-enrol-now:hover,
body.single-eb_course .zap-enrol-now:focus {
	background: #d9a400;
	color: #002448 !important;
}
