@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
	--woodley-blue: #0066cc;
	--woodley-green: #00cc66;
	--basketball-orange: #ff6b35;
	--charcoal: #2a2a2a;
	--light-gray: #f5f7fa;
	--white: #ffffff;
	--gradient-primary: linear-gradient(135deg, var(--woodley-blue), var(--woodley-green));
	--gradient-energy: linear-gradient(45deg, var(--basketball-orange), var(--woodley-blue));
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* SIMPLIFIED: Enhanced native smooth scrolling */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 100px; /* Account for fixed navbar */
}

body {
	font-family: 'Inter', sans-serif;
	line-height: 1.6;
	color: var(--charcoal);
	background: var(--white);
	overflow-x: hidden;
}

/* Athletic Typography */
.athletic-title {
	font-family: 'Bebas Neue', cursive;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
}

/* Athletic Navigation Styles */
.navbar-athletic {
	background: rgba(42, 42, 42, 0.95);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	padding: 15px 0;
	transition: all 0.3s ease;
	z-index: 1000;
}

.navbar-athletic.scrolled {
	background: rgba(42, 42, 42, 0.98);
	padding: 10px 0;
	box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3);
}

/* Athletic Logo */
.athletic-logo {
	text-decoration: none;
	color: var(--white) !important;
}

.logo-container {
	display: flex;
	align-items: center;
	gap: 15px;
	/* FIXED: Ensure logo doesn't overflow */
	max-width: 100%;
	overflow: hidden;
}

/* Logo Image Styles */
.logo-image {
	width: 50px;
	height: 50px;
	object-fit: contain;
	border-radius: 50%;
	transition: all 0.3s ease;
	border: 2px solid transparent;
	/* FIXED: Prevent shrinking */
	flex-shrink: 0;
}

.logo-image:hover {
	border-color: var(--basketball-orange);
	transform: scale(1.05);
}

.logo-text {
	display: flex;
	flex-direction: column;
	line-height: 1;
	/* FIXED: Allow text to shrink if needed */
	min-width: 0;
	overflow: hidden;
}

