/* ============================================
   MAPS Ecommerce — Storefront Styles
   Version: 0.1.0
   Matches maps-membership design language:
   Navy #002e5b / #1f3a93, accent #3b5a8b,
   Poppins font, rounded cards, subtle shadows.
   ============================================ */

/* --------------------------------------------
   FOUNDATIONS
   -------------------------------------------- */

.woocommerce,
.woocommerce-page {
	font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto,
		"Helvetica Neue", Arial, sans-serif;
	color: #1d2939;
}

/* Base WooCommerce element colors (woocommerce-general.css is dequeued) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	background-color: #3b5a8b;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-family: inherit;
	font-weight: 600;
	font-size: 14px;
	padding: 10px 20px;
	text-transform: none;
	cursor: pointer;
	transition: background 0.2s;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background-color: #2d4670;
	color: #fff;
}

.woocommerce .stock {
	color: #3b5a8b;
}

.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select {
	border-color: #3b5a8b;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: #ef4444;
}

/* --------------------------------------------
   SHOP HERO BANNER
   -------------------------------------------- */

.maps-shop-hero {
	background: linear-gradient(135deg, #002e5b 0%, #1f3a93 100%);
	padding: 48px 20px 44px;
	text-align: center;
	position: relative;
	overflow: hidden;
	/* Break out of content wrapper to span full viewport width. */
	width: 100vw;
	margin-left: calc(-50vw + 50%);
}

/* Subtle decorative circle */
.maps-shop-hero::before {
	content: "";
	position: absolute;
	top: -60px;
	right: -40px;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.04);
	pointer-events: none;
}

.maps-shop-hero__inner {
	max-width: 720px;
	margin: 0 auto;
}

.maps-shop-hero__title {
	font-family: "Poppins", system-ui, sans-serif;
	font-size: 36px;
	font-weight: 800;
	color: #fff;
	margin: 0 0 8px;
	letter-spacing: -0.5px;
	line-height: 1.2;
}

.maps-shop-hero__subtitle {
	font-family: "Poppins", system-ui, sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.8);
	margin: 0;
	line-height: 1.5;
}

.maps-hero__back {
	color: #fff !important;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 500;
	transition: opacity 0.15s ease;
	opacity: 1;
}

.maps-hero__back:hover {
	color: #fff !important;
	text-decoration: none !important;
	opacity: 0.7;
}

@media (max-width: 768px) {
	.maps-shop-hero {
		padding: 32px 16px 28px;
	}

	.maps-shop-hero__title {
		font-size: 28px;
	}

	.maps-shop-hero__subtitle {
		font-size: 14px;
	}
}

/* --------------------------------------------
   CATEGORY NAV BAR
   -------------------------------------------- */

.maps-category-nav {
	max-width: 1200px;
	margin: 0 auto 24px;
	padding: 0 20px;
}

.maps-category-nav__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 16px 0;
	border-bottom: 1px solid #e5e7eb;
}

.maps-category-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 18px;
	background: #f9fafb;
	color: #374151;
	border: 1px solid #e5e7eb;
	border-radius: 100px;
	font-family: "Poppins", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	white-space: nowrap;
	cursor: pointer;
}

.maps-category-pill:hover {
	background: #eef2f7;
	border-color: #3b5a8b;
	color: #1f3a93;
	text-decoration: none;
}

.maps-category-pill.is-active {
	background: #002e5b;
	color: #fff;
	border-color: #002e5b;
	font-weight: 600;
}

.maps-category-pill.is-active:hover {
	background: #001d3d;
	border-color: #001d3d;
	color: #fff;
}

.maps-category-pill.is-active .maps-category-count {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

.maps-category-count {
	font-size: 12px;
	font-weight: 600;
	background: #e5e7eb;
	color: #6b7280;
	padding: 1px 8px;
	border-radius: 100px;
	line-height: 1.4;
}

@media (max-width: 768px) {
	.maps-category-nav__inner {
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 16px;
	}

	.maps-category-nav__inner::-webkit-scrollbar {
		display: none;
	}

	.maps-category-pill {
		font-size: 13px;
		padding: 7px 14px;
	}
}

/* --------------------------------------------
   SUBCATEGORY NAV (modular — safe to remove)
   -------------------------------------------- */

.maps-subcategory-nav {
	max-width: 1200px;
	margin: -16px auto 24px;
	padding: 0 20px;
}

.maps-subcategory-nav__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 12px 0 16px;
	border-bottom: 1px solid #e5e7eb;
}

/* When subcategory nav is present, remove the bottom border from the main nav. */
.maps-category-nav + .maps-subcategory-nav {
	margin-top: -16px;
}

.maps-category-nav:has(+ .maps-subcategory-nav) .maps-category-nav__inner {
	border-bottom: none;
	padding-bottom: 8px;
}

.maps-subcategory-pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 14px;
	background: #fff;
	color: #6b7280;
	border: 1px solid #e5e7eb;
	border-radius: 100px;
	font-family: "Poppins", system-ui, sans-serif;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	white-space: nowrap;
	cursor: pointer;
}

.maps-subcategory-pill:hover {
	background: #f3f4f6;
	border-color: #3b5a8b;
	color: #1f3a93;
	text-decoration: none;
}

.maps-subcategory-pill.is-active {
	background: #1f3a93;
	color: #fff;
	border-color: #1f3a93;
	font-weight: 600;
}

.maps-subcategory-pill.is-active:hover {
	background: #162d6e;
	border-color: #162d6e;
	color: #fff;
}

.maps-subcategory-pill.is-active .maps-subcategory-count {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

.maps-subcategory-count {
	font-size: 11px;
	font-weight: 600;
	background: #e5e7eb;
	color: #6b7280;
	padding: 1px 7px;
	border-radius: 100px;
	line-height: 1.4;
}

@media (max-width: 768px) {
	.maps-subcategory-nav__inner {
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 12px;
	}

	.maps-subcategory-nav__inner::-webkit-scrollbar {
		display: none;
	}

	.maps-subcategory-pill {
		font-size: 12px;
		padding: 5px 12px;
	}
}

/* Constrain content width to match theme */
.woocommerce .woocommerce-products-header,
.woocommerce .products,
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}

/* --------------------------------------------
   SHOP PAGE HEADER
   -------------------------------------------- */

/* Hidden — hero banner replaces the default page title. */
.woocommerce-products-header__title {
	display: none;
}

