:root {
	--bayou: #09a226;
	--bayou-dark: #100b00;
	--bayou-soft: #0a7c22;
	--cayenne: #ff0000;
	--cayenne-dark: #b41414;
	--cayenne-soft: #d43a2f;
	--gold: #ffcc01;
	--gold-light: #ffff00;
	--festival-purple: #99449e;
	--purple-dark: #6f2576;
	--cream: #fff8e9;
	--paper: #fffbed;
	--ink: #100b00;
	--muted: #5d5545;
	--white: #ffffff;
	--shadow: 0 24px 70px rgba(16, 11, 0, 0.14);
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 90px;
}

body,
input,
textarea,
select {
	background: var(--cream);
	color: var(--muted);
	font-family: "DM Sans", "Source Sans Pro", sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.7;
}

body {
	background-image: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--ink);
	font-family: "Fraunces", Georgia, serif;
	font-weight: 800;
	letter-spacing: -0.035em;
}

a {
	color: var(--cayenne);
}

p {
	margin-bottom: 1.5em;
}

.skip-link {
	background: var(--gold);
	color: var(--ink);
	font-weight: 700;
	left: 1rem;
	padding: 0.75rem 1rem;
	position: fixed;
	text-decoration: none;
	top: -100px;
	z-index: 20000;
}

.skip-link:focus {
	top: 1rem;
}

.container {
	width: min(1180px, calc(100% - 64px));
}

.eyebrow {
	color: var(--cayenne);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.eyebrow.light {
	color: var(--gold-light);
}

.button,
input[type="button"],
input[type="submit"],
input[type="reset"],
button {
	background: var(--cayenne);
	border: 2px solid var(--cayenne);
	border-radius: 999px;
	box-shadow: none;
	color: var(--white) !important;
	font-family: "DM Sans", sans-serif;
	font-size: 0.88rem;
	font-weight: 700;
	letter-spacing: 0.015em;
	padding: 0.9em 1.8em;
	text-decoration: none;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.button:hover {
	background: var(--cayenne-dark);
	border-color: var(--cayenne-dark);
	transform: translateY(-2px);
}

.button.alt {
	background: transparent;
	border-color: currentColor;
	color: var(--bayou) !important;
}

.button.alt:hover {
	background: var(--bayou);
	border-color: var(--bayou);
	color: var(--white) !important;
}

.button.cream {
	background: var(--cream);
	border-color: var(--cream);
	color: var(--bayou) !important;
}

.button.cream:hover {
	background: var(--gold);
	border-color: var(--gold);
}

.button.large {
	font-size: 0.95rem;
	padding: 1em 2em;
}

.disabled-button {
	cursor: default;
	opacity: 0.78;
}

.disabled-button:hover {
	background: var(--cayenne);
	border-color: var(--cayenne);
	transform: none;
}

.disabled-button.button.alt:hover {
	background: transparent;
	border-color: currentColor;
	color: var(--bayou) !important;
}

ul.actions li {
	padding-left: 0;
}

/* Header and navigation */

#header {
	background: var(--cream);
	border: 0;
	padding: 0;
	text-align: left;
}

.topline {
	background: var(--bayou-dark);
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.topline .container {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-height: 38px;
}

.topline .icon {
	color: var(--gold);
	margin-right: 0.5rem;
}

.nav-shell {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-height: 108px;
}

#header h1.festival-logo {
	font-size: inherit;
	line-height: 1;
}

.festival-logo a,
.footer-logo {
	align-items: center;
	display: inline-flex;
	gap: 0.8rem;
	text-decoration: none;
}

.logo-mark {
	align-items: center;
	background: var(--cayenne);
	border-radius: 50% 50% 48% 52%;
	color: var(--cream) !important;
	display: inline-flex;
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.1rem;
	font-weight: 900;
	height: 52px;
	justify-content: center;
	letter-spacing: -0.08em;
	position: relative;
	transform: rotate(-4deg);
	width: 52px;
}

.logo-mark:after {
	border: 1px solid rgba(255, 248, 233, 0.55);
	border-radius: 50%;
	content: "";
	inset: 5px;
	position: absolute;
}

.logo-copy {
	color: var(--bayou);
	display: flex;
	flex-direction: column;
	font-family: "DM Sans", sans-serif;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.15;
	text-transform: uppercase;
}

.logo-copy strong {
	color: var(--bayou);
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.22rem;
	font-weight: 900;
	letter-spacing: -0.035em;
	text-transform: none;
}

#nav {
	margin: 0;
}

#nav > ul {
	align-items: center;
	display: flex;
	gap: 0.15rem;
	padding: 0;
}

#nav > ul > li {
	font-style: normal;
	margin: 0;
	padding: 0;
}

#nav > ul > li > a {
	border-radius: 999px;
	color: var(--bayou);
	font-size: 0.78rem;
	font-weight: 700;
	padding: 0.65rem 0.9rem;
}

#nav > ul > li.current > a {
	background: transparent;
	color: var(--cayenne) !important;
}

#nav > ul > li:hover > a,
#nav > ul > li.active > a {
	background: rgba(18, 55, 45, 0.07);
}

#nav > ul > li.nav-cta {
	margin-left: 0.6rem;
}

#nav > ul > li.nav-cta > a {
	background: var(--bayou);
	color: var(--white) !important;
	padding-left: 1.2rem;
	padding-right: 1.2rem;
}

#nav > ul > li.nav-cta:hover > a {
	background: var(--cayenne);
}

.language-toggle {
	align-items: center;
	background: var(--festival-purple);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 10px 26px rgba(153, 68, 158, 0.24);
	color: var(--white) !important;
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 0.68rem;
	font-weight: 900;
	gap: 0.45rem;
	letter-spacing: 0.08em;
	margin-left: 0.85rem;
	padding: 0.7rem 0.95rem;
	text-transform: uppercase;
}

.language-toggle:hover,
.language-toggle:focus-visible {
	background: var(--gold);
	color: var(--bayou-dark) !important;
	transform: translateY(-2px);
}

/* Hero */

#banner {
	background:
		linear-gradient(135deg, rgba(9, 162, 38, 0.86) 0%, rgba(7, 132, 33, 0.76) 46%, rgba(255, 204, 1, 0.28) 140%),
		url("../../images/gallery/festival-banner.png") center / cover no-repeat;
	margin: 0;
	min-height: 680px;
	overflow: hidden;
	padding: 0;
	position: relative;
	text-align: left;
}

#banner:before {
	background:
		linear-gradient(90deg, rgba(5, 112, 28, 0.96) 0%, rgba(9, 162, 38, 0.82) 44%, rgba(9, 162, 38, 0.08) 100%),
		radial-gradient(circle at 80% 28%, rgba(255, 255, 0, 0.34), transparent 30%),
		radial-gradient(circle at 62% 82%, rgba(153, 68, 158, 0.2), transparent 34%);
	content: "";
	inset: 0;
	position: absolute;
}

#banner:after {
	background:
		radial-gradient(circle, var(--gold) 0 2px, transparent 2.5px) 0 0 / 32px 32px;
	content: "";
	height: 360px;
	opacity: 0.11;
	position: absolute;
	right: -80px;
	top: 30px;
	transform: rotate(8deg);
	width: 520px;
}

.hero-noise {
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 50%;
	height: 540px;
	position: absolute;
	right: -120px;
	top: -180px;
	width: 540px;
}

.hero-noise:after {
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: inherit;
	content: "";
	inset: 55px;
	position: absolute;
}

.hero-inner {
	align-items: center;
	display: flex;
	gap: 3.5rem;
	justify-content: space-between;
	min-height: 590px;
	padding-bottom: 45px;
	padding-top: 45px;
	position: relative;
	z-index: 2;
}

.hero-copy {
	flex: 1 1 auto;
	max-width: 720px;
}

#banner .hero-copy > .eyebrow {
	animation: heroEyebrowGroove 3.4s ease-in-out infinite;
	color: #6f2478;
	display: inline-block;
	font-size: clamp(0.92rem, 1.35vw, 1.12rem);
	font-weight: 900;
	letter-spacing: 0.2em;
	text-shadow:
		0.055em 0.055em 0 var(--gold-light),
		0.105em 0.105em 0 rgba(255, 0, 0, 0.72),
		0 12px 22px rgba(16, 11, 0, 0.26);
	transform-origin: 50% 80%;
}

#banner .hero-copy > .hero-anniversary {
    align-items: center;
    display: inline-flex;
    flex-wrap: nowrap;
    font-family: 'Fraunces', Georgia, serif;
    font-size: clamp(0.72rem, 1.9vw, 1.52rem);
    font-weight: 900;
    gap: 0.06em 0.18em;
    letter-spacing: 0;
    line-height: 1.08;
    max-width: min(100%, 96vw);
    text-transform: none;
    white-space: nowrap;
}

#banner .hero-copy > .hero-anniversary span {
	color: var(--anniversary-color, var(--gold-light));
	display: inline-block;
	text-shadow:
		0.045em 0.045em 0 var(--bayou-dark),
		0.09em 0.09em 0 rgba(255, 0, 0, 0.68),
		0 12px 24px rgba(16, 11, 0, 0.28);
}

#banner .hero-copy > .hero-anniversary span:nth-child(6n + 1) {
	--anniversary-color: var(--gold-light);
}

#banner .hero-copy > .hero-anniversary span:nth-child(6n + 2) {
	--anniversary-color: var(--cream);
}

#banner .hero-copy > .hero-anniversary span:nth-child(6n + 3) {
	--anniversary-color: var(--gold);
}

#banner .hero-copy > .hero-anniversary span:nth-child(6n + 4) {
	--anniversary-color: var(--cayenne);
}

#banner .hero-copy > .hero-anniversary span:nth-child(6n + 5) {
	--anniversary-color: var(--bayou);
}

#banner .hero-copy > .hero-anniversary span:nth-child(6n) {
	--anniversary-color: var(--white);
}

#banner .hero-copy > .hero-anniversary span:nth-child(9) {
	--anniversary-color: var(--festival-purple);
}

#banner .hero-copy h2 {
	color: var(--cream);
	font-size: clamp(3.7rem, 7vw, 6.8rem);
	line-height: 0.91;
	margin: 0 0 0.32em;
	max-width: 790px;
	position: relative;
}

#banner .hero-copy h2 em {
	color: var(--gold-light);
	display: inline-block;
	font-style: italic;
	font-weight: 800;
	text-shadow:
		0.04em 0.04em 0 var(--festival-purple),
		0.075em 0.075em 0 rgba(255, 0, 0, 0.78),
		0 12px 34px rgba(255, 204, 1, 0.28);
	transform-origin: 50% 85%;
	transition: color 180ms ease, text-shadow 180ms ease;
}

#banner .hero-copy h2:after {
	color: var(--gold);
	content: "♪";
	font-size: 0.22em;
	opacity: 0;
	position: absolute;
	right: 10%;
	top: 12%;
	transform: rotate(-12deg) scale(0.85);
	transition: opacity 180ms ease, transform 180ms ease;
}

#banner .hero-copy h2:hover em,
#banner .hero-copy h2:focus-within em {
	animation: cajunSloganDance 720ms ease-in-out infinite;
	color: var(--gold);
	text-shadow:
		0.045em 0.045em 0 var(--festival-purple),
		0.09em 0.09em 0 var(--cayenne-soft),
		0 16px 34px rgba(255, 255, 0, 0.38);
}

#banner .hero-copy h2:hover:after,
#banner .hero-copy h2:focus-within:after {
	animation: cajunMusicNote 950ms ease-in-out infinite;
	opacity: 1;
}

@keyframes cajunSloganDance {
	0%, 100% {
		transform: rotate(0deg) translateY(0) scale(1);
	}
	22% {
		transform: rotate(-3deg) translateY(-0.02em) scale(1.02);
	}
	50% {
		transform: rotate(2.5deg) translateY(0.02em) scale(0.99);
	}
	75% {
		transform: rotate(-1.5deg) translateY(-0.01em) scale(1.015);
	}
}

@keyframes cajunMusicNote {
	0%, 100% {
		transform: translate(0, 0) rotate(-12deg) scale(0.85);
	}
	50% {
		transform: translate(0.35em, -0.45em) rotate(8deg) scale(1.15);
	}
}

#banner .hero-copy h2 em {
	animation: heroLeaveDanceFull 920ms ease-in-out infinite;
}

#banner .hero-copy h2:before,
#banner .hero-copy h2:after {
	color: var(--gold);
	font-family: "Fraunces", Georgia, serif;
	font-size: 0.22em;
	font-weight: 900;
	opacity: 0.92;
	pointer-events: none;
	position: absolute;
	text-shadow:
		0.06em 0.06em 0 var(--festival-purple),
		0 12px 22px rgba(16, 11, 0, 0.22);
	transition: opacity 180ms ease, transform 180ms ease;
}

#banner .hero-copy h2:before {
	animation: cajunMusicNoteLeft 1.15s ease-in-out infinite;
	content: "\266B";
	left: -0.12em;
	top: 54%;
	transform: rotate(14deg) scale(0.84);
}

#banner .hero-copy h2:after {
	animation: cajunMusicNote 950ms ease-in-out infinite;
	content: "\266A";
	right: 10%;
	top: 12%;
	transform: rotate(-12deg) scale(0.85);
}

#banner .hero-copy h2:hover em,
#banner .hero-copy h2:focus-within em {
	animation: heroLeaveDanceFull 920ms ease-in-out infinite;
}

@keyframes heroLeaveDanceFull {
	0%, 100% {
		color: var(--gold-light);
		text-shadow:
			0.04em 0.04em 0 var(--festival-purple),
			0.075em 0.075em 0 rgba(255, 0, 0, 0.78),
			0 12px 34px rgba(255, 204, 1, 0.28);
		transform: rotate(0deg) translateY(0) scale(1);
	}
	24% {
		transform: rotate(-3deg) translateY(-0.02em) scale(1.02);
	}
	50% {
		color: var(--gold);
		text-shadow:
			0.045em 0.045em 0 #702176,
			0.09em 0.09em 0 var(--cayenne-soft),
			0 16px 34px rgba(255, 255, 0, 0.36);
		transform: rotate(2.5deg) translateY(0.02em) scale(0.99);
	}
	76% {
		transform: rotate(-1.5deg) translateY(-0.01em) scale(1.015);
	}
}

@keyframes cajunMusicNoteLeft {
	0%, 100% {
		transform: translate(0, 0) rotate(14deg) scale(0.84);
	}
	50% {
		transform: translate(-0.3em, -0.42em) rotate(-9deg) scale(1.12);
	}
}

@keyframes heroEyebrowGroove {
	0%, 100% {
		text-shadow:
			0.055em 0.055em 0 var(--gold-light),
			0.105em 0.105em 0 rgba(255, 0, 0, 0.72),
			0 12px 22px rgba(16, 11, 0, 0.26);
		transform: rotate(0deg) translateY(0);
	}
	34% {
		text-shadow:
			0.045em 0.07em 0 var(--gold-light),
			0.12em 0.085em 0 rgba(255, 0, 0, 0.72),
			0 14px 24px rgba(16, 11, 0, 0.3);
		transform: rotate(-1.2deg) translateY(-0.03em);
	}
	68% {
		text-shadow:
			0.07em 0.04em 0 var(--gold-light),
			0.09em 0.12em 0 rgba(255, 0, 0, 0.72),
			0 10px 20px rgba(16, 11, 0, 0.24);
		transform: rotate(1deg) translateY(0.02em);
	}
}

@keyframes cajunColorSweep {
	0% {
		background-position: 0% 50%;
	}
	100% {
		background-position: 200% 50%;
	}
}

#nav > ul > li > a,
#footer .footer-links a,
.footer-home-link,
.text-link,
.directory-link,
a.lineup-note,
.section-heading h2,
.compact-heading h2,
.split-copy h2,
.plan-copy h2,
.updates-card h2,
.founder-story h2,
.contact-hero h2,
.directions-copy h2,
.entertainment-hero-copy h2,
.entertainment-note-panel h2,
.gallery-preview-copy h2,
.gallery-hero-copy h2,
.gallery-showcase-heading h2,
.video-copy h2,
.gumbo-hero-copy h2,
.sampling-copy h2,
.entry-main h2,
.form-download-panel h2,
.festival-feature h3,
.flavor-overlay h3,
.day-step strong,
.visitor-card h3,
.headliner-caption strong,
.lineup-teaser strong,
.culture-card h3,
.band-card h3,
.contact-card h3,
.priority-contact h2,
.gumbo-ingredient-card h3,
.cookoff-info-card h3,
.entry-details h3,
.footer-callout span {
	background-size: 200% auto;
	display: inline-block;
	position: relative;
	transform-origin: 50% 82%;
	transition: color 180ms ease, filter 180ms ease, text-shadow 180ms ease, transform 180ms ease;
}

