/**
 * Customizable Styles
 * 
 * This file contains all customizable CSS variables
 * Users can override these in their child theme or via Customizer
 * 
 * @package CafeHospitality
 */

:root {
	/* ============================================
	   PRIMARY COLORS (Fully Customizable)
	   ============================================ */
	--cafe-primary: var(--wp--preset--color--primary, #2c3e50);
	--cafe-primary-hover: var(--wp--custom--primary-hover, #34495e);
	--cafe-primary-light: var(--wp--custom--primary-light, #ecf0f1);
	--cafe-primary-dark: var(--wp--custom--primary-dark, #1a252f);
	
	--cafe-secondary: var(--wp--preset--color--secondary, #e67e22);
	--cafe-secondary-hover: var(--wp--custom--secondary-hover, #d35400);
	--cafe-secondary-light: var(--wp--custom--secondary-light, #fad7a0);
	--cafe-secondary-dark: var(--wp--custom--secondary-dark, #a04000);
	
	--cafe-accent: var(--wp--preset--color--accent, #f39c12);
	--cafe-accent-hover: var(--wp--custom--accent-hover, #e67e22);
	
	/* ============================================
	   TEXT COLORS (Fully Customizable)
	   ============================================ */
	--cafe-text: var(--wp--preset--color--text, #333333);
	--cafe-text-light: var(--wp--preset--color--text-light, #666666);
	--cafe-text-lighter: var(--wp--custom--text-lighter, #999999);
	--cafe-text-on-dark: var(--wp--custom--text-on-dark, #ffffff);
	
	/* ============================================
	   BACKGROUND COLORS (Fully Customizable)
	   ============================================ */
	--cafe-background: var(--wp--preset--color--background, #ffffff);
	--cafe-surface: var(--wp--custom--surface, #f8f9fa);
	--cafe-surface-hover: var(--wp--custom--surface-hover, #e9ecef);
	
	/* ============================================
	   BORDER COLORS (Fully Customizable)
	   ============================================ */
	--cafe-border: var(--wp--custom--border, #e9ecef);
	--cafe-border-light: var(--wp--custom--border-light, #f0f0f0);
	--cafe-border-dark: var(--wp--custom--border-dark, #dee2e6);
	
	/* ============================================
	   STATE COLORS (Fully Customizable)
	   ============================================ */
	--cafe-success: var(--wp--custom--success, #27ae60);
	--cafe-success-light: var(--wp--custom--success-light, #d4edda);
	--cafe-error: var(--wp--custom--error, #e74c3c);
	--cafe-error-light: var(--wp--custom--error-light, #f8d7da);
	--cafe-warning: var(--wp--custom--warning, #f39c12);
	--cafe-warning-light: var(--wp--custom--warning-light, #fff3cd);
	--cafe-info: var(--wp--custom--info, #3498db);
	--cafe-info-light: var(--wp--custom--info-light, #d1ecf1);
	
	/* ============================================
	   TYPOGRAPHY (Fully Customizable)
	   ============================================ */
	--cafe-font-heading: var(--wp--preset--font-family--heading, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
	--cafe-font-body: var(--wp--preset--font-family--body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
	--cafe-font-size-base: var(--wp--preset--font-size--medium, 16px);
	--cafe-font-size-small: var(--wp--preset--font-size--small, 0.875rem);
	--cafe-font-size-large: var(--wp--preset--font-size--large, 1.25rem);
	--cafe-font-size-xl: var(--wp--preset--font-size--x-large, 1.5rem);
	--cafe-font-size-xxl: var(--wp--preset--font-size--xx-large, 2rem);
	
	--cafe-font-weight-normal: var(--wp--custom--font-weight-normal, 400);
	--cafe-font-weight-medium: var(--wp--custom--font-weight-medium, 500);
	--cafe-font-weight-semibold: var(--wp--custom--font-weight-semibold, 600);
	--cafe-font-weight-bold: var(--wp--custom--font-weight-bold, 700);
	
	--cafe-line-height: var(--wp--custom--line-height, 1.6);
	--cafe-line-height-tight: var(--wp--custom--line-height-tight, 1.4);
	--cafe-line-height-loose: var(--wp--custom--line-height-loose, 1.8);
	
	--cafe-letter-spacing: var(--wp--custom--letter-spacing, normal);
	--cafe-letter-spacing-wide: var(--wp--custom--letter-spacing-wide, 0.5px);
	
	/* ============================================
	   SPACING (Fully Customizable)
	   ============================================ */
	--cafe-spacing-xs: var(--wp--preset--spacing--xx-small, 0.25rem);
	--cafe-spacing-sm: var(--wp--preset--spacing--small, 1rem);
	--cafe-spacing-md: var(--wp--preset--spacing--medium, 1.5rem);
	--cafe-spacing-lg: var(--wp--preset--spacing--large, 2rem);
	--cafe-spacing-xl: var(--wp--preset--spacing--x-large, 3rem);
	--cafe-spacing-xxl: var(--wp--preset--spacing--xx-large, 4rem);
	
	/* ============================================
	   BORDERS & RADIUS (Fully Customizable)
	   ============================================ */
	--cafe-border-width: var(--wp--custom--border-width, 1px);
	--cafe-border-width-thick: var(--wp--custom--border-width-thick, 2px);
	--cafe-border-width-thin: var(--wp--custom--border-width-thin, 0.5px);
	
	--cafe-border-radius: var(--wp--custom--border-radius, 8px);
	--cafe-border-radius-sm: var(--wp--custom--border-radius-sm, 4px);
	--cafe-border-radius-lg: var(--wp--custom--border-radius-lg, 12px);
	--cafe-border-radius-xl: var(--wp--custom--border-radius-xl, 16px);
	--cafe-border-radius-round: var(--wp--custom--border-radius-round, 50%);
	
	/* ============================================
	   SHADOWS (Fully Customizable)
	   ============================================ */
	--cafe-shadow-sm: var(--wp--custom--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.05));
	--cafe-shadow-md: var(--wp--custom--shadow-md, 0 4px 6px rgba(0, 0, 0, 0.1));
	--cafe-shadow-lg: var(--wp--custom--shadow-lg, 0 10px 20px rgba(0, 0, 0, 0.1));
	--cafe-shadow-xl: var(--wp--custom--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.15));
	--cafe-shadow-inner: var(--wp--custom--shadow-inner, inset 0 2px 4px rgba(0, 0, 0, 0.1));
	
	/* ============================================
	   TRANSITIONS (Fully Customizable)
	   ============================================ */
	--cafe-transition: var(--wp--custom--transition, all 0.3s ease);
	--cafe-transition-fast: var(--wp--custom--transition-fast, all 0.15s ease);
	--cafe-transition-slow: var(--wp--custom--transition-slow, all 0.5s ease);
	--cafe-transition-bounce: var(--wp--custom--transition-bounce, all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55));
	
	/* ============================================
	   BUTTONS (Fully Customizable)
	   ============================================ */
	--cafe-button-padding: var(--wp--custom--button-padding, 12px 24px);
	--cafe-button-padding-sm: var(--wp--custom--button-padding-sm, 8px 16px);
	--cafe-button-padding-lg: var(--wp--custom--button-padding-lg, 16px 32px);
	--cafe-button-font-size: var(--wp--custom--button-font-size, 1rem);
	--cafe-button-font-weight: var(--wp--custom--button-font-weight, 600);
	--cafe-button-border-radius: var(--wp--custom--button-border-radius, var(--cafe-border-radius));
	
	/* ============================================
	   MENU CARDS (Fully Customizable)
	   ============================================ */
	--cafe-menu-card-padding: var(--wp--custom--menu-card-padding, var(--cafe-spacing-md));
	--cafe-menu-card-gap: var(--wp--custom--menu-card-gap, var(--cafe-spacing-lg));
	--cafe-menu-card-image-height: var(--wp--custom--menu-card-image-height, 200px);
	--cafe-menu-card-border-radius: var(--wp--custom--menu-card-border-radius, var(--cafe-border-radius-lg));
	
	/* ============================================
	   HEADER (Fully Customizable)
	   ============================================ */
	--cafe-header-height: var(--wp--custom--header-height, 80px);
	--cafe-header-bg: var(--wp--custom--header-bg, var(--cafe-background));
	--cafe-header-text: var(--wp--custom--header-text, var(--cafe-text));
	--cafe-header-padding: var(--wp--custom--header-padding, var(--cafe-spacing-md) 0);
	
	/* ============================================
	   FOOTER (Fully Customizable)
	   ============================================ */
	--cafe-footer-bg: var(--wp--custom--footer-bg, var(--cafe-surface));
	--cafe-footer-text: var(--wp--custom--footer-text, var(--cafe-text));
	--cafe-footer-padding: var(--wp--custom--footer-padding, var(--cafe-spacing-xl) 0);
	
	/* ============================================
	   CONTAINER (Fully Customizable)
	   ============================================ */
	--cafe-container-width: var(--wp--custom--container-width, 1200px);
	--cafe-container-width-wide: var(--wp--custom--container-width-wide, 1400px);
	--cafe-container-padding: var(--wp--custom--container-padding, 0 var(--cafe-spacing-md));
	
	/* ============================================
	   Z-INDEX LAYERS (Fully Customizable)
	   ============================================ */
	--cafe-z-dropdown: var(--wp--custom--z-dropdown, 1000);
	--cafe-z-sticky: var(--wp--custom--z-sticky, 1020);
	--cafe-z-fixed: var(--wp--custom--z-fixed, 1030);
	--cafe-z-modal-backdrop: var(--wp--custom--z-modal-backdrop, 1040);
	--cafe-z-modal: var(--wp--custom--z-modal, 1050);
	--cafe-z-tooltip: var(--wp--custom--z-tooltip, 1060);
	
	/* ============================================
	   BREAKPOINTS (Fully Customizable)
	   ============================================ */
	--cafe-breakpoint-xs: var(--wp--custom--breakpoint-xs, 480px);
	--cafe-breakpoint-sm: var(--wp--custom--breakpoint-sm, 768px);
	--cafe-breakpoint-md: var(--wp--custom--breakpoint-md, 992px);
	--cafe-breakpoint-lg: var(--wp--custom--breakpoint-lg, 1200px);
	--cafe-breakpoint-xl: var(--wp--custom--breakpoint-xl, 1400px);
}

/* Apply customizable styles to elements */
body {
	font-family: var(--cafe-font-body);
	font-size: var(--cafe-font-size-base);
	line-height: var(--cafe-line-height);
	color: var(--cafe-text);
	background: var(--cafe-background);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--cafe-font-heading);
	font-weight: var(--cafe-font-weight-bold);
	color: var(--cafe-text);
	line-height: var(--cafe-line-height-tight);
}

/* Customizable button styles */
.cafe-btn,
.wp-block-button__link {
	padding: var(--cafe-button-padding);
	font-size: var(--cafe-button-font-size);
	font-weight: var(--cafe-button-font-weight);
	border-radius: var(--cafe-button-border-radius);
	transition: var(--cafe-transition);
}

/* Customizable menu cards */
.cafe-menu-card {
	padding: var(--cafe-menu-card-padding);
	border-radius: var(--cafe-menu-card-border-radius);
	transition: var(--cafe-transition);
}

.cafe-menu-card-image {
	height: var(--cafe-menu-card-image-height);
}

/* Customizable header */
.site-header {
	min-height: var(--cafe-header-height);
	background: var(--cafe-header-bg);
	color: var(--cafe-header-text);
	padding: var(--cafe-header-padding);
}

/* Customizable footer */
.site-footer {
	background: var(--cafe-footer-bg);
	color: var(--cafe-footer-text);
	padding: var(--cafe-footer-padding);
}

/* Customizable container */
.cafe-container {
	max-width: var(--cafe-container-width);
	margin: 0 auto;
	padding: var(--cafe-container-padding);
}

.cafe-container-wide {
	max-width: var(--cafe-container-width-wide);
	margin: 0 auto;
	padding: var(--cafe-container-padding);
}

/* ============================================
   WooCommerce Shop Page Styling
   ============================================ */
.cafe-shop-page {
	background: radial-gradient(circle at top left, #0f4c75, #1b262c 55%, #000000 100%);
}

.cafe-shop-grid-wrapper .wc-block-product-catalog,
.cafe-shop-grid-wrapper .wc-block-grid {
	margin-top: var(--cafe-spacing-lg);
}

.cafe-shop-grid-wrapper .wc-block-grid__products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--cafe-spacing-lg);
}

.cafe-shop-grid-wrapper .wc-block-grid__product {
	background: rgba(15, 23, 42, 0.9);
	border-radius: var(--cafe-border-radius-lg);
	overflow: hidden;
	box-shadow: var(--cafe-shadow-lg);
	transition: transform 0.2s ease, box-shadow 0.2s ease, translate 0.2s ease;
}

.cafe-shop-grid-wrapper .wc-block-grid__product:hover {
	transform: translateY(-4px);
	box-shadow: var(--cafe-shadow-xl);
}

.cafe-shop-grid-wrapper .wc-block-grid__product-image img {
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.cafe-shop-grid-wrapper .wc-block-grid__product-title {
	font-size: 1.05rem;
	font-weight: var(--cafe-font-weight-semibold);
	color: #f9fafb;
	margin: var(--cafe-spacing-sm) var(--cafe-spacing-sm) 0;
}

.cafe-shop-grid-wrapper .wc-block-grid__product-price {
	color: #facc15;
	font-weight: var(--cafe-font-weight-bold);
	margin: 0 var(--cafe-spacing-sm);
}

.cafe-shop-grid-wrapper .wc-block-grid__product-add-to-cart {
	margin: var(--cafe-spacing-sm);
}

.cafe-shop-grid-wrapper .wc-block-grid__product-add-to-cart .wp-block-button__link {
	width: 100%;
	text-align: center;
	background: linear-gradient(90deg, #f59e0b, #f97316);
	color: #111827;
	border-radius: var(--cafe-border-radius);
}

/* Cart Branch Info - Enhanced visibility */
.cafe-cart-branch-info {
	background: #fff8e1 !important;
	border: 2px solid #ffc107 !important;
	border-left: 6px solid #ffc107 !important;
	border-radius: 8px !important;
	padding: 18px 24px !important;
	margin: 20px 0 !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
	position: relative;
	z-index: 100;
}

.cafe-cart-branch-info p {
	margin: 0 !important;
	color: #1a1a1a !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.6 !important;
}

.cafe-cart-branch-info strong {
	color: #f57c00 !important;
	font-weight: 700 !important;
}

/* ============================================
   Hide Page Titles by Default
   ============================================ */
.wp-block-post-title,
.wp-block-query-title {
	display: none !important;
}

/* Hide WooCommerce page title on shop page */
.woocommerce-page .woocommerce-products-header,
.woocommerce-page .page-title,
.woocommerce-page h1.page-title {
	display: none !important;
}

/* ============================================
   WooCommerce Shop, Cart & Checkout Styling
   ============================================ */

/* Shop Page - Product Grid (columns follow WooCommerce settings) */
.woocommerce-page #products-container {
	width: 100%;
}

.woocommerce ul.products {
	display: grid;
	column-gap: 1rem;
	row-gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Remove WooCommerce float-clear pseudo-elements that create empty grid cells */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none !important;
	display: none !important;
}

.woocommerce ul.products.columns-1 {
	grid-template-columns: repeat(1, minmax(0, 1fr));
}

.woocommerce ul.products.columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.woocommerce ul.products.columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.woocommerce ul.products.columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.woocommerce ul.products li.product {
	background: #1f2937;
	border-radius: 0.75rem;
	overflow: hidden;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(75, 85, 99, 0.4);
	position: relative;
	width: 100%;
	min-width: 0;
	margin: 0 !important; /* remove default Woo margins that break grid */
	float: none !important; /* override default float-based layout */
	box-sizing: border-box;
}

/* Ensure full-width cards in 3-column layouts (override WooCommerce defaults) */
.woocommerce ul.products.columns-3 li.product,
.woocommerce-page ul.products.columns-3 li.product {
	width: 100% !important;
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
	border-color: rgba(245, 158, 11, 0.5);
}

.woocommerce ul.products li.product img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	background: linear-gradient(135deg, #374151 0%, #1f2937 100%);
	display: block;
}

/* Product Card Content */
.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
	font-size: 0.9rem !important;
	font-weight: 600;
	color: #ffffff;
	margin: 0.75rem 0.85rem 0.25rem;
	line-height: 1.35;
	min-height: 2.2rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

.woocommerce ul.products li.product h2.woocommerce-loop-product__title a {
	font-size: 0.9rem !important;
	color: #ffffff;
	text-decoration: none;
	line-height: 1.35;
}

.woocommerce ul.products li.product h2.woocommerce-loop-product__title a:hover {
	color: #facc15;
}

.woocommerce ul.products li.product .price {
	color: #facc15;
	font-weight: 700;
	font-size: 1.125rem;
	margin: 0.5rem 1rem;
	min-height: 1.5rem;
	display: flex;
	align-items: center;
}

.woocommerce ul.products li.product .price .woocommerce-Price-amount {
	font-weight: 700;
}

.woocommerce ul.products li.product .button {
	width: calc(90% - 2rem);
	margin: 0 1rem 1rem;
	text-align: center;
	background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%);
	color: #111827;
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	font-weight: 700;
	border: none;
	cursor: pointer;
	transition: all 0.3s ease;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	box-shadow: 0 2px 4px rgba(245, 158, 11, 0.3);
}

.woocommerce ul.products li.product .button:hover {
	background: linear-gradient(135deg, #f97316 0%, #f59e0b 100%);
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(245, 158, 11, 0.5);
}

/* Cart Sidebar */
.cart-sidebar {
	position: sticky;
	top: 1rem;
	padding-right: 1rem; /* Add right padding for better visibility */
}

/* Fix cart sidebar heading size - Professional styling */
.cart-sidebar h3,
.cart-sidebar .cart-sidebar-heading,
.cart-sidebar h2,
.cart-sidebar h1 {
	font-size: 0.9375rem !important; /* 15px - smaller, more professional */
	font-weight: 500 !important; /* medium weight, not too bold */
	color: #e5e7eb !important; /* light gray instead of yellow */
	letter-spacing: 0.025em; /* subtle letter spacing */
	text-transform: none !important; /* no uppercase */
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.5 !important;
}

.cart-sidebar h3 .text-gray-400,
.cart-sidebar .cart-sidebar-heading .text-gray-400,
.cart-sidebar h3 span,
.cart-sidebar .cart-sidebar-heading span {
	font-size: 0.8125rem !important; /* 13px for item count */
	font-weight: 400 !important; /* normal weight */
	color: #9ca3af !important; /* lighter gray */
}

/* Also fix any WooCommerce mini cart or drawer cart headings */
.woocommerce-cart-form h2,
.woocommerce-cart-form h3,
.widget_shopping_cart h2,
.widget_shopping_cart h3,
.widget_shopping_cart .widgettitle,
.wc-block-cart__main-title,
.wc-block-cart h2,
.wc-block-cart h3,
.woocommerce.widget_shopping_cart h2,
.woocommerce.widget_shopping_cart h3 {
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	color: #e5e7eb !important;
	letter-spacing: 0.025em;
	text-transform: none !important;
	margin-bottom: 0.75rem !important;
}

/* Fix cart drawer/popup headings (common WooCommerce patterns) */
[class*="cart-drawer"] h2,
[class*="cart-drawer"] h3,
[class*="cart-popup"] h2,
[class*="cart-popup"] h3,
[class*="mini-cart"] h2,
[class*="mini-cart"] h3,
.woocommerce-cart__title,
.woocommerce-cart__heading {
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	color: #e5e7eb !important;
	letter-spacing: 0.025em;
	text-transform: none !important;
}

/* Fix any cart modal or offcanvas headings */
.modal .cart-sidebar h3,
.modal .cart-sidebar h2,
[class*="offcanvas"] .cart-sidebar h3,
[class*="offcanvas"] .cart-sidebar h2 {
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	color: #e5e7eb !important;
}

/* Product Add-on Modal Fixes */
/* Fix unlabeled price display - add label to standalone prices */
.modal .price-label,
.product-addon-modal .price-label,
[class*="addon"] .price-label {
	font-size: 0.875rem;
	color: #666;
	font-weight: 400;
	margin-right: 0.25rem;
}

/* Fix validation error display - only show when actually invalid */
.modal .addon-validation-error,
.product-addon-modal .addon-validation-error,
[class*="addon-modal"] .addon-validation-error {
	background: #fee !important;
	color: #c33 !important;
	padding: 10px !important;
	border-radius: 4px !important;
	margin-bottom: 15px !important;
	border: 1px solid #fcc !important;
	font-size: 0.875rem !important;
}

/* Hide default error messages that show incorrectly */
.modal .error-message:not(.show),
.product-addon-modal .error-message:not(.show),
[class*="addon"] .error-message:not(.show) {
	display: none !important;
}

/* Ensure add-on summary has proper spacing */
.modal .addon-summary,
.product-addon-modal .addon-summary,
[class*="addon"] .addon-summary {
	padding-right: 1rem;
}

/* Hide duplicate strikethrough prices in add-on summary total when same as final price */
.modal [class*="summary"] [class*="total"] .strikethrough,
[class*="addon-summary"] [class*="total"] .strikethrough,
.modal [class*="summary"] .total .strikethrough,
[class*="addon-summary"] .total .strikethrough {
	display: none !important;
}

/* Only show strikethrough if there's actually a discount (different prices) */
.modal [class*="summary"] [class*="total"]:has(.strikethrough + *:not(.strikethrough):contains("$")) .strikethrough {
	/* Will be handled by JavaScript */
}

/* Fix form group error states */
.modal .form-group.has-error,
.product-addon-modal .form-group.has-error,
[class*="addon"] .form-group.has-error {
	border-color: #fcc;
	background-color: #fef;
}

.cart-sidebar .cart-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Mini cart layout - image ~30%, content ~70% */
.cart-sidebar .cart-item > .flex {
	align-items: center;
}

.cart-sidebar .cart-item > .flex > .flex-shrink-0 {
	flex: 0 0 30%;
	max-width: 30%;
}

.cart-sidebar .cart-item > .flex > .flex-1 {
	flex: 1 1 70%;
}

.cart-sidebar .remove-item-btn {
	text-decoration: none !important;
	font-size: 1.5rem !important;
	line-height: 1 !important;
	width: 2.5rem !important;
	height: 2.5rem !important;
	border-radius: 9999px !important; /* perfect circle */
	font-weight: 700 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.cart-sidebar .remove-item-btn:hover {
	transform: scale(1.15) !important;
	box-shadow: 0 4px 12px rgba(239, 68, 68, 0.5) !important;
}

/* Mini cart checkout button */
.cart-sidebar .cart-actions a {
	display: block;
	width: 90%;
	margin: 0 auto;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%);
	color: #111827;
	text-align: center;
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35);
	transition: all 0.2s ease;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.cart-sidebar .cart-actions a:hover {
	background: linear-gradient(135deg, #f97316 0%, #f59e0b 100%);
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.5);
}

/* SSL badge section */
.cart-sidebar .cart-ssl {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid #374151;
}

.cart-sidebar .cart-ssl-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	border-radius: 9999px;
	background: rgba(17, 24, 39, 0.8);
	border: 1px solid rgba(55, 65, 81, 0.9);
}

/* Ensure WooCommerce AJAX add to cart works */
.woocommerce ul.products li.product .add_to_cart_button {
	position: relative;
}

.woocommerce ul.products li.product .add_to_cart_button.loading::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 20px;
	height: 20px;
	border: 2px solid #111827;
	border-top-color: transparent;
	border-radius: 50%;
	animation: spin 0.6s linear infinite;
}

@keyframes spin {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

.cart-item {
	transition: all 0.2s ease;
}

.cart-item:hover {
	transform: translateX(4px);
}

.remove-item-btn:hover {
	transform: scale(1.15) !important;
	box-shadow: 0 4px 12px rgba(239, 68, 68, 0.5) !important;
}

/* Cart Page - Modern Card Layout */
.cart-item-card {
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	background: #1f2937;
}

.cart-item-card:hover {
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
	transform: translateY(-1px);
}

/* Product Name - High Contrast */
.cart-item-card h3,
.cart-item-card h3 a {
	color: #ffffff !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

.cart-item-card h3 a:hover {
	color: #fbbf24 !important;
}

/* Cart Item Meta - High Contrast Styling */
.cart-item-meta,
.cart-item-meta-content {
	font-size: 0.875rem;
	line-height: 1.6;
}

.cart-item-meta dl,
.cart-item-meta-content dl {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cart-item-meta dt,
.cart-item-meta-content dt {
	display: inline-block;
	font-weight: 600;
	color: #d1d5db !important; /* Light gray for labels */
	margin-right: 0.5rem;
}

.cart-item-meta dd,
.cart-item-meta-content dd {
	display: inline;
	margin: 0;
	color: #ffffff !important; /* White for values */
	font-weight: 500;
}

/* Better styling for WooCommerce cart item data */
.cart-item-meta .variation,
.cart-item-meta .wc-item-meta,
.cart-item-meta-content .variation,
.cart-item-meta-content .wc-item-meta {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cart-item-meta .variation dt,
.cart-item-meta .wc-item-meta dt,
.cart-item-meta-content .variation dt,
.cart-item-meta-content .wc-item-meta dt {
	display: inline-block;
	font-weight: 600;
	color: #d1d5db !important;
	margin-right: 0.5rem;
}

.cart-item-meta .variation dd,
.cart-item-meta .wc-item-meta dd,
.cart-item-meta-content .variation dd,
.cart-item-meta-content .wc-item-meta dd {
	display: inline;
	margin: 0;
	color: #ffffff !important;
	font-weight: 500;
}

.cart-item-meta .variation p,
.cart-item-meta .wc-item-meta p,
.cart-item-meta-content .variation p,
.cart-item-meta-content .wc-item-meta p {
	margin: 0.25rem 0;
	color: #ffffff !important;
}

/* Ensure "Your Order" heading is centered */
.woocommerce-cart .text-center,
.woocommerce-cart h1,
.woocommerce-cart .site-main h1 {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: block !important;
	width: 100% !important;
}

/* Hide large payment/illustration icons inside cart collaterals only */
.woocommerce-cart .cart-collaterals img,
.woocommerce-cart .cart-collaterals svg {
	display: none !important;
}

/* Quantity Input Styling */
.cart-quantity-input input[type="number"],
.cart-quantity-input .qty {
	width: 4rem !important;
	padding: 0.5rem !important;
	text-align: center !important;
	background: #374151 !important;
	border: 1px solid #4b5563 !important;
	border-radius: 0.375rem !important;
	color: #ffffff !important;
	font-weight: 600 !important;
	font-size: 0.9375rem !important;
}

.cart-quantity-input input[type="number"]:focus,
.cart-quantity-input .qty:focus {
	outline: none !important;
	border-color: #fbbf24 !important;
	box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.2) !important;
	background: #4b5563 !important;
}

.cart-quantity-input .quantity {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.cart-quantity-input .minus,
.cart-quantity-input .plus {
	width: 2rem;
	height: 2rem;
	background: #4b5563;
	border: 1px solid #6b7280;
	color: #ffffff;
	font-weight: 700;
	cursor: pointer;
	border-radius: 0.375rem;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s;
}

.cart-quantity-input .minus:hover,
.cart-quantity-input .plus:hover {
	background: #6b7280;
	border-color: #fbbf24;
}

/* Remove Item Button */
.remove-item-btn {
	transition: all 0.2s ease;
}

.remove-item-btn:hover {
	transform: scale(1.1);
	box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

/* Update Cart Button - Ensure it works */
.update-cart-button,
input[name="update_cart"] {
	cursor: pointer !important;
	pointer-events: auto !important;
	opacity: 1 !important;
	z-index: 10 !important;
}

.update-cart-button:hover,
input[name="update_cart"]:hover {
	background: #4b5563 !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.update-cart-button:active,
input[name="update_cart"]:active {
	transform: translateY(0);
}

/* Ensure cart form submits properly */
.woocommerce-cart-form {
	position: relative;
	z-index: 1;
}

.woocommerce-cart-form button[type="submit"],
.woocommerce-cart-form input[type="submit"] {
	position: relative;
	z-index: 10;
}

/* Visual indicator for items with quantity 0 */
.cart-item-card.opacity-60 {
	position: relative;
}

.cart-item-card.opacity-60::before {
	content: 'Will be removed on update';
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	background: rgba(239, 68, 68, 0.9);
	color: white;
	padding: 0.25rem 0.5rem;
	border-radius: 0.25rem;
	font-size: 0.75rem;
	font-weight: 600;
	z-index: 5;
}

/* Ensure form submission works */
.woocommerce-cart-form form {
	display: block;
}

.woocommerce-cart-form button[type="submit"]:not(:disabled),
.woocommerce-cart-form input[type="submit"]:not(:disabled) {
	cursor: pointer;
	pointer-events: auto;
}

/* Responsive Cart Items */
@media (max-width: 640px) {
	.cart-item-card {
		padding: 1rem;
	}
	
	.cart-item-card .flex {
		flex-direction: column;
	}
	
	.cart-item-card .flex > div:last-child {
		width: 100%;
		justify-content: space-between;
	}
}

/* Multi-Step Checkout */
.checkout-step {
	display: none;
	animation: fadeIn 0.3s ease-in;
}

.checkout-step.active {
	display: block;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.step-progress {
	margin-bottom: 2rem;
}

.step-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
}

.step-number {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #374151;
	color: #9CA3AF;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	margin-bottom: 0.5rem;
	transition: all 0.3s ease;
}

.step-item.active .step-number {
	background: #F59E0B;
	color: #1F2937;
}

.step-item.completed .step-number {
	background: #10B981;
	color: white;
}

.step-label {
	font-size: 0.875rem;
	color: #9CA3AF;
	text-align: center;
}

.step-item.active .step-label {
	color: #F59E0B;
}

.step-connector {
	width: 60px;
	height: 2px;
	background: #374151;
	margin: 0 1rem;
}

@media (max-width: 768px) {
	.step-connector {
		width: 30px;
	}
	
	.step-number {
		width: 32px;
		height: 32px;
		font-size: 0.875rem;
	}
	
	.woocommerce ul.products {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		gap: 1rem;
	}
}

/* Checkout Form Fields */
.multi-step-checkout .form-row input,
.multi-step-checkout .form-row select {
	width: 100%;
	padding: 0.75rem 1rem;
	background: #374151;
	border: 1px solid #4B5563;
	border-radius: 0.5rem;
	color: white;
	transition: all 0.3s ease;
}

.multi-step-checkout .form-row input:focus,
.multi-step-checkout .form-row select:focus {
	outline: none;
	border-color: #F59E0B;
	box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1);
}

.multi-step-checkout .form-row input.error,
.multi-step-checkout .form-row select.error {
	border-color: #EF4444 !important;
}

/* Order Review Summary */
.order-summary {
	background: rgba(31, 41, 55, 0.5);
	padding: 1.5rem;
	border-radius: 0.5rem;
	border: 1px solid #374151;
}

.summary-section {
	margin-bottom: 1rem;
}

.summary-section h4 {
	margin-bottom: 0.5rem;
}

.summary-section p {
	margin: 0.25rem 0;
}

/* ============================================
   WooCommerce Page Spacing Fix
   ============================================ */
body.woocommerce-page main,
body.woocommerce-cart main,
body.woocommerce-checkout main {
	margin-top: 80px !important;
	padding-top: 2rem !important;
}

/* Ensure header doesn't cover content */
.site-main {
	position: relative;
	z-index: 1;
}

/* Shop page specific fixes */
.woocommerce-page .site-main {
	margin-top: 80px !important;
}

/* Cart and Checkout page spacing */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main {
	margin-top: 80px !important;
	padding-top: 2rem !important;
	min-height: calc(100vh - 80px);
}

/* ============================================
   Shop Page Search Bar
   ============================================ */
.woocommerce-page #shop-search-form.shop-search-form {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	max-width: 48rem; /* 768px */
	margin: 0 auto 2rem;
}

.woocommerce-page .shop-search-label {
	color: #e5e7eb;
	font-size: 0.9rem;
	white-space: nowrap;
}

.woocommerce-page .shop-search-input-wrapper {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex: 1;
}

.woocommerce-page .shop-search-input {
	flex: 1;
	padding: 0.65rem 0.85rem;
	border-radius: 0.5rem;
	border: 1px solid #4b5563;
	background-color: #111827;
	color: #f9fafb;
	font-size: 0.95rem;
	line-height: 1.4;
}

.woocommerce-page .shop-search-input::placeholder {
	color: #9ca3af;
}

.woocommerce-page .shop-search-input:focus {
	outline: none;
	border-color: #f59e0b;
	box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.4);
}

.woocommerce-page .shop-search-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.6rem 0.9rem;
	border-radius: 0.5rem;
	border: none;
	cursor: pointer;
	transition: all 0.2s ease;
}

.woocommerce-page .shop-search-button--submit {
	background: #f59e0b;
	color: #111827;
}

.woocommerce-page .shop-search-button--submit:hover {
	background: #fbbf24;
}

.woocommerce-page .shop-search-button--reset {
	background: #4b5563;
	color: #e5e7eb;
}

.woocommerce-page .shop-search-button--reset:hover {
	background: #6b7280;
}

.woocommerce-page .shop-search-icon {
	width: 1.1rem;
	height: 1.1rem;
}

/* ============================================
   Shop Page Category Tabs
   ============================================ */
.category-tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: all 0.3s ease;
	cursor: pointer;
	min-height: 2rem;
	min-width: 60px;
	max-width: 120px;
	white-space: normal;
	word-wrap: break-word;
	text-align: center;
	line-height: 1.2;
	padding: 0.375rem 0.5rem;
	font-size: 0.75rem;
}

.category-tab span {
	display: block;
	text-align: center;
	max-width: 100%;
}

.category-tab:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(245, 158, 11, 0.3);
}

.category-tab.active {
	background: #F59E0B !important;
	color: #1F2937 !important;
}

/* Category Dropdown Styling */
#shop-category-mobile,
#shop-category-desktop {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23F59E0B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");
	background-position: right 0.5rem center;
	background-repeat: no-repeat;
	background-size: 1.5em 1.5em;
	padding-right: 2.5rem;
}

#shop-category-mobile:focus,
#shop-category-desktop:focus {
	outline: none;
	ring: 2px;
	ring-color: #F59E0B;
}

/* Shop Page Product Grid Improvements */
.woocommerce-page .products {
	display: grid !important;
	column-gap: 1rem !important;
	row-gap: 2rem !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

@media (max-width: 1024px) {
	.woocommerce-page .products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 0.75rem !important;
		row-gap: 1.5rem !important;
	}
}

@media (max-width: 640px) {
	.woocommerce-page .products {
		grid-template-columns: minmax(0, 1fr) !important;
		column-gap: 0.75rem !important;
		row-gap: 1.25rem !important;
	}
}

@media (min-width: 768px) {
	.woocommerce-page .products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.woocommerce-page .products {
		grid-template-columns: repeat(2, 1fr);
	}
}

.woocommerce-page .products li.product {
	margin: 0;
	padding: 0;
}

/* Shop Page Layout - 75% Products, 25% Cart */
.woocommerce-page .grid.grid-cols-4 {
	display: grid;
	grid-template-columns: 3fr 1fr;
	gap: 1.5rem;
}

.woocommerce-page .grid.grid-cols-4 .col-span-3 {
	grid-column: span 1;
}

.woocommerce-page .grid.grid-cols-4 .col-span-1 {
	grid-column: span 1;
}

@media (max-width: 1024px) {
	.woocommerce-page .grid.grid-cols-4 {
		grid-template-columns: 1fr;
	}
	
	.woocommerce-page .col-span-3 {
		grid-column: span 1;
	}
	
	.woocommerce-page .col-span-1 {
		grid-column: span 1;
		order: -1; /* Move cart to top on mobile */
	}
}

/* Shop Page Spacing Improvements */
.woocommerce-page .container {
	max-width: 1400px;
}

.woocommerce-page .category-tab {
	margin-bottom: 0.5rem;
}

/* End of Products Message */
.woocommerce-page #products-container > div:last-child {
	text-align: center;
	padding: 3rem 1rem;
	color: #9ca3af;
}

.woocommerce-page #products-container > div:last-child p:first-child {
	font-size: 1.125rem;
	font-weight: 500;
	margin-bottom: 0.5rem;
	color: #d1d5db;
}

.woocommerce-page #products-container > div:last-child p:last-child {
	font-size: 0.875rem;
	color: #9ca3af;
}

/* Service Selection Cards */
.service-option {
	transition: all 0.3s ease;
}

.service-option-card {
	transition: all 0.3s ease;
}

.service-option input:checked + .service-option-card {
	border-color: #F59E0B !important;
	background-color: rgba(245, 158, 11, 0.1) !important;
}

.service-option:hover .service-option-card {
	border-color: #F59E0B;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(245, 158, 11, 0.2);
}

