/* 1. reset/base */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  min-height: 100%;
  overflow-x: clip;
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  min-height: 100%;
  margin: 0;
  overflow-x: clip;
  font-family: var(--font-main);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-text);
  background: var(--color-white);
}

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

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

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

/* 2. variables */
:root {
  --font-main: "Montserrat", Arial, sans-serif;

  --color-blue: #29337d;
  --color-blue-dark: #2a347e;
  --color-blue-bright: #0160f3;
  --color-accent: #cab390;
  --color-white: #ffffff;
  --color-text: #363636;
  --color-bg-light: #fafafa;

  --container-width: 1598px;
  --container-padding: 16px;

  --radius-sm: 12px;
  --radius-md: 24px;
  --radius-lg: 32px;
  --radius-xl: 40px;
  --radius-pill: 999px;

  --shadow-soft: 0 8px 24px rgba(0, 0, 0, 0.1);
  --shadow-card: 1px 0px 16px 0px rgba(0, 0, 0, 0.2);
  --shadow-news: 10px 0 30px rgba(0, 0, 0, 0.1);
}

/* 3. typography */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  white-space: nowrap;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(100%);
}

/* 4. layout */
.page {
  min-height: 100vh;
}

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

.page-main__content {
  min-height: 300px;
}

/* 5. header */
.site-header {
  position: relative;
  z-index: 30;
  width: 100%;
  height: 150px;
  background: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(5px);
}

.site-header--light {
  color: var(--color-blue);
}

.site-header--blue {
  color: var(--color-white);
  background: var(--color-blue);
}

.site-header__container {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.site-logo {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  width: 172px;
  height: 110px;
}

.site-logo__image {
  width: 172px;
  height: 110px;
  object-fit: contain;
}

/* 6. navigation */
.site-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

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

.site-nav__item {
  flex: 0 0 auto;
}

.site-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 15px 30px;
  border: 2px solid var(--color-blue);
  border-radius: var(--radius-sm);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-blue);
  background: transparent;
  white-space: nowrap;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.site-nav__link:hover,
.site-nav__link:focus-visible,
.site-nav__link--active {
  color: var(--color-white);
  background: var(--color-blue);
}

.site-nav__link:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 3px;
}

.site-header--blue .site-nav__link {
  color: var(--color-white);
  border-color: var(--color-white);
}

.site-header--blue .site-nav__link:hover,
.site-header--blue .site-nav__link:focus-visible,
.site-header--blue .site-nav__link--active {
  color: var(--color-blue);
  background: var(--color-white);
}

.site-header__menu-toggle {
  display: none;
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  color: var(--color-blue);
  background: transparent;
  cursor: pointer;
}

.site-header__menu-toggle:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 3px;
}

.site-header__menu-icon {
  display: block;
  width: 56px;
  height: 56px;
  background-image: url("../img/header-menu.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.site-header--blue .site-header__menu-toggle:focus-visible {
  outline-color: rgba(255, 255, 255, 0.4);
}

.site-header--blue .site-header__menu-icon {
  filter: brightness(0) invert(1);
}

@media (max-width: 1100px) {
  body.has-mobile-nav .site-header {
    z-index: 1000;
    height: 80px;
  }

  body.has-mobile-nav .site-header__container {
    position: relative;
    width: auto;
    margin-right: 32px;
    margin-left: clamp(32px, 8.333vw, 64px);
    gap: 16px;
  }

  body.has-mobile-nav .site-logo,
  body.has-mobile-nav .site-logo__image {
    width: 108px;
    height: 70px;
  }

  body.has-mobile-nav .site-header__menu-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  body.has-mobile-nav .site-header .site-nav {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 1001;
    display: block;
    width: min(320px, calc(100vw - 64px));
    padding: 16px;
    border: 2px solid rgba(41, 51, 125, 0.14);
    border-radius: 24px;
    color: var(--color-blue);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 48px rgba(16, 25, 88, 0.18);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
    visibility: hidden;
  }

  body.has-mobile-nav .site-header.is-menu-open .site-nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
  }

  body.has-mobile-nav .site-nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  body.has-mobile-nav .site-nav__item {
    width: 100%;
  }

  body.has-mobile-nav .site-header .site-nav__link,
  body.has-mobile-nav .site-header--blue .site-nav__link {
    width: 100%;
    min-height: 48px;
    padding: 12px 18px;
    justify-content: center;
    border-color: var(--color-blue);
    color: var(--color-blue);
    background: transparent;
    font-size: 16px;
  }

  body.has-mobile-nav .site-header .site-nav__link:hover,
  body.has-mobile-nav .site-header .site-nav__link:focus-visible,
  body.has-mobile-nav .site-header .site-nav__link--active,
  body.has-mobile-nav .site-header--blue .site-nav__link:hover,
  body.has-mobile-nav .site-header--blue .site-nav__link:focus-visible,
  body.has-mobile-nav .site-header--blue .site-nav__link--active {
    color: var(--color-white);
    background: var(--color-blue);
  }
}
/* 21. future responsive blocks */
@media (max-width: 1200px) {
  .site-header__container {
    gap: 24px;
  }

  .site-nav__list {
    gap: 10px;
  }

  .site-nav__link {
    padding-inline: 20px;
  }
}

/* 8. buttons */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 12px 32px;
  border: 0;
  border-radius: var(--radius-pill);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-white);
  background: var(--color-blue);
  cursor: pointer;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    opacity 0.2s ease;
}

.button:hover,
.button:focus-visible {
  opacity: 0.88;
}

.button:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.4);
  outline-offset: 3px;
}

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

.button--gallery {
  width: 465px;
  min-height: 64px;
  padding: 16px 56px;
  border-radius: 33px;
  font-size: 22px;
  line-height: 1.4;
}

/* 16. sections */
.section {
  position: relative;
}

.section__header {
  width: 100%;
}

.section__title {
  margin: 0;
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
}

/* 18. gallery */
.gallery-section {
  min-height: 1940px;
  padding: 136px 0 224px;
  overflow: hidden;
  color: var(--color-white);
  background: linear-gradient(90deg, var(--color-blue-dark) 0%, var(--color-blue-bright) 100%);
}

.gallery-section::before {
  position: absolute;
  top: -264px;
  right: -386px;
  z-index: 0;
  width: 1416px;
  height: 1204px;
  border-radius: 0 0 0 100%;
  background: #29337D40;
  content: "";
  pointer-events: none;
}

.gallery-section__container {
  position: relative;
  z-index: 1;
  width: min(1446px, calc(100% - var(--container-padding) * 2));
  display: flex;
  flex-direction: column;
  align-items: center;
}

.gallery-section__decor {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}

.gallery-section__decor--top {
  top: 0;
  right: 0;
  width: 955px;
  height: 830px;
  background-image: url("../img/gallery-decor-top.png");
  transform: scaleY(-1);
}

.gallery-section__decor--bottom {
  bottom: 0;
  left: 0;
  width: 713px;
  height: 620px;
  background-image: url("../img/gallery-decor-bottom.png");
  transform: rotate(180deg) scaleY(-1);
}

.gallery-section__header {
  margin-bottom: 81px;
}

.gallery-section__title {
  color: var(--color-white);
}

.gallery-grid {
  position: relative;
  width: 1446px;
  max-width: 100%;
  height: 1303px;
  margin: 0;
}

.gallery-grid__item {
  position: absolute;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--color-white);
}

.gallery-grid__item:nth-child(1) {
  top: 0;
  left: 0;
  width: 650px;
  height: 449px;
}

.gallery-grid__item:nth-child(2) {
  top: 0;
  right: 0;
  width: 764px;
  height: 449px;
}

.gallery-grid__item:nth-child(3) {
  top: 499px;
  left: 0;
  width: 472px;
  height: 305px;
}

.gallery-grid__item:nth-child(4) {
  top: 499px;
  left: 503px;
  width: 439px;
  height: 305px;
}

.gallery-grid__item:nth-child(5) {
  top: 499px;
  right: 0;
  width: 472px;
  height: 305px;
}

.gallery-grid__item:nth-child(6) {
  top: 854px;
  left: 0;
  width: 764px;
  height: 449px;
}

.gallery-grid__item:nth-child(7) {
  top: 854px;
  right: 0;
  width: 650px;
  height: 449px;
}

.gallery-card,
.gallery-card__image {
  width: 100%;
  height: 100%;
}

.gallery-card__image {
  object-fit: cover;
}

.gallery-grid__item:nth-child(1) .gallery-card__image {
  object-position: center;
}

.gallery-grid__item:nth-child(2) .gallery-card__image {
  object-position: center;
}

.gallery-grid__item:nth-child(3) .gallery-card__image {
  object-position: center bottom;
}

.gallery-grid__item:nth-child(4) .gallery-card__image {
  object-position: center;
}

.gallery-grid__item:nth-child(5) .gallery-card__image {
  object-position: center;
}

.gallery-grid__item:nth-child(6) .gallery-card__image {
  object-position: center;
}

.gallery-grid__item:nth-child(7) .gallery-card__image {
  object-position: center;
}

.gallery-section__actions {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 81px;
}
/* 10. badges */
.date-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 192px;
  min-height: 33px;
  padding: 6px 16px;
  border-radius: var(--radius-sm);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.date-badge--accent {
  color: var(--color-white);
  background: var(--color-accent);
}

.date-badge--outline-light {
  color: var(--color-white);
  border: 1px solid var(--color-white);
  background: transparent;
}

/* 13. news-card */
.news-section {
  min-height: 876px;
  padding: 136px 0 128px;
  background: var(--color-bg-light);
}

.news-section__container {
  width: min(1438px, calc(100% - var(--container-padding) * 2));
}

.news-section__header {
  margin-bottom: 64px;
}

.news-section__title {
  color: var(--color-blue);
}

.news-section__title-link {
  color: inherit;
  transition: opacity 0.2s ease;
}

.news-section__title-link:hover,
.news-section__title-link:focus-visible {
  opacity: 0.82;
}

.news-section__title-link:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 6px;
}

.news-section__content {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 64px;
}

.news-list {
  display: grid;
  grid-template-columns: repeat(3, 454px);
  gap: 38px;
  width: 100%;
}

.news-card {
  position: relative;
  min-height: 362px;
  padding: 56px 32px 40px;
  overflow: hidden;
  border-radius: var(--radius-lg);
  color: var(--color-blue);
  background: var(--color-white);
  box-shadow: var(--shadow-news);
}

.news-card--featured {
  color: var(--color-white);
  background: linear-gradient(180deg, var(--color-blue-bright) 0%, var(--color-blue) 100%);
}

.news-card__meta {
  margin-bottom: 25px;
}

.news-card__label {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 104px;
  min-height: 33px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px;
  border-radius: 0 var(--radius-sm) 0 var(--radius-sm);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-white);
  background: var(--color-accent);
}

.news-card__title {
  width: 100%;
  max-width: 386px;
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.news-card__button {
  position: absolute;
  right: 32px;
  bottom: 40px;
  left: 32px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 32px;
  border-radius: var(--radius-md);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-white);
  background: var(--color-blue);
  box-shadow: var(--shadow-soft);
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    opacity 0.2s ease;
}

.news-card__button:hover,
.news-card__button:focus-visible {
  opacity: 0.88;
}

.news-card__button:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 3px;
}

.news-card__button--light {
  color: var(--color-blue);
  background: var(--color-white);
}

.news-section__all-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--color-blue);
  transition: opacity 0.2s ease;
}

.news-section__all-link:hover,
.news-section__all-link:focus-visible {
  opacity: 0.82;
}

.news-section__all-link:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 3px;
}

.news-section__all-icon {
  position: relative;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 50%;
  background: var(--color-blue);
}

.news-section__all-icon::before,
.news-section__all-icon::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 2px;
  right: 5px;
  background: var(--color-white);
  border-radius: 2px;
  transform-origin: right center;
}

.news-section__all-icon::before {
  top: 9px;
  transform: rotate(45deg);
}

.news-section__all-icon::after {
  top: 9px;
  transform: rotate(-45deg);
}
/* 6. footer */
.site-footer {
  min-height: 444px;
  padding: 64px 0;
  color: var(--color-white);
  background: var(--color-blue);
}

.site-footer__container {
  width: min(1454px, calc(100% - var(--container-padding) * 2));
  display: grid;
  grid-template-columns: 360px 1fr;
  column-gap: 281px;
  align-items: start;
}

.site-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.site-footer__logo {
  display: inline-flex;
  width: 152px;
  height: 97px;
  margin-bottom: 30px;
}

.site-footer__logo-image {
  width: 152px;
  height: 97px;
  object-fit: contain;
}

.site-footer__social-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 30px;
}

.site-footer__social-title {
  margin: 0;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.2;
}

.social-links {
  display: flex;
  align-items: center;
  gap: 17px;
}

.social-links__item {
  display: flex;
}

.social-links__link {
  display: inline-flex;
  width: 70px;
  height: 70px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: opacity 0.2s ease;
}

.social-links__link:hover,
.social-links__link:focus-visible {
  opacity: 0.82;
}

.social-links__link:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.35);
  outline-offset: 3px;
}

.social-links__icon {
  width: 70px;
  height: 70px;
  object-fit: contain;
}

.site-footer__email {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-white);
}

.site-footer__email:hover,
.site-footer__email:focus-visible {
  opacity: 0.78;
}

.site-footer__nav {
  display: grid;
  grid-template-columns: max-content max-content;
  justify-content: space-between;
  gap: 80px;
  padding-top: 5px;
}

.site-footer__nav-list {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.site-footer__nav-item {
  display: flex;
}

.site-footer__nav-link {
  font-size: 24px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-white);
  transition: opacity 0.2s ease;
}

.site-footer__nav-link:hover,
.site-footer__nav-link:focus-visible {
  opacity: 0.78;
}

.site-footer__nav-link:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.35);
  outline-offset: 4px;
}

.site-footer__nav-link--active {
  font-weight: 700;
}

/* 21. responsive: desktop down to 1024px */
@media (min-width: 1024px) and (max-width: 1500px) {
  :root {
    --container-padding: 32px;
  }

  .site-header {
    height: 118px;
  }

  .site-header__container {
    gap: 24px;
  }

  .site-logo,
  .site-logo__image {
    width: 132px;
    height: 84px;
  }

  .site-nav__list {
    gap: 8px;
  }

  .site-nav__link {
    min-height: 44px;
    padding: 10px 14px;
    font-size: 14px;
  }

  .gallery-section {
    min-height: auto;
    padding: 104px 0 136px;
  }

  .gallery-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
  }

  .gallery-section__decor--top {
    width: 52vw;
    height: 45vw;
    max-width: 955px;
    max-height: 830px;
  }

  .gallery-section__decor--bottom {
    width: 39vw;
    height: 34vw;
    max-width: 713px;
    max-height: 620px;
  }

  .gallery-section__header {
    margin-bottom: 56px;
  }

  .section__title {
    font-size: 40px;
  }

  .gallery-grid {
    width: 100%;
    height: auto;
    aspect-ratio: 1446 / 1303;
  }

  .gallery-grid__item:nth-child(1) {
    top: 0;
    left: 0;
    width: 44.95%;
    height: 34.46%;
  }

  .gallery-grid__item:nth-child(2) {
    top: 0;
    right: 0;
    width: 52.84%;
    height: 34.46%;
  }

  .gallery-grid__item:nth-child(3) {
    top: 38.3%;
    left: 0;
    width: 32.64%;
    height: 23.41%;
  }

  .gallery-grid__item:nth-child(4) {
    top: 38.3%;
    left: 34.79%;
    width: 30.36%;
    height: 23.41%;
  }

  .gallery-grid__item:nth-child(5) {
    top: 38.3%;
    right: 0;
    width: 32.64%;
    height: 23.41%;
  }

  .gallery-grid__item:nth-child(6) {
    top: 65.54%;
    left: 0;
    width: 52.84%;
    height: 34.46%;
  }

  .gallery-grid__item:nth-child(7) {
    top: 65.54%;
    right: 0;
    width: 44.95%;
    height: 34.46%;
  }

  .gallery-section__actions {
    margin-top: 56px;
  }

  .button--gallery {
    width: 360px;
  }

  .news-section {
    min-height: auto;
    padding: 104px 0 112px;
  }

  .news-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
  }

  .news-section__header {
    margin-bottom: 48px;
  }

  .news-section__content {
    gap: 48px;
  }

  .news-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }

  .news-card {
    min-height: 382px;
    padding: 48px 24px 32px;
  }

  .news-card__meta {
    min-width: 0;
    margin-bottom: 22px;
    font-size: 14px;
  }

  .news-card__label {
    min-width: 92px;
    font-size: 14px;
  }

  .news-card__title {
    max-width: none;
    font-size: 18px;
  }

  .news-card__button {
    right: 24px;
    bottom: 32px;
    left: 24px;
    font-size: 16px;
  }

  .site-footer {
    min-height: 380px;
    padding: 56px 0;
  }

  .site-footer__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
    grid-template-columns: 320px 1fr;
    column-gap: 120px;
  }

  .site-footer__logo,
  .site-footer__logo-image {
    width: 132px;
    height: 84px;
  }

  .site-footer__social-title {
    font-size: 18px;
  }

  .social-links,
  .site-footer__social-block {
    gap: 12px;
  }

  .social-links__link,
  .social-links__icon {
    width: 56px;
    height: 56px;
  }

  .site-footer__email {
    font-size: 18px;
  }

  .site-footer__nav {
    gap: 64px;
  }

  .site-footer__nav-link {
    font-size: 20px;
  }
}

@media (min-width: 1024px) and (max-width: 1100px) {
  .site-header__container {
    gap: 18px;
  }

  .site-logo,
  .site-logo__image {
    width: 118px;
    height: 75px;
  }

  .site-nav__list {
    gap: 6px;
  }

  .site-nav__link {
    padding-inline: 10px;
    font-size: 13px;
  }

  .news-list {
    gap: 18px;
  }

  .news-card {
    min-height: 400px;
    padding-inline: 20px;
  }

  .news-card__button {
    right: 20px;
    left: 20px;
  }

  .site-footer__container {
    grid-template-columns: 300px 1fr;
    column-gap: 72px;
  }
}
@media (max-width: 1023px) {
  .site-footer {
    min-height: 0;
    padding: 48px 0;
  }

  .site-footer__container {
    width: min(704px, calc(100% - 64px));
    grid-template-columns: 280px minmax(0, 1fr);
    column-gap: 64px;
  }

  .site-footer__logo,
  .site-footer__logo-image {
    width: 132px;
    height: 84px;
  }

  .site-footer__logo {
    margin-bottom: 24px;
  }

  .site-footer__social-block {
    margin-bottom: 24px;
  }

  .site-footer__social-title,
  .site-footer__email {
    font-size: 16px;
  }

  .social-links__link,
  .social-links__icon {
    width: 56px;
    height: 56px;
  }

  .site-footer__nav {
    gap: 48px;
    padding-top: 0;
  }

  .site-footer__nav-list {
    gap: 28px;
  }

  .site-footer__nav-link {
    font-size: 20px;
  }

  .news-section__content {
    align-items: stretch;
  }

  .news-section__all-link {
    align-self: center;
    justify-content: center;
  }
}

@media (max-width: 768px) {
  .site-footer {
    min-height: 0;
    padding: 56px 0 64px;
  }

  .site-footer__container {
    width: calc(100% - 64px);
    display: grid;
    grid-template-columns: minmax(160px, 230px) minmax(0, 1fr);
    column-gap: 56px;
    row-gap: 32px;
    align-items: start;
  }

  .site-footer__brand {
    width: 100%;
  }

  .site-footer__logo,
  .site-footer__logo-image {
    width: 132px;
    height: 84px;
  }

  .site-footer__logo {
    margin-bottom: 24px;
  }

  .site-footer__social-block {
    gap: 8px;
    margin-bottom: 24px;
  }

  .site-footer__social-title,
  .site-footer__email {
    font-size: 16px;
  }

  .site-footer .social-links {
    gap: 14px;
  }

  .site-footer .social-links__link,
  .site-footer .social-links__icon {
    width: 52px;
    height: 52px;
  }

  .site-footer__nav {
    width: 100%;
    grid-template-columns: repeat(2, max-content);
    justify-content: end;
    column-gap: 52px;
    padding-top: 6px;
  }

  .site-footer__nav-list {
    gap: 24px;
  }

  .site-footer__nav-item {
    display: flex;
  }

  .site-footer__nav-link {
    font-size: 18px;
  }

  .site-footer__nav-link--active {
    font-weight: 400;
  }
}

@media (max-width: 560px) {
  .site-footer {
    padding: 40px 0 52px;
  }

  .site-footer__container {
    width: calc(100% - 48px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
  }

  .site-footer__brand {
    align-items: flex-start;
    text-align: left;
  }

  .site-footer__logo,
  .site-footer__logo-image {
    width: 142px;
    height: 91px;
  }

  .site-footer__logo {
    margin-bottom: 26px;
  }

  .site-footer__social-block {
    align-items: flex-start;
    margin-bottom: 22px;
  }

  .site-footer__social-title,
  .site-footer__email {
    font-size: 16px;
  }

  .site-footer .social-links {
    justify-content: flex-start;
    gap: 12px;
  }

  .site-footer .social-links__link,
  .site-footer .social-links__icon {
    width: 50px;
    height: 50px;
  }

  .site-footer__nav {
    width: 100%;
    grid-template-columns: repeat(2, max-content);
    justify-content: start;
    column-gap: 54px;
    padding-top: 0;
  }

  .site-footer__nav-list {
    gap: 18px;
  }

  .site-footer__nav-link {
    font-size: 17px;
  }
}
@media (max-width: 767px) {
  .news-section {
    min-height: auto;
    padding: 48px 0 56px;
  }

  .news-section__container {
    width: calc(100% - 64px);
  }

  .news-section__header {
    margin-bottom: 32px;
  }

  .news-section__content {
    gap: 32px;
  }

  .news-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    width: 100%;
    max-width: 100%;
  }

  .news-section .news-list {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    margin-right: calc((100vw - 100%) / -2);
    margin-left: calc((100vw - 100%) / -2);
    padding: 0 32px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: 32px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .news-section .news-list::-webkit-scrollbar {
    display: none;
  }

  .news-list__item {
    min-width: 0;
  }

  .news-section .news-list__item {
    flex: 0 0 calc(100vw - 112px);
    scroll-snap-align: start;
  }

  .news-card {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 360px;
    padding: 40px 20px 88px;
  }

  .news-card__title {
    max-width: none;
    font-size: 18px;
  }

  .news-card__button {
    right: 20px;
    bottom: 28px;
    left: 20px;
  }
}
@media (max-width: 480px) {
  .news-section__container {
    width: calc(100% - 48px);
  }

  .news-section .news-list {
    padding-inline: 24px;
    scroll-padding-inline: 24px;
  }

  .news-section .news-list__item {
    flex-basis: calc(100vw - 96px);
  }
}
/* 19. social-banner */
.page-afisha__main {
  background: var(--color-white);
}

.social-banner-section {
  padding: 136px 0;
}

.social-banner {
  position: relative;
  min-height: 431px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border-radius: var(--radius-xl);
  color: var(--color-white);
  background: linear-gradient(90deg, var(--color-blue-dark) 0%, var(--color-blue-bright) 100%);
}

.social-banner__media {
  position: relative;
  width: calc(48.2% + 96px);
  min-width: 520px;
  flex: 0 0 calc(48.2% + 96px);
  margin-right: -96px;
  overflow: hidden;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 76%, rgba(0, 0, 0, 0.72) 88%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, #000 76%, rgba(0, 0, 0, 0.72) 88%, transparent 100%);
}

.social-banner__decor {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: left center;
}

.social-banner__content {
  position: relative;
  z-index: 1;
  width: 51.8%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 72px 68px 72px 56px;
}

.social-banner__title {
  max-width: 731px;
  margin: 0 0 24px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
}

.social-banner__text {
  max-width: 731px;
  margin: 0;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.3;
}

.social-links--banner {
  gap: 17px;
  margin-top: 28px;
}

.social-links--banner .social-links__link,
.social-links--banner .social-links__icon {
  width: 77px;
  height: 77px;
}

@media (min-width: 1024px) and (max-width: 1500px) {
  .social-banner-section {
    padding: 104px 0;
  }

  .social-banner {
    min-height: 360px;
  }

  .social-banner__media {
    width: calc(47% + 72px);
    min-width: 0;
    flex-basis: calc(47% + 72px);
    margin-right: -72px;
  }

  .social-banner__content {
    width: 53%;
    padding: 56px 48px 56px 44px;
  }

  .social-banner__title {
    font-size: 36px;
  }

  .social-banner__text {
    font-size: 20px;
  }

  .social-links--banner .social-links__link,
  .social-links--banner .social-links__icon {
    width: 62px;
    height: 62px;
  }
}

@media (min-width: 1024px) and (max-width: 1100px) {
  .social-banner__content {
    padding-right: 36px;
    padding-left: 36px;
  }

  .social-banner__title {
    font-size: 32px;
  }

  .social-banner__text {
    font-size: 18px;
  }
}

@media (max-width: 1023px) {
  .social-banner-section {
    padding: 32px 0 96px;
  }

  .social-banner {
    width: calc(100% - 64px);
    min-height: 260px;
    border-radius: 32px;
  }

  .social-banner__media {
    width: calc(50% + 44px);
    min-width: 0;
    flex-basis: calc(50% + 44px);
    margin-right: -44px;
  }

  .social-banner__decor {
    object-position: left center;
  }

  .social-banner__content {
    width: 50%;
    padding: 38px 36px 38px 32px;
  }

  .social-banner__title {
    max-width: 420px;
    margin-bottom: 14px;
    font-size: 30px;
    line-height: 1.08;
  }

  .social-banner__text {
    max-width: 420px;
    font-size: 16px;
    line-height: 1.28;
  }

  .social-links--banner {
    gap: 14px;
    margin-top: 24px;
  }

  .social-links--banner .social-links__link,
  .social-links--banner .social-links__icon {
    width: 48px;
    height: 48px;
  }
}

@media (max-width: 768px) {
  .social-banner-section {
    padding: 64px 0 72px;
  }

  .social-banner {
    width: 100vw;
    min-height: 0;
    flex-direction: column;
    margin-right: calc((100vw - 100%) / -2);
    margin-left: calc((100vw - 100%) / -2);
    border-radius: 32px;
  }

  .social-banner__media {
    width: 100%;
    height: 300px;
    min-width: 0;
    flex: 0 0 auto;
    margin-right: 0;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .social-banner__decor {
    object-fit: contain;
    object-position: center bottom;
  }

  .social-banner__content {
    width: 100%;
    align-items: center;
    padding: 34px 28px 48px;
    text-align: center;
  }

  .social-banner__title {
    max-width: 520px;
    margin-bottom: 16px;
    font-size: 30px;
  }

  .social-banner__text {
    max-width: 520px;
    font-size: 16px;
  }

  .social-links--banner {
    justify-content: center;
    gap: 14px;
    margin-top: 30px;
  }

  .social-links--banner .social-links__link,
  .social-links--banner .social-links__icon {
    width: 56px;
    height: 56px;
  }
}

@media (max-width: 420px) {
  .social-banner-section {
    padding: 48px 0 64px;
  }

  .social-banner {
    width: 100vw;
    border-radius: 32px;
  }

  .social-banner__media {
    height: 218px;
  }

  .social-banner__content {
    padding: 28px 24px 34px;
  }

  .social-banner__title {
    max-width: 292px;
    margin-bottom: 18px;
    font-size: 27px;
    line-height: 1.08;
  }

  .social-banner__text {
    max-width: 292px;
    font-size: 15px;
    line-height: 1.28;
  }

  .social-links--banner {
    gap: 12px;
    margin-top: 24px;
  }

  .social-links--banner .social-links__link,
  .social-links--banner .social-links__icon {
    width: 50px;
    height: 50px;
  }
}/* page: news */
.page-news__main {
  background: var(--color-white);
}

.news-page-section {
  padding: 88px 0 136px;
}

.news-page-section__container {
  width: min(1438px, calc(100% - var(--container-padding) * 2));
}

.news-page-section__header {
  margin-bottom: 64px;
}

.news-page-section__title {
  color: var(--color-blue);
}

.news-list--catalog {
  row-gap: 56px;
}

.news-page-section__actions {
  display: flex;
  justify-content: center;
  margin-top: 72px;
}

.button--primary {
  color: var(--color-white);
  background: var(--color-blue);
}

.button--wide {
  width: 465px;
  min-height: 64px;
  padding: 16px 56px;
  border-radius: 33px;
  font-size: 22px;
  line-height: 1.4;
}

@media (min-width: 1024px) and (max-width: 1500px) {
  .news-page-section {
    padding: 72px 0 104px;
  }

  .news-page-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
  }

  .news-page-section__header {
    margin-bottom: 48px;
  }

  .news-list--catalog {
    row-gap: 32px;
  }

  .news-page-section__actions {
    margin-top: 56px;
  }

  .button--wide {
    width: 360px;
    min-height: 58px;
    font-size: 20px;
  }
}
/* page: news table layout */
.news-table-section {
  position: relative;
  min-height: 726px;
  padding: 72px 0 136px;
  overflow: hidden;
  background: var(--color-white);
}

.news-table-section::before {
  content: "";
  position: absolute;
  left: -235px;
  bottom: -318px;
  width: 700px;
  height: 700px;
  border-radius: 50%;
  background: #f3f3f3;
  pointer-events: none;
}

.news-table-section__container {
  position: relative;
  z-index: 1;
  width: min(1220px, calc(100% - var(--container-padding) * 2));
}

.news-table {
  width: 100%;
  margin: 0 auto;
}

.news-table__head,
.news-table__row {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr) 88px;
  column-gap: 38px;
  align-items: center;
}

