/* =========================================================
   International Festival Ballet — main stylesheet
   Palette: navy / gold / cream  ·  Type: Cormorant Garamond + Jost
   ========================================================= */

:root {
	--navy:        #0d1b2c;
	--navy-2:      #14243a;
	--navy-3:      #1b2f4a;
	--gold:        #c0912f;
	--gold-light:  #d8b25e;
	--gold-pale:   #e9d9b4;
	--cream:       #f6f2ea;
	--white:       #ffffff;
	--ink:         #1f2733;
	--ink-soft:    #5a6472;
	--line:        #e3dccd;
	--line-navy:   rgba(255, 255, 255, 0.12);

	--font-serif:  'Cormorant Garamond', Georgia, serif;
	--font-sans:   'Jost', 'Helvetica Neue', Arial, sans-serif;

	--container:   1200px;
	--radius:      2px;
	--shadow:      0 10px 30px rgba(13, 27, 44, 0.10);
	--transition:  0.25s ease;
}

/* ---------- Reset / base ---------- */

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

body {
	margin: 0;
	font-family: var(--font-sans);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.6;
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, blockquote, p { margin: 0; }

.container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

/* ---------- Sections ---------- */

/* padding-block, а не сокращённая запись: на элементах вида
   class="container section" короткая форма обнуляла боковые отступы
   контейнера, и текст прилипал к краям экрана. */
.section { padding-block: 72px; }
.section--cream { background: var(--cream); }
.section--navy { background: var(--navy); color: var(--white); }

.section__title {
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(26px, 3.2vw, 34px);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
	color: var(--navy);
	margin-bottom: 44px;
	position: relative;
	padding-bottom: 18px;
}
.section__title::after {
	content: '';
	position: absolute;
	left: 50%; bottom: 0;
	transform: translateX(-50%);
	width: 56px; height: 2px;
	background: var(--gold);
}
.section__title--light { color: var(--white); }

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

.btn {
	display: inline-block;
	padding: 13px 30px;
	font-family: var(--font-sans);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border: 1px solid transparent;
	border-radius: var(--radius);
	cursor: pointer;
	transition: background var(--transition), color var(--transition), border-color var(--transition);
	text-align: center;
}
.btn--gold { background: var(--gold); color: var(--white); }
.btn--gold:hover { background: var(--gold-light); }
.btn--navy { background: var(--navy); color: var(--white); }
.btn--navy:hover { background: var(--navy-3); }
.btn--outline { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.6); }
.btn--outline:hover { border-color: var(--white); background: rgba(255,255,255,0.08); }
.btn--outline-navy { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn--outline-navy:hover { background: var(--navy); color: var(--white); }

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

.site-header {
	background: var(--navy);
	color: var(--white);
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--line-navy);
}
.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 64px;
}
/* С крупным логотипом шапке нужен воздух сверху и снизу */
.site-header--has-logo .site-header__inner {
	min-height: 108px;
	padding: 12px 0;
}

.logo {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--white);
}
.logo__mark { width: 30px; height: 36px; color: var(--gold-pale); flex: none; }

/* Загруженный логотип */
.logo__image {
	height: 80px;
	width: auto;
	max-width: 260px;
	object-fit: contain;
	display: block;
}
.logo--footer .logo__image { height: 145px; }
.logo__text {
	font-family: var(--font-serif);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1.25;
}

/* Меню: Home / Team / About Us / 3 страны / More (выпадашка). */
.nav__list {
	display: flex;
	align-items: center;
	gap: 24px;
}
.nav__list a,
.nav__more-toggle {
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	transition: color var(--transition);
	padding: 6px 0;
	white-space: nowrap;
}

/* Пункт More с выпадающим меню */
.nav__item-more { position: relative; }
.nav__more-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: transparent;
	border: none;
	cursor: pointer;
	font-family: var(--font-sans);
}
.nav__more-toggle:hover,
.nav__item-more.current-menu-item > .nav__more-toggle { color: var(--gold-light); }
.nav__more-caret {
	width: 8px; height: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translate(-1px, -1px);
	transition: transform var(--transition);
}
.nav__item-more.is-open .nav__more-caret { transform: rotate(-135deg) translate(-2px, -2px); }

.nav__submenu {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	min-width: 210px;
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 8px 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
	z-index: 120;
}
.nav__item-more.is-open .nav__submenu,
.nav__item-more:hover .nav__submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.nav__submenu::before { /* мостик, чтобы курсор не терял меню */
	content: '';
	position: absolute;
	top: -10px; left: 0; right: 0;
	height: 10px;
}
.nav__submenu li { display: block; }
.nav__submenu a {
	display: block;
	padding: 10px 20px;
	color: var(--navy);
	letter-spacing: 0.12em;
	font-size: 12px;
}
.nav__submenu a:hover,
.nav__submenu .current-menu-item > a { color: var(--gold); background: var(--cream); }
.nav__list a:hover,
.nav__list .current-menu-item > a { color: var(--gold-light); }

.site-header__tools { display: flex; align-items: center; gap: 16px; }

.lang-switcher { position: relative; }
.lang-switcher__btn {
	display: flex;
	align-items: center;
	gap: 7px;
	background: transparent;
	color: var(--white);
	border: 1px solid var(--line-navy);
	border-radius: var(--radius);
	padding: 7px 12px;
	font-family: var(--font-sans);
	font-size: 12px;
	letter-spacing: 0.1em;
	cursor: pointer;
}
.lang-switcher__list {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	min-width: 120px;
	background: var(--navy-2);
	border: 1px solid var(--line-navy);
	border-radius: var(--radius);
	padding: 6px 0;
	z-index: 50;
}
.lang-switcher__list a {
	display: block;
	padding: 7px 14px;
	font-size: 12px;
	letter-spacing: 0.1em;
	color: rgba(255,255,255,0.85);
}
.lang-switcher__list a:hover { color: var(--gold-light); background: rgba(255,255,255,0.04); }

.burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 40px; height: 40px;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 8px;
}
.burger span {
	display: block;
	height: 2px;
	background: var(--white);
	transition: transform var(--transition), opacity var(--transition);
}
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Hero ---------- */

.hero {
	position: relative;
	background:
		linear-gradient(100deg, rgba(9, 18, 31, 0.92) 0%, rgba(9, 18, 31, 0.55) 55%, rgba(9, 18, 31, 0.25) 100%),
		var(--hero-bg, none) center / cover no-repeat,
		var(--navy);
	color: var(--white);
	padding: 120px 0 130px;
}
/* Видео-фон: слой под затемнением, контент всегда сверху */
.hero__video {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 0;
	opacity: 0;
	transition: opacity 0.8s ease;
	pointer-events: none;
}
.hero__video.is-playing { opacity: 1; }
.hero__video iframe {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 100vw;
	height: 56.25vw;          /* 16:9 по ширине */
	min-height: 100%;
	min-width: 177.78vh;      /* 16:9 по высоте — кадр всегда закрывает блок */
	border: 0;
	pointer-events: none;
}
.hero--has-video::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(100deg, rgba(9, 18, 31, 0.92) 0%, rgba(9, 18, 31, 0.55) 55%, rgba(9, 18, 31, 0.25) 100%);
}
.hero__inner { position: relative; z-index: 2; }

.hero__content { max-width: 640px; }
.hero__title {
	font-family: var(--font-serif);
	font-weight: 500;
	/* Нижняя граница считается от ширины экрана: слово INTERNATIONAL
	   длинное, и на узких телефонах фиксированные 40px не помещались. */
	font-size: clamp(28px, 8.2vw, 68px);
	line-height: 1.08;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	overflow-wrap: break-word;
	hyphens: auto;
}
.hero__subtitle {
	margin-top: 22px;
	font-family: var(--font-serif);
	font-size: clamp(18px, 2.2vw, 24px);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold-light);
	line-height: 1.4;
}
.hero__ballets {
	margin-top: 20px;
	font-size: 13px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.9);
}
.hero__actions {
	margin-top: 36px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

/* ---------- Find your show ---------- */

.find-show { padding: 56px 0 64px; }
.find-show .section__title { margin-bottom: 32px; }

.find-show__form {
	display: grid;
	grid-template-columns: repeat(4, 1fr) auto;
	gap: 14px;
	align-items: end;
}
.find-show__field {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 10px 14px 8px;
}
.find-show__field label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-soft);
}
.find-show__field label svg { color: var(--gold); flex: none; }
.find-show__field select,
.find-show__field input {
	width: 100%;
	border: none;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink);
	padding: 6px 0 2px;
	outline: none;
}
.find-show__submit { height: 56px; padding-inline: 34px; }

/* ---------- Upcoming carousel ---------- */

.carousel {
	position: relative;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 24px;
}
.carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 48px) / 3);
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	scroll-behavior: smooth;
}
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__track > * { scroll-snap-align: start; }

.carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px; height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--navy);
	cursor: pointer;
	z-index: 5;
	box-shadow: var(--shadow);
	transition: background var(--transition), color var(--transition);
}
.carousel__arrow:hover { background: var(--navy); color: var(--white); }
.carousel__arrow--prev { left: -22px; }
.carousel__arrow--next { right: -22px; }

.upcoming__more { text-align: center; margin-top: 28px; }
.upcoming__empty { text-align: center; color: var(--ink-soft); padding: 32px 0; }

/* ---------- Show card ---------- */

.show-card {
	display: flex;
	flex-direction: column;
	background: var(--white);
	min-width: 0;
}
.show-card__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--navy-2);
}
.show-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.show-card:hover .show-card__media img { transform: scale(1.05); }

.show-card__placeholder {
	display: block;
	width: 100%; height: 100%;
	background:
		radial-gradient(circle at 30% 40%, rgba(216, 178, 94, 0.25), transparent 60%),
		linear-gradient(135deg, var(--navy-2), var(--navy-3));
}

.show-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding: 18px 4px 6px;
}
.show-card__city {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}
.show-card__title {
	font-family: var(--font-serif);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--navy);
}
.show-card__meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 13px;
	color: var(--ink-soft);
}
.show-card__date::before,
.show-card__venue::before {
	content: '';
	display: inline-block;
	width: 13px; height: 13px;
	margin-right: 8px;
	vertical-align: -2px;
	background-color: var(--gold);
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}
.show-card__date { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='1' y='2.5' width='12' height='10.5' rx='1' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M1 6h12M4.5 1v3M9.5 1v3' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E"); }
.show-card__venue { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 1a5 5 0 0 0-5 5c0 3.8 5 9 5 9s5-5.2 5-9a5 5 0 0 0-5-5Zm0 7A2 2 0 1 1 6 4a2 2 0 0 1 0 4Z' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E"); }

.show-card__cta { margin-top: 10px; padding: 10px 22px; font-size: 12px; }

/* ---------- Ballet programs ---------- */

.ballets__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.ballet-card { display: block; text-align: center; }
.ballet-card__media {
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border: 1px solid var(--line-navy);
	background: var(--navy-2);
}
.ballet-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.ballet-card:hover .ballet-card__media img { transform: scale(1.06); }
.ballet-card__title {
	margin-top: 18px;
	font-family: var(--font-serif);
	font-size: 21px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--white);
}
.ballet-card__text {
	margin-top: 8px;
	font-size: 13px;
	color: rgba(255,255,255,0.65);
	line-height: 1.5;
}

/* ---------- Features ---------- */

.features__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
.feature {
	text-align: center;
	padding: 0 28px;
	border-right: 1px solid var(--line);
}
.feature:last-child { border-right: none; }
.feature__icon {
	display: inline-flex;
	width: 64px; height: 64px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--gold-pale);
	border-radius: 50%;
	color: var(--gold);
	margin-bottom: 18px;
}
.feature__icon svg { width: 30px; height: 30px; }
.feature__title {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--navy);
}
.feature__text {
	margin-top: 8px;
	font-size: 13px;
	color: var(--ink-soft);
}

