/* =========================================================
   OSC Theme — main stylesheet
   ========================================================= */

:root {
	--osc-bg: #ffffff;
	--osc-fg: #060607;
	--osc-fg-muted: #4d4d4d;
	--osc-fg-soft: #8a8a8a;
	--osc-border: #e5e5e5;            /* Figma: light dividers inside cards/sections */
	--osc-border-strong: #060607;     /* Figma: 1px structural lines (header, hero, grid) */
	--osc-line-weight: 1px;
	/* Figma @ 1920 — масштаб как у меню: Npx → N/1920*100vw (прототип scale-down-width) */
	--osc-gutter: clamp(12px, 1.979167vw, 38px);
	--osc-hero-pad-top: clamp(8px, 1.041667vw, 20px);
	--osc-hero-pad-bottom: clamp(16px, 2.083333vw, 40px);
	--osc-hero-title-max: clamp(240px, 37.1875vw, 714px);   /* Home H1 714×240 — 2 lines */
	--osc-hero-intro-max: clamp(180px, 28.125vw, 540px);    /* Home Description 540px */
	--osc-hero-intro-size: clamp(17px, 1.145833vw, 22px);   /* чуть меньше 24px, пропорционально */
	--osc-hero-block-gap: clamp(48px, 8.333333vw, 160px);
	--osc-archive-grid-offset: clamp(10px, 1.5625vw, 30px);
	--osc-grid-gap-x: clamp(8px, 1.145833vw, 22px);
	--osc-grid-gap-y: clamp(20px, 3.125vw, 60px);
	--osc-accent: #ecb897;             /* peach Subscribe */
	--osc-accent-hover: #e5a87f;
	--osc-footer-bg: #060607;
	--osc-footer-fg: #ffffff;
	--osc-footer-fg-muted: #ffffff;

	--osc-font-sans: 'Inter Tight', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;

	--osc-container: 1920px;
	--osc-radius: 8px;

	/* Typography — Figma XL (1920) / XS (360) */
	--osc-text-h1: clamp(48px, 6.25vw, 120px);
	--osc-text-h2: clamp(42px, 4.17vw, 80px);
	--osc-text-h3: clamp(28px, 2.5vw, 48px);
	--osc-text-h4: clamp(24px, 1.875vw, 36px);
	--osc-text-body-lg: clamp(20px, 1.25vw, 24px);
	--osc-header-link-size: clamp(11px, 0.9375vw, 18px);
	--osc-text-ui: var(--osc-header-link-size); /* 18 @ 1920, масштаб как меню */
	--osc-text-small: clamp(11px, 0.729167vw, 14px);
	--osc-logo-w: clamp(143px, 11.198vw, 215px);
	--osc-logo-h: clamp(30px, 2.344vw, 45px);
	/* Figma Header 295:1120 — padding-y 20 @ 1920; масштаб как меню */
	--osc-header-pad-y: clamp(6px, 1.041667vw, 20px);
	--osc-header-nav-gap: clamp(20px, 2.083333vw, 40px);
	--osc-header-link-tracking: -0.02em;
	--osc-header-cta-pad-y: clamp(8px, 0.833333vw, 16px);
	--osc-header-cta-pad-x: clamp(22px, 1.875vw, 36px);
	--osc-header-cta-min-h: clamp(32px, 2.8125vw, 54px);
	--osc-card-col-w: clamp(160px, 21.25vw, 408px); /* уже макета 428px — см. --osc-grid-4-* */
	--osc-card-media-ratio: 428 / 520;
	--osc-home-research-title-max: clamp(180px, 30.833333vw, 592px); /* Figma Title 592px in 900px column */
	/* Research home — масштаб N/1920*100vw как у меню */
	--osc-home-research-item-pad-y: clamp(4px, 0.3125vw, 6px);       /* 6 @ 1920 — от гориз. линий */
	--osc-home-research-row-gap: clamp(6px, 0.416667vw, 8px);        /* 8 @ 1920 — label / title / date */
	--osc-home-research-date-size: clamp(10px, 0.625vw, 12px);       /* дата, было 14px */
	--osc-home-research-item-top-gap: clamp(12px, 1.041667vw, 20px); /* label ↔ arrow */
	--osc-home-research-arrow: clamp(20px, 1.5625vw, 30px);          /* icon 30×30 */
	--osc-title-underline-h: 2px;
	--osc-title-underline-lift: clamp(2px, 0.260417vw, 5px); /* подъём линии к тексту @ 1920 */
	/* Footer 290:2666 — масштаб N/1920*100vw */
	--osc-footer-pad-top: clamp(12px, 1.458333vw, 28px); /* 28px @ 1920 — от верха до лого */
	--osc-footer-pad-bottom: clamp(16px, 1.5625vw, 30px);
	--osc-footer-title-gap: clamp(16px, 1.5625vw, 30px);
	--osc-footer-section-gap: clamp(16px, 1.5625vw, 30px);
	--osc-footer-intro-field-gap: clamp(60px, 6.25vw, 120px);
	--osc-footer-menu-gap: clamp(8px, 0.625vw, 12px);
	--osc-footer-pages-menu-gap: clamp(4px, 0.3125vw, 6px); /* Pages — плотнее */
	--osc-footer-form-gap: clamp(12px, 1.041667vw, 20px);
	--osc-footer-field-mb: clamp(12px, 1.041667vw, 20px);
	--osc-footer-consent-gap: clamp(12px, 0.833333vw, 16px);
	--osc-footer-stack-gap: clamp(20px, 1.666667vw, 32px);
	--osc-footer-field-inset-v: clamp(6px, 0.416667vw, 8px);
	--osc-footer-field-inset-h: clamp(6px, 0.416667vw, 8px);
	--osc-footer-field-pad-l: clamp(14px, 1.041667vw, 20px);
	--osc-footer-field-btn: clamp(36px, 2.291667vw, 44px);
	--osc-footer-field-min-h: clamp(40px, 2.34375vw, 45px);
	--osc-footer-h-size: clamp(22px, 1.875vw, 36px);           /* H4 Pages / Follow us @ 1920 */
	--osc-footer-intro-max: clamp(180px, 15.625vw, 300px);
	--osc-article-title-max: clamp(280px, 46.875vw, 900px);     /* Figma 295:1904 H2 @ 1920 */
	--osc-article-media-ratio: 900 / 680;
	/* Projects archive row — как Research home / article */
	--osc-project-media-ratio: 900 / 680;
	--osc-project-body-max: clamp(320px, 30.833333vw, 592px);
	--osc-project-label-title-gap: clamp(12px, 1.041667vw, 20px);
	--osc-project-title-body-gap: clamp(16px, 1.5625vw, 30px);
	--osc-project-cta-gap: clamp(20px, 2.083333vw, 40px);
	/* About feature — те же пропорции и типографика, что Projects */
	--osc-about-feature-media-ratio: var(--osc-project-media-ratio);
	--osc-about-feature-title-max: var(--osc-project-body-max);
	--osc-about-feature-title-thumbs-gap: var(--osc-project-title-body-gap);
	/* Team archive — фото 1:1 в колонке 428px @ 1920 */
	--osc-team-photo-ratio: 1 / 1;
	--osc-team-body-pad-top: var(--osc-grid-gap-x);
	--osc-team-name-role-gap: var(--osc-home-research-row-gap);
	/* Figma 341:1309 — перестроение сетки карточек */
	--osc-grid-bp-3col: 1100px;
	--osc-grid-bp-2col: 860px;
	--osc-grid-bp-1col: 480px; /* 1 колонка: ~400 по макету XS + запас под iPhone 430px */
	/* Сетка 4 колонки: мин. зазор между карточками (не 22px row-gap) — уменьшает col на всех ширинах */
	--osc-grid-4-gap-min: clamp(22px, 2.291667vw, 44px); /* 44 @ 1920 — как в макете при cap 428 */
	--osc-grid-4-col-cap: 408px; /* Figma 428 → уже; лишнее уходит в column-gap */
	/* Смещение левого края контента до края viewport (gutter + центрирование container) */
	--osc-viewport-bleed-left: calc(
		var(--osc-gutter) + max(0px, (100vw - var(--osc-container)) / 2)
	);
	/* btn-link — Figma 522:2330 / 295:1778 */
	--osc-link-arrow-pad-y: clamp(8px, 0.625vw, 12px);
	--osc-link-arrow-pad-x: clamp(16px, 1.041667vw, 20px);
	--osc-link-arrow-width: clamp(160px, 12.5vw, 240px);
	--osc-link-arrow-icon: clamp(18px, 1.25vw, 24px);
	--osc-link-arrow-line: var(--osc-line-weight);
	--osc-link-arrow-line-hover: var(--osc-title-underline-h);
	--osc-hero-image-min-h: clamp(280px, 41.666667vw, 800px);
}