.woocommerce-result-count {
	color: #6b7280;
	font-size: 14px;
	float: left;
	margin: 0;
	line-height: 38px;
}

.woocommerce-ordering {
	margin: 0 0 20px;
	float: right;
}

.woocommerce-ordering select {
	font-family: inherit;
	font-size: 14px;
	padding: 8px 32px 8px 12px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E") no-repeat right 10px center;
	background-size: 12px;
	color: #374151;
	appearance: none;
	-webkit-appearance: none;
}

/* --------------------------------------------
   PRODUCT GRID (SHOP / ARCHIVE)
   -------------------------------------------- */

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 24px;
	padding: 0;
	list-style: none;
	clear: both;
}

.woocommerce ul.products li.product {
	position: relative;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	width: auto;
	float: none;
}

.woocommerce ul.products li.product:hover {
	box-shadow: 0 8px 24px rgba(0, 46, 91, 0.12);
	transform: translateY(-2px);
}

/* Product image */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
	border-radius: 0;
	margin: 0;
	width: 100%;
	height: 260px;
	object-fit: cover;
	display: block;
}

/* Product info area — the link wrapper must grow to push price/button down */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	text-decoration: none;
	color: inherit;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 15px;
	font-weight: 600;
	color: #1f3a93;
	margin: 0;
	padding: 16px 16px 4px;
	line-height: 1.4;
	flex-grow: 1;
}

/* Book category product images — show full cover, don't crop */
.woocommerce ul.products li.product.product_cat-bookshop a img,
.woocommerce ul.products li.product.product_cat-bookshop img,
.woocommerce ul.products li.product.product_cat-all-titles a img,
.woocommerce ul.products li.product.product_cat-all-titles img,
.woocommerce ul.products li.product.product_cat-maps-published a img,
.woocommerce ul.products li.product.product_cat-maps-published img {
	object-fit: contain;
	background: #fff;
}

/* Author byline on book cards */
.maps-product-author {
	display: block;
	padding: 0 16px 4px;
	font-size: 13px;
	font-weight: 400;
	color: #6b7280;
	line-height: 1.4;
	font-style: italic;
}

.woocommerce ul.products li.product .price {
	padding: 4px 16px 12px;
	font-size: 16px;
	font-weight: 700;
	color: #002e5b;
	flex-shrink: 0;
	margin-top: auto;
}

.woocommerce ul.products li.product .price del {
	color: #9ca3af;
	font-weight: 400;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	color: #002e5b;
}

/* Star rating */
.woocommerce ul.products li.product .star-rating {
	margin: 0 16px 8px;
	font-size: 13px;
}

/* Card action buttons (Details + Cart) */
.maps-card-actions {
	display: flex;
	gap: 8px;
	margin: auto 16px 16px;
}

.woocommerce ul.products li.product .maps-btn-details {
	flex: 1;
	padding: 9px 12px;
	background: #3b5a8b;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	cursor: pointer;
	transition: background 0.2s;
	text-align: center;
	text-decoration: none;
}

.woocommerce ul.products li.product .maps-btn-details:hover {
	background: #2d4670;
	color: #fff;
}

.woocommerce ul.products li.product .maps-btn-cart {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 9px 12px;
	background: #eef2f7;
	color: #3b5a8b;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	cursor: pointer;
	transition: background 0.2s, border-color 0.2s;
	text-decoration: none;
	line-height: 1;
}

.woocommerce ul.products li.product .maps-btn-cart:hover {
	background: #3b5a8b;
	color: #fff;
	border-color: #3b5a8b;
}

.woocommerce ul.products li.product .maps-btn-cart svg {
	display: block;
}

/* "View cart" link after adding */
.woocommerce ul.products li.product .added_to_cart {
	display: block;
	text-align: center;
	padding: 0 16px 12px;
	font-size: 13px;
	color: #3b5a8b;
	font-weight: 600;
}

/* Sale badge */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	position: absolute;
	z-index: 1;
	background: #f59e0b;
	color: #fff;
	font-weight: 700;
	font-size: 12px;
	border-radius: 6px;
	padding: 4px 10px;
	line-height: 1;
	min-height: auto;
	min-width: auto;
	top: 12px;
	left: 12px;
	right: auto;
	margin: 0;
}

/* Best Seller badge */
.maps-badge {
	display: inline-block;
	font-family: "Poppins", system-ui, sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	padding: 5px 10px;
	border-radius: 6px;
	letter-spacing: 0.3px;
}

.maps-badge--bestseller {
	background: #002e5b;
	color: #fff;
}

.maps-badge--outofstock {
	background: #6b7280;
	color: #fff;
}

/* In the product grid — position over the image like the sale badge. */
.woocommerce ul.products li.product .maps-badge {
	position: absolute;
	z-index: 1;
	top: 12px;
	right: 12px;
}

/* On single product page — inline above the title. */
.woocommerce div.product .maps-badge {
	margin-bottom: 8px;
}

/* --------------------------------------------
   SINGLE PRODUCT
   -------------------------------------------- */

.woocommerce div.product {
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 20px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: start;
}

/* Let tabs, related, and upsells span both columns */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	grid-column: 1 / -1;
}

/* --- IMAGE GALLERY --- */

.woocommerce div.product div.images {
	position: relative;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	border-radius: 12px;
	overflow: hidden;
	background: #f9fafb;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images img {
	border-radius: 12px;
	width: 100%;
	height: auto;
	display: block;
}

/* Gallery thumbnails */
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	padding: 0;
	list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 8px;
	border: 2px solid transparent;
	cursor: pointer;
	opacity: 0.6;
	transition: opacity 0.15s, border-color 0.15s;
}

.woocommerce div.product div.images .flex-control-thumbs li img:hover {
	opacity: 0.9;
}

.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: #002e5b;
}

/* Gallery zoom trigger — WooCommerce icon font doesn't load since we
   dequeue their stylesheets, so we use a CSS-only magnifying glass. */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 36px;
	height: 36px;
	background: rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	font-size: 0;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	cursor: pointer;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
	content: "";
	display: block;
	width: 14px;
	height: 14px;
	border: 2px solid #374151;
	border-radius: 50%;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
	content: "";
	display: block;
	position: absolute;
	width: 2px;
	height: 7px;
	background: #374151;
	border-radius: 1px;
	bottom: 8px;
	right: 9px;
	transform: rotate(-45deg);
}

/* --- PRODUCT SUMMARY --- */

.woocommerce div.product .summary {
	padding-top: 8px;
}