.logo-main {
	font-family: 'Bebas Neue', cursive;
	font-size: 1.4rem;
	font-weight: 400;
	letter-spacing: 1px;
	color: var(--white);
	/* FIXED: Prevent text overflow */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.logo-sub {
	font-family: 'Inter', sans-serif;
	font-size: 0.7rem;
	font-weight: 300;
	letter-spacing: 2px;
	color: var(--basketball-orange);
	text-transform: uppercase;
	/* FIXED: Prevent text overflow */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* FIXED: Navbar layout improvements */
.navbar-athletic .navbar-brand {
	/* Ensure brand doesn't take up too much space */
	max-width: 60%;
	margin-right: auto;
}

.navbar-athletic .navbar-collapse {
	/* Ensure collapse content doesn't overlap */
	flex-grow: 1;
}

/* Athletic Navigation Links */
.athletic-nav {
	gap: 0.5rem;
	/* FIXED: Ensure nav items wrap properly */
	flex-wrap: wrap;
	justify-content: center;
}

.athletic-nav-link {
	color: rgba(255, 255, 255, 0.8) !important;
	font-weight: 500;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 12px 14px !important;
	border-radius: 0;
	position: relative;
	transition: all 0.3s ease;
	display: flex;
	align-items: center;
	gap: 8px;
	/* FIXED: Prevent text wrapping in nav items */
	white-space: nowrap;
}

.athletic-nav-link span {
	white-space: nowrap;
}

.athletic-nav-link i {
	font-size: 1.1rem;
	transition: all 0.3s ease;
	/* FIXED: Prevent icon from shrinking */
	flex-shrink: 0;
}

.athletic-nav-link::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 2px;
	background: var(--gradient-primary);
	transition: width 0.3s ease;
}

.athletic-nav-link:hover,
.athletic-nav-link.active {
	color: var(--white) !important;
	transform: translateY(-2px);
}

.athletic-nav-link:hover::before,
.athletic-nav-link.active::before {
	width: 80%;
}

.athletic-nav-link:hover i,
.athletic-nav-link.active i {
	color: var(--basketball-orange);
	transform: scale(1.1);
}

/* Athletic Mobile Toggle */
.athletic-toggler {
	border: none;
	padding: 8px;
	background: transparent;
	position: relative;
	width: 40px;
	height: 40px;
	/* FIXED: Prevent toggler from shrinking */
	flex-shrink: 0;
}

.athletic-toggler:focus {
	box-shadow: none;
}

.toggler-line {
	display: block;
	width: 25px;
	height: 2px;
	background: var(--white);
	margin: 5px 0;
	transition: all 0.3s ease;
	transform-origin: center;
}

.athletic-toggler[aria-expanded="true"] .toggler-line:nth-child(1) {
	transform: rotate(45deg) translate(6px, 6px);
}

.athletic-toggler[aria-expanded="true"] .toggler-line:nth-child(2) {
	opacity: 0;
}

.athletic-toggler[aria-expanded="true"] .toggler-line:nth-child(3) {
	transform: rotate(-45deg) translate(6px, -6px);
}

/* Navigation CTA Button */
.btn-athletic-nav {
	background: var(--gradient-energy);
	color: var(--white);
	border: none;
	padding: 10px 25px;
	font-weight: 600;
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	border-radius: 25px;
	transition: all 0.3s ease;
	display: flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
	/* FIXED: Prevent button from shrinking */
	flex-shrink: 0;
}

.btn-athletic-nav:hover {
	background: var(--gradient-primary);
	color: var(--white);
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(255, 107, 53, 0.4);
}

/* Geometric Sections */
.section-geometric {
	position: relative;
	padding: 80px 0;
	/* SIMPLIFIED: Enhanced scroll margin for native scrolling */
	scroll-margin-top: 100px;
}

.section-geometric.alt::before {
	background: polygon(0 30%, 100% 0, 100% 100%, 0 100%);
	background-color: var(--charcoal);
}

/* Athletic Section Titles */
.section-title-athletic {
	position: relative;
	text-align: center;
	margin-bottom: 60px;
}

.section-title-athletic h2 {
	font-family: 'Bebas Neue', cursive;
	font-size: 3.5rem;
	color: var(--charcoal);
	margin-bottom: 1rem;
	position: relative;
}

.div-lbl {
	color: #666464;
}

/* Athletic Buttons */
.btn-athletic {
	background: var(--white);
	color: var(--woodley-blue);
	border: none;
	padding: 15px 40px;
	font-weight: 600;
	font-size: 1.1rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	position: relative;
	overflow: hidden;
	transition: all 0.3s ease;
	clip-path: polygon(10px 0%, 100% 0%, calc(100% - 10px) 100%, 0% 100%);
}

.btn-athletic::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: var(--basketball-orange);
	transition: left 0.3s ease;
	z-index: -1;
}

.btn-athletic:hover::before {
	left: 0;
}

.btn-athletic:hover {
	color: var(--white);
	transform: translateY(-2px);
	box-shadow: 0 10px 25px rgba(255,107,53,0.4);
}

/* Loading Animations */
.fade-in {
	opacity: 0;
	transform: translateY(30px);
	animation: fadeInUp 0.8s ease forwards;
}

@keyframes fadeInUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.section-geometric:nth-child(even) .fade-in {
	animation-delay: 0.2s;
}

.section-geometric:nth-child(odd) .fade-in {
	animation-delay: 0.4s;
}

/* Badge Styles */
.badge {
	font-size: 0.75rem;
	padding: 6px 12px;
	border-radius: 15px;
	font-weight: 500;
	letter-spacing: 0.5px;
}