.news-table__head {
  min-height: 44px;
  border-bottom: 1px solid rgba(202, 179, 144, 0.75);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-text);
  padding-bottom: 20px;
}

.news-table__list {
  width: 100%;
}

.news-table__row {
  min-height: 70px;
  border-bottom: 1px solid rgba(202, 179, 144, 0.75);
}

.news-table__date {
  width: fit-content;
  min-width: 124px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  border: 1px solid var(--color-blue);
  border-radius: var(--radius-pill);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-blue);
  white-space: nowrap;
}

.news-table__title {

  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-blue);
  transition: opacity 0.2s ease;
}

.news-table__title:hover,
.news-table__title:focus-visible {
  opacity: 0.78;
}

.news-table__title:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 3px;
}

.news-table__image {
  width: 88px;
  height: 58px;
  border-radius: 8px;
  object-fit: cover;
}

.news-table-section__actions {
  display: flex;
  justify-content: center;
  margin-top: 72px;
}

.button--news-more {
  width: 330px;
  min-height: 56px;
  border-radius: 33px;
  font-size: 18px;
}

@media (min-width: 1024px) and (max-width: 1500px) {
  .news-table-section {
    min-height: 620px;
    padding: 56px 0 104px;
  }

  .news-table-section__container {
    width: min(980px, calc(100% - var(--container-padding) * 2));
  }

  .news-table__head,
  .news-table__row {
    grid-template-columns: 120px minmax(0, 1fr) 78px;
    column-gap: 32px;
  }

  .news-table__head {
    min-height: 40px;
    font-size: 14px;
  }

  .news-table__row {
    min-height: 64px;
  }

  .news-table__date {
    min-width: 112px;
    padding: 7px 14px;
    font-size: 14px;
  }

  .news-table__title {

    font-size: 15px;
  }

  .news-table__image {
    width: 78px;
    height: 52px;
  }

  .news-table-section__actions {
    margin-top: 56px;
  }
}
@media (max-width: 520px) {
  .news-table-section {
    min-height: auto;
    padding: 48px 0 72px;
  }

  .news-table-section::before {
    left: -260px;
    bottom: -280px;
    width: 520px;
    height: 520px;
  }

  .news-table-section__container {
    width: calc(100% - 48px);
  }

  .news-table__head {
    display: none;
  }

  .news-table__list {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .news-table__row {
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 0 20px;
    border-top: 1px solid rgba(202, 179, 144, 0.75);
    border-bottom: 0;
  }

  .news-table__row:last-child {
    border-bottom: 1px solid rgba(202, 179, 144, 0.75);
  }

  .news-table__image {
    display: none;
  }

  .news-table__date {
    min-width: 0;
    width: max-content;
    min-height: 34px;
    padding: 7px 16px;
    font-size: 15px;
  }

  .news-table__title {
    max-width: 100%;
    font-size: 15px;
    line-height: 1.18;
  }

  .news-table-section__actions {
    margin-top: 40px;
  }

  .button--news-more {
    width: 100%;
    min-height: 54px;
    font-size: 17px;
  }
}
/* page: gallery years */
.page-gallery__main {
  background: var(--color-white);
}

.gallery-years-section {
  position: relative;
  min-height: 708px;
  padding: 52px 0 116px;
  overflow: hidden;
  background: var(--color-white);
}

.gallery-years-section__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.gallery-years-section__bg::before {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
  width: 900px;
  height: 600px;
  border-radius: 0 100% 0 0;
  background: #EBEBEB80;
  content: "";
  pointer-events: none;
}

.gallery-years-section__container {
  position: relative;
  z-index: 1;
  width: min(1598px, calc(100% - var(--container-padding) * 2));
}

.gallery-years-section__title {
  margin: 0 0 64px;
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-blue);
  width: min(1392px, 100%);
  margin-inline: auto;
}

.gallery-years-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px 32px;
  width: min(1392px, 100%);
  margin-inline: auto;
}

.gallery-year-card {
  position: relative;
  isolation: isolate;
  min-height: 270px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: var(--radius-lg);
  color: var(--color-white);
  background: linear-gradient(180deg, #29315e 0%, #0160f3 100%);
  background-size: cover;
  background-repeat: no-repeat;
  box-shadow: 10px 0 30px rgba(0, 0, 0, 0.18);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    opacity 0.2s ease;
}

.gallery-year-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--gallery-year-image);
  background-position: center;
  background-size: cover;
  opacity: 0;
}

.gallery-year-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(41, 49, 94, 0.7) 0%, rgba(1, 96, 243, 0.88) 100%);
}

.gallery-year-card--photo::before {
  opacity: 1;
}
.gallery-year-card--2024::before {
  background-image: url("../img/gallery-01.png");
}

.gallery-year-card--2023::before {
  background-image: url("../img/gallery-03.png");
}

.gallery-year-card--2022::before {
  background-image: url("../img/gallery-02.png");
}

.gallery-year-card--photo-low::before {
  background-position: center bottom;
}

.gallery-year-card:hover,
.gallery-year-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 12px 8px 34px rgba(0, 0, 0, 0.22);
}

.gallery-year-card:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 4px;
}

.gallery-year-card__year {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  font-size: 58px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
}

.gallery-year-card__year::after {
  content: "";
  width: 70px;
  height: 4px;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
}

@media (min-width: 1024px) and (max-width: 1500px) {
  .gallery-years-section {
    min-height: 560px;
    padding: 40px 0 88px;
  }

  .gallery-years-section__bg {
    height: 326px;
  }

  .gallery-years-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
  }

  .gallery-years-section__title {
    margin-bottom: 48px;
    font-size: 40px;
  }

  .gallery-years-grid {
    gap: 28px 24px;
  }

  .gallery-year-card {
    min-height: 210px;
    border-radius: var(--radius-md);
  }

  .gallery-year-card__year {
    gap: 12px;
    font-size: 46px;
  }

  .gallery-year-card__year::after {
    width: 56px;
    height: 3px;
  }
}

@media (min-width: 901px) and (max-width: 1000px) {
  .gallery-years-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .gallery-years-section {
    min-height: auto;
    padding: 40px 0 72px;
  }

  .gallery-years-section__bg {
    height: calc(100% - 134px);
  }

  .gallery-years-section__bg::after {
    left: 42%;
    width: 180px;
  }

  .gallery-years-section__title {
    margin-bottom: 32px;
    font-size: 32px;
  }

  .gallery-years-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .gallery-year-card {
    min-height: 160px;
    border-radius: var(--radius-md);
  }

  .gallery-year-card__year {
    gap: 10px;
    font-size: 38px;
  }
}
@media (max-width: 425px) {
  .gallery-years-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* page: about */
.page-about__main {
  background: var(--color-white);
}

.about-intro-section {
  padding: 92px 0 136px;
  overflow: hidden;
  background: var(--color-white);
}

.about-intro-section__container {
  width: min(1438px, calc(100% - var(--container-padding) * 2));
  display: grid;
  grid-template-columns: minmax(0, 820px) 454px;
  gap: 164px;
  align-items: stretch;
}

.about-intro-section__content {
  padding-top: 10px;
}

.about-intro-section__title {
  margin: 0 0 48px;
  font-size: 64px;
  font-weight: 800;
  line-height: 1.05;
  color: var(--color-blue);
}

.about-intro-section__lead {
  max-width: 820px;
  margin: 0 0 32px;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-blue);
}

.about-intro-section__text {
  max-width: 700px;
  margin: 0;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--color-text);
}

.about-intro-card {
  min-height: 430px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 48px 44px;
  overflow: hidden;
  border-radius: var(--radius-xl);
  color: var(--color-white);
  background: linear-gradient(180deg, var(--color-blue-bright) 0%, var(--color-blue) 100%);
  box-shadow: var(--shadow-card);
}

.about-intro-card__eyebrow {
  margin: 0;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
}

.about-intro-card__title {
  margin: 0;
  font-size: 52px;
  font-weight: 800;
  line-height: 1.05;
}

@media (min-width: 1024px) and (max-width: 1500px) {
  .about-intro-section {
    padding: 72px 0 104px;
  }

  .about-intro-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 72px;
  }

  .about-intro-section__title {
    margin-bottom: 36px;
    font-size: 52px;
  }

  .about-intro-section__lead {
    font-size: 26px;
  }

  .about-intro-section__text {
    font-size: 20px;
  }

  .about-intro-card {
    min-height: 360px;
    padding: 40px 36px;
  }

  .about-intro-card__title {
    font-size: 42px;
  }
}

@media (max-width: 900px) {
  .about-intro-section {
    padding: 48px 0 72px;
  }

  .about-intro-section__container {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .about-intro-section__title {
    margin-bottom: 28px;
    font-size: 40px;
  }

  .about-intro-section__lead {
    font-size: 24px;
  }

  .about-intro-section__text {
    font-size: 18px;
  }

  .about-intro-card {
    min-height: 280px;
    padding: 32px;
  }

  .about-intro-card__title {
    font-size: 38px;
  }
}
/* component: content-slider */
.hero-slider-section {
  padding: 0 0 136px;
  background: var(--color-white);
}

.hero-slider-section__container {
  width: min(var(--container-width), calc(100% - var(--container-padding) * 2));
}

.content-slider {
  position: relative;
}

.content-slider__viewport {
  overflow: hidden;
  border-radius: var(--radius-xl);
}

.content-slider__track {
  align-items: stretch;
}

.content-slider__slide {
  height: auto;
}

.content-slider__controls {
  position: absolute;
  right: 48px;
  bottom: 40px;
  left: 48px;
  z-index: 4;
  display: grid;
  grid-template-columns: 56px minmax(120px, 1fr) 56px;
  gap: 20px;
  align-items: center;
  opacity: 0;
  pointer-events: none;
}

.gallery-years-section__bg::before {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
  width: 900px;
  height: 600px;
  border-radius: 0 100% 0 0;
  background: #EBEBEB80;
  content: "";
  pointer-events: none;
}
.content-slider.is-ready .content-slider__controls {
  opacity: 1;
  pointer-events: auto;
}

.content-slider__controls--pagination-only {
  right: auto;
  bottom: 42px;
  left: 56px;
  width: calc(44.5% - 112px);
  display: block;
}

.content-slider__arrow {
  position: relative;
  width: 56px;
  height: 56px;
  padding: 0;
  border: 2px solid var(--color-white);
  border-radius: 50%;
  color: var(--color-white);
  background: rgba(41, 51, 125, 0.38);
  cursor: pointer;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    opacity 0.2s ease;
}

.content-slider__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 13px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
}

.content-slider__arrow--prev::before {
  transform: translate(-38%, -50%) rotate(-135deg);
}

.content-slider__arrow--next::before {
  transform: translate(-62%, -50%) rotate(45deg);
}

.content-slider__arrow:hover,
.content-slider__arrow:focus-visible {
  color: var(--color-blue);
  background: var(--color-white);
}

.content-slider__arrow:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.45);
  outline-offset: 3px;
}

.content-slider__arrow.swiper-button-disabled {
  opacity: 0.35;
  cursor: default;
}

.content-slider__pagination {
  position: static;
  min-height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.content-slider__controls--pagination-only .content-slider__pagination {
  justify-content: flex-start;
}

.content-slider__bullet {
  width: 14px;
  height: 14px;
  display: block;
  flex: 0 0 14px;
  padding: 0;
  border: 1px solid var(--color-white);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.content-slider__bullet--active {
  border-color: var(--color-white);
  background: var(--color-accent);
}

.content-slider--hero .content-slider__viewport,
.hero-slide {
  min-height: 596px;
}

.hero-slide {
  --hero-media-overlap: 48px;

  position: relative;
  display: grid;
  grid-template-columns: 44.5% 55.5%;
  isolation: isolate;
  overflow: hidden;
  color: var(--color-white);
  /* background: var(--color-blue); */
}

.hero-slide__content {
  position: relative;
  z-index: 2;
  min-width: 0;
  min-height: 596px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 58px 56px 96px;
  border-radius: 0 var(--radius-xl) var(--radius-xl) 0;
  background: linear-gradient(135deg, #061a9d 0%, #0160f3 100%);
}

.hero-slide__date {
  margin-bottom: 34px;
}

.hero-slide__title {
  margin: 0;
  font-size: 50px;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: 0;
}

@media (max-width: 1199px) {
  .hero-slide__title {
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    overflow-wrap: break-word;
    word-break: normal;
  }
}

.hero-slide__actions {
  margin-top: 42px;
}

.hero-slide__actions .button {
  min-width: 220px;
}

.hero-slide__media {
  position: relative;
  z-index: 1;
  width: calc(100% + var(--hero-media-overlap));
  margin-left: calc(var(--hero-media-overlap) * -1);
  min-width: 0;
  min-height: 596px;
  overflow: hidden;
  background: var(--color-accent);
}

.hero-slide__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (min-width: 1024px) and (max-width: 1500px) {
  .hero-slider-section {
    padding-bottom: 104px;
  }

  .hero-slide {
    --hero-media-overlap: 36px;
  }

  .content-slider--hero .content-slider__viewport,
  .hero-slide,
  .hero-slide__content,
  .hero-slide__media {
    min-height: 480px;
  }

  .hero-slide__content {
    padding: 48px 40px 84px;
  }

  .hero-slide__date {
    margin-bottom: 28px;
  }

  .hero-slide__title {
    font-size: 38px;
  }

  .hero-slide__actions {
    margin-top: 34px;
  }

  .hero-slide__actions .button {
    min-width: 170px;
  }

  .content-slider__controls--pagination-only {
    bottom: 34px;
    left: 40px;
    width: calc(44.5% - 80px);
  }
}

@media (max-width: 900px) {
  .hero-slider-section {
    padding-bottom: 72px;
  }

  .hero-slide {
    --hero-media-overlap: 40px;

    grid-template-columns: 1fr;
  }

  .content-slider--hero .content-slider__viewport,
  .hero-slide {
    min-height: auto;
  }

  .hero-slide__content {
    min-height: 360px;
    padding: 40px 32px;
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
  }

  .hero-slide__media {
    width: 100%;
    margin-top: calc(var(--hero-media-overlap) * -1);
    margin-left: 0;
    min-height: 320px;
  }

  .hero-slide__title {
    font-size: 36px;
  }

  .hero-slide__actions {
    margin-top: 30px;
  }

  .content-slider__controls--pagination-only {
    /* top: 302px; */
    right: 32px;
    /* bottom: auto; */
    left: 32px;
    width: auto;
  }
}

@media (max-width: 576px) {
    .hero-slide__title {
        font-size: 28px;
      }
}

@media (prefers-reduced-motion: reduce) {
  .content-slider__arrow,
  .content-slider__bullet {
    transition: none;
  }
}
/* component: event-card and upcoming slider */
.upcoming-events-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: 0 0 136px;
  background: var(--color-white);
}

.upcoming-events-section::after {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 0;
  width: 858px;
  height: 600px;
  border-radius: 0 100% 0 0;
  background: rgba(202, 179, 144, 0.18);
  content: "";
  pointer-events: none;
}

.upcoming-events-section .event-card__media--catalog {
  height: 225px;
  flex-basis: 225px;
}

.upcoming-events-section__container {
  position: relative;
  z-index: 1;
  width: min(1438px, calc(100% - var(--container-padding) * 2));
}

.upcoming-events-section__header {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 52px;
}

.upcoming-events-section__title {
  color: var(--color-blue);
}

.content-slider__controls--events {
  position: static;
  display: flex;
  grid-template-columns: none;
  gap: 16px;
  opacity: 0;
}

.content-slider.is-ready .content-slider__controls--events {
  opacity: 1;
}

.content-slider__controls--events .content-slider__arrow {
  color: var(--color-blue);
  border-color: var(--color-blue);
  background: var(--color-white);
}

.content-slider__controls--events .content-slider__arrow:hover,
.content-slider__controls--events .content-slider__arrow:focus-visible {
  color: var(--color-white);
  background: var(--color-blue);
}

.content-slider__controls--events .content-slider__arrow:focus-visible {
  outline-color: rgba(41, 51, 125, 0.25);
}

.content-slider--events .content-slider__viewport {
  margin: -24px -28px -76px;
  padding: 24px 28px 76px;
  overflow: hidden;
  border-radius: 0;
}

.content-slider--events .content-slider__slide {
  display: flex;
}

.event-card {
  position: relative;
  width: 100%;
  min-height: 620px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--radius-lg);
  color: var(--color-blue);
  background: var(--color-white);
  box-shadow: 8px 16px 48px rgba(25, 31, 72, 0.12);
}

.event-card__media {
  position: relative;
  height: 286px;
  flex: 0 0 286px;
  overflow: hidden;
  background: var(--color-blue);
  border-radius: var(--radius-lg);
}

.event-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-card__date {
  position: absolute;
  top: 24px;
  left: 24px;
}

.event-card__body {
  min-height: 334px;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 30px 28px 28px;
}

.event-card__place {
  margin: 0 0 14px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-text);
}

.event-card__title {
  margin: 0 0 12px;
  font-size: 26px;
  font-weight: 800;
  line-height: 1.15;
  color: var(--color-blue);
}

.event-card__subtitle {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--color-text);
}

.event-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: auto;
  padding-top: 28px;
}

.event-card__button {
  min-width: 0;
  min-height: 52px;
  padding: 12px 18px;
  border-radius: var(--radius-md);
  font-size: 16px;
  font-weight: 600;
}

.event-card__button--outline {
  color: var(--color-blue);
  border: 2px solid var(--color-blue);
  background: transparent;
}

.event-card__button--outline:hover,
.event-card__button--outline:focus-visible {
  color: var(--color-white);
  background: var(--color-blue);
  opacity: 1;
}

@media (min-width: 1024px) and (max-width: 1500px) {
  .upcoming-events-section {
    padding-bottom: 104px;
  }

  .upcoming-events-section::after {
    right: -520px;
    bottom: -400px;
    width: 900px;
    height: 640px;
  }

  .gallery-section::before {
    top: -240px;
    right: -520px;
    width: 900px;
    height: 640px;
  }

  .upcoming-events-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
  }

  .upcoming-events-section__header {
    margin-bottom: 40px;
  }

  .event-card {
    min-height: 560px;
  }

  .event-card__media {
    height: 238px;
    flex-basis: 238px;
  }

  .event-card__body {
    min-height: 322px;
    padding: 26px 22px 24px;
  }

  .event-card__title {
    font-size: 22px;
  }

  .event-card__subtitle {
    font-size: 16px;
  }

  .event-card__actions {
    grid-template-columns: 1fr;
    gap: 10px;
    padding-top: 22px;
  }

  .event-card__button {
    min-height: 46px;
    font-size: 15px;
  }
}

@media (max-width: 900px) {
  .upcoming-events-section {
    padding-bottom: 72px;
  }

  .upcoming-events-section::after {
    right: -500px;
    bottom: -300px;
    width: 720px;
    height: 500px;
  }

  .gallery-section::before {
    top: -200px;
    right: -500px;
    width: 720px;
    height: 500px;
  }

  .upcoming-events-section__header {
    min-height: 56px;
    margin-bottom: 32px;
  }

  .content-slider__controls--events {
    gap: 10px;
  }

  .content-slider__controls--events .content-slider__arrow {
    width: 44px;
    height: 44px;
  }

  .content-slider--events .content-slider__viewport {
    margin-right: calc(var(--container-padding) * -1);
    padding-right: var(--container-padding);
  }

  .event-card {
    min-height: 540px;
  }

  .event-card__media {
    height: 230px;
    flex-basis: 230px;
  }

  .event-card__body {
    min-height: 310px;
    padding: 24px 20px;
  }

  .event-card__title {
    font-size: 22px;
  }
}
@media (min-width: 761px) and (max-width: 1199px) {
  .upcoming-events-section {
    min-height: 725px;
    padding: 81px 0 104px;
  }

  .upcoming-events-section::after {
    width: 427px;
    height: 307px;
    right: auto;
    bottom: 0;
    left: 0;
  }

  .upcoming-events-section__container {
    width: auto;
    margin-left: 64px;
    margin-right: 0;
  }

  .upcoming-events-section__header {
    min-height: 35px;
    margin-bottom: 24px;
  }

  .upcoming-events-section__title {
    font-size: 32px;
  }

  .content-slider--events .content-slider__viewport {
    width: calc(100vw - 64px);
    margin: -28px 0 -52px;
    padding: 28px 0 52px;
    overflow: visible;
  }

  .content-slider--events .content-slider__slide {
    --event-slide-width: 394px;

    width: var(--event-slide-width) !important;
    flex: 0 0 var(--event-slide-width);
  }

  .content-slider--events .event-card--catalog {
    width: 100%;
    min-height: 481px;
    border-radius: 32px;
    box-shadow: 10px 0 34px rgba(0, 0, 0, 0.12);
  }

  .content-slider--events .event-card__media--catalog {
    height: 230px;
    flex-basis: 230px;
    border-radius: 32px;
  }

  .content-slider--events .event-card__body--catalog {
    min-height: 251px;
    padding: 24px 32px 32px;
  }

  .content-slider--events .event-card__meta {
    gap: 12px;
  }

  .content-slider--events .event-card__catalog-date {
    min-width: 0;
    min-height: 25px;
    padding: 4px 10px;
    font-size: 14px;
  }

  .content-slider--events .event-card__place--catalog {
    font-size: 12px;
  }

  .content-slider--events .event-card__description {
    gap: 8px;
    margin-top: 18px;
  }

  .content-slider--events .event-card__title--catalog {
    font-size: 18px;
    line-height: 1.3;
  }

  .content-slider--events .event-card__subtitle--catalog {
    font-size: 16px;
  }

  .content-slider--events .event-card__actions--catalog {
    grid-template-columns: 172px 144px;
    gap: 14px;
    padding-top: 25px;
  }

  .content-slider--events .event-card__button--catalog {
    min-height: 40px;
    padding: 10px 24px;
    border-radius: 24px;
    font-size: 16px;
  }
}
@media (max-width: 760px) {
  .upcoming-events-section__container {
    width: auto;
    margin-left: var(--container-padding);
    margin-right: 0;
  }

  .content-slider--events .content-slider__viewport {
    width: calc(100vw - var(--container-padding));
    margin: -24px 0 -52px;
    padding: 24px 0 52px;
    overflow: visible;
  }

  .content-slider--events .content-slider__slide {
    --event-slide-width: clamp(280px, calc(100vw - 64px), 394px);

    width: var(--event-slide-width) !important;
    flex: 0 0 var(--event-slide-width);
  }

  .content-slider--events .event-card--catalog {
    width: 100%;
  }
}
/* fix: event slider side controls */
.upcoming-events-section__header {
  justify-content: flex-start;
}

.upcoming-events-section__slider-frame {
  position: relative;
  overflow: visible;
}

.content-slider__controls--events {
  position: absolute;
  top: 50%;
  right: -76px;
  bottom: auto;
  left: -76px;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0;
  transform: translateY(-50%);
  pointer-events: none;
}

.content-slider.is-ready .content-slider__controls--events {
  opacity: 1;
  pointer-events: none;
}

.content-slider__controls--events .content-slider__arrow {
  flex: 0 0 auto;
  color: var(--color-white);
  border-color: var(--color-accent);
  background: var(--color-accent);
  pointer-events: auto;
}

.content-slider__controls--events .content-slider__arrow:hover,
.content-slider__controls--events .content-slider__arrow:focus-visible {
  color: var(--color-white);
  border-color: var(--color-accent);
  background: var(--color-accent);
}

@media (min-width: 1200px) and (max-width: 1619px) {
  .content-slider__controls--events {
    top: -70px;
    right: 0;
    left: auto;
    gap: 16px;
    transform: none;
  }
}

@media (min-width: 901px) and (max-width: 1199px) {
  .upcoming-events-section__slider-frame {
    max-width: none;
    margin-inline: 0;
  }

  .content-slider__controls--events {
    top: -30px;
    right: 70px;
    left: auto;
    gap: 16px;
    transform: none;
  }
}

@media (max-width: 900px) {
  .content-slider__controls--events {
    top: -30px;
    right: 50px;
    left: auto;
    gap: 10px;
    transform: none;
  }
}

@media (max-width: 768px) {
  .content-slider__controls--events {
    display: none;
  }
}
/* page: event detail */
.page-event-detail__main {
  padding: 16px 0 120px;
}

.event-detail-hero {
  display: grid;
  min-height: 600px;
  grid-template-columns: 44.56% 55.44%;
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: #becade;
}

.event-detail-hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(40px, 4.27vw, 82px) clamp(32px, 3.96vw, 76px);
  color: var(--color-white);
  background: radial-gradient(
    ellipse 120% 145% at 0% 27%,
    #040a83 0%,
    #031998 16%,
    #0227ad 32%,
    #0045d7 65%,
    #0a40c0 74%,
    #153caa 82%,
    #29337d 100%
  );
  border-radius: 40px;
}