#nav > ul > li > a::after,
#footer .footer-links a::after,
.footer-home-link::after,
.text-link::after,
.directory-link::after,
a.lineup-note::after,
.section-heading h2::after,
.compact-heading h2::after,
.split-copy h2::after,
.plan-copy h2::after,
.updates-card h2::after,
.founder-story h2::after,
.contact-hero h2::after,
.directions-copy h2::after,
.entertainment-hero-copy h2::after,
.entertainment-note-panel h2::after,
.gallery-preview-copy h2::after,
.gallery-hero-copy h2::after,
.gallery-showcase-heading h2::after,
.video-copy h2::after,
.gumbo-hero-copy h2::after,
.sampling-copy h2::after,
.entry-main h2::after,
.form-download-panel h2::after,
.festival-feature h3::after,
.flavor-overlay h3::after,
.day-step strong::after,
.visitor-card h3::after,
.headliner-caption strong::after,
.lineup-teaser strong::after,
.culture-card h3::after,
.band-card h3::after,
.contact-card h3::after,
.priority-contact h2::after,
.gumbo-ingredient-card h3::after,
.cookoff-info-card h3::after,
.entry-details h3::after,
.footer-callout span::after {
	color: var(--gold-light);
	content: "♪";
	font-family: "Fraunces", Georgia, serif;
	font-size: 0.44em;
	font-weight: 900;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: -0.85em;
	text-shadow: 0.06em 0.06em 0 var(--festival-purple), 0 8px 16px rgba(16, 11, 0, 0.22);
	top: -0.42em;
	transform: rotate(-12deg) scale(0.72);
	transition: opacity 160ms ease;
	-webkit-text-fill-color: var(--gold-light);
	z-index: 3;
}

#nav > ul > li > a:hover,
#nav > ul > li > a:focus-visible,
#footer .footer-links a:hover,
#footer .footer-links a:focus-visible,
.footer-home-link:hover,
.footer-home-link:focus-visible,
.text-link:hover,
.text-link:focus-visible,
.directory-link:hover,
.directory-link:focus-visible,
a.lineup-note:hover,
a.lineup-note:focus-visible,
.section-heading h2:hover,
.compact-heading h2:hover,
.split-copy h2:hover,
.plan-copy h2:hover,
.updates-card h2:hover,
.founder-story h2:hover,
.contact-hero h2:hover,
.directions-copy h2:hover,
.entertainment-hero-copy h2:hover,
.entertainment-note-panel h2:hover,
.gallery-preview-copy h2:hover,
.gallery-hero-copy h2:hover,
.gallery-showcase-heading h2:hover,
.video-copy h2:hover,
.gumbo-hero-copy h2:hover,
.sampling-copy h2:hover,
.entry-main h2:hover,
.form-download-panel h2:hover,
.festival-feature h3:hover,
.flavor-overlay h3:hover,
.day-step strong:hover,
.visitor-card h3:hover,
.headliner-caption strong:hover,
.lineup-teaser strong:hover,
.culture-card h3:hover,
.band-card h3:hover,
.contact-card h3:hover,
.priority-contact h2:hover,
.gumbo-ingredient-card h3:hover,
.cookoff-info-card h3:hover,
.entry-details h3:hover,
.footer-callout span:hover {
	animation: cajunSloganDance 720ms ease-in-out infinite, cajunColorSweep 2.3s linear infinite;
	background-image: linear-gradient(90deg, var(--gold-light), var(--gold), var(--festival-purple), var(--bayou), var(--cayenne-soft), var(--gold-light));
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent !important;
	filter: drop-shadow(0 8px 16px rgba(153, 68, 158, 0.22));
	-webkit-text-fill-color: transparent;
}

#nav > ul > li > a:hover::after,
#nav > ul > li > a:focus-visible::after,
#footer .footer-links a:hover::after,
#footer .footer-links a:focus-visible::after,
.footer-home-link:hover::after,
.footer-home-link:focus-visible::after,
.text-link:hover::after,
.text-link:focus-visible::after,
.directory-link:hover::after,
.directory-link:focus-visible::after,
a.lineup-note:hover::after,
a.lineup-note:focus-visible::after,
.section-heading h2:hover::after,
.compact-heading h2:hover::after,
.split-copy h2:hover::after,
.plan-copy h2:hover::after,
.updates-card h2:hover::after,
.founder-story h2:hover::after,
.contact-hero h2:hover::after,
.directions-copy h2:hover::after,
.entertainment-hero-copy h2:hover::after,
.entertainment-note-panel h2:hover::after,
.gallery-preview-copy h2:hover::after,
.gallery-hero-copy h2:hover::after,
.gallery-showcase-heading h2:hover::after,
.video-copy h2:hover::after,
.gumbo-hero-copy h2:hover::after,
.sampling-copy h2:hover::after,
.entry-main h2:hover::after,
.form-download-panel h2:hover::after,
.festival-feature h3:hover::after,
.flavor-overlay h3:hover::after,
.day-step strong:hover::after,
.visitor-card h3:hover::after,
.headliner-caption strong:hover::after,
.lineup-teaser strong:hover::after,
.culture-card h3:hover::after,
.band-card h3:hover::after,
.contact-card h3:hover::after,
.priority-contact h2:hover::after,
.gumbo-ingredient-card h3:hover::after,
.cookoff-info-card h3:hover::after,
.entry-details h3:hover::after,
.footer-callout span:hover::after {
	animation: cajunTextNote 900ms ease-in-out infinite;
	opacity: 1;
}

@keyframes cajunTextNote {
	0%, 100% {
		transform: translate(0, 0) rotate(-12deg) scale(0.72);
	}
	50% {
		transform: translate(0.26em, -0.44em) rotate(10deg) scale(1.08);
	}
}

#banner .hero-lead {
	color: rgba(255, 255, 255, 0.8);
	font-size: 1.06rem;
	line-height: 1.75;
	max-width: 610px;
}

.event-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem 1.4rem;
	margin: 1.7rem 0 0;
}

.event-meta span {
	align-items: center;
	color: rgba(255, 255, 255, 0.82);
	display: inline-flex;
	font-size: 0.72rem;
	gap: 0.45rem;
	letter-spacing: 0.03em;
}

.event-meta .icon {
	color: var(--gold);
}

.event-meta strong {
	color: inherit;
	font-weight: 700;
}

.hero-actions {
	margin: 1.75rem 0 0;
}

.hero-actions .button:not(.alt) {
	background: #702176;
	border-color: #702176;
	box-shadow: 0 16px 32px rgba(112, 33, 118, 0.34);
}

.hero-actions .button:not(.alt):hover {
	background: #5f1765;
	border-color: #5f1765;
	color: var(--white) !important;
}

.hero-actions .button.alt {
	border-color: rgba(255, 255, 255, 0.45);
	color: var(--white) !important;
}

.hero-actions .button.alt:hover {
	background: var(--cream);
	border-color: var(--cream);
	color: var(--bayou) !important;
}

.hero-artwork {
	flex: 0 0 310px;
	margin: 0 1rem 0 0;
	position: relative;
	transform: rotate(2deg);
	transform-origin: 50% 80%;
	transition: filter 180ms ease, transform 180ms ease;
}

.hero-artwork:before {
	background: var(--festival-purple);
	border-radius: 12px;
	content: "";
	inset: 15px -15px -15px 15px;
	position: absolute;
	transform: rotate(3deg);
	z-index: -1;
}

.hero-artwork:after {
	color: var(--gold-light);
	content: "♪";
	font-family: "Fraunces", Georgia, serif;
	font-size: 2.8rem;
	opacity: 0;
	position: absolute;
	right: -1.2rem;
	text-shadow:
		0.06em 0.06em 0 var(--festival-purple),
		0 10px 24px rgba(0, 0, 0, 0.24);
	top: -1.6rem;
	transform: rotate(10deg) scale(0.75);
	z-index: 3;
}

.hero-artwork:hover,
.hero-artwork:focus-within {
	animation: cajunSloganDance 760ms ease-in-out infinite;
	filter: drop-shadow(0 18px 32px rgba(153, 68, 158, 0.24));
}

.hero-artwork:hover:after,
.hero-artwork:focus-within:after {
	animation: cajunMusicNote 950ms ease-in-out infinite;
	opacity: 1;
}

.hero-artwork-frame {
	background: var(--cream);
	border: 7px solid var(--cream);
	border-radius: 10px;
	box-shadow: 0 28px 65px rgba(0, 0, 0, 0.34);
	overflow: hidden;
	position: relative;
}

.hero-artwork-frame:before,
.hero-artwork-frame:after {
	color: var(--gold);
	font-family: "Fraunces", Georgia, serif;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	text-shadow: 0.06em 0.06em 0 var(--cayenne-soft);
	z-index: 2;
}

.hero-artwork-frame:before {
	content: "♫";
	font-size: 2.1rem;
	left: 0.65rem;
	top: 0.45rem;
	transform: rotate(-14deg) scale(0.8);
}

.hero-artwork-frame:after {
	bottom: 0.6rem;
	content: "♬";
	font-size: 1.8rem;
	right: 0.75rem;
	transform: rotate(12deg) scale(0.8);
}

.hero-artwork:hover .hero-artwork-frame:before,
.hero-artwork:focus-within .hero-artwork-frame:before {
	animation: cajunArtworkNoteOne 1.1s ease-in-out infinite;
	opacity: 1;
}

.hero-artwork:hover .hero-artwork-frame:after,
.hero-artwork:focus-within .hero-artwork-frame:after {
	animation: cajunArtworkNoteTwo 1.25s ease-in-out infinite;
	opacity: 1;
}

.hero-artwork img {
	display: block;
	height: auto;
	transition: filter 180ms ease, transform 180ms ease;
	width: 100%;
}

.hero-artwork:hover img,
.hero-artwork:focus-within img {
	filter: saturate(1.12) contrast(1.04);
	transform: scale(1.015);
}

@keyframes cajunArtworkNoteOne {
	0%, 100% {
		transform: translate(0, 0) rotate(-14deg) scale(0.8);
	}
	50% {
		transform: translate(-0.25rem, -0.55rem) rotate(8deg) scale(1.08);
	}
}

@keyframes cajunArtworkNoteTwo {
	0%, 100% {
		transform: translate(0, 0) rotate(12deg) scale(0.8);
	}
	50% {
		transform: translate(0.25rem, -0.45rem) rotate(-8deg) scale(1.05);
	}
}

.hero-artwork figcaption {
	background: var(--gold);
	border-radius: 999px;
	bottom: -1rem;
	color: var(--bayou-dark) !important;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	padding: 0.55rem 0.85rem;
	position: absolute;
	right: -1.3rem;
	text-transform: uppercase;
	transform: rotate(-4deg);
	white-space: nowrap;
}

.hero-artwork figcaption .icon {
	color: var(--cayenne);
	margin-right: 0.35rem;
}

.hero-ribbon {
	background: var(--gold);
	bottom: 0;
	color: var(--bayou-dark);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	position: absolute;
	text-transform: uppercase;
	width: 100%;
	z-index: 3;
}

.hero-ribbon .container {
	display: flex;
	justify-content: space-between;
	padding-bottom: 1rem;
	padding-top: 1rem;
}

.hero-ribbon .icon {
	margin-right: 0.55rem;
}

/* Shared sections */

#main {
	background: var(--cream);
	padding: 0;
}

#main:before {
	display: none;
}

.section {
	padding: 7.5rem 0;
	position: relative;
}

.instrument-accent {
	--accent-delay: 0s;
	--accent-drift: 0.18rem;
	--accent-tilt: -5deg;
	align-items: center;
	background:
		radial-gradient(circle at 30% 24%, rgba(255, 255, 255, 0.72), transparent 34%),
		linear-gradient(145deg, rgba(255, 247, 220, 0.92), rgba(255, 204, 1, 0.22));
	border: 1px solid rgba(153, 68, 158, 0.18);
	border-radius: 999px;
	box-shadow: 0 18px 34px rgba(16, 11, 0, 0.13), 0 4px 12px rgba(153, 68, 158, 0.12);
	display: inline-flex;
	height: clamp(3.35rem, 5.4vw, 5.15rem);
	justify-content: center;
	opacity: 0.72;
	pointer-events: none;
	position: absolute;
	transform-origin: 50% 72%;
	width: clamp(3.35rem, 5.4vw, 5.15rem);
	z-index: 3;
	animation: cajunInstrumentFloat 5.8s ease-in-out infinite;
	animation-delay: var(--accent-delay);
}

.instrument-accent:before,
.instrument-accent:after {
	color: var(--gold-light);
	font-family: "Fraunces", Georgia, serif;
	font-weight: 900;
	opacity: 0.82;
	pointer-events: none;
	position: absolute;
	text-shadow: 0.07em 0.07em 0 var(--festival-purple), 0 8px 16px rgba(16, 11, 0, 0.2);
	z-index: 4;
}

.instrument-accent:before {
	content: "\266A";
	font-size: clamp(0.9rem, 1.7vw, 1.35rem);
	left: -0.42rem;
	top: -0.42rem;
	animation: cajunInstrumentNoteOne 2.7s ease-in-out infinite;
	animation-delay: var(--accent-delay);
}

.instrument-accent:after {
	content: "\266B";
	bottom: -0.34rem;
	font-size: clamp(0.82rem, 1.45vw, 1.2rem);
	right: -0.28rem;
	animation: cajunInstrumentNoteTwo 3.05s ease-in-out infinite;
	animation-delay: calc(var(--accent-delay) - 0.45s);
}

.instrument-glyph {
	align-items: center;
	display: inline-flex;
	height: 100%;
	justify-content: center;
	position: relative;
	width: 100%;
	animation: cajunInstrumentShimmy 1.9s ease-in-out infinite;
	animation-delay: var(--accent-delay);
}

.instrument-glyph:before {
	content: var(--instrument-symbol, "\266B");
	font-size: clamp(1.75rem, 3.45vw, 3rem);
	filter: drop-shadow(0 7px 9px rgba(16, 11, 0, 0.18));
	line-height: 1;
	transform: rotate(var(--accent-tilt));
}

.accent-accordion {
	--accent-delay: -0.3s;
	--accent-tilt: -7deg;
	--instrument-symbol: "\1FA97";
}

.accent-fiddle {
	--accent-delay: -1.2s;
	--accent-tilt: 8deg;
	--instrument-symbol: "\1F3BB";
}

.accent-guitar {
	--accent-delay: -2s;
	--accent-tilt: -10deg;
	--instrument-symbol: "\1F3B8";
}

.accent-rubboard {
	--accent-delay: -1.7s;
	--accent-tilt: 6deg;
}

.accent-rubboard .instrument-glyph:before {
	background:
		linear-gradient(90deg, rgba(255, 255, 255, 0.66), transparent 28%, rgba(255, 255, 255, 0.5) 48%, transparent 68%),
		repeating-linear-gradient(90deg, #d9d3c0 0 0.18rem, #7b7462 0.18rem 0.31rem);
	border: 0.18rem solid var(--bayou-dark);
	border-radius: 0.32rem;
	content: "";
	height: 2.15rem;
	position: absolute;
	transform: rotate(var(--accent-tilt));
	width: 1.55rem;
}

.accent-rubboard .instrument-glyph:after {
	background: var(--cayenne-soft);
	border-radius: 999px;
	box-shadow: 0.72rem 0.18rem 0 -0.05rem var(--cayenne-soft);
	content: "";
	height: 0.38rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-0.35rem, -0.9rem) rotate(-15deg);
	width: 0.38rem;
}

.accent-upper-right {
	right: clamp(0.95rem, 4vw, 3.4rem);
	top: clamp(2rem, 5vw, 4.6rem);
}

.accent-upper-left {
	left: clamp(0.95rem, 4vw, 3.4rem);
	top: clamp(2rem, 5vw, 4.6rem);
}

.accent-lower-right {
	bottom: clamp(1.8rem, 5vw, 4.2rem);
	right: clamp(0.95rem, 4vw, 3.4rem);
}

.accent-lower-left {
	bottom: clamp(1.8rem, 5vw, 4.2rem);
	left: clamp(0.95rem, 4vw, 3.4rem);
}

.accent-hero-left {
	left: clamp(1rem, 4vw, 3.6rem);
	top: clamp(8.5rem, 15vw, 12.5rem);
}

@keyframes cajunInstrumentFloat {
	0%, 100% {
		transform: translateY(0) rotate(0deg) scale(1);
	}
	34% {
		transform: translateY(calc(var(--accent-drift) * -1)) rotate(-2.5deg) scale(1.015);
	}
	68% {
		transform: translateY(var(--accent-drift)) rotate(2deg) scale(0.995);
	}
}

@keyframes cajunInstrumentShimmy {
	0%, 100% {
		transform: rotate(0deg);
	}
	28% {
		transform: rotate(-5deg);
	}
	58% {
		transform: rotate(4deg);
	}
}

@keyframes cajunInstrumentNoteOne {
	0%, 100% {
		opacity: 0.45;
		transform: translate(0, 0) rotate(-12deg) scale(0.82);
	}
	50% {
		opacity: 0.92;
		transform: translate(-0.22rem, -0.42rem) rotate(10deg) scale(1.05);
	}
}

@keyframes cajunInstrumentNoteTwo {
	0%, 100% {
		opacity: 0.42;
		transform: translate(0, 0) rotate(14deg) scale(0.78);
	}
	50% {
		opacity: 0.88;
		transform: translate(0.24rem, -0.34rem) rotate(-8deg) scale(1.04);
	}
}

.section-heading {
	max-width: 680px;
}

