/* Buzz-E-Brations new location template (tpl-spec-buzz-e-brations-new.php).
   BEM, scoped under .bez. Loaded only on this template.
   First hardcoded pass of docs/Web Page Wireframe - Desktop/Mobile.pdf;
   spacing/color values need browser tuning. */

.bez {
	/* Color control points (→ future ACF color fields where promised) */
	--bez-navy: #1b2a6b;
	--bez-navy-2: #242e81;
	--bez-blue-deep: #0a3f86;
	--bez-blue: #1470c5;
	--bez-sky: #00c3ff;
	--bez-pink: #ff2c9c;
	--bez-orange: #ff9e1b;
	--bez-yellow: #ffd200;
	--bez-green: #3aa04f;
	--bez-green-deep: #14424f;
	--bez-mint: #e2f3e8;
	--bez-paper: #f5f5f2;
	--bez-ray-a: rgba(255, 255, 255, 0);
	--bez-ray-b: rgba(120, 200, 255, 0.18);
	--bez-display: 'Luckiest Guy', 'Comic Sans MS', 'Source Sans Pro', sans-serif;

	background: linear-gradient(180deg,
		var(--bez-blue-deep) 0%,
		var(--bez-blue) 14%,
		var(--bez-blue-deep) 42%,
		#0d3168 75%,
		#102f56 100%);
	padding-top: 0 !important;
	padding-bottom: 0;
	overflow-x: clip;
}
/* :where() keeps specificity at 0 so single-class image rules can size images */
:where(.bez) img {
	max-width: 100%;
	height: auto;
}
/* The theme's .content-wrap p forces 1.3125rem/1.4 on every paragraph;
   inside this template each component sizes its own text */
.bez p {
	font-size: inherit;
	line-height: inherit;
}
.bez-container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 1.25rem;
	position: relative;
}
.bez-section {
	padding: 3.125rem 0;
	position: relative;
}
/* .bez-section's padding/position beat the theme's .sr-only clip technique
   (position:relative invalidates clip), leaving blue in-flow bands.
   TODO hide fully for now; restore accessible sr-only in the SR text pass */
.bez-section.sr-only {
	display: none;
}
/* Green half of the page — sections carry the class explicitly */
.bez-section--green {
	background-color: var(--bez-green);
}
.bez-faqs--party {
	background-color: #004975;
}
/* Pricing image section (visually replaces Field Trip Packages + Package
   Upgrades); opens the green half continuing the disclaimer's fade */
.bez-group-pricing {
	/*background: linear-gradient(180deg, var(--bez-green-deep) 0%, #2a7d4b 60%, var(--bez-green) 100%);*/
	padding-top: 0;
	padding-bottom: 0;
}
.bez-group-pricing__image {
	display: block;
	margin: 0 auto;
}
/* Blue → green transition begins inside the disclaimer section, before the divider */
.bez-disclaimer {
	background: linear-gradient(180deg, rgba(20, 66, 79, 0) 0%, var(--bez-green-deep) 100%);
	padding-bottom: 5.625rem;
}
.bez-fieldtrip-downloads {
	padding-bottom: 6.875rem;
}

/* ---------------------------------------------------------------- Shared */

.bez-bubble {
	display: inline-block;
	font-family: var(--bez-display);
	font-size: clamp(1.4rem, 2.2vw, 2rem);
	line-height: 1;
	text-transform: uppercase;
	color: #fff;
	background: linear-gradient(180deg, #3d8fd6, #1c60ab);
	border: 3px solid #f2f6fa;
	border-radius: 12px;
	padding: 1.125rem 1.75rem 0.75rem;
	transform: rotate(-2deg);
	position: relative;
	z-index: 2;
	margin: 0 0 -1.125rem -2rem;
}
.bez-panel {
	background-color: #fff;
	border-radius: 18px;
	padding: 3.5rem 3rem 2.5rem;
	position: relative;
	font-size: 1rem;
	line-height: 1.5;
}
.bez-panel--outline {
	background-color: transparent;
	border: 3px solid rgba(255, 255, 255, 0.9);
	border-radius: 18px;
	padding: 3rem 2.5rem;
}

/* Art-text placeholders for missing image assets (TODO: swap for art) */
.bez-art {
	font-family: var(--bez-display);
	text-transform: uppercase;
	line-height: 0.95;
	display: inline-block;
	text-shadow:
		2px 2px 0 var(--bez-navy), -2px 2px 0 var(--bez-navy),
		2px -2px 0 var(--bez-navy), -2px -2px 0 var(--bez-navy),
		4px 6px 10px rgba(0, 0, 0, 0.4);
}
.bez-art--ultimate {
	color: var(--bez-yellow);
	font-size: clamp(1.6rem, 2.6vw, 2.4rem);
}
.bez-art--fieldtrip {
	color: var(--bez-yellow);
	font-size: clamp(2.2rem, 4.5vw, 3.6rem);
	text-align: center;
	display: block;
	margin: 0 auto 2.25rem;
}
.bez-art--fieldtrip span {
	display: block;
	color: var(--bez-orange);
}
.bez-art--hummin { color: var(--bez-yellow); font-size: 1.5rem; }
.bez-art--hive   { color: var(--bez-sky); font-size: 1.5rem; }
.bez-art--honey  { color: var(--bez-pink); font-size: 1.5rem; }

/* Value lists shared by the desktop table and the mobile cards */
.bez-values {
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--bez-display);
	font-size: 0.95rem;
	letter-spacing: 0.03em;
	line-height: 1.25;
	text-transform: uppercase;
}
.bez-values__highlight {
	margin-bottom: 2px;
}
.bez-values__highlight-image {
	max-width: 4.5rem;
}
.bez-check {
	display: inline-block;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: var(--pkg, var(--bez-navy));
	position: relative;
	vertical-align: middle;
	margin: 0.2rem 0;
}
.bez-check::after {
	content: '\2713';
	color: #fff;
	font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	position: absolute;
	inset: 0;
	line-height: 22px;
	text-align: center;
}

