/* * * * * * * * * * * * * * * * * * * * * * *
 * General
 * * * * * * * * * * * * * * * * * * * * * * */
@font-face {
	font-family: 'Motherland Signature';
	src: url('../fonts/MotherlandSignature.woff2') format('woff2'),
		url('../fonts/MotherlandSignature.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

.holiday-hosting-page {
	--holiday-gold: #b39a6e;
	--py: clamp(55px, 5.5vw, 110px);
	--px: clamp(20px, 8vw, 160px);
	color: #171717;
	font-family: 'brandon-grotesque', sans-serif;
	font-size: clamp(18px, 1.15vw, 23px);
	line-height: 1.65;
}

.holiday-hosting-page *,
.holiday-hosting-page *::before,
.holiday-hosting-page *::after {
	box-sizing: border-box;
}

.holiday-hosting-page [hidden] {
	display: none !important;
}

.holiday-hosting-page .holiday-content {
	width: 100%;
	max-width: 1680px;
	margin: 0 auto;
}

.holiday-hosting-page :where(h2, h3) {
	font-family: 'brandon_printedone', 'brandon-grotesque', sans-serif !important;
	font-weight: normal !important;
	text-transform: uppercase;
	color: inherit;
}

.holiday-hosting-page h2 {
	font-size: clamp(27px, 1.85vw, 37px);
	line-height: 1.3;
	letter-spacing: 0.13em;
	margin: 0 0 12px;
}

.holiday-hosting-page p {
	font-size: inherit;
	margin: 0 0 1.4em;
}

.holiday-hosting-page .eyebrow,
.holiday-hosting-page h2 small {
	display: block;
	margin: 0 0 5px;
	color: var(--saz-primary);
	font-family: 'brandon-grotesque', sans-serif;
	font-size: clamp(14px, 1vw, 20px);
	font-weight: bold;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.holiday-hosting-page .color-gold {
	color: var(--holiday-gold);
}

.holiday-hosting-page .dark-bg {
	color: white;
}

.holiday-hosting-page .dark-bg .eyebrow,
.holiday-hosting-page .dark-bg h2 small {
	color: inherit;
}

.holiday-hosting-page .content-contain a:not(.theme-button) {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.holiday-hosting-page .content-contain a:not(.theme-button):hover {
	text-decoration-thickness: 2px;
}

.holiday-hosting-page .btn-wrap {
	gap: 15px 20px;
	margin-top: 35px;
}

.holiday-hosting-page .btn-wrap > a,
.holiday-hosting-page .btn-wrap > button {
	width: auto;
	max-width: 100%;
}

.holiday-hosting-page .theme-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 13px 25px;
	border: 2px solid var(--saz-primary);
	border-radius: 2px;
	background: var(--saz-primary);
	color: #fff;
	font-family: 'brandon-grotesque', sans-serif;
	font-size: clamp(15px, 1vw, 20px);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.holiday-hosting-page .theme-button:hover {
	background: #720d22;
	border-color: #720d22;
	color: #fff;
}

.holiday-hosting-page .theme-button.black-button {
	border-color: #fff;
	background: #000;
	color: #fff;
}

.holiday-hosting-page .theme-button.black-button:hover {
	background: #fff;
	border-color: #fff;
	color: #171717;
}

.holiday-hosting-page :where(a, button, summary):focus-visible {
	outline: 3px solid var(--holiday-gold);
	outline-offset: 5px;
}

.holiday-hosting-page .section-intro {
	text-align: center;
	margin-bottom: 40px;
}

.holiday-hosting-page .section-intro p:last-child {
	margin-bottom: 0;
}

/* * * * * * * * * * * * * * * * * * * * * * *
 * Hero and introduction
 * * * * * * * * * * * * * * * * * * * * * * */
.holiday-hosting-page .holiday-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(500px, 40vw, 800px);
	background: #24201a;
	text-align: center;
	isolation: isolate;
}

.holiday-hosting-page .hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.5);
	z-index: -1;
	pointer-events: none;
}

.holiday-hosting-page .hero-title {
	display: block;
	margin: 0 0 25px !important;
	padding: 0 !important;
	background: transparent !important;
	font-family: 'brandon_printedone', sans-serif !important;
	font-size: clamp(40px, 3.8vw, 76px) !important;
	font-weight: normal !important;
	line-height: 1.2 !important;
	letter-spacing: 0.075em;
	text-transform: uppercase;
}

.holiday-hosting-page .hero-title small {
	display: inline;
	color: #d1ac73;
	font-family: 'Motherland Signature', cursive;
	font-size: 1.1em;
	font-weight: normal;
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: none;
}

.holiday-hosting-page .hero-copy > p,
.holiday-hosting-page .cta-panel > p,
.holiday-hosting-page .holiday-bottom-cta .content-contain > p:not(.eyebrow):not(.contact-links) {
	font-weight: bold;
	font-style: italic;
	letter-spacing: 0.11em;
	text-wrap: balance;
}

.holiday-hosting-page .hero-copy > p {
	max-width: 850px;
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(20px, 1.4vw, 28px);
	line-height: 1.5;
}

.holiday-hosting-page .holiday-intro {
	background: #f0efed url('../images/holiday/holiday-bg.jpg') no-repeat center / cover;
	text-align: center;
}

.holiday-hosting-page .holiday-intro .holiday-content {
	max-width: 1460px;
}

.holiday-hosting-page .holiday-intro h2 {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}

/* * * * * * * * * * * * * * * * * * * * * * *
 * Highlights and party themes
 * * * * * * * * * * * * * * * * * * * * * * */
.holiday-hosting-page .highlights-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: start;
	gap: clamp(40px, 4vw, 80px);
}

