/* 
 Theme Name:   Child Theme
 Theme URI:    
 Description:  
 Author:       Stellified Ltd
 Author URI:   
 Template:     hello-elementor
 Version:      1.1
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html

/* General - Text Adjustments
 ********************************************
 ********************************************/
strong {
	font-weight: 600;
}
.highlight_red strong {
	color: #e20000;
}
.inlineimg {
	display: inline;
	white-space: nowrap;
}
.inlineimg img {
	height: 70px!important; 
	vertical-align: middle;
	margin-top: -10px;
}
.color_marker .elementor-icon i::before {
	border: 6px #f8f6f2 solid;
	border-radius: 50%;
}
@media (max-width: 2014px) {
	.inlineimg img {
		height: 50px!important;
	}
}


/* Layout - Columns
 ********************************************
 ********************************************/
.row {
	display: flex;
	gap: 80px;
	width: 100%;
}
.col.col_12 {width: calc(100% / 12 * 12);}
.col.col_11 {width: calc(100% / 12 * 11);}
.col.col_10 {width: calc(100% / 12 * 10);}
.col.col_9 {width: calc(100% / 12 * 9);}
.col.col_8 {width: calc(100% / 12 * 8);}
.col.col_7 {width: calc(100% / 12 * 7);}
.col.col_6 {width: calc(100% / 12 * 6);}
.col.col_5 {width: calc(100% / 12 * 5);}
.col.col_4 {width: calc(100% / 12 * 4);}
.col.col_3 {width: calc(100% / 12 * 3);}
.col.col_2 {width: calc(100% / 12 * 2);}
.col.col_1 {width: calc(100% / 12 * 1);}


/* Layout - Grids
 ********************************************
 ********************************************/
.grid {
	display: grid;
	gap: 40px;
}
.grid.grid_2 {
	grid-template-columns: repeat(2, 1fr);
}
.grid .fullcol {
	grid-column: 1 / -1;
}
.grid .grid_item {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 30px;
	border: 1px #858585 solid;
	color: #092020;
}
.grid .grid_link {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.grid .grid_link i {
	color: #e20000;
	font-size: 40px;
}


/* Layout - Tables
 ********************************************
 ********************************************/
table thead tr {
	border-bottom: 2px #f4efe1 solid!important;
}
table thead tr th {
	border: none!important;
	background: none!important;
	padding: 16px 0!important;
}
table tbody tr {
	border-bottom: 1px #f4efe1 solid!important;
}
table tbody tr td {
	border: none!important;
	background: none!important;
	padding: 16px 0!important;
}
table tfoot {
	border-top: 40px #fff solid;
}
table tfoot tr {
	border: none!important;
}
table tfoot tr td {
	border: none!important;
	padding: 10px!important;
	font-size: 16px;
}
table tbody tr > td, table tbody tr > th
table tbody tr:hover > td, table tbody tr:hover > th {
	background: #fff!important;
}


/* Layout - Buttons
 ********************************************
 ********************************************/
.button {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 600!important;
	background: #e20000;
	color: #fff;
	padding: 14px 16px;
	border-radius: 4px;
	transition: background 0.3s ease;
}
.button:hover {
	background: #c30000;
	color: #fff;
}
.biglink {
	font-size: 16px!important;
	font-weight: 600!important;
	color: #e20000!important;
}
.biglink i {
	transition: transform 0.3s ease;
}
.biglink:hover i {
	transform: translatex(6px);
}
.blocklink a {
	display: flex;
	align-items: center;
	gap: 6px;
	width: 100%;
	margin-top: 20px;
	font-weight: 500!important;
	color: #e20000!important;
}


/* Breadcrumbs
 ********************************************
 ********************************************/
.woocommerce-breadcrumb,
.woocommerce-breadcrumb > a {
	font-size: 13px!important;
	text-transform: uppercase!important;
	font-weight: 500!important;
	color: #858585;
}
.woocommerce-breadcrumb > a {
	color: #515151!important;
	transition: color 0.3s ease;
}
.woocommerce-breadcrumb > a:hover {
	color: #e20000!important;
}


/* Account - Login Form
 ********************************************
 ********************************************/
.login_wrapper {
	max-width: 580px;
	padding: 40px;
	margin: 40px auto;
}
.login_wrapper h2 {
	background: #F8F6F2;
	border: 1px #F0E8D0 solid;
	border-bottom: none;
	border-radius: 6px 6px 0 0;
	margin: 0;
	padding: 30px 30px 0 30px;
}
.login_wrapper .woocommerce-form-login {
	display: flex!important;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	background: #F8F6F2;
	border: 1px #F0E8D0 solid!important;
	border-top: none!important;
	border-radius: 0 0 6px 6px!important;
	padding: 20px 30px 30px 30px!important;
	margin-top: 0!important;
}
.login_wrapper .form-row-wide {
	width: 100%;
	flex: 0 0 100%;
}
.login_wrapper .woocommerce-form-login p:nth-child(2) {
	margin-bottom: 30px!important;
}
.login_wrapper .woocommerce-form-login input {
	padding: 14px!important;
	margin-bottom: 10px!important;
}
.login_wrapper .woocommerce-form-login__submit {
	display: flex!important;
	justify-content: center;
	align-items: center;
	gap: 10px;
	font-size: 16px!important;
	font-weight: 600!important;
	background: #e20000!important;
	color: #fff!important;
	padding: 14px 16px!important;
	border-radius: 4px!important;
	min-width: 140px;
	transition: background 0.3s ease;
}
.login_wrapper .woocommerce-LostPassword {
	margin: 0;
}
.login_wrapper .woocommerce-LostPassword a {
	font-size: 14px!important;
	color: #515151!important;
	text-decoration: underline;
}
.login_wrapper .woocommerce-form-login__rememberme {
	display: none!important;
}
.login_wrapper .woocommerce-form-login__submit:hover {
	background: #c30000!important;
	color: #fff;
}
.login_wrapper .login_copyright {
	text-align: center;
	color: #858585;
}


/* Product Subcategories Loop
 ********************************************
 ********************************************/
.subcategory_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.subcategory_item {
	display: flex;
	flex-direction: column;
	background: #f8f6f2;
	border: 1px #f4efe1 solid;
	border-radius: 20px;
}
.subcategory_item .subcategory_image {
	display: block;
	border-radius: 20px 20px 0 0;
	overflow: hidden;
	min-height: 300px;
	background: #fff;
}
.subcategory_item .subcategory_image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform 0.3s ease;
}
.subcategory_item .subcategory_image:hover img {
	transform: scale(1.1);
}
.subcategory_item .subcategory_info {
	padding: 30px;
	flex: 1;
}
.subcategory_item .subcategory_overview {
	font-size: 16px;
	color: 
}
.subcategory_footer a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 30px;
	border-top: 1px #f4efe1 solid;
	font-weight: 500;
	color: #092020;
}
.subcategory_footer a > i {
	color: #E20000;
}


