/*
 * Жирный Шрифт — main stylesheet.
 *
 * After vogue.com (client's first visual reference): white page, black type, hairlines,
 * section labels and bylines in spaced capitals, Garamond text, geometric sans headlines,
 * Didone titles. Fonts and colors are defined in theme.json.
 *
 * Breakpoints: 640px (two columns), 1024px (desktop grids), 1200px (section bar).
 */

/* ------------------------------------------------------------------ Tokens */

:root {
	--ink: var(--wp--preset--color--ink, #111);
	--white: var(--wp--preset--color--white, #fff);
	--mist: var(--wp--preset--color--mist, #f5f4f1);
	--line: var(--wp--preset--color--line, #e3e2df);
	--muted: var(--wp--preset--color--muted, #6b6966);
	--sans: var(--wp--preset--font-family--sans, Jost, sans-serif);
	--serif: var(--wp--preset--font-family--serif, "EB Garamond", serif);
	--didone: var(--wp--preset--font-family--didone, "Playfair Display", serif);
	--gutter: 20px;
	--container: 1312px;
	--header: 56px;
}

@media (min-width: 640px) {
	:root {
		--gutter: 32px;
	}
}

@media (min-width: 1024px) {
	:root {
		--gutter: 64px;
		--header: 64px;
	}
}

/* ------------------------------------------------------------------ Base */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header) + 16px);
}

body {
	margin: 0;
	background: var(--white);
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.25rem;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body.has-drawer {
	overflow: hidden;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 3px;
}

h1,
h2,
h3,
h4 {
	margin: 0;
	font-family: var(--sans);
	font-weight: 500;
	line-height: 1.2;
	text-wrap: balance;
}

p {
	margin: 0;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

.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;
}

.skip-link:focus {
	position: fixed !important;
	top: 8px;
	left: 8px;
	z-index: 100;
	width: auto;
	height: auto;
	padding: 12px 16px;
	margin: 0;
	clip: auto;
	background: var(--ink);
	color: var(--white);
	font: 500 0.875rem/1 var(--sans);
}

.container {
	width: min(100% - 2 * var(--gutter), var(--container));
	margin-inline: auto;
}

.site-main {
	min-height: 50vh;
	padding-bottom: 96px;
}

/* ------------------------------------------------------------------ Type helpers */

.label {
	margin: 0 0 10px;
	font: 500 0.8125rem/1.3 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.label a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.byline {
	margin-top: 12px;
	font: 500 0.75rem/1.5 var(--sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.byline time {
	color: var(--muted);
	margin-left: 0.6em;
}

.byline a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ------------------------------------------------------------------ Buttons */

.button,
.wpcf7-submit,
.comment-form .submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 28px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--ink);
	color: var(--white);
	font: 500 0.875rem/1 var(--sans);
	letter-spacing: 0.14em;
	text-align: center;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s;
}

.button:hover,
.wpcf7-submit:hover,
.comment-form .submit:hover {
	background: var(--white);
	color: var(--ink);
}

.button--small {
	min-height: 28px;
	padding: 0 10px;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
}

.button--ghost {
	background: var(--white);
	color: var(--ink);
}

.button--ghost:hover {
	background: var(--ink);
	color: var(--white);
}

.button--light {
	border-color: var(--white);
	background: var(--white);
	color: #000;
}

.button--light:hover {
	background: #000;
	color: var(--white);
}

.button[disabled],
.button[disabled]:hover {
	border-color: var(--line);
	background: var(--mist);
	color: var(--muted);
	cursor: not-allowed;
}

.icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

/* ------------------------------------------------------------------ Header */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--white);
}

.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

.site-header__bar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 8px;
	height: var(--header);
	padding: 0 calc(var(--gutter) - 8px) 0 var(--gutter);
	border-bottom: 1px solid var(--line);
}

.logo {
	order: -1;
	min-width: 0;
	margin: 0;
	font-family: var(--didone);
	font-size: clamp(1rem, 4.6vw, 1.375rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	white-space: nowrap;
}

.site-header__end {
	display: flex;
	align-items: center;
}

.site-header__end .icon-button {
	display: none;
}

.menu-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 40px;
	padding: 0 8px;
	border: 0;
	background: none;
	font: 500 0.875rem/1 var(--sans);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

.menu-button__text {
	display: none;
}

@media (max-width: 359px) {
	.site-header__start .button {
		padding: 0 6px;
		font-size: 0.6875rem;
		letter-spacing: 0.04em;
	}
}

@media (min-width: 640px) {
	.site-header__end .icon-button {
		display: inline-flex;
	}
}

@media (min-width: 1024px) {
	.site-header__bar {
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		padding: 0 16px;
	}

	.logo {
		order: 0;
		font-size: 2.125rem;
	}

	.site-header__start {
		justify-self: start;
	}

	.site-header__end {
		justify-self: end;
		gap: 4px;
	}

	.menu-button__text {
		display: inline;
	}
}

.primary-nav {
	display: none;
	border-bottom: 1px solid var(--line);
}

@media (min-width: 1200px) {
	.primary-nav {
		display: block;
	}
}

.primary-nav__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 20px;
	margin: 0;
	padding: 0 16px;
	list-style: none;
}

@media (min-width: 1360px) {
	.primary-nav__list {
		gap: 0 26px;
	}
}

.primary-nav a {
	display: block;
	padding: 14px 0 11px;
	border-bottom: 3px solid transparent;
	font: 500 0.8125rem/1 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.primary-nav a:hover,
.primary-nav .current-menu-item > a,
.primary-nav .current-menu-ancestor > a {
	border-bottom-color: var(--ink);
}

.site-search {
	padding: 24px var(--gutter) 32px;
	border-bottom: 1px solid var(--line);
	background: var(--white);
}

.site-search .search-form {
	max-width: 760px;
	margin-inline: auto;
}

/* ------------------------------------------------------------------ Search form */

.search-form {
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--ink);
}

.search-form input[type="search"] {
	flex: 1;
	min-width: 0;
	padding: 12px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	font: 400 1.5rem/1.2 var(--sans);
	-webkit-appearance: none;
	appearance: none;
}

.search-form input[type="search"]:focus {
	outline: none;
}

.search-form input::placeholder {
	color: var(--muted);
}

.search-form__submit {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.search-page__form {
	max-width: 760px;
	margin: 0 auto 56px;
}

/* ------------------------------------------------------------------ Drawer (menu) */

.drawer {
	position: fixed;
	inset: 0;
	z-index: 60;
	background: rgba(0, 0, 0, 0.45);
}

.drawer[hidden] {
	display: none;
}

.drawer__panel {
	width: min(100%, 420px);
	height: 100%;
	overflow-y: auto;
	padding: 0 24px 40px;
	background: var(--white);
}

.drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--header);
	margin-bottom: 16px;
	border-bottom: 1px solid var(--line);
}