.holiday-hosting-page .highlights-copy {
	min-width: 0;
}

.holiday-hosting-page .holiday-collage {
	display: block;
	width: 100%;
	height: auto;
}

.holiday-hosting-page .accordion-item {
	margin: 0;
	border-bottom: 1px solid #d3d3d3;
}

.holiday-hosting-page .accordion-item:last-child {
	border-bottom: 0;
}

.holiday-hosting-page .accordion-item summary {
	position: relative;
	margin: 0;
	padding: 20px 40px 20px 0;
	font-size: clamp(22px, 1.5vw, 30px);
	font-weight: bold;
	line-height: 1.3;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
}

.holiday-hosting-page .accordion-item summary::-webkit-details-marker {
	display: none;
}

.holiday-hosting-page .accordion-item summary::after {
	content: '+';
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	font-weight: normal;
}

.holiday-hosting-page .accordion-item[open] summary::after {
	content: '\2212';
}

.holiday-hosting-page .accordion-content {
	padding: 0 20px 20px 0;
}

.holiday-hosting-page .accordion-content a {
	color: var(--saz-primary) !important;
	font-weight: bold;
}

.holiday-hosting-page .party-themes {
	margin-top: 55px;
}

.holiday-hosting-page .party-themes .content-contain {
	font-size: 0.9em;
	font-weight: bold;
	line-height: 1.5;
	text-transform: uppercase;
	letter-spacing: 0.025em;
}

.holiday-hosting-page .party-themes h3 {
	margin: 0;
	font-family: 'brandon-grotesque', sans-serif !important;
	font-size: inherit;
	font-weight: bold !important;
	line-height: inherit;
	letter-spacing: inherit;
}

.holiday-hosting-page .party-theme-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	margin-top: 15px;
}

.holiday-hosting-page .party-theme-links a {
	padding: 4px 14px;
	border-radius: 30px;
	background: #e8e8e8;
	color: #333;
	font-size: 0.82em;
	line-height: 1.5;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.holiday-hosting-page .party-theme-links a:hover {
	background: var(--saz-primary);
	color: #fff;
}

/* * * * * * * * * * * * * * * * * * * * * * *
 * Planning banner, venues, and offsite catering
 * * * * * * * * * * * * * * * * * * * * * * */
.holiday-hosting-page .holiday-cta-banner {
	background: #322419 url('../images/holiday/holiday-bg-2.jpg') no-repeat center / cover;
	padding-top: clamp(65px, 7vw, 140px);
	padding-bottom: clamp(65px, 7vw, 140px);
	text-align: center;
}

.holiday-hosting-page .cta-panel {
	max-width: 1140px;
	margin: 0 auto;
	padding: clamp(35px, 4vw, 70px) clamp(20px, 3vw, 60px);
	border: 3px solid var(--saz-primary);
	background: rgba(0, 0, 0, 0.7);
}

.holiday-hosting-page .cta-panel h2 {
	font-family: 'brandon-grotesque', sans-serif !important;
	font-size: clamp(24px, 1.5vw, 30px);
	font-weight: bold !important;
	letter-spacing: 0.1em;
}

.holiday-hosting-page .cta-panel .btn-wrap {
	margin-top: 25px;
}

.holiday-hosting-page .holiday-venues {
	scroll-margin-top: 140px;
}

.holiday-hosting-page .venue-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 15px;
}