/* Product Colours Loop
 ********************************************
 ********************************************/
.product_colours {
	list-style: none;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: end;
	gap: 6px;
}
.product_colours li {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 6px;
}
.product_colours #clear .swatch {
	border-style: dotted;
}
.product_colours #bespoke {
	display: none;
}
.product_colours .swatch {
	align-items: center;
	border: 2px #858585 solid;
	border-radius: 50%;
	padding: 4px;
}
.product_colours .bubble {
	display: block;
	width: 50px;
	height: 50px;
	border-radius: 50%;
}
.product_colours .label {
	font-weight: 500;
}

@media (max-width: 1024px) {
	.product_colours {
		justify-content: start;
		flex-wrap: wrap;
	}
}
@media (max-width: 767px) {
	.product_colours {
		gap: 4%;
		row-gap: 20px!important;
	}
	.product_colours li {
		flex: 0 0 20%;
	}
}


/* Product Attributes Loop
 ********************************************
 ********************************************/
.attribute_loop {
	display: block;
	list-style: none;
	padding: 0;
	font-size: 18px;
}
.attribute_loop > li {
	display: flex;
	align-items: center;
	padding: 20px 0;
	border-bottom: 1px #858585 solid;
}
.attribute_loop li .attribute_name {
	font-weight: 500;
	font-size: 34px;
	width: 300px;
	color: #092020;
}
.attribute_loop li .attribute_values {
	display: flex;
	align-items: center;
	gap: 6px;
	list-style: none;
	padding: 0;
}
.attribute_loop li .attribute_values li {
	padding: 2px 6px;
	background: #ece9e1;
	border-radius: 4px;
}
.attribute_loop li #colour li {
	background: none;
	border: 2px #000 solid;
}
.attribute_loop li #colour #bespoke {
	background: none;
	border: 2px #000 dotted;
}


/* Elementor - Icon Elements
 ********************************************
 ********************************************/
.elementor-element.elementor-widget-icon {
	line-height: 1em!important;
}


/* Elementor - CTA Elements
 ********************************************
 ********************************************/
.elementor-cta {
	border-radius: 20px!important;
	overflow: hidden;
	height: 100%!important;
}
.elementor-cta .elementor-cta__content .elementor-cta__button {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	width: 100%;
	border-top: 1px #F0E8D0 solid!important;
	padding: 20px 0!important;
}
.elementor-cta .elementor-cta__content .elementor-cta__button > span {
	transform: translatex(0);
	opacity: 1;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.elementor-cta .elementor-cta__content .elementor-cta__button:hover > span {
	transform: translatex(200px);
	opacity: 0;
}
.elementor-cta .elementor-cta__content .elementor-cta__button::before {
	position: absolute;
	content: 'View products';
	transform: translatex(-300px);
	opacity: 0;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.elementor-cta .elementor-cta__content .elementor-cta__button:hover::before {
	transform: translatex(0);
	opacity: 1;
}
.elementor-cta .elementor-cta__content .elementor-cta__button i {
	color: #e20000;
}
.elementor-cta .elementor-cta__bg {
	background-size: contain!important;
	background-repeat: no-repeat!important;
	background-position: center!important;
}
@media (max-width: 767px) {
	.elementor-cta .elementor-cta__button-wrapper,
	.elementor-cta .elementor-cta__description {
		display: none!important;
	}
}


/* Elementor - Equal Height Sliders
 ********************************************
 ********************************************/
.equalslide .swiper-slide > .elementor-section > .elementor-container,
.equalslide .swiper-slide > .elementor-section > .elementor-container > .elementor-column {
	height: 100%!important;
}
.equalslide .swiper-slide > .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
	height: 100%!important;
	flex-direction: column!important;
}
.equalslide .swiper-slide > .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
	height: 100%!important;
	flex-direction: column!important;
}
.equalslide .swiper-slide > .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap > :nth-last-child(2) {
	flex: 1!important;
}


/* Elementor - Custom Slider Navigation
 ********************************************
 ********************************************/
.elementor-swiper-button {
	top: -70px!important;
	right: 0!important;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 60px;
	height: 60px;
	background: rgba(0,0,0,0.1);
	color: #515151!important;
	font-size: 22px!important;
	border-radius: 8px;
	box-shadow: none;
	transition: background 0.3s ease, color 0.3s ease;
}
.elementor-swiper-button.elementor-swiper-button-prev {
	left: auto!important;
	right: 70px!important;
}
.elementor-swiper-button:hover {
	background: #e20000!important;
	color: #fff!important;
}

@media (max-width: 767px) {
	.elementor-swiper-button {
		top: -40px!important;
		width: 40px;
		height: 40px;
	}
	.elementor-swiper-button.elementor-swiper-button-prev {
		right: 50px!important;
	}
}


/* Elementor - Custom Sliders
 ********************************************
 ********************************************/
.customslidewrap .elementor-main-swiper {
	width: 100%!important;
	overflow: visible!important;
}
.customslide .elementor-testimonial__name {
	position: absolute;
	top: 20px;
}
.customslide .elementor-testimonial__icon {
	margin-top: -30px;
}


/* Elementor - Custom Sliders (Text Only)
 ********************************************
 ********************************************/
.customtxtslide .elementor-testimonial__content a {
	display: flex;
	align-items: center;
	gap: 6px;
	width: 100%;
	margin-top: 20px;
	color: #E20000;
	font-weight: 500;
	transition: color 0.3s ease;
}
.customtxtslide .elementor-testimonial__content a:hover {
	color: #A80000;
}


/* Elementor - Custom Slider (With Image)
 ********************************************
 ********************************************/