.woocommerce div.product .product_title {
	font-size: 28px;
	font-weight: 700;
	color: #002e5b;
	margin: 0 0 12px;
	line-height: 1.25;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 26px;
	font-weight: 700;
	color: #1f3a93;
	margin-bottom: 20px;
	display: block;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	color: #9ca3af;
	font-weight: 400;
	font-size: 20px;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: 15px;
	line-height: 1.7;
	color: #475467;
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid #e5e7eb;
}

/* --- VARIATIONS --- */

.woocommerce div.product .variations {
	border-collapse: collapse;
	margin-bottom: 20px;
	width: 100%;
}

.woocommerce div.product .variations tr {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 16px;
}

.woocommerce div.product .variations td.label {
	padding: 0;
}

.woocommerce div.product .variations td.label label {
	font-weight: 600;
	font-size: 14px;
	color: #1d2939;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.woocommerce div.product .variations td.value {
	padding: 0;
}

.woocommerce div.product .variations td select {
	font-family: inherit;
	font-size: 14px;
	padding: 10px 36px 10px 14px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E") no-repeat right 12px center;
	background-size: 12px;
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	color: #374151;
	cursor: pointer;
	transition: border-color 0.15s;
}

.woocommerce div.product .variations td select:focus {
	border-color: #3b5a8b;
	outline: none;
	box-shadow: 0 0 0 3px rgba(59, 90, 139, 0.12);
}

.woocommerce div.product .variations .reset_variations {
	font-size: 13px;
	color: #6b7280;
	text-decoration: none;
	margin-top: 4px;
	display: inline-block;
}

.woocommerce div.product .variations .reset_variations:hover {
	color: #ef4444;
}

/* --- ADD TO CART AREA --- */

.woocommerce div.product form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 24px;
	padding: 20px 0;
	border-top: 1px solid #e5e7eb;
}

.woocommerce div.product form.cart .quantity {
	display: flex;
	align-items: center;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	overflow: hidden;
}

.woocommerce div.product form.cart .quantity input.qty {
	font-family: inherit;
	font-size: 15px;
	padding: 12px 8px;
	border: none;
	width: 52px;
	text-align: center;
	-moz-appearance: textfield;
}

.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product .single_add_to_cart_button {
	flex: 1;
	background: #002e5b;
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 14px 32px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	cursor: pointer;
	transition: background 0.2s, transform 0.1s;
	text-align: center;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: #001d3d;
}

.woocommerce div.product form.cart .single_add_to_cart_button:active {
	transform: scale(0.98);
}

/* Variation add-to-cart (wraps differently) */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
}

/* --- PRODUCT META --- */

.woocommerce div.product .product_meta {
	font-size: 13px;
	color: #6b7280;
	margin-top: 0;
	padding-top: 20px;
	border-top: 1px solid #e5e7eb;
	line-height: 2;
}

.woocommerce div.product .product_meta > span {
	display: block;
}

.woocommerce div.product .product_meta a {
	color: #3b5a8b;
	text-decoration: none;
	font-weight: 500;
}

.woocommerce div.product .product_meta a:hover {
	color: #1f3a93;
}

/* --- TABS --- */

.woocommerce div.product .woocommerce-tabs {
	margin-top: 16px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0;
	list-style: none;
	display: flex;
	gap: 0;
	border-bottom: 2px solid #e5e7eb;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none;
	border: none;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: #6b7280;
	padding: 14px 24px;
	display: block;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: color 0.2s;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: #002e5b;
	border-bottom-color: #002e5b;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: #1f3a93;
}

.woocommerce div.product .woocommerce-tabs .panel {
	padding: 28px 0;
	font-size: 15px;
	line-height: 1.7;
	color: #475467;
	max-width: 800px;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
	font-size: 20px;
	font-weight: 700;
	color: #002e5b;
	margin: 0 0 16px;
}

/* Additional information table */
.woocommerce div.product .woocommerce-tabs .shop_attributes {
	border: none;
}

.woocommerce div.product .woocommerce-tabs .shop_attributes th {
	font-weight: 600;
	color: #374151;
	padding: 10px 20px 10px 0;
	border: none;
	border-bottom: 1px solid #f3f4f6;
	font-size: 14px;
}

.woocommerce div.product .woocommerce-tabs .shop_attributes td {
	padding: 10px 0;
	border: none;
	border-bottom: 1px solid #f3f4f6;
	color: #475467;
	font-size: 14px;
}

.woocommerce div.product .woocommerce-tabs .shop_attributes td p {
	margin: 0;
}

/* --- RELATED / UPSELLS --- */

.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	font-size: 22px;
	font-weight: 700;
	color: #002e5b;
	margin: 16px 0 20px;
	padding-top: 24px;
	border-top: 1px solid #e5e7eb;
}

/* --- SINGLE PRODUCT RESPONSIVE --- */

@media (max-width: 768px) {
	.woocommerce div.product {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 24px 16px;
	}

	.woocommerce div.product div.images {
		position: static;
	}

	.woocommerce div.product .product_title {
		font-size: 22px;
	}

	.woocommerce div.product p.price,
	.woocommerce div.product span.price {
		font-size: 22px;
	}

	.woocommerce div.product form.cart {
		flex-wrap: wrap;
	}

	.woocommerce div.product form.cart .single_add_to_cart_button {
		width: 100%;
		flex: none;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		padding: 12px 16px;
		font-size: 13px;
	}
}

/* --------------------------------------------
   SHOP / ARCHIVE BOTTOM SPACING
   -------------------------------------------- */

.woocommerce-shop ul.products,
.tax-product_cat ul.products {
	margin-bottom: 80px;
}

/* --------------------------------------------
   CART PAGE
   -------------------------------------------- */

.woocommerce-cart .woocommerce {
	padding-top: 32px;
	padding-bottom: 40px;
}

.woocommerce table.shop_table {
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow: hidden;
	border-collapse: separate;
	border-spacing: 0;
}

.woocommerce table.shop_table thead {
	background: #f9fafb;
}

.woocommerce table.shop_table thead th {
	font-size: 12px;
	font-weight: 600;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 14px 16px;
	border-bottom: 2px solid #e5e7eb;
}

.woocommerce table.shop_table td {
	padding: 16px;
	border-top: 1px solid #f3f4f6;
	vertical-align: middle;
	font-size: 14px;
}

.woocommerce table.shop_table td.product-name a {
	color: #1f3a93;
	font-weight: 600;
	text-decoration: none;
}