/* -----------------  Reset / base ---------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--osc-font-sans);
	color: var(--osc-fg);
	background: var(--osc-bg);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--osc-fg); }
button { font: inherit; cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-weight: 600; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.osc-skip-link {
	position: absolute;
	left: -9999px;
	top: 16px;
	padding: 8px 16px;
	background: #fff;
	border: 1px solid var(--osc-fg);
	z-index: 999;
}
.osc-skip-link:focus { left: 16px; }

/* -----------------  Layout ---------------- */
.osc-container {
	width: 100%;
	max-width: var(--osc-container);
	margin: 0 auto;
	padding: 0 var(--osc-gutter);
}

.osc-section { padding: 48px 0; }
.osc-section + .osc-section { border-top: var(--osc-line-weight) solid var(--osc-border); }

/* Archive / About / inner pages — заголовок у меню, линия на всю ширину, intro, отступ до контента */
.osc-archive,
.osc-about-hero,
.osc-page,
.osc-404 {
	padding: 0;
}
/* От линии (::after) до карточек = половина горизонтального зазора сетки (как до боковой линии) */
.osc-archive__header + .osc-grid,
.osc-archive__header + .osc-projects {
	margin-top: var(--osc-archive-grid-offset);
	padding-top: 0;
}
.osc-archive .osc-container { padding-bottom: var(--osc-archive-grid-offset); }
.osc-archive .osc-pagination { margin-top: 0; padding-bottom: 0; }
.osc-about-hero + .osc-section { border-top: none; }
.osc-section.osc-about-feature {
	padding-top: var(--osc-archive-grid-offset);
	padding-bottom: var(--osc-archive-grid-offset);
}
.osc-page__header + .osc-page__content { margin-top: 30px; }

body.post-type-archive .osc-footer,
body.page .osc-footer {
	margin-top: 0;
}
/* Home page: keep hero/feature/news as separate sections but with smaller
   internal gaps (the design uses the section borders as visual separators). */
.osc-section.osc-hero,
.osc-section.osc-about-hero { padding: 0; border-top: none; }
.osc-section.osc-home-research {
	padding-top: 0;
	padding-bottom: var(--osc-archive-grid-offset);
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
}
.osc-section.osc-home-research + .osc-section {
	border-top: none;
}
.osc-section.osc-home-news {
	padding-top: 0;
	padding-bottom: var(--osc-archive-grid-offset);
}

/* -----------------  Header ---------------- */
.osc-header {
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 50;
}
.osc-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0;
	padding-top: var(--osc-header-pad-y);
	padding-bottom: var(--osc-header-pad-y);
}

/* Figma 295:1120 — nav + Subscribe в одной группе, gap 40px */
.osc-header__actions {
	display: flex;
	align-items: center;
	gap: var(--osc-header-nav-gap);
	flex-shrink: 0;
}

.osc-logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	color: inherit;
	height: var(--osc-logo-h);
}
.osc-logo__img {
	display: block;
	width: var(--osc-logo-w);
	height: var(--osc-logo-h);
	max-width: 100%;
	object-fit: contain;
	object-position: left center;
}
.custom-logo-link,
.custom-logo-link img {
	display: block;
	height: var(--osc-logo-h);
	width: auto;
	max-width: var(--osc-logo-w);
}
.osc-logo__mark,
.osc-logo__text { display: none; }

.osc-nav {
	flex: 0 0 auto;
	margin: 0;
}
.osc-nav__menu {
	display: flex;
	align-items: center;
	gap: var(--osc-header-nav-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}
.osc-nav__menu li,
.osc-header .menu-item {
	margin: 0;
	padding: 0;
	list-style: none;
}
.osc-nav__menu li a {
	display: inline-block;
	font-family: var(--osc-font-sans);
	font-size: var(--osc-header-link-size);
	font-weight: 500;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: var(--osc-header-link-tracking);
	color: var(--osc-fg);
	padding: 0 0 2px;
	border-bottom: 1px solid transparent;
	transition: border-color .15s ease;
	white-space: nowrap;
	text-decoration: none;
	-webkit-font-smoothing: antialiased;
}
.osc-nav__menu li.current-menu-item > a,
.osc-nav__menu li.current_page_item > a,
.osc-nav__menu li.current-menu-parent > a,
.osc-nav__menu li a.current {
	border-bottom-color: var(--osc-fg);
}
.osc-nav__menu li a:hover { border-bottom-color: var(--osc-fg); }

/* WordPress #menu-primary — перебиваем стили ядра/плагинов */
.osc-header #menu-primary.osc-nav__menu > li > a {
	font-size: var(--osc-header-link-size);
	letter-spacing: var(--osc-header-link-tracking);
	padding: 0 0 2px;
	background: transparent;
	border-radius: 0;
}
.osc-header #menu-primary.osc-nav__menu > li > a:hover {
	background: transparent;
}

.osc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--osc-font-sans);
	font-weight: 500;
	font-style: normal;
	border-radius: 0;
	border: 1px solid var(--osc-fg);
	transition: background .15s ease;
	color: var(--osc-fg);
}
.osc-btn--cta {
	padding: 16px 36px;
	font-size: 18px;
	line-height: 1.2;
	letter-spacing: -0.02em;
	background: var(--osc-accent);
}
.osc-header__subscribe {
	flex-shrink: 0;
	box-sizing: border-box;
	min-height: var(--osc-header-cta-min-h);
	padding: var(--osc-header-cta-pad-y) var(--osc-header-cta-pad-x);
	font-size: var(--osc-header-link-size);
	line-height: 1.2;
	letter-spacing: var(--osc-header-link-tracking);
}
.osc-header__subscribe:hover,
.osc-btn--cta:hover { background: var(--osc-accent-hover); }