.section-heading.centered {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.flagged-tagline {
	align-items: center;
	display: flex;
	gap: clamp(0.8rem, 2vw, 1.35rem);
	justify-content: center;
	margin-bottom: 1.45rem;
}

.flagged-tagline h2 {
	margin-bottom: 0;
}

.heart-word {
	color: var(--cayenne);
	display: inline-block;
	filter: drop-shadow(0 8px 14px rgba(212, 58, 47, 0.18));
	line-height: 1;
	margin: 0 0.04em;
	text-shadow: 0.045em 0.045em 0 var(--gold), 0 0.08em 0.28em rgba(16, 11, 0, 0.18);
	transform-origin: 50% 70%;
	vertical-align: -0.02em;
	-webkit-text-fill-color: var(--cayenne);
}

.flagged-tagline h2:hover .heart-word,
.flagged-tagline h2:focus-visible .heart-word {
	animation: cajunHeartBeat 720ms ease-in-out infinite;
	color: var(--cayenne);
	-webkit-text-fill-color: var(--cayenne);
}

.tagline-flag {
	aspect-ratio: 3 / 2;
	display: inline-flex;
	flex: 0 0 clamp(6.25rem, 13.5vw, 11.5rem);
	position: relative;
	transform-origin: 50% 75%;
	width: clamp(6.25rem, 13.5vw, 11.5rem);
}

.tagline-flag svg,
.tagline-flag img {
	border-radius: 0.45rem;
	box-shadow: 0 22px 42px rgba(16, 11, 0, 0.22), 0 6px 14px rgba(16, 11, 0, 0.13);
	display: block;
	height: auto;
	overflow: visible;
	transform-origin: left center;
	transition: filter 180ms ease, transform 180ms ease;
	width: 100%;
}

.tagline-flag img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.tagline-flag:after {
	color: var(--gold-light);
	content: "\266B";
	font-family: "Fraunces", Georgia, serif;
	font-size: clamp(1rem, 2vw, 1.55rem);
	font-weight: 900;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	text-shadow: 0.08em 0.08em 0 var(--festival-purple), 0 9px 16px rgba(16, 11, 0, 0.24);
	top: -0.75rem;
	transform: rotate(-12deg) scale(0.76);
	transition: opacity 160ms ease;
	z-index: 4;
}

.flag-louisiana:after {
	left: -0.55rem;
}

.flag-texas:after {
	content: "\266A";
	right: -0.55rem;
}

.tagline-flag:hover,
.tagline-flag:focus-visible {
	animation: cajunFlagDance 720ms ease-in-out infinite;
	filter: drop-shadow(0 16px 24px rgba(153, 68, 158, 0.25));
}

.tagline-flag:hover svg,
.tagline-flag:focus-visible svg,
.tagline-flag:hover img,
.tagline-flag:focus-visible img {
	animation: cajunFlagWave 820ms ease-in-out infinite;
	filter: saturate(1.1) contrast(1.04);
}

.tagline-flag:hover:after,
.tagline-flag:focus-visible:after {
	animation: cajunTextNote 900ms ease-in-out infinite;
	opacity: 1;
}

@keyframes cajunFlagDance {
	0%, 100% {
		transform: rotate(0deg) translateY(0) scale(1);
	}
	28% {
		transform: rotate(-4deg) translateY(-0.12rem) scale(1.03);
	}
	56% {
		transform: rotate(3deg) translateY(0.08rem) scale(0.99);
	}
	78% {
		transform: rotate(-1.5deg) translateY(-0.05rem) scale(1.015);
	}
}

@keyframes cajunFlagWave {
	0%, 100% {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
		transform: rotateY(0deg) skewY(0deg);
	}
	35% {
		clip-path: polygon(0 3%, 100% 0, 100% 97%, 0 100%);
		transform: rotateY(-10deg) skewY(-1.7deg);
	}
	70% {
		clip-path: polygon(0 0, 100% 4%, 100% 100%, 0 96%);
		transform: rotateY(8deg) skewY(1.5deg);
	}
}

@keyframes cajunHeartBeat {
	0%, 100% {
		transform: rotate(0deg) scale(1);
	}
	32% {
		transform: rotate(-5deg) scale(1.16);
	}
	58% {
		transform: rotate(4deg) scale(0.98);
	}
}

.section-heading h2 {
	font-size: clamp(2.6rem, 5vw, 4.4rem);
	line-height: 1.04;
	margin-bottom: 0.35em;
}

.section-heading > p:last-child {
	font-size: 1.04rem;
}

/* Feature cards */

.section-intro {
	background: var(--cream);
}

.feature-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 4rem;
}

.festival-feature {
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.09);
	border-radius: 18px;
	box-shadow: 0 15px 55px rgba(18, 55, 45, 0.07);
	min-height: 390px;
	overflow: hidden;
	padding: 2.6rem;
	position: relative;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.festival-feature:hover {
	box-shadow: var(--shadow);
	transform: translateY(-7px);
}

.festival-feature.featured-card {
	background:
		radial-gradient(circle at 76% 16%, rgba(255, 204, 1, 0.3), transparent 34%),
		linear-gradient(145deg, var(--purple-dark) 0%, var(--festival-purple) 58%, rgba(255, 204, 1, 0.84) 165%);
	transform: translateY(22px);
}

.festival-feature.featured-card:hover {
	transform: translateY(15px);
}

.featured-card h3,
.featured-card p {
	color: var(--white) !important;
}

.featured-card p {
	opacity: 0.72;
}

.feature-number {
	color: rgba(18, 55, 45, 0.09);
	font-family: "Fraunces", Georgia, serif;
	font-size: 6rem;
	font-weight: 900;
	line-height: 1;
	position: absolute;
	right: 1rem;
	top: 0.5rem;
}

.featured-card .feature-number {
	color: rgba(255, 255, 255, 0.08);
}

.feature-icon {
	align-items: center;
	background: linear-gradient(145deg, var(--gold), var(--festival-purple));
	border-radius: 50%;
	color: var(--white) !important;
	display: flex;
	font-size: 1.3rem;
	height: 58px;
	justify-content: center;
	margin-bottom: 2rem;
	width: 58px;
}

.festival-feature h3 {
	font-size: 1.65rem;
	line-height: 1.1;
	margin-bottom: 0.75rem;
}

.festival-feature p {
	font-size: 0.9rem;
}

.text-link {
	color: var(--cayenne);
	font-size: 0.8rem;
	font-weight: 700;
	text-decoration: none;
}

.featured-card .text-link {
	color: var(--gold-light);
}

.text-link span {
	display: inline-block;
	margin-left: 0.25rem;
	transition: transform 180ms ease;
}

.text-link:hover span {
	transform: translateX(5px);
}

/* Gallery */

.gallery-preview-section {
	background: var(--paper);
	overflow: hidden;
	padding-top: 0;
	position: relative;
}

.gallery-preview-panel {
	align-items: center;
	background:
		radial-gradient(circle at 12% 18%, rgba(255, 204, 1, 0.22), transparent 34%),
		radial-gradient(circle at 92% 12%, rgba(153, 68, 158, 0.22), transparent 32%),
		linear-gradient(135deg, rgba(180, 20, 20, 0.96) 0%, rgba(255, 0, 0, 0.78) 48%, rgba(255, 0, 0, 0.18) 100%),
		url("../../images/gallery/gumbo-sampling-family.png") center / cover no-repeat;
	border-radius: 28px;
	box-shadow: 0 26px 80px rgba(180, 20, 20, 0.18);
	color: rgba(255, 255, 255, 0.78);
	display: grid;
	gap: 2.4rem;
	grid-template-columns: 0.78fr 1.22fr;
	padding: 2.5rem;
	position: relative;
}

.gallery-preview-copy h2,
.gallery-hero-copy h2,
.gallery-showcase-heading h2 {
	color: var(--cream);
	font-size: clamp(2.6rem, 5vw, 4.6rem);
	line-height: 1;
	margin-bottom: 0.32em;
}

.gallery-preview-copy p {
	color: rgba(255, 255, 255, 0.78);
	max-width: 430px;
}

.gallery-preview-copy .eyebrow.light {
	color: var(--gold-light);
}

.gallery-preview-copy h2 {
	color: var(--cream);
}

.festival-gallery-slider {
	min-width: 0;
	position: relative;
}

.gallery-stage {
	position: relative;
}

.gallery-frame {
	background: var(--bayou-dark);
	border: 8px solid rgba(255, 248, 233, 0.92);
	border-radius: 22px;
	box-shadow: 0 20px 60px rgba(16, 11, 0, 0.24);
	margin: 0;
	overflow: hidden;
	position: relative;
}

.gallery-frame img {
	display: block;
	height: 390px;
	object-fit: cover;
	opacity: 1;
	transition: opacity 160ms ease, transform 260ms ease;
	width: 100%;
}

.gallery-frame img.is-changing {
	opacity: 0;
	transform: scale(1.015);
}

.gallery-frame figcaption {
	background: linear-gradient(90deg, rgba(16, 11, 0, 0.82), rgba(16, 11, 0, 0.18));
	bottom: 0;
	color: var(--cream);
	font-size: 0.8rem;
	font-weight: 800;
	left: 0;
	letter-spacing: 0.02em;
	padding: 1rem 1.25rem;
	position: absolute;
	right: 0;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.38);
}

.gallery-control {
	align-items: center;
	background: var(--gold);
	border: 0;
	border-radius: 50%;
	box-shadow: 0 10px 30px rgba(16, 11, 0, 0.22);
	color: var(--bayou-dark) !important;
	cursor: pointer;
	display: flex;
	height: 46px;
	justify-content: center;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: transform 180ms ease, background 180ms ease;
	width: 46px;
	z-index: 5;
}

.gallery-control:hover,
.gallery-control:focus-visible {
	background: var(--gold-light);
	transform: translateY(-50%) scale(1.08) rotate(-4deg);
}

.gallery-prev {
	left: 1rem;
}

.gallery-next {
	right: 1rem;
}

.gallery-thumbs {
	display: grid;
	gap: 0.55rem;
	grid-template-columns: repeat(6, 1fr);
	margin-top: 0.85rem;
}

.gallery-thumbs button {
	background: rgba(255, 248, 233, 0.28);
	border: 2px solid transparent;
	border-radius: 12px;
	cursor: pointer;
	height: 64px;
	opacity: 0.68;
	overflow: hidden;
	padding: 0;
	transition: opacity 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.gallery-thumbs button:hover,
.gallery-thumbs button:focus-visible,
.gallery-thumbs button.is-active {
	border-color: var(--gold-light);
	opacity: 1;
	transform: translateY(-2px);
}

.gallery-thumbs img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.gallery-empty {
	background: rgba(255, 248, 233, 0.9);
	border-radius: 18px;
	color: var(--bayou-dark);
	font-weight: 800;
	padding: 2rem;
	text-align: center;
}

.gallery-hero {
	background:
		radial-gradient(circle at 82% 16%, rgba(255, 204, 1, 0.26), transparent 34%),
		linear-gradient(110deg, rgba(111, 37, 118, 0.98) 0%, rgba(153, 68, 158, 0.84) 54%, rgba(153, 68, 158, 0.24) 100%),
		url("../../images/gallery/festival-banner.png") center / cover no-repeat;
	color: rgba(255, 255, 255, 0.75);
	overflow: hidden;
	padding: 5rem 0 5.5rem;
	position: relative;
}

.gallery-hero-inner {
	align-items: center;
	display: grid;
	gap: 4rem;
	grid-template-columns: minmax(0, 1fr) 390px;
	position: relative;
	z-index: 1;
}

.gallery-hero-copy p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.76);
	font-size: 1rem;
	max-width: 720px;
}

.gallery-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-top: 2rem;
}

.gallery-hero-card {
	background: rgba(255, 248, 233, 0.9);
	border-radius: 22px;
	box-shadow: 0 22px 65px rgba(16, 11, 0, 0.24);
	padding: 0.9rem;
	transform: rotate(2deg);
}

.gallery-hero-card img {
	border-radius: 16px;
	display: block;
	height: 300px;
	object-fit: cover;
	width: 100%;
}

.gallery-hero-card span {
	color: var(--bayou-dark);
	display: block;
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	padding: 0.9rem 0.45rem 0.2rem;
	text-transform: uppercase;
}

.gallery-page-showcase {
	background: var(--paper);
}

.gallery-showcase-heading {
	margin-bottom: 2.3rem;
	max-width: 720px;
}

.gallery-showcase-heading h2 {
	color: var(--ink);
}

.gallery-slider-large .gallery-frame img {
	height: min(62vw, 620px);
	min-height: 420px;
}

.gallery-slider-large .gallery-thumbs {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-grid-section {
	background: var(--cream);
}

.gallery-year-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
	margin: -0.5rem auto 2.5rem;
	max-width: 780px;
}

.gallery-year-filter button {
	align-items: center;
	background: linear-gradient(135deg, var(--festival-purple), var(--purple-dark));
	border: 2px solid rgba(255, 248, 233, 0.78);
	border-radius: 999px;
	box-shadow: 0 10px 24px rgba(16, 11, 0, 0.11);
	color: var(--cream) !important;
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: 900;
	gap: 0.55rem;
	min-height: 44px;
	padding: 0.55rem 1rem;
	transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gallery-year-filter button:nth-child(3n + 1) {
	background: linear-gradient(135deg, var(--gold), var(--gold-light));
	border-color: var(--bayou);
	color: var(--bayou-dark) !important;
}

.gallery-year-filter button:nth-child(3n + 2) {
	background: linear-gradient(135deg, var(--bayou), var(--bayou-soft));
	border-color: rgba(255, 248, 233, 0.78);
	color: var(--white) !important;
}

.gallery-year-filter button:nth-child(3n) {
	background: linear-gradient(135deg, var(--festival-purple), var(--cayenne-soft));
	border-color: rgba(255, 248, 233, 0.78);
	color: var(--white) !important;
}

.gallery-year-filter button:hover,
.gallery-year-filter button:focus-visible,
.gallery-year-filter button.is-active {
	background: var(--gold);
	border-color: var(--bayou);
	box-shadow: 0 12px 30px rgba(18, 55, 45, 0.12);
	color: var(--bayou-dark) !important;
	transform: translateY(-1px);
}

.gallery-year-filter small {
	color: currentColor;
	font-size: 0.68rem;
	font-weight: 900;
	opacity: 0.78;
	text-transform: uppercase;
}

.gallery-grid {
	display: block;
}

.gallery-year-group + .gallery-year-group {
	margin-top: 3.4rem;
}

.gallery-year-heading {
	align-items: end;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.gallery-year-heading .eyebrow {
	margin-bottom: 0.35rem;
}

.gallery-year-heading h3 {
	color: var(--ink);
	font-size: 1.95rem;
	line-height: 1.1;
	margin: 0;
}

.gallery-year-heading > span {
	background: rgba(9, 162, 38, 0.12);
	border: 1px solid rgba(9, 162, 38, 0.2);
	border-radius: 999px;
	color: var(--bayou-dark);
	flex: 0 0 auto;
	font-size: 0.72rem;
	font-weight: 900;
	padding: 0.45rem 0.75rem;
	text-transform: uppercase;
}

.gallery-grid-group {
	display: grid;
	gap: 1.15rem;
	grid-template-columns: repeat(3, 1fr);
}

.gallery-grid-item {
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.08);
	border-radius: 18px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, 0.08);
	margin: 0;
	overflow: hidden;
}

.gallery-grid-item img {
	display: block;
	height: 270px;
	object-fit: cover;
	width: 100%;
}

.gallery-grid-item figcaption {
	align-items: flex-start;
	color: var(--bayou-dark);
	display: flex;
	flex-direction: column;
	font-size: 0.78rem;
	font-weight: 800;
	gap: 0.55rem;
	padding: 1rem 1.1rem 1.15rem;
}

.gallery-item-year {
	align-self: flex-start;
	background: var(--bayou);
	border-radius: 999px;
	color: var(--white);
	font-size: 0.62rem;
	font-weight: 900;
	letter-spacing: 0;
	line-height: 1;
	padding: 0.38rem 0.58rem;
	text-transform: uppercase;
}

/* Music split */

.music-section {
	background: var(--bayou);
	color: rgba(255, 255, 255, 0.7);
	overflow: hidden;
}

.split-layout {
	align-items: center;
	display: grid;
	gap: 7rem;
	grid-template-columns: 1.05fr 0.95fr;
}

.visual-stack {
	min-height: 570px;
	position: relative;
}

.visual-card {
	border: 7px solid var(--cream);
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.3);
	overflow: hidden;
	position: absolute;
}

.visual-card img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.visual-card:after {
	content: "";
	inset: 0;
	position: absolute;
}

.visual-card-main {
	height: 470px;
	left: 0;
	top: 0;
	transform: rotate(-3deg);
	width: 78%;
}

.visual-card-main:after {
	background: linear-gradient(145deg, rgba(12, 53, 43, 0.1), rgba(217, 74, 47, 0.58));
}

.visual-card-main.headliner-photo:after {
	background: linear-gradient(180deg, transparent 45%, rgba(5, 112, 28, 0.9) 100%);
}

.headliner-photo img {
	object-position: center 32%;
}