/* SIMPLIFIED: Scroll to top button with native anchor link */
.scroll-to-top {
	position: fixed;
	bottom: 30px;
	right: 30px;
	width: 50px;
	height: 50px;
	background: var(--gradient-primary);
	color: var(--white);
	border: none;
	border-radius: 50%;
	font-size: 1.2rem;
	cursor: pointer;
	transition: all 0.3s ease;
	opacity: 0;
	visibility: hidden;
	z-index: 999;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
}

.scroll-to-top.visible {
	opacity: 1;
	visibility: visible;
}

.scroll-to-top:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 25px rgba(0, 102, 204, 0.4);
	color: var(--white);
	text-decoration: none;
}

/* Footer Styles */
.footer-athletic {
	background: var(--charcoal);
	color: var(--white);
	padding: 50px 0 30px 0;
	position: relative;
	overflow: hidden;
}

.footer-athletic::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--gradient-primary);
}

.footer-brand {
	margin-bottom: 30px;
}

.footer-logo {
	width: 60px;
	height: 60px;
	object-fit: contain;
	border-radius: 50%;
	margin-bottom: 20px;
	border: 2px solid var(--basketball-orange);
}

.footer-social {
	margin-bottom: 20px;
}

.social-link {
	display: inline-flex;
	align-items: center;
	background: var(--gradient-energy);
	color: var(--white);
	text-decoration: none;
	padding: 12px 20px;
	border-radius: 25px;
	font-weight: 600;
	font-size: 0.95rem;
	transition: all 0.3s ease;
	margin-bottom: 10px;
}

.social-link i {
	font-size: 1.2rem;
	margin-right: 8px;
}

.social-link:hover {
	background: var(--gradient-primary);
	color: var(--white);
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(255, 107, 53, 0.4);
	text-decoration: none;
}

.footer-divider {
	border: none;
	height: 1px;
	background: rgba(255, 255, 255, 0.1);
	margin: 30px 0 20px 0;
}

.footer-copyright {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.9rem;
}

.footer-established {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.9rem;
	font-weight: 500;
}

.text-basketball-orange {
	color: var(--basketball-orange);
	font-weight: 700;
	letter-spacing: 1px;
}

/* FIXED: Mobile Navigation Adjustments */
@media (max-width: 991px) {
	.navbar-athletic {
		padding: 15px 0; /* Increased padding for mobile */
	}

	/* FIXED: Significantly larger logo for mobile */
	.logo-image {
		width: 65px; /* Increased from 40px to 65px */
		height: 65px; /* Increased from 40px to 65px */
	}

	.logo-main {
		font-size: 1.6rem; /* Increased from 1.2rem to 1.6rem */
	}

	.logo-sub {
		font-size: 0.75rem; /* Increased from 0.6rem to 0.75rem */
	}

	/* FIXED: Adjust navbar brand width to accommodate larger logo */
	.navbar-athletic .navbar-brand {
		max-width: 75%; /* Increased from 70% to 75% */
	}

	.athletic-nav {
		margin-top: 20px;
		gap: 0;
		justify-content: flex-start;
	}

	.athletic-nav-link {
		padding: 15px 20px !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		width: 100%;
		justify-content: flex-start;
	}

	.athletic-nav-link::before {
		display: none;
	}

	.navbar-cta {
		margin-top: 20px;
		padding: 0 20px;
	}

	.btn-athletic-nav {
		width: 100%;
		justify-content: center;
	}

	/* Footer Mobile Adjustments */
	.footer-athletic {
		padding: 30px 0 20px 0;
	}

	.footer-brand {
		margin-bottom: 20px;
	}

	.footer-brand p {
		font-size: 0.85rem;
		margin-bottom: 15px;
	}

	.social-link {
		width: 100%;
		justify-content: center;
		padding: 10px 16px;
		font-size: 0.9rem;
	}

	.footer-divider {
		margin: 25px 0 15px 0;
	}
}