/* Question-mark badge: white ? on a navy disc */
.bez-qmark {
	display: inline-block;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background-color: var(--bez-navy-2);
	color: #fff;
	font-family: var(--bez-display);
	font-size: 1.05rem;
	line-height: 30px;
	text-align: center;
	vertical-align: middle;
}
/* Big hint icon, inside out: navy disc, lighter blue ring,
   thick deep navy ring, thin white outer ring + stem to the text */
.bez-qmark--xl {
	position: relative;
	width: 3rem;
	height: 3rem;
	padding: 0;
	background-color: var(--bez-navy-2);
	color: #fff;
	font-size: 2.4rem;
	line-height: 3.5rem;
	box-shadow:
		0 0 0 3px #6c86dd,
		0 0 0 10px #10173a,
		0 0 0 12px #fff;
}
.bez-qmark--xl::after {
	content: '';
	position: absolute;
	top: calc(100% + 0.8rem);
	left: calc(50% - 1px);
	width: 2px;
	height: 1.1rem;
	background-color: #fff;
}

/* Per-package accent color */
.bez-pkg--customized { --pkg: var(--bez-pink); }
.bez-pkg--deluxe     { --pkg: var(--bez-navy-2); }
.bez-pkg--ultimate   { --pkg: var(--bez-orange); }

/* ------------------------------------------------------------- Tooltips */

.bez-tip {
	position: absolute;
	right: 1rem;
	top: 2.5rem;
	display: inline-block;
}
.bez-tip__trigger {
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	line-height: 0;
	border-radius: 50%;
}
/* On the navy blocks the badge is smaller and carries a thin light ring */
.bez-pkg-table__group .bez-qmark,
.bez-pkg-card__labels .bez-qmark {
	box-shadow: 0 0 0 1.5px #e6efff;
	width: 20px;
	height: 20px;
	font-size: 0.8rem;
	line-height: 23px;
	border-radius: 50%;
}
.bez-tip__panel {
	position: absolute;
	top: calc(100% + -0.5rem);
	left: 50%;
	transform: translateX(-50%);
	width: min(340px, 82vw);
	background-color: var(--bez-navy-2);
	color: #fff;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	font-family: 'Source Sans Pro', sans-serif;
	font-size: 15px;
	line-height: 1.4;
	text-align: left;
	text-transform: none;
	letter-spacing: 0;
	z-index: 1000;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}
.bez-tip__panel p {
	margin: 0 0 0.6em;
}
.bez-tip__panel p:last-child {
	margin-bottom: 0;
}
.bez-tip__panel::before {
	content: '';
	position: absolute;
	bottom: 100%;
	left: calc(50% - 10px);
	border: 10px solid transparent;
	border-bottom-color: var(--bez-navy-2);
	border-top-width: 0;
}
.bez-tip__panel[hidden] {
	display: none;
}
/* Tabs hug the viewport's left edge: open their panels rightward */
.bez-pkg-table__tab .bez-tip__panel,
.bez-pkg-card__labels .bez-tip__panel {
	top: 0;
	left: 2.5rem;
	transform: none;
}
.bez-pkg-table__tab .bez-tip__panel::before,
.bez-pkg-card__labels .bez-tip__panel::before {
	left: 3px;
}

/* ----------------------------------------------------------------- Hero */

