/* Cart & Checkout — re-skins WooCommerce's default markup to match the
   rest of the site (same palette/fonts as the library grids and course
   player). Targets WooCommerce's own standard classes/IDs only, so this
   stays safe to load regardless of theme. */

body.woocommerce-cart,
body.woocommerce-checkout {
	--fel-navy: #12304a;
	--fel-teal: #087f8c;
	--fel-teal-light: #eaf6f7;
	--fel-gold: #f4b942;
	--fel-gold-dark: #dfa62c;
	--fel-surface: #ffffff;
	--fel-surface-2: #f5f7f9;
	--fel-border: #e3e8ec;
	--fel-ink: #1f2933;
	--fel-muted: #64748b;
	--fel-radius: 14px;
	--fel-font-heading: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--fel-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--fel-shadow: 0 1px 2px rgba( 18, 48, 74, 0.06 ), 0 4px 14px rgba( 18, 48, 74, 0.07 );
}

body.woocommerce-cart h1,
body.woocommerce-checkout h1 {
	font-family: var( --fel-font-heading ) !important;
	color: var( --fel-navy ) !important;
	font-weight: 700 !important;
}

/* ---------- Cart / order-review table ---------- */

body.woocommerce-cart table.shop_table,
body.woocommerce-checkout table.shop_table {
	border: none;
	border-collapse: collapse;
	font-family: var( --fel-font-body );
}

body.woocommerce-cart table.shop_table thead th,
body.woocommerce-checkout table.shop_table thead th {
	font-size: 0.76em;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var( --fel-muted ) !important;
	border: none !important;
	border-bottom: 2px solid var( --fel-border ) !important;
	padding: 12px 10px !important;
}

body.woocommerce-cart table.shop_table.cart td,
body.woocommerce-checkout table.shop_table td {
	border: none !important;
	border-bottom: 1px solid var( --fel-border ) !important;
	padding: 16px 10px !important;
	vertical-align: middle;
}

body.woocommerce-cart .product-thumbnail img,
body.woocommerce-cart .woocommerce-placeholder,
body.woocommerce-checkout .product-thumbnail img {
	width: 68px !important;
	height: 68px !important;
	object-fit: cover;
	border-radius: 10px !important;
	background: var( --fel-surface-2 );
	border: 1px solid var( --fel-border );
}

body.woocommerce-cart .product-name a,
body.woocommerce-checkout .product-name {
	font-family: var( --fel-font-heading );
	font-weight: 600;
	color: var( --fel-navy ) !important;
	text-decoration: none !important;
}

body.woocommerce-cart .product-name a:hover {
	color: var( --fel-teal ) !important;
}

body.woocommerce-cart .product-price .amount,
body.woocommerce-cart .product-subtotal .amount,
body.woocommerce-checkout .product-total .amount {
	color: var( --fel-ink );
	font-weight: 600;
}

/* ---------- Quantity input & remove button ---------- */

body.woocommerce-cart .quantity .qty {
	border: 1px solid var( --fel-border ) !important;
	border-radius: 8px !important;
	height: 40px;
	text-align: center;
	font-family: var( --fel-font-body );
	color: var( --fel-navy );
	background: var( --fel-surface );
}

body.woocommerce-cart .quantity .qty:focus {
	border-color: var( --fel-teal ) !important;
	outline: none;
}

body.woocommerce-cart a.remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 32px !important;
	height: 32px !important;
	line-height: 1 !important;
	border-radius: 50% !important;
	color: var( --fel-muted ) !important;
	background: var( --fel-surface-2 ) !important;
	transition: background 0.15s ease, color 0.15s ease;
}

body.woocommerce-cart a.remove:hover {
	color: #fff !important;
	background: #e11d48 !important;
}

/* ---------- Coupon form ---------- */

body.woocommerce-cart .woocommerce-cart-form .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

body.woocommerce-cart .woocommerce-cart-form .coupon .input-text {
	border: 1px solid var( --fel-border ) !important;
	border-radius: 8px !important;
	padding: 10px 12px !important;
	font-family: var( --fel-font-body );
	height: auto !important;
}