.event-detail-hero__date {
  display: inline-flex;
  min-height: clamp(38px, 2.5vw, 48px);
  align-items: center;
  justify-content: center;
  margin-bottom: clamp(24px, 2.34vw, 45px);
  padding: 8px clamp(16px, 1.3vw, 25px);
  border: 1px solid currentColor;
  border-radius: var(--radius-pill);
  font-size: clamp(16px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.event-detail-hero__title {
  max-width: 560px;
  margin: 0 0 clamp(18px, 1.67vw, 32px);
  font-size: clamp(32px, 2.6vw, 50px);
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-white);
}

.event-detail-hero__description {
  max-width: 550px;
  margin: 0;
  font-size: clamp(17px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-accent);
}

.event-detail-hero__button {
  min-height: clamp(48px, 3.13vw, 60px);
  margin-top: clamp(36px, 3.33vw, 64px);
  padding: 12px clamp(28px, 2.08vw, 40px);
  font-size: clamp(17px, 1.15vw, 22px);
  font-weight: 600;
  line-height: 1.4;
}

.event-detail-hero__media {
  margin-left: -40px;
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.event-detail-hero__image {
  position: absolute;
  right: 0;
  bottom: 0;
  /* width: 109.25%; */
  width: 100%;
  max-width: none;
  /* height: 107.67%; */
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1100px) {
  .event-detail-hero {
    grid-template-columns: 46% 54%;
  }

  .event-detail-hero__content {
    padding: 36px 32px;
  }

  .event-detail-hero__date {
    margin-bottom: 22px;
  }

  .event-detail-hero__title {
    margin-bottom: 16px;
    font-size: 32px;
  }

  .event-detail-hero__description {
    font-size: 17px;
  }
}

@media (max-width: 960px) {
  .page-event-detail__main {
    padding: 12px 0 72px;
  }

  .event-detail-hero {
    min-height: unset;
    grid-template-columns: 1fr;
    aspect-ratio: auto;
    /* border-radius: var(--radius-lg); */
  }

  .event-detail-hero__content {
    min-height: 0;
    padding: 32px 32px 30px;
  }

  .event-detail-hero__date {
    min-height: 34px;
    margin-bottom: 18px;
    padding: 7px 16px;
    font-size: 13px;
  }

  .event-detail-hero__title {
    max-width: 520px;
    margin-bottom: 12px;
    font-size: 30px;
  }

  .event-detail-hero__description {
    max-width: 520px;
    font-size: 16px;
  }

  .event-detail-hero__button {
    min-height: 48px;
    margin-top: 26px;
    padding: 10px 28px;
    font-size: 16px;
  }

  .event-detail-hero__media {
    margin-left: 0;
    margin-top: -40px;
    /* height: clamp(210px, 38vw, 320px); */
    height: 400px;
    aspect-ratio: auto;
  }

  .event-detail-hero__image {
    position: static;
    width: 100%;
    height: 100%;
  }
}

@media (max-width: 420px) {
  .event-detail-hero__content {
    padding: 28px 20px 30px;
  }

  .event-detail-hero__date {
    min-height: 31px;
    margin-bottom: 14px;
    padding: 6px 13px;
    font-size: 11px;
  }

  .event-detail-hero__title {
    margin-bottom: 10px;
    font-size: 22px;
  }

  .event-detail-hero__description {
    font-size: 12px;
  }

  .event-detail-hero__button {
    min-height: 42px;
    margin-top: 22px;
    padding: 9px 24px;
    font-size: 14px;
  }

  /* .event-detail-hero__media {
    height: 178px;
  } */
}
/* page: event detail content and gallery */
.page-event-detail__main {
  padding-bottom: 0;
}

.event-detail-content-section {
  position: relative;
  overflow: hidden;
  background: var(--color-white);
}

.event-detail-content-section::before {
  position: absolute;
  top: 520px;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
  background: linear-gradient(180deg, #0160f4 0%, #29337d 100%);
}

.event-detail-content-section__container {
  position: relative;
  z-index: 1;
  padding-top: 100px;
  padding-bottom: 165px;
}

.event-detail-info-card {
  /* height: 923px; */
  padding: 80px 76px;
  padding-bottom: 320px;
  border-radius: var(--radius-xl);
  color: var(--color-text);
  background: var(--color-white);
  box-shadow: 0 0 34px rgba(0, 0, 0, 0.12);
}

.event-detail-info-card__content {
  max-width: 1358px;
}

.event-detail-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.event-detail-meta__item {
  display: inline-flex;
  min-height: 53px;
  align-items: center;
  justify-content: center;
  padding: 10px 25px;
  border: 1px solid #000000;
  border-radius: var(--radius-pill);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.event-detail-location {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  margin: 32px 0 0;
  font-size: 23px;
  font-weight: 500;
  line-height: 1.2;
}

.event-detail-location__icon {
  width: 30px;
  height: 40px;
  flex: 0 0 auto;
}

.event-detail-description {
  max-width: 1358px;
  margin-top: 56px;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
}

.event-detail-description p {
  margin: 0 0 24px;
}

.event-detail-description p:last-child {
  margin-bottom: 0;
}

.event-detail-gallery {
  position: relative;
  z-index: 2;
  width: calc(100% - 152px);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: 32px;
  margin: -274px auto 0;
}

.event-detail-gallery__item {
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: #becade;
}

.event-detail-gallery__item--1 {
  width: 44.95%;
  aspect-ratio: 650 / 449;
}

.event-detail-gallery__item--2 {
  width: 52.84%;
  aspect-ratio: 764 / 449;
}

.event-detail-gallery__item--3,
.event-detail-gallery__item--5 {
  width: 32.64%;
  aspect-ratio: 472 / 305;
}

.event-detail-gallery__item--4 {
  width: 31.67%;
  aspect-ratio: 458 / 305;
}

.event-detail-gallery__item--6 {
  width: 49.17%;
  aspect-ratio: 711 / 449;
}

.event-detail-gallery__item--7 {
  width: 48.89%;
  aspect-ratio: 707 / 449;
}

.event-detail-gallery__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-detail-content-section__button {
  display: flex;
  width: 465px;
  min-height: 60px;
  margin: 82px auto 0;
  padding: 14px 56px;
  font-size: 22px;
  line-height: 1.4;
}

@media (min-width: 901px) and (max-width: 1500px) {
  .event-detail-content-section::before {
    top: 430px;
  }

  .event-detail-content-section__container {
    padding-top: 80px;
    padding-bottom: 120px;
  }

  .event-detail-info-card {
    height: auto;
    min-height: 760px;
    padding: 64px 56px;
    padding-bottom: 19vw;
  }

  .event-detail-meta__item {
    min-height: 46px;
    padding: 9px 20px;
    font-size: 19px;
  }

  .event-detail-location {
    font-size: 19px;
  }

  .event-detail-description {
    margin-top: 44px;
    font-size: 18px;
  }

  .event-detail-gallery {
    width: calc(100% - 112px);
    margin-top: max(-274px, -17vw);
  }

  .event-detail-content-section__button {
    margin-top: 64px;
  }
}

@media (max-width: 900px) {
  .event-detail-content-section {
    background: var(--color-white);
  }

  .event-detail-content-section::before {
    top: clamp(300px, 42vw, 430px);
    background: linear-gradient(180deg, #0160f4 0%, #29337d 100%);
  }

  .event-detail-content-section__container {
    width: calc(100% - 64px);
    padding-top: 128px;
    padding-bottom: 88px;
  }

  .event-detail-info-card {
    height: auto;
    padding: 42px 36px 46px;
    border-radius: var(--radius-lg);
  }

  .event-detail-meta {
    gap: 8px;
  }

  .event-detail-meta__item {
    min-height: 40px;
    padding: 8px 16px;
    font-size: 16px;
  }

  .event-detail-location {
    align-items: flex-start;
    margin-top: 28px;
    font-size: 17px;
    line-height: 1.3;
  }

  .event-detail-location__icon {
    width: 22px;
    height: 30px;
  }

  .event-detail-description {
    margin-top: 36px;
    font-size: 17px;
    line-height: 1.35;
  }

  .event-detail-description p {
    margin-bottom: 18px;
  }

  .event-detail-gallery {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 36px;
  }

  .event-detail-gallery__item,
  .event-detail-gallery__item--1,
  .event-detail-gallery__item--2,
  .event-detail-gallery__item--3,
  .event-detail-gallery__item--4,
  .event-detail-gallery__item--5,
  .event-detail-gallery__item--6,
  .event-detail-gallery__item--7 {
    width: auto;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-md);
  }

  .event-detail-gallery__item--1,
  .event-detail-gallery__item--2,
  .event-detail-gallery__item--6,
  .event-detail-gallery__item--7 {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 9;
  }

  .event-detail-content-section__button {
    width: min(100%, 360px);
    min-height: 56px;
    margin-top: 48px;
    font-size: 18px;
  }
}

@media (min-width: 769px) and (max-width: 900px) {
  .event-detail-gallery {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    grid-template-columns: none;
    gap: 16px;
    row-gap: 0;
    margin: 36px 0 0;
    padding: 0 40px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: 40px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .event-detail-gallery::-webkit-scrollbar {
    display: none;
  }

  .event-detail-gallery__item,
  .event-detail-gallery__item--1,
  .event-detail-gallery__item--2,
  .event-detail-gallery__item--3,
  .event-detail-gallery__item--4,
  .event-detail-gallery__item--5,
  .event-detail-gallery__item--6,
  .event-detail-gallery__item--7 {
    width: auto;
    aspect-ratio: 4 / 3;
    flex: 0 0 clamp(340px, calc(100vw - 220px), 520px);
    border-radius: 24px;
    scroll-snap-align: center;
  }
}
@media (max-width: 768px) {
  .event-detail-content-section::before {
    top: clamp(280px, 42vw, 340px);
  }

  .event-detail-content-section__container {
    width: 100%;
    max-width: none;
    padding-top: 112px;
    padding-bottom: 76px;
  }

  .event-detail-info-card {
    width: calc(100% - 64px);
    margin-inline: auto;
    padding: 36px 28px 40px;
  }

  .event-detail-meta__item {
    min-height: 38px;
    padding: 8px 14px;
    font-size: 15px;
  }

  .event-detail-location {
    gap: 10px;
    font-size: 16px;
  }

  .event-detail-description {
    margin-top: 32px;
    font-size: 16px;
  }

  .event-detail-gallery {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    row-gap: 0;
    grid-template-columns: none;
    gap: 14px;
    margin: 40px 0 0;
    padding: 0 32px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: 32px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .event-detail-gallery::-webkit-scrollbar {
    display: none;
  }

  .event-detail-gallery__item,
  .event-detail-gallery__item--1,
  .event-detail-gallery__item--2,
  .event-detail-gallery__item--3,
  .event-detail-gallery__item--4,
  .event-detail-gallery__item--5,
  .event-detail-gallery__item--6,
  .event-detail-gallery__item--7 {
    width: auto;
    aspect-ratio: 4 / 3;
    flex: 0 0 clamp(248px, calc(100vw - 128px), 420px);
    border-radius: 24px;
    scroll-snap-align: center;
  }

  .event-detail-content-section__button {
    width: min(360px, calc(100% - 64px));
    margin-top: 44px;
  }
}

@media (max-width: 420px) {
  .event-detail-content-section::before {
    top: clamp(220px, 58vw, 260px);
  }

  .event-detail-content-section__container {
    padding-top: 88px;
    padding-bottom: 64px;
  }

  .event-detail-info-card {
    width: calc(100% - 48px);
    padding: 30px 20px 34px;
    border-radius: 28px;
  }

  .event-detail-meta {
    align-items: flex-start;
    gap: 8px;
  }

  .event-detail-meta__item {
    min-height: 34px;
    padding: 7px 12px;
    font-size: 13px;
    white-space: normal;
  }

  .event-detail-location {
    margin-top: 24px;
    font-size: 14px;
  }

  .event-detail-location__icon {
    width: 18px;
    height: 25px;
  }

  .event-detail-description {
    margin-top: 28px;
    font-size: 14px;
    line-height: 1.36;
  }

  .event-detail-description p {
    margin-bottom: 16px;
  }

  .event-detail-gallery {
    width: 100%;
    gap: 12px;
    margin-top: 32px;
    padding-inline: 24px;
    scroll-padding-inline: 24px;
  }

  .event-detail-gallery__item,
  .event-detail-gallery__item--1,
  .event-detail-gallery__item--2,
  .event-detail-gallery__item--3,
  .event-detail-gallery__item--4,
  .event-detail-gallery__item--5,
  .event-detail-gallery__item--6,
  .event-detail-gallery__item--7 {
    flex-basis: calc(100vw - 112px);
    border-radius: 22px;
  }

  .event-detail-content-section__button {
    width: calc(100% - 48px);
    min-height: 54px;
    margin-top: 38px;
    font-size: 17px;
  }
}
/* page: event artists */
.event-artists-section {
  position: relative;
  /*min-height: 1084px;*/
  padding: 150px 0 186px;
  overflow: hidden;
  color: var(--color-white);
  background: var(--color-blue);
}

.event-artists-section__decor {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 1237px;
  height: 1084px;
  pointer-events: none;
}

.event-artists-section__container {
  position: relative;
  z-index: 1;
}

.event-artists-section__inner {
  margin-left: 76px;
}

.event-artists-section__title {
  margin: 0 0 81px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--color-white);
}

.event-artists-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 32px 22px;
}

.artist-card {
  position: relative;
  display: block;
  aspect-ratio: 235 / 292;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: #becade;
  isolation: isolate;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.artist-card::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  height: 39.38%;
  content: "";
  background: linear-gradient(180deg, rgba(49, 85, 233, 0) 0%, #3155e9 100%);
}

.artist-card__placeholder {
  position: absolute;
  top: 22.95%;
  left: 26.81%;
  z-index: 2;
  width: 46.81%;
  height: 40.75%;
}

.artist-card__name {
  position: absolute;
  top: 75.34%;
  left: 4.26%;
  z-index: 2;
  width: 91.91%;
  display: flex;
  flex-direction: column;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-white);
}

.artist-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.2);
}

.artist-card:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 4px;
  transform: translateY(-4px);
}

@media (min-width: 1201px) and (max-width: 1500px) {
  .event-artists-section {
    min-height: auto;
    padding: 120px 0 140px;
  }

  .event-artists-section__inner {
    margin-left: 56px;
  }

  .event-artists-section__title {
    margin-bottom: 64px;
    font-size: 40px;
  }

  .event-artists-grid {
    gap: 28px 18px;
  }

  .artist-card__name {
    font-size: 17px;
  }
}

@media (max-width: 1200px) {
  .event-artists-section {
    min-height: auto;
    padding: 96px 0 112px;
  }

  .event-artists-section__decor {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
  }

  .event-artists-section__inner {
    margin-left: 0;
  }

  .event-artists-section__title {
    margin-bottom: 56px;
    font-size: 38px;
  }

  .event-artists-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }

  .artist-card__name {
    font-size: 18px;
  }
}

@media (max-width: 800px) {
  .event-artists-section {
    padding: 72px 0 88px;
  }

  .event-artists-section__title {
    margin-bottom: 40px;
    font-size: 34px;
  }

  .event-artists-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }

  .artist-card__name {
    font-size: 16px;
  }
}

@media (max-width: 768px) {
  .event-artists-grid__item:nth-child(n + 7) {
    display: none;
  }
}
@media (max-width: 560px) {
  .event-artists-section {
    padding: 56px 0 72px;
  }

  .event-artists-section__title {
    margin-bottom: 32px;
    font-size: 32px;
  }

  .event-artists-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .artist-card {
    border-radius: var(--radius-md);
  }

  .artist-card__name {
    font-size: 14px;
  }
}

@media (max-width: 425px) {
  .event-artists-section {
    overflow: hidden;
  }

  .event-artists-section__inner {
    width: 100vw;
    margin-left: calc((100vw - 100%) / -2);
  }

  .event-artists-section__title {
    width: calc(100% - var(--container-padding) * 2);
    margin-right: auto;
    margin-left: auto;
  }

  .event-artists-grid {
    display: flex;
    grid-template-columns: none;
    gap: 14px;
    padding: 0 28px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: 28px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .event-artists-grid::-webkit-scrollbar {
    display: none;
  }

  .event-artists-grid__item {
    flex: 0 0 clamp(136px, 42vw, 166px);
    scroll-snap-align: start;
  }

  .artist-card {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .artist-card {
    transition: none;
  }
}

/* page: event location */
.event-location-section {
  min-height: 1030px;
  padding: 120px 0 170px;
  color: #000000;
  background: var(--color-bg-light);
}

.event-location-section__inner {
  margin-left: 76px;
}

.event-location-section__title {
  margin: 0 0 46px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--color-blue);
}

.event-location-section__address {
  margin: 0 0 32px;
  font-size: 24px;
  font-weight: 600;
  font-style: normal;
  line-height: 1.4;
}

.event-location-map {
  position: relative;
  width: 100%;
  height: 578px;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: #e7edf3;
}

.event-location-map__fallback,
.event-location-map__api-root {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.event-location-map__api-root {
  z-index: 2;
  opacity: 0;
}

.event-location-map.is-api-ready .event-location-map__api-root {
  opacity: 1;
}

.event-location-map__controls {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.event-location-map__control {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
  color: var(--color-blue);
  background: var(--color-white);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
  cursor: pointer;
}

.event-location-map__control:hover {
  background: #f0f2f8;
}

.event-location-map__control:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 2px;
}

.event-location-map__marker {
  position: relative;
  width: 42px;
  height: 42px;
  border: 3px solid var(--color-white);
  border-radius: 50% 50% 50% 0;
  background: var(--color-blue);
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.28);
  transform: translate(-50%, -100%) rotate(-45deg);
}

.event-location-map__marker::after {
  position: absolute;
  top: 11px;
  left: 11px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  content: "";
  background: var(--color-white);
}

.event-location-map noscript a {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  color: var(--color-blue);
}

@media (min-width: 901px) and (max-width: 1500px) {
  .event-location-section {
    min-height: auto;
    padding: 96px 0 120px;
  }

  .event-location-section__inner {
    margin-left: 56px;
  }

  .event-location-section__title {
    margin-bottom: 36px;
    font-size: 40px;
  }

  .event-location-section__address {
    font-size: 20px;
  }

  .event-location-map {
    height: 480px;
  }
}

@media (max-width: 900px) {
  .event-location-section {
    min-height: auto;
    padding: 72px 0 88px;
  }

  .event-location-section__inner {
    margin-left: 0;
  }

  .event-location-section__title {
    margin-bottom: 28px;
    font-size: 36px;
  }

  .event-location-section__address {
    margin-bottom: 28px;
    font-size: 18px;
  }

  .event-location-map {
    height: 420px;
    border-radius: var(--radius-md);
  }
}

@media (max-width: 560px) {
  .event-location-section {
    padding: 56px 0 72px;
  }

  .event-location-section__title {
    font-size: 32px;
  }

  .event-location-map {
    height: 360px;
  }
}

/* News detail page */
.page-news-detail {
  background: var(--color-blue);
}

.site-header--news-detail {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  background: rgba(41, 51, 125, 0.4);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

.site-header--news-detail .site-nav__link {
  border-color: var(--color-accent);
}

.site-header--news-detail .site-nav__link:hover,
.site-header--news-detail .site-nav__link:focus-visible,
.site-header--news-detail .site-nav__link--active {
  color: var(--color-white);
  border-color: var(--color-accent);
  background: var(--color-accent);
}

.page-news-detail__main {
  background: var(--color-blue);
}

.news-detail-section {
  position: relative;
  min-height: 1355px;
  padding: 239px 0 110px;
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-blue);
}

.news-detail-section__decor {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}

.news-detail-section__decor--glow {
  top: -120px;
  left: 110px;
  width: 600px;
  height: 600px;
}

.news-detail-section__decor--top {
  top: 0;
  left: 0;
  width: 509px;
  height: 478px;
  transform: rotate(180deg);
}

.news-detail-section__decor--side {
  top: 651px;
  right: 0;
  width: 1110px;
  height: 704px;
}

.news-detail-section__container {
  position: relative;
  z-index: 1;
}

.news-detail {
  position: relative;
  min-height: 1006px;
}

.news-detail__card {
  position: relative;
  z-index: 2;
  width: 863px;
  margin-left: 80px;
  padding: 40px 48px;
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: 10px 0 22px rgba(0, 0, 0, 0.2);
}

.news-detail__date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 6px 24px;
  border-radius: var(--radius-pill);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-white);
  background: var(--color-accent);
}

.news-detail__title {
  margin: 24px 0 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
  color: var(--color-blue);
}

.news-detail__text {
  margin-top: 32px;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
}

.news-detail__text p {
  margin: 0;
}

.news-detail__text p + p {
  margin-top: 24px;
}

.news-detail__media {
  position: absolute;
  z-index: 1;
  top: 90px;
  right: -20px;
  width: 810px;
  height: 551px;
  margin: 0;
  overflow: hidden;
  border-radius: 0 var(--radius-xl) var(--radius-xl) 0;
  clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
}

.news-detail__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.news-detail__ticket {
  position: absolute;
  top: 716px;
  right: 150px;
  width: 465px;
  min-height: 64px;
  font-size: 22px;
}

.news-detail__ticket-icon {
  position: absolute;
  top: 50%;
  left: calc(100% - 39px);
  width: 78px;
  height: 78px;
  pointer-events: none;
}

.news-detail__ticket-icon img {
  position: absolute;
  top: 8.33%;
  left: 8.33%;
  width: 80.18%;
  height: 90.9%;
}

@media (max-width: 1500px) {
  .news-detail-section {
    min-height: 1323px;
    padding-top: 207px;
  }

  .news-detail-section__decor--glow {
    top: -152px;
  }

  .news-detail-section__decor--top {
    top: -32px;
  }

  .news-detail-section__decor--side {
    top: 619px;
  }

  .news-detail__card {
    width: min(58vw, 820px);
    margin-left: 4vw;
  }

  .news-detail__media {
    right: 0;
    width: 56vw;
  }

  .news-detail__ticket {
    right: 8vw;
  }
}

@media (max-width: 1600px) {
  .news-detail__ticket {
    position: relative;
    inset: auto;
    left: 50%;
    z-index: 2;
    width: min(100%, 465px);
    margin: 32px 0 0;
    transform: translateX(-50%);
  }
}

@media (max-width: 1100px) {
  .news-detail-section {
    min-height: auto;
    padding: 214px 0 96px;
  }

  .news-detail-section__decor--glow {
    top: -120px;
  }

  .news-detail-section__decor--top {
    top: 0;
  }

  .news-detail-section__decor--side {
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: max(577px, 45%);
    content: url("../img/news-detail-decor-side-mobile.svg");
  }

  .news-detail {
    display: grid;
    min-height: 0;
    gap: 0;
  }

  .news-detail__card,
  .news-detail__media,
  .news-detail__ticket {
    position: relative;
    inset: auto;
    width: min(100%, 863px);
    margin-inline: auto;
  }

  .news-detail__media {
    order: -1;
    height: auto;
    aspect-ratio: 810 / 544;
    border-radius: var(--radius-xl);
    clip-path: none;
  }

  .news-detail__card {
    margin-top: -120px;
  }

  .news-detail__ticket {
    width: min(100%, 465px);
    margin-top: 32px;
    transform: none;
  }
}

@media (min-width: 1024px) and (max-width: 1100px) {
  .news-detail-section {
    padding-top: 182px;
  }

  .news-detail-section__decor--glow {
    top: -152px;
  }

  .news-detail-section__decor--top {
    top: -32px;
  }

}

@media (max-width: 700px) {
  .news-detail-section {
    padding: 190px 0 72px;
  }

  .news-detail-section__decor--glow {
    left: -300px;
  }

  .news-detail-section__decor--side {
    opacity: 1;
  }

  .news-detail {
    gap: 20px;
  }

  .news-detail__card {
    padding: 28px 22px;
    border-radius: var(--radius-md);
    box-shadow: 6px 0 16px rgba(0, 0, 0, 0.14);
  }

  .news-detail__media {
    border-radius: var(--radius-md);
  }

  .news-detail__date {
    min-height: 38px;
    padding: 6px 16px;
    font-size: 18px;
  }

  .news-detail__title {
    margin-top: 20px;
    font-size: 25px;
  }

  .news-detail__text {
    margin-top: 24px;
    font-size: 17px;
    line-height: 1.35;
  }

  .news-detail__text p + p {
    margin-top: 18px;
  }

  .news-detail__ticket {
    min-height: 56px;
    font-size: 18px;
  }
}

@media (max-width: 1023px) {
  .news-detail-section {
    padding-top: 150px;
  }
}
@media (max-width: 768px) {
  .news-detail__ticket-icon {
    display: none;
  }
}

@media (max-width: 500px) {
  .news-detail {
    gap: 0;
  }

  .news-detail__media {
    z-index: 3;
  }

  .news-detail__card {
    margin-top: -24px;
    padding-top: 52px;
  }
}

@media (max-width: 500px) {
  .news-detail__card {
    border-radius: 0;
  }
}

/* News detail ticket state */
.news-detail__ticket {
  color: var(--color-white);
  background: var(--color-blue);
}

.news-detail__ticket:hover,
.news-detail__ticket:focus-visible {
  color: var(--color-blue);
  background: var(--color-white);
}

@media (min-width: 1101px) and (max-width: 1316px) {
  .news-detail__ticket {
    color: var(--color-blue);
    background: var(--color-white);
  }
}

/* Gallery year page */
.gallery-albums-section {
  position: relative;
  min-height: 1731px;
  padding: 72px 0 180px;
  overflow: hidden;
  background: var(--color-white);
}

.gallery-albums-section__decor {
  position: absolute;
  z-index: 0;
  width: 1042px;
  height: 751px;
  pointer-events: none;
  user-select: none;
}

.gallery-albums-section__decor--left {
  bottom: 0;
  left: 0;
  transform: rotate(180deg) scaleY(-1);
}

.gallery-albums-section__decor--right {
  top: 0;
  right: 0;
  transform: scaleY(-1);
}

.gallery-albums-section__container {
  position: relative;
  z-index: 1;
  width: min(1384px, calc(100% - var(--container-padding) * 2));
}

.gallery-albums-filters {
  display: flex;
  align-items: center;
  gap: 12px;
}

.gallery-albums-filter {
  position: relative;
  display: block;
  /* width: 187px; */
}

/* .gallery-albums-filter--city {
  width: 166px;
} */

.gallery-albums-filter::after {
  position: absolute;
  top: 50%;
  right: 24px;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--color-blue);
  border-bottom: 2px solid var(--color-blue);
  content: "";
  pointer-events: none;
  transform: translateY(-70%) rotate(45deg);
}

.gallery-albums-filter__select {
  width: 100%;
  height: 56px;
  padding: 0 54px 0 24px;
  appearance: none;
  border: 1px solid var(--color-blue);
  border-radius: var(--radius-pill);
  outline: 0;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-blue);
  background: rgba(240, 240, 243, 0.6);
  cursor: pointer;
}

.gallery-albums-filter__select:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.22);
  outline-offset: 3px;
}

.gallery-albums-section__title {
  margin: 56px 0 40px;
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0;
  color: var(--color-blue);
}

.gallery-albums-section__title span {
  display: inline-block;
  margin-inline: 6px;
}

.gallery-albums-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px 32px;
}

.gallery-albums-grid__item {
  min-width: 0;
}

.gallery-albums-grid__item--wide {
  grid-column: span 2;
}

.gallery-album-card {
  display: flex;
  height: 377px;
  overflow: hidden;
  flex-direction: column;
  border-radius: var(--radius-lg);
  color: var(--color-text);
  background: var(--color-white);
  box-shadow: 10px 0 44px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gallery-album-card:hover,
.gallery-album-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 10px 8px 32px rgba(0, 0, 0, 0.15);
}

.gallery-album-card:focus-visible {
  outline: 3px solid var(--color-blue);
  outline-offset: 4px;
}

.gallery-album-card__image {
  width: 100%;
  height: 230px;
  flex: 0 0 230px;
  border-radius: var(--radius-lg);
  object-fit: cover;
  object-position: center;
}