.holiday-hosting-page .venue-card {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	background: #292521;
	color: #fff;
	text-align: center;
	isolation: isolate;
}

.holiday-hosting-page .venue-card::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.25);
	z-index: -1;
	transition: background-color 0.25s ease;
}

.holiday-hosting-page .venue-card:hover::after {
	background: rgba(0, 0, 0, 0.45);
}

.holiday-hosting-page .venue-cover {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
}

.holiday-hosting-page .venue-logo {
	display: block;
	width: auto;
	height: auto;
	max-width: 52%;
	max-height: 43%;
	object-fit: contain;
	filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
}

.holiday-hosting-page .holiday-venues + .holiday-offsite {
	padding-top: 20px;
}

.holiday-hosting-page .offsite-layout {
	display: grid;
	grid-template-columns: 5fr 6.25fr;
	align-items: start;
	gap: clamp(35px, 4vw, 80px);
}

.holiday-hosting-page .offsite-layout.single-column {
	grid-template-columns: minmax(0, 1fr);
}

.holiday-hosting-page .offsite-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1.23;
	object-fit: cover;
	border-radius: 6px;
}

.holiday-hosting-page .single-column .offsite-image {
	max-width: 800px;
	margin: auto;
}

/* * * * * * * * * * * * * * * * * * * * * * *
 * Reviews, bottom CTA, and credits
 * * * * * * * * * * * * * * * * * * * * * * */
.holiday-hosting-page .holiday-closing {
	background: #300300 url('../images/holiday/holiday-bg-fade.jpg') no-repeat center top / 100% auto;
}

.holiday-hosting-page .holiday-reviews {
	padding-bottom: 0;
}

.holiday-hosting-page .holiday-reviews:last-child {
	padding-bottom: var(--py);
}

.holiday-hosting-page .holiday-reviews .swiper-wrapper {
	align-items: stretch;
}

.holiday-hosting-page .holiday-reviews .swiper:not(.swiper-initialized) .swiper-wrapper {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	transform: none !important;
}

.holiday-hosting-page .review-card {
	min-width: 0;
	height: auto;
	min-height: 390px;
	margin: 0;
	padding: clamp(25px, 1.8vw, 36px);
	border-radius: 6px;
	background: #fff;
	color: #222;
	font-size: clamp(17px, 1vw, 20px);
	line-height: 1.6;
}

.holiday-hosting-page .review-card h3 {
	margin: 0 0 10px;
	color: #171717 !important;
	font-size: 1.05em;
	font-weight: normal;
	line-height: 1.4;
	letter-spacing: 0.1em;
}

.holiday-hosting-page .review-text {
	margin: 0;
	padding: 0;
	border: 0;
	color: inherit;
	font: inherit;
	white-space: pre-line;
	overflow-wrap: anywhere;
}

.holiday-hosting-page .review-text::before,
.holiday-hosting-page .review-text::after {
	content: none;
}

.holiday-hosting-page .review-toggle {
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #222;
	font: inherit;
	font-weight: bold;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.holiday-hosting-page .review-toggle:hover {
	color: var(--saz-primary);
}

.holiday-hosting-page .review-card figcaption {
	margin-top: 30px;
}

.holiday-hosting-page .review-card cite {
	font: inherit;
	color: inherit;
}

.holiday-hosting-page .holiday-reviews .swiper-pagination {
	position: static;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 20px;
	min-height: 35px;
}

.holiday-hosting-page .holiday-reviews .swiper-pagination-lock {
	display: none;
}

.holiday-hosting-page .holiday-reviews .swiper-pagination-bullet {
	position: relative;
	width: 24px;
	height: 32px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	opacity: 1;
}

.holiday-hosting-page .holiday-reviews .swiper-pagination-bullet::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #fff;
	transform: translate(-50%, -50%);
}

