:root {
	--textcolor:#1b325f;
	--text-color:#1b325f;
	--accent-color:#7b1222;
	--bgcolor:#e8eaef;
	--overlay-color:rgba(0,0,0,0.15);
	--gradient-background:linear-gradient(#ac1b31, #5c0d19);
	--link-color:#2c55a5;
}

/* =========================================================
   GLOBAL RESET + LAYOUT SYSTEM
   ========================================================= */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: "Roboto Condensed", sans-serif;
	color: var(--text-color);
	background: #e8eaef;
	overflow-x:hidden;
}
html, body {
	line-height: 1.4;
	font-size:14pt;
}

h1, h2, h3, h4, h5, h6 {
	margin-bottom:1em;
	color:var(--accent-color);
}

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

.container-lg {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1rem;
}

/* Utility */
.text-center { text-align: center; }

button, .btn, .byu-footer a.button {
	background-color:var(--accent-color);
	color:#fff;
	border:none;
	font-family:"Oswald", sans-serif;
	text-transform:uppercase;
	font-weight:500;
	padding:10px 15px;
	font-size:0.8em;
}
input[type="text"], input[type="password"], #orv2 input, #orv2 textarea, #orv2 select, #orv2 #reg-search {
	background:#fff;
	background-color:#fff;
	box-shadow:inset 100% 100% #fff;
}

ol, ul {
	margin-left:1.5em;
}
ol {margin-bottom:60px;}
ol ol {margin-top:10px; margin-bottom:15px;}
li {
	line-height:1.5em;
}


/* =========================================================
   HEADER
   ========================================================= */
#site-header {
	position: sticky;
	top: 0;
	z-index: 10;
	background: var(--text-color);
	box-shadow: 0 0 10px rgba(0,0,0,0.4);
	min-height: 80px;
	display: flex;
	align-items: center;
}

.byu-header-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 0.5rem 2rem;
}

/* Logo */
.byu-logo img {
	height: 55px;
	object-fit: contain;
	display: block;
}

/* =========================================================
   NAVBAR (YOUR STRUCTURE, USDC STYLE)
   ========================================================= */
#navbar {
	display: flex;
	align-items: flex-end;
	gap: 1rem;
}

#navbar ul.adults {
	list-style: none;
	display: flex;
	gap: 0;
}

#navbar ul.adults > li {
	position: relative;
}

#navbar ul.adults > li > a {
	display: flex;
	align-items: center;
	padding: 10px 15px;
	color: #fff;
	text-decoration: none;
	font-family: "Oswald", sans-serif;
	font-weight: 700;
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	border-top: 2px solid transparent;
	transition: 0.2s;
}

#navbar ul.adults > li > a:hover {
	border-top-color: #fff;
}

/* Current page */
#navbar ul.adults > li.current > a {
	border-top-color: #fff;
}

#navbar > ul > li.parent a:after {
	content:"\f0d7";
	font-family:"Font Awesome 5 Free";
	color:#fff;
	margin-left:5px;
}

/* Dropdown UL */
#navbar ul.children {
	position: absolute;
	left: 0;
	top: 100%;
	background: #fff;
	min-width: 300px;
	padding: 10px 0;
	display: none;
	list-style-type:none;
	/* border: 1px solid #1b325f; */
}
#navbar ul.adults > li:last-child ul.children {
	left:initial;
	right:0;
}

#navbar ul.children > li {
	width: 100%;
}

#navbar ul.children > li > a {
	display: block;
	padding: 7.5px 20px;
	color: #1b325f;
	text-decoration: none;
	font-family: "Roboto Condensed", sans-serif;
	font-size: 16px;
	border-bottom: 1px solid #eee;
}

#navbar ul.children > li > a:hover {
	background: var(--accent-color);
	color: #fff;
}

/* Show dropdown when your PHP toggles children-expanded */
#navbar li.children-expanded > ul.children {
	display: block;
}

/* Splitter classes (your existing ones) */
.li-split-after > a,
.li-split-before > a {
	border-right: 2px solid rgba(255,255,255,0.3);
}

/* =========================================================
   REGISTRATION LINK SPECIAL STYLE
   ========================================================= */

#navbar > ul > li:first-child {display:none;}

#navbar a[href*="registration"],
#navbar a[href*="register"],
#navbar a[href*="entryform"] {
	background: #fff;
	color: var(--accent-color) !important;
	border-radius: 3px;
	margin-left: 10px;
	border: 1px solid transparent;
	transition: 0.2s ease;
}

#navbar a[href*="registration"]:hover,
#navbar a[href*="register"]:hover,
#navbar a[href*="entryform"]:hover {
	color: #fff !important;
	background: var(--accent-color);
	border-color: #fff;
}

@media(max-width:1060px) {
	.byu-header-wrapper {
		flex-direction:column;
	}
	.byu-logo img {height:65px;}
	#navbar ul {
		margin-top:0.5rem;
		margin-bottom:-0.5rem;
	}
}


/* =========================================================
   MOBILE NAV
   ========================================================= */