.headliner-caption {
	bottom: 1.4rem;
	left: 1.5rem;
	position: absolute;
	right: 1.5rem;
	z-index: 2;
}

.headliner-caption > span {
	background: var(--festival-purple);
	border-radius: 999px;
	color: var(--white);
	display: inline-flex;
	font-size: 0.62rem;
	font-weight: 800;
	gap: 0.35rem;
	letter-spacing: 0.14em;
	margin-bottom: 0.35rem;
	padding: 0.45rem 0.7rem;
	text-transform: uppercase;
}

.headliner-caption > span .icon {
	margin-right: 0.35rem;
}

.headliner-caption strong {
	color: var(--cream);
	display: block;
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.55rem;
	line-height: 1.02;
}

.headliner-caption strong small {
	color: rgba(255, 255, 255, 0.8);
	display: block;
	font-family: "DM Sans", sans-serif;
	font-size: 0.58em;
	font-weight: 600;
	letter-spacing: 0.01em;
	margin-top: 0.2rem;
}

.visual-card-small {
	bottom: 0;
	height: 260px;
	right: 0;
	transform: rotate(5deg);
	width: 48%;
	z-index: 2;
}

.visual-card-small:after {
	background: rgba(233, 173, 55, 0.42);
}

.visual-card-small span {
	bottom: 1.1rem;
	color: var(--white);
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.35rem;
	font-style: italic;
	font-weight: 800;
	left: 1.2rem;
	position: absolute;
	z-index: 2;
}

a.visual-card {
	text-decoration: none;
}

.visual-card-small.dance-card {
	color: var(--white);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.visual-card-small.dance-card:hover,
.visual-card-small.dance-card:focus-visible {
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.38);
	transform: rotate(4deg) translateY(-6px);
}

.visual-card-small.dance-card small {
	color: var(--gold-light);
	display: block;
	font-family: "DM Sans", sans-serif;
	font-size: 0.48em;
	font-style: normal;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin-top: 0.2rem;
	text-transform: uppercase;
}

.visual-label {
	align-items: center;
	background: var(--gold);
	bottom: 1.5rem;
	color: var(--bayou);
	display: flex;
	font-size: 0.75rem;
	font-weight: 800;
	gap: 0.6rem;
	left: 1.5rem;
	letter-spacing: 0.08em;
	padding: 0.75rem 1rem;
	position: absolute;
	text-transform: uppercase;
	z-index: 2;
}

.decorative-sun {
	border: 1px solid rgba(233, 173, 55, 0.42);
	border-radius: 50%;
	height: 250px;
	left: -100px;
	position: absolute;
	top: 170px;
	width: 250px;
}

.decorative-sun:after {
	border: 1px solid rgba(233, 173, 55, 0.2);
	border-radius: inherit;
	content: "";
	inset: 30px;
	position: absolute;
}

.split-copy h2 {
	color: var(--cream);
	font-size: clamp(2.8rem, 5vw, 4.6rem);
	line-height: 1.02;
	margin-bottom: 0.45em;
}

.split-copy p {
	color: rgba(255, 255, 255, 0.68);
}

.split-copy .lead {
	color: var(--white);
	font-size: 1.1rem;
}

.lineup-teaser {
	align-items: center;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	display: flex;
	justify-content: space-between;
	margin-top: 2.4rem;
	padding: 1.5rem 0;
}

.lineup-teaser div {
	display: flex;
	flex-direction: column;
}

.teaser-label {
	color: var(--gold);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.lineup-teaser strong {
	color: var(--cream);
	font-size: 0.9rem;
}

.lineup-note {
	color: rgba(255, 255, 255, 0.58);
	font-size: 0.7rem;
	font-style: italic;
	text-align: right;
}

a.lineup-note {
	color: var(--gold-light);
	font-style: normal;
	font-weight: 800;
	text-decoration: none;
}

a.lineup-note:hover {
	color: var(--white);
}

.circle-link {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 50%;
	color: var(--white);
	display: flex;
	height: 48px;
	justify-content: center;
	text-decoration: none;
	transition: background 180ms ease, color 180ms ease;
	width: 48px;
}

.circle-link:hover {
	background: var(--gold);
	color: var(--bayou);
}

/* Food cards */

.flavors-section {
	background: var(--paper);
}

.flavor-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1.35fr 0.825fr 0.825fr;
	margin-top: 3.5rem;
}

.flavor-card {
	border-radius: 18px;
	height: 420px;
	overflow: hidden;
	position: relative;
}

a.flavor-card {
	color: inherit;
	display: block;
	text-decoration: none;
}

a.flavor-card:focus-visible {
	outline: 4px solid var(--gold);
	outline-offset: 5px;
}

.flavor-card img {
	height: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
	width: 100%;
}

.flavor-card:hover img {
	transform: scale(1.05);
}

.flavor-card-wide img {
	object-position: center 38%;
}

.flavor-card:after {
	background: linear-gradient(180deg, transparent 25%, rgba(7, 30, 24, 0.88) 100%);
	content: "";
	inset: 0;
	position: absolute;
}

.flavor-card-wide:before {
	background: rgba(23, 87, 68, 0.25);
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.red-card:before,
.gold-card:before {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.red-card:before {
	background: rgba(160, 42, 27, 0.5);
}

.gold-card:before {
	background: rgba(188, 122, 15, 0.35);
}

.flavor-overlay {
	bottom: 0;
	color: var(--white);
	left: 0;
	padding: 2.2rem;
	position: absolute;
	z-index: 3;
}

.flavor-overlay h3 {
	color: var(--white);
	font-size: 2rem;
	line-height: 1.05;
	margin-bottom: 0.4rem;
}

.flavor-overlay p {
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.85rem;
	margin: 0;
}

.card-click-cue {
	align-items: center;
	background: var(--festival-purple);
	border-radius: 999px;
	box-shadow: 0 12px 28px rgba(153, 68, 158, 0.28);
	color: var(--white);
	display: inline-flex;
	font-size: 0.68rem;
	font-weight: 900;
	gap: 0.45rem;
	letter-spacing: 0.08em;
	margin-top: 1.1rem;
	padding: 0.65rem 0.9rem;
	text-transform: uppercase;
	transition: transform 180ms ease, background 180ms ease, color 180ms ease;
}

.flavor-card:hover .card-click-cue,
.flavor-card:focus-visible .card-click-cue {
	background: var(--gold);
	color: var(--bayou-dark);
	transform: translateX(6px);
}

.card-kicker {
	color: var(--gold-light);
	display: block;
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	margin-bottom: 0.6rem;
	text-transform: uppercase;
}

.flavor-overlay > .icon {
	color: var(--gold-light);
	font-size: 1.4rem;
	margin-bottom: 1rem;
}

.food-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-top: 1.5rem;
}

.food-list span {
	background: rgba(18, 55, 45, 0.07);
	border: 1px solid rgba(18, 55, 45, 0.09);
	border-radius: 999px;
	color: var(--bayou);
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.55rem 0.9rem;
}

/* Day flow */

.day-section {
	background: var(--cream);
}

.day-flow {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
	margin-top: 4rem;
}

.day-step {
	flex: 0 1 190px;
	text-align: center;
}

.step-icon {
	align-items: center;
	background: linear-gradient(145deg, var(--festival-purple), var(--purple-dark));
	border: 7px solid var(--paper);
	border-radius: 50%;
	color: var(--gold);
	display: flex;
	font-size: 1.2rem;
	height: 76px;
	justify-content: center;
	margin: 0 auto 1.2rem;
	width: 76px;
}

.day-step strong {
	color: var(--ink);
	display: block;
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.15rem;
	margin-bottom: 0.25rem;
}

.day-step p {
	font-size: 0.77rem;
	line-height: 1.55;
	margin: 0;
}

.day-line {
	border-top: 1px dashed rgba(18, 55, 45, 0.3);
	flex: 1 1 auto;
	margin: 38px 0.75rem 0;
}

/* Planning */

.plan-section {
	background: var(--paper);
	padding-top: 1rem;
}

.plan-panel {
	background:
		radial-gradient(circle at 12% 18%, rgba(255, 255, 0, 0.18), transparent 34%),
		radial-gradient(circle at 78% 20%, rgba(255, 204, 1, 0.14), transparent 30%),
		linear-gradient(135deg, rgba(111, 37, 118, 0.98) 0%, rgba(153, 68, 158, 0.88) 56%, rgba(153, 68, 158, 0.26) 100%);
	border-radius: 22px;
	box-shadow: 0 25px 75px rgba(16, 11, 0, 0.18);
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	overflow: hidden;
}

.plan-copy {
	padding: 4.5rem;
}

.plan-copy h2 {
	color: var(--cream);
	font-size: clamp(2.6rem, 5vw, 4.2rem);
	line-height: 1;
	margin-bottom: 0.45em;
}

.plan-copy p {
	color: rgba(255, 255, 255, 0.78);
	max-width: 610px;
}

.plan-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.plan-details {
	background: linear-gradient(180deg, rgba(111, 37, 118, 0.96), rgba(81, 22, 88, 0.96));
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2.5rem 3.5rem;
}

.plan-detail {
	align-items: center;
	border-bottom: 1px solid rgba(255, 255, 255, 0.13);
	display: flex;
	gap: 1.25rem;
	padding: 1.25rem 0;
}

.plan-detail:last-child {
	border-bottom: 0;
}

.plan-detail > .icon {
	align-items: center;
	background: rgba(255, 255, 255, 0.09);
	border-radius: 50%;
	color: var(--gold);
	display: flex;
	flex: 0 0 48px;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.plan-detail div {
	display: flex;
	flex-direction: column;
}

.plan-detail span {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.plan-detail strong {
	color: var(--white);
	font-size: 0.9rem;
}

.merch-showcase {
	align-items: center;
	background:
		radial-gradient(circle at 12% 12%, rgba(255, 255, 255, 0.45), transparent 32%),
		radial-gradient(circle at 86% 22%, rgba(153, 68, 158, 0.14), transparent 34%),
		linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 58%, #f3b33a 100%);
	border-radius: 18px;
	box-shadow: 0 22px 60px rgba(18, 55, 45, 0.14), inset 0 0 0 1px rgba(16, 11, 0, 0.06);
	display: flex;
	flex-direction: column;
	margin: 1.5rem 0 0;
	overflow: hidden;
	padding: 2.5rem 2rem 2rem;
	position: relative;
}

.merch-showcase:before,
.merch-showcase:after {
	border: 1px solid rgba(153, 68, 158, 0.18);
	border-radius: 50%;
	content: "";
	height: 290px;
	position: absolute;
	width: 290px;
}

.merch-showcase:before {
	left: -120px;
	top: -155px;
}

.merch-showcase:after {
	bottom: -180px;
	right: -95px;
}

.merch-image-wrap {
	max-width: 390px;
	position: relative;
	transform: rotate(-4deg);
	width: 42%;
	z-index: 1;
}

.merch-image-wrap:after {
	background: var(--festival-purple);
	border-radius: 50%;
	content: "";
	filter: blur(1px);
	height: 72%;
	left: 14%;
	opacity: 0.3;
	position: absolute;
	top: 14%;
	transform: rotate(8deg);
	width: 72%;
	z-index: -1;
}

.merch-image-wrap img {
	display: block;
	filter: drop-shadow(0 24px 22px rgba(0, 0, 0, 0.38));
	height: auto;
	width: 100%;
}

.merch-badge {
	background: var(--festival-purple);
	border-radius: 999px;
	box-shadow: 0 12px 28px rgba(153, 68, 158, 0.28);
	color: var(--white);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	padding: 0.6rem 0.9rem;
	position: absolute;
	right: -1.25rem;
	text-transform: uppercase;
	top: 1.2rem;
	transform: rotate(9deg);
	z-index: 2;
}

.merch-badge .icon {
	color: var(--gold-light);
	margin-right: 0.35rem;
}

.merch-showcase figcaption {
	border-top: 1px solid rgba(16, 11, 0, 0.14);
	margin-top: 1.2rem;
	max-width: 680px;
	padding-top: 1.2rem;
	position: relative;
	text-align: center;
	z-index: 1;
}

.merch-showcase figcaption strong {
	color: var(--bayou-dark);
	display: block;
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.7rem;
	line-height: 1.15;
}

.merch-showcase figcaption span {
	color: rgba(16, 11, 0, 0.72);
	display: block;
	font-size: 0.78rem;
	margin-top: 0.35rem;
}

.visitor-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 1.5rem;
}

.visitor-card {
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.08);
	border-radius: 16px;
	padding: 2rem;
}

.visitor-card > .icon {
	align-items: center;
	background: var(--gold);
	border-radius: 50%;
	color: var(--bayou);
	display: flex;
	font-size: 1rem;
	height: 46px;
	justify-content: center;
	margin-bottom: 1.25rem;
	width: 46px;
}

.visitor-card h3 {
	font-size: 1.3rem;
	margin-bottom: 0.5rem;
}

.visitor-card p {
	font-size: 0.78rem;
	line-height: 1.6;
	margin: 0;
}

.policy-strip {
	align-items: center;
	background: rgba(18, 55, 45, 0.07);
	border-radius: 12px;
	color: var(--muted);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.68rem;
	gap: 0.7rem 1.2rem;
	margin-top: 1.25rem;
	padding: 1rem 1.25rem;
}

.policy-strip strong {
	color: var(--bayou);
	font-weight: 800;
}

.policy-strip span:before {
	color: var(--cayenne);
	content: "\2022";
	margin-right: 0.45rem;
}

.firearms-notice {
	align-items: center;
	background: #8f2118;
	border: 2px solid var(--gold);
	border-radius: 14px;
	color: var(--white);
	display: flex;
	gap: 1rem;
	margin-top: 1rem;
	padding: 1.15rem 1.35rem;
}

.firearms-notice > .icon {
	align-items: center;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 50%;
	color: var(--gold-light);
	display: flex;
	flex: 0 0 48px;
	font-size: 1.2rem;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.firearms-notice strong {
	color: var(--white);
	display: block;
	font-size: 0.88rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.firearms-notice p {
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.76rem;
	line-height: 1.5;
	margin: 0.15rem 0 0;
}

/* Founder tribute */

.founder-section {
	background: var(--bayou-dark);
	color: rgba(255, 255, 255, 0.72);
	overflow: hidden;
	position: relative;
}

.founder-section:before {
	background: radial-gradient(circle, rgba(233, 173, 55, 0.22) 0 2px, transparent 2.5px) 0 0 / 34px 34px;
	content: "";
	height: 430px;
	opacity: 0.2;
	position: absolute;
	right: -100px;
	top: -120px;
	transform: rotate(8deg);
	width: 530px;
}

.founder-shell {
	align-items: stretch;
	display: grid;
	gap: 0;
	grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.2fr);
	position: relative;
	z-index: 1;
}

.founder-portrait {
	background:
		radial-gradient(circle at 20% 12%, rgba(255, 204, 1, 0.16), transparent 34%),
		linear-gradient(155deg, var(--bayou), var(--bayou-soft) 56%, var(--bayou-dark));
	border-radius: 22px 0 0 22px;
	display: flex;
	flex-direction: column;
	min-height: 610px;
	overflow: hidden;
	padding: 1.25rem;
}

.portrait-placeholder {
	align-items: center;
	background:
		linear-gradient(150deg, rgba(9, 162, 38, 0.2), rgba(5, 112, 28, 0.72)),
		url("../../images/pic10.jpg") center / cover no-repeat;
	border: 1px solid rgba(255, 248, 233, 0.25);
	border-radius: 14px;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: center;
	min-height: 440px;
	overflow: hidden;
	position: relative;
}

.portrait-placeholder:before,
.portrait-placeholder:after {
	border: 1px solid rgba(255, 248, 233, 0.18);
	border-radius: 50%;
	content: "";
	position: absolute;
}

.portrait-placeholder:before {
	height: 310px;
	width: 310px;
}

.portrait-placeholder:after {
	height: 240px;
	width: 240px;
}

.portrait-placeholder.has-photo:before,
.portrait-placeholder.has-photo:after {
	display: none;
}

.portrait-placeholder.has-photo img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	width: 100%;
}

.necklace-sheen,
.necklace-glint {
	pointer-events: none;
	position: absolute;
	z-index: 2;
}

.necklace-sheen {
	background:
		radial-gradient(ellipse at 48% 42%, rgba(255, 244, 154, 0.52), transparent 13%),
		radial-gradient(ellipse at 58% 54%, rgba(255, 255, 255, 0.42), transparent 11%),
		linear-gradient(115deg, transparent 18%, rgba(255, 243, 136, 0.34) 45%, transparent 70%);
	border-radius: 50%;
	height: 32%;
	left: 36%;
	mix-blend-mode: screen;
	opacity: 0;
	top: 34%;
	transform: rotate(-12deg);
	width: 31%;
	animation: necklace-sheen 4.8s ease-in-out infinite;
}

.necklace-glint {
	--glint-size: 18px;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.96) 0 16%, rgba(255, 235, 123, 0.92) 17% 28%, rgba(255, 235, 123, 0) 64%);
	border-radius: 50%;
	filter: drop-shadow(0 0 8px rgba(255, 234, 105, 0.68));
	height: var(--glint-size);
	left: var(--glint-left);
	opacity: 0;
	top: var(--glint-top);
	transform: translate(-50%, -50%) scale(0.35) rotate(0deg);
	width: var(--glint-size);
	animation: necklace-glint 3.6s ease-in-out infinite;
}