/* FIXED: Better responsive handling for smaller screens */
@media (max-width: 768px) {
	/* SIMPLIFIED: Smaller scroll padding for mobile */
	html {
		scroll-padding-top: 80px;
	}

	.section-geometric {
		scroll-margin-top: 80px;
	}

	.section-title-athletic h2 {
		font-size: 2.5rem;
	}

	.navbar-athletic {
		padding: 12px 0; /* Slightly increased padding */
	}

	/* FIXED: Maintain large logo size even on smaller screens */
	.logo-image {
		width: 60px; /* Slightly reduced from 65px but still much larger than original */
		height: 60px;
	}

	.logo-main {
		font-size: 1.5rem; /* Slightly reduced from 1.6rem */
	}

	.logo-sub {
		font-size: 0.7rem; /* Slightly reduced from 0.75rem */
	}

	/* FIXED: Scrolled state logo should also be larger */
	.navbar-athletic.scrolled {
		padding: 8px 0; /* Reduced padding when scrolled */
	}

	.navbar-athletic.scrolled .logo-image {
		width: 50px; /* Larger than original 35px */
		height: 50px;
	}

	.navbar-athletic.scrolled .logo-main {
		font-size: 1.3rem; /* Larger than original 1.1rem */
	}

	.navbar-athletic.scrolled .logo-sub {
		font-size: 0.65rem; /* Larger than original 0.6rem */
	}

	.btn-athletic {
		padding: 12px 25px;
		font-size: 1rem;
	}

	/* FIXED: Adjust brand width for larger logo */
	.navbar-athletic .navbar-brand {
		max-width: 80%; /* Increased from 75% to 80% */
	}

	/* Footer Mobile Styles */
	.footer-athletic {
		padding: 25px 0 15px 0;
	}

	.footer-logo {
		width: 45px;
		height: 45px;
		margin-bottom: 15px;
	}

	.footer-brand h5 {
		font-size: 1.3rem;
		margin-bottom: 10px;
	}

	.footer-brand p {
		font-size: 0.8rem;
		margin-bottom: 15px;
		line-height: 1.4;
	}

	.social-link {
		padding: 10px 16px;
		font-size: 0.85rem;
		margin-bottom: 8px;
	}

	.footer-divider {
		margin: 20px 0 15px 0;
	}

	.footer-established {
		text-align: center !important;
		margin-top: 8px;
		font-size: 0.8rem;
	}
}

/* FIXED: Extra Small Devices - prevent overflow while keeping logo large */
@media (max-width: 576px) {
	.section-title-athletic h2 {
		font-size: 2rem;
	}
	.section-geometric {
		padding: 44px 0 20px 0px;
	}
	.section-title-athletic {
		margin-bottom: 10px;
	}

	/* FIXED: Still maintain reasonably large logo on very small screens */
	.navbar-athletic .navbar-brand {
		max-width: 82%; /* Increased from 80% to 82% */
	}

	.logo-container {
		gap: 12px; /* Slightly increased gap */
	}

	.logo-image {
		width: 55px; /* Larger than original 35px */
		height: 55px;
	}

	.logo-main {
		font-size: 1.4rem; /* Much larger than original 1rem */
	}

	.logo-sub {
		font-size: 0.65rem; /* Larger than original 0.5rem */
		letter-spacing: 1px;
	}

	/* FIXED: Scrolled state should also be larger */
	.navbar-athletic.scrolled .logo-image {
		width: 45px; /* Larger than original 35px */
		height: 45px;
	}

	.navbar-athletic.scrolled .logo-main {
		font-size: 1.2rem; /* Larger than original 1.1rem */
	}

	.navbar-athletic.scrolled .logo-sub {
		font-size: 0.6rem; /* Larger than original 0.6rem */
	}

	/* FIXED: Ensure toggler has enough space */
	.athletic-toggler {
		width: 40px; /* Increased from 35px */
		height: 40px;
	}

	.toggler-line {
		width: 25px; /* Increased from 20px */
	}

	/* Footer Extra Small */
	.footer-athletic {
		padding: 20px 0 12px 0;
	}

	.footer-logo {
		width: 40px;
		height: 40px;
		margin-bottom: 12px;
	}

	.footer-brand h5 {
		font-size: 1.2rem;
		margin-bottom: 8px;
	}

	.footer-brand p {
		font-size: 0.75rem;
		line-height: 1.3;
		margin-bottom: 12px;
	}

	.social-link {
		padding: 10px 14px;
		font-size: 0.8rem;
		margin-bottom: 6px;
	}

	.footer-divider {
		margin: 18px 0 10px 0;
	}

	.footer-copyright,
	.footer-established {
		font-size: 0.7rem;
		text-align: center !important;
	}

	.footer-established {
		margin-top: 6px;
	}
}