.woocommerce table.shop_table td.product-name a:hover {
	color: #002e5b;
}

.woocommerce table.shop_table td.product-price,
.woocommerce table.shop_table td.product-subtotal {
	font-weight: 600;
	color: #002e5b;
}

.woocommerce table.shop_table img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 8px;
}

/* Remove item link */
.woocommerce table.shop_table td.product-remove a.remove {
	color: #ef4444 !important;
	font-size: 20px;
	text-decoration: none;
}

.woocommerce table.shop_table td.product-remove a.remove:hover {
	background: #fef2f2;
	color: #dc2626 !important;
}

/* Quantity in cart */
.woocommerce table.shop_table td.product-quantity input.qty {
	font-family: inherit;
	font-size: 14px;
	padding: 8px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	width: 60px;
	text-align: center;
}

/* Update cart / coupon buttons */
.woocommerce table.shop_table td.actions .coupon input {
	font-family: inherit;
	font-size: 14px;
	padding: 10px 14px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
}

.woocommerce table.shop_table td.actions .coupon .button,
.woocommerce button[name="update_cart"] {
	background: #3b5a8b;
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 10px 20px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	text-transform: none;
	cursor: pointer;
	transition: background 0.2s;
}

.woocommerce table.shop_table td.actions .coupon .button:hover,
.woocommerce button[name="update_cart"]:hover {
	background: #2d4670;
}

/* Cart totals sidebar */
.woocommerce .cart_totals,
.woocommerce-page .cart_totals {
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 24px;
}

.woocommerce .cart_totals h2 {
	font-size: 18px;
	font-weight: 700;
	color: #002e5b;
	margin: 0 0 16px;
}

.woocommerce .cart_totals table {
	border: none;
}

.woocommerce .cart_totals table th {
	font-weight: 600;
	color: #374151;
	font-size: 14px;
	padding: 10px 0;
	border-top: 1px solid #e5e7eb;
}

.woocommerce .cart_totals table td {
	font-size: 14px;
	padding: 10px 0;
	text-align: right;
	border-top: 1px solid #e5e7eb;
}

.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td {
	font-size: 18px;
	font-weight: 700;
	color: #002e5b;
	border-top: 2px solid #002e5b;
}

/* Proceed to checkout button */
.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button {
	background: #002e5b;
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 16px 32px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	display: block;
	text-align: center;
	text-decoration: none;
	transition: background 0.2s;
}

.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
	background: #001d3d;
}

/* --------------------------------------------
   CHECKOUT PAGE
   -------------------------------------------- */

.woocommerce-checkout .woocommerce {
	padding-top: 32px;
	padding-bottom: 40px;
}

/* Two-column layout: form fields left, order summary right.
   WooCommerce's own woocommerce-layout.css is dequeued
   (maps_ecommerce_dequeue_woo_styles), so the checkout columns
   must be defined here. Collapses to a single column ≤900px. */
@media (min-width: 901px) {
	.woocommerce-checkout form.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 460px;
		column-gap: 48px;
		align-items: start;
	}

	.woocommerce-checkout form.woocommerce-checkout #customer_details {
		grid-column: 1;
		grid-row: 1 / span 2;
	}

	.woocommerce-checkout form.woocommerce-checkout #order_review_heading {
		grid-column: 2;
		grid-row: 1;
	}

	.woocommerce-checkout form.woocommerce-checkout #order_review {
		grid-column: 2;
		grid-row: 2;
	}

	/* WooCommerce blocks the form with a blockUI overlay while an order is
	   processing. As an abs-positioned child of this grid, the overlay's
	   100% width/height resolved against its auto-placed grid CELL, not the
	   form (395x366 over a 1744px form = invisible), so Place Order looked
	   like a dead hang. Note grid-row: 1 / -1 does NOT work here — negative
	   lines address only the explicit grid and all our rows are implicit.
	   Explicit zero insets + auto size stretch it over the whole form;
	   !important beats blockUI's inline styles. */
	.woocommerce-checkout form.woocommerce-checkout > .blockUI.blockOverlay {
		grid-column: 1 / -1;
		grid-row: 1;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: auto !important;
		height: auto !important;
	}
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 24px;
}

.woocommerce-checkout h3,
.woocommerce-checkout h3#order_review_heading {
	font-size: 20px;
	font-weight: 700;
	color: #002e5b;
	margin: 0 0 20px;
	padding-bottom: 12px;
	border-bottom: 2px solid #e5e7eb;
}

/* Form fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	font-family: inherit;
	font-size: 14px;
	padding: 12px 14px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #fff;
	color: #1d2939;
	transition: border-color 0.2s;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: #3b5a8b;
	outline: none;
	box-shadow: 0 0 0 3px rgba(59, 90, 139, 0.12);
}

.woocommerce form .form-row label {
	font-size: 13px;
	font-weight: 600;
	color: #374151;
}

/* Order review table. Fixed column proportions and horizontal-only
   borders — in the narrow right-hand column the table otherwise splits
   ~50/50, clipping prices and wrapping product names hard. */
.woocommerce-checkout #order_review {
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 20px;
}

.woocommerce-checkout #order_review table.shop_table {
	border: none;
	border-radius: 0;
	width: 100%;
	table-layout: fixed;
}

.woocommerce-checkout #order_review table.shop_table thead th {
	background: none;
	border-bottom: 1px solid #e5e7eb;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
	border-left: 0;
	border-right: 0;
	padding: 12px 8px;
}

.woocommerce-checkout #order_review table.shop_table thead th.product-name {
	width: 64%;
}

.woocommerce-checkout #order_review table.shop_table thead th.product-total,
.woocommerce-checkout #order_review table.shop_table td.product-total,
.woocommerce-checkout #order_review table.shop_table tfoot td {
	text-align: right;
}

.woocommerce-checkout #order_review table.shop_table tfoot th {
	white-space: nowrap;
	text-align: left;
}

.woocommerce-checkout #order_review table.shop_table .woocommerce-Price-amount {
	white-space: nowrap;
}

.woocommerce-checkout #order_review table.shop_table .woocommerce-shipping-may-be-available-html {
	font-size: 13px;
	color: #6b7280;
}

/* Payment methods */
.woocommerce-checkout #payment {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
}

.woocommerce-checkout #payment ul.payment_methods {
	padding: 20px;
	border-bottom: 1px solid #e5e7eb;
}

.woocommerce-checkout #payment ul.payment_methods li {
	font-size: 14px;
	font-weight: 500;
}