.osc-menu-toggle {
	display: none;
	background: transparent;
	border: 1px solid var(--osc-fg);
	border-radius: 8px;
	padding: 10px 12px;
	gap: 4px;
	flex-direction: column;
}
.osc-menu-toggle span {
	display: block; width: 18px; height: 2px; background: var(--osc-fg);
}

/* Figma 341:1380 — fullscreen mobile menu (360px artboard) */
.osc-mobile-nav {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1000;
	flex-direction: column;
	background: var(--osc-bg);
	overflow-y: auto;
}
.osc-mobile-nav:not([hidden]) {
	display: flex;
}
.osc-mobile-nav__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-shrink: 0;
	min-height: 72px;
	padding: 20px 18px;
	box-sizing: border-box;
}
.osc-mobile-nav__logo .osc-logo__img {
	width: 153px;
	height: auto;
	max-height: 32px;
}
.osc-menu-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 24px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	color: var(--osc-fg);
}
.osc-menu-close__icon {
	position: relative;
	display: block;
	width: 18px;
	height: 16px;
}
.osc-menu-close__icon::before,
.osc-menu-close__icon::after {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 100%;
	height: 2px;
	background: currentColor;
}
.osc-menu-close__icon::before { transform: translateY(-50%) rotate(45deg); }
.osc-menu-close__icon::after { transform: translateY(-50%) rotate(-45deg); }

.osc-mobile-nav__panel {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 40px;
	padding: 160px 18px 40px;
	box-sizing: border-box;
}
.osc-mobile-nav__menu {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.osc-mobile-nav__menu a {
	display: inline-block;
	padding: 0 0 2px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
	color: var(--osc-fg);
	text-decoration: none;
	border: 0;
}
.osc-mobile-nav__menu a:hover,
.osc-mobile-nav__menu .current-menu-item > a {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.osc-mobile-nav__cta {
	align-self: stretch;
	width: 100%;
	max-width: none;
	min-height: 43px;
	padding: 12px 32px;
	box-sizing: border-box;
	justify-content: center;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
}

body.osc-menu-open {
	overflow: hidden;
}

/* -----------------  Page head — образец: главная (Figma 283:930 Hero block) ---------------- */
.osc-hero__title,
.osc-page__title {
	font-family: var(--osc-font-sans);
	font-size: var(--osc-text-h1);
	font-weight: 600;
	font-style: normal;
	letter-spacing: -0.04em;
	line-height: 1;
	max-width: var(--osc-hero-title-max);
}

.osc-hero .osc-container {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--osc-hero-block-gap);
	padding-top: var(--osc-hero-pad-top);
	padding-bottom: var(--osc-hero-pad-bottom);
}

.osc-hero {
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
}

/* Home hero — фоновое фото (Figma 522:2322 Hero block) */
.osc-hero--image {
	position: relative;
	overflow: hidden;
	min-height: var(--osc-hero-image-min-h);
}
.osc-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}
.osc-hero--image .osc-container {
	position: relative;
	z-index: 1;
	min-height: var(--osc-hero-image-min-h);
	justify-content: space-between;
}
.osc-hero--image .osc-hero__title,
.osc-hero--image .osc-hero__intro {
	color: #ffffff;
}

/* Archive / inner — те же отступы и сетка, что у .osc-hero на главной */
.osc-archive__header,
.osc-page__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--osc-hero-block-gap);
	padding: var(--osc-hero-pad-top) var(--osc-gutter) var(--osc-hero-pad-bottom);
	margin-left: calc(-1 * var(--osc-gutter));
	margin-right: calc(-1 * var(--osc-gutter));
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
}

.osc-archive__header::after,
.osc-page__header::after {
	content: none;
	display: none;
}

.osc-hero__intro,
.osc-archive__intro,
.osc-about-hero__intro,
.osc-page__header .osc-archive__intro {
	margin: 0;
	width: 100%;
	max-width: var(--osc-hero-intro-max);
	font-family: var(--osc-font-sans);
	font-size: var(--osc-hero-intro-size);
	font-weight: 400;
	font-style: normal;
	line-height: 1.3;
	letter-spacing: -0.02em;
	color: var(--osc-fg);
}

.osc-hero__intro p,
.osc-archive__intro {
	margin: 0;
}

.osc-page__header:not(:has(.osc-archive__intro)) {
	gap: 0;
}
.osc-about-hero__intro {
	max-width: var(--osc-hero-intro-max);
}
.osc-about-hero__intro p {
	margin: 0 0 1em;
}
.osc-about-hero__intro p:last-child {
	margin-bottom: 0;
}

/* -----------------  Home — research feature (Figma 283:930 Research) ---------------- */
.osc-home-research__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 0; /* зазор только padding у колонок + вертикальная линия */
	align-items: stretch;
}
.osc-home-research__media {
	padding-top: var(--osc-home-research-item-pad-y);
	padding-bottom: var(--osc-home-research-item-pad-y);
	padding-right: var(--osc-grid-gap-x);
	border-right: var(--osc-line-weight) solid var(--osc-border-strong);
}
.osc-home-research__media img,
.osc-home-research__media .osc-placeholder {
	width: 100%;
	height: 100%;
	min-height: clamp(320px, 35.42vw, 680px);
	object-fit: cover;
}
.osc-home-research__list {
	display: flex;
	flex-direction: column;
	padding-left: var(--osc-grid-gap-x);
	min-height: 100%;
}
.osc-home-research__item {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	gap: var(--osc-home-research-row-gap);
	padding: var(--osc-home-research-item-pad-y) 0;
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
	color: var(--osc-fg);
	text-decoration: none;
}
.osc-home-research__item:last-child {
	border-bottom: none;
}
/* Строка 1: label + стрелка (Figma icon arrow 30×30, y:0) */
.osc-home-research__item-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--osc-home-research-item-top-gap);
}
.osc-home-research__label {
	font-size: var(--osc-header-link-size);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
}
.osc-home-research__arrow {
	flex: 0 0 var(--osc-home-research-arrow);
	display: block;
	width: var(--osc-home-research-arrow);
	height: var(--osc-home-research-arrow);
	transition: transform .35s ease;
}
.osc-home-research__arrow .osc-arrow {
	display: block;
	width: 100%;
	height: 100%;
}
.osc-home-research__item:hover .osc-home-research__arrow {
	transform: translate(4px, -4px);
}
/* Строка 2: заголовок 48px, переносы */
.osc-home-research__title {
	margin: 0;
	max-width: var(--osc-home-research-title-max);
	font-size: var(--osc-text-h3);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.05;
}
.osc-home-research__title-text,
.osc-card__title a {
	display: inline;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 calc(100% - var(--osc-title-underline-lift));
	background-size: 0 var(--osc-title-underline-h);
	padding-bottom: 0;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.osc-home-research__item:hover .osc-home-research__title-text {
	background-size: 100% var(--osc-title-underline-h);
}
/* Строка 3: дата */
.osc-home-research__date {
	margin: 0;
	font-size: var(--osc-home-research-date-size);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--osc-fg-muted);
}