/* Rays span the whole top of the page: hero through the Book a Party CTA */
.bez-top {
	position: relative;
	background: linear-gradient(180deg, #014388 0%, #02afdf 32%, #004580, #004975);
}
.bez-top::before {
	content: '';
	position: absolute;
	inset: 0;
	/* center sits at the middle of the packages table, per the mockup
	   (33% of the hero→CTA span; re-measure if section content changes) */
	background: repeating-conic-gradient(from -90deg at 50% 33%,
		var(--bez-ray-a) 0deg 5deg,
		var(--bez-ray-b) 5deg 10deg);
	-webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 50%);
	mask-image: linear-gradient(180deg, #000 0%, transparent 50%);
	pointer-events: none;
}
.bez-hero {
	position: relative;
	text-align: center;
	padding: 0;
}
.bez-hero__art {
	position: relative;
	width: min(1500px, 96vw);
}

/* ------------------------------------------------------- Party packages */

.bez-packages {
	padding: 1.25rem 0 4.375rem;
}
.bez-info-prompt {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	color: #fff;
	font-family: var(--bez-display);
	font-size: 0.9rem;
	line-height: 1.15;
	text-transform: uppercase;
	margin: 0 0 1.125rem;
}
.bez-info-prompt--mobile {
	display: none;
}
.bez-pkg-table__corner .bez-info-prompt--in-table {
	position: absolute;
	top: -2.75rem; /* level with the straddling title art of the other columns */
	left: 0;
	right: 3.5rem; /* clears the vertical Packages tab */
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 2.25rem;
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.15;
}

/* Desktop comparison table.
   The white panel only covers the three package columns; the labels column
   sits outside it, on the page background, and its navy blocks bleed off
   the left edge of the viewport. */
.bez-pkg-table-wrap {
	margin-left: 0;
}
.bez-pkg-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
}
/* Foundation paints table/thead/tr (and stripes even rows);
   the panel is drawn per-cell instead */
table.bez-pkg-table,
.bez-pkg-table thead,
.bez-pkg-table tbody,
.bez-pkg-table tr,
.bez-pkg-table tr:nth-of-type(even),
.bez-pkg-table tr:nth-of-type(odd),
.bez-pkg-table tr.even,
.bez-pkg-table tr.alt,
.bez-pkg-table__corner {
	background-color: transparent;
}
table.bez-pkg-table {
	border: 0;
}
.bez-pkg-table__corner {
	width: 260px;
	position: relative;
	vertical-align: top;
}
.bez-pkg-table__packages-tab {
	position: absolute;
	right: 0;
	bottom: 0.25rem;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	white-space: nowrap;
	font-family: var(--bez-display);
	font-size: 0.675rem;
	text-transform: uppercase;
	color: #fff;
	background-color: var(--bez-navy);
	border: 2px solid #6c86dd;
	/* rotate(180deg) flips physical sides: rounded-right renders as rounded-left */
	border-left: 0;
	border-radius: 0 14px 14px 0;
	padding: 1rem 0.375rem;
	letter-spacing: 0.08em;
	z-index: 2;
}
.bez-pkg-table__head {
	position: relative;
	background-color: #fff;
	padding: 1.5rem 0.875rem 0.75rem;
	text-align: center;
	vertical-align: bottom;
}
.bez-pkg-table__head:first-of-type {
	border-top-left-radius: 20px;
}
.bez-pkg-table__head:last-of-type {
	border-top-right-radius: 20px;
}
/* Title art straddles the panel's top edge */
.bez-pkg-table__title-slot {
	position: absolute;
	bottom: calc(100% - 2.4rem);
	left: 0;
	right: 0;
	text-align: center;
}
.bez-pkg-table__title {
	max-width: 230px;
	display: inline-block;
}
.bez-pkg-table__tagline {
	font-family: var(--bez-display);
	text-transform: uppercase;
	color: var(--pkg);
	font-size: 1.05rem;
	margin: 0;
	line-height: 1.15;
}
.bez-pkg-table__tagline::before {
	content: '';
	display: block;
	width: 55%;
	height: 3px;
	margin: 0 auto 0.5rem;
	background-image: repeating-linear-gradient(90deg, #44549e 0 3px, transparent 3px 7px);
}
.bez-pkg-table__note {
	display: block;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	margin-top: 0.125rem;
	line-height: 1.3;
}
/* Header ? badges slightly smaller than the standard 26px */
.bez-pkg-table__tagline .bez-qmark {
	width: 22px;
	height: 22px;
	font-size: 0.9rem;
	line-height: 25px;
}
.bez-pkg-table__row > th,
.bez-pkg-table__row > td {
	padding: 0;
	text-align: center;
	vertical-align: middle;
}
/* Row separator as a background line (not border-top) so it can stop
   1rem short of the white panel's outer left/right edges */
.bez-pkg-table__row > td {
	--row-line-color: #2a3a8c;
	--row-line-width: 1px;
	background-color: #fff;
	background-image: linear-gradient(var(--row-line-color), var(--row-line-color));
	background-repeat: no-repeat;
	background-size: 100% var(--row-line-width);
	background-position: 0 0;
}
.bez-pkg-table__row > td:first-of-type {
	background-position: 1rem 0;
	background-size: calc(100% - 1rem) var(--row-line-width);
}
.bez-pkg-table__row > td:last-of-type {
	background-size: calc(100% - 1rem) var(--row-line-width);
}
/* Single full-width cell (add-ons row): inset both sides */
.bez-pkg-table__row > td:first-of-type:last-of-type {
	background-size: calc(100% - 2rem) var(--row-line-width);
}
/* Price row: orange top line, and the next row's top line is its bottom */
.bez-pkg-table__row--price > td,
.bez-pkg-table__row--price + .bez-pkg-table__row > td {
	--row-line-color: var(--bez-orange);
	--row-line-width: 2px;
}
.bez-pkg-table__row > td + td,
.bez-pkg-table__head + .bez-pkg-table__head {
	border-left: 2px dotted #ff6a45;
}
/* Group block: navy backdrop, rounded left, running flush into the white panel */
.bez-pkg-table__group {
	position: relative;
	text-align: left;
}
.bez-pkg-table__group::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: 0.5rem;
	bottom: 0.5rem;
	background-color: var(--bez-navy);
	border: 2px solid #6c86dd;
	border-right: 0;
	border-radius: 14px 0 0 14px;
}
/* Dashed separator spanning each block top to bottom */
.bez-pkg-table__group::after {
	content: '';
	position: absolute;
	left: 2.5rem;
	/* 0.5rem clearance from the navy block's top/bottom borders */
	top: calc(1rem + 2px);
	bottom: calc(1rem + 2px);
	border-left: 2px dashed rgba(255, 233, 150, 0.75);
}
.bez-pkg-table__tab {
	position: static;
}
.bez-pkg-table__tab .bez-tip {
	position: absolute;
	top: 0.875rem;
	right: 0.375rem;
	z-index: 2;
}
.bez-pkg-table__tab-label {
	position: absolute;
	left: 0.8rem; /* centered in the band before the dashed separator */
	top: 50%;
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	white-space: nowrap;
	font-family: var(--bez-display);
	text-transform: uppercase;
	color: #fff;
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	z-index: 1;
}
.bez-pkg-table__items {
	position: relative;
	display: block;
	margin: 0.5rem 2.25rem 0.5rem 2.5rem;
	padding: 0.5rem 0 0.5rem 1rem;
}
.bez-pkg-table__items .bez-values {
	color: var(--bez-sky);
	font-size: 0.82rem;
	text-align: left;
}
/* Secondary-block divider, two contexts:
   on navy blocks (group/card labels) a dashed white border-top */