/* ---------- Countries grid ---------- */

.countries__grid {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 18px;
}
.country-card { text-align: center; }
.country-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--navy-2);
}
.country-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.country-card:hover .country-card__media img { transform: scale(1.08); }
.country-card__name {
	display: block;
	margin-top: 10px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--navy);
}
.countries__more { text-align: center; margin-top: 30px; }
.countries__empty { text-align: center; color: var(--ink-soft); }

/* ---------- Press quote ---------- */

.press { padding: 56px 0; }
.press__inner {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 20px;
	max-width: 820px;
}
.press__mark {
	font-family: var(--font-serif);
	font-size: 84px;
	line-height: 0.8;
	color: var(--gold);
	flex: none;
}
.press__quote p {
	font-family: var(--font-serif);
	font-size: clamp(18px, 2.4vw, 23px);
	font-weight: 500;
	font-style: italic;
	line-height: 1.5;
	color: var(--navy);
}
.press__quote cite {
	display: block;
	margin-top: 14px;
	font-family: var(--font-sans);
	font-style: normal;
	font-size: 12px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ink-soft);
}

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

.site-footer {
	background: var(--navy);
	color: rgba(255,255,255,0.75);
	padding: 60px 0 0;
}
/* Колонки задаём явно: repeat(auto-fit) нельзя сочетать с fr-колонкой —
   правило становится недействительным и футер схлопывается в один столбец. */
.site-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 0.8fr;
	gap: 36px;
	padding-bottom: 44px;
	align-items: start;
}
/* С включённым блоком рассылки колонок пять */
.site-footer__grid--newsletter {
	grid-template-columns: 1.4fr 1fr 1fr 0.8fr 1.4fr;
}
.logo--footer .logo__text { font-size: 14px; }

/* Логотип в футере крупный — приподнимаем, чтобы его верх совпал
   с линией заголовков колонок, а не висел ниже. */
.site-footer__brand { margin-top: -14px; }
.site-footer h4 {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold-light);
	margin-bottom: 16px;
}
.site-footer__menu li { margin-bottom: 9px; }
.site-footer__menu a {
	font-size: 13px;
	color: rgba(255,255,255,0.7);
	transition: color var(--transition);
}
.site-footer__menu a:hover { color: var(--gold-light); }

.site-footer__social { display: flex; gap: 12px; }
.site-footer__social a {
	display: flex;
	width: 36px; height: 36px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--line-navy);
	border-radius: 50%;
	color: rgba(255,255,255,0.8);
	transition: color var(--transition), border-color var(--transition);
}
.site-footer__social a:hover { color: var(--gold-light); border-color: var(--gold-light); }
.site-footer__social svg { width: 16px; height: 16px; }

.site-footer__newsletter p { font-size: 13px; margin-bottom: 14px; }
.newsletter-form { display: flex; gap: 0; }
.newsletter-form input {
	flex: 1;
	min-width: 0;
	background: var(--white);
	border: none;
	border-radius: var(--radius) 0 0 var(--radius);
	padding: 0 14px;
	font-family: var(--font-sans);
	font-size: 13px;
	height: 42px;
	outline: none;
}
.newsletter-form .btn {
	border-radius: 0 var(--radius) var(--radius) 0;
	padding: 0 20px;
	height: 42px;
	font-size: 11px;
}

/* Полоса партнёров над копирайтом */
.site-footer__partners {
	border-top: 1px solid var(--line-navy);
	padding: 30px 0 34px;
	text-align: center;
}
.site-footer__partners-title { margin-bottom: 18px; }

.partners {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 16px;
}
/* Белая плашка: партнёрские логотипы почти всегда тёмные,
   на navy-фоне без подложки они не читаются. */
.partners__link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 150px;
	height: 68px;
	padding: 12px 22px;
	background: var(--white);
	border-radius: var(--radius);
	opacity: 0.9;
	transition: opacity var(--transition), transform var(--transition);
}
a.partners__link:hover { opacity: 1; transform: translateY(-2px); }
.partners__link img {
	max-height: 100%;
	max-width: 180px;
	width: auto;
	object-fit: contain;
}

.site-footer__bottom {
	border-top: 1px solid var(--line-navy);
	padding: 18px 0;
	text-align: center;
}
.site-footer__bottom p { font-size: 12px; color: rgba(255,255,255,0.45); }

/* =========================================================
   Country page
   ========================================================= */

/* ---------- Page hero ---------- */

.page-hero {
	background:
		linear-gradient(95deg, rgba(9, 18, 31, 0.94) 0%, rgba(9, 18, 31, 0.6) 55%, rgba(9, 18, 31, 0.3) 100%),
		var(--hero-bg, none) center / cover no-repeat,
		var(--navy);
	color: var(--white);
	padding: 40px 0 64px;
}
.breadcrumbs {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	letter-spacing: 0.08em;
	color: rgba(255,255,255,0.6);
	margin-bottom: 28px;
}
.breadcrumbs a { color: rgba(255,255,255,0.6); transition: color var(--transition); }
.breadcrumbs a:hover { color: var(--gold-light); }
.breadcrumbs [aria-current] { color: rgba(255,255,255,0.9); }

.page-hero__title {
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: clamp(36px, 5vw, 56px);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.page-hero__intro {
	margin-top: 16px;
	max-width: 420px;
	font-size: 15px;
	line-height: 1.65;
	color: rgba(255,255,255,0.85);
}

/* ---------- Tabs ---------- */

.country-tabs { border-bottom: 1px solid var(--line); background: var(--white); }
.country-tabs__list { display: flex; gap: 8px; }
.country-tabs__tab {
	background: transparent;
	border: none;
	border-bottom: 2px solid transparent;
	padding: 16px 20px 14px;
	font-family: var(--font-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-soft);
	cursor: pointer;
	transition: color var(--transition), border-color var(--transition);
}
.country-tabs__tab:hover { color: var(--navy); }
.country-tabs__tab.is-active { color: var(--gold); border-bottom-color: var(--gold); }

/* ---------- Layout ---------- */

.country-page__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 40px;
	padding-top: 36px;
	padding-bottom: 72px;
}

