/* Elementor header: stop search from overlapping cart/account; calmer search field */

.elementor-location-header .elementor-widget-container,
.elementor-location-header .elementor-column {
	min-width: 0;
}

.elementor-location-header .elementor-widget-search-form {
	flex: 1 1 auto;
	min-width: 0;
	max-width: min(420px, 34vw);
}

.elementor-widget-search-form .elementor-search-form {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	min-width: 0;
	width: 100%;
}

.elementor-widget-search-form .elementor-search-form__container,
.elementor-widget-search-form .elementor-search-form__input-wrapper {
	flex: 1 1 auto;
	min-width: 0;
}

.elementor-widget-search-form input[type="search"],
.elementor-widget-search-form .elementor-search-form__input,
.elementor-widget-search-form input.elementor-search-form__input {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	background-color: #fff !important;
	background-image: none !important;
	border: 1px solid var(--swift-header-border, #e8e8e8) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	padding: 0.5rem 1rem !important;
	font-family: var(--swift-font-body, "Jost", sans-serif) !important;
	font-size: 0.9375rem !important;
	color: var(--swift-text, #161616) !important;
	-webkit-appearance: none;
	appearance: none;
}

.elementor-widget-search-form input[type="search"]::placeholder,
.elementor-widget-search-form .elementor-search-form__input::placeholder {
	color: #888;
	opacity: 1;
}

.elementor-widget-search-form .elementor-search-form__submit,
.elementor-widget-search-form button[type="submit"] {
	flex-shrink: 0 !important;
	border-radius: 999px !important;
}

.elementor-location-header .elementor-row.elementor-inner-row,
.elementor-location-header .elementor-container {
	flex-wrap: wrap !important;
	align-items: center !important;
}

@media (max-width: 1024px) {
	.elementor-location-header .elementor-widget-search-form {
		max-width: 100%;
		order: 10;
		flex: 1 1 100%;
		margin-top: 0.5rem;
	}
}

@media (min-width: 1025px) {
	.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu {
		flex-wrap: nowrap;
	}

	.elementor-location-header .elementor-nav-menu--main .elementor-item {
		white-space: nowrap;
	}
}


/* ══════════════════════════════════════════════════════════════
   ELEMENTOR MENU CART — Professional Redesign
   Real Elementor template structure:
     article.elementor-menu-cart__product
       figure.elementor-menu-cart__product-image
       div.elementor-menu-cart__product-details
         span.elementor-menu-cart__product-name > a
         span.elementor-menu-cart__product-price
           "1 × $xx"
           a.elementor-menu-cart__product-remove  ← INSIDE price span
   ══════════════════════════════════════════════════════════════ */

/* ── Panel ── */
.elementor-menu-cart__main {
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
	background: #fff !important;
	box-shadow: -4px 0 40px rgba(0,0,0,.13) !important;
}

/* ── Header ── */
.elementor-menu-cart__header {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 18px 20px 16px !important;
	border-bottom: 1px solid #f0f0f0 !important;
}

.elementor-menu-cart__header-title {
	font-family: var(--swift-font-heading, 'Syne', sans-serif) !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	color: #111 !important;
	margin: 0 !important;
}

.elementor-menu-cart__close-button {
	cursor: pointer !important;
	color: #aaa !important;
	background: #f5f5f5 !important;
	border-radius: 50% !important;
	width: 28px !important;
	height: 28px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: background 0.15s, color 0.15s !important;
	flex-shrink: 0 !important;
}

.elementor-menu-cart__close-button:hover {
	background: #111 !important;
	color: #fff !important;
}

.elementor-menu-cart__close-button svg {
	width: 14px !important;
	height: 14px !important;
}

/* ── Product list ── */
.elementor-menu-cart__products {
	padding: 0 20px !important;
}

/* ── Each item row ── */
.elementor-menu-cart__product {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	padding: 16px 0 !important;
	border-bottom: 1px solid #f2f2f2 !important;
}

.elementor-menu-cart__product:last-child {
	border-bottom: none !important;
}

/* ── Image ── */
.elementor-menu-cart__product-image,
figure.elementor-menu-cart__product-image {
	flex-shrink: 0 !important;
	width: 70px !important;
	height: 70px !important;
	margin: 0 !important;
}

.elementor-menu-cart__product-image a {
	display: block !important;
	width: 70px !important;
	height: 70px !important;
}

.elementor-menu-cart__product-image img {
	width: 70px !important;
	height: 70px !important;
	object-fit: cover !important;
	border-radius: 8px !important;
	border: 1px solid #eee !important;
	background: #f8f8f8 !important;
	display: block !important;
}

/* ── Details column — name then price/stepper stacked ── */
.elementor-menu-cart__product-details {
	flex: 1 !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

/* Product name */
.elementor-menu-cart__product-name {
	display: block !important;
	line-height: 1 !important;
}

.elementor-menu-cart__product-name a {
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	color: #111 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.3px !important;
	line-height: 1.4 !important;
	text-decoration: none !important;
	display: block !important;
}

.elementor-menu-cart__product-name a:hover {
	color: var(--swift-accent, #cc1f1f) !important;
}

/* Price row — contains "1 × $xx" + remove button
   We force it to be a clean flex row: [qty×price] [remove on right] */
.elementor-menu-cart__product-price {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important; /* LEFT align, not space-between */
	gap: 0 !important;
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
	font-size: 13px !important;
	color: #555 !important;
	font-weight: 500 !important;
	flex-wrap: nowrap !important;
	width: 100% !important;
}

/* The "1 × $xx" text node + price amount — takes available space */
.elementor-menu-cart__product-price .woocommerce-Price-amount {
	font-weight: 700 !important;
	color: #111 !important;
}

/* Remove button inside price span — push to right */
.elementor-menu-cart__product-price a.remove_from_cart_button,
.elementor-menu-cart__product-price a.elementor-menu-cart__product-remove {
	margin-left: auto !important;
	flex-shrink: 0 !important;
}

/* Remove button style — wherever it lives */
a.elementor-menu-cart__product-remove,
.elementor-menu-cart__product-remove {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 22px !important;
	height: 22px !important;
	border-radius: 50% !important;
	border: 1.5px solid #ddd !important;
	background: transparent !important;
	color: #aaa !important;
	text-decoration: none !important;
	cursor: pointer !important;
	transition: background 0.15s, color 0.15s, border-color 0.15s !important;
	font-size: 13px !important;
	line-height: 1 !important;
	flex-shrink: 0 !important;
}

a.elementor-menu-cart__product-remove svg {
	width: 10px !important;
	height: 10px !important;
	stroke: currentColor !important;
}

a.elementor-menu-cart__product-remove:hover {
	background: var(--swift-accent, #cc1f1f) !important;
	border-color: var(--swift-accent, #cc1f1f) !important;
	color: #fff !important;
}

/* ── Subtotal box — light accent border ── */
.elementor-menu-cart__subtotal {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	margin: 16px 20px 0 !important;
	padding: 14px 16px !important;
	border: 1.5px solid rgba(204, 31, 31, 0.22) !important;
	border-radius: 8px !important;
	background: rgba(204, 31, 31, 0.025) !important;
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
}

.elementor-menu-cart__subtotal > span:first-child {
	font-size: 11px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.07em !important;
	color: #888 !important;
}

.elementor-menu-cart__subtotal .woocommerce-Price-amount {
	font-size: 20px !important;
	font-weight: 800 !important;
	color: #111 !important;
}

/* ── Footer buttons ── */
.elementor-menu-cart__footer-buttons {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 10px !important;
	padding: 16px 20px 22px !important; /* 16px top = space from subtotal */
	margin-top: 0 !important;
}

.elementor-menu-cart__footer-buttons .elementor-button,
.elementor-menu-cart__footer-buttons a.elementor-button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 13px 8px !important;
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 1.2px !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	border-radius: 7px !important;
	transition: background 0.18s, color 0.18s, border-color 0.18s !important;
	line-height: 1 !important;
	box-sizing: border-box !important;
	cursor: pointer !important;
}

/* View Cart — outlined red */
.elementor-menu-cart__footer-buttons .elementor-button:first-child,
.elementor-menu-cart__footer-buttons a.elementor-button:first-child {
	background: transparent !important;
	color: var(--swift-accent, #cc1f1f) !important;
	border: 2px solid var(--swift-accent, #cc1f1f) !important;
	box-shadow: none !important;
}

.elementor-menu-cart__footer-buttons .elementor-button:first-child:hover {
	background: rgba(204,31,31,.06) !important;
}

/* Checkout — filled red */
.elementor-menu-cart__footer-buttons .elementor-button:last-child,
.elementor-menu-cart__footer-buttons a.elementor-button:last-child {
	background: var(--swift-accent, #cc1f1f) !important;
	color: #fff !important;
	border: 2px solid var(--swift-accent, #cc1f1f) !important;
	box-shadow: none !important;
}

.elementor-menu-cart__footer-buttons .elementor-button:last-child:hover {
	background: var(--swift-accent-hover, #a81818) !important;
	border-color: var(--swift-accent-hover, #a81818) !important;
}

/* ── Quantity stepper (injected by cart-stepper.js) ── */
.swift-stepper {
	display: inline-flex !important;
	align-items: center !important;
	border: 1.5px solid #e0e0e0 !important;
	border-radius: 6px !important;
	overflow: hidden !important;
	background: #fff !important;
	height: 28px !important;
}

.swift-stepper--loading {
	opacity: 0.5 !important;
	pointer-events: none !important;
}

.swift-stepper__btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 26px !important;
	height: 100% !important;
	background: #f5f5f5 !important;
	border: none !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: #444 !important;
	cursor: pointer !important;
	transition: background 0.15s, color 0.15s !important;
	padding: 0 !important;
	line-height: 1 !important;
	outline: none !important;
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
	flex-shrink: 0 !important;
}

.swift-stepper__btn:hover {
	background: var(--swift-accent, #cc1f1f) !important;
	color: #fff !important;
}

.swift-stepper__btn:disabled {
	opacity: 0.4 !important;
	cursor: not-allowed !important;
}

.swift-stepper__val {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 28px !important;
	height: 100% !important;
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	color: #111 !important;
	padding: 0 4px !important;
	background: #fff !important;
	border-left: 1px solid #e0e0e0 !important;
	border-right: 1px solid #e0e0e0 !important;
	text-align: center !important;
	line-height: 1 !important;
}

.swift-el-price {
	font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	color: #111 !important;
	margin-left: 6px !important;
}


/* ══════════════════════════════════════════════════════════════
   MOBILE — ELEMENTOR HEADER & CART PANEL
   ══════════════════════════════════════════════════════════════ */

/* ── Mobile: cart panel full-width slide-in ── */
@media (max-width: 767px) {

	/* Full-width cart panel on mobile */
	.elementor-menu-cart__main {
		width: 100vw !important;
		max-width: 100vw !important;
		right: -100vw !important;
	}

	/* When open */
	.elementor-menu-cart__main[aria-hidden="false"],
	.elementor-menu-cart--shown .elementor-menu-cart__main {
		right: 0 !important;
	}

	/* Header: tighter padding on mobile */
	.elementor-menu-cart__header {
		padding: 14px 16px 12px !important;
	}

	.elementor-menu-cart__header-title {
		font-size: 12px !important;
	}

	/* Close button: larger touch target */
	.elementor-menu-cart__close-button {
		width: 34px !important;
		height: 34px !important;
	}

	/* Products list: comfortable padding */
	.elementor-menu-cart__products {
		padding: 0 16px !important;
	}

	/* Each product row */
	.elementor-menu-cart__product {
		gap: 10px !important;
		padding: 14px 0 !important;
	}

	/* Product image — slightly smaller */
	.elementor-menu-cart__product-image,
	figure.elementor-menu-cart__product-image {
		width: 60px !important;
		height: 60px !important;
	}
	.elementor-menu-cart__product-image a,
	.elementor-menu-cart__product-image img {
		width: 60px !important;
		height: 60px !important;
	}

	/* Product name */
	.elementor-menu-cart__product-name a {
		font-size: 11px !important;
	}

	/* Stepper: bigger touch targets on mobile */
	.swift-stepper {
		height: 34px !important;
	}
	.swift-stepper__btn {
		width: 34px !important;
		font-size: 18px !important;
	}
	.swift-stepper__val {
		min-width: 32px !important;
		font-size: 13px !important;
	}

	/* Remove button: easier to tap */
	a.elementor-menu-cart__product-remove,
	.elementor-menu-cart__product-remove {
		width: 28px !important;
		height: 28px !important;
		font-size: 14px !important;
	}

	/* Subtotal box */
	.elementor-menu-cart__subtotal {
		margin: 12px 16px 0 !important;
		padding: 12px 14px !important;
	}

	.elementor-menu-cart__subtotal .woocommerce-Price-amount {
		font-size: 18px !important;
	}

	/* Footer buttons: taller tap targets, full width each */
	.elementor-menu-cart__footer-buttons {
		padding: 14px 16px 20px !important;
		gap: 8px !important;
	}

	.elementor-menu-cart__footer-buttons .elementor-button,
	.elementor-menu-cart__footer-buttons a.elementor-button {
		padding: 14px 8px !important;
		font-size: 12px !important;
	}
}

/* ── Mobile: Elementor header nav cleanup ── */
@media (max-width: 767px) {
	/* Reduce search form on very small screens */
	.elementor-widget-search-form input[type="search"],
	.elementor-widget-search-form .elementor-search-form__input {
		font-size: 0.875rem !important;
		padding: 0.45rem 0.875rem !important;
	}

	/* Ensure Elementor column containers don't overflow */
	.elementor-location-header .elementor-section,
	.elementor-location-header .elementor-container {
		padding-left: 12px !important;
		padding-right: 12px !important;
	}
}

/* ── Tablet (768-1024): cart panel moderate width ── */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-menu-cart__main {
		width: 380px !important;
		max-width: 90vw !important;
	}
}
