/* Header */
.site-logo {
	max-height: 40px;
}

.navbar-nav .menu-item a {
	color: #666;
	text-decoration: none;
	font-weight: 600;
}

.navbar-nav .menu-item a:hover,
.navbar-nav .current-menu-item>a,
.navbar-nav .current_page_item>a,
.navbar-nav .current-menu-parent>a,
.navbar-nav .current_page_parent>a {
	color: #000;
}

.navbar-nav .sub-menu a {
	display: block;
	font-weight: 400;
}

.navbar-nav .sub-menu li:not(:last-child) {
	border-bottom: var(--bs-border-width) solid var(--bs-border-color);
}

.submenu-toggle::after {
	vertical-align: middle;
}

/* Hamburger / close icon */
.hamburger-icon {
	position: relative;
	display: block;
	width: 1.5rem;
	height: 1.5rem;
}

.hamburger-icon i {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity .2s, transform .2s;
}

.hamburger-icon .bi-x-lg {
	opacity: 0;
	transform: rotate(-90deg);
}

.navbar-toggler[aria-expanded="true"] .bi-list {
	opacity: 0;
	transform: rotate(90deg);
}

.navbar-toggler[aria-expanded="true"] .bi-x-lg {
	opacity: 1;
	transform: none;
}

/* Desktop */
@media (min-width: 1024px) {
	.navbar-nav>.menu-item>a {
		font-size: 18px;
	}

	/* Sub menu panel, every level */
	#primary-navigation .menu-item-has-children>.sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		width: max-content;
		display: block;
		visibility: hidden;
		opacity: 0;
		transition: opacity .15s;
		background: var(--bs-white);
		border: var(--bs-border-width) solid var(--bs-border-color);
		border-radius: var(--bs-border-radius);
		box-shadow: var(--bs-box-shadow-sm);
	}

	#primary-navigation .menu-item-has-children:hover>.sub-menu,
	#primary-navigation .menu-item-has-children:focus-within>.sub-menu {
		visibility: visible;
		opacity: 1;
	}

	/* Sub menu items */
	#primary-navigation .sub-menu a {
		padding: 1rem 1.5rem;
	}

	#primary-navigation .sub-menu .menu-item>a {
		flex-grow: 1;
	}

	/* Second level and deeper open to the side */
	#primary-navigation .sub-menu .menu-item-has-children>.sub-menu {
		top: 0;
		left: 100%;
	}

	#primary-navigation .sub-menu .submenu-toggle::after {
		transform: rotate(-90deg);
	}
}

/* Mobile */
@media (max-width: 1023.98px) {
	.site-header .navbar-collapse {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		max-height: calc(100vh - 80px);
		max-height: calc(100dvh - 80px);
		box-shadow: var(--bs-box-shadow-sm);
	}

	.site-header .navbar-collapse.show {
		overflow-y: auto;
	}

	.navbar-nav .menu-item a {
		display: block;
		padding: .5rem 0;
		font-size: 1.3rem;
	}

	.navbar-nav .sub-menu {
		flex: 0 0 100%;
	}

	.navbar-nav .sub-menu a {
		font-size: 1.2rem;
	}

	.navbar-nav>.menu-item:not(:last-child) {
		border-bottom: var(--bs-border-width) solid var(--bs-border-color);
	}
}

@media (min-width: 426px) {
	.header-cta-mobile {
		display: none;
	}
}

@media (max-width: 425.98px) {
	.header-cta {
		display: none;
	}
}

/* Footer */
.credit-logo {
	height: 1em;
	width: auto;
}

[data-bs-theme="dark"] .credit-logo {
	filter: invert(1);
}

/* Comments */
.comment-list .children {
	list-style: none;
	padding-left: 2rem;
}

/* Animations */
@media (prefers-reduced-motion: no-preference) {
	.js [data-reveal] {
		opacity: 0;
		translate: 0 1rem;
		transition: opacity .9s ease, translate .9s ease;
		&.show { opacity: 1; translate: none; }
	}
}

/* FAQ section */
.accordion-button:hover,
.accordion-button:focus-visible {
	background-color: var(--bs-light);
}

.accordion-button:not(.collapsed) {
	box-shadow: none;
}