/* -----------------  Section header (Figma 283:1810 News Header) ---------------- */
.osc-section-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(40px, 4.166667vw, 80px);
	margin-left: calc(-1 * var(--osc-gutter));
	margin-right: calc(-1 * var(--osc-gutter));
	padding: var(--osc-hero-pad-top) var(--osc-gutter) var(--osc-hero-pad-top);
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
}
.osc-section-header__title {
	flex: 1 1 0;
	min-width: 0;
	font-size: var(--osc-text-h2);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
}
.osc-home-news .osc-section-header + .osc-grid,
.osc-home-research .osc-section-header + .osc-home-research__grid {
	margin-top: var(--osc-archive-grid-offset);
}

/* btn-link — Figma 522:2330: колонка, стрелка сверху справа, текст снизу слева */
.osc-link-arrow {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-start;
	gap: 0;
	box-sizing: border-box;
	width: var(--osc-link-arrow-width);
	max-width: 100%;
	flex-shrink: 0;
	font-size: var(--osc-text-ui);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--osc-fg);
	text-decoration: none;
	padding: var(--osc-link-arrow-pad-y) var(--osc-link-arrow-pad-x);
	border: 0;
	border-bottom: var(--osc-link-arrow-line) solid var(--osc-fg);
	border-right: var(--osc-link-arrow-line) solid var(--osc-fg);
	transition:
		border-bottom-width .35s ease,
		border-right-width .35s ease;
}
.osc-link-arrow > span {
	display: block;
	width: 100%;
	text-align: left;
}
.osc-link-arrow .osc-arrow {
	display: block;
	flex-shrink: 0;
	width: var(--osc-link-arrow-icon);
	height: var(--osc-link-arrow-icon);
}
.osc-link-arrow:hover {
	border-bottom-width: var(--osc-link-arrow-line-hover);
	border-right-width: var(--osc-link-arrow-line-hover);
}
.osc-link-arrow .osc-arrow { transition: transform .35s ease; }
.osc-link-arrow:hover .osc-arrow { transform: translate(4px, -4px); }
.osc-link-arrow--right { float: right; }
.osc-arrow { display: inline-block; flex-shrink: 0; }

/* -----------------  Grids (Figma 341:1309 — 4 / 3 / 2 / 1 колонки) ---------------- */
.osc-grid {
	display: grid;
	column-gap: var(--osc-grid-gap-x);
	row-gap: var(--osc-grid-gap-y);
}
.osc-grid__rule {
	display: none !important;
}
.osc-grid--4 {
	/* 100cqw = ширина сетки; колонка и gap считаются из одной ширины */
	container-type: inline-size;
	--osc-grid-4-cols: 4;
	--osc-grid-4-col: min(
		var(--osc-grid-4-col-cap),
		calc((100cqw - (var(--osc-grid-4-cols) - 1) * var(--osc-grid-4-gap-min)) / var(--osc-grid-4-cols))
	);
	--osc-grid-4-gap: max(
		var(--osc-grid-4-gap-min),
		calc((100cqw - var(--osc-grid-4-cols) * var(--osc-grid-4-col)) / (var(--osc-grid-4-cols) - 1))
	);
	--osc-grid-4-row-line-left: calc(
		(var(--osc-grid-4-cols) - 1) * (var(--osc-grid-4-col) + var(--osc-grid-4-gap)) * -1
	);
	grid-template-columns: repeat(4, minmax(0, var(--osc-grid-4-col)));
	column-gap: var(--osc-grid-4-gap);
	row-gap: var(--osc-grid-gap-y);
	width: 100%;
	box-sizing: border-box;
	align-items: stretch;
	overflow: visible;
}
.osc-grid__cell {
	position: relative;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-self: stretch;
	overflow: visible;
}
.osc-grid--4 > .osc-grid__cell > .osc-card,
.osc-grid--4 > .osc-grid__cell > .osc-team-card {
	position: relative;
	flex: 1 1 auto;
	width: 100%;
	min-height: 0;
}
/* Вертикальная: центр column-gap, на всю высоту ячейки (фото + текст) */
.osc-grid--4 > .osc-grid__cell:not(:nth-child(4n))::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: auto;
	right: calc(var(--osc-grid-4-gap) / -2);
	width: var(--osc-line-weight);
	height: auto;
	margin: 0;
	transform: none;
	background: var(--osc-border-strong);
	pointer-events: none;
	z-index: 2;
}
/* Горизонтальная: край viewport → край viewport, по центру row-gap */
.osc-grid--4 > .osc-grid__cell:nth-child(4n):has(~ .osc-grid__cell)::before {
	content: "";
	position: absolute;
	left: var(--osc-grid-4-row-line-left);
	right: auto;
	bottom: calc(var(--osc-grid-gap-y) / -2);
	width: 100vw;
	height: var(--osc-line-weight);
	margin: 0 0 0 calc(-1 * var(--osc-viewport-bleed-left));
	transform: none;
	background: var(--osc-border-strong);
	pointer-events: none;
	z-index: 2;
}

/* 3 в ряд */
@media (max-width: 1100px) {
	.osc-grid--4 {
		--osc-grid-4-cols: 3;
		grid-template-columns: repeat(3, minmax(0, var(--osc-grid-4-col)));
	}
	.osc-grid--4 > .osc-grid__cell::after,
	.osc-grid--4 > .osc-grid__cell::before {
		content: none;
	}
	.osc-grid--4 > .osc-grid__cell:not(:nth-child(3n))::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: auto;
		right: calc(var(--osc-grid-4-gap) / -2);
		width: var(--osc-line-weight);
		height: auto;
		background: var(--osc-border-strong);
		z-index: 2;
	}
	.osc-grid--4 > .osc-grid__cell:nth-child(3n):has(~ .osc-grid__cell)::before {
		content: "";
		position: absolute;
		left: var(--osc-grid-4-row-line-left);
		right: auto;
		bottom: calc(var(--osc-grid-gap-y) / -2);
		width: 100vw;
		height: var(--osc-line-weight);
		margin-left: calc(-1 * var(--osc-viewport-bleed-left));
		transform: none;
		background: var(--osc-border-strong);
		z-index: 2;
	}
}

/* 2 в ряд */
@media (max-width: 860px) {
	.osc-grid--4 {
		--osc-grid-4-cols: 2;
		grid-template-columns: repeat(2, minmax(0, var(--osc-grid-4-col)));
		--osc-grid-gap-y: clamp(32px, 2.5vw, 48px);
	}
	.osc-grid--4 > .osc-grid__cell::after,
	.osc-grid--4 > .osc-grid__cell::before {
		content: none;
	}
	.osc-grid--4 > .osc-grid__cell:not(:nth-child(2n))::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: auto;
		right: calc(var(--osc-grid-4-gap) / -2);
		width: var(--osc-line-weight);
		height: auto;
		background: var(--osc-border-strong);
		z-index: 2;
	}
	.osc-grid--4 > .osc-grid__cell:nth-child(2n):has(~ .osc-grid__cell)::before {
		content: "";
		position: absolute;
		left: var(--osc-grid-4-row-line-left);
		right: auto;
		bottom: calc(var(--osc-grid-gap-y) / -2);
		width: 100vw;
		height: var(--osc-line-weight);
		margin-left: calc(-1 * var(--osc-viewport-bleed-left));
		transform: none;
		background: var(--osc-border-strong);
		z-index: 2;
	}
}