.woocommerce-checkout #payment div.place-order {
	padding: 20px;
}

/* Place order button */
.woocommerce #payment #place_order,
.woocommerce-checkout #place_order {
	background: #002e5b;
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 16px 40px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	cursor: pointer;
	transition: background 0.2s;
	width: 100%;
}

.woocommerce #payment #place_order:hover,
.woocommerce-checkout #place_order:hover {
	background: #001d3d;
}

/* --------------------------------------------
   MY ACCOUNT
   -------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-navigation {
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 14px 20px;
	font-size: 14px;
	font-weight: 500;
	color: #374151;
	text-decoration: none;
	border-bottom: 1px solid #e5e7eb;
	transition: background 0.15s;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child a {
	border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: #eef2f7;
	color: #1f3a93;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: #002e5b;
	color: #fff;
	font-weight: 600;
}

/* Breadcrumbs removed — hero banner handles navigation. */

/* --------------------------------------------
   NOTICES / MESSAGES
   -------------------------------------------- */

.woocommerce .woocommerce-message {
	border-top-color: #3b5a8b;
	background: #eef2f7;
	color: #1d2939;
	border-radius: 8px;
	font-size: 14px;
}

.woocommerce .woocommerce-message a.button {
	background: #3b5a8b;
	color: #fff;
	border-radius: 8px;
	font-family: inherit;
	font-weight: 600;
	text-transform: none;
	padding: 8px 16px;
	font-size: 13px;
}

.woocommerce .woocommerce-info {
	border-top-color: #3b5a8b;
	background: #f0f4f8;
	border-radius: 8px;
	font-size: 14px;
}

.woocommerce .woocommerce-error {
	border-top-color: #ef4444;
	background: #fef2f2;
	border-radius: 8px;
	font-size: 14px;
}

/* --------------------------------------------
   PAGINATION
   -------------------------------------------- */

.woocommerce nav.woocommerce-pagination {
	margin: 40px 0;
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
	border: none;
	display: inline-flex;
	gap: 4px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: none;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span.current {
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: #374151;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 8px 14px;
	min-width: auto;
	text-decoration: none;
	transition: all 0.15s;
}

.woocommerce nav.woocommerce-pagination ul li span.dots,
.woocommerce .page-numbers .dots,
span.page-numbers.dots {
	border: none;
	background: transparent;
	padding: 0 4px;
	color: #6b7280;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: #eef2f7;
	border-color: #3b5a8b;
	color: #1f3a93;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: #002e5b;
	color: #fff;
	border-color: #002e5b;
}

/* --------------------------------------------
   RESPONSIVE
   -------------------------------------------- */

@media (max-width: 768px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
		gap: 16px;
	}

	.woocommerce ul.products li.product a img,
	.woocommerce ul.products li.product img {
		height: 180px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 14px;
		padding: 12px 12px 4px;
	}

	.woocommerce ul.products li.product .price {
		font-size: 14px;
		padding: 0 12px 10px;
	}

	.woocommerce ul.products li.product .button {
		margin: auto 12px 12px;
		padding: 8px 14px;
		font-size: 12px;
	}

	.woocommerce div.product .product_title {
		font-size: 22px;
	}

	.woocommerce div.product p.price,
	.woocommerce div.product span.price {
		font-size: 20px;
	}

	/* Stack cart table on mobile */
	.woocommerce table.shop_table_responsive thead {
		display: none;
	}

	.woocommerce table.shop_table_responsive tr td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		text-align: right;
	}

	.woocommerce table.shop_table_responsive tr td::before {
		font-weight: 600;
		color: #6b7280;
		text-transform: uppercase;
		font-size: 12px;
		letter-spacing: 0.05em;
	}
}

@media (max-width: 480px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}
}

/* --------------------------------------------
   FLOATING CART BUTTON
   -------------------------------------------- */

.maps-floating-cart {
	position: fixed;
	bottom: 28px;
	right: 28px;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 14px 22px;
	background: #002e5b;
	color: #fff;
	border-radius: 100px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
	text-decoration: none;
	font-family: "Poppins", system-ui, sans-serif;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.maps-floating-cart:hover {
	background: #1f3a93;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 6px 28px rgba(0, 0, 0, 0.35);
	text-decoration: none;
}

.maps-floating-cart:active {
	transform: translateY(0);
}

.maps-floating-cart svg {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	fill: #fff !important;
	color: #fff !important;
}

.maps-floating-cart__label {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.3px;
	color: #fff !important;
}

.maps-floating-cart__count {
	min-width: 24px;
	height: 24px;
	padding: 0 7px;
	background: #e74c3c;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 24px;
	text-align: center;
	border-radius: 100px;
}

@media (max-width: 768px) {
	.maps-floating-cart {
		bottom: 20px;
		right: 20px;
		padding: 12px 18px;
	}

	.maps-floating-cart svg {
		width: 20px;
		height: 20px;
	}

	.maps-floating-cart__label {
		font-size: 14px;
	}
}

/* ======================================================
   CART & CHECKOUT — full design pass (v0.7.0)
   Target: override Elementor theme defaults (including the
   maroon link color) and match the shop page's modern card/
   navy-palette aesthetic.
   ====================================================== */

/* ------ Global link + text overrides on cart/checkout ------
   :not(.elementor-item) keeps these off the header nav menu —
   without it, nav links get recolored and hovering stacks
   text-decoration on the Elementor pointer = double underline. */
.woocommerce-cart a:not(.button):not(.remove):not(.checkout-button):not(.elementor-item),
.woocommerce-checkout a:not(.button):not(.remove):not(.checkout-button):not(.elementor-item),
.woocommerce-cart .entry-content a,
.woocommerce-checkout .entry-content a {
	color: #3b5a8b;
	text-decoration: none;
	transition: color 0.15s ease;
}
.woocommerce-cart a:not(.button):not(.remove):not(.checkout-button):not(.elementor-item):hover,
.woocommerce-checkout a:not(.button):not(.remove):not(.checkout-button):not(.elementor-item):hover {
	color: #0a2c65;
	text-decoration: underline;
}

.woocommerce-cart .entry-title,
.woocommerce-cart .page-title,
.woocommerce-checkout .entry-title,
.woocommerce-checkout .page-title,
.woocommerce-cart h1.wp-block-post-title,
.woocommerce-checkout h1.wp-block-post-title {
	color: #0a2c65;
	font-weight: 800;
	font-size: 2rem;
	margin: 0 0 24px 0;
	letter-spacing: -0.01em;
}

/* ------ Buttons (cart + checkout primary/secondary) ------ */
.woocommerce-cart .button,
.woocommerce-checkout .button,
.woocommerce-cart button.button,
.woocommerce-checkout button.button,
.woocommerce-cart input[type="submit"].button,
.woocommerce-checkout input[type="submit"].button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce #place_order {
	background: #002e5b !important;
	color: #fff !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 12px 24px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: 0.2px !important;
	transition: background 0.15s ease, transform 0.05s ease !important;
	cursor: pointer;
	text-transform: none !important;
	box-shadow: 0 1px 2px rgba(0, 46, 91, 0.15);
}
.woocommerce-cart .button:hover,
.woocommerce-checkout .button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce #place_order:hover {
	background: #001d3d !important;
	color: #fff !important;
}
.woocommerce-cart .button:active,
.woocommerce-checkout .button:active,
.woocommerce #place_order:active {
	transform: translateY(1px);
}