.necklace-glint:before,
.necklace-glint:after {
	background: rgba(255, 255, 255, 0.86);
	content: "";
	inset: 45% 6%;
	position: absolute;
}

.necklace-glint:after {
	transform: rotate(90deg);
}

.glint-one {
	--glint-left: 49%;
	--glint-size: 16px;
	--glint-top: 38%;
	animation-delay: 0.2s;
}

.glint-two {
	--glint-left: 58%;
	--glint-size: 20px;
	--glint-top: 42%;
	animation-delay: 1s;
}

.glint-three {
	--glint-left: 45%;
	--glint-size: 15px;
	--glint-top: 50%;
	animation-delay: 1.7s;
}

.glint-four {
	--glint-left: 54%;
	--glint-size: 22px;
	--glint-top: 58%;
	animation-delay: 2.35s;
}

.glint-five {
	--glint-left: 60%;
	--glint-size: 14px;
	--glint-top: 52%;
	animation-delay: 2.95s;
}

.portrait-initials {
	color: rgba(255, 248, 233, 0.92);
	font-family: "Fraunces", Georgia, serif;
	font-size: 6.5rem;
	font-style: italic;
	font-weight: 800;
	letter-spacing: -0.1em;
	line-height: 1;
	position: relative;
	transform: translateX(-0.08em);
	z-index: 1;
}

.portrait-note {
	background: rgba(5, 112, 28, 0.82);
	border-radius: 999px;
	bottom: 1.25rem;
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 0.55rem 0.85rem;
	position: absolute;
	text-transform: uppercase;
	z-index: 2;
}

.portrait-note .icon {
	color: var(--gold);
	margin-right: 0.4rem;
}

.portrait-caption {
	display: flex;
	flex-direction: column;
	padding: 1.5rem 0.75rem 0.5rem;
}

.portrait-caption > span {
	color: var(--gold-light);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.portrait-caption strong {
	color: var(--cream);
	font-family: "Fraunces", Georgia, serif;
	font-size: 2rem;
	line-height: 1.1;
}

.portrait-caption small {
	color: rgba(255, 255, 255, 0.63);
	font-size: 0.7rem;
	margin-top: 0.25rem;
}

.founder-story {
	background:
		radial-gradient(circle at 88% 16%, rgba(255, 204, 1, 0.18), transparent 34%),
		linear-gradient(145deg, var(--purple-dark), var(--festival-purple) 64%, rgba(255, 204, 1, 0.12));
	border-radius: 0 22px 22px 0;
	padding: 4.5rem;
}

.founder-story h2 {
	color: var(--cream);
	font-size: clamp(2.7rem, 5vw, 4.4rem);
	line-height: 1;
	margin-bottom: 0.35em;
}

.founder-intro {
	color: rgba(255, 255, 255, 0.76);
	font-size: 1rem;
	max-width: 720px;
}

.founder-tabs {
	margin-top: 2.5rem;
}

.tab-list {
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
	display: flex;
	gap: 0.25rem;
}

.founder-tab {
	appearance: none;
	background: transparent;
	border: 0;
	border-bottom: 3px solid transparent;
	border-radius: 0;
	color: rgba(255, 255, 255, 0.55) !important;
	cursor: pointer;
	font-family: "DM Sans", sans-serif;
	font-size: 0.73rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin-bottom: -1px;
	padding: 0.9rem 1.1rem;
}

.founder-tab:hover,
.founder-tab:focus-visible {
	background: rgba(255, 255, 255, 0.06);
	border-color: transparent;
	color: var(--cream) !important;
	transform: none;
}

.founder-tab.is-active {
	border-bottom-color: var(--gold);
	color: var(--gold-light) !important;
}

.tab-panel {
	animation: founder-panel-in 260ms ease both;
	min-height: 205px;
	padding: 1.75rem 0 0;
}

.tab-panel[hidden] {
	display: none;
}

.tab-panel p {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.88rem;
	line-height: 1.75;
	margin-bottom: 1rem;
}

.tab-panel blockquote {
	border-left-color: var(--gold);
	color: var(--cream);
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.25rem;
	font-style: italic;
	line-height: 1.5;
	margin: 1.4rem 0 0;
	padding: 0.35rem 0 0.35rem 1.2rem;
}

.founder-signoff {
	align-items: center;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	display: flex;
	gap: 1rem;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
}

.founder-signoff > .icon {
	align-items: center;
	background: var(--cayenne);
	border-radius: 50%;
	color: var(--gold-light);
	display: flex;
	flex: 0 0 48px;
	height: 48px;
	justify-content: center;
	transform: rotate(-8deg);
	width: 48px;
}

.founder-signoff span {
	color: rgba(255, 255, 255, 0.57);
	font-size: 0.72rem;
	line-height: 1.5;
}

.founder-signoff strong {
	color: var(--cream);
	font-family: "Fraunces", Georgia, serif;
	font-size: 1rem;
}

@keyframes founder-panel-in {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes necklace-sheen {
	0%,
	62%,
	100% {
		opacity: 0;
		transform: translateX(-8%) rotate(-12deg);
	}

	22% {
		opacity: 0.54;
		transform: translateX(8%) rotate(-12deg);
	}

	36% {
		opacity: 0.18;
		transform: translateX(14%) rotate(-12deg);
	}
}

@keyframes necklace-glint {
	0%,
	68%,
	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.35) rotate(0deg);
	}

	16% {
		opacity: 0.95;
		transform: translate(-50%, -50%) scale(1) rotate(26deg);
	}

	30% {
		opacity: 0.22;
		transform: translate(-50%, -50%) scale(0.7) rotate(52deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.necklace-sheen,
	.necklace-glint {
		animation: none;
	}

	.necklace-sheen {
		opacity: 0.2;
	}
}

/* Updates */

.updates-section {
	background: var(--paper);
	padding-top: 0;
}

.updates-card {
	align-items: center;
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.08);
	border-radius: 20px;
	display: grid;
	gap: 4rem;
	grid-template-columns: 1fr 1fr;
	padding: 3.5rem 4rem;
}

.updates-card h2 {
	font-size: clamp(2.1rem, 4vw, 3.2rem);
	line-height: 1.05;
}

.updates-card p:last-child {
	margin: 0;
}

.updates-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.updates-actions small {
	color: #89938e;
	display: block;
	flex: 0 0 100%;
	font-size: 0.68rem;
	line-height: 1.5;
	margin-top: 0.5rem;
}

/* Footer */

#footer {
	background: var(--bayou-dark);
	color: rgba(255, 255, 255, 0.55);
	padding: 5.5rem 0 1.5rem;
}

#footer:before {
	display: none;
}

.footer-top {
	display: grid;
	gap: 4rem;
	grid-template-columns: 1.5fr 0.65fr 0.65fr 0.8fr;
}

.footer-logo {
	color: var(--cream) !important;
	font-family: "DM Sans", sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-transform: uppercase;
}

.footer-logo strong {
	color: var(--cream) !important;
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.15rem;
	letter-spacing: -0.03em;
	text-transform: none;
}

.footer-brand p {
	font-size: 0.8rem;
	line-height: 1.65;
	margin: 1.4rem 0 0;
	max-width: 360px;
}

.footer-links h3 {
	color: var(--gold) !important;
	font-family: "DM Sans", sans-serif;
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	margin-bottom: 1.2rem;
	text-transform: uppercase;
}

.footer-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-links li {
	padding: 0.25rem 0;
}

#footer .footer-links a {
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.78rem;
	text-decoration: none;
}

#footer .footer-links span {
	color: rgba(255, 255, 255, 0.48);
	font-size: 0.78rem;
}

#footer .footer-links a:hover {
	color: var(--gold);
}

.footer-callout {
	align-items: center;
	background:
		radial-gradient(circle at 35% 28%, rgba(255, 255, 0, 0.18), transparent 34%),
		linear-gradient(145deg, rgba(153, 68, 158, 0.34), rgba(9, 162, 38, 0.18));
	border: 1px solid rgba(255, 204, 1, 0.48);
	border-radius: 50%;
	color: var(--cream);
	display: flex;
	flex-direction: column;
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.02rem;
	font-style: italic;
	height: 160px;
	justify-content: center;
	line-height: 1.2;
	padding: 1.2rem;
	text-align: center;
	transform: rotate(5deg);
	width: 160px;
}

.footer-callout .icon {
	color: var(--cayenne);
	margin-top: 0.6rem;
}

#copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	margin: 4.5rem 0 0;
	padding-top: 1.5rem;
	text-align: left;
}

#copyright ul.links {
	background: transparent;
	display: flex;
	justify-content: space-between;
	padding: 0;
	width: 100%;
}

#copyright ul.links li {
	border: 0;
	color: rgba(255, 255, 255, 0.4);
	font-size: 0.65rem;
	margin: 0;
	padding: 0;
}

#copyright a {
	color: rgba(255, 255, 255, 0.55);
}

#copyright .site-credit {
	align-items: center;
	display: flex;
	margin-left: auto;
}

#copyright .site-credit a {
	border-radius: 6px;
	display: inline-block;
	opacity: 0.7;
	overflow: hidden;
	transition: opacity 180ms ease, transform 180ms ease;
}

#copyright .site-credit a:hover,
#copyright .site-credit a:focus-visible {
	opacity: 1;
	transform: translateY(-1px);
}

#copyright .site-credit img {
	display: block;
	height: auto;
	max-width: 340px;
	width: 100%;
}

/* Tickets */

.tickets-page {
	background: var(--cream);
}

.tickets-hero {
	background:
		linear-gradient(90deg, rgba(16, 11, 0, 0.76), rgba(16, 11, 0, 0.26)),
		url("../../images/cajun-festival-gumbo-banner.png") center/cover;
	color: var(--white);
	overflow: hidden;
	padding: 5.5rem 0;
	position: relative;
}

.tickets-hero-inner {
	align-items: center;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 390px);
	position: relative;
	z-index: 1;
}

.tickets-hero-copy h2 {
	color: var(--cream);
	font-size: clamp(3rem, 6vw, 5.8rem);
	line-height: 0.95;
	margin-bottom: 0.35em;
	max-width: 820px;
}

.tickets-hero-copy p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.08rem;
	max-width: 640px;
}

.ticket-hero-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: 1.85rem;
}

.ticket-hero-actions .button.alt {
	border-color: var(--gold-light);
	color: var(--gold-light) !important;
}

.ticket-hero-actions .button.alt:hover {
	background: var(--gold);
	border-color: var(--gold);
	color: var(--ink) !important;
}

.ticket-pass-preview {
	background:
		linear-gradient(135deg, rgba(255, 251, 237, 0.98), rgba(255, 248, 233, 0.95)),
		var(--cream);
	border: 2px dashed rgba(153, 68, 158, 0.38);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(16, 11, 0, 0.24);
	color: var(--ink);
	padding: 2rem;
	position: relative;
}

.ticket-pass-preview::before,
.ticket-pass-preview::after {
	background: rgba(16, 11, 0, 0.16);
	border-radius: 50%;
	content: "";
	height: 34px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
}

.ticket-pass-preview::before {
	left: -18px;
}

.ticket-pass-preview::after {
	right: -18px;
}

.ticket-pass-kicker,
.ticket-kicker {
	color: var(--cayenne);
	display: block;
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.16em;
	margin-bottom: 0.8rem;
	text-transform: uppercase;
}

.ticket-pass-preview strong {
	color: var(--festival-purple);
	display: block;
	font-family: "Fraunces", Georgia, serif;
	font-size: clamp(4rem, 9vw, 6.6rem);
	line-height: 0.9;
}

.ticket-pass-preview small {
	color: var(--muted);
	display: block;
	font-weight: 800;
	margin-top: 0.55rem;
}

.ticket-stub-row {
	border-top: 1px solid rgba(16, 11, 0, 0.14);
	display: flex;
	font-size: 0.78rem;
	font-weight: 900;
	justify-content: space-between;
	letter-spacing: 0.08em;
	margin-top: 1.6rem;
	padding-top: 1rem;
	text-transform: uppercase;
}

.tickets-main {
	background: var(--cream);
}

.ticket-options-section {
	background: var(--paper);
}

