@charset "utf-8";

/************************************************************************************
RESET / BASE
*************************************************************************************/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 100%;
	line-height: 1.5;
	color: #666666;
	background: #0d1424 url("fireworks-deluxe.jpg") repeat-x center top fixed;
	padding-top: 0;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
	border: 0;
}

iframe {
	display: block;
	max-width: 100%;
	border: 0;
}

/************************************************************************************
LINKS
*************************************************************************************/
a {
	color: #026acb;
	text-decoration: none;
	outline: none;
}

a:hover {
	text-decoration: underline;
}

/************************************************************************************
TYPOGRAPHY
*************************************************************************************/
p {
	margin: 0 0 1.2em;
	padding: 0;
}

h1, h2, h3, h4, h5, h6 {
	color: #000000;
	line-height: 1.35;
	margin: 20px 0 0.4em;
}

h1 {
	font-size: 2rem;
	font-weight: bold;
	color: #993300;
	line-height: 1.2;
}

h2 {
	font-size: 1.6rem;
	font-weight: bold;
	color: #993300;
	line-height: 1.35;
	margin-top: 10px;
	margin-bottom: 15px;
}

h3 {
	font-size: 1.4rem;
}

h4 {
	font-size: 1.2rem;
}

h5 {
	font-size: 1.1rem;
}

h6 {
	font-size: 1rem;
}

strong {
	font-weight: bold;
}

.gonewhite {
	color: #ffffff;
}

.purewhite {
	background-color: #ffffff;
	margin-top: 2px;
}

/************************************************************************************
LAYOUT
*************************************************************************************/
#pagewrap {
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 96px 12px 30px;
}

.content {
	background: #eeeeee;
	margin: 0 0 30px;
	padding: 20px 35px;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
	width: auto;
}

.post {
	margin-bottom: 0;
}

#pagewrap > p > img,
#pagewrap > p > a > img,
#pagewrap > a > img,
#pagewrap > img {
	margin-left: auto;
	margin-right: auto;
}

/************************************************************************************
FEATURE / CONTENT BOXES
*************************************************************************************/
#foodbox,
#beasponsor,
#sponsornow {
	background-color: #0099ff;
	color: #ffffff;
	font-size: 1.3rem;
	padding: 25px 40px;
	text-align: center;
}

#foodbox {
	max-width: 1100px;
	margin: 40px auto;
}

#foodbox p,
#foodbox h2,
#foodbox h3,
#beasponsor p,
#beasponsor h2,
#beasponsor h3,
#sponsornow p,
#sponsornow h2,
#sponsornow h3 {
	color: inherit;
}

#whitebox {
	width: 100%;
	background-color: #ffffff;
	padding: 12px 15px;
	margin-bottom: 15px;
	border-radius: 8px;
}

#whiteboxlarge {
	background-color: #ffffff;
	padding: 10px;
	border-radius: 8px;
}

/************************************************************************************
STICKY TOP TICKET BAR
*************************************************************************************/
.sticky-ticket {
	position: fixed;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	max-width: 1080px;
	z-index: 20000;
	margin: 0;
	padding: 0;
	line-height: 0;
	background: #1f4398;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}

.sticky-ticket a {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	line-height: 0;
}

.sticky-ticket img {
	display: block;
	width: 100%;
	max-width: 1080px;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
}

/************************************************************************************
POPUP / HAMBURGER MENU
*************************************************************************************/
.menu-toggle {
	position: fixed;
	top: 138px;
	right: 18px;
	left: auto;
	z-index: 21000;
	width: 60px;
	height: 60px;
	border: 0;
	border-radius: 14px;
	background: rgba(0, 0, 0, 0.86);
	cursor: pointer;
	padding: 0;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}

.menu-toggle span {
	display: block;
	width: 30px;
	height: 4px;
	margin: 6px auto;
	background: #ffffff;
	border-radius: 3px;
	transition: all 0.3s ease;
}

.popup-menu {
	position: fixed;
	top: 0;
	right: -340px;
	left: auto;
	width: 320px;
	max-width: 88vw;
	height: 100vh;
	z-index: 20001;
	background: linear-gradient(
		to bottom,
		#1d3f95 0%,
		#142f70 18%,
		#5f0008 55%,
		#7f0d0d 78%,
		#2f0204 100%
	);
	box-shadow: -8px 0 24px rgba(0, 0, 0, 0.35);
	transition: right 0.35s ease;
	overflow-y: auto;
	border-left: 3px solid #d9772b;
}

.popup-menu.active {
	right: 0;
}

.popup-menu-inner {
	padding: 80px 24px 30px;
}

.popup-menu-inner h3 {
	margin: 0 0 22px;
	color: #ffffff;
	font-size: 28px;
	letter-spacing: 1px;
	text-align: center;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.popup-menu-inner a {
	display: block;
	color: #ffffff;
	text-decoration: none;
	font-weight: 700;
	font-size: 17px;
	line-height: 1.3;
	padding: 14px 12px;
	margin: 0 0 10px;
	border-radius: 8px;
	text-align: center;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.10);
	transition: background 0.25s ease, transform 0.2s ease, border-color 0.2s ease;
}

.popup-menu-inner a:hover,
.popup-menu-inner a:focus {
	background: rgba(217, 119, 43, 0.22);
	border-color: rgba(217, 119, 43, 0.55);
	transform: translateX(-3px);
	text-decoration: none;
}

.menu-close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 42px;
	height: 42px;
	border: 0;
	background: transparent;
	color: #ffffff;
	font-size: 34px;
	line-height: 1;
	cursor: pointer;
}