.customimgslide .swiper-slide {
	border-radius: 20px!important;
	overflow: hidden;
}
.customimgslide .elementor-testimonial__header {
	display: flex!important;
	flex-wrap: wrap!important;
	padding: 0!important;
}
.customimgslide .elementor-testimonial__image {
	display: block;
	width: 100%;
	order: 1;
}
.customimgslide .elementor-testimonial__image img {
	width: 100%!important;
	height: 30vh!important;
	max-height: 400px;
	min-height: 300px;
	border-radius: 0!important;
}
.customimgslide .elementor-testimonial__cite {
	position: relative;
	display: block;
	padding: 30px 30px 10px 30px;
	margin: 0!important;
	width: 100%!important;
	order: 2;
}
.customimgslide .elementor-testimonial__name {
	position: absolute;
	top: -50px;
	right: 20px;
	background: #fff;
	padding: 4px 10px;
}
.customimgslide .elementor-testimonial__icon {
	position: absolute;
	top: 20px;
	right: 20px;
	order: 3;
}
.elementor-testimonial__text > a {
	display: flex!important;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	width: 100%!important;
	border-top: 1px #F0E8D0 solid!important!;
	padding: 20px 0!important;
	font-size: 16px;
	font-weight: 500!important;
	color: #092020;
}
.elementor-testimonial__text > a > span {
	transform: translatex(0);
	opacity: 1;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.elementor-testimonial__text > a:hover > span {
	transform: translatex(200px);
	opacity: 0;
}
.elementor-testimonial__text > a::before {
	position: absolute;
	content: 'View products';
	transform: translatex(-300px);
	opacity: 0;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.elementor-testimonial__text > a:hover::before {
	transform: translatex(0);
	opacity: 1;
	color: #e20000;
}
.elementor-testimonial__text > a > i {
	color: #e20000;
}


/* Elementor - Custom Benefits Loop
 ********************************************
 ********************************************/
.pcat-benefits {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
}
.pcat-benefit {
	display: flex;
	align-items: start;
	flex-direction: column;
	padding: 30px 60px 30px 0;
	border-bottom: 1px #f0e8d0 solid;
	line-height: 1em;
}
.pcat-benefit__head {
	display: flex;
	align-items: center;
}
.pcat-benefit__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 50px;
	gap: 10px;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: rgba(214, 40, 24, .07);
	color: #e20000;
	font-size: 26px;
	line-height: 1;
}
.pcat-benefit__title {
	flex: 1;
	margin: 0 0 0 10px;
	line-height: 1.3em;
}
.pcat-benefit__description {
	flex: 0 0 100%;
	margin: 0 0 0 60px;
	line-height: 1.4em;
}
.pcat-benefit__description p:last-child {
	margin-bottom: 0!important;
}
@media (max-width: 1024px) {
	.pcat-benefits {
		gap: 16px;
	}
	.pcat-benefit {
		padding: 22px;
	}
}
@media (max-width: 767px) {
	.pcat-benefits {
		grid-template-columns: minmax(0, 1fr);
	}
}


/* Notifications
 ********************************************
 ********************************************/
.notification {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 20px;
	margin-bottom: 20px;
	background: #fff;
	font-weight: 500;
}
.notification i {
	font-size: 18px;
}
.notification a {
	text-decoration: underline;
	font-weight: 500!important;
}
.notification.success {
	color: green;
	background: #ECFEEC;
}
.notification.success a {
	color: green;
}
.notification.error {
	background: #FFEBEB;
	color: red!important;
}
.notification.error a {
	color: red;
}
.notification.notice {
	background: #ECFBFE;
	color: #1C6E8C!important;
}
.notification.notice a {
	color: #1C6E8C;
}


/* Client Dashboard
 ********************************************
 ********************************************/
.inner {
	position: relative;
	margin: 0 auto;
	max-width: 1600px;
	padding: 40px;
}
.dash_header {
	background: #f8f6f2;
	border-bottom: 1px #F0E8D0 solid;
}
.dash_header h1 {
	margin: 0;
	text-transform: capitalize;
	color: #092020;
}
.dash_header .meta {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 10px;
	font-size: 20px;
}
.dash_header .stock_status {
	font-size: 16px!important;
	border-radius: 30px;
	padding: 6px 12px;
}
.dash_breadcrumbs {
	background: #f8f6f2;
	border-bottom: 1px #F0E8D0 solid;
}
.dash_breadcrumbs .inner {
	padding: 20px 40px!important;
}
.dash_actions {
	padding-bottom: 120px;
}
.dash_actions h2 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 20px 0;
	color: #092020;
}
.quote_items .col_title {
	padding-left: 0!important;
}
.quote_items .col_title strong {
	display: flex!important;
	align-items: center;
	gap: 6px;
	text-transform: capitalize;
}
.quote_items .col_title .stock_status {
	font-size: 14px!important;
	border-radius: 20px!important;
	padding: 4px 8px;
}
.quote_items .col_subtotal {
	text-align: right!important;
}
.quote_items .col_subtotal strong {
	display: block;
}
.dash_row {
	flex-wrap: wrap;
	gap: 0!important;
	margin-bottom: 40px;
}
.dash_row .col {
	padding: 5px;
}
.dash_widget {
	display: flex;
	flex-direction: column;
	border: 1px #f0e8d0 solid;
	border-radius: 6px;
	padding: 20px;
	color: #515151;
}
.dash_widget h6 {
	display: block;
	margin: 0 0 30px 0;
	font-weight: 600;
}
.dash_widget h6.up {
	color: green;
}
.dash_widget h6.down {
	color: red;
}
.dash_widget h3 {
	margin: 0;
	color: #092020;
}
a.dash_widget h3 i {
	margin: 0;
	color: #E20000;
}


/* Dashboard - Hide Footer
 ********************************************
 ********************************************/
.hide_footer {
	display: none;
}


/* Dashboard - Sidebar
 ********************************************
 ********************************************/
.sidebar {
	padding: 20px;
	margin: 0!important;
	background: #f8f6f2;
	border: 1px #f0e8d0 solid;
}
.sidebar h3 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-transform: capitalize;
	color: #092020;
}
.sidebar h3 .stock_status {
	font-size: 16px!important;
	border-radius: 20px!important;
}
.slidebar_list {
	list-style: none;
	padding: 0;
	margin-bottom: 30px;
}
.slidebar_list li {
	display: flex;
	align-items: center;
	gap: 10px;
	line-height: 1.4em;
	padding: 10px 0;
	border-bottom: 1px #f4efe1 solid;
}
.slidebar_list li small {
	display: block;
	font-size: 14px;
	margin-bottom: 2px;
	font-weight: 600;
	color: #515151;
}
.slidebar_list li strong {
	font-weight: 500;
	color: #092020;
}
.sidebar_actions a.button {
	margin-bottom: 20px;
}
.sidebar_actions a.alt_action {
	display: block;
	text-align: center;
	text-decoration: underline;
	font-size: 14px;
	color: #515151;
}


