@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css");

body {
	font-family: 'Source Sans Pro', sans-serif;
	background-color: #f5f5f5;
}

.container-md {
	background-color: white;
}

.navbar-brand img {
	margin-right: 5px;
}
@media (min-width: 992px) {
	.navbar-container {
		flex-wrap: nowrap;
	}
}
@media (max-width: 991.98px) {
	.navbar {
		overflow-x: hidden;
	}
	.navbar-brand {
		max-width: calc(100vw - 120px);
		font-size: 0.95rem;
	}
	.navbar-container {
		flex-wrap: wrap;
	}
}

/* For Students: open dropdown on hover (desktop only; mobile uses click) */
@media (min-width: 992px) {
	.navbar .dropdown-hover:hover .dropdown-menu {
		display: block;
	}
}
.navbar .dropdown-hover .dropdown-menu {
	margin-top: 0;
}

/* Mobile nav: collapse on its own row below brand/toggler, stack links left-aligned */
@media (max-width: 991.98px) {
	.navbar .container-fluid.navbar-container {
		max-width: 100%;
		overflow-x: hidden;
		flex-wrap: wrap !important;
	}
	.navbar-collapse {
		flex-basis: 100% !important;
		flex-grow: 0 !important;
		width: 100% !important;
		order: 3;
		flex-direction: column;
		align-items: flex-start;
		padding-top: 0.5rem;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
	.navbar-collapse__center {
		flex-direction: column;
		align-items: flex-start;
		margin-right: 0 !important;
		margin-bottom: 0.75rem;
		min-width: 0;
		width: 100%;
		max-width: 100%;
	}
	.navbar-collapse .navbar-nav {
		flex-direction: column;
		min-width: 0;
		width: 100%;
		align-items: flex-start;
	}
	.navbar-collapse .navbar-nav .nav-link {
		padding: 0.5rem 0;
	}
	.navbar-collapse__actions {
		flex-direction: column;
		gap: 0.5rem;
		min-width: 0;
		width: 100%;
		align-items: stretch;
	}
	.navbar-collapse__actions .btn {
		width: 100%;
		max-width: 100%;
		justify-content: center;
		box-sizing: border-box;
	}
}

/* Signup CTA tooltip when disabled (appears below button) */
[data-signup-tooltip] {
	position: relative;
	cursor: not-allowed;
}
[data-signup-tooltip]:hover::before {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 100%;
	margin-top: 0.5rem;
	border: 5px solid transparent;
	border-top-color: #333;
	z-index: 11;
	pointer-events: none;
}
[data-signup-tooltip]:hover::after {
	content: attr(data-signup-tooltip);
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 100%;
	margin-top: calc(0.5rem + 5px);
	padding: 0.35rem 0.6rem;
	font-size: 0.8125rem;
	white-space: nowrap;
	background: #333;
	color: #fff;
	border-radius: 4px;
	z-index: 10;
	pointer-events: none;
}

/* Mobile: show tooltip text below button (no hover) */
@media (max-width: 991.98px) {
	[data-signup-tooltip] {
		display: inline-block;
	}
	[data-signup-tooltip]:hover::before {
		display: none !important;
	}
	[data-signup-tooltip]::before {
		display: none !important;
	}
	/* Keep tooltip as static text below on hover too (don’t switch to bubble) */
	[data-signup-tooltip]::after,
	[data-signup-tooltip]:hover::after {
		content: attr(data-signup-tooltip);
		position: static;
		display: block !important;
		margin-top: 0.25rem;
		margin-left: 0;
		padding: 0;
		font-size: 0.75rem;
		background: none;
		border-radius: 0;
		white-space: normal;
		transform: none;
		left: auto;
		top: auto;
		text-align: center;
	}
	/* White/light button → dark text */
	[data-signup-tooltip].signup-cta-pro::after {
		color: #212529;
	}
	/* Green button → white text */
	[data-signup-tooltip].signup-cta-student::after {
		color: #fff;
	}
}

.hero {
	background-position: center !important;
	background-size: cover !important;
	color: white;
	padding-top: 10rem;
	padding-bottom: 10rem;
}

.sponsors img {
	max-height: 100px;
}

.sponsors .card {
	min-height: 132px;
	vertical-align: center;
	margin-bottom: 1.5rem;
}

.footer {
	border-top: 1px solid #e5e5e5;
	background-color: #fafafa;
	box-sizing: border-box;
}

.footer__inner {
	text-align: center;
}

.footer__copy {
	margin: 0;
	font-size: 0.9375rem;
	color: #555;
}

.footer__hosted {
	margin: 0.5rem 0 0;
	font-size: 0.6875rem;
	color: #888;
	letter-spacing: 0.02em;
}

.footer__hosted a {
	color: #888;
	text-decoration: none;
}

.footer__hosted a:hover {
	color: #333;
	text-decoration: underline;
}

.time-check {
	margin-top: 1rem;
}

.in-person {
	padding-top: 2.25rem;
}

.content-page ul,
.content-page ol {
	margin-bottom: 1rem;
}
