/* Holiday Campaign Variables */
:root {
	/* Typography */
	--holiday-text-xxl: 64px; /* Desktop hero titles */
	--holiday-text-xl: 40px; /* Mobile hero titles */
	--holiday-text-lg: 32px; /* Subheadings */
	--holiday-text-m: 24px; /* Subheadings */
	--holiday-text-sm: 18px; /* Body text */
	--holiday-text-body: 16px; /* Small text, labels */
	--holiday-text-xs: 12px; /* Small text, labels */

	/* Spacing */
	--holiday-space-sm: 16px; /* Small gaps */
	--holiday-space-md: 24px; /* Medium gaps, padding */
	--holiday-space-lg: 48px; /* Large gaps */
	--holiday-space-xl: 64px; /* xLarge gaps */
	--holiday-space-xxl: 80px; /* Section spacing */
	--holiday-space-xxxl: 120px; /* Section spacing */

	--holiday-color-indigo: #3c3f48;
	--holiday-color-neutral: #f3ede4;
	--holiday-color-brown: #ab9c86;
	--holiday-color-light-grey: #f9f5f1;
	--holiday-color-grey: #d7d5cd;
	--holiday-color-blue: #bad4f3;
}

/* Responsive */
@media (max-width: 767px) {
	:root {
		--holiday-text-xxl: 40px;
		--holiday-text-xl: 32px; /* Mobile hero titles */
		--holiday-text-m: 18px;
		--holiday-space-lg-responsive: var(--holiday-space-md); /* 24px on mobile */
		--holiday-space-xl-responsive: var(--holiday-space-lg); /* 48px on mobile */
		--holiday-space-xxl-responsive: var(--holiday-space-xl); /* 64px on mobile */
		--holiday-space-xxxl-responsive: var(--holiday-space-xxl); /* 80px on mobile */
	}
}

@media (min-width: 768px) {
	:root {
		--holiday-text-xl: 40px; /* Mobile hero titles */
		--holiday-text-m: 24px;
		--holiday-space-lg-responsive: var(--holiday-space-lg); /* 48px on desktop */
		--holiday-space-xl-responsive: var(--holiday-space-xl); /* 64px on desktop */
		--holiday-space-xxl-responsive: var(--holiday-space-xxl); /* 80px on desktop */
		--holiday-space-xxxl-responsive: var(--holiday-space-xxxl); /* 120px on desktop */
	}
}

/*
 * Text Utilities
 */

.holiday-text-serif {
	font-family: 'EB Garamond', serif;
	font-weight: 100;
}

.holiday-text-xxl {
	font-size: var(--holiday-text-xxl) !important;
	line-height: 1;
}

.holiday-text-xl {
	font-size: var(--holiday-text-xl) !important;
}

.holiday-text-lg {
	font-size: var(--holiday-text-lg) !important;
}

.holiday-text-m {
	font-size: var(--holiday-text-m) !important;
	line-height: 129%;
}

.holiday-text-sm {
	font-size: var(--holiday-text-sm) !important;
}

.holiday-text-body {
	font-size: var(--holiday-text-body) !important;
	line-height: 150%;
}

.holiday-text-xs {
	font-size: var(--holiday-text-xs) !important;
}

/*
 * Text Elements
 */