/* Dashboard - Summary Chart
 ********************************************
 ********************************************/
.bar_chart {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	height: 250px;
}
.chart_month {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	width: calc(100% / 12);
}
.bars {
	display: flex;
	gap: 5px;
	align-items: flex-end;
	height: 100%;
	width: 100%;
	justify-content: center;
	padding: 0 5px;
}
.bar {
	flex: 1;
	background: #3498db;
	border-radius: 15px;
	position: relative;
	max-width: 20px;
	transition: all 0.3s ease;
	min-height: 2px;
}
.bar.quotes,
.legend_item .color.quotes {
	background: #140152;
}
.bar.orders,
.legend_item .color.orders {
	background: green;
}
.bar .value {
	position: absolute;
	top: -30px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 14px;
	line-height: 1em;
	font-weight: 600;
	white-space: nowrap;
	background: #fff;
	padding: 4px 8px;
	border-radius: 10px;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.bar:hover .value {
	opacity: 1;
}
.month_label {
	margin-top: 8px;
	font-size: 11px;
	font-weight: 600;
	text-align: center;
}
.chart_legend {
	display: flex;
	gap: 20px;
	margin-top: 10px;
}
.legend_item {
	display: flex;
	align-items: center;
	gap: 8px;
}
.legend_item .color {
	width: 16px;
	height: 16px;
	border-radius: 50%;
}
.chart_widget {
	padding: 20px;
}


/* Tags - Order Table
 ********************************************
 ********************************************/
.stock_status {
	padding: 5px 10px;
	line-height: 1em;
	border-radius: 10px;
	font-weight: 600;
	font-size: 12px;
	text-transform: capitalize;
}
.stock_status.pending {
	background: #f8f6f2;
	color: #6B5B38!important;
}
.stock_status.quote {
	background: #EFEBFF;
	color: #140152!important;
}
.stock_status.instock,
.stock_status.complete {
	background: #ECFEEC;
	color: green!important;
}
.stock_status.outofstock,
.stock_status.cancelled {
	background: #FFEBEB;
	color: red!important;
}
.stock_status.processing {
	background: #ECFBFE;
	color: #1C6E8C!important;
}


/* Quote Builder - Order Table
 ********************************************
 ********************************************/
.user_products_header {
	display: flex;
	border-bottom: 2px #f4efe1 solid;
	padding: 20px 0;
	font-weight: 600;
}
.user_products_header > div {
	padding: 10px!important;
}
.user_products_header .col_title {
	padding-left: 0!important;
}
.user_products_header small {
	display: block;
	font-weight: 400;
}
.product_search_input {
	padding: 14px!important;
	border: 1px #f4efe1 solid!important;
	border-radius: 0!important;
	background: #f8f6f2!important;
}
.user_products_row {
	position: relative;
	display: flex;
	align-items: center;
	border-bottom: 1px #f4efe1 solid;
	padding: 10px 0;
	color: #515151;
}
a.user_products_row .goicon {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	align-items: center;
	height: 100%;
	font-size: 20px;
	color: #e20000;
	opacity: 0;
	transform: translatex(-30px);
	transition: opacity 0.5s ease, transform 0.3s ease;
}
a.user_products_row:hover .goicon {
	opacity: 1;
	transform: translatex(0);
}
a.user_products_row.quote_item > div:last-of-type {
	transform: translatex(0);
	transition: transform 0.3s ease;
}
a.user_products_row.quote_item:hover > div:last-of-type {
	transform: translatex(-30px);
}
.user_products_row .col_image {
	width: 100px;
	flex: 0 0 100px;
}
.user_products_row .col_title {
	flex: 1;
	padding: 0 20px;
	line-height: 1.6em;
}
.user_products_row .col_title strong {
	display: block;
	margin-bottom: 6px;
	color: #092020;
	cursor: pointer;
}
.user_products_row .col_title strong .quickview {
	opacity: 0;
	color: #e20000;
	transition: opacity 0.3s ease;
}
.user_products_row .col_title strong:hover .quickview {
	opacity: 1;
}
.user_products_row .col_title .meta {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.5px;
	color: #515151;
	text-transform: uppercase;
}
.user_products_row .col_price {
	width: 120px;
	flex: 0 0 120px;
	text-align: center;
	font-weight: 500;
}
.user_products_row .col_quantity {
	width: 162px;
	flex: 0 0 162px;
	text-align: center;
}
.user_products_row .col_quantity .quantity_wrapper {
	position: relative;
}
.user_products_row .col_quantity .unit_total {
	position: absolute;
	bottom: -26px;
	left: 0;
	width: 100%;
	text-align: center;
}
.user_products_row .col_subtotal {
	width: 160px;
	flex: 0 0 160px;
	text-align: center;
	font-weight: 600;
}
.user_products_row .product_quantity::-webkit-outer-spin-button,
.user_products_row .product_quantity::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.user_products_row .product_quantity {
	-moz-appearance: textfield;
	appearance: textfield;
	text-align: center;
	padding: 6px;
	font-weight: 600;
}
.user_products_row .quantity_wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 5px;
	border: 1px #f4efe1 solid;
	padding: 5px;
	border-radius: 4px;
}
.user_products_row .quantity_wrapper.disabled {
    opacity: 0.5;
    pointer-events: none;
	filter: grayscale(100%);
}
.user_products_row .product_quantity {
	height: 40px;
	width: 60px;
	border: none;
}
.user_products_row .qty_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 40px;
	height: 40px;
	border-radius: 2px;
}
.user_products_footer {
	justify-content: end;
	padding: 20px 0;
	border-top: 2px #f4efe1 solid;
	font-weight: 600;
}
.user_products_no_results {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: 20px;
	text-align: center;
	padding: 60px 40px;
}
.user_products_no_results i {
	font-size: 50px;
}
.user_products_no_results h3 {
	margin: 0;
	color: #092020;
}


/* Quote Builder - Order Summary
 ********************************************
 ********************************************/