.logo--small {
	order: 0;
	font-size: 1.25rem;
}

.drawer .search-form input[type="search"] {
	font-size: 1.125rem;
}

.drawer__nav ul {
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.drawer__nav a {
	display: block;
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
	font: 500 0.9375rem/1.2 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.drawer__nav--secondary a {
	padding: 10px 0;
	border: 0;
	color: var(--muted);
	font-size: 0.8125rem;
}

.drawer__actions {
	display: grid;
	gap: 12px;
	margin-top: 32px;
}

.drawer__tagline {
	margin-top: 32px;
	color: var(--muted);
	font-style: italic;
	text-align: center;
}

/* ------------------------------------------------------------------ Section headings */

.section {
	margin-top: 72px;
}

.section-head {
	position: relative;
	margin-bottom: 32px;
	padding: 14px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	text-align: center;
}

.section-title {
	font: 400 1.25rem/1.2 var(--sans);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.section-title a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.section-more {
	display: inline-block;
	margin-top: 8px;
	font: 500 0.75rem/1.2 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.section-more:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.section-head .section-more {
	display: block;
}

@media (min-width: 1024px) {
	.section-title {
		font-size: 1.375rem;
	}

	.section-head .section-more {
		position: absolute;
		top: 50%;
		right: 0;
		margin: 0;
		transform: translateY(-50%);
	}
}

.page-head {
	padding: 48px 0 40px;
	text-align: center;
}

.page-head__kicker {
	margin-bottom: 14px;
	font: 500 0.8125rem/1.3 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.page-head__title {
	font-family: var(--didone);
	font-size: clamp(2.5rem, 7vw, 4.5rem);
	font-weight: 400;
	line-height: 1.05;
	overflow-wrap: anywhere;
}

.page-head__desc {
	max-width: 640px;
	margin: 20px auto 0;
	color: var(--muted);
	font: 400 1.0625rem/1.55 var(--sans);
}

.page-head__desc a {
	color: var(--ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.page-head__links {
	display: flex;
	justify-content: center;
	gap: 24px;
	margin-top: 20px;
	font: 500 0.8125rem/1 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.page-head--profile .avatar {
	width: 128px;
	height: 128px;
	margin: 0 auto 24px;
	object-fit: cover;
}

.subnav {
	display: flex;
	justify-content: center;
	gap: 32px;
	margin-bottom: 48px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.subnav a {
	padding: 14px 0 11px;
	border-bottom: 3px solid transparent;
	font: 500 0.8125rem/1 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.subnav a[aria-current="page"],
.subnav a:hover {
	border-bottom-color: var(--ink);
}

/* ------------------------------------------------------------------ Cards */

.card {
	min-width: 0;
}

.card__media {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--mist);
}

.card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--line);
	font: 400 4rem/1 var(--didone);
}

.card__body {
	padding-top: 18px;
}

.card__title {
	font: 500 1.1875rem/1.3 var(--sans);
	overflow-wrap: break-word;
	hyphens: auto;
}

.card__title a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.card--hero .card__media {
	aspect-ratio: 4 / 5;
}

.card--hero .card__body,
.card--tile .card__body {
	text-align: center;
}

.card--hero .card__body {
	padding-top: 22px;
}

.card--hero .card__title {
	font-size: clamp(1.625rem, 2.6vw, 2.25rem);
	line-height: 1.18;
}

.card--tile .card__media {
	aspect-ratio: 1;
}

.card--list {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 96px;
	gap: 20px;
	align-items: start;
}

.card--list .card__media {
	order: 2;
	aspect-ratio: 3 / 4;
}

.card--list .card__body {
	padding-top: 0;
}

.card--list .card__title {
	font-size: 1.0625rem;
}

.card--list .byline time,
.card--row .byline time {
	display: block;
	margin: 4px 0 0;
}

.card--row {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}

.card--row .card__media {
	aspect-ratio: 1;
}

.card--row .card__body {
	padding-top: 0;
}

.card--row .card__title {
	font-size: 1.0625rem;
}

@media (min-width: 640px) {
	.card--row {
		grid-template-columns: 140px minmax(0, 1fr);
		gap: 28px;
	}
}

.card--past .card__media img {
	filter: grayscale(1);
	opacity: 0.7;
}

/* ------------------------------------------------------------------ Grids */

.grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px 32px;
}

@media (min-width: 640px) {
	.grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.grid--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Sections with a few cards: incomplete rows are centered. */

.grid--center {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.grid--center > * {
	flex: 0 0 100%;
}

@media (min-width: 640px) {
	.grid--center > * {
		flex-basis: calc((100% - 32px) / 2);
	}
}

@media (min-width: 1024px) {
	.grid--3.grid--center > * {
		flex-basis: calc((100% - 64px) / 3);
	}

	.grid--4.grid--center > * {
		flex-basis: calc((100% - 96px) / 4);
	}
}

.row-list {
	display: grid;
	gap: 32px;
}

@media (min-width: 1024px) {
	.row-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.row-list--stacked {
	max-width: 860px;
	margin-inline: auto;
	gap: 0;
}

.row-list--stacked > .card {
	padding: 28px 0;
	border-bottom: 1px solid var(--line);
}

.row-list--stacked > .card:first-child {
	border-top: 1px solid var(--line);
}

@media (min-width: 1024px) {
	.row-list--stacked {
		grid-template-columns: minmax(0, 1fr);
	}

	.row-list--stacked .card--row {
		grid-template-columns: 200px minmax(0, 1fr);
		gap: 32px;
	}

	.row-list--stacked .card__title {
		font-size: 1.375rem;
	}
}

.more-link {
	margin-top: 56px;
	text-align: center;
}

/* Home: lead stories in three columns (tiles · lead · list). */

.lead-grid {
	display: grid;
	gap: 48px 32px;
	padding-top: 40px;
}

.lead-grid__tiles,
.lead-grid__list {
	display: grid;
	gap: 40px 32px;
	align-content: start;
}

.lead-grid__list {
	gap: 28px;
}

.lead-grid__list .card + .card {
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

@media (min-width: 640px) {
	.lead-grid__tiles,
	.lead-grid__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lead-grid__list .card + .card {
		padding-top: 0;
		border-top: 0;
	}
}

@media (min-width: 1024px) {
	.lead-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2.1fr) minmax(0, 1.05fr);
		grid-template-areas: "tiles main list";
		align-items: start;
	}

	.lead-grid:not(.has-tiles) {
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
		grid-template-areas: "main list";
	}

	.lead-grid:not(.has-list) {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		grid-template-areas: "tiles main";
	}

	.lead-grid:not(.has-tiles):not(.has-list) {
		grid-template-columns: minmax(0, 720px);
		grid-template-areas: "main";
		justify-content: center;
	}

	.lead-grid__main {
		grid-area: main;
	}

	.lead-grid__tiles {
		grid-area: tiles;
		grid-template-columns: minmax(0, 1fr);
		gap: 56px;
	}

	.lead-grid__list {
		grid-area: list;
		grid-template-columns: minmax(0, 1fr);
	}

	.lead-grid__list .card + .card {
		padding-top: 0;
		border-top: 0;
	}
}

/* Rubric page: lead story in portrait with tiles on both sides. */

.feature-grid {
	display: grid;
	gap: 48px 32px;
}

.feature-grid:not(.has-tiles) .feature-grid__main {
	width: 100%;
	max-width: 720px;
	margin-inline: auto;
}

@media (min-width: 640px) {
	.feature-grid.has-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.feature-grid.has-tiles .feature-grid__main {
		grid-column: 1 / -1;
		grid-row: 1;
	}
}

@media (min-width: 1024px) {
	.feature-grid.has-tiles {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2.1fr) minmax(0, 1fr);
		grid-auto-flow: dense;
		align-items: start;
	}

	.feature-grid.has-tiles .feature-grid__main {
		grid-column: 2;
		grid-row: 1 / span 2;
	}

	.feature-grid__tile--start {
		grid-column: 1;
	}

	.feature-grid__tile--end {
		grid-column: 3;
	}
}

@media (max-width: 639px) {
	.feature-grid__main {
		order: -1;
	}
}

/* ------------------------------------------------------------------ Promo and bands */

.promo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px 32px;
	margin-top: 64px;
	padding: 22px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	text-align: center;
}

.promo__text {
	font: 400 1.25rem/1.3 var(--sans);
}

.band {
	margin-top: 72px;
	padding: 1px 0 64px;
	background: var(--mist);
}

.band .section {
	margin-top: 0;
}

.band .section-head {
	margin-top: 40px;
	border-color: #d9d7d2;
}

.empty-state {
	padding: 64px 0;
	color: var(--muted);
	font-family: var(--sans);
	text-align: center;
}

.empty-state h2 {
	margin-bottom: 12px;
	color: var(--ink);
	font-size: 1.75rem;
}

/* ------------------------------------------------------------------ Article */

.article-header {
	max-width: 980px;
	margin: 0 auto;
	padding: 48px var(--gutter) 40px;
	text-align: center;
}

.article-title {
	margin: 4px 0 0;
	font-size: clamp(1.875rem, 4.2vw, 2.875rem);
	font-weight: 500;
	line-height: 1.16;
	letter-spacing: -0.005em;
	overflow-wrap: break-word;
	hyphens: manual;
}

.article-lead {
	max-width: 720px;
	margin: 20px auto 0;
	font-size: clamp(1.1875rem, 2vw, 1.4375rem);
	line-height: 1.45;
}

.article-header .byline {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-top: 24px;
}

.article-header .byline time {
	margin: 0;
	color: var(--ink);
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.article-meta,
.article-updated {
	margin-top: 4px;
	color: var(--muted);
	font: 400 0.875rem/1.4 var(--sans);
}

.status-badge {
	display: inline-block;
	margin-top: 16px;
	padding: 6px 12px;
	border: 1px solid var(--ink);
	font: 500 0.75rem/1 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.article-cover {
	margin: 0;
}

.article-cover img {
	width: 100%;
	max-height: 88vh;
	object-fit: cover;
}

.article-cover figcaption {
	width: min(100% - 2 * var(--gutter), var(--container));
	margin: 10px auto 0;
	color: var(--muted);
	font: 400 0.8125rem/1.4 var(--sans);
}

.entry-content {
	max-width: calc(680px + 2 * var(--gutter));
	margin: 48px auto 0;
	padding: 0 var(--gutter);
	font-size: 1.1875rem;
	line-height: 1.55;
}

@media (min-width: 640px) {
	.entry-content {
		font-size: 1.25rem;
	}
}

.entry-content > * + * {
	margin-top: 1.1em;
}

.entry-content a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.entry-content h2 {
	margin-top: 2em;
	font-size: 1.625rem;
	line-height: 1.25;
}

.entry-content h3 {
	margin-top: 1.8em;
	font-size: 1.3125rem;
}

.entry-content h2 + *,
.entry-content h3 + * {
	margin-top: 0.6em;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.3em;
}

.entry-content li + li {
	margin-top: 0.4em;
}

.entry-content blockquote,
.entry-content .wp-block-quote {
	margin: 2em 0;
	padding: 32px 0;
	border-top: 1px solid var(--ink);
	border-bottom: 1px solid var(--ink);
	font-family: var(--didone);
	font-size: clamp(1.375rem, 2.6vw, 1.75rem);
	line-height: 1.35;
	text-align: center;
}

.entry-content blockquote p + p {
	margin-top: 0.6em;
}

.entry-content blockquote cite {
	display: block;
	margin-top: 18px;
	font: 500 0.75rem/1.4 var(--sans);
	font-style: normal;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.entry-content hr {
	width: 80px;
	margin: 2.4em auto;
	border: 0;
	border-top: 1px solid var(--ink);
}

.entry-content figure {
	margin: 2em 0;
}

.entry-content figure img {
	width: 100%;
}

.entry-content figcaption,
.wp-element-caption {
	margin-top: 10px;
	color: var(--muted);
	font: 400 0.8125rem/1.4 var(--sans);
	text-align: left;
}

.photo-credit {
	color: var(--muted);
}

.entry-content .alignwide {
	width: min(1040px, 100vw - 2 * var(--gutter));
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

.entry-content .alignfull {
	width: 100vw;
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

.entry-content .has-drop-cap:not(:focus)::first-letter {
	float: left;
	margin: 0.08em 0.1em 0 0;
	font-family: var(--didone);
	font-size: 4.6em;
	line-height: 0.8;
}

.entry-content .wp-block-embed {
	margin: 2em 0;
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	font: 400 1rem/1.4 var(--sans);
}

.entry-content th,
.entry-content td {
	padding: 10px 8px;
	border-bottom: 1px solid var(--line);
	text-align: left;
}

.article-footer {
	max-width: calc(680px + 2 * var(--gutter));
	margin: 48px auto 0;
	padding: 0 var(--gutter);
}

.note {
	margin-bottom: 24px;
	color: var(--muted);
	font: italic 400 1.0625rem/1.5 var(--serif);
}

.tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 24px;
}

.tags a {
	padding: 6px 12px;
	border: 1px solid var(--line);
	font: 500 0.75rem/1 var(--sans);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.tags a:hover {
	border-color: var(--ink);
}

.share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 24px;
	padding: 18px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	font: 500 0.75rem/1.2 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.share__label {
	color: var(--muted);
}

.share a:hover,
.share button:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.share button {
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	cursor: pointer;
}

.author-box {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 24px;
	margin-top: 32px;
	font: 400 0.875rem/1.55 var(--sans);
}

.author-box .avatar {
	width: 90px;
	height: 90px;
	object-fit: cover;
}

.author-box__name {
	font-weight: 500;
	font-size: 1rem;
}

.author-box__name a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.author-box__bio {
	margin-top: 6px;
}

.author-box__position {
	margin-top: 10px;
	color: var(--muted);
}

.author-box__more {
	margin-top: 10px;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.author-box__more a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Event details strip under the event title. */

.event-details {
	display: grid;
	gap: 20px 40px;
	width: min(100% - 2 * var(--gutter), 980px);
	margin: 0 auto 40px;
	padding: 24px 0;
	border-top: 1px solid var(--ink);
	border-bottom: 1px solid var(--ink);
	font-family: var(--sans);
}

@media (min-width: 640px) {
	.event-details {
		grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
		align-items: start;
	}

	.event-details__action {
		align-self: center;
	}
}

.event-details dt {
	margin-bottom: 6px;
	color: var(--muted);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.event-details dd {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.4;
}

.event-details__address {
	display: block;
	color: var(--muted);
	font-size: 0.9375rem;
}

.event-details__action {
	text-align: right;
}

@media (max-width: 639px) {
	.event-details__action {
		text-align: left;
	}
}

.related {
	margin-top: 72px;
}

/* ------------------------------------------------------------------ Static pages */

.article--page .page-head {
	padding-bottom: 8px;
}

.article--page .entry-content {
	margin-top: 32px;
}

/* ------------------------------------------------------------------ Forms (Contact Form 7) */

.wpcf7 {
	margin-top: 2em;
	font-family: var(--sans);
}

.wpcf7 form > p {
	margin-top: 22px;
}

.wpcf7 label {
	display: block;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 12px 14px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--white);
	font: 400 1.0625rem/1.4 var(--sans);
	letter-spacing: 0;
	text-transform: none;
}

.wpcf7 textarea {
	height: 180px;
	resize: vertical;
}

.wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.wpcf7-acceptance label {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.45;
	text-transform: none;
}

.wpcf7-acceptance input {
	width: 18px;
	height: 18px;
	margin-top: 1px;
	accent-color: var(--ink);
}

.wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #a1121f;
	font-size: 0.875rem;
	letter-spacing: 0;
	text-transform: none;
}

.wpcf7 form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 14px 16px;
	border: 1px solid var(--ink);
	font-size: 0.9375rem;
}

.wpcf7-spinner {
	vertical-align: middle;
}

/* ------------------------------------------------------------------ Subscription (after snob.ru/pass) */

.subscribe__hero {
	padding: 56px 0 8px;
	text-align: center;
}

.subscribe__title {
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	font-weight: 500;
	line-height: 1.1;
}

.subscribe__content {
	max-width: 820px;
	margin: 0 auto;
	text-align: center;
}

.subscribe__content > p:first-child {
	margin-top: 16px;
	font: 400 clamp(1.125rem, 2vw, 1.375rem)/1.45 var(--sans);
}

.subscription {
	margin-top: 40px;
	font-family: var(--sans);
}

.notice {
	margin: 0 auto 24px;
	padding: 14px 18px;
	border: 1px solid var(--ink);
	font-size: 0.9375rem;
	text-align: left;
}

.notice--success {
	border-left-width: 4px;
}

.notice--error {
	border-color: #a1121f;
	color: #a1121f;
}

.subscription__status,
.subscription__stub {
	margin: 0 auto 32px;
	padding: 24px;
	background: var(--mist);
	text-align: center;
}

.subscription__status p + p,
.subscription__stub p + p {
	margin-top: 12px;
}

.subscription__stub .button + .button {
	margin-left: 8px;
}

.plans__tabs {
	display: inline-flex;
	margin-bottom: 28px;
	border: 1px solid var(--ink);
}

.plans:not(.is-tabbed) .plans__tabs {
	display: none;
}

.plans__tabs [role="tab"] {
	min-height: 56px;
	padding: 0 28px;
	border: 0;
	background: var(--white);
	font: 500 0.875rem/1.2 var(--sans);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

.plans__tabs [role="tab"] + [role="tab"] {
	border-left: 1px solid var(--ink);
}

.plans__tabs [aria-selected="true"] {
	background: var(--ink);
	color: var(--white);
}

.plan + .plan {
	margin-top: 48px;
}

.plans.is-tabbed .plan + .plan {
	margin-top: 0;
}

.plan__description {
	max-width: 640px;
	margin: 0 auto 32px;
	font: 400 1.25rem/1.5 var(--serif);
}

.plan__card {
	max-width: 400px;
	margin: 0 auto;
	padding: 36px 32px 32px;
	border: 1px solid var(--line);
	text-align: left;
}

.plan__title {
	font-size: 1.375rem;
	font-weight: 500;
}

.plan__period {
	margin-top: 6px;
	color: var(--muted);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.plan__price {
	margin-top: 20px;
	font: 400 2rem/1.1 var(--didone);
}

.plan__features {
	margin: 24px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
	font-size: 0.9375rem;
	line-height: 1.45;
}

.plan__features li {
	position: relative;
	padding-left: 22px;
}

.plan__features li + li {
	margin-top: 10px;
}

.plan__features li::before {
	content: "—";
	position: absolute;
	left: 0;
}

.plan__action {
	margin-top: 28px;
}

.plan__action .button,
.plan__action form .button {
	width: 100%;
}

.plan__note {
	margin-top: 12px;
	color: var(--muted);
	font-size: 0.875rem;
	text-align: center;
}

.plan__note a {
	color: var(--ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.subscribe__more {
	margin: 48px 0 0;
	text-align: center;
}

.subscribe__more a {
	font: 500 0.8125rem/1 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.subscribe__more a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.feature {
	margin-top: 72px;
	padding: 56px 0 64px;
	border-top: 1px solid var(--ink);
}

.feature + .feature {
	margin-top: 0;
	background: var(--mist);
	border-top: 0;
}

.feature__head {
	display: grid;
	gap: 16px 32px;
	margin-bottom: 40px;
}

@media (min-width: 1024px) {
	.feature__head {
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: start;
	}

	.feature__head .section-more {
		align-self: end;
	}
}

.feature__number {
	font: 400 4.5rem/0.8 var(--didone);
	color: var(--muted);
}

.feature__title {
	font-size: clamp(1.75rem, 3vw, 2.25rem);
}

.feature__text {
	max-width: 640px;
	margin-top: 12px;
	font-size: 1.1875rem;
	line-height: 1.5;
}

.faq {
	margin-top: 72px;
}

.faq__list {
	max-width: 860px;
	margin: 0 auto;
}

.faq__item {
	border-bottom: 1px solid var(--line);
}

.faq__item summary {
	position: relative;
	padding: 22px 40px 22px 0;
	font: 500 1.1875rem/1.35 var(--sans);
	list-style: none;
	cursor: pointer;
}

.faq__item summary::-webkit-details-marker {
	display: none;
}

.faq__item summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 4px;
	font: 300 1.75rem/1 var(--sans);
	transform: translateY(-50%);
}

.faq__item[open] summary::after {
	content: "−";
}

.faq__item p {
	padding-bottom: 24px;
	font-size: 1.1875rem;
	line-height: 1.55;
}

.faq__more {
	margin-top: 28px;
	font: 400 1rem/1.5 var(--sans);
	text-align: center;
}

.faq__more a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.subscribe__cta {
	margin-top: 40px;
	text-align: center;
}

/* ------------------------------------------------------------------ Pagination and comments */

.pagination {
	margin-top: 64px;
	font: 500 0.8125rem/1 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--line);
}

.pagination .page-numbers.current,
.pagination a.page-numbers:hover {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--white);
}

.comments {
	max-width: calc(680px + 2 * var(--gutter));
	margin: 56px auto 0;
	padding: 0 var(--gutter);
	font-family: var(--sans);
}

.comments__title {
	margin-bottom: 24px;
	font-size: 1.375rem;
}

.comments__list {
	padding: 0;
	list-style: none;
}

.comments__list .comment {
	padding: 20px 0;
	border-top: 1px solid var(--line);
}

.comment-form textarea {
	height: 160px;
}

/* ------------------------------------------------------------------ Footer */

.site-footer {
	padding: 64px 0 40px;
	background: #000;
	color: var(--white);
	font-family: var(--sans);
}

.site-footer__grid {
	display: grid;
	gap: 40px 32px;
}

@media (min-width: 640px) {
	.site-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.site-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (min-width: 1024px) {
	.site-footer__grid {
		grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
	}

	.site-footer__brand {
		grid-column: auto;
	}
}

.logo--footer {
	order: 0;
	font-size: 1.75rem;
	white-space: normal;
}

.site-footer__about {
	max-width: 420px;
	margin: 16px 0 24px;
	color: #c9c9c9;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.site-footer__title {
	margin-bottom: 18px;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.footer-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-menu li + li {
	margin-top: 14px;
}

.footer-menu a {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.footer-menu a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.site-footer__legal {
	margin-top: 56px;
	padding-top: 28px;
	border-top: 1px solid #333;
	color: #9a9a9a;
	font-size: 0.8125rem;
	line-height: 1.5;
}

.site-footer__legal p + p {
	margin-top: 6px;
}

/* ------------------------------------------------------------------ Motion */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* ------------------------------------------------------------------ Account */

/* «Личный кабинет»: one narrow column of sections between hairlines, labels in spaced
   capitals, square black buttons; the sign-in form after the Condé Nast sign-in page. */

.account {
	max-width: 560px;
	margin: 0 auto;
	font-family: var(--sans);
	font-size: 1rem;
}

.account .account__hello {
	font: 500 1.25rem/1.3 var(--sans);
	text-align: center;
}

.account__hello span {
	display: block;
	margin-top: 6px;
	color: var(--muted);
	font-size: 0.9375rem;
	font-weight: 400;
}

.account .account__section {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--line);
}

.account .account__heading {
	margin: 0;
	font: 500 0.8125rem/1.3 var(--sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.account .account__lead {
	margin-top: 14px;
	font-size: 1.0625rem;
	line-height: 1.5;
}

.account .account__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 20px;
}

.account .button {
	text-decoration: none;
}

.account .account__list {
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

.account .account__list li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4px 16px;
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
}

.account .account__list:last-child li:last-child {
	border-bottom: 0;
}

.account__meta {
	color: var(--muted);
	font-size: 0.875rem;
}

.account--guest #loginform p {
	margin-top: 20px;
}

.account--guest #loginform label {
	display: block;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.account--guest #loginform .input {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 12px 14px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--white);
	font: 400 1.0625rem/1.4 var(--sans);
}

.account--guest #loginform .login-remember label {
	display: flex;
	gap: 10px;
	align-items: center;
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.account--guest #loginform .login-remember input {
	width: 18px;
	height: 18px;
	accent-color: var(--ink);
}

.account--guest #loginform .button {
	width: 100%;
}

.account .account__links,
.account .account__note {
	margin-top: 20px;
	font-size: 0.9375rem;
	text-align: center;
}

.account__links a + a {
	margin-left: 20px;
}

.account .account__note {
	color: var(--muted);
}

.account__note a {
	color: var(--ink);
}