.ticket-card-grid {
	align-items: start;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ticket-card {
	background: var(--white);
	border: 1px solid rgba(16, 11, 0, 0.08);
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(16, 11, 0, 0.08);
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	padding: 0;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.featured-ticket-card {
	background:
		radial-gradient(circle at 92% 12%, rgba(255, 204, 1, 0.25), transparent 34%),
		linear-gradient(145deg, var(--bayou-dark), #1a360f 68%, var(--bayou));
	color: rgba(255, 255, 255, 0.8);
}

.ticket-card:hover {
	box-shadow: 0 24px 70px rgba(16, 11, 0, 0.16);
	transform: translateY(-4px);
}

.ticket-card-art {
	background: var(--gold);
	aspect-ratio: 1 / 1 !important;
	border-radius: 6px;
	display: flex;
	justify-content: center;
	margin: 0.85rem auto 0;
	max-width: 300px;
	overflow: hidden;
	position: relative;
	text-decoration: none;
	width: min(300px, calc(100% - 1.7rem)) !important;
}

.ticket-card-art::after {
	background: linear-gradient(180deg, transparent 70%, rgba(16, 11, 0, 0.12));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.ticket-card-art img {
	display: block;
	height: 100%;
	max-width: 100%;
	object-fit: cover;
	transition: transform 240ms ease;
	width: 100%;
}

.ticket-card-art:focus-visible {
	box-shadow: 0 0 0 4px rgba(255, 204, 1, 0.72);
	outline: 2px solid var(--festival-purple);
	outline-offset: 3px;
}

.ticket-card:hover .ticket-card-art img {
	transform: scale(1.035);
}

.ticket-card-copy {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 1.1rem 1.35rem 1.35rem;
}

.ticket-card .ticket-icon {
	display: none;
}

.ticket-icon {
	align-items: center;
	background: rgba(153, 68, 158, 0.1);
	border-radius: 50%;
	color: var(--festival-purple);
	display: inline-flex;
	font-size: 1.1rem;
	height: 48px;
	justify-content: center;
	margin-bottom: 0.85rem;
	width: 48px;
}

.featured-ticket-card .ticket-icon {
	background: rgba(255, 255, 255, 0.12);
	color: var(--gold);
}

.ticket-card h3 {
	font-size: 1.55rem;
	line-height: 1.05;
	margin-bottom: 0.45rem;
}

.featured-ticket-card h3 {
	color: var(--cream);
}

.ticket-card p {
	font-size: 0.92rem;
	line-height: 1.48;
	margin-bottom: 0.75rem;
}

.ticket-sale-label {
	align-self: flex-start;
	background: rgba(255, 204, 1, 0.18);
	border: 1px solid rgba(255, 204, 1, 0.38);
	border-radius: 999px;
	color: var(--bayou-dark);
	font-size: 0.68rem !important;
	font-weight: 900;
	letter-spacing: 0.06em;
	line-height: 1.25 !important;
	margin: 0 0 0.65rem !important;
	padding: 0.45rem 0.75rem;
	text-transform: uppercase;
}

.featured-ticket-card .ticket-sale-label {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.18);
	color: var(--gold-light);
}

.ticket-price {
	color: var(--bayou);
	font-family: "Fraunces", Georgia, serif;
	font-size: 2.35rem !important;
	font-weight: 900;
	line-height: 1;
	margin-bottom: 0.3em !important;
}

.featured-ticket-card .ticket-price {
	color: var(--gold-light);
}

.ticket-price span {
	color: var(--muted);
	display: block;
	font-family: "DM Sans", sans-serif;
	font-size: 0.78rem;
	font-weight: 900;
	letter-spacing: 0.06em;
	margin-top: 0.45rem;
	text-transform: uppercase;
}

.featured-ticket-card .ticket-price span {
	color: rgba(255, 255, 255, 0.74);
}

.ticket-button {
	align-self: flex-start;
	font-size: 0.82rem;
	margin-top: 0.5rem;
	padding: 0.78em 1.45em;
}

.square-info-section {
	background: var(--cream);
	padding-top: 0;
}

.square-info-panel {
	align-items: center;
	background:
		radial-gradient(circle at 10% 18%, rgba(255, 255, 0, 0.14), transparent 30%),
		linear-gradient(135deg, rgba(153, 68, 158, 0.98), rgba(111, 37, 118, 0.96));
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(16, 11, 0, 0.16);
	color: rgba(255, 255, 255, 0.78);
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.8fr);
	padding: 3rem;
}

.square-info-panel h2 {
	color: var(--cream);
	font-size: clamp(2.2rem, 4vw, 3.6rem);
	line-height: 1;
	margin-bottom: 0.35em;
}

.square-benefits {
	display: grid;
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.square-benefits li {
	align-items: center;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	display: flex;
	font-weight: 800;
	gap: 0.7rem;
	padding: 0.85rem 1rem;
}

.square-benefits .icon {
	color: var(--gold);
}

.ticket-day-section {
	background: var(--paper);
	padding-top: 0;
}

.ticket-day-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ticket-day-grid article {
	background: var(--white);
	border: 1px solid rgba(16, 11, 0, 0.08);
	border-radius: 8px;
	padding: 2rem;
}

.ticket-day-grid h2 {
	font-size: 2rem;
	line-height: 1.05;
}

/* Thank you page */

.thank-you-page {
	background: var(--cream);
}

.thank-you-hero {
	background:
		linear-gradient(100deg, rgba(5, 112, 28, 0.96), rgba(9, 162, 38, 0.78) 54%, rgba(153, 68, 158, 0.72)),
		radial-gradient(circle at 76% 24%, rgba(255, 204, 1, 0.28), transparent 34%);
	color: rgba(255, 255, 255, 0.8);
	overflow: hidden;
	padding: 5rem 0;
}

.thank-you-hero-inner {
	align-items: center;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: minmax(0, 1fr) 220px;
}

.thank-you-hero h2 {
	color: var(--cream);
	font-size: clamp(3.2rem, 7vw, 6rem);
	line-height: 0.95;
	margin-bottom: 0.35em;
	max-width: 820px;
}

.thank-you-hero p:not(.eyebrow) {
	font-size: 1.1rem;
	max-width: 660px;
}

.thank-you-badge {
	align-items: center;
	background: var(--cream);
	border: 2px dashed rgba(153, 68, 158, 0.42);
	border-radius: 50%;
	box-shadow: 0 24px 70px rgba(16, 11, 0, 0.22);
	color: var(--festival-purple);
	display: flex;
	flex-direction: column;
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.45rem;
	font-weight: 900;
	height: 210px;
	justify-content: center;
	line-height: 1.05;
	text-align: center;
	transform: rotate(4deg);
	width: 210px;
}

.thank-you-badge .icon {
	align-items: center;
	background: var(--bayou);
	border-radius: 50%;
	color: var(--cream);
	display: flex;
	font-size: 1.2rem;
	height: 46px;
	justify-content: center;
	margin-bottom: 0.75rem;
	width: 46px;
}

.thank-you-main {
	background: var(--cream);
}

.thank-you-details-section {
	background: var(--paper);
}

.thank-you-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1.2fr repeat(3, minmax(0, 1fr));
}

.thank-you-card,
.festival-day-list {
	background: var(--white);
	border: 1px solid rgba(16, 11, 0, 0.08);
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(16, 11, 0, 0.08);
	padding: 2rem;
}

.thank-you-card > .icon {
	align-items: center;
	background: rgba(153, 68, 158, 0.1);
	border-radius: 50%;
	color: var(--festival-purple);
	display: inline-flex;
	height: 48px;
	justify-content: center;
	margin-bottom: 1.1rem;
	width: 48px;
}

.primary-thank-you-card {
	background:
		radial-gradient(circle at 90% 18%, rgba(255, 204, 1, 0.22), transparent 35%),
		linear-gradient(145deg, var(--bayou-dark), #1a360f 68%, var(--bayou));
	color: rgba(255, 255, 255, 0.78);
}

.primary-thank-you-card h3 {
	color: var(--cream);
}

.primary-thank-you-card > .icon {
	background: rgba(255, 255, 255, 0.12);
	color: var(--gold);
}

.thank-you-card h3 {
	font-size: 1.45rem;
	line-height: 1.08;
	margin-bottom: 0.65rem;
}

.thank-you-card p {
	font-size: 0.86rem;
	line-height: 1.65;
	margin-bottom: 0;
}

.thank-you-lists-section {
	background: var(--cream);
	padding-top: 0;
}

.thank-you-list-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.festival-day-list h2 {
	font-size: 2.2rem;
	line-height: 1.05;
	margin-bottom: 0.7em;
}

.festival-day-list ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.festival-day-list li {
	align-items: flex-start;
	display: flex;
	font-size: 0.92rem;
	gap: 0.65rem;
	line-height: 1.55;
	margin-bottom: 0.75rem;
}

.festival-day-list li::before {
	color: var(--bayou);
	content: "\f00c";
	font-family: "Font Awesome 5 Free";
	font-size: 0.78rem;
	font-weight: 900;
	margin-top: 0.15rem;
}

.notice-list li::before {
	color: var(--cayenne);
	content: "\f05e";
}

.thank-you-actions-section {
	background: var(--paper);
	padding-top: 0;
}

.thank-you-actions-panel {
	align-items: center;
	background:
		radial-gradient(circle at 10% 18%, rgba(255, 255, 0, 0.14), transparent 30%),
		linear-gradient(135deg, rgba(153, 68, 158, 0.98), rgba(111, 37, 118, 0.96));
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(16, 11, 0, 0.16);
	color: rgba(255, 255, 255, 0.78);
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1fr) auto;
	padding: 3rem;
}

.thank-you-actions-panel h2 {
	color: var(--cream);
	font-size: clamp(2.3rem, 4vw, 3.8rem);
	line-height: 1;
	margin-bottom: 0.35em;
}

.thank-you-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: flex-end;
}

.thank-you-actions .button.alt {
	border-color: var(--gold-light);
	color: var(--gold-light) !important;
}

.thank-you-actions .button.alt:hover {
	background: var(--gold);
	border-color: var(--gold);
	color: var(--ink) !important;
}

/* Entertainment page */

.entertainment-page {
	background: var(--paper);
}

.entertainment-hero {
	background:
		linear-gradient(105deg, rgba(5, 112, 28, 0.96) 0%, rgba(9, 162, 38, 0.78) 48%, rgba(153, 68, 158, 0.35) 100%),
		radial-gradient(circle at 78% 28%, rgba(255, 204, 1, 0.28), transparent 34%),
		url("../../images/ca-va-bien.png") center / cover no-repeat;
	color: rgba(255, 255, 255, 0.76);
	overflow: hidden;
	padding: 5rem 0;
	position: relative;
}

.entertainment-hero:after {
	background: radial-gradient(circle, rgba(246, 205, 116, 0.34) 0 2px, transparent 2.5px) 0 0 / 31px 31px;
	content: "";
	height: 380px;
	opacity: 0.2;
	position: absolute;
	right: -95px;
	top: -105px;
	transform: rotate(8deg);
	width: 520px;
}

.entertainment-hero-inner {
	align-items: center;
	display: grid;
	gap: 4.5rem;
	grid-template-columns: minmax(0, 1fr) 360px;
	position: relative;
	z-index: 1;
}

.entertainment-hero-copy h2 {
	color: var(--cream);
	font-size: clamp(3.2rem, 6vw, 5.6rem);
	line-height: 0.98;
	margin-bottom: 0.35em;
	max-width: 800px;
}

.entertainment-hero-copy > p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.78);
	font-size: 1rem;
	line-height: 1.8;
	max-width: 690px;
}

.entertainment-actions {
	margin: 2rem 0 0;
}

.entertainment-actions .button.alt {
	border-color: rgba(255, 255, 255, 0.46);
	color: var(--white) !important;
}

.entertainment-actions .button.alt:hover {
	background: var(--cream);
	border-color: var(--cream);
	color: var(--bayou) !important;
}

.entertainment-hero-card {
	background: var(--cream);
	border: 7px solid var(--cream);
	border-radius: 18px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
	margin: 0;
	overflow: hidden;
	position: relative;
	transform: rotate(2.5deg);
}

.entertainment-hero-card:before {
	background: var(--festival-purple);
	border-radius: 18px;
	content: "";
	inset: 18px -18px -18px 18px;
	position: absolute;
	z-index: -1;
}

.entertainment-hero-card img {
	display: block;
	height: 310px;
	object-fit: cover;
	width: 100%;
}

.entertainment-hero-card figcaption {
	align-items: center;
	background: var(--gold);
	color: var(--bayou);
	display: flex;
	font-size: 0.68rem;
	font-weight: 900;
	gap: 0.55rem;
	letter-spacing: 0.12em;
	padding: 0.9rem 1rem;
	text-transform: uppercase;
}

.entertainment-main {
	background: var(--paper) !important;
	padding: 0 !important;
}

.culture-section {
	background: var(--cream);
}

.music-culture-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 3.5rem;
}

.culture-card {
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.08);
	border-radius: 18px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, 0.07);
	padding: 2.2rem;
	position: relative;
}

.culture-card:after {
	background: linear-gradient(90deg, var(--festival-purple), var(--gold), var(--cayenne));
	border-radius: 999px;
	content: "";
	height: 5px;
	left: 2.2rem;
	position: absolute;
	right: 2.2rem;
	top: 0;
}

.featured-culture-card {
	background:
		radial-gradient(circle at 78% 20%, rgba(255, 204, 1, 0.24), transparent 34%),
		linear-gradient(145deg, var(--purple-dark), var(--festival-purple) 62%, rgba(255, 204, 1, 0.18));
	color: rgba(255, 255, 255, 0.72);
	transform: translateY(18px);
}

.featured-culture-card h3,
.featured-culture-card .culture-icon {
	color: var(--cream);
}

.culture-icon {
	align-items: center;
	background: rgba(233, 173, 55, 0.2);
	border-radius: 50%;
	color: var(--cayenne);
	display: flex;
	font-size: 1rem;
	height: 50px;
	justify-content: center;
	margin-bottom: 1.25rem;
	width: 50px;
}

.featured-culture-card .culture-icon {
	background: rgba(255, 255, 255, 0.12);
	color: var(--gold-light);
}

.culture-card h3 {
	font-size: 1.45rem;
	line-height: 1.08;
	margin-bottom: 0.75rem;
}

.culture-card p {
	font-size: 0.82rem;
	line-height: 1.72;
	margin: 0;
}

.featured-culture-card p {
	color: rgba(255, 255, 255, 0.7);
}

.entertainment-lineup {
	background: var(--paper);
}

.lineup-intro {
	font-size: 0.94rem;
	margin-left: auto;
	margin-right: auto;
	max-width: 680px;
}

.band-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, 1fr);
	margin-top: 3rem;
}

.band-card {
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.08);
	border-radius: 18px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, 0.08);
	display: grid;
	grid-template-columns: 0.95fr 1.05fr;
	min-height: 300px;
	overflow: hidden;
}

.featured-band-card {
	background:
		radial-gradient(circle at 86% 18%, rgba(255, 204, 1, 0.24), transparent 34%),
		linear-gradient(135deg, var(--purple-dark), var(--festival-purple) 60%, rgba(255, 204, 1, 0.2));
	grid-column: 1 / -1;
	grid-template-columns: 1.2fr 0.8fr;
}

.band-image {
	min-height: 300px;
	overflow: hidden;
	position: relative;
}

.band-image:after {
	background: linear-gradient(145deg, transparent 48%, rgba(217, 74, 47, 0.34));
	content: "";
	inset: 0;
	position: absolute;
}

.band-image img {
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform 220ms ease;
	width: 100%;
}

.band-card:hover .band-image img {
	transform: scale(1.035);
}

.band-copy {
	align-self: center;
	padding: 2.2rem;
}

.band-kicker {
	color: var(--cayenne);
	display: block;
	font-size: 0.62rem;
	font-weight: 900;
	letter-spacing: 0.15em;
	margin-bottom: 0.75rem;
	text-transform: uppercase;
}

.band-card h3 {
	font-size: 1.65rem;
	line-height: 1.05;
	margin-bottom: 0.65rem;
}

.band-card p {
	font-size: 0.8rem;
	line-height: 1.68;
	margin: 0;
}

.entertainment-page .band-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: 1.15rem;
}

.entertainment-page .band-link {
	--band-link-accent: var(--bayou);
	align-items: center;
	background: linear-gradient(130deg, var(--paper), var(--cream) 64%);
	border: 1px solid rgba(9, 162, 38, 0.28);
	border-radius: 999px;
	color: var(--bayou-dark) !important;
	display: inline-flex;
	font-size: 0.72rem;
	font-weight: 700;
	gap: 0.45rem;
	letter-spacing: 0.01em;
	padding: 0.45rem 0.85rem;
	position: relative;
	text-decoration: none !important;
	text-transform: none;
	transition: transform 150ms ease, box-shadow 150ms ease, border-color 150ms ease;
}

.entertainment-page .band-link:hover,
.entertainment-page .band-link:focus-visible {
	background: linear-gradient(130deg, rgba(255, 255, 0, 0.12), rgba(255, 204, 1, 0.22));
	border-color: var(--band-link-accent);
	box-shadow: 0 10px 24px rgba(16, 11, 0, 0.12);
	color: var(--band-link-accent) !important;
	transform: translateY(-2px);
}

.entertainment-page .band-link:hover::after,
.entertainment-page .band-link:focus-visible::after {
	opacity: 1;
	transform: translateY(-50%) scale(1.08);
}

.entertainment-page .band-link::after {
	color: var(--band-link-accent);
	content: "\266A";
	font-size: 0.74rem;
	font-weight: 700;
	opacity: 0.4;
	pointer-events: none;
	position: absolute;
	right: 0.64rem;
	top: 50%;
	transform: translateY(-50%);
	transition: opacity 150ms ease, transform 150ms ease;
}

.entertainment-page .band-link i {
	color: var(--band-link-accent);
}

.entertainment-page .band-link-website {
	--band-link-accent: var(--cayenne);
	border-color: rgba(255, 0, 0, 0.28);
}

.entertainment-page .band-link-facebook {
	--band-link-accent: var(--festival-purple);
	border-color: rgba(153, 68, 158, 0.28);
}

.entertainment-page .band-link-instagram {
	--band-link-accent: #b33f93;
	border-color: rgba(179, 63, 147, 0.28);
}

.entertainment-page .band-link-youtube {
	--band-link-accent: #ff0000;
	border-color: rgba(255, 0, 0, 0.3);
}

.entertainment-page .band-link-spotify {
	--band-link-accent: #1db954;
	border-color: rgba(29, 185, 84, 0.3);
}

.entertainment-page .band-link-iheart {
	--band-link-accent: #f39c32;
	border-color: rgba(243, 156, 50, 0.3);
}

.entertainment-page .band-link-pandora {
	--band-link-accent: #005f9e;
	border-color: rgba(0, 95, 158, 0.28);
}

.featured-band-card .band-kicker {
	color: var(--gold-light);
}

.featured-band-card h3 {
	color: var(--cream);
	font-size: clamp(2rem, 4vw, 3rem);
}

.featured-band-card p {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.9rem;
}

.entertainment-note-panel {
	align-items: center;
	background:
		radial-gradient(circle at 90% 22%, rgba(255, 204, 1, 0.24), transparent 34%),
		linear-gradient(90deg, rgba(111, 37, 118, 0.98) 0%, rgba(153, 68, 158, 0.88) 58%, rgba(153, 68, 158, 0.34) 100%),
		linear-gradient(135deg, rgba(255, 204, 1, 0.15), rgba(9, 162, 38, 0.08));
	border-radius: 20px;
	box-shadow: 0 18px 55px rgba(18, 55, 45, 0.16);
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	margin-top: 3.5rem;
	padding: 3rem;
}

.entertainment-note-panel h2 {
	color: var(--cream);
	font-size: clamp(2.3rem, 4vw, 3.7rem);
	line-height: 1;
	margin-bottom: 0.35em;
}

.entertainment-note-panel p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.9rem;
	margin: 0;
	max-width: 690px;
}

/* Gumbo page */

.gumbo-page {
	background: var(--paper);
}

.gumbo-hero {
	background:
		linear-gradient(110deg, rgba(5, 112, 28, 0.96) 0%, rgba(9, 162, 38, 0.76) 46%, rgba(255, 204, 1, 0.28) 100%),
		radial-gradient(circle at 82% 28%, rgba(255, 0, 0, 0.16), transparent 34%),
		url("../../images/cajun-festival-gumbo-banner.png") center / cover no-repeat;
	color: rgba(255, 255, 255, 0.78);
	overflow: hidden;
	padding: 5.5rem 0 5rem;
	position: relative;
}

.gumbo-hero:after {
	background:
		radial-gradient(circle, rgba(233, 173, 55, 0.36) 0 2px, transparent 2.6px) 0 0 / 34px 34px;
	content: "";
	height: 420px;
	opacity: 0.18;
	position: absolute;
	right: -100px;
	top: -110px;
	transform: rotate(8deg);
	width: 560px;
}

.gumbo-hero-inner {
	align-items: center;
	display: grid;
	gap: 4.5rem;
	grid-template-columns: minmax(0, 0.95fr) minmax(330px, 0.75fr);
	position: relative;
	z-index: 2;
}

.gumbo-hero-copy h2 {
	color: var(--cream);
	font-size: clamp(3.3rem, 6.5vw, 6rem);
	line-height: 0.94;
	margin-bottom: 0.35em;
	max-width: 760px;
}

.gumbo-hero-copy > p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.79);
	font-size: 1rem;
	line-height: 1.8;
	max-width: 680px;
}

.gumbo-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}

.gumbo-actions .button.alt {
	border-color: rgba(255, 255, 255, 0.45);
	color: var(--white) !important;
}

.gumbo-actions .button.alt:hover {
	background: var(--cream);
	border-color: var(--cream);
	color: var(--bayou) !important;
}

.gumbo-hero-art {
	background: var(--cream);
	border: 7px solid var(--cream);
	border-radius: 22px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
	min-height: 430px;
	position: relative;
	transform: rotate(2.5deg);
}

