/* ===== Header ===== */
.site-header {
	position: fixed;
	inset-inline: 0;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid transparent;
	background: transparent;
	transition: background-color 300ms, border-color 300ms, box-shadow 300ms;
}
.site-header--scrolled {
	background: var(--paper);
	border-bottom-color: var(--rule);
	box-shadow: 0 1px 0 rgba(12, 35, 64, 0.06);
}
.site-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	height: 5rem;
}
.site-header__brand { display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0; white-space: nowrap; }
.site-header__logo { height: 2.75rem; width: auto; flex-shrink: 0; }
.site-header__brand-name {
	display: none;
	font-family: var(--font-display);
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.1;
	color: var(--ink);
	white-space: nowrap;
	transition: color 300ms;
}
.site-header__brand-sub {
	display: block;
	margin-top: 0.25rem;
	color: var(--galas);
	white-space: nowrap;
	transition: color 300ms;
}
.site-header--scrolled .site-header__brand-name { color: var(--ink); }
.site-header:not(.site-header--scrolled) .site-header__brand-name { color: var(--paper); }
.site-header:not(.site-header--scrolled) .site-header__brand-sub { color: var(--galas-bright); }
@media (min-width: 40rem) {
	.site-header__brand-name { display: block; }
}

.site-nav { display: none; }
@media (min-width: 64rem) {
	.site-nav { display: block; min-width: 0; overflow-x: auto; scrollbar-width: thin; }
	.site-nav__list { display: flex; align-items: center; gap: 0.25rem; white-space: nowrap; }
	.site-nav__link {
		position: relative;
		display: inline-flex;
		align-items: center;
		height: 2.75rem;
		padding-inline: 0.6rem;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--navy-700);
		transition: color 200ms;
	}
	.site-nav__link::after {
		content: '';
		position: absolute;
		left: 0.75rem; right: 0.75rem; bottom: 0.625rem;
		height: 1px;
		background: var(--galas);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 200ms;
	}
	.site-nav__link:hover, .site-nav__link[aria-current='true'] { color: var(--galas); }
	.site-nav__link:hover::after, .site-nav__link[aria-current='true']::after { transform: scaleX(1); }
	.site-header:not(.site-header--scrolled) .site-nav__link { color: var(--navy-100); }
	.site-header:not(.site-header--scrolled) .site-nav__link::after { background: var(--galas-bright); }
	.site-header:not(.site-header--scrolled) .site-nav__link:hover,
	.site-header:not(.site-header--scrolled) .site-nav__link[aria-current='true'] { color: var(--galas-bright); }

	.site-nav__item { position: relative; }
	.site-nav__caret { margin-left: 0.25rem; font-size: 0.6em; }
	.site-nav__dropdown {
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 14rem;
		background: var(--paper);
		border: 1px solid var(--rule);
		box-shadow: 0 12px 24px rgba(12, 35, 64, 0.14);
		padding: 0.5rem 0;
		opacity: 0;
		visibility: hidden;
		transform: translateY(4px);
		transition: opacity 150ms, transform 150ms, visibility 150ms;
		z-index: 60;
	}
	.site-nav__item--has-dropdown:hover .site-nav__dropdown,
	.site-nav__item--has-dropdown:focus-within .site-nav__dropdown {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
	.site-nav__dropdown a {
		display: block;
		padding: 0.625rem 1.125rem;
		font-size: 0.8125rem;
		color: var(--navy-700);
		white-space: nowrap;
	}
	.site-nav__dropdown a:hover { background: var(--paper-2); color: var(--galas); }
}

.site-header__actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.site-header__phone {
	display: none;
	align-items: center;
	gap: 0.5rem;
	height: 2.75rem;
	padding-inline: 1rem;
	font-size: 0.875rem;
	font-weight: 500;
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--paper);
	transition: background-color 200ms, border-color 200ms;
}
.site-header__phone:hover { border-color: var(--galas); background: var(--galas); }
.site-header:not(.site-header--scrolled) .site-header__phone {
	border-color: rgba(255, 255, 255, 0.35);
	background: transparent;
}
.site-header:not(.site-header--scrolled) .site-header__phone:hover {
	border-color: var(--galas-bright);
	background: var(--galas-bright);
	color: var(--ink);
}
@media (min-width: 48rem) {
	.site-header__phone { display: inline-flex; }
}

.nav-toggle-input { position: absolute; opacity: 0; pointer-events: none; }
.nav-burger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--rule);
	color: var(--ink);
	cursor: pointer;
	transition: background-color 200ms, border-color 200ms;
}
.nav-burger:hover { border-color: var(--ink); background: var(--paper-2); }
.site-header:not(.site-header--scrolled) .nav-burger {
	border-color: rgba(255, 255, 255, 0.35);
	color: var(--paper);
}
.site-header:not(.site-header--scrolled) .nav-burger:hover { border-color: var(--paper); background: rgba(255,255,255,0.1); }
@media (min-width: 64rem) {
	.nav-burger { display: none; }
}