.holiday-hosting-page .holiday-reviews .swiper-pagination-bullet-active::before {
	background: var(--saz-primary);
}

.holiday-hosting-page .holiday-bottom-cta {
	text-align: center;
	padding-bottom: calc(var(--py) * 1.35);
}

.holiday-hosting-page .holiday-bottom-cta .holiday-content {
	max-width: 1440px;
}

.holiday-hosting-page .holiday-bottom-cta .contact-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 15px 30px;
	margin: 45px 0;
	font-weight: bold;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.holiday-hosting-page .holiday-bottom-cta a[href^='tel:'],
.holiday-hosting-page .holiday-bottom-cta a[href^='mailto:'] {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.holiday-hosting-page .holiday-bottom-cta a[href^='tel:']::before,
.holiday-hosting-page .holiday-bottom-cta a[href^='mailto:']::before {
	content: '';
	flex: 0 0 27px;
	width: 27px;
	height: 27px;
	background: url('../images/icon-phone.png') no-repeat center / contain;
}

.holiday-hosting-page .holiday-bottom-cta a[href^='mailto:']::before {
	background-image: url('../images/icon-email.png');
}

.holiday-hosting-page .holiday-credits {
	padding-top: 30px;
	padding-bottom: 30px;
	background: #e6e6e6;
	color: var(--wpex-body-color);
	text-align: center;
}

.holiday-hosting-page .holiday-credits p {
	font-size: 18px;
	margin: 0.6em 0;
	line-height: 1.5;
	text-wrap: balance;
}

@media screen and (max-width: 600px) {
	.holiday-hosting-page .holiday-credits p {
		font-size: 16px;
	}
}

/* * * * * * * * * * * * * * * * * * * * * * *
 * Responsive
 * * * * * * * * * * * * * * * * * * * * * * */
@media screen and (max-width: 1099px) {
	.holiday-hosting-page {
		--px: clamp(20px, 5vw, 55px);
	}

	.holiday-hosting-page .highlights-layout,
	.holiday-hosting-page .offsite-layout {
		gap: 35px;
	}

	.holiday-hosting-page .holiday-reviews .swiper:not(.swiper-initialized) .swiper-wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.holiday-hosting-page .review-card {
		min-height: 340px;
	}
}

@media screen and (max-width: 1000px) {
	.holiday-hosting-page .highlights-layout,
	.holiday-hosting-page .offsite-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.holiday-hosting-page .holiday-collage {
		max-width: 600px;
		margin: 10px auto 0;
	}

	.holiday-hosting-page .offsite-image {
		max-width: 650px;
		margin: 0 auto;
	}

	.holiday-hosting-page .party-themes {
		margin-top: 30px;
	}
}

@media screen and (max-width: 800px) {
	.holiday-hosting-page .venue-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 699px) {
	.holiday-hosting-page .holiday-reviews .swiper:not(.swiper-initialized) .swiper-wrapper,
	.holiday-hosting-page .venue-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.holiday-hosting-page .venue-card {
		width: 100%;
		max-width: 500px;
		margin: auto;
		aspect-ratio: 2 / 1;
	}

	.holiday-hosting-page .holiday-hero {
		padding-top: 80px;
		padding-bottom: 90px;
	}

	.holiday-hosting-page .holiday-closing {
		background-size: auto 800px;
	}

	.holiday-hosting-page .review-card {
		min-height: 300px;
	}

	.holiday-hosting-page .holiday-bottom-cta .contact-links {
		flex-direction: column;
		align-items: center;
		letter-spacing: 0.05em;
	}
}

@media screen and (max-width: 500px) {
	.holiday-hosting-page .btn-wrap {
		flex-direction: column;
		align-items: stretch;
	}

	.holiday-hosting-page .btn-wrap > a,
	.holiday-hosting-page .btn-wrap > button {
		width: 100%;
	}

	.holiday-hosting-page h2 {
		font-size: 26px;
		letter-spacing: 0.075em;
	}
}