.gallery-album-card__content {
  display: flex;
  min-width: 0;
  padding: 24px;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.gallery-album-card__meta {
  display: inline-flex;
  max-width: 100%;
  min-height: 31px;
  padding: 6px 16px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: var(--radius-sm);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-white);
  background: var(--color-accent);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.gallery-album-card__title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
}

.gallery-albums-grid__item[hidden] {
  display: none;
}

.gallery-albums-section__empty {
  margin: 64px 0 0;
  font-size: 22px;
  font-weight: 600;
  color: var(--color-blue);
}

.gallery-albums-section__actions {
  display: flex;
  justify-content: center;
  margin-top: 72px;
}

.gallery-albums-section__more {
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-blue);
  transition: opacity 0.2s ease;
}

.gallery-albums-section__more:hover,
.gallery-albums-section__more:focus-visible {
  opacity: 0.78;
}

.gallery-albums-section__more:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.25);
  outline-offset: 4px;
}

@media (max-width: 1100px) {
  .gallery-albums-section {
    min-height: auto;
    padding-bottom: 120px;
  }

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

@media (max-width: 700px) {
  .gallery-albums-section {
    padding: 40px 0 72px;
  }

  .gallery-albums-section__decor {
    opacity: 0.45;
  }

  .gallery-albums-filters {
    align-items: flex-start;
    /* flex-direction: column; */
    flex-wrap: wrap;
  }
  .gallery-albums-filter {
    width: auto;
    min-width: 130px;
    max-width: 100%;
    flex: 1 1 130px;
  }

  .gallery-albums-filter--city {
    width: auto;
  }

  .gallery-albums-section__title {
    margin: 40px 0 28px;
    font-size: 34px;
  }

  .gallery-albums-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .gallery-albums-section__actions {
    margin-top: 40px;
  }

  .gallery-albums-grid__item--wide {
    grid-column: auto;
  }

  .gallery-album-card {
    height: 355px;
    border-radius: var(--radius-md);
    box-shadow: 6px 4px 22px rgba(0, 0, 0, 0.14);
  }

  .gallery-album-card__image {
    height: 215px;
    flex-basis: 215px;
    border-radius: var(--radius-md);
  }

  .gallery-album-card__content {
    padding: 20px;
  }

  .gallery-album-card__meta {
    font-size: 14px;
  }
}

/* Branded gallery dropdowns */
.gallery-albums-filter::after {
  display: none;
}

.gallery-albums-filter__trigger {
  position: relative;
  display: flex;
  width: 100%;
  height: 56px;
  padding: 0 12px 0 24px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid rgba(41, 51, 125, 0.72);
  border-radius: var(--radius-pill);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-blue);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 6px 18px rgba(41, 51, 125, 0.08);
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.gallery-albums-filter__trigger:hover {
  border-color: var(--color-blue);
  box-shadow: 0 8px 22px rgba(41, 51, 125, 0.14);
  transform: translateY(-1px);
}

.gallery-albums-filter__trigger:focus-visible {
  outline: 3px solid rgba(202, 179, 144, 0.45);
  outline-offset: 3px;
}

.gallery-albums-filter__icon {
  position: relative;
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border-radius: 50%;
}

.gallery-albums-filter__icon::before {
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--color-blue);
  border-bottom: 2px solid var(--color-blue);
  content: "";
  transform: translateY(-2px) rotate(45deg);
}

.gallery-albums-filter.is-open .gallery-albums-filter__trigger {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(202, 179, 144, 0.2), 0 14px 34px rgba(41, 51, 125, 0.16);
}

.gallery-albums-filter.is-open .gallery-albums-filter__icon {
  background: var(--color-blue);
  transform: rotate(180deg);
}

.gallery-albums-filter.is-open .gallery-albums-filter__icon::before {
  border-color: var(--color-white);
}

.gallery-albums-filter.has-value .gallery-albums-filter__trigger {
  font-weight: 600;
}

.gallery-albums-filter__menu {
  position: absolute;
  z-index: 20;
  top: calc(100% + 10px);
  left: 0;
  width: max(100%, 230px);
  padding: 8px;
  overflow: hidden;
  border: 1px solid rgba(41, 51, 125, 0.18);
  border-top: 3px solid var(--color-accent);
  border-radius: 18px;
  background: var(--color-white);
  box-shadow: 0 18px 42px rgba(41, 51, 125, 0.2);
}

.gallery-albums-filter__menu[hidden] {
  display: none;
}

.gallery-albums-filter__option {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 44px;
  padding: 10px 42px 10px 14px;
  align-items: center;
  border: 0;
  border-radius: 10px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.25;
  text-align: left;
  color: var(--color-text);
  background: transparent;
  cursor: pointer;
  transition: color 0.16s ease, background-color 0.16s ease, transform 0.16s ease;
}

.gallery-albums-filter__option:hover,
.gallery-albums-filter__option:focus-visible {
  outline: 0;
  color: var(--color-blue);
  background: #f0f2f8;
  transform: translateX(2px);
}

.gallery-albums-filter__option[aria-selected="true"] {
  font-weight: 700;
  color: var(--color-blue);
  background: rgba(202, 179, 144, 0.24);
}

.gallery-albums-filter__option[aria-selected="true"]::after {
  position: absolute;
  top: 50%;
  right: 17px;
  width: 10px;
  height: 6px;
  border-bottom: 2px solid var(--color-blue);
  border-left: 2px solid var(--color-blue);
  content: "";
  transform: translateY(-65%) rotate(-45deg);
}

@media (max-width: 700px) {
  .gallery-albums-filter__menu {
    width: 100%;
  }
}

/* Gallery album page */
.gallery-album-section {
  padding: 81px 0 145px;
  background: var(--color-white);
}

.gallery-album-section__container {
  width: min(1446px, calc(100% - var(--container-padding) * 2));
}

.gallery-album-section__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}

.gallery-album-section__meta-item {
  display: inline-flex;
  min-height: 52px;
  padding: 12px 25px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-blue);
  border-radius: var(--radius-pill);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-blue);
  background: rgba(255, 255, 255, 0.3);
}

.gallery-album-section__title {
  margin: 24px 0 82px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
  color: var(--color-blue);
}

.gallery-album-photos {
  display: grid;
  grid-template-columns: 472fr 30fr 148fr 32fr 262fr 30fr 472fr;
  grid-template-rows: 449px 305px 305px;
  row-gap: 32px;
}

.gallery-album-photos__item {
  min-width: 0;
  min-height: 0;
}

.gallery-album-photos__item:nth-child(1) {
  grid-column: 1 / 4;
  grid-row: 1;
}

.gallery-album-photos__item:nth-child(2) {
  grid-column: 5 / 8;
  grid-row: 1;
}

.gallery-album-photos__item:nth-child(3),
.gallery-album-photos__item:nth-child(6) {
  grid-column: 1;
}

.gallery-album-photos__item:nth-child(4),
.gallery-album-photos__item:nth-child(7) {
  grid-column: 3 / 6;
}

.gallery-album-photos__item:nth-child(5),
.gallery-album-photos__item:nth-child(8) {
  grid-column: 7;
}

.gallery-album-photos__item:nth-child(n + 3):nth-child(-n + 5) {
  grid-row: 2;
}

.gallery-album-photos__item:nth-child(n + 6) {
  grid-row: 3;
}

.gallery-album-photo {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-xl);
  background: #e7e9f1;
  cursor: zoom-in;
}

.gallery-album-photo::after {
  position: absolute;
  inset: 0;
  display: grid;
  opacity: 0;
  place-items: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-white);
  background: rgba(41, 51, 125, 0.34);
  content: "Открыть";
  transition: opacity 0.2s ease;
}

.gallery-album-photo:hover::after,
.gallery-album-photo:focus-visible::after {
  opacity: 1;
}

.gallery-album-photo:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 4px;
}

.gallery-album-photo__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.gallery-album-photo:hover .gallery-album-photo__image,
.gallery-album-photo:focus-visible .gallery-album-photo__image {
  transform: scale(1.025);
}

.gallery-album-section__ticket {
  display: flex;
  width: min(100%, 465px);
  min-height: 63px;
  margin: 81px auto 0;
  font-size: 22px;
}

body.is-lightbox-open {
  overflow: hidden;
}

.album-lightbox {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  opacity: 0;
  padding: 52px 86px;
  place-items: center;
  background: rgba(18, 23, 56, 0.8);
  backdrop-filter: blur(10px);
  transition: opacity 0.22s ease;
}

.album-lightbox[hidden] {
  display: none;
}

.album-lightbox.is-visible {
  opacity: 1;
}

.album-lightbox__dialog {
  position: relative;
  width: min(1450px, calc(100vw - 172px));
  height: min(900px, calc(100vh - 104px));
}

.album-lightbox__swiper,
.album-lightbox__slide {
  width: 100%;
  height: 100%;
}

.album-lightbox__slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

.album-lightbox__image {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-lg);
  object-fit: contain;
}

.album-lightbox__close,
.album-lightbox__arrow {
  position: absolute;
  z-index: 5;
  display: grid;
  width: 58px;
  height: 58px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 50%;
  color: var(--color-blue);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}

.album-lightbox__close:hover,
.album-lightbox__arrow:hover {
  background: var(--color-accent);
  transform: scale(1.05);
}

.album-lightbox__close:focus-visible,
.album-lightbox__arrow:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 4px;
}

.album-lightbox__close {
  top: -28px;
  right: -28px;
}

.album-lightbox__close::before,
.album-lightbox__close::after {
  position: absolute;
  width: 24px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: "";
}

.album-lightbox__close::before {
  transform: rotate(45deg);
}

.album-lightbox__close::after {
  transform: rotate(-45deg);
}

.album-lightbox__arrow {
  top: 50%;
  transform: translateY(-50%);
}

.album-lightbox__arrow:hover {
  transform: translateY(-50%) scale(1.05);
}

.album-lightbox__arrow::before {
  width: 14px;
  height: 14px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
  content: "";
}

.album-lightbox__arrow--prev {
  left: -76px;
}

.album-lightbox__arrow--prev::before {
  margin-left: 5px;
  transform: rotate(-135deg);
}

.album-lightbox__arrow--next {
  right: -76px;
}

.album-lightbox__arrow--next::before {
  margin-right: 5px;
  transform: rotate(45deg);
}

.album-lightbox__arrow.swiper-button-disabled {
  opacity: 0.32;
  pointer-events: none;
}

.album-lightbox__pagination {
  position: absolute;
  z-index: 5;
  bottom: -38px;
  left: 50%;
  width: auto;
  padding: 7px 16px;
  border-radius: var(--radius-pill);
  font-size: 16px;
  font-weight: 700;
  color: var(--color-blue);
  background: rgba(255, 255, 255, 0.94);
  transform: translateX(-50%);
}

@media (max-width: 1100px) {
  .gallery-album-section {
    padding-top: 64px;
  }

  .gallery-album-section__title {
    margin-bottom: 56px;
  }

  .gallery-album-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 24px;
  }

  .gallery-album-photos__item:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
    height: 300px;
  }

  .gallery-album-photos__item:nth-child(1),
  .gallery-album-photos__item:nth-child(2) {
    height: 380px;
  }

  .album-lightbox {
    padding: 48px 72px;
  }

  .album-lightbox__dialog {
    width: calc(100vw - 144px);
    height: calc(100vh - 96px);
  }
}

@media (min-width: 701px) and (max-width: 1200px) {
  .gallery-album-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 24px;
  }

  .gallery-album-photos__item:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
    height: 300px;
  }

  .gallery-album-photos__item:nth-child(1),
  .gallery-album-photos__item:nth-child(2) {
    height: 380px;
  }
}
@media (max-width: 700px) {
  .gallery-album-section {
    padding: 40px 0 72px;
  }

  .gallery-album-section__meta {
    align-items: stretch;
    flex-direction: column;
  }

  .gallery-album-section__meta-item {
    min-height: 44px;
    padding: 10px 16px;
    justify-content: flex-start;
    font-size: 16px;
  }

  .gallery-album-section__title {
    margin: 24px 0 36px;
    font-size: 32px;
  }

  .gallery-album-photos {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .gallery-album-photos__item:nth-child(n),
  .gallery-album-photos__item:nth-child(1),
  .gallery-album-photos__item:nth-child(2) {
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .gallery-album-photo {
    border-radius: var(--radius-md);
  }

  .gallery-album-section__ticket {
    margin-top: 48px;
    font-size: 18px;
  }

  .album-lightbox {
    padding: 68px 16px 78px;
  }

  .album-lightbox__dialog {
    width: 100%;
    height: 100%;
  }

  .album-lightbox__image {
    border-radius: var(--radius-md);
  }

  .album-lightbox__close,
  .album-lightbox__arrow {
    width: 48px;
    height: 48px;
  }

  .album-lightbox__close {
    top: -56px;
    right: 0;
  }

  .album-lightbox__arrow {
    top: auto;
    bottom: -62px;
  }

  .album-lightbox__arrow--prev {
    left: 0;
  }

  .album-lightbox__arrow--next {
    right: 0;
  }

  .album-lightbox__arrow:hover {
    transform: scale(1.05);
  }

  .album-lightbox__pagination {
    bottom: -52px;
  }
}

@media (max-width: 500px) {
  .gallery-album-section__meta-item:nth-child(2) {
    border: 0;
  }
}

/* Gallery lightbox arrow states */
.album-lightbox__arrow {
  color: var(--color-white);
  border-color: rgba(202, 179, 144, 0.9);
  background: var(--color-accent);
}

.album-lightbox__arrow:hover {
  color: var(--color-white);
  background: #bda47e;
}

.album-lightbox__arrow.swiper-button-disabled {
  opacity: 0.42;
  color: var(--color-white);
  background: var(--color-accent);
}

/* About project hero */
.page-about__main {
  background: var(--color-white);
}

.about-hero-section {
  padding-top: 36px;
}

.about-hero-banner {
  position: relative;
  height: 600px;
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: #becade;
}

.about-hero-banner__media {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
}

.about-hero-banner__image {
  position: absolute;
  max-width: none;
  pointer-events: none;
  user-select: none;
}

.about-hero-banner__image--back {
  bottom: -91px;
  left: 569px;
  width: 1257px;
  height: 832px;
}

.about-hero-banner__image--front {
  right: -52px;
  bottom: -24px;
  width: 1112px;
  height: 739px;
}

.about-hero-banner__content {
  position: relative;
  z-index: 2;
  display: flex;
  width: 712px;
  height: 600px;
  padding: 72px 76px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 48px;
  border-radius: var(--radius-xl);
  color: var(--color-white);
  background: radial-gradient(ellipse 125% 115% at 0% 27%, #040a83 0%, #031998 16%, #0227ad 32%, #0045d7 65%, #153caa 82%, #29337d 100%);
}

.about-hero-banner__heading {
  display: flex;
  width: 477px;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.about-hero-banner__title {
  margin: 0;
  font-size: 70px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0;
  text-transform: uppercase;
}

.about-hero-banner__title span {
  display: block;
}

.about-hero-banner__subtitle {
  margin: 0;
  font-size: 32px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-accent);
  white-space: nowrap;
}

.about-hero-banner__button {
  min-width: 245px;
  min-height: 63px;
  padding-inline: 40px;
  font-size: 22px;
  font-weight: 600;
}

@media (max-width: 1350px) {
  .about-hero-banner__content {
    width: 48%;
    padding-inline: 48px;
  }

  .about-hero-banner__heading {
    width: 100%;
  }

  .about-hero-banner__title {
    font-size: 56px;
  }

  .about-hero-banner__image--back {
    left: 36%;
  }
}

@media (max-width: 900px) {
  .about-hero-section {
    padding-top: 48px;
  }

  .about-hero-banner {
    --about-hero-media-overlap: 40px;

    display: flex;
    height: auto;
    min-height: calc(720px - var(--about-hero-media-overlap));
    flex-direction: column;
  }

  .about-hero-banner__media {
    position: relative;
    order: 2;
    height: 360px;
    margin-top: calc(var(--about-hero-media-overlap) * -1);
    background: #becade;
  }

  .about-hero-banner__image--back {
    display: none;
  }

  .about-hero-banner__image--front {
    right: 50%;
    bottom: -20px;
    width: max(720px, 118vw);
    height: auto;
    transform: translateX(50%);
  }

  .about-hero-banner__content {
    width: 100%;
    height: auto;
    min-height: 360px;
    padding: 48px;
    order: 1;
    border-radius: var(--radius-xl);
  }
}

@media (max-width: 600px) {
  .about-hero-section {
    padding-top: 32px;
  }

  .about-hero-banner {
    --about-hero-media-overlap: 32px;

    min-height: calc(620px - var(--about-hero-media-overlap));
    border-radius: var(--radius-md);
  }

  .about-hero-banner__content {
    min-height: 360px;
    padding: 36px 24px;
    gap: 36px;
    border-radius: var(--radius-md);
  }

  .about-hero-banner__heading {
    gap: 24px;
  }

  .about-hero-banner__title {
    max-width: 100%;
    font-size: 38px;
  }

  .about-hero-banner__subtitle {
    font-size: 22px;
    white-space: normal;
  }

  .about-hero-banner__button {
    width: 100%;
    min-width: 0;
    min-height: 56px;
    font-size: 18px;
  }

  .about-hero-banner__media {
    height: 290px;
  }

  .about-hero-banner__image--back {
    display: none;
  }

  .about-hero-banner__image--front {
    right: 50%;
    width: max(620px, 122vw);
  }
}
/* About project overview */
.about-project-producers-flow {
  --about-flow-join-x: 50vw;
  --about-flow-project-decor-height: clamp(294px, 25.729vw, 494px);
  --about-flow-producers-decor-height: clamp(538px, 47.396vw, 910px);
  position: relative;
  overflow: hidden;
}

.about-project-section {
  position: relative;
  min-height: 980px;
  padding: 160px 0 336px;
  overflow: hidden;
  background: var(--color-white);
}

.about-project-section__decor {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 873px;
  height: 494px;
  border-radius: 0 494px 0 0;
  background: var(--color-accent);
}

.about-project-section__container {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(var(--container-width), calc(100% - var(--container-padding) * 2));
  grid-template-columns: 717px 751px;
  gap: 129px;
  align-items: start;
}

.about-project-slider {
  position: relative;
  width: 717px;
  height: 484px;
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: rgba(241, 241, 241, 0.72);
  backdrop-filter: blur(10px);
}

.about-project-slider__viewport {
  position: absolute;
  top: 79px;
  left: 109px;
  width: 500px;
  height: 326px;
  overflow: hidden;
}

.about-project-slider__track,
.about-project-slider__slide {
  width: 100%;
  height: 100%;
}

.about-project-slider__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.about-project-slider .about-project-slider__pagination {
  position: absolute;
  z-index: 4;
  top: 50%;
  right: auto;
  left: 48px;
  display: flex;
  width: 12px;
  min-height: 163px;
  align-items: center;
  justify-content: space-between;
  flex-direction: column;
  transform: translateY(-50%);
}

.about-project-slider .about-project-slider__pagination .content-slider__bullet {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  margin: 0;
  border: 0;
  background: var(--color-accent);
  opacity: 0.72;
}

.about-project-slider .about-project-slider__pagination .content-slider__bullet--active {
  width: 12px;
  height: 12px;
  flex-basis: 12px;
  opacity: 1;
}

.about-project-slider__navigation {
  position: absolute;
  z-index: 4;
  top: 50%;
  right: 48px;
  display: flex;
  width: 25px;
  height: 154px;
  align-items: center;
  justify-content: space-between;
  flex-direction: column;
  transform: translateY(-50%);
}

.about-project-slider__arrow {
  position: relative;
  width: 25px;
  height: 30px;
  padding: 0;
  border: 0;
  color: #a18b68;
  background: transparent url("../img/about-project-arrow-up.svg") center / 25px 30px no-repeat;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.about-project-slider__arrow::before,
.about-project-slider__arrow::after {
  position: absolute;
  left: 50%;
  display: none;
  content: "";
}

.about-project-slider__arrow::before {
  width: 13px;
  height: 13px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
}

.about-project-slider__arrow::after {
  width: 1.5px;
  height: 25px;
  border-radius: 2px;
  background: currentColor;
  transform: translateX(-50%);
}

.about-project-slider__arrow--prev::before {
  top: 2px;
  transform: translateX(-50%) rotate(-45deg);
}

.about-project-slider__arrow--prev::after {
  top: 3px;
}

.about-project-slider__arrow--next {
  transform: scaleY(-1);
}

.about-project-slider__arrow--next::before {
  bottom: 2px;
  transform: translateX(-50%) rotate(135deg);
}

.about-project-slider__arrow--next::after {
  bottom: 3px;
}

.about-project-slider__arrow:hover,
.about-project-slider__arrow:focus-visible {
  opacity: 0.55;
}

.about-project-slider__arrow:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 4px;
}

.about-project-slider__arrow.swiper-button-disabled {
  opacity: 0.3;
  cursor: default;
}

.about-project-section__content {
  min-width: 0;
}

.about-project-section__title {
  margin: 0 0 22px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
  color: var(--color-blue);
}

.about-project-section__text {
  max-width: 751px;
  margin: 0;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
  color: #1f1f1f;
}

.about-project-stats {
  display: grid;
  width: 730px;
  margin: 44px 0 0 -11px;
  grid-template-columns: repeat(3, 194px);
  gap: 74px;
}

.about-project-stat {
  display: flex;
  width: 194px;
  align-items: center;
  flex-direction: column;
}

.about-project-stat__marker {
  position: relative;
  display: grid;
  width: 194px;
  height: 50px;
  place-items: center;
}

.about-project-stat__marker::before {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  height: 1px;
  background: var(--color-accent);
  content: "";
}

.about-project-stat__marker span {
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--color-accent);
}

.about-project-stat__marker span::before {
  position: absolute;
  top: 17px;
  left: 15px;
  width: 18px;
  height: 10px;
  border-bottom: 3px solid var(--color-white);
  border-left: 3px solid var(--color-white);
  content: "";
  transform: rotate(-45deg);
}

.about-project-stat__text {
  margin-top: 12px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: uppercase;
  color: #a18b68;
}

@media (max-width: 1650px) {
  .about-project-section__container {
    grid-template-columns: minmax(560px, 717px) minmax(0, 751px);
    gap: clamp(48px, 6vw, 100px);
  }

  .about-project-slider {
    width: 100%;
  }

  .about-project-stats {
    width: 100%;
    margin-left: 0;
    grid-template-columns: repeat(3, minmax(0, 194px));
    gap: clamp(28px, 4vw, 74px);
  }
}

@media (max-width: 1280px) {
  .about-project-section {
    min-height: 0;
    padding: 120px 0 200px;
  }

  .about-project-section__decor {
    width: 70vw;
    height: 440px;
  }

  .about-project-section__container {
    grid-template-columns: minmax(0, 751px);
    justify-content: center;
    gap: 80px;
  }

  .about-project-slider {
    width: min(100%, 717px);
    order: 2;
    justify-self: center;
  }

  .about-project-section__content {
    width: min(100%, 751px);
    order: 1;
    justify-self: center;
  }
}

@media (max-width: 700px) {
  .about-project-section {
    padding: 56px 0 120px;
  }

  .about-project-section__decor {
    width: 90vw;
    height: 360px;
    border-radius: 0 360px 0 0;
    opacity: 0.45;
  }

  .about-project-section__container {
    gap: 56px;
  }

  .about-project-slider {
    height: clamp(340px, 112vw, 420px);
    border-radius: var(--radius-md);
  }

  .about-project-slider__viewport {
    top: 52px;
    right: 64px;
    bottom: 52px;
    left: 64px;
    width: auto;
    height: auto;
  }

  .about-project-slider .about-project-slider__pagination {
    left: 24px;
    min-height: 150px;
  }

  .about-project-slider__navigation {
    top: 50%;
    right: 20px;
    height: 154px;
    transform: translateY(-50%);
  }

  .about-project-section__title {
    margin-bottom: 20px;
    font-size: 36px;
  }

  .about-project-section__text {
    font-size: 18px;
    line-height: 1.35;
  }

  .about-project-stats {
    width: 100%;
    margin-top: 48px;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .about-project-stat {
    width: min(100%, 260px);
    margin-inline: auto;
  }

  .about-project-stat__marker {
    width: 100%;
  }

  .about-project-stat__text {
    font-size: 20px;
  }
}
/* Producers */
.producers-section {
  position: relative;
  min-height: 2171px;
  padding: 140px 0 260px;
  overflow: hidden;
  background: var(--color-bg-light);
}

.producers-section__decor {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.producers-section__decor--top {
  top: 0;
  right: 0;
  width: 1047px;
  height: 910px;
  transform: scaleY(-1);
}

.producers-section__decor--bottom {
  top: 1421px;
  left: 0;
  width: 793px;
  height: 750px;
  transform: scaleX(-1);
}

.producers-section__container {
  position: relative;
  z-index: 1;
  width: min(1443px, calc(100% - var(--container-padding) * 2));
}

.producers-section__title {
  margin: 0 0 81px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
  color: var(--color-blue);
}

.producers-section__list {
  display: flex;
  flex-direction: column;
  gap: 130px;
}

.producer-profile {
  display: grid;
  grid-template-columns: 442px minmax(0, 961px);
  gap: 40px;
  align-items: start;
}

.producer-profile--reverse {
  grid-template-columns: minmax(0, 961px) 442px;
}

.producer-card {
  display: flex;
  width: 442px;
  flex-direction: column;
  gap: 40px;
}

.producer-card__photo {
  width: 100%;
  height: 328px;
  overflow: hidden;
  border-radius: 30px;
  background: #becade;
}

.producer-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 8%;
}

.producer-card__image--alexey {
  object-position: center 8%;
}

.producer-card__image--ivan {
  object-position: center 9%;
}

.producer-card__content {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 56px;
}

.producer-card__content--ivan {
  gap: 64px;
}

.producer-card__heading {
  display: flex;
  width: 100%;
  align-items: flex-start;
  flex-direction: column;
  gap: 32px;
}

.producer-card__name {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--color-blue);
}

.producer-card__role {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  color: #1f1f1f;
}

.producer-card__button {
  width: auto;
  min-height: 63px;
  padding: 16px 40px;
  font-size: 22px;
  line-height: 1.4;
  white-space: nowrap;
}

.producer-biography {
  width: 100%;
  padding: 64px 64px 72px;
  border-radius: var(--radius-xl);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  color: #1f1f1f;
  background: var(--color-white);
  box-shadow: 4px 2px 12.5px rgba(0, 0, 0, 0.1);
}

.producer-biography p {
  margin: 0 0 20px;
}

.producer-biography p:last-child {
  margin-bottom: 0;
}

@media (max-width: 1500px) {
  .producers-section {
    min-height: 0;
    padding-bottom: 220px;
  }

  .producer-profile,
  .producer-profile--reverse {
    grid-template-columns: minmax(340px, 442px) minmax(0, 1fr);
  }

  .producer-profile--reverse {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 442px);
  }

  .producer-card {
    width: 100%;
  }

  .producer-biography {
    padding: 54px 48px 60px;
    font-size: 17px;
  }

  .producer-card__name {
    font-size: 27px;
  }

  .producer-card__role {
    font-size: 21px;
  }

  .producer-card__button {
    padding-inline: 30px;
    font-size: 18px;
  }
}

@media (max-width: 1050px) {
  .producers-section {
    padding: 100px 0 160px;
  }

  .producers-section__decor--top {
    width: 76vw;
    height: auto;
  }

  .producers-section__decor--bottom {
    top: auto;
    bottom: 0;
    width: 70vw;
    height: auto;
  }

  .producers-section__title {
    margin-bottom: 64px;
  }

  .producers-section__list {
    gap: 96px;
  }

  .producer-profile,
  .producer-profile--reverse {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }

  .producer-card {
    width: min(100%, 520px);
  }

  .producer-profile--reverse .producer-card {
    order: -1;
    justify-self: end;
  }

  .producer-card__photo {
    height: auto;
    aspect-ratio: 442 / 328;
  }

  .producer-biography {
    padding: 48px;
  }
}

@media (max-width: 600px) {
  .producers-section {
    padding: 72px 0 110px;
  }

  .producers-section__decor {
    opacity: 0.6;
  }

  .producers-section__title {
    margin-bottom: 44px;
    font-size: 36px;
  }

  .producers-section__list {
    gap: 72px;
  }

  .producer-profile,
  .producer-profile--reverse {
    gap: 32px;
  }

  .producer-card {
    gap: 28px;
  }

  .producer-card__photo {
    border-radius: var(--radius-md);
  }

  .producer-card__content,
  .producer-card__content--ivan {
    gap: 36px;
  }

  .producer-card__heading {
    gap: 20px;
  }

  .producer-card__name {
    font-size: 24px;
  }

  .producer-card__role {
    font-size: 18px;
  }

  .producer-card__button {
    width: 100%;
    min-height: 56px;
    padding: 12px 20px;
    font-size: 16px;
    white-space: normal;
  }

  .producer-biography {
    padding: 28px 24px 32px;
    border-radius: var(--radius-md);
    font-size: 16px;
    line-height: 1.4;
  }
}

/* About: about-project/producers shared background flow */
.about-project-producers-flow .about-project-section__decor {
  width: var(--about-flow-join-x, 873px);
  height: var(--about-flow-project-decor-height, 494px);
  border-radius: 0 var(--about-flow-project-decor-height, 494px) 0 0;
}

.about-project-producers-flow .producers-section__decor--top {
  right: auto;
  left: var(--about-flow-join-x, 873px);
  width: calc(100% - var(--about-flow-join-x, 873px));
  height: var(--about-flow-producers-decor-height, 910px);
}

@media (max-width: 760px) {
  .about-project-producers-flow {
    --about-flow-join-x: 50vw;
    --about-flow-project-decor-height: clamp(153px, 36.2vw, 294px);
    --about-flow-producers-decor-height: clamp(360px, 70vw, 538px);
  }
}
/* About: artists and ensembles */
.about-artists-section {
  position: relative;
  z-index: 0;
  overflow: hidden;
  padding: 166px 0 236px;
  color: var(--color-white);
  background: var(--color-blue);
}

.about-artists-section::before {
  position: absolute;
  bottom: -170px;
  left: -410px;
  z-index: -1;
  width: 920px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(34, 43, 109, 0.42);
  content: "";
}

.about-artists-section__decor {
  position: absolute;
  top: -70px;
  right: -210px;
  z-index: -1;
  width: min(64vw, 1237px);
  opacity: 0.72;
  pointer-events: none;
}

.about-artists-section__container {
  width: min(1446px, calc(100% - 48px));
}

.about-artists-section__title {
  margin: 0 0 86px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.25;
}

.about-artists-grid {
  display: grid;
  align-items: start;
  justify-content: space-between;
  gap: 48px 30px;
}

.about-artists-grid--people {
  grid-template-columns: repeat(6, 216px);
}

.about-artists-grid--ensembles {
  grid-template-columns: repeat(5, 266px);
  row-gap: 49px;
}

.about-artists-grid li,
.about-artists-grid img {
  width: 100%;
}

.about-artists-grid li {
  position: relative;
}

.about-artists-grid li::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 39.38%;
    background: linear-gradient(
        to top,
        rgba(46, 67, 217, 1) 0%,
        rgba(19, 38, 178, 0.6) 60%,
        rgba(21, 41, 188, 0) 100%
    );
    pointer-events: none;
}

