/**
 * AltCtrl site-wide responsive layout (rem / vw / vh).
 */

:root {
	--altctrl-site-gutter: clamp(0.75rem, 2.5vw, 1.5rem);
	--altctrl-site-max: min(75rem, calc(100vw - 2 * var(--altctrl-site-gutter)));
	--altctrl-content-max: min(90rem, calc(100vw - 2 * var(--altctrl-site-gutter)));
	--altctrl-header-nav-gap: clamp(0.75rem, 1.5vw, 1.75rem);
	--altctrl-mobile-nav-height: clamp(3.5rem, 3.2rem + 1.5vw, 4rem);
	--altctrl-content-pad-top: clamp(1rem, 3vw, 2.618rem);
	--altctrl-content-pad-bottom: clamp(1rem, 3vw, 2.618rem);
}

html {
	overflow-x: clip;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	overflow-x: clip;
	min-width: 0;
}

/* Site container */
.col-full {
	width: 100%;
	max-width: var(--altctrl-content-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--altctrl-site-gutter) !important;
	padding-right: var(--altctrl-site-gutter) !important;
	box-sizing: border-box;
}

@media (min-width: 75rem) {
	.col-full {
		width: var(--altctrl-content-max);
	}
}

@media (min-width: 125rem) {
	.col-full {
		width: var(--altctrl-content-max);
		max-width: var(--altctrl-content-max);
	}
}

/* Override parent theme fixed 120rem container */
@media (min-width: 125rem) {
	.col-full,
	.section-product-cards-carousel-tabs .section-products-carousel-tabs-wrap,
	.section-top-categories.section-categories-carousel.section-categories-carousel-v1 {
		width: var(--altctrl-content-max) !important;
		max-width: var(--altctrl-content-max) !important;
	}
}

/* Global content area */
#content.site-content {
	padding-top: var(--altctrl-content-pad-top);
	padding-bottom: var(--altctrl-content-pad-bottom);
	box-sizing: border-box;
}

#primary.content-area,
.content-area,
.site-main,
.entry-content {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.page-template-template-homepage #content.site-content,
.page-template-template-homepage-v2 #content.site-content {
	padding-top: 0;
}

/* Mobile bottom-nav clearance (all pages) */
@media (max-width: 64rem) {
	body.altctrl-mobile-layout:not(.page-template-template-homepage):not(.page-template-template-homepage-v2) #content.site-content {
		padding-bottom: calc(var(--altctrl-content-pad-bottom) + var(--altctrl-mobile-nav-height));
	}
}

/* Full-width WooCommerce / shop pages */
body.woocommerce.left-sidebar #content #primary,
body.woocommerce.right-sidebar #content #primary,
body.woocommerce-archive.left-sidebar #content #primary,
body.woocommerce-archive.right-sidebar #content #primary,
body.post-type-archive-product.left-sidebar #content #primary,
body.post-type-archive-product.right-sidebar #content #primary,
body.single-product.left-sidebar #content #primary,
body.single-product.right-sidebar #content #primary,
body.tax-product_cat.left-sidebar #content #primary,
body.tax-product_cat.right-sidebar #content #primary,
body.altctrl-wishlist-page.left-sidebar #content #primary,
body.altctrl-wishlist-page.right-sidebar #content #primary,
body.altctrl-contact-page.left-sidebar #content #primary,
body.altctrl-contact-page.right-sidebar #content #primary,
body.altctrl-track-order-page.left-sidebar #content #primary,
body.altctrl-track-order-page.right-sidebar #content #primary,
body.altctrl-deals-archive.left-sidebar #content #primary,
body.altctrl-deals-archive.right-sidebar #content #primary {
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
}

body.woocommerce #content #secondary,
body.woocommerce-archive #content #secondary,
body.single-product #content #secondary,
body.post-type-archive-product #content #secondary,
body.tax-product_cat #content #secondary,
body.altctrl-wishlist-page #content #secondary {
	display: none !important;
}

body.woocommerce .entry-content,
body.woocommerce-page .entry-content,
body.woocommerce-archive .entry-content,
body.single-product .entry-content {
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

/* Images and media — never overflow viewport */
.entry-content img,
.woocommerce img,
.woocommerce-page img,
.wp-block-image img {
	max-width: 100%;
	height: auto;
}

/* Responsive tables (theme default) */
@media (max-width: 47.9375rem) {
	table.shop_table_responsive:not(.altctrl-cart-table):not(.altctrl-checkout-order-table) tbody tr td {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		clear: none !important;
		text-align: left !important;
		box-sizing: border-box;
	}

	table.shop_table_responsive:not(.altctrl-cart-table):not(.altctrl-checkout-order-table) tbody tr td::before {
		content: attr(data-title);
		flex: 0 0 auto;
		float: none !important;
		font-weight: 400;
		margin-right: 0.75rem;
	}
}

/* WooCommerce account — full-width content, no theme sidebar column */
body.woocommerce-account.left-sidebar #content,
body.woocommerce-account.right-sidebar #content,
body.woocommerce-account.two-sidebar #content {
	display: block;
}