.user_products_summary {
	table-layout: fixed;
	line-height: 1.6em;
}
.user_products_summary th {
	border: none!important;
	width: 120px!important;
	text-align: left;
	font-size: 16px;
}
.user_products_summary td {
	border: none!important;
	width: 120px!important;
	vertical-align: middle;
}
.user_products_summary .summary_title {
	width: auto!important;
	text-align: left;
}
.user_products_summary .summary_title strong {
	display: block;
	text-transform: capitalize;
}
.user_products_summary .summary_title span {
	display: block;
	font-size: 14px;
	font-weight: 400;
}
.user_products_summary .summary_price {
	text-align: center;
}
.user_products_summary .spacerrow {
	height: 40px;
}
.user_products_summary .spacercell {
	background: none!important;
}
.user_products_summary .summary_heading {
	background: #f4efe1!important;
	font-size: 16px;
}
.edit_quote_button {
	position: absolute!important;
	top: 34px;
	right: 30px;
	width: 80px!important;
	margin: 0!important;
	padding: 0!important;
}
.edit_quote_button .wsf-button {
	padding: 0!important;
	background: none!important;
	color: #092020!important;
	border: none!important;
	width: auto!important;
	box-shadow: none!important;
	font-size: 13px!important;
}
.edit_quote_button .wsf-button i {
	color: #e20000;
	margin-left: 2px;
	
}


/* Quote Builder - Product Information Popup
 ********************************************
 ********************************************/
.popup_overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0,0,0,0.6);
	opacity: 0;
	z-index: -1;
	cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>') 24 24, pointer;
	transition: opacity 0.3s ease;
}
.user_products_row.active .popup_overlay {
	display: block!important;
	opacity: 1;
	z-index: 1;
}
.user_products_popup {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	top: auto;
	width: 100vw;
	height: 80vh;
	background: #fff;
	box-shadow: 0 0 20px rgba(0,0,0,0.1);
	transform: translatey(80vh);
	opacity: 0;
	z-index: 10;
	transition: opacity 0.3s ease, transform 0.5s ease;
}
.user_products_row.active .user_products_popup {
	transform: translatey(0);
	opacity: 1;
}
.user_products_popup .popup_close {
	position: absolute;
	top: 40px;
	right: 40px;
	font-size: 30px;
	color: #f0e8d0;
	cursor: pointer;
	transition: color 0.3s ease;
}
.user_products_popup .popup_close:hover {
	color: #e20000;
}
.user_products_popup .user_products_spec {
	display: flex;
	padding: 80px 0;
}
.user_products_popup .popup_image {
	flex: 0 0 30%;
}
.user_products_popup .popup_content {
	flex: 0 0 70%;
	padding: 40px 0 0 80px;
}
.popup_tabs {
	display: flex;
	flex-direction: column;
	align-items: start;
}
.popup_tab_nav {
	display: flex;
	gap: 6px;
	background: #f8f6f2;
	width: 414px;
	padding: 6px;
}
.popup_tab_nav .popup_tab_btn {
	width: 130px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	height: 40px;
	padding: 0;
	border: none;
	font-size: 14px;
	font-weight: 600;
	background: #f8f6f2;
	color: #092020;
	transition: color 0.3s ease, background 0.3s ease;
}
.popup_tab_nav .popup_tab_btn.active {
	background: #e20000;
	color: #fff;
}
.user_products_popup .popup_tab_content {
	padding-top: 40px;
	width: 100%;
}
.user_products_popup .popup_tab_panel {
	display: none;
}
.user_products_popup .popup_tab_panel.active {
	display: block;
}
.user_products_popup .popup_title {
	margin: 0 0 30px 0;
}
.user_products_popup .popup_meta {
	display: flex;
	align-items: center;
	gap: 16px;
}
.user_products_popup .popup_categories {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 500;
}
.user_products_popup .popup_categories span {
	background: #f8f6f2;
	padding: 6px 12px;
	border-radius: 20px;
	line-height: 1.2em;
}
.user_products_popup .stock_status {
	padding: 6px 12px;
	line-height: 1.2em;
	border-radius: 20px;
	font-weight: 600;
	font-size: 16px;
}
.user_products_popup .popup_excerpt {
	margin: 20px 0 40px 0;
}
.user_products_popup .popup_tab_panel .col_quantity {
	display: flex;
	width: auto!important;
	flex: auto!important;
	justify-content: start;
	align-items: center;
	gap: 10px;
}
.user_products_popup .popup_tab_panel .popup_pricing {
	font-weight: 400;
	margin: 0 0 20px 0;
}
.user_products_popup .popup_tab_panel .unit_total {
	position: static!important;
	width: auto;
}
.user_products_popup .popup_attributes {
	list-style: none;
	padding: 0;
}
.user_products_popup .popup_attribute {
	display: flex;
	align-items: center;
	border-bottom: 1px #f0e8d0 solid;
	padding: 10px 0;
}
.user_products_popup .attribute_label {
	font-weight: 600;
	width: 30%;
	flex:  0 0 30%;
}


/* Quote Builder - Order Totals
 ********************************************
 ********************************************/
.user_products_totals {
	list-style: none;
	padding: 0;
}
.user_products_totals li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px #f0e8d0 solid;
	padding: 14px 0;
}
.user_products_totals .totals_total {
	font-weight: 600;
}


/* WS Form - Radio Buttons
 ********************************************
 ********************************************/
.form_radio_button .wsf-grid .wsf-label {
	width: 100%!important;
	padding: 40px!important;
	background: #f8f6f2!important;
	border-radius: 0!important;
}
.form_radio_button .wsf-grid .wsf-label i {
	font-size: 40px;
	color: red;
	margin-bottom: 20px;
}
.form_radio_button .wsf-grid .wsf-label h3 {
	margin-bottom: 10px;
	color: #092020;
}


/* WS Form - Sidebar
 ********************************************
 ********************************************/
.form_sidebar {
	padding: 0 0 0 40px!important;
}
.form_sidebar .wsf-fields {
	padding: 20px;
	margin: 0!important;
	background: #f8f6f2;
	border: 1px #f0e8d0 solid;
	max-width: calc(100% - 10px)!important;
}


/* WS Form - Radio Toggle / Switch
 ********************************************
 ********************************************/