#navbutton {
	display: none;
	color: #fff;
	font-size: 1.8rem;
	cursor: pointer;
	padding: 0.4rem 0.6rem;
}

@media (max-width: 767px) {

	.byu-logo img {height:55px;}
	
	.byu-header-wrapper {
		flex-direction:row;
	}

	#navbutton {
		display: block;
	}

	#navbar ul {
		display: none !important;
	}

}

/* =========================================================
   BANNER SECTION (USDC STYLE)
   ========================================================= */

.banner-section {
	position:relative;
	padding:3em;
	overflow:hidden;
	min-height:300px;
	background-color:#000;
	display:flex;
	justify-conten:center;
	align-items:center;
}
.banner-section .banner-bg {
	position:absolute;
	left:0; top:0;
	width:100vw;
	min-height:100%;
	height:auto;
	object-fit:cover;
	z-index:0;
	opacity:0.66;
}
.banner-section h1 {
	color:#fff;
	position:relative;
	text-align:center;
	z-index:1;
	font-family:"Oswald", sans-serif;
	font-size:2.5em;
	font-weight:700;
	text-transform:uppercase;
	width:100%;
}


/* =========================================================
   HERO SECTION (USDC STYLE)
   ========================================================= */
.hero-home {
	background-color: #1b325f;
	background-image: url("/images/home-hero-bg.jpg");
	background-repeat:repeat-x;
	background-position:0 0;
	background-size: cover;
	background-position: center;
	position: relative;
	padding: 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	text-align: center;
	isolation: isolate;
}
.hero-home * {
	color: #fff;
}

.hero-home::after {
	content: "";
	position: absolute;
	left:0;
	inset: 0;
	background: #120b32;
	opacity: 0.66;
	z-index: -1;
}

.hero-home h1, .hero-home h1 span {
	font-family: "Oswald", sans-serif;
	font-size: 30px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.hero-home h2 {
	font-family: "Train One", cursive;
	text-transform: uppercase;
	font-size: 64px;
	margin-top: -10px;
}
.puff-in-center{-webkit-animation:puff-in-center .7s cubic-bezier(.47,0.000,.745,.715) 1s both;animation:puff-in-center .7s cubic-bezier(.47,0.000,.745,.715) 1s both}
@-webkit-keyframes puff-in-center{0%{-webkit-transform:scale(2);transform:scale(2);-webkit-filter:blur(4px);filter:blur(4px);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);-webkit-filter:blur(0);filter:blur(0);opacity:1}}@keyframes puff-in-center{0%{-webkit-transform:scale(2);transform:scale(2);-webkit-filter:blur(4px);filter:blur(4px);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);-webkit-filter:blur(0);filter:blur(0);opacity:1}}

.hero-home span {
	font-size: 116px;
	line-height: 0.9;
}

@media(max-width:767px) {
	.hero-home {padding:30px 30px 60px 30px;}
	.hero-home h2 {font-size:48px;}
	.hero-home h2 span {font-size:72px;}
	#countdown > div {
		width:90px !important;
	}
	#countdown > div:after {width:90px !important;}
	#countdown span {font-size:72px;}
}

/* =========================================================
   HERO TEXT LETTER REVEAL
   ========================================================= */

.hero-reveal {
	display: inline-block;
	white-space: normal;
}

.hero-reveal span {
	display: inline-block;
	opacity: 0;
	filter: blur(5px);
	transform: scale(2);
	will-change: transform, opacity, filter;
}

.hero-reveal span.reveal {
	animation: letterReveal 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes letterReveal {
	to {
		opacity: 1;
		filter: blur(0);
		transform: scale(1);
	}
}


/* =========================================================
   FOOTER (USDC-INSPIRED)
   ========================================================= */

#pre-footer {
	background-color:var(--accent-color);
	padding:3em 6em;
	display:flex;
	flex-direction:row;
	color:#fff;
}
#pre-footer * {color:#fff;}
#pre-footer > div {
	flex:1;
	text-align:center;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	justify-content:center;
}
#pre-footer h2 {
	text-transform:uppercase;
	font-weight:bold;
	font-size:2em;
	margin:0;
	transform:scaleY(0.9);
	letter-spacing:-1px;
}
#pre-footer .button {
	padding: 15px 40px;
    font-size: 24px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--accent-color);
    background-color: #fff;
    border:none;
    transition: 0.3s ease, color 0.3s ease;
    margin:0;
}
#pre-footer .button:hover {
	text-decoration:none;
}

.pulse {
  margin:100px;
  display: block;
  cursor: pointer;
  box-shadow: 0 0 0 rgba(255,255,255, 0.8);
  animation: pulse 1.5s infinite;
}
.pulse:hover {
  animation: none;
}
@-webkit-keyframes pulse {
  0% {-webkit-box-shadow: 0 0 0 0 rgba(255,255,255, 0.6);}
  60% {-webkit-box-shadow: 0 0 0 20px rgba(255,255,255, 0);}
  100% {-webkit-box-shadow: 0 0 0 0 rgba(255,255,255, 0);}
}
@keyframes pulse {
  0% {-moz-box-shadow: 0 0 0 0 rgba(255,255,255, 0.6); box-shadow: 0 0 0 0 rgba(255,255,255, 0.6);}
  60% {-moz-box-shadow: 0 0 0 20px rgba(255,255,255, 0); box-shadow: 0 0 0 20px rgba(255,255,255, 0);}
  100% {-moz-box-shadow: 0 0 0 0 rgba(255,255,255, 0); box-shadow: 0 0 0 0 rgba(255,255,255, 0);}
}