.about-artists-grid li h3 {
  margin: 0;
  position: absolute;
  width: 90%;
  left: 50%;
  transform: translateX(-50%);
  bottom: 24px;
  text-align: center;
  z-index: 2;
}

.about-artists-grid img {
  object-fit: cover;
}

.about-artists-grid--people img {
  aspect-ratio: 216 / 282;
}

.about-artists-grid--ensembles img {
  aspect-ratio: 266 / 320;
}

.about-artists-section__more {
  display: flex;
  align-items: center;
  gap: 14px;
  width: max-content;
  min-height: 32px;
  margin: 46px 0 0 auto;
  padding: 0;
  border: 0;
  color: var(--color-white);
  background: transparent;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
}

.about-artists-section__more-icon {
  position: relative;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--color-white);
  transition: transform 180ms ease, background-color 180ms ease;
}

.about-artists-section__more-icon::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  border-top: 2px solid var(--color-blue);
  border-right: 2px solid var(--color-blue);
  content: "";
  transform: translate(-65%, -50%) rotate(45deg);
}

.about-artists-section__more:hover .about-artists-section__more-icon,
.about-artists-section__more:focus-visible .about-artists-section__more-icon {
  transform: translateX(4px);
}

.about-artists-section__more:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 6px;
}

.about-artists-section__group--ensembles {
  margin-top: 121px;
}

@media (max-width: 1500px) {
  .about-artists-grid--people {
    grid-template-columns: repeat(6, minmax(0, 216px));
  }

  .about-artists-grid--ensembles {
    grid-template-columns: repeat(5, minmax(0, 266px));
  }
}

@media (max-width: 1240px) {
  .about-artists-section {
    padding: 120px 0 160px;
  }

  .about-artists-grid--people {
    grid-template-columns: repeat(4, minmax(0, 216px));
  }

  .about-artists-grid--ensembles {
    grid-template-columns: repeat(3, minmax(0, 266px));
  }

  .about-artists-grid--ensembles > li:nth-child(n + 10) {
    display: none;
  }
}

@media (max-width: 920px) {
  .about-artists-section__container {
    width: min(100% - 32px, 720px);
  }

  .about-artists-section__title {
    margin-bottom: 64px;
    font-size: 40px;
  }

  .about-artists-grid--people {
    grid-template-columns: repeat(3, minmax(0, 216px));
  }

  .about-artists-grid--ensembles {
    grid-template-columns: repeat(2, minmax(0, 266px));
  }
}

@media (max-width: 680px) {
  .about-artists-section {
    padding: 76px 0 110px;
  }

  .about-artists-section__decor {
    width: 920px;
    opacity: 0.42;
  }

  .about-artists-section__title {
    margin-bottom: 46px;
    font-size: 34px;
  }

  .about-artists-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 16px;
  }

  .about-artists-section__group--ensembles {
    margin-top: 82px;
  }

  .about-artists-section__more {
    margin-top: 34px;
    font-size: 15px;
  }
}

@media (max-width: 380px) {
  .about-artists-section__title {
    font-size: 30px;
  }

  .about-artists-grid {
    gap-inline: 10px;
  }
}

/* About artists: subtle interactive states */
.about-artists-grid li {
  overflow: hidden;
  border-radius: 30px;
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.about-artists-grid img {
  transition: filter 220ms ease, transform 220ms ease;
}

.about-artists-section__more {
  transition: color 180ms ease, opacity 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .about-artists-grid li:hover {
    z-index: 1;
    transform: translateY(-6px) scale(1.012);
    box-shadow: 0 14px 28px rgba(12, 18, 65, 0.24);
  }

  .about-artists-grid li:hover img {
    filter: brightness(1.05) saturate(1.04);
    transform: scale(1.012);
  }

  .about-artists-section__more:hover {
    color: #e5d2b5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-artists-grid li,
  .about-artists-grid img,
  .about-artists-section__more,
  .about-artists-section__more-icon {
    transition: none;
  }
}

/* About: full artists and ensembles modal */
body.is-about-list-modal-open {
  overflow: hidden;
}

.about-list-modal {
  position: fixed;
  z-index: 1100;
  inset: 0;
  display: grid;
  overflow-y: auto;
  opacity: 0;
  padding: 24px;
  place-items: center;
  background: rgba(18, 23, 56, 0.76);
  backdrop-filter: blur(8px);
  transition: opacity 220ms ease;
}

.about-list-modal[hidden],
.about-list-modal__panel[hidden] {
  display: none;
}

.about-list-modal.is-visible {
  opacity: 1;
}

.about-list-modal__dialog {
  position: relative;
  width: min(1188px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
  padding: 46px 56px;
  overflow-y: auto;
  scrollbar-color: rgba(41, 51, 125, 0.64) rgba(41, 51, 125, 0.08);
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  border-radius: 40px;
  background: var(--color-white);
  box-shadow: 0 28px 80px rgba(8, 12, 48, 0.34);
  transform: translateY(14px) scale(0.985);
  transition: transform 220ms ease;
}

.about-list-modal__dialog::-webkit-scrollbar {
  width: 10px;
}

.about-list-modal__dialog::-webkit-scrollbar-track {
  margin: 30px 0;
  border-radius: 999px;
  background: rgba(41, 51, 125, 0.08);
}

.about-list-modal__dialog::-webkit-scrollbar-thumb {
  border: 3px solid var(--color-white);
  border-radius: 999px;
  background: linear-gradient(180deg, #29337d 0%, #0160f4 100%);
}

.about-list-modal__dialog::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #202969 0%, #0055d9 100%);
}

.about-list-modal.is-visible .about-list-modal__dialog {
  transform: translateY(0) scale(1);
}

.about-list-modal__close {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 2;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(41, 51, 125, 0.24);
  border-radius: 50%;
  color: var(--color-blue);
  background: var(--color-white);
  cursor: pointer;
  transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.about-list-modal__close::before,
.about-list-modal__close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: "";
}

.about-list-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.about-list-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.about-list-modal__close:hover {
  color: var(--color-white);
  background: var(--color-blue);
  transform: rotate(5deg);
}

.about-list-modal__close:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}

.about-list-modal__title {
  margin: 0 0 14px;
  color: var(--color-blue);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3;
}

.about-list-modal__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 260px));
  gap: 12px;
}

.about-list-card__link {
  display: grid;
  grid-template-columns: 102px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 110px;
  padding: 14px;
  overflow: hidden;
  border-radius: 24px;
  color: var(--color-white);
  background: linear-gradient(151.6deg, #29337d 13.59%, #0160f4 71.96%);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.about-list-card__photo {
  width: 102px;
  height: 82px;
  border-radius: 16px;
  background: #e3e2e2;
  object-fit: cover;
}

.about-list-card__photo--participant {
  object-position: center top;
}

.about-list-card__photo--placeholder {
  display: block;
}

.about-list-card--ensemble {
  font-size: 12px;
}

@media (hover: hover) and (pointer: fine) {
  .about-list-card:hover {
    z-index: 1;
    box-shadow: 0 10px 22px rgba(16, 25, 88, 0.22);
    filter: brightness(1.035);
    transform: translateY(-2px);
  }
}

@media (max-width: 1120px) {
  .about-list-modal__dialog {
    width: min(916px, calc(100vw - 48px));
  }

  .about-list-modal__grid {
    grid-template-columns: repeat(3, minmax(0, 260px));
  }
}

@media (max-width: 880px) {
  .about-list-modal__dialog {
    width: min(644px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    padding: 40px 44px;
    border-radius: 32px;
  }

  .about-list-modal__grid {
    grid-template-columns: repeat(2, minmax(0, 260px));
  }
}

@media (max-width: 620px) {
  .about-list-modal {
    padding: 12px;
  }

  .about-list-modal__dialog {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    padding: 56px 16px 24px;
    border-radius: 24px;
  }

  .about-list-modal__close {
    top: 12px;
    right: 12px;
  }

  .about-list-modal__title {
    font-size: 26px;
  }

  .about-list-modal__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .about-list-card {
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-list-modal,
  .about-list-modal__dialog,
  .about-list-modal__close,
  .about-list-card {
    transition: none;
  }
}

.about-list-card__photo {
  object-position: center 27%;
}

/* About: partners sliders */
.partners-section {
  position: relative;
  z-index: 0;
  min-height: 1384px;
  padding: 170px 0 193px;
  overflow: hidden;
  color: var(--color-white);
  background: linear-gradient(180deg, #29337d 0%, #1b2db5 51.12%, #273381 100%);
}

.partners-section__decor {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: min(1005px, 53vw);
  height: 705px;
  transform: rotate(180deg);
  pointer-events: none;
}

.partners-section__container {
  width: min(1440px, calc(100% - 48px));
}

.partners-section__title {
  margin: 0 0 62px;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
}

.partners-slider + .partners-slider {
  margin-top: 104px;
}

.partners-slider__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  min-height: 56px;
  margin-bottom: 48px;
}

.partners-slider__title {
  margin: 0;
  color: #d3b89e;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.1;
}

.partners-slider__controls {
  display: flex;
  flex: 0 0 auto;
  gap: 40px;
  width: 152px;
}

.partners-slider__arrow {
  position: relative;
  display: grid;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: var(--color-blue);
  background: var(--color-accent);
  cursor: pointer;
  transition: opacity 180ms ease, transform 180ms ease, background-color 180ms ease;
}

.partners-slider__arrow::before {
  width: 13px;
  height: 13px;
  border-top: 4px solid currentColor;
  border-right: 4px solid currentColor;
  content: "";
}

.partners-slider__arrow--prev::before {
  margin-left: 5px;
  transform: rotate(-135deg);
}

.partners-slider__arrow--next::before {
  margin-right: 5px;
  transform: rotate(45deg);
}

.partners-slider__arrow:hover,
.partners-slider__arrow:focus-visible {
  background: #dfc8a5;
  transform: scale(1.055);
}

.partners-slider__arrow:focus-visible {
  outline: 3px solid var(--color-white);
  outline-offset: 4px;
}

.partners-slider__arrow.swiper-button-disabled {
  opacity: 0.46;
  cursor: default;
  transform: none;
}

.partners-slider__viewport {
  width: 100%;
  overflow: hidden;
}

.partners-slider__track {
  align-items: center;
}

.partners-slider__slide {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 150px;
}

.partners-slider__slide img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 150px;
  object-fit: contain;
  transition: filter 200ms ease, transform 200ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .partners-slider__slide:hover img {
    filter: brightness(1.08);
    transform: scale(1.035);
  }
}

@media (max-width: 1279px) {
  .partners-section {
    min-height: 0;
    padding: 120px 0 150px;
  }

  .partners-section__decor {
    width: 760px;
    height: auto;
  }

  .partners-section__title {
    margin-bottom: 54px;
    font-size: 42px;
  }

  .partners-slider + .partners-slider {
    margin-top: 84px;
  }
}

@media (max-width: 760px) {
  .partners-section {
    padding: 78px 0 108px;
  }

  .partners-section__container {
    width: calc(100% - 32px);
  }

  .partners-section__decor {
    width: 620px;
    opacity: 0.8;
  }

  .partners-section__title {
    margin-bottom: 48px;
    font-size: 36px;
  }

  .partners-slider + .partners-slider {
    margin-top: 72px;
  }

  .partners-slider__header {
    align-items: center;
    min-height: 44px;
    margin-bottom: 32px;
  }

  .partners-slider__title {
    font-size: 23px;
  }

  .partners-slider__controls {
    gap: 12px;
    width: auto;
  }

  .partners-slider__arrow {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
  }

  .partners-slider__arrow::before {
    width: 10px;
    height: 10px;
    border-width: 3px;
  }

  .partners-slider__slide {
    height: 124px;
  }

  .partners-slider__slide img {
    max-height: 124px;
  }
}

@media (max-width: 430px) {
  .partners-slider__header {
    align-items: flex-start;
    gap: 20px;
  }

  .partners-slider__title {
    max-width: 190px;
    font-size: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .partners-slider__arrow,
  .partners-slider__slide img {
    transition: none;
  }
}

.partners-slider__slide img.partners-slider__logo--wide {
  width: 340px;
  max-width: none;
}

@media (max-width: 760px) {
  .partners-slider__slide img.partners-slider__logo--wide {
    max-width: 120%;
  }
}

.partners-slider__slide img.partners-slider__logo--retro {
  width: 233px;
  max-width: none;
  height: 150px;
  max-height: none;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 760px) {
  .partners-slider__slide img.partners-slider__logo--retro {
    width: 193px;
    height: 124px;
  }
}

/* About: exact artists background and seamless partners transition */
.about-artists-section::before {
  display: none;
}

.about-artists-section__decor {
  top: 41.3%;
  right: auto;
  left: 47.65625%;
  width: 52.34375%;
  max-width: none;
  opacity: 1;
}

.partners-section__decor {
  display: none;
}

@media (max-width: 680px) {
  .about-artists-section__decor {
    top: 37%;
    left: 38%;
    width: 76%;
    opacity: 0.8;
  }
}

/* About: project portfolio slider */
.portfolio-section {
  position: relative;
  min-height: 700px;
  padding: 120px 0 177px;
  overflow: hidden;
  color: var(--color-white);
  background:
    linear-gradient(180deg, #273381 0%, rgba(39, 51, 129, 0.72) 42px, rgba(39, 51, 129, 0) 132px),
    radial-gradient(ellipse 78% 68% at 37% 55%, rgba(17, 65, 167, 0.98) 0%, rgba(11, 38, 149, 0.92) 48%, rgba(41, 51, 125, 0) 100%),
    #29337d;
}

.portfolio-section::before,
.portfolio-section::after {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 2;
  width: min(233px, 12.14vw);
  pointer-events: none;
  content: "";
}

.portfolio-section::before {
  left: 0;
  background: radial-gradient(ellipse 68% 50% at 0 60%, rgba(23, 32, 94, 0.88), rgba(41, 51, 125, 0));
}

.portfolio-section::after {
  right: 0;
  background: radial-gradient(ellipse 68% 50% at 100% 60%, rgba(23, 32, 94, 0.88), rgba(41, 51, 125, 0));
}

.portfolio-section__header {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1454px, calc(100% - 48px));
  padding-right: 80px;
  margin-bottom: 67px;
}

.portfolio-section__title {
  margin: 0;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.1;
}

.portfolio-slider {
  position: relative;
  z-index: 1;
}

.portfolio-slider__viewport {
  width: calc(100% + 400px);
  margin-left: -200px;
  overflow: hidden;
}

.portfolio-slider__track {
  align-items: center;
}

.portfolio-slider__slide {
  flex: 0 0 360px;
  width: 360px;
  height: 280px;
}

.portfolio-slider__slide a,
.portfolio-slider__slide img {
  display: block;
  width: 100%;
  height: 100%;
}

.portfolio-slider__slide a {
  overflow: hidden;
  border-radius: 20px;
}

.portfolio-slider__slide img {
  object-fit: cover;
  transition: filter 200ms ease, transform 240ms ease;
}

.portfolio-slider__controls {
  display: flex;
  flex: 0 0 auto;
  gap: 21px;
}

.portfolio-slider__arrow {
  position: relative;
  z-index: 4;
  display: grid;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: var(--color-blue);
  background: var(--color-accent);
  cursor: pointer;
  transition: opacity 180ms ease, transform 180ms ease, background-color 180ms ease;
}

.portfolio-slider__arrow::before {
  width: 13px;
  height: 13px;
  border-top: 4px solid currentColor;
  border-right: 4px solid currentColor;
  content: "";
}

.portfolio-slider__arrow--prev::before {
  margin-left: 5px;
  transform: rotate(-135deg);
}

.portfolio-slider__arrow--next::before {
  margin-right: 5px;
  transform: rotate(45deg);
}

.portfolio-slider__arrow:hover,
.portfolio-slider__arrow:focus-visible {
  background: #dfc8a5;
  transform: scale(1.055);
}

.portfolio-slider__arrow:focus-visible,
.portfolio-slider__slide a:focus-visible {
  outline: 3px solid var(--color-white);
  outline-offset: 4px;
}

.portfolio-slider__arrow.swiper-button-disabled {
  opacity: 0.46;
  cursor: default;
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  .portfolio-slider__slide a:hover img {
    filter: brightness(1.06);
    transform: scale(1.025);
  }
}

@media (max-width: 1279px) {
  .portfolio-section {
    min-height: 610px;
    padding: 96px 0 136px;
  }

  .portfolio-section__header {
    width: min(1120px, calc(100% - 64px));
    padding-right: 0;
    margin-bottom: 56px;
  }

  .portfolio-section__title {
    font-size: 42px;
  }

  .portfolio-slider__viewport {
    width: calc(100% + 120px);
    margin-left: -60px;
  }

  .portfolio-slider__slide {
    flex-basis: 320px;
    width: 320px;
    height: 249px;
  }
}

@media (max-width: 760px) {
  .portfolio-section {
    min-height: 0;
    padding: 76px 0 96px;
  }

  .portfolio-section::before,
  .portfolio-section::after {
    width: 40px;
  }

  .portfolio-section__header {
    width: calc(100% - 32px);
    padding-right: 108px;
    margin-bottom: 38px;
  }

  .portfolio-section__title {
    max-width: 230px;
    font-size: 34px;
  }

  .portfolio-slider__controls {
    position: absolute;
    top: 50%;
    right: 0;
    gap: 12px;
    transform: translateY(-50%);
  }

  .portfolio-slider__arrow {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
  }

  .portfolio-slider__arrow::before {
    width: 10px;
    height: 10px;
    border-width: 3px;
  }

  .portfolio-slider__viewport {
    width: calc(100% + 32px);
    margin-left: -16px;
  }

  .portfolio-slider__slide {
    flex-basis: min(82vw, 320px);
    width: min(82vw, 320px);
    height: auto;
    aspect-ratio: 9 / 7;
  }
}

@media (max-width: 430px) {
  .portfolio-section__title {
    max-width: 180px;
    font-size: 30px;
  }

  .portfolio-slider__controls {
    gap: 8px;
  }

  .portfolio-slider__arrow {
    flex-basis: 38px;
    width: 38px;
    height: 38px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-slider__arrow,
  .portfolio-slider__slide img {
    transition: none;
  }
}

/* Past event detail: hero */
.page-past-event .site-header {
  position: relative;
  z-index: 2;
}

.page-past-event__main {
  background: var(--color-white);
}

.past-event-hero-section {
  overflow: hidden;
  background: var(--color-white);
}

.past-event-hero-section__container {
  width: min(1598px, calc(100% - 32px));
}

.past-event-hero {
  position: relative;
  height: 600px;
  overflow: hidden;
  border-radius: 40px;
  background: #becade;
}

.past-event-hero__image {
  position: absolute;
  top: -7.8333%;
  left: 0;
  width: 100%;
  max-width: none;
  height: 128.3333%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 1279px) {
  .past-event-hero {
    height: clamp(360px, 47vw, 540px);
    border-radius: 32px;
  }
}

@media (max-width: 760px) {
  .past-event-hero-section__container {
    width: calc(100% - 32px);
  }

  .past-event-hero {
    height: clamp(280px, 78vw, 420px);
    border-radius: 24px;
  }

  .past-event-hero__image {
    top: 0;
    height: 100%;
    object-position: 48% center;
  }
}

/* Past event detail: information and photo mosaic */
.past-event-content-section {
  position: relative;
  min-height: 2401px;
  padding: 53px 0 197px;
  overflow: hidden;
  background:
    radial-gradient(circle 600px at -12% 52%, rgba(34, 43, 109, 0.8), rgba(34, 43, 109, 0) 72%),
    radial-gradient(circle 600px at 112% 68%, rgba(34, 43, 109, 0.76), rgba(34, 43, 109, 0) 72%),
    linear-gradient(180deg, var(--color-white) 0, var(--color-white) 472px, #0160f4 472px, #29337d 100%);
}

.past-event-info-card {
  position: relative;
  z-index: 1;
  width: min(1598px, calc(100% - 32px));
  height: 1032px;
  padding: 80px;
  border-radius: 40px;
  background: var(--color-white);
  box-shadow: 0 0 34px rgba(0, 0, 0, 0.12);
}

.past-event-info-card__content {
  max-width: 1358px;
}

.past-event-info-card__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.past-event-info-card__date {
  display: inline-flex;
  min-height: 53px;
  padding: 12px 25px;
  align-items: center;
  border: 1px solid #222b6d;
  border-radius: 40px;
  color: #222b6d;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
}

.past-event-info-card__title {
  max-width: 1358px;
  margin: 0;
  margin-top: 32px;
  color: var(--color-blue);
  font-size: 46px;
  font-weight: 800;
  line-height: 1.2;
}

.past-event-info-card__location {
  display: flex;
  margin: 0;
  align-items: flex-end;
  gap: 12px;
  color: var(--color-text);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.2;
}

.past-event-info-card__location img {
  flex: 0 0 30px;
  width: 30px;
  height: 40px;
}

.past-event-info-card__description {
  margin-top: 56px;
  color: var(--color-text);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
}

.past-event-info-card__description p {
  margin: 0;
}

.past-event-info-card__description p + p {
  margin-top: 24px;
}

.past-event-gallery {
  position: relative;
  left: 3px;
  z-index: 2;
  display: flex;
  width: min(1446px, calc(100% - 48px));
  margin: -148px auto 0;
  flex-direction: column;
  gap: 32px;
}

.past-event-gallery__row {
  display: grid;
  gap: 32px;
}

.past-event-gallery__row--top {
  grid-template-columns: 650fr 764fr;
}

.past-event-gallery__row--middle {
  grid-template-columns: 472fr 442fr 472fr;
  gap: 30px;
}

.past-event-gallery__row--bottom {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.past-event-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.past-event-gallery__row--top img,
.past-event-gallery__row--bottom img {
  aspect-ratio: auto;
}

.past-event-gallery__row--middle img {
  aspect-ratio: auto;
}

@media (max-width: 1279px) {
  .past-event-content-section {
    min-height: 0;
    padding: 48px 0 140px;
    background:
      radial-gradient(circle 480px at -15% 56%, rgba(34, 43, 109, 0.74), rgba(34, 43, 109, 0) 72%),
      linear-gradient(180deg, var(--color-white) 0, var(--color-white) 390px, #0160f4 390px, #29337d 100%);
  }

  .past-event-info-card {
    width: min(1120px, calc(100% - 64px));
    height: auto;
    min-height: 900px;
    padding: 64px;
    border-radius: 32px;
  }

  .past-event-info-card__date {
    font-size: 20px;
  }

  .past-event-info-card__title {
    font-size: 40px;
  }

  .past-event-info-card__location {
    font-size: 20px;
  }

  .past-event-info-card__description {
    font-size: 18px;
  }

  .past-event-gallery {
    left: 0;
    width: min(1056px, calc(100% - 80px));
    margin-top: -92px;
    gap: 24px;
  }

  .past-event-gallery__row {
    gap: 24px;
  }
}

@media (max-width: 760px) {
  .past-event-content-section {
    padding: 32px 0 96px;
    background: linear-gradient(180deg, var(--color-white) 0, var(--color-white) 280px, #0160f4 280px, #29337d 100%);
  }

  .past-event-info-card {
    width: calc(100% - 32px);
    min-height: 0;
    padding: 32px 20px 92px;
    border-radius: 24px;
  }

  .past-event-info-card__header {
    gap: 24px;
  }

  .past-event-info-card__date {
    min-height: 42px;
    padding: 9px 16px;
    font-size: 16px;
  }

  .past-event-info-card__title {
    font-size: 28px;
  }

  .past-event-info-card__location {
    align-items: center;
    font-size: 17px;
  }

  .past-event-info-card__location img {
    flex-basis: 21px;
    width: 21px;
    height: 28px;
  }

  .past-event-info-card__description {
    margin-top: 40px;
    font-size: 16px;
    line-height: 1.35;
  }

  .past-event-gallery {
    width: calc(100% - 32px);
    margin-top: -60px;
    gap: 16px;
  }

  .past-event-gallery__row,
  .past-event-gallery__row--top,
  .past-event-gallery__row--middle,
  .past-event-gallery__row--bottom {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .past-event-gallery img {
    height: auto;
    border-radius: 20px;
  }
}

/* Past event detail: concert participants */
.artist-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-artists-section--participants {
  min-height: 1114px;
  padding: 150px 0 169px;
}

.event-artists-section--participants .event-artists-section__decor {
  width: 1237px;
  height: 1114px;
}

.event-artists-section--participants .event-artists-section__inner {
  width: 1446px;
  margin-left: 79px;
}

.event-artists-section--participants .event-artists-section__title {
  margin-bottom: 60px;
}

.event-artists-section--participants .event-artists-grid {
  grid-template-columns: repeat(6, 216px);
  gap: 48px 30px;
}

.artist-card--participant {
  aspect-ratio: 216 / 282;
  border-radius: 32px;
  background: transparent;
}

.artist-card--participant::after {
  display: none;
}

.event-artists-section__more {
  display: flex;
  width: max-content;
  margin: 48px 0 0 auto;
  padding: 0;
  border: 0;
  align-items: center;
  gap: 12px;
  color: var(--color-white);
  background: transparent;
  font: inherit;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  cursor: pointer;
}

.event-artists-section__more-icon {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 50%;
  background: var(--color-white);
}

.event-artists-section__more-icon::after {
  position: absolute;
  top: 6px;
  left: 5px;
  width: 6px;
  height: 6px;
  border-top: 2px solid var(--color-blue);
  border-right: 2px solid var(--color-blue);
  content: "";
  transform: rotate(45deg);
}

.event-artists-section__more:hover,
.event-artists-section__more:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.event-artists-section__more:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 5px;
}

@media (min-width: 1201px) and (max-width: 1500px) {
  .event-artists-section--participants {
    min-height: auto;
    padding: 120px 0 140px;
  }

  .event-artists-section--participants .event-artists-section__inner {
    width: auto;
    margin-right: 56px;
    margin-left: 56px;
  }

  .event-artists-section--participants .event-artists-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 28px 18px;
  }
}

@media (max-width: 1200px) {
  .event-artists-section--participants {
    min-height: auto;
    padding: 96px 0 112px;
  }

  .event-artists-section--participants .event-artists-section__inner {
    width: auto;
    margin-left: 0;
  }

  .event-artists-section--participants .event-artists-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }
}

@media (max-width: 800px) {
  .event-artists-section--participants {
    padding: 72px 0 88px;
  }

  .event-artists-section--participants .event-artists-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (max-width: 560px) {
  .event-artists-section--participants {
    padding: 56px 0 72px;
  }

  .event-artists-section--participants .event-artists-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .event-artists-section__more {
    margin-top: 32px;
    font-size: 15px;
  }
}

@media (max-width: 425px) {
  .event-artists-section--participants .event-artists-section__inner {
    width: auto;
    margin-left: 0;
  }

  .event-artists-section--participants .event-artists-section__title {
    width: auto;
  }

  .event-artists-section--participants .event-artists-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding: 0;
    overflow: visible;
    scroll-padding-inline: 0;
    scroll-snap-type: none;
  }

  .event-artists-section--participants .event-artists-grid__item {
    flex: initial;
    scroll-snap-align: none;
  }
}

@media (max-width: 340px) {
  .event-artists-section--participants .event-artists-grid {
    grid-template-columns: 1fr;
  }
}
/* page: viewers rules */
.page-viewers {
  background: var(--color-white);
}

.viewers-rules-section {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  padding: 81px 0 140px;
  background: var(--color-white);
}

.viewers-rules-section::before {
  position: absolute;
  right: calc(50% + 115px);
  bottom: -550px;
  width: 870px;
  height: 870px;
  border-radius: 50%;
  background: rgba(42, 52, 126, 0.04);
  content: "";
  pointer-events: none;
}


.viewers-rules-section__container {
  position: relative;
  z-index: 1;
  width: min(1270px, calc(100% - 240px - var(--container-padding)));
  margin-right: auto;
  margin-left: 240px;
}

.viewers-rules-section__title {
  width: 1270px;
  max-width: 100%;
  margin: 0;
  color: var(--color-blue);
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
}

.viewers-rules-grid {
  display: grid;
  width: 1270px;
  max-width: 100%;
  margin: 88px 0 0;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 610px), 610px));
  gap: 32px 40px;
}

.viewers-rules-grid__item--tall {
  grid-row: span 2;
}

.viewers-rule-card {
  position: relative;
  width: 100%;
  aspect-ratio: 610 / 162;
  border-radius: 32px;
  background-image:
    var(--viewers-rule-card-art),
    radial-gradient(84% 118% at 58% 0%, rgba(0, 100, 255, 0.95) 0%, rgba(0, 69, 215, 0.9) 44%, rgba(0, 69, 215, 0) 72%),
    linear-gradient(180deg, #041bb1 0%, #0045d7 45%, #29337d 100%);
  background-position: var(--viewers-rule-card-art-position), center, center;
  background-size: var(--viewers-rule-card-art-size), cover, cover;
  background-repeat: no-repeat;
  box-shadow: 0 10px 24px rgba(16, 25, 88, 0.08);
}

.viewers-rules-grid__item--tall .viewers-rule-card {
  aspect-ratio: 610 / 356;
}

.viewers-rule-card__title {
  position: absolute;
  top: 24.5%;
  left: 6.55%;
  z-index: 1;
  max-width: 52%;
  color: var(--color-white);
  font-size: clamp(18px, 4vw, 26px);
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  pointer-events: none;
}

.viewers-rules-grid__item--tall .viewers-rule-card__title {
  top: 10.7%;
  max-width: 44%;
}

@media (max-width: 1500px) {
  .viewers-rules-section__container {
    width: min(1270px, calc(100% - 240px - var(--container-padding)));
  }
}
@media (max-width: 1540px) {
  .viewers-rules-grid__item--tall {
    grid-row: auto;
  }
}

@media (max-width: 1120px) {
  .viewers-rules-section {
    min-height: 0;
    padding: 64px 0 96px;
  }

  
  .viewers-rules-section__container {
    width: min(100% - 64px, 900px);
    margin-inline: auto;
  }

.viewers-rules-section::before {
    right: auto;
    left: -260px;
    bottom: -460px;
  }


  .viewers-rules-section__title {
    font-size: 38px;
  }

  .viewers-rules-grid {
    width: 100%;
    margin: 56px auto 0;
    grid-template-columns: 1fr;
  }

  .viewers-rules-grid__item--tall {
    grid-row: auto;
  }
}

@media (max-width: 640px) {
  .viewers-rules-section {
    padding: 42px 0 72px;
  }


  .viewers-rules-section__title {
    font-size: 28px;
  }

  .viewers-rules-grid {
    margin: 32px auto 0;
    gap: 18px;
  }

  .viewers-rule-card {
    border-radius: 24px;
  }

  .viewers-rule-card__title {
    font-size: clamp(16px, 5vw, 22px);
  }
}

/* Viewers: FAQ section */
.viewers-faq-section {
  padding: 0 0 140px;
  background: var(--color-white);
}

.viewers-faq-section__container {
  width: min(1270px, calc(100% - 240px - var(--container-padding)));
  margin-right: auto;
  margin-left: 240px;
}

.viewers-faq-section__title {
  margin: 0 0 40px;
  color: var(--color-blue);
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
}

.viewers-faq {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.viewers-faq__item {
  overflow: hidden;
  border: 1px solid #777;
  border-radius: 32px;
  background: var(--color-white);
}

.viewers-faq__question {
  display: grid;
  min-height: 94px;
  padding: 32px;
  align-items: start;
  grid-template-columns: minmax(0, 1fr) 34px;
  gap: 16px;
  color: var(--color-text);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
  list-style: none;
}

.viewers-faq__question::-webkit-details-marker {
  display: none;
}

.viewers-faq__question::marker {
  content: "";
}

.viewers-faq__question:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: -8px;
}

.viewers-faq__icon {
  display: flex;
  width: 34px;
  height: 20px;
  margin-top: 2px;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--color-blue);
  transition: transform 180ms ease;
}

.viewers-faq__icon svg {
  display: block;
  width: 20px;
  height: 33.6px;
  fill: currentColor;
  transform: rotate(-90deg);
  transform-origin: center;
}

.viewers-faq__item:not([open]) .viewers-faq__icon {
  transform: rotate(180deg);
}

.viewers-faq__answer {
  margin-top: -8px;
  padding: 0 32px 32px;
  color: var(--color-text);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.3;
}

.viewers-faq__answer p {
  margin: 0;
}

.viewers-faq__answer p + p {
  margin-top: 20px;
}

@media (max-width: 1120px) {
  .viewers-faq-section {
    padding-bottom: 96px;
  }

  .viewers-faq-section__container {
    width: min(100% - 64px, 900px);
    margin-inline: auto;
  }

  .viewers-faq-section__title {
    font-size: 38px;
  }

  .viewers-faq__question,
  .viewers-faq__answer {
    font-size: 20px;
  }
}

@media (max-width: 640px) {
  .viewers-faq-section {
    padding-bottom: 72px;
  }

  .viewers-faq-section__container {
    width: min(100% - 32px, 610px);
    margin-inline: auto;
  }

  .viewers-faq-section__title {
    margin-bottom: 28px;
    font-size: 28px;
  }

  .viewers-faq {
    gap: 12px;
  }

  .viewers-faq__item {
    border-radius: 22px;
  }

  .viewers-faq__question {
    min-height: 0;
    padding: 22px;
    grid-template-columns: minmax(0, 1fr) 24px;
    font-size: 16px;
  }

  .viewers-faq__icon {
    width: 24px;
    height: 16px;
  }

  .viewers-faq__icon svg {
    width: 16px;
    height: 26.88px;
  }

  .viewers-faq__answer {
    margin-top: -4px;
    padding: 0 22px 22px;
    font-size: 15px;
  }

  .viewers-faq__answer p + p {
    margin-top: 14px;
  }
}
/* Viewers: rule popups */
body.is-viewers-rule-modal-open {
  overflow: hidden;
}

.viewers-rule-card {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 610 / 162;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 32px;
  --viewers-rule-card-art: none;
  --viewers-rule-card-art-position: right center;
  --viewers-rule-card-art-size: auto 100%;
  background-image:
    var(--viewers-rule-card-art),
    radial-gradient(84% 118% at 58% 0%, rgba(0, 100, 255, 0.95) 0%, rgba(0, 69, 215, 0.9) 44%, rgba(0, 69, 215, 0) 72%),
    linear-gradient(180deg, #041bb1 0%, #0045d7 45%, #29337d 100%);
  background-position: var(--viewers-rule-card-art-position), center, center;
  background-size: var(--viewers-rule-card-art-size), cover, cover;
  background-repeat: no-repeat;
  box-shadow: 0 10px 24px rgba(16, 25, 88, 0.08);
  cursor: pointer;
  transition: box-shadow 180ms ease, transform 180ms ease, filter 180ms ease;
}

.viewers-rule-card[data-viewers-rule-trigger="tickets"] {
  aspect-ratio: 610 / 356;
}

.viewers-rule-card[data-viewers-rule-trigger="age"] {
  --viewers-rule-card-art: url("../img/viewers-rule-age-illustration.svg");
  --viewers-rule-card-art-position: right 9.016% top 100%;
  --viewers-rule-card-art-size: 29.836% auto;
}

.viewers-rule-card[data-viewers-rule-trigger="safety"] {
  --viewers-rule-card-art: url("../img/viewers-rule-safety-illustration.svg");
  --viewers-rule-card-art-position: left 88% top 100%;
  --viewers-rule-card-art-size: 26.885% auto;
}

.viewers-rule-card[data-viewers-rule-trigger="dress-code"] {
  --viewers-rule-card-art: url("../img/viewers-rule-dress-code-illustration.svg");
  --viewers-rule-card-art-position: left 100% top 100%;
  --viewers-rule-card-art-size: 45.246% auto;
}

.viewers-rule-card[data-viewers-rule-trigger="tickets"] {
  --viewers-rule-card-art: url("../img/viewers-rule-tickets-illustration.svg");
  --viewers-rule-card-art-position: left 80% top 101%;
  --viewers-rule-card-art-size: 63.164% auto;
}

.viewers-rule-card[data-viewers-rule-trigger="items"] {
  --viewers-rule-card-art: url("../img/viewers-rule-items-illustration.svg");
  --viewers-rule-card-art-position: left 95% top 100%;
  --viewers-rule-card-art-size: 42.291% auto;
}

.viewers-rule-card:hover,
.viewers-rule-card:focus-visible {
  box-shadow: 0 16px 34px rgba(16, 25, 88, 0.16);
  filter: brightness(1.03);
  transform: translateY(-2px);
}

.viewers-rule-card:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 5px;
}

.viewers-rule-modal {
  position: fixed;
  z-index: 1100;
  inset: 0;
  display: grid;
  overflow: hidden;
  opacity: 0;
  padding: 88px 24px 48px;
  place-items: center;
  background: rgba(18, 23, 56, 0.76);
  backdrop-filter: blur(8px);
  transition: opacity 220ms ease;
}

.viewers-rule-modal[hidden],
.viewers-rule-modal__panel[hidden] {
  display: none;
}

.viewers-rule-modal.is-visible {
  opacity: 1;
}

.viewers-rule-modal__frame {
  position: relative;
  width: min(1190px, calc(100vw - 48px));
  max-height: calc(100vh - 136px);
  transform: translateY(14px) scale(0.985);
  transition: transform 220ms ease;
}

.viewers-rule-modal__dialog {
  position: relative;
  width: 100%;
  max-height: inherit;
  padding: 72px 81px 80px;
  overflow-y: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
  border-radius: 40px;
  background: var(--color-white);
  box-shadow: 0 28px 80px rgba(8, 12, 48, 0.34);
}

.viewers-rule-modal.is-visible .viewers-rule-modal__frame {
  transform: translateY(0) scale(1);
}

.viewers-rule-modal__dialog::-webkit-scrollbar {
  display: none;
}

.viewers-rule-modal__scrollbar {
  position: absolute;
  top: 30px;
  right: 12px;
  bottom: 30px;
  z-index: 2;
  display: none;
  width: 8px;
  border-radius: 100px;
  background: rgba(232, 232, 232, 0.5);
  pointer-events: none;
}

.viewers-rule-modal__scrollbar.is-visible {
  display: block;
}

.viewers-rule-modal__scrollbar-thumb {
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  min-height: 40px;
  border-radius: 100px;
  background: rgba(41, 51, 125, 0.2);
  transition: height 120ms ease, transform 80ms linear;
}
.viewers-rule-modal__close {
  position: absolute;
  top: -40px;
  right: max(-40px, calc((100% - 100vw) / 2 + 12px));
  z-index: 3;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--color-white);
  background: var(--color-blue);
  cursor: pointer;
  transition: background-color 180ms ease, transform 180ms ease;
}

.viewers-rule-modal__close::before,
.viewers-rule-modal__close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 21px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: "";
}

.viewers-rule-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.viewers-rule-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.viewers-rule-modal__close:hover {
  background: var(--color-blue-bright);
  transform: rotate(5deg);
}

.viewers-rule-modal__close:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}