/* Secondary buttons (update cart, apply coupon) */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart button[name="apply_coupon"],
.woocommerce-checkout button[name="apply_coupon"] {
	background: #fff !important;
	color: #0a2c65 !important;
	border: 1px solid #d1d5db !important;
	box-shadow: none;
}
.woocommerce-cart button[name="update_cart"]:hover,
.woocommerce-cart button[name="apply_coupon"]:hover,
.woocommerce-checkout button[name="apply_coupon"]:hover {
	background: #f9fafb !important;
	border-color: #3b5a8b !important;
	color: #0a2c65 !important;
}

/* ------ CART ITEMS TABLE ------ */
.woocommerce-cart table.shop_table {
	border-collapse: separate !important;
	border-spacing: 0 !important;
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid #e5e7eb !important;
	background: #fff;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
	margin-bottom: 24px;
}

.woocommerce-cart table.shop_table thead {
	background: #f9fafb;
}
.woocommerce-cart table.shop_table thead th {
	padding: 14px 16px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: #6b7280 !important;
	border: none !important;
	text-align: left;
}

.woocommerce-cart table.shop_table tbody td {
	padding: 20px 16px !important;
	border-top: 1px solid #f3f4f6 !important;
	vertical-align: middle !important;
	background: #fff !important;
	color: #1d2939 !important;
	font-size: 15px;
}
.woocommerce-cart table.shop_table tbody tr:first-child td {
	border-top: none !important;
}

.woocommerce-cart table.shop_table .product-thumbnail {
	width: 96px;
}
.woocommerce-cart table.shop_table .product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}

.woocommerce-cart table.shop_table .product-name {
	color: #0a2c65;
	font-weight: 600;
}
.woocommerce-cart table.shop_table .product-name a {
	color: #0a2c65 !important;
	font-weight: 600;
	text-decoration: none !important;
}
.woocommerce-cart table.shop_table .product-name a:hover {
	color: #3b5a8b !important;
	text-decoration: underline !important;
}

.woocommerce-cart table.shop_table .product-price,
.woocommerce-cart table.shop_table .product-subtotal {
	color: #1d2939 !important;
	font-weight: 600;
}
.woocommerce-cart table.shop_table .product-price del,
.woocommerce-cart table.shop_table .product-subtotal del {
	opacity: 0.55;
	color: #6b7280 !important;
	margin-right: 4px;
}
.woocommerce-cart table.shop_table .product-price ins,
.woocommerce-cart table.shop_table .product-subtotal ins {
	text-decoration: none;
	color: #0a2c65 !important;
	font-weight: 700;
}

/* Quantity control */
.woocommerce-cart table.shop_table .product-quantity .quantity {
	display: inline-flex;
	align-items: center;
}
.woocommerce-cart table.shop_table .product-quantity input.qty {
	width: 72px;
	height: 42px;
	padding: 0 10px !important;
	font-size: 15px !important;
	border: 1px solid #d1d5db !important;
	border-radius: 8px !important;
	text-align: center;
	font-family: inherit !important;
	color: #1d2939 !important;
	background: #fff;
}
.woocommerce-cart table.shop_table .product-quantity input.qty:focus {
	outline: none;
	border-color: #3b5a8b !important;
	box-shadow: 0 0 0 3px rgba(59, 90, 139, 0.1);
}

/* Remove (×) button — small circular red */
.woocommerce-cart table.shop_table .product-remove {
	width: 44px;
	text-align: center;
}
.woocommerce-cart table.shop_table .product-remove a.remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50% !important;
	background: #fee2e2 !important;
	color: #ef4444 !important;
	font-size: 16px !important;
	line-height: 1 !important;
	text-decoration: none !important;
	font-weight: 700 !important;
	transition: all 0.15s ease;
}
.woocommerce-cart table.shop_table .product-remove a.remove:hover {
	background: #ef4444 !important;
	color: #fff !important;
}

/* Coupon + update cart row ("actions" row) */
.woocommerce-cart table.shop_table .actions {
	padding: 16px !important;
	background: #f9fafb !important;
	border-top: 1px solid #e5e7eb !important;
}
.woocommerce-cart .coupon {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	margin-right: 12px;
}
.woocommerce-cart .coupon label {
	display: none;
}
.woocommerce-cart .coupon input.input-text {
	padding: 10px 14px !important;
	border: 1px solid #d1d5db !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	min-width: 220px;
	height: 42px;
	color: #1d2939;
	background: #fff;
}
.woocommerce-cart .coupon input.input-text:focus {
	outline: none;
	border-color: #3b5a8b !important;
	box-shadow: 0 0 0 3px rgba(59, 90, 139, 0.1);
}

