
/* ==========================================================
   ZOLUSHKA STABILITY 11.0
   Последний слой: меню не разъезжается, текст и кнопки читаемы
   на каждой вложенной поверхности.
   ========================================================== */

:root {
  --z11-night: #031331;
  --z11-card: #0a2c68;
  --z11-card-2: #113a82;
  --z11-paper: #fbf3e3;
  --z11-ink: #0a1830;
  --z11-body: #485161;
  --z11-gold: #d8a83e;
  --z11-gold-light: #f5d77e;
  --z11-blue: #15459d;
}

/* Header */
.zl-header {
  background-color: rgba(4, 20, 50, .98);
}
.zl-header__inner {
  min-height: 76px !important;
  grid-template-columns: 150px minmax(0, 1fr) 112px !important;
  gap: 20px !important;
}
.zl-header__brand img { width: 142px !important; }
.zl-nav__list {
  gap: clamp(13px, 1.35vw, 22px) !important;
  white-space: nowrap;
}
.zl-nav a,
.zl-nav summary {
  color: rgba(255,255,255,.92) !important;
  font-size: .82rem !important;
  font-weight: 760;
  text-decoration: none;
}
.zl-nav a:hover,
.zl-nav a[aria-current="page"],
.zl-nav summary:hover {
  color: var(--z11-gold-light) !important;
}
.zl-nav__more details { position: relative; }
.zl-nav__more summary {
  display: flex;
  align-items: center;
  gap: 7px;
  list-style: none;
  cursor: pointer;
}
.zl-nav__more summary::-webkit-details-marker { display: none; }
.zl-nav__more summary::after {
  content: "⌄";
  color: var(--z11-gold-light);
  font-size: .75rem;
  transition: transform .2s ease;
}
.zl-nav__more details[open] summary::after { transform: rotate(180deg); }
.zl-nav__submenu {
  position: absolute;
  z-index: 1100;
  top: calc(100% + 19px);
  right: -18px;
  width: 245px;
  margin: 0;
  padding: 10px;
  list-style: none;
  background: #061b43;
  border: 1px solid rgba(245,215,126,.32);
  box-shadow: 0 24px 60px rgba(0,0,0,.34);
}
.zl-nav__submenu::before {
  content: "";
  position: absolute;
  right: 28px;
  top: -7px;
  width: 13px;
  height: 13px;
  transform: rotate(45deg);
  background: #061b43;
  border-left: 1px solid rgba(245,215,126,.32);
  border-top: 1px solid rgba(245,215,126,.32);
}
.zl-nav__submenu li + li { border-top: 1px solid rgba(255,255,255,.08); }
.zl-nav__submenu a {
  display: block;
  padding: 12px 13px;
  white-space: normal;
}
.zl-header__cta {
  min-height: 42px !important;
  padding: 10px 18px !important;
  color: var(--z11-ink) !important;
  background: var(--z11-gold-light) !important;
  border-radius: 8px !important;
}
.zl-tour-strip__inner { gap: 14px; }
.zl-tour-strip__request { color: var(--z11-gold-light) !important; }

/* Buttons: explicit surface contracts */
.zl-button--gold,
.zl5-btn--gold {
  color: var(--z11-ink) !important;
  background: linear-gradient(135deg, var(--z11-gold-light), var(--z11-gold)) !important;
  border-color: transparent !important;
}
.zl-button--navy,
.zl5-btn--navy {
  color: #fff !important;
  background: var(--z11-night) !important;
}
.zl-button--glass,
.zl5-btn--glass {
  color: #fff !important;
  border-color: rgba(255,255,255,.50) !important;
  background: rgba(255,255,255,.09) !important;
}
.zl-button--outline {
  color: var(--z11-blue) !important;
  border-color: var(--z11-gold) !important;
  background: #fffaf0 !important;
}
.zl-button--outline:hover {
  color: var(--z11-ink) !important;
  background: var(--z11-gold-light) !important;
}
.zl-text-link,
.zl5-link {
  color: var(--z11-blue) !important;
}
.zl5-night .zl5-link,
.zl10-home-video .zl5-link,
.zl-footer .zl-text-link {
  color: var(--z11-gold-light) !important;
}