body.woocommerce-cart .woocommerce-cart-form .coupon button[name="apply_coupon"] {
	background: var( --fel-surface-2 ) !important;
	color: var( --fel-navy ) !important;
	border: 1px solid var( --fel-border ) !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
	padding: 10px 16px !important;
}

/* ---------- Totals / order review box ---------- */

body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #order_review {
	background: var( --fel-surface );
	border: 1px solid var( --fel-border );
	border-radius: var( --fel-radius );
	padding: 22px;
	box-shadow: var( --fel-shadow );
}

body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout #order_review_heading {
	font-family: var( --fel-font-heading );
	color: var( --fel-navy );
	font-size: 1.1em;
	font-weight: 700;
	margin-top: 0 !important;
}

body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td,
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td {
	border: none !important;
	border-bottom: 1px solid var( --fel-border ) !important;
	padding: 12px 0 !important;
	font-family: var( --fel-font-body );
}

body.woocommerce-cart .cart_totals .order-total .amount,
body.woocommerce-checkout #order_review .order-total .amount {
	font-family: var( --fel-font-heading );
	color: var( --fel-navy );
	font-size: 1.2em;
	font-weight: 700;
}

/* ---------- Primary CTA buttons ---------- */

body.woocommerce-cart a.checkout-button,
body.woocommerce-checkout #place_order {
	display: block !important;
	width: 100% !important;
	background: var( --fel-gold ) !important;
	color: var( --fel-navy ) !important;
	font-family: var( --fel-font-body ) !important;
	font-weight: 700 !important;
	font-size: 1em !important;
	text-align: center !important;
	text-decoration: none !important;
	text-shadow: none !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 15px 20px !important;
	box-shadow: none !important;
	transition: background 0.15s ease;
}

body.woocommerce-cart a.checkout-button:hover,
body.woocommerce-cart a.checkout-button:focus,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout #place_order:focus {
	background: var( --fel-gold-dark ) !important;
	color: var( --fel-navy ) !important;
}

/* ---------- Checkout form fields ---------- */

body.woocommerce-checkout h3 {
	font-family: var( --fel-font-heading );
	color: var( --fel-navy );
	font-weight: 700;
}

body.woocommerce-checkout .woocommerce-billing-fields label,
body.woocommerce-checkout .woocommerce-additional-fields label {
	font-family: var( --fel-font-body );
	color: var( --fel-ink );
	font-weight: 500;
}

body.woocommerce-checkout input.input-text,
body.woocommerce-checkout select,
body.woocommerce-checkout textarea {
	border: 1px solid var( --fel-border ) !important;
	border-radius: 8px !important;
	padding: 10px 12px !important;
	font-family: var( --fel-font-body ) !important;
	background: var( --fel-surface ) !important;
}

body.woocommerce-checkout input.input-text:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus {
	border-color: var( --fel-teal ) !important;
	outline: none;
}

/* =====================================================================
   WooCommerce Blocks (Cart & Checkout blocks) — a separate, modern
   rendering path with its own class names (wc-block-*), used instead of
   the classic shortcode markup styled above when the Cart/Checkout page
   is built from the WooCommerce "Cart" / "Checkout" blocks. Both sets of
   rules are kept so this works whichever one the page actually uses.
   ===================================================================== */

body.woocommerce-cart h1,
body.woocommerce-checkout h1,
.wc-block-components-checkout-step__title,
.wc-block-components-checkout-step__heading,
.wc-block-cart__totals-title {
	font-family: var( --fel-font-heading ) !important;
	color: var( --fel-navy ) !important;
	font-weight: 700 !important;
}

/* ---------- Cart items table ---------- */

.wc-block-cart-items {
	border: none;
	font-family: var( --fel-font-body );
}

.wc-block-cart-items__header th {
	font-size: 0.76em;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var( --fel-muted ) !important;
	border-bottom: 2px solid var( --fel-border ) !important;
}

.wc-block-cart-items__row {
	border-bottom: 1px solid var( --fel-border ) !important;
}

.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img,
.wc-block-components-product-image img {
	border-radius: 10px !important;
	background: var( --fel-surface-2 );
	border: 1px solid var( --fel-border );
}