.form_radio_toggle {
    margin-bottom: 30px!important;
	padding-bottom: 30px!important;
	border-bottom: 1px #f0e8d0 solid;
}
.form_radio_toggle [role="radiogroup"]:has([name="field_91[]"]) {
    background: #fff;
    padding: 6px;
    display: inline-flex;
    gap: 0;
}
.form_radio_toggle .wsf-grid {
	display: flex!important;
	margin: 0!important;
	padding: 6px!important;
	width: 100%!important;
	gap: 6px;
}
.form_radio_toggle .wsf-tile {
	margin: 0!important;
	padding: 0!important;
}
.form_radio_toggle .wsf-label {
	display: flex!important;
	justify-content: center;
	align-items: center;
	gap: 6px;
	height: 40px!important;
	padding: 0!important;
	border: none!important;
	border-radius: 0!important;
	font-size: 14px!important;
	font-weight: 600!important;
	background: #fff!important;
}
.form_radio_toggle .wsf-field:checked + .wsf-label {
	background: #e20000!important;
}


/* WS Form - Summary
 ********************************************
 ********************************************/
.form_summary {
	padding: 20px;
	margin: 0!important;
	background: #f8f6f2;
	border: 1px #f0e8d0 solid;
}


/* Site Menu - Temporary
 ********************************************
 ********************************************/
.header_nav {
    transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s ease!important;
}
.header_nav.inactive {
    transform: translateY(-100%);
	opacity: 0!important;
}
.header_nav.active {
    transform: translateY(0);
	opacity: 1!important;
}
.menu_trigger .elementor-icon:hover {
	border-color: #e20000!important;
}
.menu_trigger .elementor-icon {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 16px!important;
	cursor: pointer!important;
}
.menu_trigger .elementor-icon::before {
	content: 'Products';
	font-size: 18px;
	font-weight: 600;
	line-height: 1em;
	color: #092020;
}
.menu_icon a {
	margin-left: 10px!important;
}
.menu_icon a {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 50px!important;
	width: 50px!important;
	transition: border 0.3s ease;
}
.menu_icon a:hover {
	border-color: #e20000!important;
}
@media (max-width: 1024px) {
	.menu_trigger .elementor-icon::before {
		font-size: 16px;
	}
}
@media (max-width: 767px) {
	.menu_trigger .elementor-icon::before {
		content: 'Menu';
		font-size: 15px;
		padding: 0 10px!important;
	}
}
@media (max-width: 460px) {
	.menu_trigger .elementor-icon::before {
		display: none;
	}
}


/* ==========================================================================
   Mega menu
   Layout is driven by two custom properties on .megawrap:
   --menu-gap  space between columns
   --menu-col  width of one of the three columns
   ========================================================================== */

.nav {
	position: relative;
	margin: 0;
	padding: 0 30px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	list-style: none;
	z-index: 999;
}
.nav > li {
	position: static;
}

/* Top level links
   ========================================================================== */

.nav a.toplink {
	position: relative;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 14px 12px;
	font-size: 15px;
	font-weight: 500;
	color: #141414;
	z-index: 1;
	transition: color 0.3s ease;
}
.nav a.toplink:hover {
	color: #e20000;
}
.nav a.toplink > span {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
}
@media (min-width: 1366px) {
	.nav > li a.toplink > span > i {
		transition: transform 0.3s ease, opacity 0.2s ease;
	}
	.nav > li:not(#other-products_menu) a.toplink .readyicon {
		opacity: 1;
		transform: translatey(0);
	}
	.nav > li:not(#other-products_menu) a.toplink .hovericon {
		position: absolute;
		opacity: 0;
		transform: translatey(-10px);
	}
	.nav > #other-products_menu a.toplink .hovericon {
		position: absolute;
		transform: rotate(45deg);
	}
	.nav > li:not(#other-products_menu) a.toplink:hover .hovericon,
	.nav > li:not(#other-products_menu) a.toplink.active .hovericon {
		opacity: 1;
		transform: translatey(0);
	}
	.nav > #other-products_menu a.toplink:hover .hovericon,
	.nav > #other-products_menu a.toplink.active .hovericon {
		transform: rotate(0deg);
	}
	.nav > li:not(#other-products_menu) a.toplink:hover .readyicon,
	.nav > li:not(#other-products_menu) a.toplink.active .readyicon {
		opacity: 0;
		transform: translatey(10px);
	}
	.nav > #other-products_menu a.toplink:hover .readyicon,
	.nav > #other-products_menu a.toplink.active .readyicon {
		transform: rotate(45deg);
	}
}

/* Panel wrapper
   ========================================================================== */

.nav .megawrap {
	--menu-gap: 30px;
	--menu-pad: 20px;
	--menu-col: calc((100% - (var(--menu-gap) * 2)) / 3);
	--menu-height: 480px;
	box-sizing: border-box;
	position: absolute;
	width: 100%;
	left: 0;
	top: 100%;
	height: auto;
	padding: 0 20px;
	background: #fff;
	box-shadow: 0 60px 20px rgba(14,28,47,0.2);
	z-index: 100;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-10px);
	pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
}
.nav > li:hover .megawrap {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0s;
}
.nav .megamenu {
	position: relative;
	min-height: var(--menu-height);
	margin: 0;
	padding: var(--menu-pad) 0;
	list-style: none;
}
/* Vertical rule on the boundary before the preview panel */
.nav .megamenu::after {
	content: '';
	position: absolute;
	top: var(--menu-pad);
	bottom: var(--menu-pad);
	left: calc(var(--menu-col) + (var(--menu-gap) / 2));
	width: 1px;
	background: #efede6;
	pointer-events: none;
}

/* Column one, the category list
   ========================================================================== */

.nav .megamenu > li {
	position: static;
	width: var(--menu-col);
}
.nav .megamenu > li > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 8px;
	text-decoration: none;
	color: #141414;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3em;
}
.nav .megamenu > li > a:hover {
	background: #f5f1e4;
}
.nav .megamenu li a .fa-angle-right {
	flex: 0 0 auto;
	transition: transform 0.3s ease;
}
.nav .megamenu li > a:hover > .fa-angle-right {
	transform: translatex(2px);
}
/* Holds the default preview without taking a row in the list */
.nav .megamenu > li.menu_default {
	width: 0;
	height: 0;
	margin: 0;
	padding: 0;
}

/* Preview panel
   ========================================================================== */