/* Tour cards: no dark text on blue */
.zl-tour-card,
.zl-tour-card.is-confirmed,
.zl-tour-card.is-planned {
  color: #fff !important;
  background-color: var(--z11-card) !important;
  background-image:
    radial-gradient(circle at 100% 100%, rgba(50,101,205,.30), transparent 35%),
    linear-gradient(145deg, var(--z11-card), var(--z11-card-2)) !important;
  border-color: rgba(245,215,126,.30) !important;
}
.zl-tour-card :is(h2,h3,h4,strong,b) { color: #fff !important; }
.zl-tour-card :is(p,.zl-tour-card__season,.zl-tour-card__venue,.zl-tour-card__note) {
  color: rgba(255,255,255,.72) !important;
}
.zl-tour-card .zl-tour-card__period { color: var(--z11-gold-light) !important; }
.zl-tour-card .zl-status {
  color: var(--z11-ink) !important;
  background: var(--z11-gold-light) !important;
}
.zl-tour-card .zl-button--outline {
  color: var(--z11-gold-light) !important;
  border-color: rgba(245,215,126,.70) !important;
  background: rgba(255,255,255,.04) !important;
}
.zl-tour-card .zl-button--outline:hover {
  color: var(--z11-ink) !important;
  background: var(--z11-gold-light) !important;
}
.zl-tour-card .zl-button--gold { color: var(--z11-ink) !important; }

/* Other nested dark components */
.zl-info-card,
.zl-process-grid article,
.zl-contact-grid > a,
.zl-aside-card,
.zl-scene-plan__grid article {
  color: #fff !important;
  background-color: var(--z11-card) !important;
}
.zl-info-card :is(h2,h3,strong,b,p,span),
.zl-process-grid article :is(h2,h3,strong,b,p,span),
.zl-contact-grid > a :is(h2,h3,strong,b,p,span,em),
.zl-aside-card :is(h2,h3,strong,b,p,span,a),
.zl-scene-plan__grid article :is(h2,h3,strong,b,p,span) {
  color: #fff !important;
}
.zl-info-card p,
.zl-process-grid article p,
.zl-contact-grid > a span,
.zl-contact-grid > a em,
.zl-aside-card p,
.zl-scene-plan__grid article p {
  color: rgba(255,255,255,.72) !important;
}
.zl-contact-grid > a em,
.zl-aside-card a {
  color: var(--z11-gold-light) !important;
}

/* Light nested components */
.zl-news-card,
.zl-character-grid article,
.zl-partner-matrix article,
.zl8-method-grid article,
.zl10-video-card,
.zl11-video-card,
.zl-legal-card,
.zl-article__content {
  color: var(--z11-ink) !important;
  background-color: #fffaf0 !important;
}
.zl-news-card :is(h2,h3,h4,strong,b,a),
.zl-character-grid article :is(h2,h3,h4,strong,b),
.zl-partner-matrix article :is(h2,h3,h4,strong,b),
.zl8-method-grid article :is(h2,h3,h4,strong,b),
.zl10-video-card :is(h2,h3,h4,strong,b),
.zl11-video-card :is(h2,h3,h4,strong,b),
.zl-legal-card :is(h2,h3,h4,strong,b),
.zl-article__content :is(h1,h2,h3,h4,strong,b) {
  color: var(--z11-ink) !important;
}
.zl-news-card p,
.zl-character-grid article p,
.zl-partner-matrix article p,
.zl8-method-grid article p,
.zl10-video-card p,
.zl11-video-card p,
.zl-legal-card p,
.zl-article__content p {
  color: var(--z11-body) !important;
}

/* Forms stay readable */
.zl-request-city__form,
.zl-request-city__form--page,
.zl-form-section__grid > div:last-child,
.zl5-scroll-form__inner {
  color: var(--z11-ink) !important;
  background-color: #fffaf0 !important;
}
.zl-request-city__form :is(h2,h3,h4,p,label,span,strong,b,small),
.zl-request-city__form--page :is(h2,h3,h4,p,label,span,strong,b,small),
.zl-form-section__grid > div:last-child :is(h2,h3,h4,p,label,span,strong,b,small),
.zl5-scroll-form__inner :is(h2,h3,h4,p,label,span,strong,b,small) {
  color: var(--z11-ink) !important;
}
.zl-request-city__form input,
.zl-request-city__form select,
.zl-request-city__form textarea,
.zl-form-section input,
.zl-form-section select,
.zl-form-section textarea,
.zl5-scroll-form input,
.zl5-scroll-form select,
.zl5-scroll-form textarea {
  color: var(--z11-ink) !important;
  background: #fff !important;
  border-color: rgba(10,24,48,.22) !important;
}

/* News images are unique and correctly cropped */
.zl-news-card__image img { object-position: center; }

/* Video library */
.zl11-video-library {
  color: var(--z11-ink) !important;
  background-color: var(--z11-paper) !important;
}
.zl11-video-group + .zl11-video-group { margin-top: 88px; }
.zl11-video-group > header {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: end;
  gap: 28px;
  margin-bottom: 30px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(98,61,9,.22);
}
.zl11-video-group > header .zl-kicker { grid-column: 1 / -1; margin-bottom: -6px; }
.zl11-video-group > header h2 {
  margin: 0;
  color: var(--z11-ink) !important;
  font-size: clamp(2.25rem,4vw,4.2rem);
}
.zl11-video-group > header > span {
  color: #835408;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
}
.zl11-video-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
}
.zl11-video-card {
  overflow: hidden;
  border: 1px solid rgba(98,61,9,.22);
  box-shadow: 0 18px 42px rgba(47,33,12,.10);
}
.zl11-video-card__media {
  aspect-ratio: 16 / 9;
  background: var(--z11-night);
}
.zl11-video-card__media video,
.zl11-video-card__media iframe,
.zl11-video-card__media button,
.zl11-video-card__media img {
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}
.zl11-video-card__copy { padding: 22px; }
.zl11-video-card__copy h3 {
  margin: 0 0 9px;
  font-size: 1.45rem;
  line-height: 1.08;
}
.zl11-video-card__copy p { margin: 0; font-size: .9rem; }