.bez-values--secondary {
	border-top: 1px dashed rgba(255, 255, 255, 0.4);
	margin-top: 0.5rem;
	padding-top: 0.5rem;
}
/* …in white cells a background line matching the row separators:
   solid navy, continuous across the dotted column dividers, inset 1rem
   only at the white panel's outer left/right edges */
td .bez-values--secondary {
	border-top: 0;
	background-image: linear-gradient(#2a3a8c, #2a3a8c);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 0;
}
td:first-of-type .bez-values--secondary {
	background-position: 1rem 0;
	background-size: calc(100% - 1rem) 1px;
}
td:last-of-type .bez-values--secondary {
	background-size: calc(100% - 1rem) 1px;
}
.bez-pkg-table td .bez-values {
	color: var(--pkg);
}
.bez-pkg-price {
	font-family: var(--bez-display);
	color: var(--pkg);
	margin: 0 0 0.625rem;
}
.bez-pkg-table__row--price > td {
	padding-top: 1.5rem;
	padding-bottom: 0.5rem;
}
.bez-pkg-table__row--price .bez-pkg-price {font-size: 2.2rem;}

.bez-btn-select {
	/* Sliced pill, same recipe as custom.css .features-grid__heading:
	   caps sized by width (up to half each), center strip on ::before
	   filling exactly between them */
	--btn-cap-width: min(50.5%, 8.5rem);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-image:
		url(../images/buttons/btn-bg-left.webp),
		url(../images/buttons/btn-bg-right.webp);
	background-position: left center, right center;
	background-repeat: no-repeat;
	background-size: var(--btn-cap-width) 100%, var(--btn-cap-width) 100%;
	isolation: isolate;
	position: relative;
	/* extra bottom padding compensates the drop shadow baked into the pill art */
	padding: 0.375rem 0.5rem 0.5rem;
	line-height: 0;
	border-radius: 1rem;
	transition: all 0.3s ease-in-out;
}
.bez-btn-select::before {
	content: '';
	position: absolute;
	top: 0;
	right: var(--btn-cap-width);
	bottom: 0;
	left: var(--btn-cap-width);
	z-index: -1;
	background: url(../images/buttons/btn-bg-center.webp) center / auto 100% repeat-x;
	pointer-events: none;
}
.bez-btn-select img {
	width: 110px;
}
.bez-btn-select:hover,
.bez-btn-select:focus {
	filter: brightness(1.08);
	transform: scale(1.05);
}
/* Add-ons row */
.bez-pkg-table__upgrades-art {
	display: block;
	max-width: 150px;
	margin: 0.625rem auto;
}
.bez-pkg-table__addons {
	text-align: center;
	border-bottom-left-radius: 20px;
	border-bottom-right-radius: 20px;
}
.bez-pkg-table__row > .bez-pkg-table__addons {
	padding: 1rem 0.5rem;
}
.bez .bez-pkg-table__addons-lead {
	font-family: var(--bez-display);
	font-size: 1.125rem;
	text-transform: uppercase;
	color: var(--bez-navy);
	display: inline-block;
	margin: 0;
}
.bez-pkg-table__addons-lead::after {
	content: '';
	display: block;
	width: 50%;
	height: 3px;
	margin: 0.25rem auto 0;
	background-color: var(--bez-yellow);
}
/* BYOB art occupies the first package column; small text beside it */
.bez-byob {
	display: flex;
	align-items: center;
	gap: 1.875rem;
	text-align: left;
	padding-left: 1.5rem;
}
.bez-byob__art {
	flex: 0 0 30%;
	max-width: 30%;
}
/* .bez prefix outranks the theme's 21px paragraph rule */
.bez .bez-byob__text {
	font-style: italic;
	font-size: 0.875rem;
	line-height: 1.5;
	color: #333;
	max-width: 40em;
	margin: 0;
}

/* Mobile stacked cards */
.bez-pkg-cards {
	display: none;
}
.bez-pkg-card {
	margin-bottom: 3.75rem;
}
.bez-pkg-card__header {
	text-align: center;
	margin-bottom: -1.625rem;
	position: relative;
	z-index: 2;
}
.bez-pkg-card__title {
	max-width: 270px;
}
.bez-pkg-card__panel {
	background-color: #fff;
	border-radius: 20px;
	padding: 2.75rem 1.125rem 1.625rem;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
	text-align: center;
}
.bez-pkg-card__tagline {
	font-family: var(--bez-display);
	text-transform: uppercase;
	color: var(--pkg);
	font-size: 1.1rem;
	line-height: 1.3;
	margin: 0 0 1.25rem;
}
.bez-pkg-card__note {
	display: block;
	font-size: 1rem;
	margin-top: 0.125rem;
}
.bez-pkg-card__group,
.bez-pkg-card__price-row {
	display: grid;
	grid-template-columns: minmax(120px, 42%) 1fr;
	gap: 0.875rem;
	align-items: center;
	border-top: 1px dashed #e2a0a0;
	padding: 0.75rem 0;
	text-align: left;
}
.bez-pkg-card__labels {
	background-color: var(--bez-navy);
	border-radius: 10px;
	padding: 0.75rem 0.75rem 0.625rem 1.875rem;
	position: relative;
}
.bez-pkg-card__price-row .bez-pkg-card__labels {
	padding: 1rem 0.75rem 1rem 3.5rem;
}
.bez-pkg-card__labels .bez-tip {
	position: absolute;
	left: -2rem;
	top: 50%;
	margin-top: -0.8125rem;
}
.bez-pkg-card__tab-label {
	display: block;
	font-family: var(--bez-display);
	text-transform: uppercase;
	color: var(--bez-yellow);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	margin-bottom: 0.25rem;
}
.bez-pkg-card__labels .bez-values {
	color: var(--bez-sky);
	font-size: 0.72rem;
	line-height: 1.5;
}
.bez-pkg-card__values {
	text-align: center;
}
.bez-pkg-card__values .bez-values {
	color: var(--pkg);
	font-size: 1.25rem;
	line-height: 1.3;
}
.bez-pkg-card__values .bez-values li {
	margin-bottom: 5px;
}
.bez-pkg-card__price-label {
	display: block;
	color: #fff;
	font-family: var(--bez-display);
	font-size: 0.75rem;
	text-transform: uppercase;
	color: var(--bez-sky);
}
.bez-pkg-card__price-row .bez-pkg-price {
	text-align: center;
	margin: 0;
}
.bez-pkg-card .bez-btn-select {
	margin-top: 1.125rem;
}
.bez-pkg-card--addons .bez-pkg-card__panel {
	padding-top: 1.625rem;
}
.bez-pkg-card--addons .bez-byob__text {
	margin: 0.875rem 0 1.125rem;
	text-align: center;
}

@media screen and (max-width: 1023px) {
	.bez-panel {
		padding: 2rem 1.5rem 1rem;
	}
	.bez-bubble {
		margin-left: -1rem;
	}
	.bez-top::before {
		inset: 0 0 auto;
		height: var(--bez-mobile-rays-height, 100%);
		background: repeating-conic-gradient(from -90deg at 50% 80vh,
			var(--bez-ray-a) 0deg 5deg,
			var(--bez-ray-b) 5deg 10deg);
		-webkit-mask-image: linear-gradient(180deg,
			#000 0 calc(100% - 8rem),
			transparent 100%);
		mask-image: linear-gradient(180deg,
			#000 0 calc(100% - 8rem),
			transparent 100%);
	}
	body.location-template-tpl-spec-buzz-e-brations #package-price-section {
		padding-top: 0;
		margin-top: 0;
	}
	.bez-pkg-table-wrap {
		display: none;
	}
	.bez-pkg-cards {
		display: block;
		max-width: 560px;
		margin: 0 auto;
	}
	.bez-pkg-card {
		margin-bottom: 6rem;
	}
	.bez-pkg-card__header {
		margin-left: 40%;
	}
	.bez-pkg-card__title {
		max-width: 55vw;
	}
	.bez-info-prompt--mobile {
		display: flex;
		position: absolute;
		right: calc(60% + 2.25rem);
		top: -3rem;
		left: 0;
		width: 8rem;
		flex-direction: column;
		justify-content: flex-end;
		font-size: 1.2rem;
		margin: 0;
		text-align: center;
		z-index: 2;
	}
	.bez-pkg-card__panel--package {
		background-color: transparent;
		border-radius: 0;
		padding-right: 0;
		padding-left: 0;
		box-shadow: none;
		position: relative;
		isolation: isolate;
	}
	.bez-pkg-card__panel--package::before {
		content: '';
		position: absolute;
		inset: 0 0 0 40%;
		z-index: -1;
		background-color: #fff;
		border-radius: 20px;
		box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
	}
	.bez-pkg-card__packages-tab {
		position: absolute;
		right: 60%;
		top: 0.5rem;
		writing-mode: vertical-rl;
		transform: rotate(180deg);
		white-space: nowrap;
		font-family: var(--bez-display);
		font-size: 0.675rem;
		text-transform: uppercase;
		color: #fff;
		background-color: var(--bez-navy);
		border: 2px solid #6c86dd;
		border-left: 0;
		border-radius: 0 14px 14px 0;
		padding: 1rem 0.375rem;
		letter-spacing: 0.08em;
		z-index: 2;
	}
	.bez-pkg-card__tagline {
		font-size: 1.5rem;
		margin-left: 40%;
		padding-right: 1.125rem;
		padding-left: 1.125rem;
	}
	.bez-pkg-card__group,
	.bez-pkg-card__price-row {
		grid-template-columns: 40% 60%;
		gap: 0;
		border-top: 0;
	}
	.bez-pkg-card__group {
		position: relative;
	}
	.bez-pkg-card__group::before {
		content: '';
		position: absolute;
		top: 0;
		right: 1rem;
		width: calc(60% - 2rem);
		height: 1px;
		background-color: #2a3a8c;
	}
	.bez-pkg-card__labels {
		background-color: var(--bez-navy);
		border: 2px solid #6c86dd;
		border-right: 0;
		border-radius: 14px 0 0 14px;
		padding-left: 3.5rem;
	}
	.bez-pkg-card__labels .bez-tip {
		left: -1rem;
	}
	.bez-pkg-card__labels::after {
		content: '';
		position: absolute;
		left: 2.5rem;
		top: calc(0.5rem + 2px);
		bottom: calc(0.5rem + 2px);
		border-left: 2px dashed rgba(255, 233, 150, 0.75);
	}
	.bez-pkg-card__tab-label {
		position: absolute;
		left: 0.8rem;
		top: 50%;
		font-size: 1rem;
		transform: translateY(-50%) rotate(180deg);
		writing-mode: vertical-rl;
		white-space: nowrap;
		color: #fff;
		margin-bottom: 0;
		z-index: 1;
	}
	.bez-pkg-card__values {
		flex-direction: column;
		align-self: stretch;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0 1rem;
	}
	.bez-pkg-price {
		align-self: stretch;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0 1rem;
		background-image: linear-gradient(var(--bez-orange), var(--bez-orange));
		background-repeat: no-repeat;
		background-size: calc(100% - 2rem) 2px;
		background-position: center 0;
	}
	.bez-pkg-card__price-row .bez-pkg-price {
		font-size: 3rem;
	}
	.bez-pkg-card__price-label {
		font-size: 1.2rem;
		text-align: center;
		line-height: 1;
	}
	.bez-pkg-card__panel--addons {
		display: grid;
		grid-template-columns: 40% 60%;
		align-items: center;
		background-color: transparent;
		border-radius: 0;
		box-shadow: none;
		position: relative;
		isolation: isolate;
	}
	.bez-pkg-card--addons .bez-pkg-card__panel {
		padding: 0;
	}
	.bez-pkg-card__panel--addons::before {
		content: '';
		position: absolute;
		inset: 0 0 0 40%;
		z-index: -1;
		background-color: #fff;
		border-radius: 20px;
		box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
	}
	.bez-pkg-card__labels--addons {
		align-self: center;
		padding-top: 2rem;
		padding-bottom: 2rem;
	}
	.bez-pkg-card__upgrades-art {
		display: block;
		width: 100%;
		max-width: 8.5rem;
		margin: 0 auto;
	}
	.bez-pkg-card__addons-content {
		padding: 0 1.125rem;
	}
	.bez-pkg-table__addons-lead::after {
		display: none;
	}
	.bez-pkg-table__addons-lead::before {
		content: '';
		display: block;
		width: 50%;
		height: 3px;
		margin: 0 auto 0.25rem;
		background-color: var(--bez-yellow);
	}
	.bez-pkg-card__byob-art {
		display: block;
		width: 100%;
		max-width: none;
		margin: -1rem auto 0;
	}
	.bez-pkg-card .bez-btn-select {
		position: absolute;
		left: 44%;
		width: 300px;
		max-width: 48vw;
		padding: 1rem;
      margin-top: -0.75rem;
	}
	.bez-btn-select img {
		width: unset;
	}
}