/* FIXED: Specific fix for very narrow screens */
@media (max-width: 480px) {
	.navbar-athletic .navbar-brand {
		max-width: 85%;
	}

	.logo-main {
		font-size: 1.3rem; /* Much larger than original 0.9rem */
	}

	.logo-sub {
		font-size: 0.6rem; /* Larger than original 0.45rem */
	}

	/* FIXED: Scrolled state adjustments */
	.navbar-athletic.scrolled .logo-main {
		font-size: 1.1rem;
	}

	.navbar-athletic.scrolled .logo-sub {
		font-size: 0.55rem;
	}
}

/* Focus Styles for Accessibility */
.btn:focus,
.form-control:focus,
.form-select:focus {
	outline: 3px solid var(--woodley-blue);
	outline-offset: 2px;
}

.athletic-nav-link:focus {
	outline: 2px solid var(--basketball-orange);
	outline-offset: 2px;
}

.social-link:focus {
	outline: 3px solid var(--woodley-blue);
	outline-offset: 2px;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: var(--light-gray);
}

::-webkit-scrollbar-thumb {
	background: var(--woodley-blue);
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: var(--basketball-orange);
}

.dictionary-tag {display: none;}

/* SIMPLIFIED: Improved scroll behavior and prevent layout shifts */
/* Prevent layout shifts during image loading */
img {
	/* Reserve space for images before they load */
	height: auto;
	max-width: 100%;
}

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

/* Prevent content shifts during font loading */
body {
	font-display: swap; /* Fallback to system fonts while custom fonts load */
}

/* Stabilize carousel and dynamic content heights */
.hero-widgets-container {
	min-height: 600px; /* Already in your CSS, but make sure it's there */
}

.upcoming-games-section {
	min-height: 320px; /* Already in your CSS, but make sure it's there */
}

/* Prevent Bootstrap collapse animations from affecting scroll calculations */
.collapsing {
	overflow: hidden; /* Prevent content overflow during animation */
}

/* FIXED: Improve navbar stability and prevent overlap */
.navbar-athletic {
	/* Ensure navbar doesn't change height during scroll */
	min-height: 80px;
}

.navbar-athletic.scrolled {
	min-height: 70px;
}

/* FIXED: Ensure navbar container has proper flex layout */
.navbar-athletic .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	max-width: 1423px;
}

/* FIXED: Prevent navbar items from overlapping */
.navbar-athletic .navbar-toggler {
	order: 3;
}

.navbar-athletic .navbar-brand {
	order: 1;
}

.navbar-athletic .navbar-collapse {
	order: 2;
}

@media (max-width: 991px) {
	.navbar-athletic .navbar-collapse {
		order: 4;
		width: 100%;
		margin-top: 10px;
	}
}

/* Prevent image loading from affecting layout */
.news-thumbnail,
.schedule-team-logo,
.carousel-team-logo,
.next-game-team-logo,
.team-logo-small {
	/* Set explicit dimensions to prevent layout shift */
	object-fit: cover;
	background-color: #f8f9fa; /* Placeholder background while loading */
}