.nav .megamenu .submenu {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 var(--menu-gap);
	align-content: start;
	position: absolute;
	top: var(--menu-pad);
	bottom: var(--menu-pad);
	left: calc(var(--menu-col) + var(--menu-gap));
	right: 0;
	max-height: calc(var(--menu-height) - (var(--menu-pad) * 2));
	margin: 0;
	padding: 0;
	background: #fff;
	list-style: none;
	visibility: hidden;
	opacity: 0;
	z-index: 2;
	transition: opacity 0.15s ease, visibility 0s linear 0.25s;
}
/* Bridges the gap so the pointer can cross into the panel */
.nav .megamenu .submenu::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(var(--menu-gap) * -1);
	width: var(--menu-gap);
}
.nav .megamenu > li:hover > .submenu,
.nav .megamenu > li.onload > .submenu {
	visibility: visible;
	opacity: 1;
	transition-delay: 0s;
}
/* Default preview steps aside as soon as a list item is hovered */
.nav .megamenu:has( > li:hover ) > li.onload:not(:hover) > .submenu {
	visibility: hidden;
	opacity: 0;
	transition-delay: 0s;
}
.nav .megamenu .submenu h3 {
	margin: 0 0 10px;
	padding: 0;
	font-size: 22px;
	font-weight: 600;
	color: #141414;
	line-height: 1.2em;
}
.nav .megamenu .submenu p {
	margin: 0 0 25px;
	font-size: 16px;
	line-height: 1.5em;
	color: #756E5A;
}
.nav .megamenu .promo_content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	height: 100%;
	padding: 30px;
	text-align: left;
}
.nav a.formbutton {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	background: #e20000;
	color: #fff;
	padding: 16px 20px;
	border-radius: 8px;
	font-weight: 600;
}
.nav .megamenu .promo_image {
	height: 100%;
	overflow: hidden;
}
.nav .megamenu .promo_image a,
.nav .megamenu .promo_image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* List mode, used by the Other Products style categories
   Children fill columns 1 and 2, preview is text only in column 3
   ========================================================================== */

.nav .megamenu_list {
	display: grid;
	grid-template-columns: var(--menu-col) var(--menu-col);
	justify-content: start;
	gap: 0 var(--menu-gap);
	align-content: start;
}
.nav .megamenu_list > li {
	width: auto;
	min-width: 0;
}
.nav .megamenu_list > li.menu_default {
	grid-column: 1 / -1;
	width: auto;
}
.nav .megamenu_list::after {
	left: calc((var(--menu-col) * 2) + var(--menu-gap) + (var(--menu-gap) / 2));
}
.nav .megamenu_list .submenu {
	left: calc((var(--menu-col) * 2) + (var(--menu-gap) * 2));
}
.nav .megamenu .submenu_stacked {
	grid-template-columns: 1fr;
	grid-template-rows: auto auto;
	align-content: start;
	padding: 0 0 0 30px;
}
.nav .megamenu .submenu_stacked .promo_image {
	grid-row: 1;
	height: auto;
	max-height: 280px;
	margin: 0 0 20px;
	border-radius: 8px;
}
.nav .megamenu .submenu_stacked .promo_image a {
	display: block;
	height: 100%;
}
.nav .megamenu .submenu_stacked .promo_image img {
	height: 100%;
}
.nav .megamenu .submenu_stacked .promo_content {
	grid-row: 2;
	justify-content: flex-start;
	height: auto;
	padding: 0;
}

/* Overlay and mobile trigger
   ========================================================================== */
.nav .nav_intro {
	display: none;
}
.overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	max-height: 0;
	background: #000;
	opacity: 0;
	z-index: -1;
	transition: opacity 0.3s ease;
}
.overlay.active {
	max-height: 100vh;
	opacity: 0.4;
}
.nav .nav_intro,
.nav .mobile_link {
	display: none;
}
.mobile_menu_header {
	display: none;
}

/* Breakpoints
   ========================================================================== */