.country-about { max-width: 720px; line-height: 1.7; }

/* ---------- Filters ---------- */

.country-filters {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-bottom: 24px;
}
.country-filters__actions {
	grid-column: 1 / -1;
	display: flex;
	justify-content: flex-end;
	gap: 12px;
}
.btn--ghost {
	background: var(--cream);
	color: var(--navy);
	border-color: var(--line);
}
.btn--ghost:hover { background: var(--line); }

/* ---------- Results bar ---------- */

.results-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-top: 1px solid var(--line);
	padding: 14px 2px;
}
.results-bar__count {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--navy);
}
.results-bar__sort {
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ink-soft);
	display: flex;
	align-items: center;
	gap: 8px;
}
.results-bar__sort select {
	border: none;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--navy);
	cursor: pointer;
	outline: none;
}

/* ---------- Show list rows ---------- */

.show-list { display: flex; flex-direction: column; }
.show-list.is-loading { opacity: 0.45; pointer-events: none; transition: opacity 0.2s; }

.show-row {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	padding: 16px 0;
	border-bottom: 1px solid var(--line);
}
/* Блок подстраивается под пропорции афиши: фиксированное соотношение
   резало вертикальные постеры, а contain оставлял тёмные поля по бокам.
   Высота идёт от самой картинки, ограничение — чтобы строки списка
   не разъезжались на очень вытянутых афишах. */
.show-row__media {
	overflow: hidden;
	border-radius: var(--radius);
}
.show-row__media img {
	width: 100%;
	height: auto;
	max-height: 180px;
	object-fit: contain;
	object-position: center;
}
/* Заглушка, когда картинки нет, — сохраняет привычную высоту строки. */
.show-row__media .show-card__placeholder {
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--navy-2);
	border-radius: var(--radius);
}

.show-row__date {
	display: flex;
	gap: 10px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold);
}
.show-row__time { color: var(--ink-soft); border-left: 1px solid var(--line); padding-left: 10px; }
.show-row__title {
	margin-top: 6px;
	font-family: var(--font-serif);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--navy);
}
.show-row__venue {
	margin-top: 6px;
	font-size: 13px;
	color: var(--ink-soft);
}
.show-row__venue::before {
	content: '';
	display: inline-block;
	width: 12px; height: 12px;
	margin-right: 7px;
	vertical-align: -1px;
	background-color: var(--gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 1a5 5 0 0 0-5 5c0 3.8 5 9 5 9s5-5.2 5-9a5 5 0 0 0-5-5Zm0 7A2 2 0 1 1 6 4a2 2 0 0 1 0 4Z' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 1a5 5 0 0 0-5 5c0 3.8 5 9 5 9s5-5.2 5-9a5 5 0 0 0-5-5Zm0 7A2 2 0 1 1 6 4a2 2 0 0 1 0 4Z' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.show-row__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	min-width: 150px;
}
.show-row__cta { padding: 10px 24px; font-size: 12px; width: 100%; }
.show-row__host { font-size: 11px; color: var(--ink-soft); }
.show-row__ics {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--ink-soft);
	transition: color var(--transition);
}
.show-row__ics:hover { color: var(--gold); }

/* ---------- Pagination ---------- */

.pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-top: 28px;
}
.pagination__btn {
	min-width: 36px; height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-family: var(--font-sans);
	font-size: 13px;
	color: var(--navy);
	cursor: pointer;
	transition: background var(--transition), color var(--transition);
}
.pagination__btn:hover:not(:disabled):not(.is-current) { border-color: var(--navy); }
.pagination__btn.is-current { background: var(--navy); color: var(--white); border-color: var(--navy); cursor: default; }
.pagination__btn:disabled { opacity: 0.4; cursor: default; }
.pagination__dots { color: var(--ink-soft); }

/* ---------- Sidebar ---------- */

.country-sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.sidebar-widget {
	background: var(--cream);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 22px;
}
.sidebar-widget__title {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--navy);
	margin-bottom: 16px;
}
.sidebar-widget__more {
	display: block;
	width: 100%;
	margin-top: 16px;
	padding: 10px;
	font-size: 11px;
	text-align: center;
	background: var(--white);
}
.sidebar-widget p { font-size: 13px; color: var(--ink-soft); }

.sidebar-map {
	height: 300px;
	border-radius: var(--radius);
	background: #eceae4;
	z-index: 1;
}
.ifb-marker span {
	display: block;
	width: 12px; height: 12px;
	background: var(--gold);
	border: 2px solid var(--white);
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(13, 27, 44, 0.4);
}

.popular-ballets { display: flex; flex-direction: column; }
.popular-ballets__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--line);
	cursor: pointer;
}
.popular-ballets__item:last-child { border-bottom: none; }
.popular-ballets__thumb {
	width: 56px; height: 42px;
	flex: none;
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--navy-2);
}
.popular-ballets__thumb img { width: 100%; height: 100%; object-fit: cover; }
.popular-ballets__info { display: flex; flex-direction: column; }
.popular-ballets__info strong {
	font-family: var(--font-serif);
	font-size: 15px;
	font-weight: 600;
	color: var(--navy);
}
.popular-ballets__info small { font-size: 12px; color: var(--ink-soft); }
.popular-ballets__item:hover strong { color: var(--gold); }

.sidebar-contacts { margin: 14px 0 0; }
.sidebar-contacts li { margin-bottom: 8px; font-size: 13px; }
.sidebar-contacts a { color: var(--navy); }
.sidebar-contacts a:hover { color: var(--gold); }

/* =========================================================
   About the Team — вариант 1c «Immersive dark»
   ========================================================= */

/* ---------- Fullscreen hero ---------- */