.wc-block-cart-item__product-name,
.wc-block-components-product-name {
	font-family: var( --fel-font-heading ) !important;
	font-weight: 600 !important;
	color: var( --fel-navy ) !important;
	text-decoration: none !important;
}

a.wc-block-components-product-name:hover {
	color: var( --fel-teal ) !important;
}

.wc-block-components-product-price,
.wc-block-components-formatted-money-amount {
	color: var( --fel-ink );
	font-weight: 600;
}

.wc-block-components-product-badge {
	background: var( --fel-navy ) !important;
	color: #fff !important;
	border: none !important;
}

/* ---------- Quantity stepper & remove link ---------- */

.wc-block-components-quantity-selector {
	border: 1px solid var( --fel-border ) !important;
	border-radius: 8px !important;
	overflow: hidden;
	background: var( --fel-surface );
}

.wc-block-components-quantity-selector__input {
	font-family: var( --fel-font-body ) !important;
	color: var( --fel-navy ) !important;
}

.wc-block-components-quantity-selector__button {
	color: var( --fel-navy ) !important;
	background: transparent !important;
}

.wc-block-components-quantity-selector__button:hover {
	background: var( --fel-surface-2 ) !important;
	color: var( --fel-teal ) !important;
}

.wc-block-cart-item__remove-link,
.wc-block-components-product-remove-link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50% !important;
	color: var( --fel-muted ) !important;
	background: var( --fel-surface-2 ) !important;
	transition: background 0.15s ease, color 0.15s ease;
}

.wc-block-cart-item__remove-link:hover,
.wc-block-components-product-remove-link:hover {
	color: #fff !important;
	background: #e11d48 !important;
}

/* ---------- Order summary / totals sidebar ---------- */

.wc-block-components-sidebar,
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar,
.wc-block-components-order-summary {
	font-family: var( --fel-font-body );
	border-color: var( --fel-border ) !important;
	border-radius: var( --fel-radius ) !important;
	box-shadow: var( --fel-shadow );
}

.wc-block-components-totals-item__label,
.wc-block-components-totals-item__description {
	color: var( --fel-muted );
}

.wc-block-components-totals-item__value {
	color: var( --fel-ink );
	font-weight: 600;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var( --fel-font-heading );
	color: var( --fel-navy );
	font-size: 1.15em;
	font-weight: 700;
}

.wc-block-components-totals-wrapper {
	border-color: var( --fel-border ) !important;
}

.wc-block-components-panel__button {
	color: var( --fel-navy ) !important;
	font-weight: 600 !important;
}

/* ---------- Primary CTA buttons ---------- */

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	display: block !important;
	width: 100% !important;
	background: var( --fel-gold ) !important;
	color: var( --fel-navy ) !important;
	font-family: var( --fel-font-body ) !important;
	font-weight: 700 !important;
	text-align: center !important;
	text-decoration: none !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 15px 20px !important;
	box-shadow: none !important;
	transition: background 0.15s ease;
}

.wc-block-cart__submit-button:hover,
.wc-block-cart__submit-button:focus,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-checkout-place-order-button:focus {
	background: var( --fel-gold-dark ) !important;
	color: var( --fel-navy ) !important;
}

/* ---------- Checkout step fields ---------- */

.wc-block-components-text-input input,
.wc-block-components-combobox-control input,
.wc-block-components-select-input select {
	font-family: var( --fel-font-body ) !important;
}

.wc-block-components-text-input,
.wc-block-components-combobox-control {
	border-radius: 8px !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus ~ label {
	color: var( --fel-teal ) !important;
}

.wc-block-components-text-input:focus-within,
.wc-block-components-combobox-control:focus-within {
	border-color: var( --fel-teal ) !important;
}

.wc-block-checkout__payment-method .wc-block-components-radio-control__option {
	border-radius: 8px !important;
}

/* ---------- Express-checkout divider ("Or continue below") ---------- */

.wc-block-components-express-payment-continue-rule {
	color: var( --fel-muted );
	font-family: var( --fel-font-body );
}