.mobile-nav-backdrop {
	position: fixed; inset: 0;
	background: rgba(10, 30, 54, 0.4);
	opacity: 0;
	pointer-events: none;
	transition: opacity 250ms;
	z-index: 60;
}
.mobile-nav {
	position: fixed;
	top: 0; right: 0; bottom: 0;
	width: 86vw;
	max-width: 24rem;
	background: var(--paper);
	border-left: 1px solid var(--rule);
	transform: translateX(100%);
	transition: transform 300ms var(--ease-out-expo);
	z-index: 61;
	display: flex;
	flex-direction: column;
}
.nav-toggle-input:checked ~ .mobile-nav-backdrop { opacity: 1; pointer-events: auto; }
.nav-toggle-input:checked ~ .mobile-nav { transform: translateX(0); }

.mobile-nav__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 5rem;
	padding-inline: 1.25rem;
	border-bottom: 1px solid var(--rule);
	flex-shrink: 0;
}
.mobile-nav__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem; height: 2.75rem;
	border: 1px solid var(--rule);
	color: var(--ink);
	cursor: pointer;
}
.mobile-nav__close:hover { border-color: var(--ink); background: var(--paper-2); }
.mobile-nav__body { flex: 1; overflow-y: auto; padding: 1rem 1.25rem; }
.mobile-nav__list > li { border-bottom: 1px solid var(--rule); }
.mobile-nav__link {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	min-height: 3.25rem;
	padding-block: 0.5rem;
	font-size: 1.125rem;
	color: var(--ink);
}
.mobile-nav__link:hover, .mobile-nav__link[aria-current='true'] { color: var(--galas); }
.mobile-nav__index {
	font-variant-numeric: tabular-nums;
	width: 1.5rem;
	flex-shrink: 0;
	color: var(--navy-400);
}
.mobile-nav__label { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.01em; }
.mobile-nav__contact { margin-top: 1.5rem; border-top: 2px solid var(--ink); padding-top: 1.5rem; }
.mobile-nav__contact-link {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	font-variant-numeric: tabular-nums;
	color: var(--navy-700);
}
.mobile-nav__contact-link:hover { color: var(--galas); }
.mobile-nav__contact-link .icon { color: var(--galas); }

/* ===== Footer ===== */
.site-footer {
	position: relative;
	overflow: hidden;
	background: var(--ink);
	color: var(--paper);
	padding: 5rem 0 2.5rem;
}
.site-footer .paper-grain { opacity: 0.4; }
.site-footer__grid {
	position: relative;
	display: grid;
	gap: 3rem;
}
@media (min-width: 64rem) {
	.site-footer__grid { grid-template-columns: repeat(12, 1fr); gap: 2.5rem; }
	.site-footer__brand { grid-column: span 5; }
	.site-footer__nav { grid-column: span 3; }
	.site-footer__contact { grid-column: span 4; }
}
.site-footer__brand-row { display: flex; align-items: center; gap: 1rem; }
.site-footer__logo { height: 4rem; width: auto; }
.site-footer__name { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; letter-spacing: -0.01em; line-height: 1.15; }
.site-footer__sub { margin-top: 0.375rem; color: var(--galas-bright); }
.site-footer__tagline { margin-top: 1.5rem; max-width: 24rem; line-height: 1.6; color: var(--navy-100); }
.site-footer__heading { color: var(--navy-200); }
.site-footer__nav ul { margin-top: 1.25rem; }
.site-footer__nav a, .site-footer__contact a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 2.5rem;
	font-size: 0.875rem;
	color: var(--navy-100);
	transition: color 200ms;
}
.site-footer__nav a:hover, .site-footer__contact a:hover { color: var(--galas-bright); }
.site-footer__contact { margin-top: 0; }
.site-footer__address {
	margin-top: 1.25rem;
	display: flex;
	gap: 0.75rem;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--navy-100);
}
.site-footer__address .icon { margin-top: 0.125rem; color: var(--galas-bright); flex-shrink: 0; }
.site-footer__phones { margin-top: 0.75rem; }
.site-footer__site-link {
	margin-top: 1rem;
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	border-bottom: 1px solid var(--galas-bright);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--galas-bright);
}
.site-footer__site-link:hover { border-color: var(--paper); color: var(--paper); }
.site-footer__quote {
	position: relative;
	margin-top: 4rem;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	padding-top: 2.5rem;
	text-align: center;
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1.25rem;
	line-height: 1.3;
	color: rgba(251, 250, 246, 0.9);
}
@media (min-width: 40rem) {
	.site-footer__quote { font-size: 1.5rem; }
}
.site-footer__copyright {
	position: relative;
	margin-top: 2.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	padding-top: 1.5rem;
	text-align: center;
	font-size: 0.75rem;
	color: var(--navy-200);
}