/* 1 в ряд (узкий / XS): без вертикальных линий */
@media (max-width: 480px) {
	.osc-grid--4 {
		--osc-grid-4-cols: 1;
		grid-template-columns: minmax(0, 1fr);
		--osc-grid-4-gap: 0px;
		column-gap: 0;
		--osc-grid-gap-y: clamp(32px, 2.5vw, 48px);
	}
	.osc-grid--4 > .osc-grid__cell::after,
	.osc-grid--4 > .osc-grid__cell::before {
		content: none;
	}
	.osc-grid--4 > .osc-grid__cell:has(~ .osc-grid__cell)::before {
		content: "";
		position: absolute;
		left: 0;
		right: auto;
		bottom: calc(var(--osc-grid-gap-y) / -2);
		width: 100vw;
		height: var(--osc-line-weight);
		margin-left: calc(-1 * var(--osc-viewport-bleed-left));
		transform: none;
		background: var(--osc-border-strong);
		z-index: 2;
	}
}

/* -----------------  Cards ---------------- */
.osc-card {
	display: flex;
	flex-direction: column;
	gap: var(--osc-grid-gap-x);
	min-height: 100%;
}
.osc-grid--4 > .osc-grid__cell > .osc-card .osc-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}
.osc-card__body {
	display: flex;
	flex-direction: column;
	gap: clamp(6px, 0.416667vw, 8px);
}
.osc-card__media {
	display: block;
	flex: 0 0 auto;
	position: relative;
	padding: 0;
	overflow: hidden;
}
.osc-card__media-frame {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: var(--osc-card-media-ratio);
	overflow: hidden;
	background: #f1f1f1;
}
.osc-media-cover,
.osc-card__media-frame > .osc-placeholder,
.osc-team-card__media-frame > .osc-placeholder {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
}
.osc-media-cover {
	background-size: cover;
	background-position: left center;
	background-repeat: no-repeat;
	transition: transform .4s ease;
	transform-origin: left center;
}
.osc-card__media-frame > .osc-placeholder,
.osc-team-card__media-frame > .osc-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.osc-card__media:hover .osc-media-cover {
	transform: scale(1.03);
}

.osc-card__label {
	display: inline-block;
	font-size: var(--osc-text-ui);
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--osc-fg);
	line-height: 1.1;
}
.osc-card__title-row {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}
.osc-card__title {
	flex: 1 1 auto;
	min-width: 0;
	font-size: var(--osc-text-h4);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.05;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
}
.osc-card__title a {
	color: inherit;
}
.osc-card__title a:hover {
	background-size: 100% var(--osc-title-underline-h);
}
.osc-card__arrow-wrap {
	flex: 0 0 30px;
	display: block;
	width: 30px;
	height: 30px;
	color: var(--osc-fg);
	transition: transform .35s ease;
}
.osc-card__arrow-wrap .osc-arrow { width: 100%; height: 100%; }
.osc-card:hover .osc-card__arrow-wrap {
	transform: translate(4px, -4px);
}
.osc-card__date {
	display: block;
	font-size: var(--osc-text-small);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--osc-fg);
}

/* -----------------  Projects rows (Figma: 900×680 media | 592 text column) ---------------- */
.osc-projects {
	display: flex;
	flex-direction: column;
}
.osc-project-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 0;
	align-items: stretch;
	padding-top: calc(var(--osc-grid-gap-y) / 2);
	padding-bottom: calc(var(--osc-grid-gap-y) / 2);
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
}
.osc-project-row:first-child {
	padding-top: 0;
}
.osc-project-row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.osc-project-row__media {
	display: block;
	padding-right: var(--osc-grid-gap-x);
	border-right: var(--osc-line-weight) solid var(--osc-border-strong);
	text-decoration: none;
	color: inherit;
}
.osc-project-row__media img,
.osc-project-row__media .osc-placeholder {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border: none;
}
.osc-project-row__media .osc-placeholder {
	aspect-ratio: var(--osc-project-media-ratio);
}
.osc-project-row__body {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding-left: var(--osc-grid-gap-x);
	font-family: var(--osc-font-sans);
}
.osc-project-row__subtitle {
	margin: 0 0 var(--osc-project-label-title-gap);
	font-family: inherit;
	font-size: var(--osc-text-ui);
	font-weight: 500;
	font-style: normal;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--osc-fg);
}
.osc-project-row__tagline {
	margin: 0 0 var(--osc-project-title-body-gap);
	max-width: var(--osc-project-body-max);
	font-family: inherit;
	font-size: var(--osc-text-h3);
	font-weight: 600;
	font-style: normal;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--osc-fg);
}
.osc-project-row__excerpt {
	flex: 1 1 auto;
	max-width: var(--osc-project-body-max);
	font-family: inherit;
	font-size: var(--osc-hero-intro-size);
	font-weight: 400;
	font-style: normal;
	line-height: 1.3;
	letter-spacing: -0.02em;
	color: var(--osc-fg);
}
.osc-project-row__excerpt p {
	margin: 0 0 1.25em;
}
.osc-project-row__excerpt p:last-child {
	margin-bottom: 0;
}
.osc-project-row .osc-link-arrow {
	margin-top: auto;
	align-self: flex-end;
}

@media (max-width: 860px) {
	.osc-project-row {
		grid-template-columns: 1fr;
	}
	.osc-project-row__media {
		padding-right: 0;
		border-right: none;
		padding-bottom: var(--osc-grid-gap-x);
		margin-bottom: var(--osc-grid-gap-x);
	}
	.osc-project-row__body { padding-left: 0; }
}

/* -----------------  Team cards (Figma: 428×428 photo, H4 name, intro role) ---------------- */
.osc-team-card {
	display: flex;
	flex-direction: column;
	font-family: var(--osc-font-sans);
}
.osc-team-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}
.osc-team-card__link:hover .osc-team-card__name {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.osc-grid--4 > .osc-grid__cell > .osc-team-card .osc-team-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}
.osc-team-card__media {
	display: block;
	position: relative;
	overflow: hidden;
}
.osc-team-card__media-frame {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: var(--osc-team-photo-ratio);
	overflow: hidden;
	background: #2b2b2b;
}
.osc-team-card__body {
	padding-top: var(--osc-team-body-pad-top);
}
.osc-team-card__name {
	margin: 0 0 var(--osc-team-name-role-gap);
	font-family: inherit;
	font-size: var(--osc-text-h4);
	font-weight: 600;
	font-style: normal;
	letter-spacing: -0.04em;
	line-height: 1.05;
	color: var(--osc-fg);
}
.osc-team-card__role {
	margin: 0;
	font-family: inherit;
	font-size: var(--osc-hero-intro-size);
	font-weight: 400;
	font-style: normal;
	line-height: 1.3;
	letter-spacing: -0.02em;
	color: var(--osc-fg);
}