@media (max-width: 1366px) {
	body.menu_open {
		overflow: hidden;
	}
	.overlay.active {
		cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><circle cx="16" cy="16" r="15" fill="white"/><path d="M11 11 L21 21 M21 11 L11 21" stroke="%23141414" stroke-width="2.5" stroke-linecap="round"/></svg>') 16 16, pointer;
	}

	/* Full width panel below the header, fading in from the bottom */
	.nav {
		--menu-padx: 10px;
		--menu-pady: 30px;
		--menu-side: 300px;
		--menu-top: 101px;
		box-sizing: border-box;
		position: fixed;
		left: 0;
		right: 0;
		top: var(--menu-top);
		height: 480px;
		width: 100%;
		min-width: 0;
		max-width: none;
		flex-direction: column;
		justify-content: start;
		align-items: start;
		padding: var(--menu-pady) var(--menu-padx);
		background: #fff;
		overflow: hidden;
		visibility: hidden;
		opacity: 0;
		transform: translatey(100px);
		transition: transform 0.6s ease, opacity 0.6s ease, visibility 0s linear 0.3s;
	}
	.nav.active {
		visibility: visible;
		opacity: 1;
		transform: translatey(0);
		transition-delay: 0s;
		0 0 30px rgba(0,0,0,0.2)
	}

	/* Column 1, top level categories */
	.nav > li {
		width: var(--menu-side);
	}
	.nav a.toplink {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		margin: 0;
		padding: 12px 14px;
		border-radius: 8px;
		font-size: 16px;
		font-weight: 600;
	}
	.nav > li:hover > .toplink,
	.nav > li.active > .toplink {
		background: #f5f1e4;
	}
	/* Panel opens to the right, so point the marker that way */
	.nav a.toplink .fa-angle-down {
		transform: rotate(-90deg);
	}
	.nav a.toplink:hover .readyicon,
	.nav a.toplink.active .readyicon {
		opacity: 1;
		transform: rotate(-90deg);
	}

	/* Intro block, fills the right hand columns until a category is opened */
	.nav .nav_intro {
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-align: center;
		position: absolute;
		left: calc(var(--menu-padx) + var(--menu-side));
		right: var(--menu-padx);
		top: var(--menu-pady);
		bottom: var(--menu-pady);
		width: auto;
		margin: 0;
		padding: 0 var(--menu-padx) 0 30px;
		background: #fff;
		z-index: 50;
		transition: opacity 0.2s ease, visibility 0s linear 0.2s;
	}
	.nav .nav_intro h3 {
		max-width: 520px;
		margin: 0 0 12px;
		font-size: 24px;
		font-weight: 600;
		color: #141414;
		line-height: 1.2em;
	}
	.nav .nav_intro p {
		max-width: 520px;
		margin: 0 0 40px;
		font-size: 16px;
		line-height: 1.5em;
		color: #756E5A;
	}
	.nav:has( > li:not(.nav_intro):not(.mobile_menu_header):hover ) .nav_intro,
	.nav:has( > li.active ) .nav_intro {
		visibility: hidden;
		opacity: 0;
		transition-delay: 0s;
	}

	/* Columns 2 and 3
	   The wrapper butts up against column 1 and its two columns sit flush,
	   so there is no dead strip for the pointer to cross */
	.nav .megawrap {
		--menu-padx: 10px;
		--menu-pady: 30px;
		--menu-col: 50%;
		display: flex;
		align-items: stretch;
		position: absolute;
		left: calc(var(--menu-padx) + var(--menu-side));
		right: var(--menu-padx);
		top: var(--menu-pady);
		bottom: var(--menu-pady);
		width: auto;
		height: auto;
		padding: 0;
		background: #fff;
		box-shadow: none;
		transform: none;
		transition: opacity 0.2s ease, visibility 0s linear 0.2s;
	}
	.nav > li:hover .megawrap,
	.nav > li.active .megawrap {
		visibility: visible;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		transition-delay: 0s;
	}
	/* Divider on the boundary between columns 2 and 3 */
	.nav .megawrap::after {
		content: '';
		position: absolute;
		top: 0;
		bottom: 0;
		left: var(--menu-col);
		width: 1px;
		background: #efede6;
		pointer-events: none;
	}
	.nav .megawrap:has( .megamenu_list )::after {
		display: none;
	}

	/* Column 2, child categories */
	.nav .megamenu {
		box-sizing: border-box;
		display: block;
		position: static;
		flex: 0 0 var(--menu-col);
		width: var(--menu-col);
		height: auto;
		min-height: 0;
		padding: 0 var(--menu-padx);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.nav .megamenu::after {
		display: none;
	}
	.nav .megamenu > li {
		width: 100%;
	}
	.nav .megamenu > li > a {
		padding: 12px 14px;
		border-radius: 8px;
		font-size: 16px;
		font-weight: 500;
	}

	/* List mode fills both columns with children, no preview */
	.nav .megamenu_list {
		box-sizing: border-box;
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-content: start;
		flex: 1 1 auto;
		width: auto;
		padding: 0 var(--menu-padx);
	}
	.nav .megamenu_list > li,
	.nav .megamenu_list > li.menu_default {
		width: auto;
		min-width: 0;
	}
	.nav .megamenu_list > li.menu_default,
	.nav .megamenu_list .submenu {
		display: none;
	}

	/* Column 3, image above the text */
	.nav .megamenu .submenu {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		align-content: start;
		top: 0;
		bottom: 0;
		left: var(--menu-col);
		right: 0;
		max-height: none;
		padding: 0 var(--menu-padx);
	}
	.nav .megamenu .promo_image {
		grid-row: 1;
		height: auto;
		max-height: 280px;
		margin: 0 0 20px;
		border-radius: 8px;
	}
	.nav .megamenu .promo_image a {
		height: auto;
	}
	.nav .megamenu .promo_image img {
		height: auto;
		max-height: 280px;
	}
	.nav .megamenu .promo_content,
	.nav .megamenu .submenu_text .promo_content {
		grid-row: 2;
		justify-content: flex-start;
		height: auto;
		padding: 0;
	}
	.nav .megamenu .submenu h3 {
		font-size: 18px;
	}
	.nav .megamenu .submenu p {
		margin: 0;
		font-size: 14px;
	}
	/* Shop all button is desktop only */
	.nav .megamenu .promo_content a.formbutton {
		display: none;
	}
}

@media (max-width: 1024px) {
	.nav .nav_intro {
		padding-left: var(--menu-padx);
	}
	.nav .nav_intro h3 {
		font-size: 20px;
	}
	.nav .nav_intro p {
		font-size: 14px;
	}
	.nav .megawrap::after {
		display: none;
	}
	.nav .megamenu .submenu {
		display: none;
	}
}

@media (max-width: 960px) {
	/* Original sidebar, slides in from the left with tap toggles */
	.nav {
		position: fixed;
		left: 0;
		right: auto;
		top: 0;
		height: 100vh;
		width: 85vw;
		max-width: 400px;
		padding: 0;
		overflow-y: auto;
		visibility: visible;
		opacity: 0;
		transform: translatex(-100%);
		transition: transform 0.3s ease, opacity 0.3s ease;
	}
	.nav.active {
		opacity: 1;
		transform: translatex(0);
	}
	.nav li {
		width: 100%;
	}
	.nav .nav_intro {
		display: none;
	}
	.nav .mobile_menu_header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		height: 100px;
		padding: 10px 20px;
		background: #f8f6f2;
	}
	.nav .mobile_logo {
		width: 100%;
		max-width: 120px;
	}
	.nav .mobile_logo img {
		transform: translatey(3px);
	}
	.nav .mobile_close {
		font-size: 24px;
	}
	.nav > li {
		border-bottom: 2px #E0DBCE solid;
	}
	.nav > li.active  {
		padding-bottom: 20px;
	}
	.nav a.toplink {
		width: 100%;
		padding:  16px 20px;
		border-radius: 0;
	}
	.nav > li.active a.toplink {
		color: #e20000;
	}
	.nav > li:hover > .toplink,
	.nav > li.active > .toplink {
		background: none;
	}
	.nav a.toplink .fa-angle-down,
	.nav a.toplink:hover .readyicon,
	.nav a.toplink.active .readyicon {
		transform: none;
	}
	.nav .megawrap {
		display: block;
		position: relative;
		top: unset;
		left: unset;
		right: unset;
		bottom: unset;
		width: auto;
		height: auto;
		max-height: 0;
		padding: 0;
		background: none;
		box-shadow: none;
		visibility: visible;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		overflow: hidden;
	}
	.nav .megamenu,
	.nav .megamenu_list {
		position: relative;
		display: block;
		flex: none;
		width: auto;
		height: auto;
		padding: 0;
		overflow: visible;
	}
	.nav > li.active .megawrap {
		max-height: 2000px;
		overflow: visible;
	}
	.nav .megamenu > li > a {
		padding: 12px 20px;
		border-radius: 0;
		font-size: 16px;
	}
	.nav .megamenu > li.onload {
		display: none;
	}
	.menu .logo {
		max-width: 110px;
	}
	.nav .mobile_link {
		display: block;
	}
	.nav .mobile_link .toplink .readyicon {
		font-size: 16px;
	}
}
@media (max-width: 767px) {
	.nav .mobile_menu_header {
		height: 80px;
	}
}