/* Banquet ticket box: dark card, gold accents, Plus Jakarta Sans (matches hbcoc-reconnect). */
.hbbq {
	--hbbq-bg: #151923;
	--hbbq-card: #1C2130;
	--hbbq-line: #2E3446;
	--hbbq-text: #ECEDF1;
	--hbbq-muted: #8E94A3;
	--hbbq-gold: #D6A84E;
	--hbbq-gold-2: #F4D688;
	width: 100%;
	max-width: 560px;
	margin: 0 auto;
	color: var(--hbbq-text);
	font: 15px/1.5 "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	text-align: left;
	scroll-margin-top: 96px;
}
.hbbq *, .hbbq *::before, .hbbq *::after { box-sizing: border-box; }
.hbbq p { margin: 0; }

.hbbq-card {
	display: grid;
	gap: 18px;
	padding: 32px;
	background: var(--hbbq-card);
	border: 1px solid var(--hbbq-line);
	border-top: 3px solid var(--hbbq-gold);
	border-radius: 20px;
}
.hbbq-kicker {
	font-family: Poppins, sans-serif;
	font-size: 12px;
	letter-spacing: 4px;
	padding-left: 4px;
	text-transform: uppercase;
	color: var(--hbbq-muted);
	text-align: center;
}
.hbbq-lead {
	font-size: 16px;
	line-height: 1.55;
	color: #D5D7DD;
	text-align: center;
}
.hbbq-price { text-align: center; line-height: 1; }
.hbbq-amount {
	display: inline-block;
	padding-bottom: .08em;
	font-size: clamp(48px, 9vw, 64px);
	font-weight: 800;
	letter-spacing: -1px;
	background: linear-gradient(180deg, var(--hbbq-gold-2), var(--hbbq-gold) 60%, #C08A3A);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.hbbq-per { font-size: 16px; font-weight: 600; color: var(--hbbq-muted); }
.hbbq-fee { margin: 6px 0 0; text-align: center; font-size: 13px; color: var(--hbbq-muted); }

.hbbq-facts {
	display: grid;
	margin: 0;
	border-top: 1px solid var(--hbbq-line);
}
.hbbq-facts > div {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--hbbq-line);
}
.hbbq-facts dt { margin: 0; font-size: 13px; font-weight: 600; color: var(--hbbq-muted); }
.hbbq-facts dd { margin: 0; font-size: 15px; font-weight: 500; color: var(--hbbq-text); }

.hbbq-seats {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 700;
	color: var(--hbbq-gold-2);
}
.hbbq-dot { width: 9px; height: 9px; border-radius: 50%; background: #5BC88A; box-shadow: 0 0 0 4px rgba(91, 200, 138, .15); }
.hbbq-seats.is-out { font-size: 22px; color: #FF9C8F; }
.hbbq-seats.is-soon { color: #F4D688; }
.hbbq-seats.is-soon .hbbq-dot { background: #D6A84E; box-shadow: 0 0 0 4px rgba(214, 168, 78, .18); }

.hbbq-form {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: end;
}
.hbbq-qty { display: grid; gap: 6px; font-size: 13px; font-weight: 600; color: var(--hbbq-muted); }
.hbbq-qty select {
	min-width: 96px;
	height: 52px;
	padding: 0 40px 0 16px;
	border: 1px solid var(--hbbq-line);
	border-radius: 12px;
	background: var(--hbbq-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23D6A84E' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center;
	color: var(--hbbq-text);
	font: 600 17px/1 "Plus Jakarta Sans", sans-serif;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.hbbq-qty select:focus { outline: 2px solid var(--hbbq-gold); outline-offset: 1px; border-color: transparent; }
.hbbq-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0 30px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(180deg, var(--hbbq-gold-2), var(--hbbq-gold));
	color: #1A1408;
	font: 700 17px/1 "Plus Jakarta Sans", sans-serif;
	cursor: pointer;
	transition: filter .15s;
}
.hbbq-btn:hover { filter: brightness(1.06); }
.hbbq-btn:focus-visible { outline: 2px solid var(--hbbq-gold-2); outline-offset: 3px; }
.hbbq-note { font-size: 13px; color: var(--hbbq-muted); text-align: center; }
.hbbq-terms { margin: 4px 0 0; font-size: 12px; text-align: center; }
.hbbq-terms a, .hbbq-cta-terms a { color: var(--hbbq-muted, #8E94A3); text-decoration: underline; text-decoration-color: rgba(142, 148, 163, .45); text-underline-offset: 3px; }
.hbbq-terms a:hover, .hbbq-cta-terms a:hover, .hbbq-terms a:focus-visible, .hbbq-cta-terms a:focus-visible { color: #F4D688; text-decoration-color: currentColor; }

/* WooCommerce notices (e.g. "up to 10 per order") */
.hbbq-notices:empty { display: none; }
.hbbq-notices { margin-bottom: 16px; }
.hbbq-notices ul, .hbbq-notices .woocommerce-error, .hbbq-notices .woocommerce-message, .hbbq-notices .woocommerce-info {
	margin: 0 0 8px;
	padding: 12px 16px;
	list-style: none;
	border: 1px solid var(--hbbq-line);
	border-radius: 12px;
	background: var(--hbbq-card);
	font-size: 14px;
}
.hbbq-notices .woocommerce-error { border-color: #FF9C8F; color: #FFC2B9; }
.hbbq-notices a { color: var(--hbbq-gold-2); }
.hbbq-notices .button { display: none; }

@media (max-width: 640px) {
	.hbbq-card { padding: 24px 18px; border-radius: 16px; }
	.hbbq-facts > div { grid-template-columns: 1fr; gap: 2px; }
	.hbbq-form { grid-template-columns: 1fr; }
	.hbbq-qty select { width: 100%; }
}

/* ================================================================== */
/* [hbcoc_banquet_feature]: banner + featured performer (v1.1.0)        */
/* ================================================================== */
.hbbq-x {
	--hbbq-bg: #151923;
	--hbbq-card: #1C2130;
	--hbbq-line: #2E3446;
	--hbbq-text: #ECEDF1;
	--hbbq-muted: #8E94A3;
	--hbbq-gold: #D6A84E;
	--hbbq-gold-2: #F4D688;
	--hbbq-gold-3: #C08A3A;
	--hbbq-gold-grad: linear-gradient(135deg, #F4D688 0%, #D6A84E 50%, #C08A3A 100%);
	color: var(--hbbq-text);
	font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	text-align: left;
}
.hbbq-x *, .hbbq-x *::before, .hbbq-x *::after { box-sizing: border-box; }
.hbbq-x p, .hbbq-x h1, .hbbq-x h2, .hbbq-x figure { margin: 0; }
/* The Elementor shortcode widget sits in a centered flex column; let ours span the row. */
.elementor-widget-shortcode:has(.hbbq-x) { width: 100%; }

.hbbq-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Banner ------------------------------------------------------------ */
.hbbq-banner { width: 100%; max-width: 1100px; margin: 0 auto; }
.hbbq-banner-fig {
	position: relative;
	padding: 1px;
	border-radius: 22px;
	background: linear-gradient(160deg, rgba(244, 214, 136, .85), rgba(214, 168, 78, .35) 35%, rgba(46, 52, 70, .9) 65%, rgba(192, 138, 58, .7));
	box-shadow:
		0 40px 90px -40px rgba(0, 0, 0, .85),
		0 18px 40px -24px rgba(0, 0, 0, .6),
		0 0 70px -18px rgba(214, 168, 78, .28);
}
.hbbq-banner-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 21px;
}

/* Featured performer ------------------------------------------------ */
.hbbq-act {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	align-items: center;
	gap: 56px;
	width: 100%;
	max-width: 960px;
	margin: 0 auto 88px;
	padding: 48px;
	border: 1px solid var(--hbbq-line);
	border-radius: 24px;
	background:
		radial-gradient(120% 140% at 100% 0%, rgba(214, 168, 78, .10), transparent 55%),
		linear-gradient(180deg, var(--hbbq-card), var(--hbbq-bg));
	box-shadow: 0 30px 70px -40px rgba(0, 0, 0, .8);
}
.hbbq-act-photo {
	position: relative;
	padding: 1px;
	border-radius: 18px;
	background: linear-gradient(160deg, rgba(244, 214, 136, .8), rgba(46, 52, 70, .9) 55%, rgba(192, 138, 58, .6));
	box-shadow: 0 24px 50px -28px rgba(0, 0, 0, .9);
}
.hbbq-act-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 748 / 720;
	object-fit: cover;
	border-radius: 17px;
}
.hbbq-act-body { display: grid; justify-items: start; gap: 18px; }
.hbbq-eyebrow {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--hbbq-gold-2);
}
.hbbq-act-title {
	padding-bottom: .06em;
	font-family: "Plus Jakarta Sans", system-ui, sans-serif;
	font-size: clamp(36px, 4.6vw, 52px);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -1.2px;
	background: linear-gradient(180deg, #F4D688, #D6A84E 62%, #C08A3A);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.hbbq-rule { display: block; width: 56px; height: 2px; border-radius: 2px; background: var(--hbbq-gold-grad); }
.hbbq-act-text {
	max-width: 30em;
	font-size: 18px;
	line-height: 1.65;
	color: #D5D7DD;
}
.hbbq-x a.hbbq-listen {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 6px;
	padding: 8px 18px 8px 8px;
	border: 1px solid rgba(214, 168, 78, .45);
	border-radius: 999px;
	color: var(--hbbq-text);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .2s, background-color .2s;
}
.hbbq-x a.hbbq-listen:hover { border-color: var(--hbbq-gold-2); background: rgba(214, 168, 78, .08); }
.hbbq-x a.hbbq-listen:focus-visible { outline: 2px solid var(--hbbq-gold-2); outline-offset: 3px; }
.hbbq-play {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding-left: 2px;
	border-radius: 50%;
	background: var(--hbbq-gold-grad);
	color: #1A1408;
}

@media (max-width: 760px) {
	.hbbq-banner-fig { border-radius: 14px; }
	.hbbq-banner-img { border-radius: 13px; }
	.hbbq-act {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 28px;
		margin-bottom: 56px;
		padding: 28px 20px 32px;
		border-radius: 20px;
		text-align: center;
	}
	.hbbq-act-photo { width: 100%; max-width: 300px; }
	.hbbq-act-body { justify-items: center; gap: 14px; }
	.hbbq-act-text { font-size: 16px; }
}

/* Banquet program --------------------------------------------------- */
.hbbq-prog { width: 100%; max-width: 1040px; margin: 0 auto 96px; display: grid; gap: 36px; }
.hbbq-prog-head { text-align: center; display: grid; justify-items: center; gap: 12px; margin-bottom: 8px; }
.hbbq-prog-title {
	margin: 0;
	padding-bottom: .06em;
	font-size: clamp(34px, 4.6vw, 54px);
	font-weight: 800;
	letter-spacing: -1.2px;
	line-height: 1.04;
	background: linear-gradient(180deg, #F4D688, #D6A84E 62%, #C08A3A);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.hbbq-blacktie {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 8px 18px;
	border: 1px solid rgba(244, 214, 136, .35);
	border-radius: 999px;
	background: rgba(10, 12, 18, .55);
	color: #ECEDF1; font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
}
.hbbq-bowtie { color: #F4D688; display: inline-flex; }

.hbbq-feat {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
	align-items: center;
	gap: 64px;
	padding: 56px;
	overflow: hidden;
	border-radius: 32px;
	background:
		radial-gradient(70% 90% at 0% 0%, rgba(214, 168, 78, .20), transparent 60%),
		radial-gradient(60% 80% at 100% 100%, rgba(120, 90, 40, .18), transparent 65%),
		linear-gradient(160deg, #1F2434 0%, #141824 55%, #0E1119 100%);
	box-shadow: 0 60px 120px -60px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .05);
}
/* gold gradient hairline border */
.hbbq-feat::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px;
	background: linear-gradient(135deg, rgba(244, 214, 136, .85), rgba(46, 52, 70, .6) 30%, rgba(46, 52, 70, .3) 70%, rgba(192, 138, 58, .75));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
}
/* diagonal sheen */
.hbbq-feat::after {
	content: ""; position: absolute; z-index: -1; top: -40%; bottom: -40%; width: 38%; left: -60%;
	background: linear-gradient(90deg, transparent, rgba(244, 214, 136, .07), transparent);
	transform: rotate(18deg);
	transition: left 1.4s cubic-bezier(.2, .7, .2, 1);
	pointer-events: none;
}
.hbbq-feat:hover::after { left: 120%; }
.hbbq-feat-mark {
	position: absolute; z-index: -1; right: -10px; bottom: -34px;
	font-size: clamp(110px, 16vw, 200px); font-weight: 800; letter-spacing: -6px; line-height: 1;
	color: transparent; -webkit-text-stroke: 1px rgba(214, 168, 78, .14);
	pointer-events: none; user-select: none;
}
.hbbq-feat--flip { grid-template-columns: minmax(0, 1fr) minmax(0, 380px); }
.hbbq-feat--flip .hbbq-feat-photo { order: 2; }
.hbbq-feat--flip .hbbq-feat-mark { right: auto; left: -10px; }
.hbbq-feat--flip { background:
		radial-gradient(70% 90% at 100% 0%, rgba(214, 168, 78, .20), transparent 60%),
		radial-gradient(60% 80% at 0% 100%, rgba(120, 90, 40, .18), transparent 65%),
		linear-gradient(200deg, #1F2434 0%, #141824 55%, #0E1119 100%); }

.hbbq-feat-photo {
	position: relative; margin: 0;
	padding: 2px; border-radius: 26px;
	background: linear-gradient(160deg, #F4D688, #8A6A2E 40%, #2E3446 60%, #D6A84E);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .9), 0 0 80px -30px rgba(214, 168, 78, .45);
	transform: rotate(-1.2deg);
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.hbbq-feat--flip .hbbq-feat-photo { transform: rotate(1.2deg); }
.hbbq-feat:hover .hbbq-feat-photo { transform: rotate(0) scale(1.01); }
.hbbq-x .hbbq-feat-photo img.hbbq-feat-img {
	display: block; width: 100% !important; height: auto !important; max-width: none;
	aspect-ratio: 4 / 5; object-fit: cover; object-position: center 22%;
	border-radius: 24px !important;
}
.hbbq-corner { position: absolute; width: 34px; height: 34px; border-color: #F4D688; border-style: solid; pointer-events: none; }
.hbbq-corner--tl { top: -12px; left: -12px; border-width: 2px 0 0 2px; border-top-left-radius: 10px; }
.hbbq-corner--br { bottom: -12px; right: -12px; border-width: 0 2px 2px 0; border-bottom-right-radius: 10px; }

.hbbq-feat-body { display: grid; justify-items: start; gap: 14px; }
.hbbq-feat--flip .hbbq-feat-body { justify-items: end; text-align: right; }
.hbbq-feat-label {
	display: inline-flex; align-items: center; gap: 14px;
	font-size: 13px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; color: #F4D688;
}
.hbbq-feat--flip .hbbq-feat-label { flex-direction: row-reverse; }
.hbbq-feat-line { width: 44px; height: 1px; background: linear-gradient(90deg, transparent, #D6A84E); }
.hbbq-feat--flip .hbbq-feat-line { background: linear-gradient(270deg, transparent, #D6A84E); }
.hbbq-feat-name {
	margin: 0; padding-bottom: .08em;
	font-size: clamp(38px, 5vw, 64px); font-weight: 800; letter-spacing: -1.6px; line-height: 1.02;
	background: linear-gradient(180deg, #FFF3D1 0%, #F4D688 30%, #D6A84E 65%, #A8772D 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
	text-wrap: balance;
	filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .45));
}
.hbbq-diamond { display: inline-flex; align-items: center; gap: 0; width: 120px; height: 10px; position: relative; }
.hbbq-diamond::before, .hbbq-diamond::after { content: ""; flex: 1; height: 1px; background: rgba(214, 168, 78, .55); }
.hbbq-diamond i { width: 8px; height: 8px; margin: 0 8px; transform: rotate(45deg); background: #D6A84E; box-shadow: 0 0 12px rgba(214, 168, 78, .8); }
.hbbq-feat-role { font-size: 22px; font-weight: 600; color: #ECEDF1; letter-spacing: -.2px; }
.hbbq-feat-org { font-size: 17px; color: #A9AEBB; }

@media (max-width: 860px) {
	.hbbq-feat, .hbbq-feat--flip { grid-template-columns: 1fr; gap: 36px; padding: 40px 28px 44px; text-align: center; border-radius: 26px; }
	.hbbq-feat--flip .hbbq-feat-photo { order: 0; }
	.hbbq-feat-photo { width: min(320px, 82%); justify-self: center; }
	.hbbq-feat-body, .hbbq-feat--flip .hbbq-feat-body { justify-items: center; text-align: center; }
	.hbbq-feat--flip .hbbq-feat-label { flex-direction: row; }
	.hbbq-feat-mark { font-size: 110px; bottom: -20px; }
}
@media (max-width: 760px) {
	.hbbq-prog { margin-bottom: 64px; gap: 24px; }
	.hbbq-blacktie { font-size: 11px; letter-spacing: 1.5px; }
}
@media (prefers-reduced-motion: reduce) {
	.hbbq-feat::after, .hbbq-feat-photo { transition: none; }
}

/* Performer card with the song player inside ------------------------ */
.hbbq-act { max-width: 1040px; row-gap: 0; }
@media (min-width: 761px) { .hbbq-act { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); } }
@media (max-width: 760px) { .hbbq-act { grid-template-columns: minmax(0, 1fr); row-gap: 28px; } .hbbq-act-body { min-width: 0; } .hbbq-act-player { margin-top: 8px; } }
.hbbq-act-player {
	grid-column: 1 / -1;
	position: relative;
	margin-top: 44px;
	padding-top: 40px;
}
.hbbq-act-player::before {
	content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px;
	background: linear-gradient(90deg, transparent, rgba(214, 168, 78, .65), transparent);
}
.hbbq-act-player .hbpl.hbpl { max-width: none; padding-bottom: 0; }
.hbbq-act-player .hbpl-shell { box-shadow: none; background: rgba(10, 12, 18, .55); }
@media (max-width: 760px) {
	.hbbq-act-player { margin-top: 32px; padding-top: 32px; }
}

/* "Ask for the sale" card ------------------------------------------- */
.hbbq-cta {
	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	align-items: center;
	gap: 48px;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto 96px;
	padding: 52px 56px;
	overflow: hidden;
	border-radius: 32px;
	background:
		radial-gradient(80% 120% at 100% 0%, rgba(214, 168, 78, .22), transparent 55%),
		radial-gradient(60% 90% at 0% 100%, rgba(120, 90, 40, .20), transparent 60%),
		linear-gradient(150deg, #22283A 0%, #151925 55%, #0E1119 100%);
	box-shadow: 0 60px 120px -60px rgba(0, 0, 0, .95), 0 0 0 1px rgba(0, 0, 0, .4);
}
/* animated gold gradient border */
.hbbq-cta::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1.5px;
	background: linear-gradient(120deg, #F4D688, rgba(46, 52, 70, .5) 25%, rgba(46, 52, 70, .5) 60%, #D6A84E 80%, #FFF3D1 90%, #C08A3A);
	background-size: 250% 250%;
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	animation: hbbq-cta-border 7s ease-in-out infinite alternate;
}
@keyframes hbbq-cta-border { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
/* slow light sweep across the card */
.hbbq-cta::after {
	content: ""; position: absolute; z-index: -1; top: -50%; bottom: -50%; left: -40%; width: 30%;
	background: linear-gradient(90deg, transparent, rgba(244, 214, 136, .08), transparent);
	transform: rotate(16deg);
	animation: hbbq-cta-sweep 6.5s cubic-bezier(.4, 0, .2, 1) infinite;
	pointer-events: none;
}
/* Moves with translate (170% of the card = 566.67% of the 30%-wide sweep), not left: no layout shifts. */
@keyframes hbbq-cta-sweep { 0%, 55% { translate: 0 0; } 100% { translate: 566.67% 0; } }
.hbbq-cta-glow { position: absolute; z-index: -1; right: -120px; top: -120px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(244, 214, 136, .25), transparent 65%); filter: blur(10px); pointer-events: none; }

.hbbq-cta-main { display: grid; justify-items: start; gap: 16px; }
.hbbq-cta-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: 3.5px; text-transform: uppercase; color: #F4D688; }
.hbbq-cta-dot { width: 8px; height: 8px; border-radius: 50%; background: #F4D688; box-shadow: 0 0 0 0 rgba(244, 214, 136, .6); animation: hbbq-pulse 2.4s ease-out infinite; }
@keyframes hbbq-pulse { 0% { box-shadow: 0 0 0 0 rgba(244, 214, 136, .55); } 80%, 100% { box-shadow: 0 0 0 12px rgba(244, 214, 136, 0); } }
.hbbq-cta-title {
	margin: 0; padding-bottom: .06em;
	font-size: clamp(34px, 4.4vw, 56px); font-weight: 800; letter-spacing: -1.5px; line-height: 1.02;
	background: linear-gradient(180deg, #FFF3D1 0%, #F4D688 35%, #D6A84E 70%, #A8772D 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
	text-wrap: balance;
}
.hbbq-cta-lede { max-width: 34em; font-size: 17px; line-height: 1.65; color: #C9CDD6; }
.hbbq-cta-facts { list-style: none; margin: 6px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 10px; }
.hbbq-cta-facts li {
	display: inline-flex; align-items: center; gap: 8px; margin: 0;
	padding: 9px 14px; border-radius: 999px;
	border: 1px solid rgba(214, 168, 78, .3); background: rgba(10, 12, 18, .45);
	font-size: 14px; font-weight: 600; color: #ECEDF1; white-space: nowrap;
}
.hbbq-cta-facts svg { color: #F4D688; flex: none; }

.hbbq-cta-side {
	display: grid; justify-items: center; gap: 14px; text-align: center;
	padding: 34px 28px 30px; border-radius: 24px;
	background: linear-gradient(180deg, rgba(10, 12, 18, .65), rgba(10, 12, 18, .35));
	border: 1px solid rgba(214, 168, 78, .28);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 30px 60px -30px rgba(0, 0, 0, .9);
}
.hbbq-cta-price { display: flex; align-items: baseline; gap: 8px; margin: 0; }
.hbbq-cta-amt {
	font-size: clamp(64px, 7vw, 88px); font-weight: 800; letter-spacing: -3px; line-height: .95;
	background: linear-gradient(180deg, #FFF3D1, #F4D688 40%, #C08A3A); -webkit-background-clip: text; background-clip: text; color: transparent;
	filter: drop-shadow(0 10px 30px rgba(214, 168, 78, .3));
}
.hbbq-cta-per { font-size: 15px; color: #A9AEBB; }
.hbbq-cta-fee { margin: -8px 0 0; font-size: 13px; color: #A9AEBB; }
.hbbq-cta-ages { display: inline-flex; align-items: center; gap: 8px; margin: -4px 0 4px; padding: 7px 14px; border-radius: 999px; background: rgba(214, 168, 78, .12); border: 1px solid rgba(214, 168, 78, .4); color: #F4D688; font-size: 13px; font-weight: 700; letter-spacing: .2px; }
.hbbq-cta-ages svg { flex: none; }
.hbbq-cta-ages { white-space: nowrap; }
.hbbq-cta-seats { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: .3px; color: #ECEDF1; }
.hbbq-cta-seats.is-out { font-size: 22px; color: #FF9C8F; }
.hbbq-cta-bar { width: 100%; max-width: 260px; height: 6px; border-radius: 999px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.hbbq-cta-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #C08A3A, #F4D688); box-shadow: 0 0 12px rgba(244, 214, 136, .6); }
.hbbq-x a.hbbq-cta-btn {
	position: relative; overflow: hidden;
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	width: 100%; min-height: 56px; margin-top: 6px; padding: 14px 26px;
	border-radius: 999px;
	background: linear-gradient(180deg, #F4D688, #D6A84E 60%, #C08A3A);
	color: #1A1408; font-size: 16px; font-weight: 800; letter-spacing: .2px; text-decoration: none;
	box-shadow: 0 18px 40px -14px rgba(214, 168, 78, .75), inset 0 1px 0 rgba(255, 255, 255, .5);
	transition: transform .25s, box-shadow .25s, filter .25s;
}
.hbbq-x a.hbbq-cta-btn:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 24px 50px -14px rgba(214, 168, 78, .9), inset 0 1px 0 rgba(255, 255, 255, .5); }
.hbbq-x a.hbbq-cta-btn:focus-visible { outline: 2px solid #F4D688; outline-offset: 4px; }
.hbbq-cta-badge { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(244, 214, 136, .45); background: rgba(214, 168, 78, .1); color: #F4D688; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; white-space: nowrap; }
.hbbq-x a.hbbq-cta-btn { white-space: nowrap; }
.hbbq-cta-note { margin: 0; font-size: 13px; color: #8E94A3; }
.hbbq-cta-terms { margin: -8px 0 0; font-size: 12px; }

@media (max-width: 900px) {
	.hbbq-cta { grid-template-columns: minmax(0, 1fr); gap: 30px; padding: 40px 28px 30px; }
	.hbbq-cta-main { justify-items: center; text-align: center; }
	.hbbq-cta-facts { justify-content: center; }
}
@media (max-width: 760px) {
	.hbbq-cta { margin-bottom: 64px; border-radius: 24px; padding: 34px 18px 20px; }
	.hbbq-cta-facts li { font-size: 13px; padding: 8px 12px; white-space: normal; text-align: left; max-width: 100%; }
	.hbbq-cta, .hbbq-cta-main, .hbbq-cta-side { min-width: 0; max-width: 100%; }
	.hbbq-cta-kicker { letter-spacing: 2.5px; }
	.hbbq-cta-dot { display: none; }
	.hbbq-cta-lede { font-size: 16px; }
	.hbbq-cta-side { padding: 26px 18px 22px; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.hbbq-cta::before, .hbbq-cta::after, .hbbq-cta-dot { animation: none; }
}

/* Clickable facts (attire info, directions) ------------------------- */
.hbbq-x .hbbq-cta-facts li.is-action { padding: 0; border: 0; background: none; }
.hbbq-x .hbbq-cta-fact {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 9px 14px; border-radius: 999px;
	border: 1px solid rgba(214, 168, 78, .45); background: rgba(214, 168, 78, .08);
	color: #ECEDF1; font: 600 14px/1.3 "Plus Jakarta Sans", sans-serif; text-decoration: none; cursor: pointer;
	transition: border-color .2s, background-color .2s, transform .2s;
}
.hbbq-x .hbbq-cta-fact:hover { border-color: #F4D688; background: rgba(214, 168, 78, .16); transform: translateY(-1px); }
.hbbq-x .hbbq-cta-fact:focus-visible, .hbbq-x .hbbq-blacktie:focus-visible, .hbbq .hbbq-attire:focus-visible { outline: 2px solid #F4D688; outline-offset: 3px; }
.hbbq-x .hbbq-cta-fact svg { color: #F4D688; }
.hbbq-info {
	display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%;
	background: #D6A84E; color: #1A1408; font-size: 11px; font-weight: 800; line-height: 1;
}
.hbbq-x button.hbbq-blacktie { cursor: pointer; font-family: inherit; transition: border-color .2s, background-color .2s; }
.hbbq-x button.hbbq-blacktie:hover { border-color: #F4D688; background: rgba(214, 168, 78, .12); }
.hbbq button.hbbq-attire {
	display: inline-flex; align-items: center; gap: 8px; padding: 0; border: 0; background: none;
	color: inherit; font: inherit; cursor: pointer; text-decoration: underline; text-decoration-color: rgba(244, 214, 136, .45); text-underline-offset: 3px;
}
.hbbq button.hbbq-attire:hover { color: #F4D688; }

/* Black-tie modal */
.hbbq-modal { padding: 0; border: 0; background: transparent; max-width: min(560px, calc(100vw - 32px)); width: 100%; color: #ECEDF1; overflow: visible; }
.hbbq-modal::backdrop { background: rgba(6, 8, 12, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.hbbq-modal.is-open .hbbq-modal-card { animation: hbbq-modal-in .35s cubic-bezier(.2, .7, .2, 1); }
@keyframes hbbq-modal-in { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.hbbq-modal-card {
	position: relative; isolation: isolate;
	padding: 44px 40px 34px; border-radius: 28px; text-align: center;
	font-family: "Plus Jakarta Sans", system-ui, sans-serif;
	background: radial-gradient(90% 70% at 50% 0%, rgba(214, 168, 78, .22), transparent 65%), linear-gradient(170deg, #22283A, #12151F 70%);
	box-shadow: 0 60px 120px -40px rgba(0, 0, 0, .95);
}
.hbbq-modal-card::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1.5px;
	background: linear-gradient(140deg, #F4D688, rgba(46, 52, 70, .5) 35%, rgba(46, 52, 70, .5) 65%, #C08A3A);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}
.hbbq-modal-x { position: absolute; top: 14px; right: 16px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(214, 168, 78, .35); background: rgba(10, 12, 18, .5); color: #F4D688; font-size: 22px; line-height: 1; cursor: pointer; }
.hbbq-modal-x:hover { background: rgba(214, 168, 78, .15); }
.hbbq-modal-bow { display: inline-flex; color: #F4D688; filter: drop-shadow(0 0 12px rgba(244, 214, 136, .5)); }
.hbbq-modal-kicker { margin: 12px 0 0; font-size: 12px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; color: #F4D688; }
.hbbq-modal-title {
	margin: 8px 0 10px; padding-bottom: .06em; font-size: clamp(26px, 4vw, 34px); font-weight: 800; letter-spacing: -.8px; line-height: 1.1;
	background: linear-gradient(180deg, #FFF3D1, #F4D688 40%, #C08A3A); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hbbq-modal-lede { margin: 0 0 22px; font-size: 16px; line-height: 1.6; color: #C9CDD6; }
.hbbq-modal-list { margin: 0; display: grid; gap: 12px; text-align: left; }
.hbbq-modal-list > div { padding: 14px 18px; border-radius: 16px; border: 1px solid #2E3446; background: rgba(10, 12, 18, .45); }
.hbbq-modal-list dt { font-size: 12px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: #F4D688; }
.hbbq-modal-list dd { margin: 4px 0 0; font-size: 15px; line-height: 1.55; color: #ECEDF1; }
.hbbq-modal-note { margin: 18px 0 0; font-size: 14px; color: #A9AEBB; }
.hbbq-modal-note a { color: #F4D688; font-weight: 600; }
.hbbq-modal-ok {
	margin-top: 20px; min-height: 48px; padding: 12px 34px; border: 0; border-radius: 999px; cursor: pointer;
	background: linear-gradient(180deg, #F4D688, #D6A84E 60%, #C08A3A); color: #1A1408; font: 800 15px/1 "Plus Jakarta Sans", sans-serif;
	box-shadow: 0 14px 30px -12px rgba(214, 168, 78, .7);
}
@media (max-width: 760px) {
	.hbbq-modal-card { padding: 38px 20px 26px; border-radius: 22px; }
	.hbbq-x .hbbq-cta-fact { font-size: 13px; padding: 8px 12px; white-space: normal; text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .hbbq-modal.is-open .hbbq-modal-card { animation: none; } }

/* Compact modal (desktop feedback: too large) */
.hbbq-modal { max-width: min(460px, calc(100vw - 32px)); }
.hbbq-modal-card { padding: 30px 28px 24px; border-radius: 22px; max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); overflow-y: auto; scrollbar-width: thin; }
.hbbq-modal-x { top: 10px; right: 12px; width: 32px; height: 32px; font-size: 19px; }
.hbbq-modal-bow svg { width: 32px; height: 17px; }
.hbbq-modal-kicker { margin-top: 6px; font-size: 11px; letter-spacing: 3px; }
.hbbq-modal-title { margin: 4px 0 6px; font-size: 24px; letter-spacing: -.5px; }
.hbbq-modal-lede { margin-bottom: 16px; font-size: 14px; line-height: 1.5; }
.hbbq-modal-list { gap: 8px; }
.hbbq-modal-list > div { padding: 10px 14px; border-radius: 12px; }
.hbbq-modal-list dt { font-size: 10.5px; letter-spacing: 2px; }
.hbbq-modal-list dd { margin-top: 2px; font-size: 13.5px; line-height: 1.5; }
.hbbq-modal-note { margin-top: 14px; font-size: 13px; }
.hbbq-modal-ok { margin-top: 14px; min-height: 42px; padding: 10px 30px; font-size: 14px; }
@media (max-width: 760px) { .hbbq-modal-card { padding: 28px 18px 20px; } }

/* Gradient (background-clip:text) headings only paint inside their box: give descenders room */
.hbbq-x .hbbq-prog-title,
.hbbq-x .hbbq-feat-name,
.hbbq-x .hbbq-cta-title,
.hbbq-x .hbbq-act-title,
.hbbq-modal-title { padding-bottom: .16em; line-height: 1.12; }
.hbbq-prog-head { gap: 14px; }

/* ================================================================== */
/* v1.7: richer sales card + invitation-style ticket box               */
/* ================================================================== */

/* Sales card: banquet table photo glowing behind the headline */
.hbbq-x.hbbq-cta img.hbbq-cta-bg {
	position: absolute !important; grid-area: auto; margin: 0; z-index: -1; inset: 0 auto 0 0; width: 70% !important; height: 100% !important; max-width: none;
	object-fit: cover; object-position: center 55%; opacity: .34; border-radius: 0 !important;
	-webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, .55) 45%, transparent 100%);
	mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, .55) 45%, transparent 100%);
	filter: saturate(1.15) contrast(1.05);
	pointer-events: none;
}
.hbbq-cta-main { position: relative; text-shadow: 0 2px 18px rgba(8, 10, 16, .65); }

/* Price panel as a real ticket: notches, perforation, stub */
.hbbq-x .hbbq-ticket {
	position: relative;
	padding-top: 52px;
	border-radius: 20px;
	-webkit-mask: radial-gradient(circle 13px at 50% 0, transparent 12.5px, #000 13px) top / 100% 51% no-repeat,
	              radial-gradient(circle 13px at 50% 100%, transparent 12.5px, #000 13px) bottom / 100% 51% no-repeat;
	mask: radial-gradient(circle 13px at 50% 0, transparent 12.5px, #000 13px) top / 100% 51% no-repeat,
	      radial-gradient(circle 13px at 50% 100%, transparent 12.5px, #000 13px) bottom / 100% 51% no-repeat;
	background:
		radial-gradient(120% 60% at 50% 0%, rgba(214, 168, 78, .18), transparent 60%),
		linear-gradient(180deg, rgba(14, 16, 24, .92), rgba(10, 12, 18, .85));
}
.hbbq-stub {
	position: absolute; top: 16px; left: 50%; transform: translateX(-50%);
	padding: 0 0 10px; width: calc(100% - 48px);
	border-bottom: 1.5px dashed rgba(214, 168, 78, .45);
	font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: rgba(244, 214, 136, .85); white-space: nowrap;
}
.hbbq-stub b { color: #D6A84E; }
.hbbq-togo { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #A9AEBB; }
.hbbq-togo b { font-size: 15px; letter-spacing: 0; color: #F4D688; }

/* gold foil glint across the $80 */
.hbbq-cta-amt {
	background: linear-gradient(110deg, #C08A3A 0%, #F4D688 30%, #FFF6DA 45%, #F4D688 55%, #C08A3A 85%);
	background-size: 250% 100%;
	-webkit-background-clip: text; background-clip: text; color: transparent;
	animation: hbbq-foil 5.5s ease-in-out infinite;
}
@keyframes hbbq-foil { 0%, 30% { background-position: 100% 0; } 70%, 100% { background-position: 0% 0; } }

/* Ticket box as a formal invitation */
.hbbq .hbbq-invite-card {
	position: relative;
	isolation: isolate;
	padding: 56px 52px 44px;
	border-radius: 26px;
	background:
		radial-gradient(90% 55% at 50% 0%, rgba(214, 168, 78, .16), transparent 65%),
		radial-gradient(70% 50% at 50% 100%, rgba(120, 90, 40, .14), transparent 70%),
		linear-gradient(180deg, #1E2333, #141823);
	box-shadow: 0 50px 100px -50px rgba(0, 0, 0, .9);
}
.hbbq-frame { position: absolute; inset: 12px; z-index: -1; border: 1px solid rgba(214, 168, 78, .35); border-radius: 18px; pointer-events: none; }
.hbbq-frame i { position: absolute; width: 22px; height: 22px; border-color: #F4D688; border-style: solid; }
.hbbq-frame i:nth-child(1) { top: -1px; left: -1px; border-width: 2px 0 0 2px; border-top-left-radius: 18px; }
.hbbq-frame i:nth-child(2) { top: -1px; right: -1px; border-width: 2px 2px 0 0; border-top-right-radius: 18px; }
.hbbq-frame i:nth-child(3) { bottom: -1px; left: -1px; border-width: 0 0 2px 2px; border-bottom-left-radius: 18px; }
.hbbq-frame i:nth-child(4) { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; border-bottom-right-radius: 18px; }
.hbbq-invite {
	margin: 6px 0 0 !important; text-align: center; padding-bottom: .12em;
	font-size: clamp(26px, 3.2vw, 34px); font-weight: 800; letter-spacing: -.6px; line-height: 1.15;
	background: linear-gradient(180deg, #FFF3D1, #F4D688 40%, #C08A3A); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hbbq-orn { display: flex; align-items: center; justify-content: center; gap: 0; width: 160px; margin: 10px auto 6px; }
.hbbq-orn::before, .hbbq-orn::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, #D6A84E); }
.hbbq-orn::after { background: linear-gradient(90deg, #D6A84E, transparent); }
.hbbq-orn i { width: 7px; height: 7px; margin: 0 10px; transform: rotate(45deg); background: #D6A84E; box-shadow: 0 0 10px rgba(214, 168, 78, .8); }

/* details as a two-column grid with gold icons */
.hbbq .hbbq-invite-card .hbbq-facts {
	display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 26px 0 8px; border: 0;
}
.hbbq .hbbq-invite-card .hbbq-facts > div {
	display: grid; gap: 6px; align-content: start; padding: 16px 18px; margin: 0;
	border: 1px solid #2E3446; border-radius: 16px; background: rgba(10, 12, 18, .4);
	grid-template-columns: none;
}
.hbbq .hbbq-invite-card .hbbq-facts > .hbbq-fact-venue { grid-column: 1 / -1; }
.hbbq .hbbq-invite-card .hbbq-facts dt { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: #F4D688; }
.hbbq .hbbq-invite-card .hbbq-facts dd { font-size: 16px; font-weight: 600; line-height: 1.45; color: #ECEDF1; }
.hbbq-fi { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #F4D688; background: rgba(214, 168, 78, .12); box-shadow: inset 0 0 0 1px rgba(214, 168, 78, .35); }
.hbbq .hbbq-invite-card a.hbbq-map {
	display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 14px; font-weight: 600;
	color: #F4D688; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px;
}
.hbbq .hbbq-invite-card a.hbbq-map::after { content: "\2197"; font-size: .9em; }

/* "coming soon" gold seal */
.hbbq-seal {
	position: relative; display: grid; justify-items: center; gap: 2px; width: max-content; max-width: 100%;
	margin: 22px auto 6px !important; padding: 14px 30px;
	border-radius: 999px; text-align: center;
	background: linear-gradient(180deg, rgba(214, 168, 78, .16), rgba(214, 168, 78, .05));
	box-shadow: inset 0 0 0 1px rgba(244, 214, 136, .55), 0 0 40px -10px rgba(214, 168, 78, .55);
}
.hbbq-seal-ring { position: absolute; inset: -6px; border-radius: inherit; border: 1px dashed rgba(244, 214, 136, .35); animation: hbbq-seal-spin 30s linear infinite; pointer-events: none; }
@keyframes hbbq-seal-spin { to { transform: rotate(360deg); } }
.hbbq-seal-k { font-size: 10.5px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #A9AEBB; }
.hbbq-seal-t { font-size: 18px; font-weight: 800; color: #F4D688; }

@media (max-width: 760px) {
	.hbbq-x.hbbq-cta img.hbbq-cta-bg { width: 100% !important; height: 55% !important; -webkit-mask-image: linear-gradient(180deg, #000, transparent); mask-image: linear-gradient(180deg, #000, transparent); }
	.hbbq .hbbq-invite-card { padding: 44px 20px 32px; }
	.hbbq .hbbq-invite-card .hbbq-facts { grid-template-columns: 1fr; }
	.hbbq-stub { letter-spacing: 2px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { .hbbq-cta-amt { animation: none; } }