/* -----------------  Placeholders ---------------- */
.osc-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #e8e8e8 0%, #d4d4d4 100%);
	color: #555;
	font-size: 13px;
	font-weight: 600;
	text-align: center;
	padding: 16px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.osc-card__media-frame > .osc-placeholder,
.osc-team-card__media-frame > .osc-placeholder {
	padding: 0;
}
.osc-placeholder--hero { aspect-ratio: 4 / 3; }

/* -----------------  About feature (Figma: 900×680 | линия | H3 + 3 thumb снизу) ---------------- */
.osc-about-feature__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 0;
	align-items: stretch;
}
.osc-about-feature__media {
	padding-right: var(--osc-grid-gap-x);
	border-right: var(--osc-line-weight) solid var(--osc-border-strong);
}
.osc-about-feature__media img,
.osc-about-feature__media .osc-placeholder {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border: none;
}
.osc-about-feature__body {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding-left: var(--osc-grid-gap-x);
	font-family: var(--osc-font-sans);
}
.osc-about-feature__title {
	margin: 0 0 var(--osc-about-feature-title-thumbs-gap);
	max-width: var(--osc-about-feature-title-max);
	font-family: inherit;
	font-size: var(--osc-text-h3);
	font-weight: 600;
	font-style: normal;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--osc-fg);
}
.osc-about-feature__thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--osc-grid-gap-x);
	margin-top: auto;
	align-items: end;
}
.osc-about-feature__thumbs img,
.osc-about-feature__thumbs .osc-placeholder {
	width: 100%;
	height: auto;
	aspect-ratio: var(--osc-card-media-ratio);
	object-fit: cover;
	border: none;
}
@media (max-width: 860px) {
	.osc-about-feature__grid { grid-template-columns: 1fr; }
	.osc-about-feature__media {
		padding-right: 0;
		border-right: none;
		padding-bottom: var(--osc-grid-gap-x);
		margin-bottom: var(--osc-grid-gap-x);
	}
	.osc-about-feature__body { padding-left: 0; }
	.osc-about-feature__title { margin-bottom: var(--osc-grid-gap-x); }
	.osc-about-feature__thumbs { margin-top: 0; }
}

/* -----------------  Article single (Figma 295:1888 news page) ---------------- */
.osc-section.osc-article {
	padding-top: 0;
	padding-bottom: var(--osc-archive-grid-offset);
}
.osc-article__intro {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--osc-hero-block-gap);
	margin-left: calc(-1 * var(--osc-gutter));
	margin-right: calc(-1 * var(--osc-gutter));
	padding: var(--osc-hero-pad-top) var(--osc-gutter) var(--osc-hero-pad-bottom);
	border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
}
.osc-article__intro .osc-breadcrumbs {
	font-size: var(--osc-header-link-size);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--osc-fg);
	margin: 0;
}
.osc-article__intro .osc-breadcrumbs a {
	color: var(--osc-fg);
	margin: 0 4px;
}
.osc-article__intro .osc-breadcrumbs a:first-child { margin-left: 0; }
.osc-article__intro .osc-breadcrumbs span[aria-hidden] { margin: 0 4px; }

.osc-article__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(12px, 1.041667vw, 20px);
	margin: 0;
	padding: 0;
	border: none;
}
.osc-article__title {
	font-size: var(--osc-text-h2);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
	max-width: var(--osc-article-title-max);
}
.osc-article__label {
	font-size: var(--osc-header-link-size);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0;
}

/* Контент: пустая левая колонка | вертикальная линия | картинка + текст справа */
.osc-article__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 0;
	align-items: stretch;
	padding-top: var(--osc-archive-grid-offset);
}
.osc-article__spacer {
	align-self: stretch;
	min-height: 100%;
	padding-right: var(--osc-grid-gap-x);
	border-right: var(--osc-line-weight) solid var(--osc-border-strong);
}
.osc-article__body {
	padding-left: var(--osc-grid-gap-x);
}
.osc-article__media {
	margin: 0 0 clamp(12px, 1.041667vw, 20px);
}
.osc-article__media img {
	width: 100%;
	height: auto;
	aspect-ratio: var(--osc-article-media-ratio);
	object-fit: cover;
}
.osc-article__date {
	display: block;
	font-size: var(--osc-text-small);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--osc-fg);
	margin: 0 0 clamp(20px, 1.5625vw, 30px);
}
.osc-article__content {
	max-width: clamp(320px, 30.833333vw, 592px);
	font-size: var(--osc-text-body-lg);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: -0.02em;
}
.osc-article__content p { margin: 0 0 1.25em; }
.osc-article__content ul {
	list-style: disc;
	padding-left: 1.25em;
	margin: 0 0 1.25em;
}
.osc-article__content a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.osc-article__body > .osc-link-arrow {
	margin-top: clamp(40px, 3.125vw, 60px);
}

@media (max-width: 860px) {
	.osc-article__grid {
		grid-template-columns: 1fr;
		padding-top: var(--osc-grid-gap-x);
	}
	.osc-article__spacer {
		display: none;
	}
	.osc-article__body {
		padding-left: 0;
	}
	.osc-article__content {
		max-width: none;
	}
}

/* -----------------  Pagination ---------------- */
.osc-pagination {
	margin-top: 48px;
	display: flex;
	justify-content: center;
}
.osc-pagination .nav-links {
	display: flex;
	gap: 6px;
}
.osc-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border: 1px solid var(--osc-border);
	font-size: 14px;
	font-weight: 500;
}
.osc-pagination .page-numbers.current {
	background: var(--osc-fg);
	color: #fff;
	border-color: var(--osc-fg);
}