/* ------------------------------------------- Downloads / invitations */

.bez-downloads .bez-container,
.bez-invitations .bez-container {
	text-align: left;
}
.bez-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
	justify-items: center;
}
.bez-card {
	max-width: 320px;
	width: 100%;
}
.bez-card__link {
	display: block;
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}
.bez-card__image {
	display: block;
	width: 100%;
}
.bez-card__band {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	transform: translateY(-50%);
	background-color: rgba(20, 20, 30, 0.62);
	color: #fff;
	font-family: var(--bez-display);
	text-transform: uppercase;
	font-size: 1rem;
	letter-spacing: 0.06em;
	text-align: center;
	padding: 0.875rem 0.625rem 0.625rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	opacity: 0.92;
	transition: opacity 0.25s ease, background 0.25s ease;
}
.bez-card__link:hover .bez-card__band,
.bez-card__link:focus .bez-card__band {
	background-color: rgba(20, 20, 30, 0.85);
	opacity: 1;
}
.bez-card__band-icon {
	border: 2px solid #fff;
	border-radius: 50%;
	width: 26px;
	height: 26px;
	line-height: 22px;
	flex: 0 0 auto;
}
@media screen and (max-width: 767px) {
	.bez-cards {
		grid-template-columns: 1fr;
	}
}