.team-hero {
	position: relative;
	min-height: 78vh;
	display: flex;
	align-items: center;
	background:
		linear-gradient(180deg, rgba(9, 18, 31, 0.55) 0%, rgba(9, 18, 31, 0.35) 45%, rgba(13, 27, 44, 0.97) 100%),
		var(--hero-bg, none) center / cover no-repeat,
		var(--navy);
	color: var(--white);
	text-align: center;
}
.team-hero__inner { width: 100%; }
.team-hero__eyebrow {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--gold-light);
}
.team-hero__title {
	margin-top: 18px;
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: clamp(42px, 7vw, 76px);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.05;
}
.team-hero__divider {
	display: block;
	width: 64px; height: 2px;
	margin: 26px auto 0;
	background: var(--gold);
}
.team-hero__subtitle {
	margin: 22px auto 0;
	max-width: 480px;
	font-size: 15px;
	line-height: 1.6;
	color: rgba(255,255,255,0.85);
}

/* ---------- Story on dark stage ---------- */

.team-story {
	background: var(--navy);
	color: rgba(255,255,255,0.88);
	padding: 84px 0 64px;
}
.team-story__content {
	max-width: 720px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.75;
}
.team-story__content p { margin: 0 0 22px; }
.team-story__content strong { color: var(--white); }
.team-story__content a { color: var(--gold-light); }

/* Галерея труппы (блок Gallery в контенте страницы) */
.team-story__content .wp-block-gallery,
.team-story__content .gallery {
	margin: 40px 0;
}
.team-story__content .wp-block-image img,
.team-story__content .wp-block-gallery img {
	border: 1px solid var(--line-navy);
}
.team-story__content figcaption {
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.5);
	text-align: left;
	margin-top: 10px;
}

/* ---------- Stats ---------- */

.team-stats {
	max-width: 880px;
	margin: 40px auto 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--line-navy);
	border-bottom: 1px solid var(--line-navy);
	padding: 36px 0;
}
.team-stats__item {
	text-align: center;
	border-right: 1px solid var(--line-navy);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.team-stats__item:last-child { border-right: none; }
.team-stats__num {
	font-family: var(--font-serif);
	font-size: clamp(34px, 4.4vw, 48px);
	font-weight: 500;
	color: var(--gold-light);
	line-height: 1;
}
.team-stats__label {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.7);
}

/* ---------- Schools ---------- */

.team-schools__list {
	max-width: 860px;
	margin: 0 auto;
}
.team-schools__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	padding: 20px 4px;
	border-bottom: 1px solid var(--line);
}
.team-schools__item:last-child { border-bottom: none; }
.team-schools__name {
	font-family: var(--font-serif);
	font-size: 22px;
	font-weight: 600;
	color: var(--navy);
}
.team-schools__city {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-soft);
	flex: none;
}

/* ---------- Team CTA ---------- */

.team-cta {
	background: var(--navy);
	color: var(--white);
	padding: 84px 0;
	text-align: center;
}
.team-cta__title {
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: clamp(26px, 3.6vw, 40px);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.team-cta__actions {
	margin-top: 32px;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 16px;
}

/* =========================================================
   Team roster (труппа)
   ========================================================= */

.team-roster .section__title { margin-bottom: 52px; }

/* Развёрнутый профиль */
.dancer-feature {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 40px;
	align-items: start;
	max-width: 1000px;
	margin: 0 auto 56px;
}
.dancer-feature--flip .dancer-feature__media { order: 2; }
/* Единая пропорция 4:5 для всех развёрнутых профилей: портреты приходят
   разной высоты, и вертикальный кадр раздувал блок вдвое против соседних.
   Кадрируем от верха — лицо остаётся в кадре при любой исходной высоте. */
.dancer-feature__media {
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--navy-2);
	line-height: 0;
	aspect-ratio: 4 / 5;
}
.dancer-feature__media img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center top;
}
.dancer-feature__media .show-card__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
}
.dancer-feature__role {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gold);
}
.dancer-feature__name {
	margin-top: 8px;
	font-family: var(--font-serif);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--navy);
}
.dancer-feature__bio {
	margin-top: 16px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink-soft);
}
.dancer-feature__bio p { margin: 0 0 12px; }

/* Группы состава */
.roster-group { max-width: 1000px; margin: 0 auto 48px; }
.roster-group:last-child { margin-bottom: 0; }
.roster-group__title {
	font-family: var(--font-serif);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--navy);
	text-align: center;
	margin-bottom: 24px;
	position: relative;
	padding-bottom: 14px;
}
.roster-group__title::after {
	content: '';
	position: absolute;
	left: 50%; bottom: 0;
	transform: translateX(-50%);
	width: 40px; height: 2px;
	background: var(--gold);
}
.roster-group__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 22px;
	justify-content: center;
	align-items: start;
}
.dancer-card { margin: 0; text-align: center; }

/* Единый формат 3:4. Кадрируем от верхней трети: у портретов там лицо,
   поэтому обрезается низ кадра, а не голова. */
.dancer-card__media {
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--navy-2);
}
.dancer-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 22%;
	display: block;
	transition: transform 0.4s ease;
}
.dancer-card__media .show-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
}
.dancer-card:hover .dancer-card__media img { transform: scale(1.05); }
.dancer-card__name {
	margin-top: 10px;
	font-family: var(--font-serif);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--navy);
}

/* =========================================================
   Events (балетные программы) + страница балета
   ========================================================= */

.event-program {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 44px;
	align-items: start;
	max-width: 1060px;
	margin: 0 auto 64px;
}
.event-program:last-child { margin-bottom: 0; }
.event-program--flip .event-program__media { order: 2; }
/* Афиши приходят в разных пропорциях (вертикальные, 16:9, квадратные),
   поэтому кадр не задаём — показываем изображение целиком. */
.event-program__media {
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--navy-2);
	position: sticky;
	top: 90px;
	line-height: 0;
}
.event-program__media img {
	width: 100%;
	height: auto;
	display: block;
}
/* Заглушке пропорция нужна — иначе схлопнется в полоску. */
.event-program__media .show-card__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
}
.event-program__title {
	font-family: var(--font-serif);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--navy);
	position: relative;
	padding-bottom: 14px;
	margin-bottom: 18px;
}
.event-program__title::after {
	content: '';
	position: absolute;
	left: 0; bottom: 0;
	width: 48px; height: 2px;
	background: var(--gold);
}
.event-program__text {
	font-size: 15px;
	line-height: 1.75;
	color: var(--ink-soft);
}
.event-program__text p { margin: 0 0 14px; }
.event-program__text strong { color: var(--navy); }