body.woocommerce-account.left-sidebar #content #primary,
body.woocommerce-account.right-sidebar #content #primary,
body.woocommerce-account.two-sidebar #content #primary,
body.woocommerce-account.full-width #content #primary,
body.woocommerce-account #primary.content-area,
body.woocommerce-account .content-area {
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-account #content #secondary,
body.woocommerce-account .widget-area {
	display: none !important;
}

/* Logged-in My Account */
body.altctrl-myaccount-page:not(.altctrl-myaccount-auth-page) #primary.content-area,
body.altctrl-myaccount-page:not(.altctrl-myaccount-auth-page) .content-area,
body.altctrl-myaccount-page:not(.altctrl-myaccount-auth-page) .site-main,
body.altctrl-myaccount-page:not(.altctrl-myaccount-auth-page) .entry-content,
body.altctrl-myaccount-page:not(.altctrl-myaccount-auth-page) .woocommerce {
	width: 100%;
	max-width: none;
	float: none;
	margin-left: 0;
	margin-right: 0;
}

body.altctrl-myaccount-page:not(.altctrl-myaccount-auth-page) .col-full {
	width: 100%;
	max-width: var(--altctrl-content-max);
}

body.altctrl-myaccount-page .altctrl-myaccount {
	width: 100%;
	max-width: min(75rem, 100%);
	margin-left: auto;
	margin-right: auto;
}

body.altctrl-myaccount-page .altctrl-myaccount .woocommerce-MyAccount-navigation,
body.altctrl-myaccount-page .altctrl-myaccount .woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	flex: initial !important;
}

body.altctrl-myaccount-page .altctrl-myaccount .woocommerce-MyAccount-content {
	min-width: 0;
}

/* Header — keep nav and offers from overlapping */
.site-header.header-v1 .altctrl-header-bottom {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(0.5rem, 1.2vw, 1rem);
}

.site-header.header-v1 .altctrl-header-nav {
	min-width: 0;
	overflow: hidden;
}

.site-header.header-v1 .altctrl-header-nav .primary-navigation .nav {
	flex-wrap: wrap;
	justify-content: center;
	row-gap: 0.375rem;
	gap: var(--altctrl-header-nav-gap);
}

.site-header.header-v1 .altctrl-header-nav .primary-navigation .nav > li > a {
	font-size: clamp(0.6875rem, 0.65rem + 0.15vw, 0.8125rem);
}

.site-header.header-v1 .altctrl-header-top,
.site-header.header-v1 .altctrl-header-utilities {
	min-width: 0;
}

.site-header.header-v1 .altctrl-header-utilities {
	flex-wrap: nowrap;
	gap: clamp(0.375rem, 1vw, 0.75rem);
}

@media (max-width: 87.5rem) {
	.site-header.header-v1 .altctrl-header-offers {
		display: none;
	}

	.site-header.header-v1 .altctrl-header-bottom {
		grid-template-columns: auto minmax(0, 1fr);
	}
}

@media (max-width: 74.9375rem) {
	.site-header.header-v1 .altctrl-header-search {
		max-width: none;
	}
}

/* Desktop — no mobile bottom-nav spacing */
@media (min-width: 64.0625rem) {
	body.altctrl-mobile-layout {
		padding-bottom: 0 !important;
	}
}

/* Payment methods */
.altctrl-payment-methods-table {
	width: 100%;
}

.altctrl-payment-methods-notice--error {
	border-color: #fecdca;
	background: #fef3f2;
}

.altctrl-payment-methods-notice--error p {
	color: #b42318;
}

.altctrl-payment-methods-table .payment-method-actions .button {
	white-space: nowrap;
}

@media (max-width: 47.9375rem) {
	.altctrl-myaccount-page .altctrl-payment-methods-table thead {
		display: none;
	}

	.altctrl-myaccount-page .altctrl-payment-methods-table tbody tr {
		display: block;
		padding: 0.75rem 0;
		border-bottom: 1px solid #eaecf0;
	}

	.altctrl-myaccount-page .altctrl-payment-methods-table tbody td {
		display: flex !important;
		justify-content: space-between;
		align-items: center;
		gap: 0.75rem;
		padding: 0.35rem 0 !important;
		text-align: right;
	}

	.altctrl-myaccount-page .altctrl-payment-methods-table tbody td::before {
		content: attr(data-title);
		float: none;
		font-weight: 400;
		color: #667085;
		text-align: left;
	}

	.altctrl-myaccount-page .altctrl-payment-methods-table .payment-method-actions {
		justify-content: flex-end;
	}

	.altctrl-myaccount-page .altctrl-payment-methods-table .payment-method-actions::before {
		display: none;
	}
}

/* General WooCommerce pages */
body.woocommerce:not(.woocommerce-account) #primary.content-area,
body.woocommerce-page:not(.woocommerce-account) #primary.content-area {
	min-width: 0;
	width: 100%;
	max-width: none;
	float: none;
}

body.woocommerce-cart.left-sidebar #content #primary,
body.woocommerce-cart.right-sidebar #content #primary,
body.woocommerce-checkout.left-sidebar #content #primary,
body.woocommerce-checkout.right-sidebar #content #primary,
body.woocommerce-cart.full-width #content #primary,
body.woocommerce-checkout.full-width #content #primary {
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: none !important;
}

body.woocommerce-cart #content #secondary,
body.woocommerce-checkout #content #secondary {
	display: none !important;
}

body.woocommerce-cart #content.site-content,
body.woocommerce-checkout #content.site-content {
	padding-top: clamp(1rem, 3vw, 2rem);
	padding-bottom: clamp(1rem, 3vw, 2rem);
}

body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

@media (max-width: 61.9375rem) {
	body.woocommerce-cart #content.site-content,
	body.woocommerce-checkout #content.site-content {
		padding-bottom: calc(clamp(1rem, 3vw, 2rem) + var(--altctrl-mobile-nav-height, 4rem));
	}
}

@media (max-width: 61.9375rem) {
	body.altctrl-myaccount-page #content.site-content {
		padding-top: clamp(1rem, 4vw, 1.5rem);
		padding-bottom: clamp(1rem, 4vw, 1.5rem);
	}

	body.altctrl-myaccount-page .altctrl-myaccount {
		border-radius: 0.75rem;
	}
}
