/* ==========================================================================
   Layout — containers, grid, header/footer scaffolding
   ========================================================================== */

.container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}

.section {
	padding-block: var(--section-padding-y);
}

.section--alt { background-color: var(--color-bg-alt); }
.section--inverse {
	background-color: var(--color-inverse-bg);
	color: var(--color-inverse-text);
}
.section--inverse p,
.section--inverse .eyebrow-wrap { color: var(--color-inverse-text-muted); }
.section--inverse h1,
.section--inverse h2,
.section--inverse h3 { color: var(--color-inverse-text); }

.section-head {
	margin-bottom: var(--space-8);
	max-width: 640px;
}
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--split {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--space-6);
	max-width: none;
}

.grid { display: grid; gap: var(--space-6); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

.split-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-10);
	align-items: center;
}
.split-layout--reverse .split-layout__media { order: 2; }

@media (max-width: 991px) {
	.grid-4 { grid-template-columns: repeat(2, 1fr); }
	.grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
	.grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
	.split-layout { grid-template-columns: 1fr; }
	.split-layout--reverse .split-layout__media { order: 0; }
	.section-head--split {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---- Site header ---- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 500;
	background-color: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
}

.topbar {
	background-color: var(--color-inverse-bg);
	color: var(--color-inverse-text);
	font-size: var(--fs-small);
}
.topbar .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding-block: var(--space-2);
	flex-wrap: wrap;
}
.topbar a { color: var(--color-inverse-text); }
.topbar__contacts { display: flex; gap: var(--space-5); flex-wrap: wrap; }
.topbar__contacts a { display: inline-flex; align-items: center; gap: var(--space-2); }
.topbar__social { display: flex; gap: var(--space-3); align-items: center; }
.topbar__social a svg { width: 16px; height: 16px; }

.main-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
	padding-block: var(--space-3);
}

.site-branding { display: flex; align-items: center; gap: var(--space-3); }
.site-branding img,
.site-branding .custom-logo { max-height: 52px; width: auto; }
.site-title { font-family: var(--font-display); font-size: 1.35rem; margin: 0; }
.site-title a { color: var(--color-text); }

.main-navigation { flex: 1; display: flex; justify-content: center; }
.main-navigation ul {
	list-style: none;
	display: flex;
	gap: var(--space-6);
	margin: 0;
	padding: 0;
}
.main-navigation li { position: relative; }
.main-navigation a {
	color: var(--color-text);
	font-weight: 500;
	padding: var(--space-2) 0;
	display: inline-block;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a {
	color: var(--color-brand);
	text-decoration: none;
}
.main-navigation .current-menu-item > a { border-bottom: 2px solid var(--color-brand); }

.header-actions { display: flex; align-items: center; gap: var(--space-4); }

.menu-toggle,
.mobile-menu-panel { display: none; }

@media (max-width: 991px) {
	.main-navigation { display: none; }
	.menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-sm);
		background: none;
		cursor: pointer;
	}
	.header-actions .btn { display: none; }

	.mobile-menu-panel {
		position: fixed;
		inset: 0;
		background-color: var(--color-bg);
		z-index: 999;
		padding: var(--space-6) var(--container-pad);
		transform: translateX(100%);
		transition: transform var(--duration-base) var(--ease-standard);
		overflow-y: auto;
	}
	.mobile-menu-panel.is-open { transform: translateX(0); display: block; }
	.mobile-menu-panel ul { list-style: none; padding: 0; margin: 0; }
	.mobile-menu-panel li { border-bottom: 1px solid var(--color-border); }
	.mobile-menu-panel a {
		display: block;
		padding: var(--space-4) 0;
		font-size: 1.125rem;
		color: var(--color-text);
	}
	.mobile-menu-close {
		background: none;
		border: none;
		margin-bottom: var(--space-6);
		cursor: pointer;
	}
	.mobile-menu-panel .btn { margin-top: var(--space-6); width: 100%; text-align: center; }
}

/* ---- Footer ---- */
.site-footer {
	background-color: var(--color-inverse-bg);
	color: var(--color-inverse-text-muted);
	padding-block: var(--space-10) var(--space-6);
}
.footer-top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--space-8);
	padding-bottom: var(--space-8);
}
.footer-nav ul { list-style: none; display: flex; gap: var(--space-5); flex-wrap: wrap; padding: 0; margin: 0; }
.footer-nav a { color: var(--color-inverse-text-muted); }
.footer-nav a:hover { color: var(--color-inverse-text); }
.footer-social { display: flex; gap: var(--space-3); }
.footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-3);
	border-top: 1px solid var(--color-inverse-border);
	padding-top: var(--space-5);
	font-size: var(--fs-small);
}
.footer-legal { display: flex; gap: var(--space-5); list-style: none; padding: 0; margin: 0; }