/* ------------------------------------------------------ CTA / Call us */

.bez-cta {
	text-align: center;
	padding: 6rem 0;
}
.bez-cta__link {
	display: inline-block;
}
.bez-cta__link img {
	width: 80%;
	max-width: 900px;
}
.bez-call {
	display: block;
}
.bez-call img {
	max-width: 700px;
	width: 90%;
	margin: -4.375rem auto 0;
	position: relative;
	z-index: 2;
}
@media screen and (max-width: 767px) {
	.bez-call img {
		margin-top: -8vw;
	}
}

/* -------------------------------------------------- FAQs / Disclaimer */

.bez-faqs .bez-panel,
.bez-disclaimer .bez-panel {
	color: #222;
}
.bez-disclaimer__content p {
	margin-bottom: 0.9em;
}
.bez .accordion {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bez .accordion-title {
	font-size: 1.25rem;
	text-align: left;
	margin-bottom: 0.5rem;
	padding: 0;
	background-color: transparent;
	color: #222;
	width: 100%;
	cursor: pointer;
}
.bez .accordion-title::before {
	display: inline-block;
	content: '+';
	margin-right: 0.5rem;
}
.bez .accordion-item--active .accordion-title::before {
	content: '-';
}
.bez .accordion-title:hover,
.bez .accordion-title:focus {
	color: #000;
}
.bez .accordion-content[aria-hidden='true'] {
	display: none;
}
.bez .accordion-item {
	margin-bottom: 0;
}

/* --------------------------------------------------------- Field trip */

.bez-ft-card {
	background-color: var(--bez-mint);
	border-radius: 22px;
	padding: 2.5rem 2.875rem;
	position: relative;
	max-width: 1080px;
	margin: 0 auto;
	color: var(--bez-navy);
}
.bez-ft-card__badge {
	position: absolute;
	top: -2.125rem;
	left: 0;
	background-color: #fff;
	border-radius: 12px 12px 0 0;
	padding: 0.75rem 1.375rem 0.25rem;
	margin: 0;
	text-align: center;
	line-height: 1;
}
.bez-ft-card__badge small {
	display: block;
	font-family: var(--bez-display);
	color: var(--bez-deep);
	font-size: 0.75rem;
	text-transform: uppercase;
	margin-top: 0.125rem;
}
.bez-ft-card__body {
	font-family: var(--bez-display);
	text-transform: uppercase;
}
/* Outrank Foundation's table tr:nth-of-type(even) striping */
.bez-ft-card table tr,
.bez-ft-card table thead,
.bez-ft-card table tbody {
	background-color: transparent;
}
.bez-ft-pricing {
	width: auto;
	min-width: min(460px, 100%);
	border-collapse: collapse;
	background-color: transparent;
	margin-bottom: 1.5rem;
}
.bez-ft-pricing__caption {
	text-align: left;
	font-family: var(--bez-display);
	font-size: 1.5rem;
	color: var(--bez-navy);
	text-transform: uppercase;
	margin-bottom: 0.625rem;
}
.bez-ft-pricing__caption small {
	display: block;
	font-size: 0.75rem;
}
.bez-ft-pricing th,
.bez-ft-pricing td {
	text-align: left;
	font-size: 1.25rem;
	padding: 0.5rem 2.5rem 0.5rem 0;
	color: var(--bez-navy);
	background-color: transparent;
}
.bez-ft-card__chaperones {
	border-top: 2px dashed #e2a0a0;
	border-bottom: 2px dashed #e2a0a0;
	padding: 1rem 0;
	margin: 0 0 1.25rem;
	text-align: center;
	font-size: 1.15rem;
}
.bez-ft-card__chaperones small {
	font-size: 0.7rem;
	display: block;
	margin-top: 0.375rem;
}
.bez-ft-card__free {
	margin-left: 2.5rem;
}
.bez-ft-card__included {
	color: #35b6e8;
	font-size: clamp(1.2rem, 2.4vw, 1.9rem);
	text-align: center;
	margin: 0;
}

/* ---------------------------------------------------- Package upgrades */

.bez-upgrades__heading {
	text-align: center;
	margin: 0 0 2.875rem;
}
.bez-upgrades__heading img {
	max-width: 380px;
}
.bez-upg-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--bez-display);
	text-transform: uppercase;
	color: var(--bez-navy);
	background-color: transparent;
}
.bez-upg-table th,
.bez-upg-table td {
	background-color: transparent;
	text-align: center;
	padding: 0.625rem 0.75rem;
	color: var(--bez-navy);
	font-size: 1rem;
}
.bez-upg-table thead th {
	font-size: 1.15rem;
}
.bez-upg-table tbody th[scope='row'] {
	border: 2px dashed #e2a0a0;
	border-radius: 10px;
}
.bez-upg-table__first > td {
	border-top: 2px dashed #e2a0a0;
}
.bez-upg-table__spacer > th,
.bez-upg-table__spacer > td {
	border-top: 0;
}
.bez-upg-table__spacer {
	border-top: 1.5rem solid transparent;
}
.bez-upg-table small {
	display: block;
	font-size: 0.65rem;
	text-transform: none;
}
@media screen and (max-width: 767px) {
	.bez-upg-table {
		font-size: 0.8rem;
	}
	.bez-upg-table th,
	.bez-upg-table td {
		font-size: 0.8rem;
		padding: 0.5rem 0.375rem;
	}
}