.viewers-rule-modal__panel {
  width: 100%;
}

.viewers-rule-modal__title {
  margin: 0 0 24px;
  color: var(--color-blue);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3;
}

.viewers-rule-modal__lead {
  max-width: 1005px;
  margin: 0 0 40px;
  color: var(--color-text);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__columns {
  display: grid;
  max-width: 936px;
  margin-bottom: 40px;
  grid-template-columns: repeat(2, minmax(0, 443px));
  gap: 50px;
}

.viewers-rule-modal__column {
  min-width: 0;
}

.viewers-rule-modal__badge {
  display: flex;
  width: 100%;
  min-height: 44px;
  margin-bottom: 16px;
  padding: 10px 16px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 50px;
  color: var(--color-white);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.viewers-rule-modal__badge strong {
  font-weight: 700;
}

.viewers-rule-modal__badge--no {
  background: #bf2ed9;
}

.viewers-rule-modal__badge--yes {
  background: #00b38a;
}

.viewers-rule-modal__badge-icon {
  position: relative;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 50%;
  background: var(--color-white);
}

.viewers-rule-modal__badge-icon::before,
.viewers-rule-modal__badge-icon::after {
  position: absolute;
  content: "";
}

.viewers-rule-modal__badge--no .viewers-rule-modal__badge-icon::before,
.viewers-rule-modal__badge--no .viewers-rule-modal__badge-icon::after {
  top: 11px;
  left: 7px;
  width: 10px;
  height: 2px;
  border-radius: 2px;
  background: #bf2ed9;
}

.viewers-rule-modal__badge--no .viewers-rule-modal__badge-icon::before {
  transform: rotate(45deg);
}

.viewers-rule-modal__badge--no .viewers-rule-modal__badge-icon::after {
  transform: rotate(-45deg);
}

.viewers-rule-modal__badge--yes .viewers-rule-modal__badge-icon::before {
  top: 7px;
  left: 6px;
  width: 11px;
  height: 7px;
  border-bottom: 2px solid #00b38a;
  border-left: 2px solid #00b38a;
  transform: rotate(-45deg);
}

.viewers-rule-modal__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--color-text);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__list li {
  position: relative;
  padding-left: 21px;
}

.viewers-rule-modal__list li::before {
  position: absolute;
  top: 6px;
  left: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  content: "";
}

.viewers-rule-modal__list--no li::before {
  background: #bf2ed9;
}

.viewers-rule-modal__list--yes li::before {
  background: #00b38a;
}

.viewers-rule-modal__note {
  max-width: 945px;
  margin: 0;
  padding: 30px;
  border-radius: 30px;
  color: var(--color-text);
  background: rgba(190, 202, 222, 0.3);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}



.viewers-rule-modal[data-active-panel="tickets"] .viewers-rule-modal__dialog {
  height: min(700px, calc(100vh - 136px));
  padding: 72px 113px 72px 72px;
}

.viewers-rule-modal__panel--tickets {
  display: flex;
  max-width: 1005px;
  flex-direction: column;
  gap: 56px;
}

.viewers-rule-modal__tickets-title {
  margin-bottom: 24px;
}

.viewers-rule-modal__tickets-section-title {
  margin: 0 0 24px;
  color: var(--color-blue);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3;
}

.viewers-rule-modal__tickets-text,
.viewers-rule-modal__tickets-note {
  color: var(--color-text);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__tickets-text p,
.viewers-rule-modal__tickets-note p {
  margin: 0;
}

.viewers-rule-modal__tickets-text p + p,
.viewers-rule-modal__tickets-note p + p {
  margin-top: 15px;
}

.viewers-rule-modal__tickets-note {
  padding: 30px;
  border-radius: 30px;
  background: rgba(190, 202, 222, 0.3);
}

.viewers-rule-modal__tickets-note strong {
  color: var(--color-blue);
  font-weight: 700;
}

.viewers-rule-modal[data-active-panel="age"] .viewers-rule-modal__frame {
  width: min(1000px, calc(100vw - 48px));
}

.viewers-rule-modal[data-active-panel="age"] .viewers-rule-modal__dialog {
  min-height: 479px;
  padding: 72px 63px 40px 72px;
}

.viewers-rule-modal__panel--age {
  max-width: 869px;
}

.viewers-rule-modal__age-title {
  margin-bottom: 24px;
}

.viewers-rule-modal__age-text {
  color: var(--color-text);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__age-text p {
  margin: 0;
}

.viewers-rule-modal__age-text p + p {
  margin-top: 15px;
}

.viewers-rule-modal__age-note {
  margin: 40px 0 0;
  padding: 30px 34px;
  border-radius: 30px;
  color: var(--color-text);
  background: rgba(190, 202, 222, 0.3);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__panel--dress-code {
  display: grid;
  min-height: 415px;
  align-items: start;
  grid-template-columns: minmax(0, 556px) minmax(360px, 1fr);
  gap: 72px;
}

.viewers-rule-modal__dress-content {
  max-width: 556px;
}

.viewers-rule-modal__dress-title {
  margin-bottom: 24px;
}

.viewers-rule-modal__dress-text {
  color: var(--color-text);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__dress-text p {
  margin: 0;
}

.viewers-rule-modal__dress-text p + p {
  margin-top: 15px;
}

.viewers-rule-modal__dress-note {
  max-width: 551px;
  margin: 32px 0 0;
  padding: 25px 30px;
  border-radius: 30px;
  color: var(--color-text);
  background: rgba(190, 202, 222, 0.3);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__dress-collage {
  position: relative;
  width: min(100%, 430px);
  height: 385px;
  justify-self: end;
}

.viewers-rule-modal__dress-photo {
  position: absolute;
  width: 248px;
  height: 208px;
  overflow: hidden;
  border-radius: 30px;
  background: #0160f4;
  box-shadow: 0 12px 28px rgba(16, 25, 88, 0.14);
}

.viewers-rule-modal__dress-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.viewers-rule-modal__dress-photo--family {
  top: 0;
  right: 0;
  transform: rotate(-2deg);
}

.viewers-rule-modal__dress-photo--classic {
  top: 98px;
  left: 0;
  z-index: 2;
  transform: rotate(3deg);
}

.viewers-rule-modal__dress-photo--party {
  right: 0;
  bottom: 0;
  z-index: 3;
  transform: rotate(8deg);
}

@media (max-width: 1120px) {
  .viewers-rule-modal__dialog {
    padding: 64px 40px 48px;
  }

  .viewers-rule-modal__columns {
    max-width: none;
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .viewers-rule-modal__badge {
    width: fit-content;
    max-width: 100%;
    white-space: normal;
  }

  .viewers-rule-modal__panel--dress-code {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .viewers-rule-modal__dress-content {
    max-width: none;
  }

  .viewers-rule-modal__dress-note {
    max-width: none;
  }

  .viewers-rule-modal__dress-collage {
    justify-self: center;
  }
}

@media (max-width: 640px) {
  .viewers-rule-card {
    border-radius: 24px;
  }

  .viewers-rule-card__title {
    font-size: clamp(16px, 5vw, 22px);
  }

  .viewers-rule-modal {
    padding: 64px 12px 24px;
  }

  .viewers-rule-modal__frame {
    width: min(100%, calc(100vw - 24px));
    max-height: calc(100vh - 88px);
  }

  .viewers-rule-modal__dialog {
    padding: 64px 20px 28px;
    border-radius: 28px;
  }

  .viewers-rule-modal__scrollbar {
    top: 24px;
    right: 8px;
    bottom: 24px;
  }

  .viewers-rule-modal__close {
    top: -40px;
    right: 0;
    width: 40px;
    height: 40px;
  }

  .viewers-rule-modal__title {
    margin-bottom: 18px;
    font-size: 23px;
  }

  .viewers-rule-modal__lead {
    margin-bottom: 28px;
    font-size: 17px;
  }

  .viewers-rule-modal__badge {
    justify-content: flex-start;
    font-size: 15px;
  }

  .viewers-rule-modal__list {
    font-size: 15px;
  }

  .viewers-rule-modal__note {
    padding: 22px;
    border-radius: 22px;
    font-size: 15px;
  }

  .viewers-rule-modal[data-active-panel="tickets"] .viewers-rule-modal__dialog {
    height: auto;
    padding: 64px 20px 28px;
  }

  .viewers-rule-modal__panel--tickets {
    gap: 36px;
  }

  .viewers-rule-modal__tickets-section-title {
    margin-bottom: 16px;
    font-size: 23px;
  }

  .viewers-rule-modal__tickets-text,
  .viewers-rule-modal__tickets-note {
    font-size: 15px;
  }

  .viewers-rule-modal__tickets-note {
    padding: 22px;
    border-radius: 22px;
  }

  .viewers-rule-modal[data-active-panel="age"] .viewers-rule-modal__frame {
    width: min(100%, calc(100vw - 24px));
  }

  .viewers-rule-modal[data-active-panel="age"] .viewers-rule-modal__dialog {
    min-height: 0;
    padding: 64px 20px 28px;
  }

  .viewers-rule-modal__age-text,
  .viewers-rule-modal__age-note {
    font-size: 15px;
  }

  .viewers-rule-modal__age-note {
    margin-top: 28px;
    padding: 22px;
    border-radius: 22px;
  }

  .viewers-rule-modal__panel--dress-code {
    min-height: 0;
    gap: 28px;
  }

  .viewers-rule-modal__dress-text,
  .viewers-rule-modal__dress-note {
    font-size: 15px;
  }

  .viewers-rule-modal__dress-note {
    margin-top: 24px;
    padding: 22px;
    border-radius: 22px;
  }

  .viewers-rule-modal__dress-collage {
    width: 280px;
    height: 280px;
  }

  .viewers-rule-modal__dress-photo {
    width: 164px;
    height: 138px;
    border-radius: 20px;
  }

  .viewers-rule-modal__dress-photo--classic {
    top: 72px;
  }
}
.viewers-rule-modal__section + .viewers-rule-modal__section {
  margin-top: 56px;
}

.viewers-rule-modal__section-title {
  margin: 0 0 24px;
  color: var(--color-blue);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3;
}

.viewers-rule-modal__text {
  margin: 0;
  color: var(--color-text);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.viewers-rule-modal__text p {
  margin: 0;
}

.viewers-rule-modal__text p + p {
  margin-top: 15px;
}

.viewers-rule-modal__text em {
  font-style: italic;
}

.viewers-rule-modal__topic {
  margin-top: 24px;
}

.viewers-rule-modal__tag {
  display: inline-flex;
  margin-bottom: 12px;
  padding: 3px 10px;
  border-radius: 8px;
  color: var(--color-white);
  background: var(--color-accent);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

@media (max-width: 640px) {
  .viewers-rule-modal__section + .viewers-rule-modal__section {
    margin-top: 36px;
  }

  .viewers-rule-modal__section-title {
    margin-bottom: 16px;
    font-size: 23px;
  }

  .viewers-rule-modal__text,
  .viewers-rule-modal__tag {
    font-size: 15px;
  }
}

/* Artist detail page */
.page-artist {
  background: var(--color-white);
}

.page-artist .site-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  background: rgba(255, 255, 255, 0.16);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

.page-artist__main {
  overflow: hidden;
  background: var(--color-white);
}

.artist-profile-section {
  position: relative;
  min-height: 1205px;
  padding-block: 239px 120px;
  overflow: hidden;
  background: var(--color-white);
}

.artist-profile-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 509px;
  height: 478px;
  background-image: url("../img/news-detail-decor-top.svg");
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transform: rotate(180deg);
  transform-origin: center;
  pointer-events: none;
}

.artist-profile-section::after {
  content: "";
  position: absolute;
  right: 0px;
  bottom: 0;
  width: 1020px;
  height: 742px;
  border-radius: 97% 0 0 0;
  background: var(--color-accent);
  opacity: 0.82;
  pointer-events: none;
}

.artist-profile-section__container {
  position: relative;
  z-index: 1;
  width: min(1440px, calc(100% - var(--container-padding) * 2));
  min-height: 788px;
}

.artist-profile-card {
  position: relative;
  z-index: 2;
  width: min(863px, 100%);
  padding: 40px 48px;
  border-radius: var(--radius-xl);
  color: var(--color-text);
  background: var(--color-white);
  box-shadow: 10px 0 22px rgba(0, 0, 0, 0.2);
}

.artist-profile-card__title {
  margin: 0 0 32px;
  color: var(--color-blue);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
}

.artist-profile-card__text {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.artist-profile-card__text p {
  margin: 0 0 15px;
}

.artist-profile-card__text p:last-child {
  margin-bottom: 0;
}

.artist-profile-media {
  position: absolute;
  z-index: 1;
  top: 40px;
  right: 0;
  width: 707px;
  height: 544px;
  overflow: hidden;
  border-radius: 24px;
  background: var(--color-accent);
}

.artist-profile-media__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1200px) {
  .artist-profile-section {
    min-height: 0;
    padding-block: 182px 96px;
  }

  .artist-profile-section__container {
    display: grid;
    gap: 32px;
    min-height: 0;
    width: min(980px, calc(100% - var(--container-padding) * 2));
  }

  .artist-profile-media {
    position: relative;
    top: auto;
    right: auto;
    order: -1;
    width: 100%;
    height: auto;
    aspect-ratio: 707 / 544;
  }

  .artist-profile-card {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .artist-profile-section {
    padding-block: 156px 72px;
  }

  .artist-profile-section::before {
    top: 0;
    left: -84px;
    width: 420px;
    height: 394px;
  }

  .artist-profile-section::after {
    right: -520px;
    width: 900px;
    height: 520px;
  }

  .artist-profile-card {
    padding: 28px 24px;
    border-radius: 28px;
  }

  .artist-profile-card__title {
    margin-bottom: 24px;
    font-size: 28px;
  }

  .artist-profile-card__text {
    font-size: 16px;
  }
}

/* Contacts page */
.page-contacts {
  background: var(--color-white);
}

.page-contacts__main {
  overflow: hidden;
}

.contacts-section {
  position: relative;
  min-height: 1205px;
  padding-block: 100px 120px;
  overflow: hidden;
  background: var(--color-white);
}

.contacts-section::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 808px;
  height: 687px;
  border-radius: 100% 0 0 0;
  background: var(--color-accent);
  opacity: 0.86;
  pointer-events: none;
}
.contacts-section__container {
  position: relative;
  z-index: 1;
  width: min(1176px, calc(100% - 240px - var(--container-padding)));
  margin-right: auto;
  margin-left: 240px;
}

.contacts-section__title {
  margin: 0 0 48px;
  color: var(--color-blue);
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
}

.contacts-section__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 568px), 568px));
  gap: 40px;
  align-items: start;
  justify-content: start;
}

.contacts-card {
  padding: 40px 48px;
  border-radius: var(--radius-lg);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.contacts-card--intro,
.contacts-card--social {
  min-height: 331px;
}

.contacts-card--producers {
  grid-column: 1 / -1;
  width: 100%;
}

.contacts-card__text,
.contacts-card__lead {
  color: var(--color-text);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
}

.contacts-card__text p,
.contacts-card__lead {
  margin: 0;
}

.contacts-card__text p + p {
  margin-top: 15px;
}

.contacts-card__title {
  margin: 0 0 24px;
  color: var(--color-blue);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
}

.contacts-email-button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 24px;
  padding: 20px 32px;
  border-radius: var(--radius-pill);
  color: var(--color-white);
  background: var(--color-blue);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.contacts-email-button:hover,
.contacts-email-button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.16);
}

.contacts-email-button__icon {
  width: 37px;
  height: 28px;
  flex: 0 0 auto;
}

.contacts-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 24px;
}

.contacts-social-links__link {
  display: block;
  width: 84px;
  height: 84px;
  transition: transform 180ms ease, filter 180ms ease;
}

.contacts-social-links__link:hover,
.contacts-social-links__link:focus-visible {
  transform: translateY(-2px);
  filter: drop-shadow(0 8px 12px rgba(41, 51, 125, 0.18));
}

.contacts-social-links__link img {
  width: 100%;
  height: 100%;
}

.contacts-producers {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.contacts-producer-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 20px 32px;
  border: 1px solid var(--color-blue);
  border-radius: var(--radius-pill);
  color: var(--color-text);
  background: var(--color-white);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.contacts-producer-link:hover,
.contacts-producer-link:focus-visible {
  color: var(--color-white);
  background: var(--color-blue);
  transform: translateY(-2px);
}

.contacts-producer-link__icon {
  width: 34px;
  height: 33px;
  flex: 0 0 auto;
  transition: filter 180ms ease;
}

.contacts-producer-link:hover .contacts-producer-link__icon,
.contacts-producer-link:focus-visible .contacts-producer-link__icon {
  filter: brightness(0) invert(1);
}

@media (max-width: 1200px) {
  .contacts-section {
    min-height: 0;
    padding-block: 72px 96px;
  }

  .contacts-section__container {
    width: min(900px, calc(100% - var(--container-padding) * 2));
    margin-inline: auto;
  }

  .contacts-section__grid {
    gap: 32px;
  }

  .contacts-card--intro,
  .contacts-card--social {
    min-height: 0;
  }
}

@media (max-width: 768px) {
  .contacts-section {
    padding-block: 48px 72px;
  }

  .contacts-section::after {
    right: -470px;
    width: 760px;
    height: 560px;
  }

  .contacts-section__title {
    margin-bottom: 32px;
    font-size: 34px;
  }

  .contacts-card {
    padding: 28px 24px;
    border-radius: 28px;
  }

  .contacts-card__text,
  .contacts-card__lead {
    font-size: 17px;
  }

  .contacts-email-button,
  .contacts-producer-link {
    width: 100%;
    justify-content: center;
    padding: 16px 20px;
    font-size: 16px;
  }

  .contacts-social-links {
    gap: 16px;
  }

  .contacts-social-links__link {
    width: 64px;
    height: 64px;
  }
}


/* Ivan interviews page */
.page-interview {
  background: var(--color-white);
}

.page-interview__main {
  overflow: hidden;
}

.interview-section {
  position: relative;
  min-height: 1065px;
  padding-block: 100px 120px;
  overflow: hidden;
  background: var(--color-white);
}

.interview-section::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 982px;
  height: 768px;
  border-radius: 100% 0 0 0;
  background: #EBEBEB80;
  pointer-events: none;
}

.interview-section__container {
  position: relative;
  z-index: 1;
  width: min(1270px, calc(100% - var(--container-padding) * 2));
  margin-inline: auto;
}

.interview-section__title {
  margin: 0 0 56px;
  color: var(--color-blue);
  font-size: 40px;
  font-weight: 800;
  line-height: 1.1;
}

.interview-videos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 568px), 568px));
  gap: 56px;
  align-items: start;
  justify-content: start;
}