.ballet-single__shows { margin-top: 72px; }

/* =========================================================
   About Us — вариант 1b «Editorial split»
   ========================================================= */

.about-page { background: var(--cream); }

.about-head { padding: 72px 0 8px; }
.about-head__eyebrow {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--gold);
}
.about-head__title {
	margin-top: 14px;
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: clamp(40px, 6vw, 68px);
	letter-spacing: 0.02em;
	color: var(--navy);
	line-height: 1.05;
}
.about-head__subtitle {
	margin-top: 18px;
	max-width: 520px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink-soft);
}

.about-split { padding: 48px 0 72px; }
.about-split__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}
.about-split__media { margin: 0; }
.about-split__media img,
.about-split__media .show-card__placeholder {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}
.about-split__caption {
	margin-top: 14px;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-soft);
}

/* Первый абзац — крупный засечковый лид, остальные — обычный текст */
.about-split__text > p:first-of-type {
	font-family: var(--font-serif);
	font-size: clamp(22px, 2.6vw, 28px);
	line-height: 1.35;
	color: var(--navy);
	margin: 0 0 24px;
}
.about-split__text p {
	font-size: 15px;
	line-height: 1.75;
	color: var(--ink-soft);
	margin: 0 0 18px;
}

.about-stats {
	margin-top: 36px;
	border-left: 2px solid var(--gold);
	padding-left: 24px;
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.about-stats__big {
	display: block;
	font-family: var(--font-serif);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 500;
	color: var(--navy);
	line-height: 1.1;
}
.about-stats__small {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	color: var(--ink-soft);
}

.about-quote {
	background: var(--navy);
	color: var(--white);
	padding: 72px 0;
	text-align: center;
}
.about-quote__inner { max-width: 820px; margin: 0 auto; }
.about-quote__mark {
	display: block;
	font-family: var(--font-serif);
	font-size: 64px;
	line-height: 0.6;
	color: var(--gold);
	margin-bottom: 20px;
}
.about-quote blockquote { margin: 0; }
.about-quote blockquote p {
	font-family: var(--font-serif);
	font-size: clamp(22px, 3vw, 30px);
	font-style: italic;
	line-height: 1.45;
}
.about-quote cite {
	display: block;
	margin-top: 20px;
	font-family: var(--font-sans);
	font-style: normal;
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gold-light);
}

.about-schools { padding: 44px 0 72px; }
.about-schools__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 12px 28px;
}
.about-schools__list li {
	font-family: var(--font-serif);
	font-size: clamp(16px, 1.8vw, 20px);
	color: var(--navy);
	position: relative;
}
.about-schools__list li:not(:last-child)::after {
	content: '\25C6'; /* золотой ромб-разделитель */
	position: absolute;
	right: -18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 7px;
	color: var(--gold);
}

@media (max-width: 860px) {
	.about-split__grid { grid-template-columns: 1fr; gap: 32px; }
	.about-head { padding-top: 52px; }
}

/* =========================================================
   Career
   ========================================================= */

.career__layout {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 48px;
	align-items: start;
}
.career__media { margin: 0; }
.career__media img,
.career__media .show-card__placeholder {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	display: block;
	border: 1px solid var(--line);
}
.career__text {
	font-size: 16px;
	line-height: 1.75;
	color: var(--ink-soft);
}
.career__text > p:first-of-type {
	font-family: var(--font-serif);
	font-size: clamp(21px, 2.4vw, 26px);
	line-height: 1.35;
	color: var(--navy);
	margin: 0 0 20px;
}
.career__text p { margin: 0 0 16px; }
.career__text a { color: var(--gold); text-decoration: underline; }

.career__cta { margin: 28px 0 18px; }
.career__contact {
	font-size: 14px;
	color: var(--ink-soft);
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.career__contact a { color: var(--navy); font-weight: 500; }
.career__contact a:hover { color: var(--gold); }

@media (max-width: 860px) {
	.career__layout { grid-template-columns: 1fr; gap: 28px; }
	.career__media img { aspect-ratio: 3 / 2; }
}

/* =========================================================
   Legal pages + Cookie banner
   ========================================================= */

.legal-hero {
	background: var(--navy);
	color: var(--white);
	padding: 36px 0 44px;
}
.legal-hero .breadcrumbs { margin-bottom: 20px; }
.legal-hero__title {
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: clamp(28px, 4vw, 42px);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.legal-hero__updated {
	margin-top: 10px;
	font-size: 12px;
	letter-spacing: 0.1em;
	color: rgba(255,255,255,0.55);
}

.legal-content {
	max-width: 760px;
	margin: 0 auto;
	padding: 48px 0 72px;
	line-height: 1.75;
	font-size: 15px;
}
.legal-content h2 {
	font-family: var(--font-serif);
	font-size: 24px;
	font-weight: 600;
	color: var(--navy);
	margin: 36px 0 12px;
}
.legal-content h3 {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--navy);
	margin: 24px 0 8px;
}
.legal-content p { margin: 0 0 14px; }
.legal-content a { color: var(--gold); text-decoration: underline; }
.legal-content ul { list-style: disc; padding-left: 22px; margin: 0 0 14px; }
.legal-content ol { list-style: decimal; padding-left: 22px; margin: 0 0 14px; }
.legal-content li { margin-bottom: 8px; }

/* Таблицы в контенте — например, список билетных операторов по странам */
.legal-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0 26px;
	font-size: 14px;
}
.legal-content thead th {
	text-align: left;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--navy);
	background: var(--cream);
	padding: 12px 14px;
	border-bottom: 1px solid var(--line);
}
.legal-content td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
}
.legal-content tbody tr:hover td { background: rgba(246, 242, 234, 0.6); }