.menu-overlay {
	position: fixed;
	inset: 0;
	background: rgba(8, 12, 30, 0.55);
	z-index: 19999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.menu-overlay.active {
	opacity: 1;
	visibility: visible;
}

body.menu-open {
	overflow: hidden;
}

.top-jump-links {
	display: none;
}

/************************************************************************************
FOOTER CALLOUTS
*************************************************************************************/
.footer-callouts {
	text-align: center;
	margin: 10px 0 30px;
}

.callout-line {
	margin: 12px 0;
	line-height: 1.35;
}

.callout-label,
.callout-link {
	display: inline-block;
	padding: 10px 18px;
	border-radius: 999px;
	font-weight: bold;
	letter-spacing: 0.4px;
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.28);
}

.callout-light {
	background: rgba(255, 255, 255, 0.88);
	color: #1d2f6f;
}

.callout-dark {
	background: rgba(10, 24, 60, 0.82);
	color: #ffffff;
}

.callout-link {
	background: rgba(255, 255, 255, 0.90);
	color: #0b66c3;
}

.callout-link:hover,
.callout-credit:hover,
.callout-email:hover {
	text-decoration: underline;
}

.callout-email {
	color: #8b2f00;
	font-weight: bold;
	text-decoration: none;
}

.callout-credit {
	color: #66b7ff;
	font-weight: bold;
	text-decoration: none;
}

.website-by-line {
	margin-top: 16px;
	font-size: 1.1rem;
}

/************************************************************************************
CONTENT LINK STYLING
*************************************************************************************/
.content a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	color: #1a4fa3;
	font-weight: 600;
	transition: color 0.2s ease, text-decoration-color 0.2s ease, transform 0.15s ease;
}

.content a:hover {
	color: #d03030;
	text-decoration-color: #d03030;
}

.content a:active {
	transform: translateY(1px);
	color: #7a1e1e;
}

.content a:visited {
	color: #6b4ca3;
}

/************************************************************************************
UTILITIES
*************************************************************************************/
.floatright {
	float: right;
	margin-left: 5px;
}

.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

hr {
	border: 0;
	height: 1px;
	margin: 28px 0;
	background: #d9d9d9;
}

/************************************************************************************
FAQ SECTION
*************************************************************************************/
.faq-section {
	background: #f3f5f9;
	border: 1px solid rgba(20, 47, 112, 0.12);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.faq-section h2 {
	margin-top: 0;
	margin-bottom: 8px;
	color: #993300;
}

.faq-intro {
	color: #41506b;
	font-size: 1.02rem;
	margin-bottom: 22px;
}

.faq-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.faq-item {
	background: #ffffff;
	border-left: 6px solid #1d3f95;
	border-radius: 8px;
	padding: 18px 18px 16px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
	text-align: left;
}

.faq-item h3 {
	margin: 0 0 10px;
	font-size: 1.2rem;
	line-height: 1.3;
	color: #1d2f6f;
}

.faq-item p {
	margin: 0 0 10px;
	color: #333333;
	line-height: 1.55;
}

.faq-item p:last-child {
	margin-bottom: 0;
}

.faq-alert {
	border-left-color: #c63d2f;
	background: #fff8f6;
}

.faq-alert h3 {
	color: #8f241b;
}

.faq-alert p {
	color: #5c1d17;
	font-weight: 600;
}

/************************************************************************************
ANCHOR OFFSET
*************************************************************************************/
#schedule,
#location,
#food,
#charity,
#parking,
#volunteer,
#vendro2025,
#sponsornow {
	scroll-margin-top: 110px;
}