/* ------ CART TOTALS BLOCK ------ */
.woocommerce-cart .cart-collaterals {
	display: flex;
	justify-content: flex-end;
	margin-top: 24px;
}
.woocommerce-cart .cart-collaterals .cross-sells {
	display: none; /* Hide cross-sells to keep cart clean — can be re-enabled later */
}
.woocommerce-cart .cart_totals {
	background: #fff !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 12px !important;
	padding: 24px !important;
	max-width: 480px;
	width: 100%;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
	float: none !important;
}
.woocommerce-cart .cart_totals h2 {
	color: #0a2c65 !important;
	font-size: 20px !important;
	font-weight: 800 !important;
	margin: 0 0 16px 0 !important;
	padding-bottom: 12px;
	border-bottom: 1px solid #f3f4f6;
	letter-spacing: -0.01em;
}
.woocommerce-cart .cart_totals table {
	border: none !important;
	box-shadow: none !important;
	margin: 0 0 20px 0 !important;
	background: transparent !important;
}
.woocommerce-cart .cart_totals table tr {
	background: transparent !important;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	background: transparent !important;
	padding: 12px 0 !important;
	border: none !important;
	border-bottom: 1px solid #f3f4f6 !important;
	color: #374151 !important;
	font-size: 14px !important;
	vertical-align: top;
	font-weight: 500;
}
.woocommerce-cart .cart_totals table th {
	font-weight: 600 !important;
	color: #1d2939 !important;
}
.woocommerce-cart .cart_totals table .order-total th,
.woocommerce-cart .cart_totals table .order-total td {
	padding-top: 16px !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	color: #0a2c65 !important;
	border-bottom: none !important;
}
.woocommerce-cart .cart_totals table .order-total td .woocommerce-Price-amount {
	color: #0a2c65 !important;
}

/* MAPS member discount fee line — green accent to feel like a win */
.woocommerce-cart .cart_totals table .fee th,
.woocommerce-cart .cart_totals table .fee td {
	color: #047857 !important;
	font-weight: 700 !important;
}
.woocommerce-cart .cart_totals table .fee td .woocommerce-Price-amount {
	color: #047857 !important;
}

.woocommerce-cart .wc-proceed-to-checkout {
	margin-top: 20px !important;
	padding: 0 !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: block !important;
	width: 100% !important;
	text-align: center !important;
	padding: 14px 20px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
}

/* Empty cart / return-to-shop */
.woocommerce-cart .cart-empty.woocommerce-info,
.woocommerce-cart .wc-empty-cart-message {
	background: #f9fafb !important;
	border: 1px dashed #d1d5db !important;
	border-left: 1px dashed #d1d5db !important;
	border-radius: 12px !important;
	padding: 40px !important;
	text-align: center;
	font-size: 16px;
	color: #6b7280;
	box-shadow: none;
}
.woocommerce-cart .return-to-shop {
	text-align: center;
	margin: 20px 0;
}

/* ======================================================
   CHECKOUT
   ====================================================== */

/* Coupon toggle notice + info notices */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	background: #f0f5fb !important;
	border: 1px solid #d5deeb !important;
	border-left: 4px solid #3b5a8b !important;
	color: #1f3057 !important;
	padding: 14px 18px !important;
	border-radius: 10px !important;
	font-size: 14px !important;
	margin-bottom: 16px;
	box-shadow: none;
}
.woocommerce-checkout .woocommerce-info::before {
	color: #3b5a8b !important;
}
.woocommerce-checkout .woocommerce-info a {
	color: #3b5a8b !important;
	font-weight: 600;
}

/* Two-column layout: customer details | order review */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 32px;
	align-items: start;
}
@media (max-width: 900px) {
	.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
	}
}

.woocommerce-checkout h3 {
	color: #0a2c65 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 0 0 16px 0 !important;
	letter-spacing: -0.005em;
}

/* Form fields */
.woocommerce-checkout .form-row {
	margin-bottom: 16px !important;
}
.woocommerce-checkout .form-row label {
	display: block !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: #1d2939 !important;
	margin-bottom: 6px !important;
}
.woocommerce-checkout .form-row .required {
	color: #ef4444;
	text-decoration: none;
}

.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	width: 100% !important;
	padding: 10px 12px !important;
	border: 1px solid #d1d5db !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	background: #fff !important;
	color: #1d2939 !important;
	min-height: 44px !important;
	line-height: 1.4 !important;
	box-sizing: border-box !important;
	height: auto !important;
}
.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
	outline: none;
	border-color: #3b5a8b !important;
	box-shadow: 0 0 0 3px rgba(59, 90, 139, 0.1) !important;
}
.woocommerce-checkout .form-row textarea {
	min-height: 100px !important;
	resize: vertical;
}
.woocommerce-checkout .select2-container--default .select2-selection--single {
	display: flex !important;
	align-items: center;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: #1d2939 !important;
	line-height: 24px !important;
	padding-left: 0 !important;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 42px !important;
	right: 10px !important;
}

/* Order review card */
.woocommerce-checkout #order_review_heading {
	color: #0a2c65 !important;
	font-size: 20px !important;
	font-weight: 800 !important;
	margin: 0 0 16px 0 !important;
	letter-spacing: -0.01em;
}
.woocommerce-checkout #order_review {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 24px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
	position: sticky;
	top: 24px;
}
.woocommerce-checkout-review-order-table {
	border: none !important;
	box-shadow: none !important;
	width: 100%;
	margin-bottom: 16px !important;
	background: transparent !important;
}
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	border-bottom: 1px solid #f3f4f6 !important;
	padding: 10px 0 !important;
	font-size: 14px !important;
	color: #374151 !important;
	background: transparent !important;
	font-weight: 500;
}
.woocommerce-checkout-review-order-table thead th {
	font-size: 12px !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #6b7280 !important;
}
.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	padding-top: 16px !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	color: #0a2c65 !important;
	border-bottom: none !important;
}
.woocommerce-checkout-review-order-table tfoot .fee th,
.woocommerce-checkout-review-order-table tfoot .fee td {
	color: #047857 !important;
	font-weight: 700 !important;
}
.woocommerce-checkout-review-order-table tfoot .fee td .woocommerce-Price-amount {
	color: #047857 !important;
}

/* Payment methods block */
.woocommerce-checkout #payment {
	background: #f9fafb !important;
	border-radius: 10px !important;
	padding: 20px !important;
	margin-top: 16px !important;
	border: 1px solid #e5e7eb !important;
	box-shadow: none !important;
}
.woocommerce-checkout #payment ul.payment_methods {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 16px 0 !important;
	border-bottom: none !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
	padding: 14px !important;
	margin-bottom: 8px !important;
	background: #fff !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 10px !important;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]:checked + label {
	color: #3b5a8b;
}
.woocommerce-checkout #payment ul.payment_methods li label {
	font-weight: 600 !important;
	color: #0a2c65 !important;
	margin-left: 8px;
	cursor: pointer;
}
.woocommerce-checkout #payment .payment_box {
	background: #f0f5fb !important;
	color: #1f3057 !important;
	padding: 12px 14px !important;
	border-radius: 8px !important;
	margin-top: 10px !important;
	font-size: 13px !important;
}
.woocommerce-checkout #payment .payment_box::before {
	display: none !important;
}