.gumbo-hero-art:before {
	background: var(--festival-purple);
	border-radius: inherit;
	content: "";
	inset: 18px -18px -18px 18px;
	position: absolute;
	z-index: -1;
}

.gumbo-hero-art img {
	border-radius: 14px;
	display: block;
	height: 430px;
	object-fit: cover;
	width: 100%;
}

.gumbo-ticket {
	background: var(--festival-purple);
	border: 2px dashed rgba(255, 255, 0, 0.58);
	border-radius: 12px;
	box-shadow: 0 14px 30px rgba(153, 68, 158, 0.28);
	color: var(--white);
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.2rem;
	font-weight: 900;
	line-height: 1;
	padding: 0.85rem 1rem;
	position: absolute;
	text-transform: lowercase;
	z-index: 3;
}

.gumbo-ticket-one {
	left: -1.4rem;
	top: 1.4rem;
	transform: rotate(-9deg);
}

.gumbo-ticket-two {
	bottom: 1.2rem;
	right: -1.6rem;
	transform: rotate(8deg);
}

.gumbo-steam {
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.steam-wisp {
	animation: gumboSteam 5.5s ease-in-out infinite;
	background: linear-gradient(180deg, rgba(255, 248, 233, 0), rgba(255, 248, 233, 0.28), rgba(255, 248, 233, 0));
	border-radius: 50%;
	display: block;
	filter: blur(6px);
	height: 160px;
	left: 18%;
	opacity: 0;
	position: absolute;
	top: 68%;
	width: 42px;
}

.steam-wisp:nth-child(2) {
	animation-delay: 1.2s;
	left: 26%;
	top: 62%;
	transform: scale(1.2);
}

.steam-wisp:nth-child(3) {
	animation-delay: 2.4s;
	left: 34%;
	top: 66%;
	transform: scale(0.85);
}

@keyframes gumboSteam {
	0% {
		opacity: 0;
		transform: translateY(30px) rotate(0deg) scale(0.85);
	}
	30% {
		opacity: 0.55;
	}
	100% {
		opacity: 0;
		transform: translateY(-120px) rotate(12deg) scale(1.25);
	}
}

.gumbo-main {
	background: var(--paper) !important;
	padding: 0 !important;
}

.gumbo-intro-section,
.gumbo-video-section {
	background: var(--cream);
}

.gumbo-intro-grid {
	align-items: end;
	display: grid;
	gap: 3rem;
	grid-template-columns: minmax(0, 1fr) 360px;
}

.gumbo-ingredient-card {
	background:
		radial-gradient(circle at 88% 16%, rgba(255, 255, 0, 0.34), transparent 34%),
		linear-gradient(145deg, var(--gold), var(--gold-light) 58%, #fff6ad);
	border-radius: 18px;
	box-shadow: 0 18px 55px rgba(18, 55, 45, 0.16);
	color: rgba(16, 11, 0, 0.72);
	padding: 2.4rem;
	position: relative;
}

.gumbo-ingredient-card:before {
	background: linear-gradient(90deg, var(--festival-purple), var(--gold), var(--cayenne-soft));
	border-radius: 999px;
	content: "";
	height: 5px;
	left: 2.4rem;
	position: absolute;
	right: 2.4rem;
	top: 0;
}

.gumbo-ingredient-card h3 {
	color: var(--bayou-dark);
	font-size: 1.65rem;
	line-height: 1.1;
}

.gumbo-ingredient-card p {
	font-size: 0.84rem;
	margin: 0;
}

.gumbo-photo-row {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 0.75fr 0.75fr;
	margin-top: 3rem;
}

.gumbo-photo-row img {
	border: 7px solid var(--white);
	border-radius: 18px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, 0.08);
	display: block;
	height: 280px;
	object-fit: cover;
	width: 100%;
}

.gumbo-photo-row img:nth-child(2) {
	transform: rotate(2deg);
}

.gumbo-photo-row img:nth-child(3) {
	transform: rotate(-2deg);
}

.gumbo-sampling-section {
	background:
		radial-gradient(circle at 88% 16%, rgba(255, 204, 1, 0.22), transparent 34%),
		linear-gradient(90deg, rgba(111, 37, 118, 0.98) 0%, rgba(153, 68, 158, 0.84) 56%, rgba(153, 68, 158, 0.24) 100%);
	color: rgba(255, 255, 255, 0.72);
	position: relative;
}

.sampling-layout {
	align-items: center;
	display: grid;
	gap: 4rem;
	grid-template-columns: minmax(0, 1fr) 360px;
}

.sampling-copy h2 {
	color: var(--cream);
	font-size: clamp(2.8rem, 5vw, 4.7rem);
	line-height: 1;
}

.sampling-copy p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.7);
	max-width: 760px;
}

.sampling-price-card {
	background: var(--cream);
	border-radius: 18px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.24);
	color: var(--bayou);
	padding: 2.3rem;
	transform: rotate(2deg);
}

.sampling-price-card > span {
	color: var(--cayenne);
	display: block;
	font-size: 0.66rem;
	font-weight: 900;
	letter-spacing: 0.16em;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.sampling-price-card ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sampling-price-card li {
	border-top: 1px solid rgba(18, 55, 45, 0.12);
	font-size: 0.82rem;
	margin: 0;
	padding: 0.9rem 0;
}

.sampling-price-card li:first-child {
	border-top: 0;
}

.sampling-price-card strong {
	color: var(--cayenne);
	font-family: "Fraunces", Georgia, serif;
	font-size: 1.6rem;
	margin-right: 0.35rem;
}

.video-grid {
	align-items: center;
	display: grid;
	gap: 3rem;
	grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
}

.video-frame {
	background: var(--festival-purple);
	border: 8px solid var(--white);
	border-radius: 20px;
	box-shadow: var(--shadow);
	overflow: hidden;
	position: relative;
}

.video-frame:before {
	content: "";
	display: block;
	padding-top: 56.25%;
}

.video-frame iframe,
.video-frame video {
	border: 0;
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
}

.video-copy h2 {
	font-size: clamp(2.4rem, 4vw, 3.8rem);
	line-height: 1;
}

.entry-panel {
	background:
		linear-gradient(105deg, rgba(255, 204, 1, 0.96) 0%, rgba(255, 255, 0, 0.72) 52%, rgba(255, 204, 1, 0.16) 100%),
		radial-gradient(circle at 82% 20%, rgba(153, 68, 158, 0.2), transparent 34%),
		url("../../images/seafood-gumbo-team.png") center / cover no-repeat;
	border-radius: 22px;
	box-shadow: 0 20px 60px rgba(18, 55, 45, 0.18);
	color: rgba(16, 11, 0, 0.74);
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1fr) 390px;
	overflow: hidden;
	padding: 3rem;
}

.entry-main h2 {
	color: var(--bayou-dark);
	font-size: clamp(2.8rem, 5vw, 4.6rem);
	line-height: 1;
}

.entry-main .eyebrow.light {
	color: var(--purple-dark);
	font-weight: 900;
	text-shadow: 0 1px 0 rgba(255, 248, 233, 0.34);
}

.entry-main p {
	color: rgba(16, 11, 0, 0.72);
	max-width: 690px;
}

.entry-contact {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem 1.4rem;
	margin-top: 1.6rem;
}

.entry-contact a {
	color: var(--purple-dark);
	font-size: 0.76rem;
	font-weight: 800;
	text-decoration: none;
}

.entry-contact .icon {
	margin-right: 0.35rem;
}

.entry-details {
	background: rgba(255, 248, 233, 0.95);
	border-radius: 16px;
	color: var(--muted);
	padding: 2rem;
}

.entry-details h3 {
	font-size: 1.45rem;
}

.entry-details p {
	font-size: 0.74rem;
	margin: 1rem 0 0;
}

.check-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.check-list li {
	color: var(--bayou);
	font-size: 0.78rem;
	font-weight: 800;
	margin: 0.65rem 0;
	padding-left: 1.45rem;
	position: relative;
}

.check-list li:before {
	color: var(--cayenne);
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	left: 0;
	position: absolute;
}

.cookoff-info-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 1.25rem;
}

.cookoff-info-card {
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.08);
	border-radius: 17px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, 0.06);
	padding: 1.8rem;
}

.cookoff-info-card .icon {
	align-items: center;
	background: rgba(233, 173, 55, 0.2);
	border-radius: 50%;
	color: var(--cayenne);
	display: flex;
	height: 44px;
	justify-content: center;
	margin-bottom: 1rem;
	width: 44px;
}

.cookoff-info-card h3 {
	font-size: 1.25rem;
	line-height: 1.1;
}

.cookoff-info-card p {
	font-size: 0.74rem;
	line-height: 1.62;
	margin: 0;
}

.trophy-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-top: 1.5rem;
}

.trophy-strip span {
	background: linear-gradient(135deg, var(--gold), var(--festival-purple));
	border-radius: 999px;
	color: var(--bayou-dark);
	font-size: 0.68rem;
	font-weight: 900;
	letter-spacing: 0.04em;
	padding: 0.65rem 0.9rem;
}

.form-download-panel {
	align-items: center;
	background: var(--cream);
	border: 1px solid rgba(217, 74, 47, 0.22);
	border-radius: 20px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, 0.07);
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	margin-top: 2rem;
	padding: 2.5rem;
}

.form-download-panel h2 {
	font-size: clamp(2rem, 3.5vw, 3rem);
	line-height: 1;
}

.form-download-panel p:not(.eyebrow) {
	font-size: 0.82rem;
	margin: 0;
	max-width: 650px;
}

.form-actions {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	gap: 0.65rem;
}

.delicacies-section {
	background: var(--cream);
}

.delicacy-gallery {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1.2fr 0.8fr;
	margin-top: 3rem;
}

.delicacy-gallery figure {
	border-radius: 18px;
	box-shadow: 0 16px 45px rgba(18, 55, 45, 0.08);
	margin: 0;
	min-height: 280px;
	overflow: hidden;
	position: relative;
}

.delicacy-gallery figure:first-child {
	grid-row: span 2;
	min-height: 576px;
}

.delicacy-gallery img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.delicacy-gallery figcaption {
	background: linear-gradient(180deg, transparent, rgba(5, 112, 28, 0.88));
	bottom: 0;
	color: var(--cream);
	font-size: 0.78rem;
	font-weight: 800;
	left: 0;
	padding: 3rem 1.4rem 1.2rem;
	position: absolute;
	right: 0;
}

.delicacy-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: center;
	margin-top: 2rem;
}

.delicacy-list span {
	background: var(--white);
	border: 1px solid rgba(153, 68, 158, 0.18);
	border-radius: 999px;
	color: var(--bayou);
	font-size: 0.72rem;
	font-weight: 800;
	padding: 0.65rem 0.95rem;
}

.delicacy-list span:nth-child(3n) {
	background: rgba(153, 68, 158, 0.1);
	color: var(--festival-purple);
}

/* Contact page */

.contact-page {
	background: var(--paper);
}

.contact-hero {
	background:
		linear-gradient(105deg, rgba(5, 112, 28, 0.96) 0%, rgba(9, 162, 38, 0.76) 50%, rgba(153, 68, 158, 0.26) 100%),
		radial-gradient(circle at 80% 30%, rgba(255, 255, 0, 0.18), transparent 34%),
		url("../../images/pic01.jpg") center / cover no-repeat;
	color: rgba(255, 255, 255, 0.73);
	overflow: hidden;
	padding: 4.5rem 0;
	position: relative;
}

.contact-hero:after {
	background: radial-gradient(circle, rgba(233, 173, 55, 0.32) 0 2px, transparent 2.5px) 0 0 / 32px 32px;
	content: "";
	height: 330px;
	opacity: 0.17;
	position: absolute;
	right: -70px;
	top: -90px;
	transform: rotate(8deg);
	width: 430px;
}

.contact-hero-inner {
	align-items: flex-end;
	display: flex;
	justify-content: space-between;
	position: relative;
	z-index: 1;
}

.contact-hero h2 {
	color: var(--cream);
	font-size: clamp(3rem, 6vw, 5.2rem);
	line-height: 0.98;
	margin-bottom: 0.2em;
}

.contact-hero p:last-child {
	font-size: 0.92rem;
	margin: 0;
	max-width: 680px;
}

.contact-scroll-link {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: 999px;
	color: var(--cream);
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 0.7rem;
	font-weight: 700;
	gap: 0.65rem;
	margin-left: 2rem;
	padding: 0.85rem 1.2rem;
	text-decoration: none;
}

.contact-scroll-link .icon {
	color: var(--gold);
}

.contact-scroll-link:hover {
	background: var(--cream);
	color: var(--bayou);
}

.contact-main {
	background: var(--paper) !important;
	padding: 3.5rem 0 5rem !important;
}

.priority-contacts {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr 1fr;
}

.priority-contact {
	align-items: center;
	background: linear-gradient(135deg, var(--festival-purple), var(--bayou-dark));
	border-radius: 17px;
	box-shadow: 0 16px 45px rgba(153, 68, 158, 0.16);
	display: flex;
	gap: 1.4rem;
	padding: 2rem;
}

.priority-contact.volunteer-contact {
	background:
		radial-gradient(circle at 82% 18%, rgba(255, 204, 1, 0.26), transparent 34%),
		linear-gradient(135deg, var(--purple-dark), var(--festival-purple) 62%, rgba(255, 204, 1, 0.22));
	box-shadow: 0 16px 45px rgba(153, 68, 158, 0.17);
}

.priority-contact .contact-icon {
	align-items: center;
	background: rgba(153, 68, 158, 0.36);
	border: 1px solid rgba(255, 255, 0, 0.26);
	border-radius: 50%;
	color: var(--gold-light);
	display: flex;
	flex: 0 0 58px;
	font-size: 1.2rem;
	height: 58px;
	justify-content: center;
	width: 58px;
}

.contact-kicker {
	color: var(--gold-light);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	margin: 0 0 0.25rem;
	text-transform: uppercase;
}

.priority-contact h2 {
	color: var(--cream);
	font-size: 1.8rem;
	line-height: 1;
	margin-bottom: 0.8rem;
}

.priority-contact-name {
	color: var(--gold);
	font-size: 0.85rem;
	font-weight: 900;
	letter-spacing: 0.02em;
	margin: -0.35rem 0 0.85rem;
}

.contact-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.15rem;
}

.contact-actions a {
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
}

.contact-actions a:hover {
	color: var(--gold-light);
}

.contact-actions .icon {
	color: var(--gold-light);
	margin-right: 0.35rem;
}

.contact-directory {
	margin-top: 4rem;
}

.compact-heading {
	margin-bottom: 1.7rem;
	text-align: center;
}

.compact-heading h2 {
	font-size: clamp(2.2rem, 4vw, 3.3rem);
	line-height: 1;
}

.contact-card-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, 1fr);
}

.contact-card {
	background: var(--white);
	border: 1px solid rgba(18, 55, 45, 0.08);
	border-radius: 15px;
	display: flex;
	flex-direction: column;
	min-height: 245px;
	padding: 1.7rem;
}

.contact-card > .icon {
	align-items: center;
	background: rgba(233, 173, 55, 0.2);
	border-radius: 50%;
	color: var(--cayenne);
	display: flex;
	font-size: 0.9rem;
	height: 42px;
	justify-content: center;
	margin-bottom: 1rem;
	width: 42px;
}

.contact-card h3 {
	font-size: 1.25rem;
	line-height: 1.15;
	margin-bottom: 0.65rem;
}

.contact-card p {
	margin-bottom: 0.45rem;
}

.contact-card .contact-name {
	color: var(--bayou);
	font-size: 0.76rem;
	font-weight: 700;
}