/* Финальный блок с призывом к действию */
.content-cta {
	margin: 40px 0 8px;
	padding: 32px;
	background: var(--cream);
	border-radius: var(--radius);
	text-align: center;
}
.content-cta h2 {
	font-family: var(--font-serif);
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--navy);
	margin: 0 0 10px;
}
.content-cta p { color: var(--ink-soft); margin: 0 0 20px; }
.content-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}
/* Кнопки внутри текста: правило «ссылки золотые» их не касается,
   иначе золотая надпись на золотой кнопке становится невидимой. */
.legal-content a.btn,
.content-cta a.btn {
	text-decoration: none;
}
.legal-content a.btn--gold,
.content-cta a.btn--gold { color: var(--white); }

.legal-content a.btn--outline-navy,
.content-cta a.btn--outline-navy { color: var(--navy); }

.legal-content a.btn--outline-navy:hover,
.content-cta a.btn--outline-navy:hover { color: var(--white); }

.legal-content a.btn--navy,
.content-cta a.btn--navy { color: var(--white); }

/* Сноска-оговорка под блоком действий */
.content-note {
	font-size: 13px;
	color: var(--ink-soft);
	text-align: center;
	max-width: 620px;
	margin: 0 auto;
}

@media (max-width: 640px) {
	.legal-content table { font-size: 13px; }
	.legal-content thead th,
	.legal-content td { padding: 10px 8px; }
	.content-cta { padding: 24px 18px; }
	.content-cta__actions .btn { width: 100%; }
}

/* ---------- Cookie banner ---------- */

.cookie-banner {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 400;
	background: var(--navy);
	color: rgba(255,255,255,0.85);
	border-top: 2px solid var(--gold);
	box-shadow: 0 -10px 30px rgba(13, 27, 44, 0.35);
}
.cookie-banner__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 22px 24px;
	display: grid;
	gap: 16px;
}
.cookie-banner__title {
	font-family: var(--font-serif);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--white);
	margin-bottom: 6px;
}
.cookie-banner__text p { font-size: 13px; line-height: 1.6; margin: 0; }
.cookie-banner__text a { color: var(--gold-light); text-decoration: underline; }

.cookie-banner__options { display: grid; gap: 8px; }
.cookie-banner__option {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
}
.cookie-banner__option input { accent-color: var(--gold); }

.cookie-banner__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.cookie-banner__actions .btn { padding: 10px 22px; font-size: 12px; }
.cookie-banner .btn--outline-navy { color: var(--white); border-color: rgba(255,255,255,0.5); }
.cookie-banner .btn--outline-navy:hover { background: rgba(255,255,255,0.1); color: var(--white); }
.cookie-banner .btn--ghost { background: transparent; color: rgba(255,255,255,0.7); border-color: transparent; }
.cookie-banner .btn--ghost:hover { color: var(--gold-light); background: transparent; }

/* Заглушка заблокированного видео */
.media-consent {
	background: var(--navy-2);
	border: 1px solid var(--line-navy);
	border-radius: var(--radius);
	padding: 36px 24px;
	text-align: center;
	color: rgba(255,255,255,0.8);
}
.media-consent p { font-size: 13px; margin-bottom: 16px; }

/* Легальное меню в футере */
.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	text-align: left;
}
.site-footer__legal-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}
.site-footer__legal-menu a {
	font-size: 12px;
	color: rgba(255,255,255,0.55);
	transition: color var(--transition);
}
.site-footer__legal-menu a:hover { color: var(--gold-light); }

/* ---------- Responsive ---------- */

@media (max-width: 1080px) {
	.find-show__form { grid-template-columns: repeat(2, 1fr); }
	.country-page__layout { grid-template-columns: 1fr; }
	.country-filters { grid-template-columns: repeat(2, 1fr); }
	.find-show__submit { grid-column: 1 / -1; }
	.carousel__track { grid-auto-columns: calc((100% - 24px) / 2); }
	.ballets__grid { grid-template-columns: repeat(2, 1fr); }
	.countries__grid { grid-template-columns: repeat(4, 1fr); }
	.features__grid { grid-template-columns: repeat(2, 1fr); gap: 36px 0; }
	.feature:nth-child(2) { border-right: none; }
	.site-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
	.burger { display: flex; }
	/* На мобильных крупный логотип занимает пол-экрана — уменьшаем */
	.logo__image { height: 56px; }
	.site-header--has-logo .site-header__inner { min-height: 84px; }

	/* Воздух по краям: логотип и бургер не должны липнуть к рамке экрана */
	.site-header .container {
		padding-left: 20px;
		padding-right: 20px;
	}
	.site-header__inner { gap: 14px; }
	.logo--footer .logo__image { height: 110px; }
	.site-footer__brand { margin-top: 0; }
	.nav {
		display: none;
		position: absolute;
		top: 100%; left: 0; right: 0;
		background: var(--navy-2);
		border-bottom: 1px solid var(--line-navy);
		padding: 16px 24px 24px;
		/* Список стран длиннее экрана — даём меню собственную прокрутку,
		   иначе нижние пункты недостижимы. */
		max-height: calc(100vh - 84px);
		max-height: calc(100dvh - 84px);
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}
	.nav.is-open { display: block; }
	.nav__list { flex-direction: column; align-items: stretch; gap: 4px; }
	.nav__list a { display: block; padding: 11px 0; font-size: 14px; white-space: normal; }

	/* «More» и на мобильном остаётся выпадающим — структура как на десктопе */
	.nav__item-more { position: static; }
	.nav__more-toggle {
		display: flex;
		width: 100%;
		justify-content: space-between;
		align-items: center;
		padding: 11px 0;
		font-size: 14px;
	}
	.nav__submenu {
		display: none;
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		background: transparent;
		box-shadow: none;
		padding: 0 0 6px;
		min-width: 0;
	}
	.nav__item-more.is-open .nav__submenu { display: block; }
	.nav__submenu::before { content: none; }
	.nav__submenu a {
		padding: 10px 0 10px 18px;
		color: rgba(255,255,255,0.75);
		font-size: 13px;
	}
	.nav__submenu a:hover,
	.nav__submenu .current-menu-item > a { color: var(--gold-light); background: transparent; }
}