.anchor-section {
	scroll-margin-top: 110px;
}

/************************************************************************************
SPONSOR THANKS
*************************************************************************************/
.sponsor-thanks {
	background: #ffffff;
	padding: 40px 20px 30px;
	text-align: center;
	clear: both;
}

.sponsor-thanks-title {
	margin: 0 0 24px;
	font-size: 2.1rem;
	line-height: 1.2;
	color: #6b4a1e;
	font-family: Georgia, "Times New Roman", serif;
}

.sponsor-thanks-logos {
	max-width: 1080px;
	margin: 0 auto;
}

.sponsor-thanks-logos img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}

/************************************************************************************
FOOD DRIVE SECTION
*************************************************************************************/
.foodbox-intro {
	max-width: 900px;
	margin: 0 auto 30px;
}

.foodbox-kicker {
	margin: 0 0 10px;
	font-size: 22px;
	line-height: 1.3;
	color: #ffffff;
}

.foodbox-goal {
	margin: 0 0 14px;
	font-size: 28px;
	line-height: 1.35;
	color: #ffffff;
}

.foodbox-copy {
	margin: 0 auto;
	max-width: 850px;
	font-size: 18px;
	line-height: 1.6;
	color: #ffffff;
}

.food-drive-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	align-items: start;
	margin: 34px auto 30px;
}

.food-drive-card {
	background: #ffffff;
	border: 1px solid #e6dfd5;
	border-radius: 18px;
	padding: 28px 24px 26px;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06);
	text-align: center;
}

.food-drive-logo {
	margin: 0 0 16px;
	text-align: center;
}

.food-drive-logo img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	height: auto;
}

.food-drive-title {
	margin: 0 0 10px;
	font-size: 28px;
	line-height: 1.25;
	color: #6b4a1e;
}

.food-drive-note {
	margin: 0 auto 18px;
	max-width: 560px;
	font-size: 17px;
	line-height: 1.55;
	color: #555555;
}

.food-drive-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 14px;
	text-align: left;
}

.food-drive-list li {
	background: #f7f2ea;
	border: 1px solid #eadcc8;
	border-radius: 999px;
	padding: 10px 14px;
	font-size: 15px;
	line-height: 1.35;
	color: #5b4630;
}

.foodbox-photo {
	margin: 28px auto 0;
}

.foodbox-photo img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	height: auto;
	border-radius: 16px;
}

/************************************************************************************
FESTIVAL SCHEDULE
*************************************************************************************/
.festival-schedule {
	background: #ffffff;
	padding: 50px 20px 40px;
	margin: 0 0 30px;
	clear: both;
	border-top: 1px solid #dddddd;
}

.schedule-inner {
	max-width: 1080px;
	margin: 0 auto;
	text-align: center;
}

.schedule-title {
	margin: 0 0 16px;
	font-size: 2.2rem;
	line-height: 1.2;
	color: #993300;
}

.schedule-subtitle {
	margin: 0 auto 28px;
	max-width: 900px;
	font-size: 1.2rem;
	line-height: 1.5;
	color: #111111;
}

.schedule-images {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0 0 24px;
}

.schedule-images:last-child {
	margin-bottom: 0;
}

.schedule-images img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
	border-radius: 12px;
}

/************************************************************************************
RESPONSIVE
*************************************************************************************/
@media screen and (max-width: 1080px) {
	#pagewrap {
		padding: 92px 10px 30px;
	}

	.content {
		padding: 18px 20px;
	}

	#foodbox,
	#beasponsor,
	#sponsornow {
		padding: 20px;
		font-size: 1.1rem;
	}
}

@media screen and (max-width: 900px) {
	.food-drive-grid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 768px) {
	h1 {
		font-size: 1.6rem;
	}

	h2 {
		font-size: 1.35rem;
	}

	h3 {
		font-size: 1.15rem;
	}

	h4 {
		font-size: 1rem;
	}

	#pagewrap {
		padding: 82px 10px 24px;
	}

	.content {
		padding: 16px 14px;
		border-radius: 6px;
	}

	#foodbox,
	#beasponsor,
	#sponsornow {
		padding: 16px 14px;
		font-size: 1rem;
	}

	.callout-label,
	.callout-link {
		padding: 8px 14px;
		font-size: 0.95rem;
		line-height: 1.35;
	}

	.menu-toggle {
		top: 108px;
		right: 12px;
		width: 54px;
		height: 54px;
	}

	.popup-menu-inner {
		padding: 74px 18px 24px;
	}

	.popup-menu-inner h3 {
		font-size: 24px;
	}

	.popup-menu-inner a {
		font-size: 16px;
		padding: 13px 10px;
	}

	.faq-section {
		padding-top: 18px;
		padding-bottom: 18px;
	}

	.faq-item {
		padding: 15px 14px 14px;
		border-left-width: 5px;
	}

	.faq-item h3 {
		font-size: 1.08rem;
	}

	.faq-intro {
		font-size: 0.96rem;
	}

	.sponsor-thanks-title {
		font-size: 1.7rem;
	}

	.schedule-title {
		font-size: 1.8rem;
	}

	.schedule-subtitle {
		font-size: 1.05rem;
	}

	.foodbox-kicker {
		font-size: 18px;
	}

	.foodbox-goal {
		font-size: 22px;
	}

	.foodbox-copy {
		font-size: 16px;
	}

	.food-drive-title {
		font-size: 23px;
	}

	.food-drive-note {
		font-size: 16px;
	}
}