.interview-video__preview {
  position: relative;
  display: block;
  width: 100%;
  max-width: 568px;
  aspect-ratio: 568 / 331;
  height: auto;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: #888888;
}

.interview-video__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 220ms ease;
}

.interview-video__image--first {
  width: calc(100% + 36px);
  max-width: none;
  margin-left: -18px;
}

.interview-video__image--second {
  width: calc(100% + 127px);
  max-width: none;
  height: calc(100% + 53px);
  margin-top: -26px;
  margin-left: -18px;
}

.interview-video__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46, 67, 217, 0) 0%, rgba(19, 38, 178, 0.6) 79.84%, #1529bc 100%);
  pointer-events: none;
}

.interview-video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 72px;
  height: 55px;
  border-radius: 10px;
  background: var(--color-accent);
  transform: translate(-50%, -50%);
  transition: transform 220ms ease, background-color 220ms ease;
}

.interview-video__play::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-left: 17px solid var(--color-blue);
  transform: translate(-38%, -50%);
}

.interview-video__preview:hover .interview-video__image,
.interview-video__preview:focus-visible .interview-video__image {
  transform: scale(1.04);
}

.interview-video__preview:hover .interview-video__play,
.interview-video__preview:focus-visible .interview-video__play {
  transform: translate(-50%, -50%) scale(1.08);
  background: #d8c29d;
}

.interview-video__title {
  width: 100%;
  max-width: 568px;
  margin: 24px 0 0;
  color: var(--color-text);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
}

.interview-video__title a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color 180ms ease;
}

.interview-video__title a:hover,
.interview-video__title a:focus-visible {
  color: var(--color-blue);
}

@media (max-width: 1200px) {
  .interview-section {
    min-height: 0;
    padding-block: 72px 96px;
  }

  .interview-section__container {
    width: min(980px, calc(100% - var(--container-padding) * 2));
    margin-inline: auto;
  }

  .interview-videos {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .interview-section {
    padding-block: 48px 72px;
  }

  .interview-section::after {
    right: -620px;
    width: 900px;
    height: 640px;
  }

  .interview-section__title {
    margin-bottom: 32px;
    font-size: 32px;
  }

  .interview-video__preview {
    height: auto;
    aspect-ratio: 568 / 331;
    border-radius: 24px;
  }

  .interview-video__play {
    width: 58px;
    height: 44px;
    border-radius: 8px;
  }

  .interview-video__play::before {
    border-top-width: 9px;
    border-bottom-width: 9px;
    border-left-width: 14px;
  }

  .interview-video__title {
    margin-top: 16px;
    font-size: 17px;
  }
}

/* Alexey interview page */
.page-interview-profile {
  background: var(--color-blue);
}

.site-header--interview-profile {
  position: relative;
  z-index: 5;
  background: var(--color-blue);
}

.site-header--interview-profile .site-nav__link {
  border-color: var(--color-accent);
}

.site-header--interview-profile .site-nav__link:hover,
.site-header--interview-profile .site-nav__link:focus-visible,
.site-header--interview-profile .site-nav__link--active {
  color: var(--color-white);
  background: var(--color-accent);
}

.page-interview-profile__main {
  overflow: hidden;
  background: var(--color-blue);
}

.interview-profile-section {
  position: relative;
  min-height: 1205px;
  padding-block: 153px 189px;
  overflow: hidden;
  color: var(--color-white);
  background: var(--color-blue);
}

.interview-profile-section__glow {
  position: absolute;
  top: 97px;
  left: 111px;
  width: 600px;
  height: 600px;
  max-width: none;
  pointer-events: none;
}

.interview-profile-section__decor {
  position: absolute;
  z-index: 0;
  max-width: none;
  pointer-events: none;
}

.interview-profile-section__decor--main {
  right: 0;
  bottom: 0;
  width: 1112px;
  height: 862px;
}

.interview-profile-section__decor--arc {
  right: 0;
  bottom: 0;
  width: 691px;
  height: 542px;
  z-index: 2;
}

.interview-profile-section__container {
  position: relative;
  z-index: 1;
  width: min(1440px, calc(100% - var(--container-padding) * 2));
}

.interview-profile-section__title {
  width: min(767px, 100%);
  margin: 0 0 72px;
  color: var(--color-white);
  font-size: 40px;
  font-weight: 800;
  line-height: 1.1;
}

.interview-profile {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}

.interview-profile__card {
  position: relative;
  z-index: 3;
  width: 863px;
  padding: 40px 48px;
  border-radius: var(--radius-xl);
  color: var(--color-text);
  background: var(--color-white);
  box-shadow: 10px 0 22px rgba(0, 0, 0, 0.2);
}

.interview-profile__qa + .interview-profile__qa {
  margin-top: 40px;
}

.interview-profile__qa h2 {
  margin: 0 0 24px;
  color: #1529bc;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
}

.interview-profile__qa p {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
}

.interview-profile__photo {
  position: relative;
  z-index: 1;
  flex: 0 0 474px;
  width: 474px;
  height: 526px;
  margin: 0;
  overflow: hidden;
  border-radius: 30px;
  background: #becade;
}

.interview-profile__image {
  width: 546px;
  height: 727px;
  max-width: none;
  object-fit: cover;
  object-position: center top;
  transform: translate(-17px, -34px);
}

@media (max-width: 1400px) {
  .interview-profile-section {
    min-height: 0;
    padding-block: 96px 128px;
  }

  .interview-profile-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
  }

  .interview-profile {
    gap: 32px;
  }

  .interview-profile__card {
    flex: 1 1 auto;
    width: auto;
  }

  .interview-profile__photo {
    flex-basis: 380px;
    width: 380px;
    height: 422px;
  }

  .interview-profile__image {
    width: 438px;
    height: 584px;
    transform: translate(-14px, -27px);
  }
}

@media (max-width: 1024px) {
  .interview-profile {
    flex-direction: column-reverse;
  }

  .interview-profile__photo {
    position: relative;
    z-index: 1;
    flex: none;
  }

  .interview-profile-section__decor--main {
    right: -560px;
  }

  .interview-profile-section__decor--arc {
    right: -220px;
  }
}

@media (max-width: 768px) {
  .interview-profile-section {
    padding-block: 56px 88px;
  }

  .interview-profile-section__glow {
    top: 20px;
    left: -240px;
  }

  .interview-profile-section__title {
    margin-bottom: 32px;
    font-size: 32px;
  }

  .interview-profile__card {
    padding: 28px 24px;
    border-radius: 28px;
  }

  .interview-profile__qa + .interview-profile__qa {
    margin-top: 32px;
  }

  .interview-profile__qa h2 {
    margin-bottom: 16px;
    font-size: 20px;
  }

  .interview-profile__qa p {
    font-size: 16px;
  }

  .interview-profile__photo {
    width: min(380px, 100%);
    height: auto;
    aspect-ratio: 474 / 526;
    border-radius: 24px;
  }

  .interview-profile__image {
    width: 115.2%;
    height: 138.2%;
    transform: translate(-3.6%, -6.5%);
  }
}


/* page: afisha events catalog */
.events-catalog-section {
  padding: 74px 0 60px;
  background: var(--color-white);
}

.events-catalog-filters {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 64px;
}

.events-catalog-filter {
  position: relative;
  /* width: 187px; */
  display: block;
}

/* .events-catalog-filter--city {
  width: 166px;
} */

.events-catalog-filter__select {
  width: 100%;
  height: 56px;
  appearance: none;
  padding: 0 56px 0 24px;
  border: 1px solid rgba(41, 51, 125, 0.6);
  border-radius: var(--radius-pill);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-blue);
  background-color: var(--color-white);
  background-image: url("../img/afisha-filter-arrow.svg");
  background-repeat: no-repeat;
  background-position: right 22px center;
  background-size: 24px 24px;
  cursor: pointer;
}

.events-catalog-filter__select:focus-visible {
  outline: 3px solid rgba(41, 51, 125, 0.2);
  outline-offset: 3px;
}

.events-catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 60px 40px;
}

.event-card--catalog {
  min-height: 541px;
  color: var(--color-text);
  box-shadow: var(--shadow-card);
}

.event-card__media--catalog {
  height: 250px;
  flex-basis: 250px;
}

.event-card__body--catalog {
  min-height: 291px;
  padding: 26px 32px 28px;
}

.event-card__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.event-card__catalog-date {
  min-width: 192px;
  min-height: 33px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px;
  border-radius: var(--radius-sm);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-white);
  background: var(--color-accent);
}

.event-card__place--catalog {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
}

.event-card__description {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 32px;
}

.event-card__title--catalog {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text);
}

.event-card__subtitle--catalog {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-text);
}

.event-card__actions--catalog {
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  gap: 24px;
  padding-top: 20px;
}

.event-card__button--catalog {
  min-height: 50px;
  padding: 12px 24px;
  font-size: 18px;
  font-weight: 500;
}

.event-card__button--catalog.event-card__button--outline {
  border-width: 1px;
}

.events-catalog-section__actions {
  display: flex;
  justify-content: center;
  margin-top: 82px;
}