@media (max-width: 640px) {
	.section { padding-block: 52px; }
	.hero { padding: 84px 0 92px; }
	/* На узких экранах поля чуть меньше, но точно есть */
	.container { padding-left: 20px; padding-right: 20px; }
	/* Убираем разрядку у длинных заголовков — из-за неё они не влезали */
	.hero__title { letter-spacing: 0.02em; }
	.hero__subtitle { letter-spacing: 0.08em; }
	.hero__ballets { letter-spacing: 0.12em; }
	.hero__actions .btn { width: 100%; }
	.find-show__form { grid-template-columns: 1fr; }
	.carousel { padding: 16px; }
	.carousel__track { grid-auto-columns: 100%; }
	.carousel__arrow--prev { left: -8px; }
	.carousel__arrow--next { right: -8px; }
	.ballets__grid { grid-template-columns: 1fr; }
	.countries__grid { grid-template-columns: repeat(2, 1fr); }
	.features__grid { grid-template-columns: 1fr; }
	.feature { border-right: none; padding: 0; }
	/* Футер на телефоне: логотип по центру, «Information» и «Tickets»
	   рядом в две колонки, «Follow us» по центру во всю ширину. */
	.site-footer__grid,
	.site-footer__grid--newsletter {
		grid-template-columns: 1fr 1fr;
		gap: 28px 20px;
		text-align: center;
	}
	.site-footer__brand {
		grid-column: 1 / -1;
		display: flex;
		justify-content: center;
	}
	.site-footer__col--social {
		grid-column: 1 / -1;
		text-align: center;
	}
	.site-footer__col--social .site-footer__social { justify-content: center; }
	.site-footer__newsletter { grid-column: 1 / -1; }

	/* Нижняя строка футера: юридические ссылки и копирайт по центру */
	.site-footer__bottom {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 14px;
	}
	.site-footer__legal-menu { justify-content: center; }

	.press__inner { flex-direction: column; gap: 8px; }

	/* Country page */
	.country-filters { grid-template-columns: 1fr; }
	.country-filters__actions { flex-direction: column; }
	.country-filters__actions .btn { width: 100%; }
	.results-bar { flex-direction: column; align-items: flex-start; gap: 8px; }
	.show-row {
		grid-template-columns: 96px minmax(0, 1fr);
		gap: 14px;
	}
	.show-row__actions {
		grid-column: 1 / -1;
		flex-direction: row;
		justify-content: space-between;
		flex-wrap: wrap;
	}
	.show-row__cta { width: auto; }
	.sidebar-map { height: 240px; }

	/* Events */
	.event-program { grid-template-columns: 1fr; gap: 20px; }
	.event-program--flip .event-program__media { order: 0; }
	.event-program__media { position: static; }

	/* Team page */
	.team-hero { min-height: 62vh; }
	.dancer-feature { grid-template-columns: 1fr; gap: 20px; }
	.dancer-feature--flip .dancer-feature__media { order: 0; }
	/* Портрет в одну колонку — по центру, иначе прижимается к левому краю */
	.dancer-feature__media {
		max-width: 320px;
		margin-left: auto;
		margin-right: auto;
	}
	.roster-group__grid { grid-template-columns: repeat(2, 1fr); }
	.team-stats { grid-template-columns: 1fr; gap: 28px; padding: 28px 0; }
	.team-stats__item { border-right: none; }
	.team-schools__item { flex-direction: column; gap: 4px; }
	.team-cta__actions .btn { width: 100%; }
}

/* =========================================================
   Withdrawal form (шорткод [ifb_withdrawal_form])
   ========================================================= */

.wd-form {
	max-width: 760px;
	margin: 40px auto 0;
	padding-bottom: 72px;
}
.legal-content .wd-form,
.entry-content .wd-form { padding-bottom: 0; }

/* Вводный текст: та же ширина, что у формы, — иначе на широком шаблоне
   он растягивается в одну строку через весь экран и липнет к первому полю. */
.wd-form__lead {
	margin-bottom: 40px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--ink-soft);
}
.wd-form__lead p { margin: 0 0 12px; }
.wd-form__lead p:last-child { margin-bottom: 0; }

/* Тот же приём для случая, когда текст оставлен обычным абзацем
   в редакторе, а не обёрнут шорткодом. */
.entry-content:has(> .wd-form) > p,
.legal-content:has(> .wd-form) > p {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.wd-form__notice {
	margin: 0 0 28px;
	padding: 16px 20px;
	border-left: 3px solid var(--gold);
	background: var(--cream);
	font-size: 15px;
	line-height: 1.6;
}
.wd-form__notice--error {
	border-left-color: #b3261e;
	background: #fdf1f0;
	color: #7d1a15;
}

.wd-form__row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 20px;
}

.wd-form__field { margin: 0 0 20px; }
.wd-form__row .wd-form__field { margin: 0; }

.wd-form__field label {
	display: block;
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-soft);
}
.wd-form__req { color: var(--gold); }

.wd-form__field input[type="text"],
.wd-form__field input[type="email"],
.wd-form__field textarea {
	width: 100%;
	padding: 12px 14px;
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 300;
	color: var(--ink);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	outline: none;
	transition: border-color var(--transition);
}
.wd-form__field textarea { resize: vertical; min-height: 130px; }
.wd-form__field input:focus,
.wd-form__field textarea:focus { border-color: var(--gold); }

.wd-form__hint {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	color: var(--ink-soft);
}

/* Honeypot: не показываем человеку, но оставляем доступным ботам. */
.wd-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.wd-form__actions { margin: 28px 0 0; }
.wd-form__actions .btn { min-width: 240px; }

@media (max-width: 860px) {
	.wd-form__row { grid-template-columns: 1fr; gap: 20px; }
	.wd-form__actions .btn { width: 100%; }
}