/* -----------------  Footer (Figma 290:2666) ---------------- */
.osc-footer {
	background: var(--osc-footer-bg);
	color: var(--osc-footer-fg);
	margin-top: 0;
	padding: 0;
}
.osc-footer .osc-logo {
	height: var(--osc-logo-h);
}
.osc-footer .osc-logo__img {
	width: var(--osc-logo-w);
	height: var(--osc-logo-h);
}
/* Тот же логотип, инверсия для тёмного футера */
.osc-footer .osc-logo__img--invert {
	filter: brightness(0) invert(1);
}
/* Footer columns align with the 4-column card grid (1 + 1 + 2 spans). */
.osc-footer__inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--osc-grid-gap-x);
	padding-top: var(--osc-footer-pad-top);
	padding-bottom: var(--osc-footer-pad-bottom);
}
.osc-footer__brand { grid-column: 1; }
.osc-footer__pages { grid-column: 2; }
.osc-footer__right { grid-column: 3 / span 2; min-width: 0; }
.osc-footer h3 {
	font-size: var(--osc-footer-h-size);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
	margin: 0 0 var(--osc-footer-title-gap);
	color: #fff;
}
.osc-footer .osc-logo__text {
	line-height: 1.0;
	gap: 0;
}
.osc-footer .osc-logo__text span {
	display: block;
}
.osc-footer__menu { display: flex; flex-direction: column; gap: var(--osc-footer-menu-gap); }
.osc-footer__pages .osc-footer__menu { gap: var(--osc-footer-pages-menu-gap); }
.osc-footer__menu li { margin: 0; }
.osc-footer__menu a {
	color: #fff;
	font-size: var(--osc-text-ui);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.02em;
	padding-bottom: 2px;
	border-bottom: 1px solid transparent;
	transition: border-color .15s ease;
}
.osc-footer__menu a:hover { border-bottom-color: #fff; }

/* Right column: Follow us + horizontal divider + Stay in the fight */
.osc-footer__right {
	display: flex;
	flex-direction: column;
}
.osc-footer__right > .osc-footer__social { padding-bottom: var(--osc-footer-section-gap); }
.osc-footer__right > .osc-footer__newsletter {
	padding-top: var(--osc-footer-section-gap);
	border-top: 1px solid #fff;
}
.osc-footer__newsletter > p {
	font-size: var(--osc-text-ui);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: #fff;
	max-width: var(--osc-footer-intro-max);
	margin: 0;
}

/* Пустое место над полем email — в образце 120px; CF7 вставляет .wpcf7 между <p> и формой */
.osc-footer__newsletter > .wpcf7,
.osc-footer__newsletter > .osc-newsletter,
.osc-footer__newsletter > p + form {
	margin-top: var(--osc-footer-intro-field-gap);
}

.osc-footer__newsletter fieldset.hidden-fields-container,
.osc-footer__newsletter .screen-reader-response {
	margin: 0;
	padding: 0;
	border: 0;
}

.osc-footer__newsletter fieldset.hidden-fields-container {
	display: none;
}

/* Subscribe form (fallback + CF7 inside .osc-footer__newsletter) */
.osc-footer__newsletter .osc-newsletter,
.osc-footer__newsletter .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: var(--osc-footer-form-gap);
	width: 100%;
	max-width: none;
	margin-top: 0;
	margin-bottom: 0;
}

.osc-newsletter__field,
.osc-footer__newsletter .wpcf7-form .osc-newsletter__field {
	position: relative;
	background: #fff;
	margin-bottom: 0;
	min-height: var(--osc-footer-field-min-h);
	padding: var(--osc-footer-field-inset-v) var(--osc-footer-field-inset-h) var(--osc-footer-field-inset-v) var(--osc-footer-field-pad-l);
	display: flex;
	align-items: stretch;
	gap: 0;
	width: 100%;
}

/* CF7 wraps email + submit in a <p> inside the white field */
.osc-footer__newsletter .osc-newsletter__field > p {
	position: relative;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 0;
	margin: 0;
	flex: 1;
	min-width: 0;
	width: 100%;
	padding-right: calc(var(--osc-footer-field-btn) + var(--osc-footer-field-inset-h));
}

/* Fallback form: input + button directly in .osc-newsletter__field */
.osc-newsletter__field:not(:has(> p)) {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
}

.osc-newsletter__field input,
.osc-footer__newsletter .wpcf7-form input[type="email"] {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	max-width: none;
	background: transparent;
	border: 0;
	color: var(--osc-footer-bg);
	font-family: var(--osc-font-sans);
	font-size: var(--osc-text-ui);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.2;
	padding: 0;
	outline: none;
}

.osc-newsletter__field input::placeholder,
.osc-footer__newsletter .wpcf7-form input[type="email"]::placeholder {
	color: var(--osc-footer-bg);
	opacity: 1;
}

.osc-footer__newsletter .osc-newsletter__field .wpcf7-form-control-wrap {
	flex: 1;
	min-width: 0;
	display: block;
}

.osc-newsletter__field button,
.osc-footer__newsletter .wpcf7-form .wpcf7-submit {
	background: var(--osc-footer-bg);
	color: transparent;
	border: 0;
	width: var(--osc-footer-field-btn) !important;
	height: var(--osc-footer-field-btn) !important;
	min-width: var(--osc-footer-field-btn) !important;
	max-width: var(--osc-footer-field-btn);
	min-height: var(--osc-footer-field-btn) !important;
	max-height: var(--osc-footer-field-btn);
	padding: 0 !important;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 var(--osc-footer-field-btn);
	aspect-ratio: 1;
	box-sizing: border-box;
	border-radius: 0;
	cursor: pointer;
	font-size: 0 !important;
	line-height: 0;
	overflow: hidden;
}

.osc-footer__newsletter .osc-newsletter__field .wpcf7-submit {
	position: absolute;
	right: var(--osc-footer-field-inset-h);
	top: 50%;
	transform: translateY(-50%);
}

.osc-newsletter__field:not(:has(> p)) button {
	margin-left: auto;
}

/* CF7 text submit → square arrow button at the end of the field */
.osc-footer__newsletter .wpcf7-form .wpcf7-submit {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 12H20M20 12L13 5M20 12L13 19' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px;
}

.osc-footer__newsletter .wpcf7-submit.has-spinner::before,
.osc-footer__newsletter .wpcf7-submit.has-spinner::after {
	display: none;
}

/* Consent: checkbox + label on one line, tight spacing */
.osc-newsletter__consent,
.osc-footer__newsletter .wpcf7-form > p.osc-newsletter__consent-row,
.osc-footer__newsletter .wpcf7-form > p:has([type="checkbox"]),
.osc-footer__newsletter .wpcf7-form > p:has(.wpcf7-acceptance) {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: var(--osc-footer-consent-gap);
	margin: 0;
	font-size: var(--osc-text-ui);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: #fff;
}

.osc-newsletter__consent {
	gap: var(--osc-footer-consent-gap);
}

.osc-newsletter__consent span,
.osc-footer__newsletter .wpcf7-form .wpcf7-list-item-label {
	line-height: 1.0;
}

.osc-footer__newsletter .osc-newsletter__consent-row .wpcf7-form-control-wrap {
	flex: 0 0 auto;
	margin: 0;
}

.osc-footer__newsletter .wpcf7-form .wpcf7-acceptance,
.osc-footer__newsletter .wpcf7-form .wpcf7-list-item {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 0;
	margin: 0;
}

.osc-footer__newsletter .wpcf7-form .wpcf7-list-item-label {
	display: inline;
}

.osc-footer__newsletter .wpcf7-form > p:not(.osc-newsletter__consent-row) {
	margin: 0 0 16px;
}

.osc-footer__newsletter .wpcf7-form > p.osc-newsletter__consent-row {
	margin: 0;
}

/* CF7: email + submit in separate <p> tags — overlay button into the white field */
.osc-footer__newsletter .wpcf7-form:not(:has(.osc-newsletter__field)) {
	position: relative;
}
.osc-footer__newsletter .wpcf7-form:not(:has(.osc-newsletter__field)) > p:has([type="email"]) {
	padding-right: 40px;
}
.osc-footer__newsletter .wpcf7-form:not(:has(.osc-newsletter__field)) > p:has(.wpcf7-submit) {
	position: absolute;
	top: var(--osc-footer-field-inset-h);
	right: var(--osc-footer-field-inset-h);
	margin: 0;
	z-index: 1;
}

.osc-footer__newsletter .wpcf7-form br {
	display: none;
}

.osc-newsletter__consent input,
.osc-footer__newsletter .wpcf7-form input[type="checkbox"] {
	appearance: none;
	width: 20px;
	height: 20px;
	border: 2px solid #fff;
	background: transparent;
	margin: 0;
	cursor: pointer;
	flex-shrink: 0;
}