/* Forms: neutral focus instead of Bootstrap's blue glow */
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
	border-color: var(--bs-body-color);
	box-shadow: none;
}

.form-check-input:focus-visible {
	outline: 2px solid var(--bs-body-color);
	outline-offset: 2px;
}

/* Logo section */
.logo { transition: filter .3s, opacity .3s; }
.logo-gray { filter: grayscale(1); opacity: .7; }
.logo-gray.logo-hover:hover { filter: none; opacity: 1; }
.logo-hover:not(.logo-gray):hover { filter: grayscale(1); opacity: .7; }

.logo-scroll {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
	img { height: 5rem; width: auto; }
}

.logo-track {
	display: flex;
	width: max-content;
	animation: logo-scroll 40s linear infinite;
	&:hover { animation-play-state: paused; }
	&.slow { animation-duration: 60s; }
	&.fast { animation-duration: 20s; }
	&.reverse { animation-direction: reverse; }
}

@keyframes logo-scroll { from { transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce) {
	.logo-scroll { overflow-x: auto; }
	.logo-track { animation: none; }
}

/* Text warning */
.text-warning-emphasis {
    color: #ff7738 !important;
}

/* Smooth fade between page loads, no JS */
@view-transition { navigation: auto; }

/* Thin scroll progress bar under the header, no JS */
body::before {
	content: ""; position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 1100;
	background: var(--bs-primary); transform-origin: 0 50%;
	animation: progress linear both; animation-timeline: scroll();
}
@keyframes progress { from { scale: 0 1; } to { scale: 1 1; } }

html { scroll-behavior: smooth; scroll-padding-top: 5rem; } /* nice for #id anchors */
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Section divider */
.divider {
	--divider-h: clamp(2.5rem, 6vw, 6rem);
	margin-bottom: -1px; /* prevents a hairline gap before the next section */
}
.divider-sm { --divider-h: clamp(1.5rem, 3.5vw, 3.5rem); }
.divider-lg { --divider-h: clamp(4rem, 10vw, 10rem); }

.divider-shape {
	height: var(--divider-h);
	-webkit-mask: var(--divider-mask) center / 100% 100% no-repeat;
	mask: var(--divider-mask) center / 100% 100% no-repeat;
}
.divider-flip { transform: scaleX(-1); }

.divider-curve { --divider-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 0Q720 200 1440 0V100H0Z'/%3E%3C/svg%3E"); }
.divider-arch  { --divider-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100Q720 -100 1440 100Z'/%3E%3C/svg%3E"); }
.divider-slant { --divider-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100L1440 0V100Z'/%3E%3C/svg%3E"); }
.divider-wave  { --divider-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 50C240 0 480 0 720 50S1200 100 1440 50V100H0Z'/%3E%3C/svg%3E"); }

/* Buttons */
.btn {
	--bs-btn-padding-x: 1.5rem;
	--bs-btn-padding-y: .65rem;
	--bs-btn-font-weight: 600;
	--btn-glow: 0, 0, 0;
	transition: color .3s ease, background-color .3s ease, border-color .3s ease, box-shadow .3s ease, translate .3s ease, scale .15s ease;
}
.btn-primary,
.btn-outline-primary { --btn-glow: var(--bs-primary-rgb); }

/* Lift + glow, only on devices that really hover */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.btn:not(.btn-link):not(:disabled):not(.disabled):hover {
		translate: 0 -2px;
		box-shadow: 0 .6rem 1.2rem -.5rem rgba(var(--btn-glow), .5);
	}
}
.btn:not(.btn-link):not(:disabled):not(.disabled):active {
	translate: 0 0;
	scale: .98;
}

/* Text link as a third level */
.btn-link {
	--bs-btn-padding-x: 0;
	text-decoration: none;
}
.btn-link:hover {
	text-decoration: underline;
	text-underline-offset: .3em;
}

/* Optional: light sweep, use on one main CTA per page */
.btn-shine {
	position: relative;
	overflow: hidden;
}
.btn-shine::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%);
	translate: -100% 0;
	transition: translate .6s ease;
}
.btn-shine:hover::before { translate: 100% 0; }

@media (prefers-reduced-motion: reduce) {
	.btn-shine::before { display: none; }
}