h1,
h2,
h3,
h4,
h5,
h6 {
	letter-spacing: 0.5px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.holiday-section-kicker {
	text-transform: uppercase;
	font-size: var(--holiday-text-xs);
	margin-bottom: var(--holiday-space-sm);
}

.holiday-product-grid-header {
	align-items: center;
	border-bottom: 1px solid #323132;
	display: flex;
	font-weight: 300;
	padding-bottom: var(--holiday-space-sm);
	padding-right: 8px;
}

.holiday-product-grid-header:before {
	content: '';
	background-color: #323132;
	border-radius: 50%;
	display: block;
	height: 15px;
	margin-right: 15px;
	width: 15px;
}

/*
 * Spacing Utilities
 */

.holiday-mb-md-static {
	margin-bottom: var(--holiday-space-md);
}

.holiday-mb-lg {
	margin-bottom: var(--holiday-space-lg-responsive);
}

.holiday-pt-sm-static {
	padding-top: var(--holiday-space-sm);
}

.holiday-mb-lg-static {
	margin-bottom: var(--holiday-space-lg);
}

.holiday-pt-lg-static {
	padding-top: var(--holiday-space-lg);
}

.holiday-pb-lg-static {
	padding-bottom: var(--holiday-space-lg);
}

.holiday-pb-xl {
	padding-bottom: var(--holiday-space-xl-responsive);
}

.holiday-pt-xl {
	padding-top: var(--holiday-space-xl-responsive);
}

.holiday-pt-xxl {
	padding-top: var(--holiday-space-xxl-responsive);
}

.holiday-pb-xxl {
	padding-bottom: var(--holiday-space-xxl-responsive);
}

.holiday-pt-xxxl {
	padding-top: var(--holiday-space-xxxl);
}

.holiday-pb-xxxl {
	padding-bottom: var(--holiday-space-xxxl);
}

.holiday-mb-responsive-lg {
	margin-bottom: var(--holiday-space-lg-responsive);
}

/*
 * Container Utilities
 */

@media (max-width: 991px) {
	.max-width-lg {
		max-width: none;
	}
}

/*
 * Color Utilities
 */

.holiday-bg-indigo {
	background-color: var(--holiday-color-indigo);
	color: #ffffff;
}

.holiday-bg-neutral {
	background-color: var(--holiday-color-neutral);
}

.holiday-bg-light-grey {
	background-color: var(--holiday-color-light-grey);
}

.holiday-bg-grey {
	background-color: var(--holiday-color-grey);
}

.holiday-bg-brown {
	background-color: var(--holiday-color-brown);
}

.holiday-bg-blue {
	background-color: var(--holiday-color-blue);
}

/*
 * Section Styles
 */

.holiday-section-padding {
	padding-top: var(--holiday-space-xxxl-responsive);
	padding-bottom: var(--holiday-space-xxl-responsive);
}

@media (max-width: 767px) {
	.holiday-section > .container {
		max-width: none;
		padding: 0;
	}

	.holiday-section > .container > .row {
		margin-left: 0;
		margin-right: 0;
	}

	.holiday-section > .container > .row > div[class*='col-'] {
		padding-left: 0;
		padding-right: 0;
	}

	.holiday-section__header-wrap {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/*
 * Header Component - Card Grid
 */
.lds-card-grid .row {
	gap: 10px;
}

.lds-card-grid .row .col {
	padding: 0;
}

.lds-card-grid .row .col img {
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.lds-image-card {
	height: 100%;
}

.lds-image-card__content-wrap {
	align-items: center;
	display: flex;
	flex-direction: column;
	grid-area: 1/1;
	justify-content: center;
}

.lds-image-card__content {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: space-between;
	text-align: center;
	width: 100%;
}

.lds-image-card__content .lds-image-card__header {
	align-items: center;
	display: flex;
	flex: 1;
	margin: 0;
}

.lds-image-card__content .btn {
	margin-top: auto;
}

@media (max-width: 1199px) {
	.lds-card-grid {
		max-width: none;
		padding: 0;
	}

	.lds-card-grid .row {
		padding: 0 20px;
	}

	.lds-card-grid .row .col {
		flex: 0 0 300px;
	}

	.lds-card-grid.lds-card-grid-count-3 > .row {
		flex-wrap: nowrap;
		margin-left: 0;
		margin-right: 0;
		overflow: scroll;
		scroll-snap-type: x mandatory;
		scroll-behavior: smooth;
		scroll-padding-left: 20px;
		scroll-padding-right: 20px;
	}
}

@media (min-width: 1200px) {
	.lds-card-grid .row .col {
		flex: 1 1 0;
	}
}

/*
 * Page Section Intros - Carousels
 */

.holiday-carousel {
	gap: var(--holiday-space-sm);
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scroll-padding-left: 20px;
	scroll-padding-right: 20px;
	padding: 0 20px;
}

.holiday-carousel__slide {
	flex: 0 0 82%;
	scroll-snap-align: start;
}

.holiday-carousel-control {
	display: flex;
	align-items: center;
}

@media (min-width: 768px) {
	.holiday-carousel {
		scroll-padding-left: 0;
		scroll-padding-right: 0;
		padding: 0;
	}

	.holiday-carousel__slide {
		flex: 0 0 100%;
	}
}

.holiday-carousel-controls .icon {
	width: 35px;
	height: 35px;
}

.holiday-carousel-control {
	background: transparent;
	border: 2px solid transparent;
	border-radius: 4px;
	padding: 8px;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.holiday-carousel-control:focus-visible {
	outline: none;
	border-color: #ffffff;
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5);
}

.holiday-carousel-control:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/*
 * Indigo Scrollable Product Grids
 */
.holiday-scrollable-product-grid {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scroll-padding-left: 20px;
	scroll-padding-right: 20px;
	padding: 0 20px;
	gap: var(--holiday-space-md);
	font-size: 14px;
}

.holiday-scrollable-product-grid .product-color-picker {
	display: none;
}

.holiday-scrollable-product-grid .woocommerce-loop-product__subtitle,
.holiday-scrollable-product-grid .woocommerce-loop-product__title {
	letter-spacing: 0;
	font-size: 14px;
	line-height: 1.5;
}

.holiday-scrollable-product-grid .product-title-wrapper {
	border: none;
	flex-direction: column;
	padding: 16px 0 0;
}

.holiday-scrollable-product-grid li {
	padding: 0;
	flex: 1 0 calc(25% - 20px);
	scroll-snap-align: start;
	margin: 0;
}

.holiday-scrollable-product-grid .product,
.holiday-scrollable-product-grid .product img,
.holiday-scrollable-product-grid .product a {
	border-radius: 3px;
}

.holiday-scrollable-product-grid .product a {
	border: 1px solid #cecece;
	padding: var(--holiday-space-sm);
}

.holiday-scrollable-product-grid .badge {
	font-size: var(--holiday-text-xs);
	top: 8px;
	left: 8px;
}

.holiday-scrollable-product-grid .product .price {
	padding: 0;
	text-align: left;
}

.holiday-scrollable-product-grid .lds-image-card {
	height: auto;
}

.holiday-scrollable-product-grid .lds-image-card__content-wrap {
	z-index: 2;
}

.holiday-scrollable-product-grid .lds-image-card__image {
	height: 100%;
	position: absolute;
	width: 100%;
}

.holiday-scrollable-product-grid .lds-image-card__image img {
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

/* Improve focus visibility for product links */
.holiday-scrollable-product-grid .product a:focus-visible {
	border-color: #323132;
	outline: none;
}

.holiday-scrollable-product-grid .lds-image-card:has(.stretched-link:focus-visible) {
	text-decoration: underline;
	text-decoration-color: #fff;
	text-decoration-thickness: 1px;
}

@media (max-width: 991px) {
	.holiday-scrollable-product-grid-container {
		max-width: none;
		padding: 0;
	}

	.holiday-scrollable-product-grid li {
		min-width: 268px;
	}
}

@media (min-width: 768px) {
	.holiday-scrollable-product-grid {
		scroll-padding-left: 0;
		scroll-padding-right: 0;
		padding: 0;
	}
}

/*
 * Gift Card Hero Blade
 */
.gift-card-hero-blade h2 {
	text-wrap: balance;
}

@media (max-width: 991px) {
	.gift-card-hero-blade img {
		margin-bottom: var(--holiday-space-xxl);
	}
}