@media screen and (max-width: 600px) {
	.food-drive-list {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 480px) {
	#pagewrap {
		padding: 78px 6px 20px;
	}

	.content {
		padding: 14px 10px;
	}

	.callout-label,
	.callout-link {
		padding: 8px 12px;
		font-size: 0.9rem;
	}

	.menu-toggle {
		top: 96px;
		right: 10px;
		width: 52px;
		height: 52px;
	}

	.schedule-title {
		font-size: 1.6rem;
	}

	.schedule-subtitle {
		font-size: 1rem;
	}
}



/* FOOD DRIVE SECTION */
#foodbox {
	max-width: 1100px;
	margin: 40px auto;
}

/* intro area stays white text on blue */
.foodbox-intro,
.foodbox-intro p,
.foodbox-intro h2,
.foodbox-intro h3,
.foodbox-kicker,
.foodbox-goal,
.foodbox-copy {
	color: #ffffff;
}

/* two-card layout */
.food-drive-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	align-items: start;
	margin-top: 25px;
}

/* white cards */
.food-drive-card {
	background: #f3f3f3;
	border-radius: 16px;
	padding: 26px 24px 20px;
	text-align: left;
	color: #5b3b16; /* default dark brown for all card text */
	box-sizing: border-box;
}

/* make sure headings and paragraphs inside cards are NOT inheriting white */
.food-drive-card h2,
.food-drive-card h3,
.food-drive-card h4,
.food-drive-card p,
.food-drive-card li {
	color: #5b3b16;
}

/* logo area */
.food-drive-logo {
	text-align: center;
	margin-bottom: 16px;
}

.food-drive-logo img {
	display: inline-block;
	max-width: 100%;
	height: auto;
}

/* main card image */
.food-drive-card > img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto 18px;
}

/* visible headline */
.food-drive-title {
	display: block;
	margin: 0 0 10px;
	font-size: 28px;
	line-height: 1.2;
	font-weight: 700;
	color: #6b4423 !important;
	text-align: left;
}

/* visible paragraph under headline */
.food-drive-note {
	margin: 0 0 18px;
	font-size: 16px;
	line-height: 1.5;
	color: #6b4423 !important;
	text-align: left;
}

/* pill list */
.food-drive-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 10px;
}

.food-drive-list li {
	background: #e9e2d8;
	border: 1px solid #d8c8b4;
	border-radius: 999px;
	padding: 10px 14px;
	font-size: 15px;
	line-height: 1.25;
	color: #5b3b16;
	text-align: left;
}

/* mobile */
@media screen and (max-width: 800px) {
	.food-drive-grid {
		grid-template-columns: 1fr;
	}

	.food-drive-title {
		font-size: 24px;
	}

	.food-drive-list {
		grid-template-columns: 1fr;
	}
}

/* shared image wrapper */
.food-drive-image-wrap {
	width: 100%;
	margin: 0 auto 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

/* default image behavior */
.food-drive-image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}

/* DESKTOP + TABLET:
   force both main images to occupy the same visual height */
@media screen and (min-width: 801px) {
	.food-drive-image-wrap {
		height: 460px;   /* adjust this value if you want a little taller or shorter */
	}

	.food-drive-image {
		width: 100%;
		height: 100%;
		object-fit: contain;
		object-position: center top;
	}
}

/* TABLET SMALLER */
@media screen and (min-width: 801px) and (max-width: 1024px) {
	.food-drive-image-wrap {
		height: 390px;
	}
}

/* MOBILE:
   let each image use natural height again */
@media screen and (max-width: 800px) {
	.food-drive-image-wrap {
		height: auto;
	}

	.food-drive-image {
		width: 100%;
		height: auto;
		object-fit: unset;
	}
}