.contact-card a {
	color: var(--muted);
	font-size: 0.72rem;
	line-height: 1.55;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.contact-card a:hover {
	color: var(--cayenne);
}

.contact-card .contact-note {
	border-top: 1px solid rgba(18, 55, 45, 0.09);
	color: #7c8781;
	font-size: 0.66rem;
	line-height: 1.5;
	margin: auto 0 0;
	padding-top: 0.7rem;
}

.contact-card .directory-link {
	color: var(--cayenne);
	font-weight: 700;
	margin-top: auto;
	padding-top: 0.75rem;
}

.sponsor-card {
	background: var(--cream);
	border-color: rgba(217, 74, 47, 0.22);
}

.directions-section {
	background:
		radial-gradient(circle at 12% 12%, rgba(255, 204, 1, 0.22), transparent 34%),
		linear-gradient(135deg, var(--purple-dark), var(--festival-purple));
	border-radius: 20px;
	display: grid;
	grid-template-columns: 0.7fr 1.3fr;
	margin-top: 4rem;
	overflow: hidden;
}

.directions-copy {
	padding: 3rem;
}

.directions-copy h2 {
	color: var(--cream);
	font-size: 2.7rem;
	line-height: 1;
	margin-bottom: 0.6em;
}

.directions-copy address {
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.86rem;
	font-style: normal;
	line-height: 1.65;
	margin-bottom: 1.1rem;
}

.directions-copy address strong {
	color: var(--white);
}

.directions-copy > p:not(.eyebrow) {
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.75rem;
	line-height: 1.6;
}

.map-frame {
	min-height: 410px;
}

.map-frame iframe {
	border: 0;
	display: block;
	height: 100%;
	min-height: 410px;
	width: 100%;
}

.contact-footer {
	padding-top: 3rem !important;
}

.contact-footer-inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.contact-footer-inner > p {
	font-size: 0.72rem;
	margin: 0 2rem;
	text-align: center;
}

.footer-home-link {
	color: var(--gold) !important;
	font-size: 0.72rem;
	font-weight: 700;
	text-decoration: none;
}

/* Responsive */

@media screen and (max-width: 1080px) {
	.nav-shell {
		min-height: 92px;
	}

	#nav > ul > li > a {
		padding-left: 0.6rem;
		padding-right: 0.6rem;
	}

	.language-toggle {
		font-size: 0.62rem;
		margin-left: 0.55rem;
		padding: 0.62rem 0.75rem;
	}

	.hero-artwork {
		flex-basis: 270px;
		margin-right: 0;
	}

	.split-layout {
		gap: 4rem;
	}

	.flavor-grid {
		grid-template-columns: 1.2fr 0.9fr 0.9fr;
	}

	.plan-copy {
		padding: 3.5rem;
	}

	.contact-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.tickets-hero-inner {
		grid-template-columns: minmax(0, 1fr) 320px;
	}

	.thank-you-grid {
		grid-template-columns: 1fr 1fr;
	}

	.primary-thank-you-card {
		grid-column: 1 / -1;
	}

	.ticket-card-grid {
		grid-template-columns: 1fr 1fr;
	}

	.featured-ticket-card {
		grid-column: 1 / -1;
	}

	.entertainment-hero-inner {
		gap: 3rem;
		grid-template-columns: minmax(0, 1fr) 320px;
	}

	.gumbo-hero-inner {
		gap: 3rem;
		grid-template-columns: minmax(0, 1fr) 320px;
	}

	.gallery-hero-inner {
		gap: 3rem;
		grid-template-columns: minmax(0, 1fr) 320px;
	}

	.gallery-preview-panel {
		grid-template-columns: 1fr;
	}

	.gumbo-hero-art,
	.gumbo-hero-art img {
		min-height: 360px;
		height: 360px;
	}

	.entry-panel {
		grid-template-columns: 1fr;
	}

	.band-card {
		grid-template-columns: 1fr;
	}

	.featured-band-card {
		grid-template-columns: 1fr;
	}

	.band-image {
		min-height: 260px;
	}

	.footer-top {
		gap: 2.5rem;
	}
}

@media screen and (max-width: 980px) {
	body {
		padding-top: 44px;
	}

	.container {
		width: min(100% - 48px, 760px);
	}

	.topline {
		display: none;
	}

	.nav-shell {
		justify-content: center;
		min-height: 88px;
		position: relative;
	}

	.language-toggle {
		margin-left: 0;
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
	}

	.language-toggle:hover,
	.language-toggle:focus-visible {
		transform: translateY(calc(-50% - 2px));
	}

	#titleBar .toggle:before {
		background: var(--festival-purple);
		border-radius: 50%;
		box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
	}

	#navPanel {
		background: var(--bayou-dark);
		background-image: none;
	}

	#navPanel .link {
		border-color: rgba(255, 255, 255, 0.07);
		color: rgba(255, 255, 255, 0.75);
		font-style: normal;
		font-weight: 600;
	}

	.hero-inner {
		flex-direction: column;
		min-height: 610px;
	}

	.hero-artwork {
		flex-basis: auto;
		margin: 2.5rem auto 1.5rem;
		width: 280px;
	}

	.hero-ribbon .container {
		gap: 1rem;
	}

	.feature-grid {
		grid-template-columns: 1fr;
	}

	.festival-feature {
		min-height: 0;
	}

	.festival-feature.featured-card,
	.festival-feature.featured-card:hover {
		transform: none;
	}

	.split-layout {
		grid-template-columns: 1fr;
	}

	.visual-stack {
		margin: 0 auto;
		max-width: 650px;
		width: 100%;
	}

	.flavor-grid {
		grid-template-columns: 1fr 1fr;
	}

	.flavor-card-wide {
		grid-column: 1 / -1;
	}

	.day-flow {
		display: grid;
		gap: 1rem;
		grid-template-columns: 1fr 1fr;
	}

	.day-step {
		background: var(--paper);
		border-radius: 16px;
		padding: 1.5rem;
	}

	.day-line {
		display: none;
	}

	.plan-panel,
	.updates-card {
		grid-template-columns: 1fr;
	}

	.contact-hero-inner {
		align-items: flex-start;
		flex-direction: column;
	}

	.contact-scroll-link {
		margin: 1.5rem 0 0;
	}

	.directions-section {
		grid-template-columns: 1fr;
	}

	.entertainment-hero-inner,
	.gallery-hero-inner,
	.tickets-hero-inner,
	.thank-you-hero-inner,
	.thank-you-actions-panel,
	.thank-you-list-grid,
	.square-info-panel,
	.ticket-day-grid,
	.music-culture-grid,
	.band-grid,
	.gumbo-hero-inner,
	.gumbo-intro-grid,
	.sampling-layout,
	.video-grid,
	.cookoff-info-grid {
		grid-template-columns: 1fr;
	}

	.gumbo-hero-art {
		margin-left: auto;
		margin-right: auto;
		max-width: 520px;
		width: 100%;
	}

	.gumbo-photo-row {
		grid-template-columns: 1fr 1fr;
	}

	.gumbo-photo-row img:first-child {
		grid-column: 1 / -1;
	}

	.form-download-panel {
		align-items: flex-start;
		flex-direction: column;
	}

	.form-actions {
		flex-direction: row;
		flex-wrap: wrap;
	}

	.entertainment-hero-card {
		margin-left: auto;
		margin-right: auto;
		max-width: 430px;
		width: 100%;
	}

	.gallery-hero-card {
		margin-left: auto;
		margin-right: auto;
		max-width: 430px;
		width: 100%;
	}

	.gallery-grid-group {
		grid-template-columns: 1fr 1fr;
	}

	.featured-culture-card {
		transform: none;
	}

	.entertainment-note-panel {
		align-items: flex-start;
		flex-direction: column;
	}

	.ticket-card-grid {
		grid-template-columns: 1fr;
	}

	.ticket-pass-preview {
		margin-left: auto;
		margin-right: auto;
		max-width: 430px;
		width: 100%;
	}

	.thank-you-badge {
		height: 190px;
		margin-left: auto;
		margin-right: auto;
		width: 190px;
	}

	.map-frame,
	.map-frame iframe {
		min-height: 360px;
	}

	.merch-image-wrap {
		width: 52%;
	}

	.founder-shell {
		grid-template-columns: 0.8fr 1.2fr;
	}

	.founder-story {
		padding: 3rem;
	}

	.visitor-grid {
		grid-template-columns: 1fr;
	}

	.footer-top {
		grid-template-columns: 1.5fr 1fr 1fr;
	}

	.footer-callout {
		display: none;
	}
}

@media screen and (max-width: 736px) {
	.tagline-flag {
		flex-basis: clamp(5.15rem, 11.5vw, 8.35rem);
		width: clamp(5.15rem, 11.5vw, 8.35rem);
	}

	.instrument-accent {
		height: 3rem;
		opacity: 0.46;
		width: 3rem;
	}

	.instrument-glyph:before {
		font-size: 1.65rem;
	}

	.accent-upper-right,
	.accent-lower-right {
		right: 0.65rem;
	}

	.accent-upper-left,
	.accent-lower-left,
	.accent-hero-left {
		left: 0.65rem;
	}

	body,
	input,
	textarea,
	select {
		font-size: 16px;
	}

	.container {
		width: calc(100% - 36px);
	}

	.nav-shell {
		min-height: 78px;
	}

	.logo-mark {
		height: 44px;
		width: 44px;
	}

	.logo-copy strong {
		font-size: 1rem;
	}

	#banner {
		min-height: 840px;
	}

	.hero-inner {
		align-items: flex-start;
		min-height: 760px;
		padding-bottom: 9rem;
		padding-top: 5rem;
	}

	.hero-artwork {
		align-self: center;
		margin-top: 2.25rem;
		width: min(270px, calc(100% - 28px));
	}

	.hero-artwork figcaption {
		font-size: 0.56rem;
		right: -0.5rem;
	}

	#banner .hero-copy h2 {
		font-size: clamp(3.2rem, 17vw, 4.6rem);
	}

	#banner .hero-lead {
		font-size: 0.95rem;
	}

	.event-meta {
		display: grid;
		gap: 0.4rem;
		margin-top: 1.2rem;
	}

	.hero-actions li {
		display: block;
		margin: 0.65rem 0 0;
	}

	.hero-actions .button {
		text-align: center;
		width: 100%;
	}

	.hero-ribbon {
		position: absolute;
	}

	.hero-ribbon .container {
		align-items: center;
		flex-direction: column;
		gap: 0.3rem;
		padding: 0.7rem 0;
	}

	.section {
		padding: 5rem 0;
	}

	.section-heading h2,
	.split-copy h2,
	.plan-copy h2 {
		font-size: 2.65rem;
	}

	.feature-grid {
		margin-top: 2.5rem;
	}

	.festival-feature {
		padding: 2rem;
	}

	.visual-stack {
		min-height: 440px;
	}

	.visual-card-main {
		height: 360px;
		width: 86%;
	}

	.headliner-caption {
		bottom: 1rem;
		left: 1rem;
		right: 1rem;
	}

	.headliner-caption strong {
		font-size: 1.25rem;
	}

	.visual-card-small {
		height: 190px;
		width: 52%;
	}

	.flavor-grid {
		grid-template-columns: 1fr;
	}

	.flavor-card-wide {
		grid-column: auto;
	}

	.flavor-card {
		height: 350px;
	}

	.gallery-preview-panel {
		border-radius: 20px;
		padding: 1.35rem;
	}

	.gallery-preview-copy h2,
	.gallery-hero-copy h2,
	.gallery-showcase-heading h2 {
		font-size: 2.7rem;
	}

	.gallery-frame {
		border-width: 5px;
		border-radius: 16px;
	}

	.gallery-frame img {
		height: 280px;
	}

	.gallery-slider-large .gallery-frame img {
		height: 340px;
		min-height: 300px;
	}

	.gallery-thumbs,
	.gallery-slider-large .gallery-thumbs {
		grid-template-columns: repeat(3, 1fr);
	}

	.gallery-thumbs button {
		height: 58px;
	}

	.gallery-year-filter {
		justify-content: flex-start;
	}

	.gallery-year-filter button {
		flex: 1 1 150px;
		justify-content: center;
	}

	.gallery-year-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.gallery-grid-group {
		grid-template-columns: 1fr;
	}

	.gallery-grid-item img {
		height: 250px;
	}

	.gallery-hero {
		padding: 3.8rem 0 4.4rem;
	}

	.gallery-hero-card {
		transform: none;
	}

	.gallery-hero-card img {
		height: 240px;
	}

	.day-flow {
		grid-template-columns: 1fr;
	}

	.day-step {
		align-items: center;
		display: flex;
		gap: 1rem;
		text-align: left;
	}

	.step-icon {
		flex: 0 0 64px;
		height: 64px;
		margin: 0;
		width: 64px;
	}

	.plan-section {
		padding-top: 0;
	}

	.plan-panel {
		border-radius: 16px;
	}

	.plan-copy,
	.plan-details {
		padding: 2.2rem;
	}

	.plan-actions,
	.ticket-hero-actions {
		display: block;
	}

	.plan-actions .button,
	.ticket-hero-actions .button {
		display: block;
		margin-top: 0.65rem;
		text-align: center;
		width: 100%;
	}

	.contact-hero {
		padding: 3.5rem 0;
	}

	.entertainment-hero {
		padding: 3.7rem 0 4.4rem;
	}

	.tickets-hero {
		padding: 3.7rem 0 4.4rem;
	}

	.thank-you-hero {
		padding: 3.7rem 0 4.4rem;
	}

	.gumbo-hero {
		padding: 3.9rem 0 4.5rem;
	}

	.entertainment-hero-copy h2 {
		font-size: 3.2rem;
	}

	.tickets-hero-copy h2 {
		font-size: 3.1rem;
	}

	.thank-you-hero h2 {
		font-size: 3.1rem;
	}

	.gumbo-hero-copy h2 {
		font-size: 3.2rem;
	}

	.entertainment-actions li {
		display: block;
		margin: 0.65rem 0 0;
	}

	.entertainment-actions .button {
		text-align: center;
		width: 100%;
	}

	.gumbo-actions {
		display: block;
	}

	.gumbo-actions .button {
		display: block;
		margin-top: 0.65rem;
		text-align: center;
		width: 100%;
	}

	.entertainment-hero-card {
		transform: rotate(1.5deg);
	}

	.entertainment-hero-card img {
		height: 240px;
	}

	.gumbo-hero-art,
	.gumbo-hero-art img {
		height: 280px;
		min-height: 280px;
	}

	.gumbo-ticket {
		font-size: 0.95rem;
	}

	.contact-hero h2 {
		font-size: 3.15rem;
	}

	.contact-main {
		padding-bottom: 3rem !important;
		padding-top: 1.5rem !important;
	}

	.priority-contacts,
	.contact-card-grid {
		grid-template-columns: 1fr;
	}

	.priority-contact {
		align-items: flex-start;
		padding: 1.5rem;
	}

	.contact-actions {
		flex-direction: column;
	}

	.contact-directory {
		margin-top: 3rem;
	}

	.ticket-pass-preview,
	.thank-you-card,
	.festival-day-list,
	.thank-you-actions-panel,
	.square-info-panel,
	.ticket-day-grid article {
		padding: 2rem;
	}

	.ticket-card-copy {
		padding: 2rem;
	}

	.thank-you-grid {
		grid-template-columns: 1fr;
	}

	.primary-thank-you-card {
		grid-column: auto;
	}

	.thank-you-actions {
		justify-content: flex-start;
	}

	.thank-you-actions .button {
		display: block;
		text-align: center;
		width: 100%;
	}

	.ticket-pass-preview strong {
		font-size: 4.4rem;
	}

	.square-benefits li {
		align-items: flex-start;
	}

	.contact-card {
		min-height: 0;
	}

	.music-culture-grid {
		margin-top: 2.3rem;
	}

	.culture-card,
	.band-copy,
	.entertainment-note-panel {
		padding: 2rem;
	}

	.band-grid {
		margin-top: 2rem;
	}

	.band-image {
		min-height: 230px;
	}

	.featured-band-card h3 {
		font-size: 2.15rem;
	}

	.sampling-price-card {
		transform: none;
	}

	.entry-panel,
	.form-download-panel {
		padding: 2rem;
	}

	.trophy-strip span,
	.delicacy-list span {
		font-size: 0.66rem;
	}

	.delicacy-gallery {
		grid-template-columns: 1fr;
	}

	.delicacy-gallery figure,
	.delicacy-gallery figure:first-child {
		grid-row: auto;
		min-height: 260px;
	}

	.directions-section {
		margin-top: 3rem;
	}

	.directions-copy {
		padding: 2.2rem;
	}

	.directions-copy h2 {
		font-size: 2.35rem;
	}

	.contact-footer-inner {
		align-items: flex-start;
		flex-direction: column;
		gap: 1.5rem;
	}

	.contact-footer-inner > p {
		margin: 0;
		text-align: left;
	}

	.merch-showcase {
		padding: 2rem 1.25rem 1.6rem;
	}

	.merch-image-wrap {
		max-width: 310px;
		width: 82%;
	}

	.merch-badge {
		right: -0.35rem;
	}

	.merch-showcase figcaption strong {
		font-size: 1.4rem;
	}

	.founder-section {
		padding-bottom: 4rem;
		padding-top: 4rem;
	}

	.founder-shell {
		grid-template-columns: 1fr;
	}

	.founder-portrait {
		border-radius: 16px 16px 0 0;
		min-height: 500px;
	}

	.portrait-placeholder {
		min-height: 370px;
	}

	.founder-story {
		border-radius: 0 0 16px 16px;
		padding: 2.2rem;
	}

	.founder-story h2 {
		font-size: 2.65rem;
	}

	.tab-list {
		overflow-x: auto;
		scrollbar-width: none;
	}

	.tab-list::-webkit-scrollbar {
		display: none;
	}

	.founder-tab {
		flex: 0 0 auto;
		padding-left: 0.8rem;
		padding-right: 0.8rem;
	}

	.tab-panel {
		min-height: 290px;
	}

	.policy-strip {
		align-items: flex-start;
		flex-direction: column;
	}

	.firearms-notice {
		align-items: flex-start;
	}

	.updates-card {
		gap: 2rem;
		padding: 2.2rem;
	}

	.updates-actions .button {
		text-align: center;
		width: 100%;
	}

	.footer-top {
		grid-template-columns: 1fr 1fr;
	}

	.footer-brand {
		grid-column: 1 / -1;
	}

	#copyright ul.links {
		display: block;
	}

	#copyright ul.links li {
		margin-top: 0.35rem;
	}

	#copyright .site-credit {
		margin-top: 1rem;
	}

	#copyright .site-credit img {
		max-width: 285px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*:before,
	*:after {
		animation: none !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