/* Embedded videos on pages */
.zl10-home-video video,
.zl11-inline-video-grid video,
.zl11-page-video video {
  display: block;
  width: 100%;
  background: #000;
}
.zl10-home-video article > video { aspect-ratio: 16 / 9; }
.zl11-inline-video-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 18px;
}
.zl11-inline-video-grid article {
  border: 1px solid rgba(245,215,126,.30);
  background: rgba(255,255,255,.04);
}
.zl11-inline-video-grid video { aspect-ratio: 16 / 9; }
.zl11-inline-video-grid h3 {
  margin: 17px 20px 20px;
  color: #fff !important;
}
.zl11-page-video__grid {
  display: grid;
  grid-template-columns: minmax(0,.8fr) minmax(420px,1.2fr);
  gap: clamp(45px,7vw,90px);
  align-items: center;
}
.zl11-page-video video {
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(216,168,62,.62);
  box-shadow: 0 22px 54px rgba(4,21,54,.18);
}
.zl11-page-video--dark {
  color: #fff !important;
  background:
    radial-gradient(circle at 82% 15%, rgba(42,92,194,.32), transparent 30%),
    linear-gradient(180deg, var(--z11-night), #08275f) !important;
}
.zl11-page-video--dark :is(h2,h3,strong,b) { color: #fff !important; }
.zl11-page-video--dark p { color: rgba(255,255,255,.75) !important; }
.zl11-page-video--dark .zl-kicker { color: var(--z11-gold-light) !important; }

/* Desktop-to-mobile menu switch before overflow appears */
@media (max-width: 1340px) {
  .zl-header__inner {
    grid-template-columns: 1fr auto auto !important;
  }
  .zl-nav-toggle {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0 11px;
    background: transparent;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
  }
  .zl-nav-toggle span:not(.screen-reader-text) {
    width: 100%;
    height: 2px;
    background: #fff;
  }
  .zl-nav {
    position: fixed;
    z-index: 1090;
    left: 0;
    right: 0;
    top: 114px;
    height: calc(100vh - 114px);
    padding: 30px max(22px, calc((100vw - 760px) / 2));
    overflow: auto;
    background: rgba(2,13,38,.99);
    transform: translateY(-125%);
    transition: transform .28s ease;
  }
  .zl-header.is-scrolled .zl-nav {
    top: 76px;
    height: calc(100vh - 76px);
  }
  .admin-bar .zl-nav { top: 146px; }
  .admin-bar .zl-header.is-scrolled .zl-nav { top: 108px; }
  .zl-nav.is-open { transform: translateY(0); }
  .zl-nav__list {
    display: grid !important;
    justify-content: stretch !important;
    gap: 0 !important;
    white-space: normal;
  }
  .zl-nav__list > li { border-bottom: 1px solid rgba(255,255,255,.10); }
  .zl-nav__list > li > a,
  .zl-nav__more summary {
    display: flex;
    min-height: 58px;
    align-items: center;
    padding: 13px 6px;
    font-size: 1.08rem !important;
  }
  .zl-nav__submenu {
    position: static;
    width: auto;
    padding: 0 0 14px 18px;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  .zl-nav__submenu::before { display: none; }
  .zl-nav__submenu a { padding: 11px 6px; font-size: .96rem !important; }
}
@media (max-width: 920px) {
  .zl-header__cta { display: none !important; }
  .zl-tour-strip__request { display: none; }
}
@media (max-width: 720px) {
  .zl-tour-strip__label,
  .zl-tour-strip__dot,
  .zl-tour-strip a:nth-of-type(2) { display: none; }
  .zl-tour-strip__inner { justify-content: center; }
  .zl11-video-grid,
  .zl11-inline-video-grid,
  .zl11-page-video__grid { grid-template-columns: 1fr; }
  .zl11-video-group > header { grid-template-columns: 1fr; }
}

.zl-nav__more.is-current > details > summary {
  color: var(--z11-gold-light) !important;
}
