@font-face {
	font-family: "Roboto Condensed";
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url("../fonts/roboto-condensed-cyrillic.woff2") format("woff2");
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: "Roboto Condensed";
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url("../fonts/roboto-condensed-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--bshc-color-ink: #101013;
	--bshc-color-surface-dark: #131316;
	--bshc-color-surface-light: #f4f1ec;
	--bshc-color-text: #f7f4ef;
	--bshc-color-text-dark: #171719;
	--bshc-color-muted: #a7a4ab;
	--bshc-color-accent: #c81645;
	--bshc-color-focus: #ffcf4a;
	--bshc-font-body: Roboto, Arial, sans-serif;
	--bshc-font-display: "Roboto Condensed", "Arial Narrow", Arial, sans-serif;
	--bshc-shell: 1440px;
	--bshc-gutter: clamp(20px, 4vw, 72px);
	--bshc-fluid-gutter: clamp(28px, 3.75vw, 72px);
	--bshc-space-section: clamp(72px, 10vw, 160px);
	--bshc-radius-control: 999px;
	--bshc-motion-fast: 180ms;
	--bshc-motion-base: 360ms;
	--bshc-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

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

html {
	scroll-behavior: smooth;
}

body.bshc-theme {
	margin: 0;
	background: var(--bshc-color-ink);
	color: var(--bshc-color-text);
	font-family: var(--bshc-font-body);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.bshc-theme img,
.bshc-theme svg,
.bshc-theme video {
	display: block;
	max-width: 100%;
}

.bshc-theme button,
.bshc-theme input,
.bshc-theme textarea,
.bshc-theme select {
	font: inherit;
}

.bshc-theme a {
	color: inherit;
}

.bshc-theme :focus-visible {
	outline: 3px solid var(--bshc-color-focus);
	outline-offset: 4px;
}

/*
 * Primary CTA contract. The doubled class keeps the global design token above
 * component-level BEM rules while allowing each component to own its width and
 * surrounding layout.
 */
.bshc-primary-cta.bshc-primary-cta {
	min-height: 54px;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 0 18px 0 22px;
	border: 1px solid var(--bshc-color-accent);
	border-radius: 7px;
	background: var(--bshc-color-accent);
	box-shadow: none;
	color: #fff;
	font-family: var(--bshc-font-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
	text-align: left;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	transform: none;
	transition:
		transform 220ms var(--bshc-ease-out),
		background-color 220ms ease,
		border-color 220ms ease,
		box-shadow 220ms ease;
}

.bshc-primary-cta.bshc-primary-cta:hover,
.bshc-primary-cta.bshc-primary-cta:focus-visible {
	border-color: #a90f37;
	background: #a90f37;
	box-shadow: 0 14px 28px rgb(200 22 69 / 24%);
	color: #fff;
	/* Reveal runtimes may leave a settled inline transform on the CTA. */
	transform: translateY(-3px) !important;
}

.bshc-primary-cta.bshc-primary-cta:focus-visible {
	outline: 3px solid #f7f4ef;
	outline-offset: 4px;
}

.bshc-primary-cta .bshc-primary-cta__arrow {
	flex: 0 0 auto;
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
	transition: transform 220ms var(--bshc-ease-out);
}

.bshc-primary-cta.bshc-primary-cta:hover .bshc-primary-cta__arrow,
.bshc-primary-cta.bshc-primary-cta:focus-visible .bshc-primary-cta__arrow {
	transform: rotate(45deg);
}

.bshc-shell {
	width: min(100%, var(--bshc-shell));
	margin-inline: auto;
	padding-inline: var(--bshc-gutter);
}

/* Opt-in shell for editorial sections that stay fluid beyond 1440px. */
.bshc-fluid-shell {
	width: calc(100% - (var(--bshc-fluid-gutter) * 2)) !important;
	max-width: none !important;
	margin-inline: auto !important;
	padding-inline: 0 !important;
}

@media (max-width: 700px) {
	:root {
		--bshc-fluid-gutter: var(--bshc-gutter);
	}
}

.bshc-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.bshc-skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 10000;
	padding: 12px 18px;
	border-radius: var(--bshc-radius-control);
	background: var(--bshc-color-surface-light);
	color: var(--bshc-color-text-dark);
	font-weight: 700;
	transform: translateY(calc(-100% - 24px));
	transition: transform var(--bshc-motion-fast) var(--bshc-ease-out);
}

.bshc-skip-link:focus {
	transform: translateY(0);
}

.bshc-entry-header,
.bshc-content-list {
	padding-block: var(--bshc-space-section);
}

.bshc-entry-title {
	margin-block: 0 0.5em;
	font-family: var(--bshc-font-display);
	font-size: clamp(2.5rem, 7vw, 7rem);
	font-weight: 400;
	line-height: 0.95;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.bshc-theme *,
	.bshc-theme *::before,
	.bshc-theme *::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.bshc-primary-cta.bshc-primary-cta:hover,
	.bshc-primary-cta.bshc-primary-cta:focus-visible,
	.bshc-primary-cta.bshc-primary-cta:hover .bshc-primary-cta__arrow,
	.bshc-primary-cta.bshc-primary-cta:focus-visible .bshc-primary-cta__arrow {
		transform: none !important;
	}
}