.woocommerce-checkout #place_order {
	width: 100% !important;
	padding: 16px 20px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	margin-top: 16px !important;
}

/* Privacy + terms */
.woocommerce-checkout .woocommerce-privacy-policy-text {
	font-size: 13px;
	color: #6b7280;
	line-height: 1.5;
	margin: 12px 0;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: flex !important;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
	color: #1d2939;
	font-weight: 500;
	cursor: pointer;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	margin-top: 3px;
}

/* Validation errors */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-NoticeGroup-checkout ul.woocommerce-error {
	background: #fef2f2 !important;
	border: 1px solid #fca5a5 !important;
	border-left: 4px solid #ef4444 !important;
	color: #991b1b !important;
	border-radius: 10px !important;
	padding: 14px 18px !important;
	list-style: none;
	box-shadow: none !important;
}
.woocommerce-checkout .woocommerce-error li {
	font-size: 14px;
}
.woocommerce-checkout .woocommerce-error a {
	color: #991b1b !important;
	text-decoration: underline;
	font-weight: 600;
}

/* "Have a coupon?" toggle + login toggle links at top */
.woocommerce-checkout .woocommerce-form-coupon,
.woocommerce-checkout .woocommerce-form-login {
	background: #fff !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 10px !important;
	padding: 16px 18px !important;
	margin-bottom: 16px;
	box-shadow: none;
}

/* Order-received / thank-you page */
.woocommerce-order-received .woocommerce-order {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 28px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}
.woocommerce-order-received .woocommerce-notice--success,
.woocommerce-order-received .woocommerce-thankyou-order-received {
	background: #ecfdf5 !important;
	border: 1px solid #a7f3d0 !important;
	border-left: 4px solid #059669 !important;
	color: #065f46 !important;
	padding: 16px 20px !important;
	border-radius: 10px !important;
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 20px;
}

/* ======================================================
   CART + CHECKOUT FIXES (v0.7.1)
   ====================================================== */

/* Fix: Proceed to Checkout button renders as a link (<a>) with classes
   "checkout-button button alt wc-forward". Elementor's link styling was
   winning over v0.7.0's button rule. Crank specificity + cover all the
   classes WC renders on it. */
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button.alt,
body.woocommerce-cart .wc-proceed-to-checkout a.wc-forward,
body.woocommerce-cart .wc-proceed-to-checkout .button.alt {
	background: #002e5b !important;
	background-color: #002e5b !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 16px 24px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	text-align: center !important;
	text-decoration: none !important;
	display: block !important;
	width: 100% !important;
	box-shadow: 0 1px 2px rgba(0, 46, 91, 0.15);
	transition: background 0.15s ease;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button.alt:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.wc-forward:hover,
body.woocommerce-cart .wc-proceed-to-checkout .button.alt:hover {
	background: #001d3d !important;
	background-color: #001d3d !important;
	color: #ffffff !important;
}

/* Catch the child text nodes / spans inside the button too in case
   Elementor is styling descendants specifically. */
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button * {
	color: #ffffff !important;
}

/* Same treatment for the Place Order button on checkout */
body.woocommerce-checkout #place_order,
body.woocommerce-checkout button#place_order.button.alt {
	background: #002e5b !important;
	background-color: #002e5b !important;
	color: #ffffff !important;
	border: none !important;
}
body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout button#place_order.button.alt:hover {
	background: #001d3d !important;
	background-color: #001d3d !important;
}

/* ----------------------------------------------------
   MAPS Member Discount fee line — make it a celebration
   ---------------------------------------------------- */

/* Cart totals: fee row gets a green card treatment + checkmark */
.woocommerce-cart .cart_totals table .fee,
.woocommerce-checkout-review-order-table tfoot .fee {
	background: #ecfdf5 !important;
}
.woocommerce-cart .cart_totals table .fee th,
.woocommerce-cart .cart_totals table .fee td,
.woocommerce-checkout-review-order-table tfoot .fee th,
.woocommerce-checkout-review-order-table tfoot .fee td {
	background: #ecfdf5 !important;
	color: #065f46 !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 14px 12px !important;
	border-bottom: 1px solid #a7f3d0 !important;
	border-top: 1px solid #a7f3d0 !important;
}
.woocommerce-cart .cart_totals table .fee th:first-child,
.woocommerce-checkout-review-order-table tfoot .fee th:first-child {
	border-left: 4px solid #059669 !important;
	padding-left: 14px !important;
}
/* Checkmark prefix using pseudo-element before the fee label */
.woocommerce-cart .cart_totals table .fee th::before,
.woocommerce-checkout-review-order-table tfoot .fee th::before {
	content: "✓ ";
	color: #059669;
	font-weight: 900;
	margin-right: 4px;
	font-size: 16px;
}
/* Force the price number to also be dark green + bold */
.woocommerce-cart .cart_totals table .fee td .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table tfoot .fee td .woocommerce-Price-amount {
	color: #065f46 !important;
	font-weight: 800 !important;
	font-size: 15px !important;
}

/* Hero on cart/checkout renders inside the 1200px container — give it
   a bit of bottom space so it doesn't crowd the cart form. */
.woocommerce-cart .maps-shop-hero,
.woocommerce-checkout .maps-shop-hero {
	margin-bottom: 28px;
}

/* ======================================================
   SITE FOOTER — link color fix
   Elementor's global link color (light blue) is illegible
   against the dark navy footer background. Force white.
   ====================================================== */
.site-footer a,
.site-footer .elementor-nav-menu a,
footer a {
	color: #ffffff !important;
	text-decoration: underline !important;
	opacity: 1;
	transition: opacity 0.15s ease;
}
.site-footer a:hover,
.site-footer .elementor-nav-menu a:hover,
footer a:hover {
	color: #ffffff !important;
	text-decoration: underline !important;
	opacity: 0.7;
}
/* Shipping rate selector: the rate list cannot fit the 36% price column.
   Break the shipping row out of the table grid and stack it full width. */
.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals {
	display: block;
	padding: 12px 8px;
	border-top: 1px solid #f3f4f6;
}

.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals th,
.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals td {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
	border: 0;
	padding: 0;
}

.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals th {
	margin-bottom: 8px;
}

#order_review ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
}

#order_review ul#shipping_method li {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 6px;
}

#order_review ul#shipping_method li input[type="radio"] {
	margin: 0;
	flex: 0 0 auto;
}

#order_review ul#shipping_method li label {
	font-size: 14px;
	line-height: 1.4;
}