.byu-footer {
	background: #242424;
	background-image:linear-gradient(#353535, #000000);
	color: #fff;
	padding-top: 2rem;
	padding-bottom:15rem;
	margin-top: 4rem;
	position:relative;
}
.byu-footer * {color:#ddd;}

.byu-footer-wrapper {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1rem;
	position:relative;
	z-index:1;
}

.byu-footer-cols {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	justify-content: space-around;
	text-align: center;
}
.byu-footer-cols > div {flex:1;}

#footer-logo {
	width:25vw;
	max-width:250px;
	margin-bottom:10px;
	opacity:0.8;
}
.byu-footer-col h2 {
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	font-size: 28px;
	margin-bottom: 0.5rem;
}

.byu-footer-col p {
	font-family: "Roboto Condensed", sans-serif;
	color: #f8f8f8;
	line-height:1.25rem;
}
.byu-footer a.button:hover {
	background-color:#fff;
	color:var(--accent-color);
}

.byu-social a {
	color: #ddd;
	font-size: 1.3rem;
	margin-inline: 0.5rem;
	transition: 0.3s ease;
}

.byu-social a:hover {
	transform: translateY(-4px);
}

.byu-footer-bottom {
	margin-top: 2rem;
	padding-bottom: 1.5rem;
	display: flex;
	justify-content: center;
	gap: 2rem;
	flex-wrap: wrap;
	font-family: "Roboto Condensed", sans-serif;
	font-size: 14px;
}

footer a {
	color: #ccc;
	text-decoration: none;
	transition:0.2s ease-in-out;
}

footer a:hover {
	color: #fff;
	text-shadow:0 0 5px #fff;
	text-decoration:none;
}

#ballroom-footer-img {
	width:100vw; height:100%;
	pointer-events:none;
	position:absolute;
	bottom:0;
	z-index:0;
	object-fit:cover;
}

/* Mobile */
@media (max-width: 768px) {
	.byu-footer-cols {
		flex-direction: column;
		align-items: center;
	}
}


/* =========================================================
   MAIN
   ========================================================= */

#main {
	padding:4em;
	margin:0 auto;
	max-width:1200px;
}
#headline {
	text-align:center;
}



/* =========================================================
   COUNTDOWN
   ========================================================= */

.countdown {
	font-family: "Oswald", sans-serif;
	font-size: 24px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.count-top,
.count-bottom {
	display: flex;
	justify-content: center;
	gap: 1rem;
}

/* Stack vertically on small screens */
@media (max-width: 640px) {
	.count-top,
	.count-bottom {
		flex-direction: column;
	}
}

#countdown {
	font-family: "Oswald", sans-serif;
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	width:100%;
	margin-top:15px;
}
#countdown > div {
	border-radius:100%;
	width:150px; height:120px; line-height:120px;
	text-align:center;
	margin:0 10px;
	font-family:Arial, Helvetica, sans-serif;
	font-weight:700;
	position:relative;
}
#countdown > div:after {
	position:absolute;
	top:60px; left:0;
	width:150px;
	text-align:center;
	font-size:1em;
	text-transform:uppercase;
}
#countdown span {}
#countdown .months:after {content:"Months";}
#countdown .days:after {content:"Days";}
#countdown .hours:after {content:"Hrs";}
#countdown .minutes:after {content:"Min";}


#affiliates {
	display:flex;
	flex-direction:row;
	justify-content:center;
	width:100%;
	margin:15px 0 60px 0;
}
#affiliates img {
	width:150px; height:150px;
	object-fit:contain;
	margin:30px;
	padding:5px;
	background-color:#fff;
	border-radius:100%;
	border:1px solid #ccc;
	box-shadow:0 0 15px rgba(0,0,0,0.1);
}


/* =========================================================
   INFO / NEWS PANELS
   ========================================================= */

.info-panels {
	margin:2em 4em 4em 4em;
	width:calc(100vw - 8em);
}
.info-panels .info-panel {
	box-shadow:0 0 10px rgba(0,0,0,0.5);
}
.info-panels .info-panel-frame {
	height:210px;
	padding:0;
}
.info-panels .info-panel-content, .info-panels .info-panel-button-container {
	padding:1em;
}
.info-panels .info-panel-button-container {text-align:left;}
.info-panels .info-panel-button-container button {
	border:none;
	background:none;
	color:var(--accent-color);
	font-family:"Oswald", sans-serif;
	font-size:1.2em;
	text-transform:uppercase;
	font-weight:bold;
}
.info-panels .info-panel-button-container button:after {
	content: " \00BB";
}