.osc-newsletter__consent input:checked,
.osc-footer__newsletter .wpcf7-form input[type="checkbox"]:checked {
	background: #fff;
	box-shadow: inset 0 0 0 3px var(--osc-footer-bg);
}

.osc-newsletter__notice {
	margin-top: 12px;
	font-size: var(--osc-text-small);
	color: #888;
}

.osc-footer__bottom {
	padding: var(--osc-footer-pad-bottom) 0;
	border-top: var(--osc-line-weight) solid #fff;
}
.osc-footer__bottom-inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--osc-grid-gap-x);
	align-items: center;
}
.osc-footer__legal {
	display: contents;
}
.osc-footer__legal li:first-child { grid-column: 1; }
.osc-footer__legal li:nth-child(2) { grid-column: 2; }
.osc-footer__copyright { grid-column: 3 / span 2; }
.osc-footer__legal li { margin: 0; }
.osc-footer__legal a {
	color: #fff;
	font-size: var(--osc-text-ui);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
}
.osc-footer__copyright {
	margin: 0;
	font-size: var(--osc-text-ui);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: #fff;
}

@media (max-width: 1100px) {
	.osc-footer__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.osc-footer__brand { grid-column: 1; }
	.osc-footer__pages { grid-column: 2; }
	.osc-footer__right {
		grid-column: 1 / -1;
		padding-top: var(--osc-footer-stack-gap);
		margin-top: var(--osc-footer-stack-gap);
		border-top: var(--osc-line-weight) solid #fff;
	}
	.osc-footer__bottom-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.osc-footer__legal li:first-child { grid-column: 1; }
	.osc-footer__legal li:nth-child(2) { grid-column: 2; }
	.osc-footer__copyright { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
	.osc-footer__inner { grid-template-columns: 1fr; }
	.osc-footer__brand,
	.osc-footer__pages,
	.osc-footer__right { grid-column: auto; }
	.osc-footer__bottom-inner { grid-template-columns: 1fr; gap: var(--osc-footer-menu-gap); }
	.osc-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
	.osc-footer__legal li:first-child,
	.osc-footer__legal li:nth-child(2),
	.osc-footer__copyright { grid-column: auto; margin-left: 0; }
}

/* Мобильная типографика — заголовки на 2 ступени меньше (H1→H3, H2→H4, H3→body, H4→small) */
@media (max-width: 768px) {
	:root {
		--osc-text-h1: clamp(28px, 2.5vw, 48px);
		--osc-text-h2: clamp(24px, 1.875vw, 36px);
		--osc-text-h3: clamp(20px, 1.25vw, 24px);
		--osc-text-h4: clamp(11px, 0.729167vw, 14px);
		--osc-footer-h-size: clamp(20px, 1.25vw, 24px);
	}
}

/* -----------------  Responsive nav (Figma — десктопное меню до планшета) ---------------- */
@media (max-width: 768px) {
	.osc-header__actions { display: none; }
	.osc-menu-toggle {
		display: inline-flex;
		flex-shrink: 0;
		margin-left: auto;
	}
}

/* -----------------  Misc ---------------- */
.osc-empty {
	padding: 24px 0;
	font-size: 14px;
	color: var(--osc-fg-muted);
}

/* Smaller home hero on mobile */
@media (min-width: 1920px) {
	:root {
		--osc-gutter: 38px;
		--osc-grid-gap-x: 22px;
		--osc-grid-gap-y: 60px;
		--osc-header-pad-y: 20px;
		--osc-header-link-size: 18px;
		--osc-header-nav-gap: 40px;
		--osc-header-cta-pad-y: 16px;
		--osc-header-cta-pad-x: 36px;
		--osc-header-cta-min-h: 54px;
		--osc-logo-w: 215px;
		--osc-logo-h: 45px;
		--osc-hero-pad-top: 20px;
		--osc-hero-pad-bottom: 40px;
		--osc-hero-title-max: 714px;
		--osc-hero-intro-max: 540px;
		--osc-hero-intro-size: 22px;
		--osc-hero-block-gap: 160px;
		/* Типографика — cap @ 1920, не растёт на 4K */
		--osc-text-h1: 120px;
		--osc-text-h2: 80px;
		--osc-text-h3: 48px;
		--osc-text-h4: 36px;
		--osc-text-body-lg: 24px;
		--osc-text-small: 14px;
		--osc-archive-grid-offset: 30px;
		--osc-home-research-title-max: 592px;
		--osc-card-col-w: 408px;
		--osc-grid-4-gap-min: 44px;
		--osc-grid-4-col-cap: 408px;
		--osc-project-body-max: 592px;
		--osc-project-label-title-gap: 20px;
		--osc-project-title-body-gap: 30px;
		--osc-project-cta-gap: 40px;
		--osc-about-feature-title-max: 592px;
		--osc-about-feature-title-thumbs-gap: 30px;
		--osc-team-body-pad-top: 22px;
		--osc-team-name-role-gap: 8px;
		--osc-link-arrow-pad-y: 12px;
		--osc-link-arrow-pad-x: 20px;
		--osc-link-arrow-width: 240px;
		--osc-link-arrow-icon: 24px;
		--osc-link-arrow-line-hover: 2px;
		--osc-hero-image-min-h: 800px;
		--osc-footer-pad-top: 28px;
	}
}

@media (max-width: 720px) {
	:root {
		--osc-logo-w: 180px;
		--osc-logo-h: 38px;
		--osc-header-pad-y: 10px;
		--osc-header-cta-min-h: 44px;
		--osc-header-cta-pad-y: 12px;
		--osc-header-nav-gap: 24px;
		--osc-header-link-size: 16px;
	}
	.osc-home-research__grid { grid-template-columns: 1fr; }
	.osc-home-research__media {
		padding-right: 0;
		border-right: none;
		border-bottom: var(--osc-line-weight) solid var(--osc-border-strong);
		padding-bottom: var(--osc-grid-gap-x);
		margin-bottom: var(--osc-grid-gap-x);
	}
	.osc-home-research__media img,
	.osc-home-research__media .osc-placeholder {
		min-height: 240px;
		height: auto;
		aspect-ratio: 4 / 3;
	}
	.osc-home-research__list {
		padding-left: 0;
		min-height: 0;
	}
	.osc-home-research__item {
		flex: none;
		padding-bottom: var(--osc-grid-gap-x);
	}
	.osc-hero__bg {
		display: none;
	}
	.osc-hero--image {
		min-height: 0;
	}
	.osc-hero--image .osc-container {
		min-height: 0;
		justify-content: flex-start;
	}
	.osc-hero--image .osc-hero__title,
	.osc-hero--image .osc-hero__intro {
		color: var(--osc-fg);
	}
	.osc-section-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 40px;
	}
	.osc-link-arrow {
		align-self: flex-end;
		align-items: flex-end;
		width: 200px;
		font-size: var(--osc-header-link-size);
		line-height: 1.2;
		padding: 8px 16px;
	}
	.osc-link-arrow .osc-arrow {
		width: 20px;
		height: 20px;
	}
}