/* ------------------------------------------------- Additional add-ons */

.bez-addons {
	color: #fff;
}
.bez-addons__row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
	flex-wrap: wrap;
}
.bez-addons__heading {
	font-family: var(--bez-display);
	text-transform: uppercase;
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	line-height: 1;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 1.125rem;
	max-width: 340px;
}
.bez-addons__plus {
	font-size: 3.4rem;
}
.bez-addons__list {
	border-left: 3px solid #fff;
	padding-left: 2.5rem;
	font-family: var(--bez-display);
	text-transform: uppercase;
	font-size: clamp(1rem, 2vw, 1.4rem);
}
.bez-addons__list p {
	margin: 0 0 0.625rem;
}
.bez-fineprint {
	font-family: var(--bez-display);
	text-transform: uppercase;
	text-align: center;
	color: #fff;
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	margin: 2.5rem 1.25rem 0;
}
@media screen and (max-width: 767px) {
	.bez-addons__list {
		border-left: 0;
		padding-left: 0;
		text-align: center;
	}
}

/* ----------------------------------------------------------- Contact */

.bez-contact {
	text-align: center;
}
.bez-contact__link img {
	max-width: 380px;
	width: 70%;
}

/* ----------------------------------------------------------- Divider */

/* Full-width green-deep band so the page background never shows at the
   sides; the yellow bar is drawn on ::before */
.bez-divider {
	border: 0;
	height: 6px;
	width: 100%;
	margin: 0;
	background-color: var(--bez-green-deep);
	position: relative;
	z-index: 2;
}
.bez-divider::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	width: min(1100px, 92%);
	height: 6px;
	border-radius: 3px;
	background-color: var(--bez-yellow);
}