@media (min-width: 901px) and (max-width: 1500px) {
  .events-catalog-section {
    padding-top: 64px;
  }

  .events-catalog-section__container {
    width: min(1120px, calc(100% - var(--container-padding) * 2));
  }

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

@media (min-width: 761px) and (max-width: 1023px) {
  .events-catalog-grid .event-card--catalog:nth-of-type(n + 5) {
    display: none;
  }
}

@media (max-width: 900px) {
  .events-catalog-section {
    padding: 48px 0 24px;
  }

  .events-catalog-filters {
    margin-bottom: 40px;
  }

  .events-catalog-grid {
    max-width: 600px;
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
    margin-inline: auto;
  }

  .events-catalog-section__actions {
    margin-top: 48px;
  }
}

@media (max-width: 560px) {
  .events-catalog-filters {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
  }

  .events-catalog-filter,
  .events-catalog-filter--city {
    width: 178px;
    max-width: calc((100vw - 76px) / 2);
    flex: 0 1 178px;
  }

  .events-catalog-filter__select {
    height: 48px;
    padding-right: 42px;
    padding-left: 18px;
    font-size: 16px;
    background-position: right 16px center;
    background-size: 18px 18px;
  }

  .event-card--catalog {
    min-height: 520px;
  }

  .event-card__media--catalog {
    height: 220px;
    flex-basis: 220px;
  }

  .event-card__body--catalog {
    min-height: 300px;
    padding: 24px 20px;
  }

  .event-card__description {
    margin-top: 24px;
  }

  .event-card__actions--catalog {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .events-catalog-section__actions .button--wide {
    width: 100%;
  }
}

@media (min-width: 761px) and (max-width: 900px) {
  .events-catalog-section {
    padding: 64px 0 88px;
  }

  .events-catalog-section__container {
    width: calc(100% - 128px);
  }

  .events-catalog-grid {
    max-width: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 24px;
    margin-inline: 0;
  }

  .events-catalog-section .event-card--catalog {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 458px;
    border-radius: 28px;
    box-shadow: 10px 0 34px rgba(0, 0, 0, 0.12);
  }

  .events-catalog-section .event-card__media--catalog {
    height: 205px;
    flex-basis: 205px;
    border-radius: 28px;
  }

  .events-catalog-section .event-card__body--catalog {
    min-height: 253px;
    padding: 22px 24px 26px;
  }

  .events-catalog-section .event-card__meta {
    gap: 10px;
  }

  .events-catalog-section .event-card__catalog-date {
    min-width: 0;
    min-height: 25px;
    padding: 4px 10px;
    font-size: 14px;
  }

  .events-catalog-section .event-card__place--catalog {
    font-size: 12px;
  }

  .events-catalog-section .event-card__description {
    gap: 8px;
    margin-top: 18px;
  }

  .events-catalog-section .event-card__title--catalog {
    font-size: 18px;
    line-height: 1.3;
  }

  .events-catalog-section .event-card__subtitle--catalog {
    font-size: 16px;
  }

  .events-catalog-section .event-card__actions--catalog {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 10px;
    padding-top: 22px;
  }

  .events-catalog-section .event-card__button--catalog {
    min-height: 40px;
    padding: 10px 14px;
    border-radius: 24px;
    font-size: 15px;
  }
}
@media (max-width: 760px) {
  .events-catalog-section {
    padding: 48px 0 32px;
  }

  .events-catalog-section__container {
    width: calc(100% - 64px);
  }

  .events-catalog-filters {
    margin-bottom: 32px;
  }

  .events-catalog-grid {
    max-width: 100%;
    grid-template-columns: 1fr;
  }

  /* .events-catalog-grid {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    margin-right: calc((100vw - 100%) / -2);
    margin-left: calc((100vw - 100%) / -2);
    padding: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: 0;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  } */

  /* .events-catalog-grid::-webkit-scrollbar {
    display: none;
  } */

  .events-catalog-section .event-card--catalog {
    box-sizing: border-box;
    width: calc(100vw - 64px);
    min-width: 248px;
    min-height: 0;
    flex: 0 0 calc(100vw - 64px);
    border-radius: 28px;
    scroll-snap-align: start;
  }

  .events-catalog-section .event-card__media--catalog {
    height: clamp(156px, calc((100vw - 64px) * 0.64), 205px);
    flex-basis: clamp(156px, calc((100vw - 64px) * 0.64), 205px);
    border-radius: 28px;
  }

  .events-catalog-section .event-card__body--catalog {
    min-height: 0;
    padding: 22px 20px 24px;
  }

  .events-catalog-section .event-card__meta {
    gap: 10px;
  }

  .events-catalog-section .event-card__catalog-date {
    min-width: 0;
    min-height: 25px;
    padding: 4px 10px;
    font-size: 14px;
  }

  .events-catalog-section .event-card__place--catalog {
    font-size: 12px;
  }

  .events-catalog-section .event-card__description {
    gap: 8px;
    margin-top: 18px;
  }

  .events-catalog-section .event-card__title--catalog {
    font-size: 18px;
  }

  .events-catalog-section .event-card__subtitle--catalog {
    font-size: 16px;
  }

  .events-catalog-section .event-card__actions--catalog {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding-top: 24px;
  }

  .events-catalog-section .event-card__button--catalog {
    min-height: 44px;
    padding: 10px 20px;
    border-radius: 24px;
    font-size: 16px;
  }

  /* .events-catalog-section__actions {
    display: none;
  } */
}

@media (max-width: 560px) {
  .events-catalog-grid {
    padding-bottom: 20px;
  }
}
/* afisha custom dropdowns */
.events-catalog-filter {
  z-index: 1;
}

.events-catalog-filter.is-open {
  z-index: 30;
}

.events-catalog-filter__trigger {
  width: 100%;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 20px 0 24px;
  border: 1px solid rgba(41, 51, 125, 0.62);
  border-radius: var(--radius-pill);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  text-align: left;
  color: var(--color-blue);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 6px 18px rgba(41, 51, 125, 0.07);
  cursor: pointer;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.events-catalog-filter__trigger:hover {
  border-color: var(--color-blue);
  box-shadow: 0 9px 24px rgba(41, 51, 125, 0.13);
  transform: translateY(-1px);
}

.events-catalog-filter__trigger:focus-visible {
  outline: 3px solid rgba(202, 179, 144, 0.42);
  outline-offset: 3px;
}

.events-catalog-filter__icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: transform 220ms ease;
}

.events-catalog-filter.is-open .events-catalog-filter__trigger {
  border-color: var(--color-accent);
  box-shadow:
    0 0 0 3px rgba(202, 179, 144, 0.2),
    0 16px 36px rgba(41, 51, 125, 0.15);
}

.events-catalog-filter.is-open .events-catalog-filter__icon {
  transform: rotate(180deg);
}

.events-catalog-filter.has-value .events-catalog-filter__trigger {
  font-weight: 600;
}

.events-catalog-filter__menu {
  position: absolute;
  z-index: 31;
  top: calc(100% + 10px);
  left: 0;
  width: max(100%, 232px);
  max-height: 320px;
  padding: 8px;
  overflow: auto;
  border: 1px solid rgba(41, 51, 125, 0.16);
  border-top: 3px solid var(--color-accent);
  border-radius: 18px;
  background: var(--color-white);
  z-index: 3;
  box-shadow: 0 20px 44px rgba(30, 38, 100, 0.2);
}

.events-catalog-filter--city .events-catalog-filter__menu {
  width: max(100%, 210px);
}

.events-catalog-filter__menu[hidden] {
  display: none;
}

.events-catalog-filter__option {
  position: relative;
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 10px 38px 10px 14px;
  border: 0;
  border-radius: 11px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.25;
  text-align: left;
  color: var(--color-text);
  background: transparent;
  cursor: pointer;
  transition:
    color 150ms ease,
    background-color 150ms ease,
    transform 150ms ease;
}

.events-catalog-filter__option:hover,
.events-catalog-filter__option:focus-visible {
  outline: 0;
  color: var(--color-blue);
  background: #f1f3f9;
  transform: translateX(2px);
}

.events-catalog-filter__option[aria-selected="true"] {
  font-weight: 700;
  color: var(--color-blue);
  background: rgba(202, 179, 144, 0.24);
}

.events-catalog-filter__option[aria-selected="true"]::after {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 9px;
  height: 5px;
  border-bottom: 2px solid var(--color-blue);
  border-left: 2px solid var(--color-blue);
  content: "";
  transform: translateY(-65%) rotate(-45deg);
}

.events-catalog-empty {
  margin: 64px 0 0;
  padding: 28px;
  border-radius: var(--radius-md);
  font-size: 18px;
  color: var(--color-blue);
  background: #f1f3f9;
}

@media (max-width: 560px) {
  .events-catalog-filter__trigger {
    height: 48px;
    gap: 10px;
    padding: 0 14px 0 18px;
    font-size: 16px;
  }

  .events-catalog-filter__icon {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }

  .events-catalog-filter__menu,
  .events-catalog-filter--city .events-catalog-filter__menu {
    width: 100%;
    min-width: 0;
  }

  .events-catalog-filter__option {
    min-height: 42px;
    padding-block: 9px;
    font-size: 15px;
  }
}
@media (max-width: 700px) {
  .events-catalog-filters {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 12px;
  }

  .events-catalog-filter,
  .events-catalog-filter--city {
    width: 178px;
    max-width: calc((100vw - 76px) / 2);
    flex: 0 1 178px;
  }
}
@media (max-width: 480px) {
  .events-catalog-filters {
    gap: 8px;
  }

  .events-catalog-filter,
  .events-catalog-filter--city {
    width: 132px;
    max-width: calc((100vw - 72px) / 2);
    flex-basis: 132px;
  }

  .events-catalog-filter__trigger {
    height: 40px;
    gap: 6px;
    padding: 0 10px 0 14px;
    font-size: 14px;
  }

  .events-catalog-filter__icon {
    width: 14px;
    height: 14px;
    flex-basis: 14px;
  }
}
/* Home: upcoming/gallery shared background flow */
.home-events-gallery-flow {
  --home-flow-join-x: 50vw;
  --home-flow-left-decor-height: clamp(360px, 31.25vw, 600px);
  --home-flow-right-decor-height: clamp(620px, 62.708vw, 1204px);
  --home-flow-right-overhang: clamp(-386px, -20.104vw, -180px);
  position: relative;
  overflow: hidden;
}

.home-events-gallery-flow .upcoming-events-section::after {
  right: auto;
  left: 0;
  bottom: 0;
  width: var(--home-flow-join-x, 858px);
  height: var(--home-flow-left-decor-height, 600px);
}

.home-events-gallery-flow .gallery-section::before {
  top: 0;
  right: var(--home-flow-right-overhang, -386px);
  left: var(--home-flow-join-x, 858px);
  width: auto;
  height: var(--home-flow-right-decor-height, 1204px);
}

.home-events-gallery-flow .gallery-section__decor--top {
  display: none;
}

@media (max-width: 760px) {
  .home-events-gallery-flow {
    --home-flow-join-x: 50vw;
    --home-flow-left-decor-height: clamp(220px, 70vw, 420px);
    --home-flow-right-decor-height: clamp(360px, 92vw, 620px);
    --home-flow-right-overhang: -160px;
  }

  .home-events-gallery-flow .gallery-section {
    min-height: 512px;
    padding: 64px 0 50px;
  }

  .home-events-gallery-flow .gallery-section::before,
  .home-events-gallery-flow .gallery-section__decor {
    display: none;
  }

  .home-events-gallery-flow .gallery-section__container {
    width: 100%;
    max-width: none;
    align-items: flex-start;
  }

  .home-events-gallery-flow .gallery-section__header {
    box-sizing: border-box;
    width: 100%;
    margin-bottom: 40px;
    padding-inline: 32px;
  }

  .home-events-gallery-flow .gallery-section__title {
    font-size: 28px;
    line-height: 1.1;
    white-space: nowrap;
  }

  .home-events-gallery-flow .gallery-grid {
    position: relative;
    left: auto;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    height: 207px;
    display: flex;
    gap: 12px;
    margin: 0;
    padding: 0 32px;
    overflow-x: auto;
    overflow-y: hidden;
    aspect-ratio: auto;
    scroll-padding-inline: 32px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .home-events-gallery-flow .gallery-grid::-webkit-scrollbar {
    display: none;
  }

  .home-events-gallery-flow .gallery-grid__item {
    position: relative;
    inset: auto;
    width: 299px;
    height: 207px;
    flex: 0 0 299px;
    border-radius: 24px;
    opacity: 0.4;
    scroll-snap-align: start;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(7) {
    order: 1;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(1) {
    order: 2;
    opacity: 1;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(2) {
    order: 3;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(3) {
    order: 4;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(4) {
    order: 5;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(5) {
    order: 6;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(6) {
    order: 7;
  }

  .home-events-gallery-flow .gallery-section__actions {
    box-sizing: border-box;
    width: 100%;
    margin-top: 64px;
    padding-inline: 32px;
  }

  .home-events-gallery-flow .button--gallery {
    width: min(311px, 100%);
    min-height: 56px;
    padding: 16px 40px;
    font-size: 18px;
  }
}

@media (min-width: 761px) and (max-width: 1020px) {
  .home-events-gallery-flow {
    --home-flow-join-x: calc(100% - 341px);
    --home-flow-right-decor-height: 296px;
    --home-flow-right-overhang: 0px;
  }

  .home-events-gallery-flow .gallery-section {
    min-height: 952px;
    padding: 81px 0 116px;
  }

  .home-events-gallery-flow .gallery-section::before {
    height: var(--home-flow-right-decor-height);
  }

  .home-events-gallery-flow .gallery-section__decor--bottom {
    right: 0;
    bottom: 0;
    left: auto;
    width: 380px;
    height: 330px;
  }

  .home-events-gallery-flow .gallery-section__container {
    width: min(648px, calc(100% - 128px));
    align-items: center;
  }

  .home-events-gallery-flow .gallery-section__header {
    margin-bottom: 32px;
  }

  .home-events-gallery-flow .gallery-section__title {
    font-size: 36px;
  }

  .home-events-gallery-flow .gallery-grid {
    width: 648px;
    max-width: 100%;
    height: 570px;
    aspect-ratio: auto;
  }

  .home-events-gallery-flow .gallery-grid__item {
    border-radius: 14px;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(1) {
    top: 0;
    left: 0;
    width: 290px;
    height: 200px;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(2) {
    top: 369px;
    right: 0;
    width: 290px;
    height: 200px;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(3) {
    top: 0;
    right: 0;
    left: auto;
    width: 342px;
    height: 201px;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(4) {
    top: 369px;
    left: 0;
    width: 342px;
    height: 201px;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(5) {
    top: 217px;
    right: 0;
    width: 210px;
    height: 135px;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(6) {
    top: 217px;
    left: 226px;
    width: 196px;
    height: 136px;
  }

  .home-events-gallery-flow .gallery-grid__item:nth-child(7) {
    top: 217px;
    left: 0;
    width: 210px;
    height: 135px;
  }

  .home-events-gallery-flow .gallery-section__actions {
    margin-top: 56px;
  }

  .home-events-gallery-flow .button--gallery {
    width: 372px;
    min-height: 57px;
    padding: 16px 56px;
    font-size: 18px;
  }
}
.viewers-rules-flow {
  position: relative;
  overflow: hidden;
  background: var(--color-white);
}

.viewers-rules-flow::before {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
  width: 900px;
  height: 600px;
  border-radius: 0 100% 0 0;
  background: #EBEBEB80;
  content: "";
  pointer-events: none;
}

.viewers-rules-flow > section {
  position: relative;
  z-index: 1;
  background: transparent;
}

.viewers-rules-flow .viewers-rules-section::before {
  display: none;
}

@media (max-width: 1120px) {
  .viewers-rules-flow::before {
    top: 260px;
    left: -260px;
    width: 780px;
    height: 780px;
  }
}

@media (max-width: 640px) {
  .viewers-rules-flow::before {
    top: 190px;
    left: -260px;
    width: 560px;
    height: 560px;
  }
}

/* Gallery album responsive override */
@media (max-width: 1200px) {
  .page-gallery-album .gallery-album-photos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 24px;
  }

  .page-gallery-album .gallery-album-photos__item,
  .page-gallery-album .gallery-album-photos__item:nth-child(n),
  .page-gallery-album .gallery-album-photos__item:nth-child(1),
  .page-gallery-album .gallery-album-photos__item:nth-child(2),
  .page-gallery-album .gallery-album-photos__item:nth-child(3),
  .page-gallery-album .gallery-album-photos__item:nth-child(4),
  .page-gallery-album .gallery-album-photos__item:nth-child(5),
  .page-gallery-album .gallery-album-photos__item:nth-child(6),
  .page-gallery-album .gallery-album-photos__item:nth-child(7),
  .page-gallery-album .gallery-album-photos__item:nth-child(8) {
    grid-column: auto;
    grid-row: auto;
    height: 300px;
  }

  .page-gallery-album .gallery-album-photos__item:nth-child(1),
  .page-gallery-album .gallery-album-photos__item:nth-child(2) {
    height: 380px;
  }
}

@media (max-width: 700px) {
  .page-gallery-album .gallery-album-photos {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .page-gallery-album .gallery-album-photos__item,
  .page-gallery-album .gallery-album-photos__item:nth-child(n),
  .page-gallery-album .gallery-album-photos__item:nth-child(1),
  .page-gallery-album .gallery-album-photos__item:nth-child(2) {
    height: auto;
    aspect-ratio: 4 / 3;
  }
}
/* Gallery album mobile photo slider */
@media (max-width: 767px) {
  .page-gallery-album .gallery-album-photos {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    display: flex;
    flex-wrap: nowrap;
    gap: 16px;
    margin-right: calc((100vw - 100%) / -2);
    margin-left: calc((100vw - 100%) / -2);
    padding: 0 32px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: 32px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .page-gallery-album .gallery-album-photos::-webkit-scrollbar {
    display: none;
  }

  .page-gallery-album .gallery-album-photos__item,
  .page-gallery-album .gallery-album-photos__item:nth-child(n),
  .page-gallery-album .gallery-album-photos__item:nth-child(1),
  .page-gallery-album .gallery-album-photos__item:nth-child(2),
  .page-gallery-album .gallery-album-photos__item:nth-child(3),
  .page-gallery-album .gallery-album-photos__item:nth-child(4),
  .page-gallery-album .gallery-album-photos__item:nth-child(5),
  .page-gallery-album .gallery-album-photos__item:nth-child(6),
  .page-gallery-album .gallery-album-photos__item:nth-child(7),
  .page-gallery-album .gallery-album-photos__item:nth-child(8) {
    grid-column: auto;
    grid-row: auto;
    width: auto;
    height: auto;
    aspect-ratio: 4 / 3;
    flex: 0 0 clamp(260px, calc(100vw - 128px), 520px);
    scroll-snap-align: center;
  }

  .page-gallery-album .gallery-album-photo {
    width: 100%;
    height: 100%;
    border-radius: 24px;
  }
}

@media (max-width: 425px) {
  .page-gallery-album .gallery-album-photos {
    gap: 12px;
    padding-inline: 24px;
    scroll-padding-inline: 24px;
  }

  .page-gallery-album .gallery-album-photos__item,
  .page-gallery-album .gallery-album-photos__item:nth-child(n),
  .page-gallery-album .gallery-album-photos__item:nth-child(1),
  .page-gallery-album .gallery-album-photos__item:nth-child(2) {
    flex-basis: calc(100vw - 112px);
  }
}
/* Album lightbox responsive sizing override */
@media (max-width: 767px) {
  .album-lightbox {
    padding: 96px 72px 104px;
  }

  .album-lightbox__dialog {
    width: min(640px, calc(100vw - 144px));
    height: min(420px, calc(100vh - 270px));
  }

  .album-lightbox__image {
    border-radius: 0;
  }

  .album-lightbox__close {
    top: -78px;
    right: -28px;
    width: 56px;
    height: 56px;
  }

  .album-lightbox__arrow {
    top: 50%;
    bottom: auto;
    width: 56px;
    height: 56px;
    transform: translateY(-50%);
  }

  .album-lightbox__arrow:hover {
    transform: translateY(-50%) scale(1.05);
  }

  .album-lightbox__arrow--prev {
    left: -72px;
  }

  .album-lightbox__arrow--next {
    right: -72px;
  }

  .album-lightbox__pagination {
    bottom: -72px;
  }
}

@media (max-width: 425px) {
  .album-lightbox {
    padding: 104px 32px 94px;
  }

  .album-lightbox__dialog {
    width: calc(100vw - 64px);
    height: min(260px, calc(100vh - 260px));
  }

  .album-lightbox__close {
    top: -72px;
    right: 0;
    width: 52px;
    height: 52px;
  }

  .album-lightbox__close::before,
  .album-lightbox__close::after {
    width: 22px;
  }

  .album-lightbox__arrow {
    width: 44px;
    height: 44px;
  }

  .album-lightbox__arrow::before {
    width: 11px;
    height: 11px;
    border-width: 2px;
  }

  .album-lightbox__arrow--prev {
    left: -22px;
  }

  .album-lightbox__arrow--next {
    right: -22px;
  }

  .album-lightbox__pagination {
    bottom: -58px;
    padding: 6px 14px;
    font-size: 15px;
  }
}
/* Album lightbox arrows under image on mobile */
@media (max-width: 767px) {
  .album-lightbox__arrow {
    top: auto;
    bottom: -64px;
    transform: none;
  }

  .album-lightbox__arrow:hover {
    transform: scale(1.05);
  }

  .album-lightbox__arrow--prev {
    left: calc(50% - 72px);
  }

  .album-lightbox__arrow--next {
    right: calc(50% - 72px);
  }

  .album-lightbox__pagination {
    bottom: -62px;
  }
}

@media (max-width: 425px) {
  .album-lightbox__arrow {
    bottom: -58px;
  }

  .album-lightbox__arrow--prev {
    left: calc(50% - 58px);
  }

  .album-lightbox__arrow--next {
    right: calc(50% - 58px);
  }

  .album-lightbox__pagination {
    bottom: -54px;
  }
}
/* Force-hide album lightbox counter on mobile */
@media (max-width: 767px) {
  .album-lightbox .album-lightbox__pagination,
  .album-lightbox.is-visible .album-lightbox__pagination,
  .album-lightbox [data-album-pagination] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
/* Producers tablet centering */
@media (max-width: 1050px) {
  .producer-profile,
  .producer-profile--reverse {
    justify-items: center;
  }

  .producer-card,
  .producer-profile--reverse .producer-card {
    justify-self: center;
  }

  .producer-biography {
    max-width: 900px;
    justify-self: center;
  }
}
/* Producers tablet horizontal card */
@media (min-width: 601px) and (max-width: 1050px) {
  .producer-card,
  .producer-card--ivan {
    width: min(100%, 900px);
    flex-direction: row;
    align-items: stretch;
    gap: 36px;
  }

  .producer-card__photo {
    width: auto;
    flex: 0 0 min(44%, 442px);
    height: auto;
    aspect-ratio: 442 / 328;
  }

  .producer-card__content,
  .producer-card__content--ivan {
    flex: 1 1 auto;
    justify-content: center;
    gap: 36px;
    min-width: 0;
  }

  .producer-card__heading {
    gap: 22px;
  }

  .producer-card__button {
    width: fit-content;
    max-width: 100%;
    white-space: normal;
  }
}
/* About artists full-list buttons centering */
@media (max-width: 1240px) {
  .about-artists-section__more {
    margin-right: auto;
    margin-left: auto;
  }
}
/* About artists tablet gaps */
@media (max-width: 1240px) {
  .about-artists-grid {
    justify-content: center;
    gap: 40px 36px;
  }

  .about-artists-grid--people {
    grid-template-columns: repeat(4, minmax(0, 216px));
  }

  .about-artists-grid--ensembles {
    grid-template-columns: repeat(3, minmax(0, 266px));
  }

  .about-artists-grid--ensembles > li:nth-child(n + 10) {
    display: none;
  }
}

@media (max-width: 920px) {
  .about-artists-grid {
    gap: 32px 24px;
  }
}
/* About portfolio controls aligned with partners sliders */
.portfolio-section__header {
  width: min(1440px, calc(100% - 48px));
  padding-right: 0;
}

.portfolio-slider__controls {
  gap: 40px;
  width: 152px;
}

@media (max-width: 1279px) {
  .portfolio-section__header {
    width: min(1440px, calc(100% - 48px));
    padding-right: 0;
  }
}

@media (max-width: 760px) {
  .portfolio-section__header {
    align-items: center;
    width: calc(100% - 32px);
    padding-right: 0;
  }

  .portfolio-slider__controls {
    position: static;
    gap: 12px;
    width: auto;
    transform: none;
  }

  .portfolio-slider__arrow {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
  }
}

@media (max-width: 430px) {
  .portfolio-slider__controls {
    gap: 12px;
  }

  .portfolio-slider__arrow {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
  }
}
/* About project vertical layout stats centering */
@media (max-width: 1280px) {
  .about-project-stats {
    justify-content: center;
  }

  .about-project-stat__text {
    text-align: center;
  }
}
@media (max-width: 900px) {
  .about-project-section__content {
    box-sizing: border-box;
    padding-inline: clamp(28px, 8vw, 64px);
  }
}
/* About artists mobile columns */
@media (max-width: 767px) {
  .about-artists-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px 18px;
  }
}

@media (max-width: 425px) {
  .about-artists-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 16px;
  }
}
/* About project slider compact mobile */
@media (max-width: 425px) {
  .about-project-slider {
    overflow: visible;
    padding-bottom: 32px;
  }

  .about-project-slider__navigation {
    display: none;
  }

  .about-project-slider .about-project-slider__pagination {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    min-height: 12px;
    height: 12px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 10px;
    transform: none;
  }

  .about-project-slider .about-project-slider__pagination .content-slider__bullet,
  .about-project-slider .about-project-slider__pagination .content-slider__bullet--active {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
  }

  .about-project-slider .about-project-slider__pagination .content-slider__bullet--active {
    opacity: 1;
  }
}
/* About project slider larger image on compact mobile */
@media (max-width: 425px) {
  .about-project-slider__viewport {
    top: 36px;
    right: 32px;
    bottom: 52px;
    left: 32px;
  }
}
/* Past event tablet gallery spacing */
@media (min-width: 761px) and (max-width: 1279px) {
  .past-event-gallery {
    margin-top: 40px;
  }
}
/* Past event tablet gallery overlap with safe text gap */
@media (min-width: 761px) and (max-width: 1279px) {
  .past-event-info-card {
    min-height: 980px;
    padding-bottom: 110px;
  }

  .past-event-gallery {
    margin-top: -86px;
  }
}
/* Past event mobile gallery slider */
@media (max-width: 767px) {
  .past-event-gallery {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 14px;
        margin-top: 40px;
    margin-right: calc((100vw - 100%) / -2);
    margin-left: calc((100vw - 100%) / -2);
    padding: 0 32px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: 32px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .past-event-gallery::-webkit-scrollbar {
    display: none;
  }

  .past-event-gallery__row,
  .past-event-gallery__row--top,
  .past-event-gallery__row--middle,
  .past-event-gallery__row--bottom {
    display: contents;
  }

  .past-event-gallery img {
    width: auto;
    height: auto;
    aspect-ratio: 4 / 3;
    flex: 0 0 clamp(250px, calc(100vw - 128px), 420px);
    min-width: 0;
    border-radius: 22px;
    object-fit: cover;
    scroll-snap-align: center;
  }
}

@media (max-width: 425px) {
  .past-event-gallery {
    gap: 12px;
    padding-inline: 24px;
    scroll-padding-inline: 24px;
  }

  .past-event-gallery img {
    flex-basis: calc(100vw - 112px);
    border-radius: 20px;
  }
}
/* Viewers rules adaptive cards from Figma */
@media (min-width: 521px) and (max-width: 1120px) {
  .viewers-rules-section__container {
    width: min(100% - 64px, 640px);
    margin-inline: auto;
  }

  .viewers-rules-section__title {
    font-size: clamp(30px, 4.17vw, 38px);
  }

  .viewers-rules-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
    margin-top: 32px;
  }

  .viewers-rules-grid__item--tall {
    grid-row: span 2;
  }

  .viewers-rule-card,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 313 / 162;
    border-radius: 32px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 313 / 336;
  }

  .viewers-rule-card__title {
    top: 25%;
    left: 12.8%;
    max-width: 54%;
    font-size: clamp(16px, 2.35vw, 18px);
    line-height: 1.3;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    top: 12%;
    max-width: 58%;
  }
}

@media (max-width: 520px) {
  .viewers-rules-section__container {
    width: min(100% - 64px, 311px);
    margin-inline: auto;
  }

  .viewers-rules-section__title {
    font-size: 28px;
  }

  .viewers-rules-grid {
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-top: 28px;
  }

  .viewers-rules-grid__item--tall {
    grid-row: auto;
  }

  .viewers-rule-card,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 311 / 102;
    border-radius: 24px;
  }

  .viewers-rule-card__title,
  .viewers-rules-grid__item--tall .viewers-rule-card__title,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    top: 24px;
    left: 24px;
    max-width: 58%;
    font-size: 12px;
    line-height: 1.3;
  }

  .viewers-rule-card[data-viewers-rule-trigger="age"] {
    --viewers-rule-card-art-position: right 20px top 8px;
    --viewers-rule-card-art-size: auto 82px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="safety"] {
    --viewers-rule-card-art-position: right 17px top 12px;
    --viewers-rule-card-art-size: auto 78px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="dress-code"] {
    --viewers-rule-card-art-position: right -6px top 7px;
    --viewers-rule-card-art-size: auto 132px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="items"] {
    --viewers-rule-card-art-position: right -18px top 16px;
    --viewers-rule-card-art-size: auto 96px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    --viewers-rule-card-art-position: right -2px top 0;
    --viewers-rule-card-art-size: auto 116px;
  }
}
/* Viewers rules desktop fluid columns */
@media (min-width: 1121px) {
  .viewers-rules-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* Viewers rules tablet layout starts earlier */
@media (min-width: 1121px) and (max-width: 1279px) {
  .viewers-rules-section__container {
    width: min(100% - 64px, 640px);
    margin-inline: auto;
  }

  .viewers-rules-section__title {
    font-size: 32px;
  }

  .viewers-rules-grid {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
    margin-top: 32px;
  }

  .viewers-rules-grid__item--tall {
    grid-row: span 2;
  }

  .viewers-rule-card,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 313 / 162;
    border-radius: 32px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 313 / 336;
  }

  .viewers-rule-card__title {
    top: 25%;
    left: 12.8%;
    max-width: 54%;
    font-size: 18px;
    line-height: 1.3;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    top: 12%;
    max-width: 58%;
  }
}
/* Viewers rules rebuilt desktop grid */
@media (min-width: 1280px) {
  .viewers-rules-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

  .viewers-rules-grid__item--tall {
    grid-row: span 2;
  }

  .viewers-rule-card,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 610 / 162;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 610 / 356;
  }
}
/* Viewers rules desktop container symmetric shrink */
@media (min-width: 1280px) and (max-width: 1540px) {
  .viewers-rules-section__container {
    width: min(1270px, calc(100% - 96px));
    margin-inline: auto;
  }
}
/* Viewers rules smooth adaptive shrink */
@media (min-width: 1121px) and (max-width: 1540px) {
  .viewers-rules-section__container {
    width: min(1270px, calc(100% - 96px));
    margin-inline: auto;
  }

  .viewers-rules-section__title {
    font-size: clamp(40px, 3.6vw, 46px);
  }

  .viewers-rules-grid {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 2.6vw, 40px);
    margin-top: clamp(56px, 5.8vw, 88px);
  }

  .viewers-rules-grid__item--tall {
    grid-row: span 2;
  }

  .viewers-rule-card,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 610 / 162;
    border-radius: clamp(28px, 2.1vw, 32px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 610 / 356;
  }

  .viewers-rule-card__title {
    top: 24.5%;
    left: 6.55%;
    max-width: 52%;
    font-size: clamp(20px, 2vw, 26px);
    line-height: 1.2;
  }

  .viewers-rules-grid__item--tall .viewers-rule-card__title,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    top: 10.7%;
    max-width: 44%;
  }
}
/* Viewers rules smooth tablet bridge */
@media (min-width: 768px) and (max-width: 1120px) {
  .viewers-rules-section__container {
    width: min(1270px, calc(100% - 96px));
    margin-inline: auto;
  }

  .viewers-rules-section__title {
    font-size: clamp(34px, 4.2vw, 40px);
  }

  .viewers-rules-grid {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(18px, 2.2vw, 28px);
    margin-top: clamp(40px, 5vw, 56px);
  }

  .viewers-rules-grid__item--tall {
    grid-row: span 2;
  }

  .viewers-rule-card,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 610 / 162;
    border-radius: clamp(26px, 3vw, 32px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 610 / 356;
  }

  .viewers-rule-card__title {
    top: 24.5%;
    left: 6.55%;
    max-width: 52%;
    font-size: clamp(18px, 2.3vw, 22px);
    line-height: 1.2;
  }

  .viewers-rules-grid__item--tall .viewers-rule-card__title,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    top: 10.7%;
    max-width: 44%;
  }
}
/* Viewers FAQ aligns with rules on adaptive desktop */
@media (min-width: 1121px) and (max-width: 1540px) {
  .viewers-faq-section__container {
    width: min(1270px, calc(100% - 96px));
    margin-inline: auto;
  }
}
/* Viewers rules full-width cards at narrow mobile */
@media (max-width: 520px) {
  .viewers-rules-section__container {
    width: calc(100% - 48px);
    max-width: none;
  }

  .viewers-rules-section__title {
    max-width: 100%;
  }

  .viewers-rules-grid {
    width: 100%;
  }
}
/* Viewers rules larger mobile card content */
@media (max-width: 520px) {
  .viewers-rules-section__title {
    font-size: clamp(30px, 7vw, 36px);
  }

  .viewers-rule-card__title,
  .viewers-rules-grid__item--tall .viewers-rule-card__title,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    top: clamp(22px, 5.2vw, 28px);
    left: clamp(22px, 5.2vw, 28px);
    max-width: 60%;
    font-size: clamp(14px, 4.35vw, 23px);
    line-height: 1.22;
  }

  .viewers-rule-card[data-viewers-rule-trigger="age"] {
    --viewers-rule-card-art-position: right clamp(14px, 4vw, 24px) top clamp(6px, 1.8vw, 10px);
    --viewers-rule-card-art-size: auto clamp(88px, 22.5vw, 118px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="safety"] {
    --viewers-rule-card-art-position: right clamp(12px, 3.5vw, 22px) top clamp(7px, 2vw, 12px);
    --viewers-rule-card-art-size: auto clamp(84px, 21.5vw, 112px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="dress-code"] {
    --viewers-rule-card-art-position: right clamp(-14px, -2vw, -6px) top clamp(2px, 1.6vw, 8px);
    --viewers-rule-card-art-size: auto clamp(138px, 34vw, 176px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="items"] {
    --viewers-rule-card-art-position: right clamp(-24px, -3vw, -12px) top clamp(8px, 2.7vw, 16px);
    --viewers-rule-card-art-size: auto clamp(104px, 26vw, 136px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    --viewers-rule-card-art-position: right clamp(-12px, -1vw, -2px) top clamp(-2px, 0vw, 2px);
    --viewers-rule-card-art-size: auto clamp(128px, 34vw, 178px);
  }
}
/* Viewers rules mobile illustrations bottom aligned */
@media (max-width: 520px) {
  .viewers-rule-card[data-viewers-rule-trigger="age"] {
    --viewers-rule-card-art-position: right clamp(14px, 4vw, 24px) bottom 0;
    --viewers-rule-card-art-size: auto clamp(82px, 20.5vw, 106px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="safety"] {
    --viewers-rule-card-art-position: right clamp(12px, 3.5vw, 22px) bottom 0;
    --viewers-rule-card-art-size: auto clamp(78px, 20vw, 100px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="dress-code"] {
    --viewers-rule-card-art-position: right clamp(-14px, -2vw, -6px) bottom 0;
    --viewers-rule-card-art-size: auto clamp(128px, 31vw, 160px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="items"] {
    --viewers-rule-card-art-position: right clamp(-22px, -3vw, -10px) bottom 0;
    --viewers-rule-card-art-size: auto clamp(96px, 24vw, 124px);
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    --viewers-rule-card-art-position: right clamp(-10px, -1vw, -2px) bottom 0;
    --viewers-rule-card-art-size: auto clamp(118px, 31vw, 158px);
  }
}
/* Viewers rules mobile illustrations scale with card width */
@media (max-width: 520px) {
  .viewers-rule-card[data-viewers-rule-trigger="age"] {
    --viewers-rule-card-art-position: right 5% bottom 0;
    --viewers-rule-card-art-size: 27% auto;
  }

  .viewers-rule-card[data-viewers-rule-trigger="safety"] {
    --viewers-rule-card-art-position: right 5% bottom 0;
    --viewers-rule-card-art-size: 25% auto;
  }

  .viewers-rule-card[data-viewers-rule-trigger="dress-code"] {
    --viewers-rule-card-art-position: right -2% bottom 0;
    --viewers-rule-card-art-size: 42% auto;
  }

  .viewers-rule-card[data-viewers-rule-trigger="items"] {
    --viewers-rule-card-art-position: right -3% bottom 0;
    --viewers-rule-card-art-size: 34% auto;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    --viewers-rule-card-art-position: right -2% bottom 0;
    --viewers-rule-card-art-size: 39% auto;
  }
}
/* Viewers rules mobile width aligns with FAQ */
@media (max-width: 520px) {
  .viewers-rules-section__container {
    width: min(100% - 32px, 610px);
    max-width: none;
  }
}
/* Contacts content equal 32px side offsets */
@media (max-width: 1200px) {
  .contacts-section__container {
    width: calc(100% - 64px);
    max-width: none;
    margin-inline: auto;
  }
}
/* Interview profile arc stays under content */
.interview-profile-section__decor--arc {
  z-index: 0;
}
/* Interview profile vertical order: text first, photo centered */
@media (max-width: 1024px) {
  .interview-profile {
    flex-direction: column;
    align-items: center;
  }

  .interview-profile__card {
    order: 1;
    width: 100%;
  }

  .interview-profile__photo {
    order: 2;
    margin-inline: auto;
  }
}
/* Interview profile larger centered photo in vertical layout */
@media (max-width: 1024px) {
  .interview-profile__photo {
    width: min(620px, 100%);
    flex-basis: auto;
    height: auto;
    aspect-ratio: 474 / 526;
  }

  .interview-profile__image {
    width: 115.2%;
    height: 138.2%;
    transform: translate(-3.6%, -6.5%);
  }
}
/* Viewers rules mobile inner breathing room */
@media (max-width: 520px) {
  .viewers-rule-card,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    aspect-ratio: 311 / 116;
  }

  .viewers-rule-card__title,
  .viewers-rules-grid__item--tall .viewers-rule-card__title,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    top: clamp(18px, 4.6vw, 24px);
    max-width: 56%;
  }

  .viewers-rule-card[data-viewers-rule-trigger="age"] {
    --viewers-rule-card-art-position: right 5% bottom 8px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="safety"] {
    --viewers-rule-card-art-position: right 5% bottom 8px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="dress-code"] {
    --viewers-rule-card-art-position: right 2% bottom 8px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="items"] {
    --viewers-rule-card-art-position: right 2% bottom 8px;
  }

  .viewers-rule-card[data-viewers-rule-trigger="tickets"] {
    --viewers-rule-card-art-position: right 2% bottom 8px;
  }
}
/* Viewers rules tablet card text fit */
@media (min-width: 768px) and (max-width: 1020px) {
  .viewers-rule-card__title {
    font-size: clamp(16px, 2.05vw, 20px);
    line-height: 1.18;
  }

  .viewers-rules-grid__item--tall .viewers-rule-card__title,
  .viewers-rule-card[data-viewers-rule-trigger="tickets"] .viewers-rule-card__title {
    max-width: 42%;
  }
}