/* ==========================================================================
   Новогодний Далянь — страница /china/dalian/
   Дизайн-система v2 (Р-04…Р-10): Noto Serif Display + Onest, тёмно-синий и золото.
   Все классы с префиксом dl- — стили не влияют на остальной сайт.
   ========================================================================== */

.dl {
  --dl-navy: #0B1D3A;
  --dl-navy-deep: #081729;
  --dl-navy-card: #10294A;
  --dl-gold: #C9A84C;
  --dl-gold-light: #E8D48B;
  --dl-gold-ink: #7D6220;
  --dl-ivory: #FAF5E4;
  --dl-paper: #F4F7FB;
  --dl-ink: #1A1A2E;
  --dl-ink-soft: #2B3550;
  --dl-muted: #536178;
  --dl-on-dark: #D6E2F3;
  --dl-on-dark-muted: #B5CCEB;
  --dl-line-light: #E5DCC0;
  --dl-serif: 'Noto Serif Display', Georgia, 'Times New Roman', serif;
  --dl-sans: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --dl-gutter: 56px;
  font-family: var(--dl-sans);
  color: var(--dl-ink);
  font-size: 17px;
  line-height: 1.65;
  background: var(--dl-navy-deep);
  overflow-x: clip;
}
.dl *, .dl *::before, .dl *::after { box-sizing: border-box; }
.dl img { display: block; max-width: 100%; }
.dl h1, .dl h2, .dl h3, .dl h4, .dl-promo h2 { color: inherit; letter-spacing: normal; text-transform: none; font-family: var(--dl-serif); }
.dl p { color: inherit; }
.dl a { color: inherit; }
.dl :focus-visible { outline: 2px solid #2E6BC6; outline-offset: 3px; }
.dl .dl-dark :focus-visible, .dl-dark :focus-visible { outline-color: var(--dl-gold-light); }

.dl-wrap { max-width: 1240px; margin: 0 auto; padding: 0 var(--dl-gutter); }
.dl-sc { font-family: var(--dl-sans); font-size: 12px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; }
.dl-serif { font-family: var(--dl-serif); }
.dl-it { font-style: italic; }
.dl-gold { color: var(--dl-gold-light); }
.dl-gold-ink { color: var(--dl-gold-ink); }
.dl-nw { white-space: nowrap; }
.dl-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.dl-h2 { margin: 0; font-family: var(--dl-serif); font-weight: 300; font-size: clamp(36px, 4.4vw, 60px); line-height: 1.04; color: var(--dl-navy); }
.dl-dark .dl-h2 { color: #FFFFFF; }
.dl-kicker { margin: 0 0 20px; color: var(--dl-gold-ink); }
.dl-dark .dl-kicker { color: var(--dl-gold-light); }
.dl-lead { margin: 0; font-size: 17px; font-weight: 300; color: var(--dl-ink-soft); }
.dl-dark .dl-lead { color: var(--dl-on-dark); }
.dl-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 88px; align-items: end; margin-bottom: 56px; }

.dl-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 34px; border-radius: 12px; border: 0;
  font: 600 13px/1 var(--dl-sans); letter-spacing: .2em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s; }
.dl-btn--gold, .dl a.dl-btn--gold { background: var(--dl-gold); color: var(--dl-navy); }
.dl-btn--gold:hover { background: var(--dl-gold-light); }
.dl-btn--line, .dl a.dl-btn--line { background: transparent; color: var(--dl-gold-light); border: 1px solid var(--dl-gold); min-height: 46px; padding: 0 24px; font-size: 12px; font-weight: 500; }
.dl-link { display: inline-block; text-decoration: none; border-bottom: 1px solid rgba(201,168,76,.7); padding-bottom: 6px; }

.dl-tag { display: inline-flex; align-items: center; font: 600 10px/1 var(--dl-sans); letter-spacing: .08em; text-transform: uppercase; padding: 5px 9px; border-radius: 999px; background: rgba(201,168,76,.16); color: var(--dl-gold-ink); }

/* ---------- Первый экран ---------- */
.dl-hero { position: relative; min-height: 780px; overflow: hidden; color: #FFFFFF; background: var(--dl-navy-deep); }
.dl-hero__img, .dl-hero__img img { position: absolute; inset: 0; width: 100%; height: 100%; }
.dl-hero__img img { object-fit: cover; object-position: 60% 50%; }
.dl-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(8,23,41,.94) 0%, rgba(8,23,41,.78) 38%, rgba(8,23,41,.15) 72%, rgba(8,23,41,.25) 100%); }
.dl-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 280px; z-index: 1; background: linear-gradient(0deg, var(--dl-navy-deep) 0%, rgba(8,23,41,0) 100%); }
.dl-hero > .dl-wrap { position: relative; z-index: 2; }
.dl-hero__bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; height: 96px; border-bottom: 1px solid rgba(232,212,139,.22); }
.dl-hero__logo img { height: 34px; width: auto; }
.dl-crumbs { display: flex; gap: 14px; margin: 0; padding: 0; list-style: none; font-size: 11px; color: var(--dl-on-dark-muted); }
.dl-crumbs a { color: var(--dl-on-dark-muted); text-decoration: none; }
.dl-crumbs a:hover { color: #FFFFFF; }
.dl-crumbs li + li::before { content: "/"; margin-right: 14px; }
.dl-crumbs [aria-current] { color: var(--dl-gold-light); }
.dl-hero__phone { color: #FFFFFF; text-decoration: none; }
.dl-hero__menu { display: none; width: 44px; height: 44px; border-radius: 999px; border: 1px solid rgba(232,212,139,.4); background: transparent; color: var(--dl-gold-light); cursor: pointer; align-items: center; justify-content: center; }
.dl-hero__body { position: relative; padding: 80px 0 48px; }
.dl-hero__col { display: flex; gap: 28px; max-width: 720px; }
.dl-hero__rule { width: 1px; flex-shrink: 0; background: linear-gradient(180deg, var(--dl-gold), rgba(201,168,76,0)); }
.dl-hero h1 { margin: 0; font-family: var(--dl-serif); font-weight: 300; font-size: clamp(56px, 8.6vw, 124px); line-height: .94; letter-spacing: -0.02em; }
.dl-hero h1 em { font-style: italic; color: var(--dl-gold-light); }
.dl-hero__sub { margin: 32px 0 0; max-width: 560px; font-family: var(--dl-serif); font-weight: 300; font-size: 25px; line-height: 1.45; color: var(--dl-on-dark); }
.dl-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 32px; margin-top: 44px; }
.dl-hero__cta .dl-link { color: #FFFFFF; }
.dl-seal { position: absolute; right: 0; top: 56px; width: 172px; height: 172px; }
.dl-facts { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); margin: 72px 0 0; padding: 0; border-top: 1px solid rgba(232,212,139,.35); }
.dl-facts > div { padding: 24px 20px 0; border-left: 1px solid rgba(255,255,255,.1); }
.dl-facts > div:first-child { padding-left: 0; border-left: 0; }
.dl-facts dt { font-size: 10px; color: var(--dl-on-dark-muted); }
.dl-facts dd { margin: 8px 0 0; font-family: var(--dl-serif); font-size: 23px; white-space: nowrap; }

/* ---------- Навигация по странице ---------- */
.dl-tabsnav { position: sticky; top: 0; z-index: 50; transition: top .25s ease; background: rgba(8,23,41,.96); border-top: 1px solid rgba(232,212,139,.18); border-bottom: 1px solid rgba(232,212,139,.18); }
.dl-tabsnav .dl-wrap { display: flex; align-items: center; gap: 28px; height: 72px; white-space: nowrap; overflow-x: auto; scrollbar-width: none; }
.dl-tabsnav .dl-wrap::-webkit-scrollbar { display: none; }
.dl-tabsnav a { color: #FFFFFF; text-decoration: none; font-size: 11px; }
.dl-tabsnav a:hover, .dl-tabsnav a.is-active { color: var(--dl-gold-light); }
.dl-tabsnav__price { margin-left: auto; font-family: var(--dl-serif); font-size: 20px; color: var(--dl-gold-light); }
.dl-tabsnav .dl-btn--line { flex-shrink: 0; }
/* Переход к разделу — заголовок встаёт под строкой разделов (высота считается в dalian.js) */
.dl section[id] { scroll-margin-top: var(--dl-stick, 80px); }
/* Телефон и планшет: шапка сайта прячется при прокрутке вниз, на экране одна полоса меню */
@media (max-width: 767px) {
  .landing-nav.landing-nav--visible.dl-nav-off { opacity: 0; pointer-events: none; transform: translateY(calc(-100% - 12px)); }
}
@media (min-width: 768px) and (max-width: 960px) {
  .landing-nav.landing-nav--visible.dl-nav-off { opacity: 0; pointer-events: none; transform: translateX(-50%) translateY(calc(-100% - 20px)); }
}

/* ---------- Вступление ---------- */
.dl-intro { background: var(--dl-ivory); padding: 112px 0 96px; }
.dl-intro__lead { margin: 0 auto; max-width: 980px; text-align: center; font-family: var(--dl-serif); font-weight: 300; font-size: clamp(27px, 3vw, 40px); line-height: 1.32; color: var(--dl-navy); }
.dl-intro__lead em { color: var(--dl-gold-ink); }
.dl-intro__text { margin: 40px auto 0; max-width: 640px; text-align: center; font-size: 18px; font-weight: 300; color: var(--dl-ink-soft); }
.dl-trio { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; margin: 72px 0 0; padding: 0; list-style: none; }
.dl-trio > li:nth-child(2) { padding-top: 48px; }
.dl-trio > li:nth-child(3) { padding-top: 96px; }
.dl-ph { position: relative; aspect-ratio: 4 / 5; border-radius: 20px; overflow: hidden; background: var(--dl-paper); }
.dl-ph img { width: 100%; height: 100%; object-fit: cover; }
.dl-trio__num { margin-top: 22px; font-family: var(--dl-serif); font-size: 15px; font-style: italic; color: var(--dl-gold-ink); }
.dl-trio h3 { margin: 4px 0 0; font-family: var(--dl-serif); font-weight: 400; font-size: 28px; color: var(--dl-navy); }
.dl-trio p { margin: 8px 0 0; font-size: 16px; font-weight: 300; color: var(--dl-ink-soft); }

/* ---------- Паспорт ---------- */
.dl-pass { background: #FFFFFF; padding: 64px 0; }
.dl-pass__head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; flex-wrap: wrap; padding-bottom: 22px; border-bottom: 1px solid var(--dl-line-light); }
.dl-pass__head h2 { margin: 0; font-family: var(--dl-serif); font-weight: 400; font-size: 36px; color: var(--dl-navy); }
.dl-pass__head span { font-size: 10px; color: var(--dl-muted); }
.dl-pass dl { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); margin: 0; }
.dl-pass dl > div { padding: 30px 24px 0; border-left: 1px solid #EFE7D2; }
.dl-pass dl > div:first-child { padding-left: 0; border-left: 0; }
.dl-pass dt { font-size: 10px; color: var(--dl-gold-ink); }
.dl-pass dd { margin: 10px 0 0; font-family: var(--dl-serif); font-size: 21px; line-height: 1.3; color: var(--dl-navy); }
.dl-pass dd small { display: block; margin-top: 6px; font-family: var(--dl-sans); font-size: 13px; font-weight: 300; color: var(--dl-muted); }

/* ---------- Программа ---------- */
.dl-prog { background: var(--dl-navy); color: #FFFFFF; padding: 104px 0 96px; }
.dl-day1 { display: flex; align-items: baseline; gap: 22px; margin-bottom: 40px; }
.dl-day1__num { font-family: var(--dl-serif); font-size: 96px; font-weight: 300; line-height: .8; color: var(--dl-gold-light); }
.dl-day1__title { margin-top: 6px; font-family: var(--dl-serif); font-size: 30px; font-weight: 300; }
.dl-day1 .dl-sc { color: var(--dl-on-dark-muted); }
.dl-tl { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); margin: 0; padding: 0; list-style: none; }
.dl-tl li { min-width: 0; }
.dl-tl__time { font-family: var(--dl-serif); font-size: 34px; font-weight: 300; line-height: 1; white-space: nowrap; }
.dl-tl__track { display: flex; align-items: center; height: 32px; margin: 14px 0 10px; }
.dl-tl__dot { flex-shrink: 0; width: 10px; height: 10px; margin-right: 8px; border-radius: 999px; background: var(--dl-navy); border: 1px solid var(--dl-gold); }
.dl-tl__line { flex-grow: 1; height: 1px; background: rgba(201,168,76,.45); }
.dl-tl__key { font-size: 10px; color: var(--dl-gold-light); white-space: nowrap; }
.dl-tl p { margin: 8px 0 0; padding-right: 20px; font-size: 15px; font-weight: 300; line-height: 1.5; color: var(--dl-on-dark); }
.dl-tl li:last-child .dl-tl__time { color: var(--dl-gold-light); }
.dl-tl li:last-child .dl-tl__dot { width: 16px; height: 16px; margin-right: 10px; background: var(--dl-gold); border-color: #FFFFFF; box-shadow: 0 0 0 6px rgba(201,168,76,.18); }
.dl-tl li:last-child .dl-tl__line { background: linear-gradient(90deg, var(--dl-gold), rgba(201,168,76,0)); }
.dl-days { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; margin: 80px 0 0; padding: 0; list-style: none; }
.dl-days article { height: 100%; border-radius: 20px; overflow: hidden; background: var(--dl-navy-deep); border: 1px solid rgba(232,212,139,.18); }
.dl-days__img { position: relative; aspect-ratio: 16 / 10; }
.dl-days__img img { width: 100%; height: 100%; object-fit: cover; }
.dl-days__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,23,41,.9), rgba(8,23,41,0) 60%); }
.dl-days__date { position: absolute; left: 24px; bottom: 18px; z-index: 1; display: flex; align-items: baseline; gap: 12px; }
.dl-days__date b { font-family: var(--dl-serif); font-size: 54px; font-weight: 300; line-height: .9; color: var(--dl-gold-light); }
.dl-days__date span { font-size: 10px; color: #FFFFFF; }
.dl-days__body { padding: 24px 26px 28px; }
.dl-days h3 { margin: 0 0 10px; font-family: var(--dl-serif); font-weight: 400; font-size: 25px; }
.dl-days p { margin: 0; font-size: 15px; font-weight: 300; color: var(--dl-on-dark); }
.dl-days p a { color: var(--dl-gold-light); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Отели ---------- */
.dl-hotels { background: var(--dl-ivory); padding: 104px 0 96px; }
.dl-hotels__head { text-align: center; margin-bottom: 64px; }
.dl-hotels__head .dl-lead { margin: 22px auto 0; max-width: 560px; }
.dl-switch { display: none; }
.dl-hotel { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 72px; align-items: center; }
.dl-hotel + .dl-hotel { margin-top: 72px; }
.dl-hotel--rev .dl-hotel__media { order: 2; }
.dl-hotel__media { position: relative; aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; }
.dl-hotel__media img { width: 100%; height: 100%; object-fit: cover; }
.dl-hotel__type { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: var(--dl-navy); color: #FFFFFF; text-align: center; padding: 32px; }
.dl-hotel__type::before { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(232,212,139,.35); border-radius: 12px; pointer-events: none; }
.dl-hotel__type b { font-family: var(--dl-serif); font-weight: 300; font-size: clamp(36px, 4vw, 56px); line-height: 1; }
.dl-hotel__type span { color: var(--dl-gold-light); letter-spacing: .4em; font-size: 14px; }
.dl-hotel__kicker { margin: 0; font-size: 11px; color: var(--dl-gold-ink); }
.dl-hotel h3 { margin: 16px 0 0; font-family: var(--dl-serif); font-weight: 400; font-size: 46px; line-height: 1.05; color: var(--dl-navy); }
.dl-hotel__text { margin: 22px 0 0; font-weight: 300; color: var(--dl-ink-soft); }
.dl-menu { margin: 30px 0 0; padding: 0; list-style: none; }
.dl-menu li { display: flex; align-items: baseline; padding: 10px 0; font-weight: 300; }
.dl-menu li::after { content: none; }
.dl-menu__dots { flex-grow: 1; margin: 0 12px; border-bottom: 1px dotted rgba(11,29,58,.35); transform: translateY(-6px); }
.dl-menu b { font-family: var(--dl-serif); font-weight: 400; font-size: 26px; color: var(--dl-navy); white-space: nowrap; }
.dl-menu em { font-style: normal; font-size: 15px; color: var(--dl-muted); }
.dl-hotel .dl-link { margin-top: 30px; color: var(--dl-navy); font-size: 11px; background: none; border-top: 0; border-left: 0; border-right: 0; cursor: pointer; font-family: var(--dl-sans); }
.dl-hotels__note { margin: 56px auto 0; max-width: 760px; text-align: center; font-size: 15px; font-weight: 300; color: var(--dl-muted); }

/* ---------- Новогодний банкет ---------- */
.dl-night { position: relative; overflow: hidden; background: var(--dl-navy-deep); color: #FFFFFF; padding: 112px 0; }
.dl-night__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .42; }
.dl-night::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(8,23,41,.55) 0%, rgba(8,23,41,.92) 75%); }
.dl-invite { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; padding: 14px; border: 1px solid rgba(232,212,139,.55); }
.dl-invite__in { border: 1px solid rgba(232,212,139,.3); padding: 56px 64px; text-align: center; background: rgba(8,23,41,.55); }
.dl-invite__in > .dl-sc { margin: 0; color: var(--dl-gold-light); }
.dl-invite__diamond { width: 9px; height: 9px; margin: 26px auto; background: var(--dl-gold); transform: rotate(45deg); }
.dl-invite h2 { margin: 0; font-family: var(--dl-serif); font-weight: 300; font-size: clamp(36px, 5vw, 64px); line-height: 1.05; }
.dl-invite h2 em { color: var(--dl-gold-light); }
.dl-invite__place { margin: 22px 0 0; font-family: var(--dl-serif); font-size: 22px; font-weight: 300; color: var(--dl-on-dark); }
.dl-invite__time { margin: 6px 0 0; font-family: var(--dl-serif); font-size: 44px; font-weight: 300; color: var(--dl-gold-light); }
.dl-invite__sep { width: 180px; height: 1px; margin: 40px auto; background: rgba(232,212,139,.35); }
.dl-invite ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; font-size: 17px; font-weight: 300; }
.dl-invite__foot { margin: 44px 0 0; font-size: 10px; color: var(--dl-on-dark-muted); }

/* ---------- Перелёт и карта ---------- */
.dl-flight { background: var(--dl-paper); padding: 104px 0 96px; }
.dl-map { margin: 0; border-radius: 28px; overflow: hidden; background: #FFFFFF; box-shadow: 0 1px 0 rgba(11,29,58,.06); }
.dl-map__frame { position: relative; }
.dl-map__frame img, .dl-map__frame svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.dl-map__frame img { object-fit: cover; }
.dl-map--desk .dl-map__frame { aspect-ratio: 1200 / 680; }
.dl-map--mob { display: none; }
.dl-map--mob .dl-map__frame { aspect-ratio: 668 / 460; }
.dl-map figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; padding: 14px 20px; border-top: 1px solid #EEF2F7; font-size: 12px; font-weight: 300; color: var(--dl-muted); }
.dl-trip { margin-top: 24px; border-radius: 28px; background: var(--dl-navy); color: #FFFFFF; padding: 34px 44px 30px; }
.dl-trip__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 20px; }
.dl-trip__head h3 { margin: 0; font-family: var(--dl-serif); font-size: 26px; font-weight: 300; }
.dl-trip__head .dl-sc { font-size: 10px; color: var(--dl-on-dark-muted); }
.dl-legs { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 64px; }
.dl-leg { padding: 26px 0; border-top: 1px solid rgba(232,212,139,.22); }
.dl-leg__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.dl-leg__top .dl-sc { font-size: 10px; color: var(--dl-gold-light); }
.dl-leg__top span:last-child { font-size: 13px; font-weight: 300; color: var(--dl-on-dark-muted); }
.dl-leg__row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 18px; align-items: start; margin-top: 16px; }
.dl-leg__t { font-family: var(--dl-serif); font-size: 46px; font-weight: 300; line-height: 1; white-space: nowrap; }
.dl-leg__c { margin-top: 8px; font-size: 13px; font-weight: 300; color: var(--dl-on-dark-muted); }
.dl-leg__end { text-align: right; }
.dl-leg__mid { display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 14px; }
.dl-leg__path { display: flex; align-items: center; width: 100%; }
.dl-leg__path i { flex-grow: 1; height: 1px; background: linear-gradient(90deg, var(--dl-gold), rgba(201,168,76,.35)); }
.dl-leg__path i:last-of-type { background: linear-gradient(90deg, rgba(201,168,76,.35), var(--dl-gold)); }
.dl-leg__path b { width: 6px; height: 6px; border-radius: 999px; background: var(--dl-gold); }
.dl-leg__path b:last-child { background: transparent; border: 1px solid var(--dl-gold); }
.dl-leg__path svg { margin: 0 6px; flex-shrink: 0; }
.dl-leg__mid span { font-size: 12px; font-weight: 300; color: var(--dl-on-dark-muted); white-space: nowrap; }
.dl-specs { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin: 0; padding-top: 22px; border-top: 1px solid rgba(232,212,139,.22); }
.dl-specs > div { padding: 0 14px; border-left: 1px solid rgba(255,255,255,.1); }
.dl-specs > div:first-child { padding-left: 0; border-left: 0; }
.dl-specs dt { font-size: 9px; color: var(--dl-on-dark-muted); }
.dl-specs dd { margin: 6px 0 0; font-family: var(--dl-serif); font-size: 20px; white-space: nowrap; }
.dl-specs dd small { display: block; margin-top: 4px; font-family: var(--dl-sans); font-size: 12px; font-weight: 300; color: var(--dl-on-dark-muted); white-space: normal; }
.dl-flight__note { margin: 28px 0 0; max-width: 860px; font-size: 14px; font-weight: 300; color: var(--dl-muted); }

/* ---------- Расчёт ---------- */
.dl-calc { background: var(--dl-navy); color: #FFFFFF; padding: 104px 0 96px; }
.dl-calc__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 96px; align-items: start; }
.dl-calc fieldset { margin: 0; padding: 0; border: 0; }
.dl-calc legend, .dl-calc__label { display: block; margin-bottom: 14px; font-size: 10px; color: var(--dl-on-dark-muted); }
.dl-calc__fields { display: flex; flex-direction: column; gap: 40px; margin-top: 56px; }
.dl-opts { display: flex; flex-wrap: wrap; gap: 8px 32px; }
.dl-opt { min-height: 44px; padding: 0 0 8px; border: 0; border-bottom: 1px solid transparent; background: none; color: var(--dl-on-dark-muted); font: 300 22px var(--dl-serif); cursor: pointer; }
.dl-opt[aria-pressed="true"] { color: var(--dl-gold-light); border-bottom-color: var(--dl-gold); }
.dl-opt:hover { color: #FFFFFF; }
.dl-calc__row { display: flex; flex-wrap: wrap; gap: 40px 64px; align-items: end; }
.dl-step { display: flex; align-items: center; gap: 22px; }
.dl-step button { width: 46px; height: 46px; border-radius: 999px; border: 1px solid rgba(232,212,139,.5); background: transparent; color: var(--dl-gold-light); font-size: 22px; font-weight: 300; cursor: pointer; }
.dl-step output { min-width: 36px; text-align: center; font-family: var(--dl-serif); font-size: 44px; font-weight: 300; }
.dl-sum { border: 1px solid rgba(232,212,139,.4); border-radius: 28px; padding: 52px; background: var(--dl-navy-deep); }
.dl-sum > .dl-sc { margin: 0; font-size: 10px; color: var(--dl-gold-light); }
.dl-sum__what { margin: 18px 0 0; font-family: var(--dl-serif); font-size: 24px; font-weight: 300; line-height: 1.4; }
.dl-sum__lines { margin-top: 34px; font-size: 16px; font-weight: 300; color: var(--dl-on-dark); }
.dl-sum__lines div { display: flex; align-items: baseline; padding: 9px 0; }
.dl-sum__lines i { flex-grow: 1; margin: 0 12px; border-bottom: 1px dotted rgba(232,212,139,.4); transform: translateY(-6px); }
.dl-sum__total { margin-top: 34px; padding-top: 30px; border-top: 1px solid rgba(232,212,139,.35); }
.dl-sum__total .dl-sc { font-size: 10px; color: var(--dl-on-dark-muted); }
.dl-sum__total output { display: block; margin-top: 8px; font-family: var(--dl-serif); font-size: clamp(44px, 5vw, 72px); font-weight: 300; line-height: 1.05; color: var(--dl-gold-light); white-space: nowrap; }
.dl-sum .dl-btn { width: 100%; margin-top: 34px; }
.dl-sum__note { margin: 16px 0 0; text-align: center; font-size: 13px; font-weight: 300; color: var(--dl-on-dark-muted); }

/* ---------- Чем заняться ---------- */
.dl-todo { background: #FFFFFF; padding: 104px 0 96px; }
.dl-mosaic { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); grid-template-rows: auto auto; gap: 24px; margin: 0; padding: 0; list-style: none; }
.dl-mosaic li:first-child { grid-row: span 2; }
.dl-tile { position: relative; height: 100%; min-height: 258px; margin: 0; border-radius: 20px; overflow: hidden; color: #FFFFFF; }
.dl-mosaic li:first-child .dl-tile { min-height: 540px; }
.dl-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dl-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,23,41,.85) 0%, rgba(8,23,41,0) 58%); }
.dl-tile figcaption { position: absolute; left: 32px; right: 32px; bottom: 28px; z-index: 1; }
.dl-tile__n { font-family: var(--dl-serif); font-style: italic; color: var(--dl-gold-light); }
.dl-tile h3 { margin: 4px 0 0; font-family: var(--dl-serif); font-weight: 300; font-size: 28px; line-height: 1.2; }
.dl-mosaic li:first-child h3 { font-size: 38px; }
.dl-tile p { margin: 8px 0 0; max-width: 460px; font-weight: 300; color: var(--dl-on-dark); }
.dl-ideas { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; margin: 56px 0 0; padding: 0; list-style: none; }
.dl-ideas li { padding-top: 24px; border-top: 1px solid var(--dl-line-light); }
.dl-ideas li.has-img { display: grid; grid-template-columns: minmax(0,1fr) 96px; gap: 16px; }
.dl-ideas li.has-img img { width: 96px; height: 96px; object-fit: cover; border-radius: 14px; }
.dl-ideas h3 { margin: 4px 0 0; font-family: var(--dl-serif); font-weight: 400; font-size: 26px; color: var(--dl-navy); }
.dl-ideas .dl-tile__n { color: var(--dl-gold-ink); }
.dl-ideas p { margin: 8px 0 0; font-size: 16px; font-weight: 300; color: var(--dl-ink-soft); }

/* ---------- О Даляне ---------- */
.dl-about { background: var(--dl-ivory); padding: 104px 0 96px; }
.dl-about__grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 56px; align-items: start; }
.dl-about .dl-map { border-radius: 28px; }
.dl-legend { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--dl-line-light); }
.dl-legend li { display: flex; gap: 14px; align-items: center; padding: 9px 0; border-top: 1px solid var(--dl-line-light); font-weight: 300; color: var(--dl-navy); }
.dl-legend b { flex-shrink: 0; width: 24px; height: 24px; border-radius: 999px; background: var(--dl-navy); border: 1px solid var(--dl-gold); color: #FFFFFF; font: 600 11px/22px var(--dl-sans); text-align: center; }
.dl-legend li:first-child b { background: var(--dl-gold); border-color: #FFFFFF; color: var(--dl-navy); }
.dl-quote { margin: 32px 0 0; padding: 0 0 0 24px; border-left: 1px solid var(--dl-gold); font-family: var(--dl-serif); font-size: 22px; font-weight: 300; font-style: italic; line-height: 1.45; color: var(--dl-navy); }
.dl-about__text { margin: 20px 0 0; font-size: 15px; font-weight: 300; color: var(--dl-ink-soft); }
.dl-pair { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 28px; }
.dl-pair div { aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; }
.dl-pair img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Вопросы ---------- */
.dl-faq { background: #FFFFFF; padding: 104px 0 96px; }
.dl-faq__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 96px; align-items: start; }
.dl-faq__grid .dl-lead a { color: #2E6BC6; text-decoration: underline; text-underline-offset: 3px; }
.dl-qa { border-top: 1px solid var(--dl-line-light); }
.dl-qa details { border-bottom: 1px solid var(--dl-line-light); }
.dl-qa summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 26px 0; list-style: none; cursor: pointer; font: 400 23px/1.35 var(--dl-serif); color: var(--dl-navy); }
.dl-qa summary::-webkit-details-marker { display: none; }
.dl-qa summary::after { content: "+"; flex-shrink: 0; font: 300 28px var(--dl-sans); color: var(--dl-gold); }
.dl-qa details[open] summary::after { content: "−"; }
.dl-qa p { margin: 0; padding: 0 0 26px; font-size: 16px; font-weight: 300; color: var(--dl-ink-soft); }

/* ---------- Бронирование ---------- */
.dl-book { position: relative; overflow: hidden; background: var(--dl-navy-deep); color: #FFFFFF; padding: 112px 0 72px; }
.dl-book__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .18; }
.dl-book .dl-wrap { position: relative; z-index: 1; }
.dl-book__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 96px; align-items: start; }
.dl-book__phone { margin-top: 48px; padding-top: 24px; max-width: 480px; border-top: 1px solid rgba(232,212,139,.25); }
.dl-book__phone .dl-sc { font-size: 10px; color: var(--dl-on-dark-muted); }
.dl-book__phone a { display: inline-block; margin-top: 8px; font-family: var(--dl-serif); font-size: 34px; font-weight: 300; color: var(--dl-gold-light); text-decoration: none; letter-spacing: .02em; }
.dl-form { display: flex; flex-direction: column; gap: 26px; padding: 52px; border: 1px solid rgba(232,212,139,.4); border-radius: 28px; background: rgba(8,23,41,.82); }
.dl-form__row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; }
.dl-field label { display: block; font-size: 10px; color: var(--dl-on-dark-muted); }
.dl-field input, .dl-field select, .dl-field textarea { width: 100%; min-height: 50px; padding: 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.3); border-radius: 0; background: transparent; color: #FFFFFF; font: 300 18px var(--dl-sans); }
.dl-field textarea { min-height: 64px; padding-top: 12px; resize: vertical; }
.dl-field select option { color: var(--dl-navy); }
.dl-field input::placeholder, .dl-field textarea::placeholder { color: #7F95B5; }
.dl-field input:focus, .dl-field select:focus, .dl-field textarea:focus { outline: none; border-bottom-color: var(--dl-gold); }
.dl-field.is-error input, .dl-field.is-error select { border-bottom-color: #F87171; }
.dl-field__err { display: block; min-height: 0; margin-top: 6px; font-size: 13px; color: #FCA5A5; }
.dl-consent { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; font-weight: 300; color: var(--dl-on-dark-muted); }
.dl-consent input { flex-shrink: 0; width: 20px; height: 20px; margin-top: 1px; accent-color: var(--dl-gold); }
.dl-consent a { color: var(--dl-gold-light); text-decoration: underline; text-underline-offset: 3px; }
.dl-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dl-form .dl-btn { width: 100%; }
.dl-form .dl-btn[disabled] { opacity: .65; cursor: progress; }
.dl-form__status { margin: 0; min-height: 22px; font-size: 14px; text-align: center; color: var(--dl-on-dark-muted); }
.dl-form__status.is-error { color: #FCA5A5; }
.dl-form__done { display: none; text-align: center; padding: 24px 0; }
.dl-form.is-done > *:not(.dl-form__done) { display: none; }
.dl-form.is-done .dl-form__done { display: block; }
.dl-form__done h3 { margin: 0; font-family: var(--dl-serif); font-weight: 300; font-size: 34px; color: var(--dl-gold-light); }
.dl-form__done p { margin: 14px 0 0; font-weight: 300; color: var(--dl-on-dark); }
.dl-book__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; margin-top: 72px; padding-top: 28px; border-top: 1px solid rgba(232,212,139,.2); font-size: 13px; font-weight: 300; color: var(--dl-on-dark-muted); }
.dl-credits { margin: 16px 0 0; font-size: 11px; font-weight: 300; line-height: 1.6; color: #7F95B5; }

/* ---------- Панель внизу экрана (телефон) ---------- */
.dl-bar { display: none; }

/* ==========================================================================
   Планшет и телефон
   ========================================================================== */
/* ── Галерея «Далянь зимой» ───────────────────────────────────────────── */
.dl-gal { background: var(--dl-navy-deep); color: #FFFFFF; padding: 104px 0 96px; }
.dl-gal__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); grid-auto-rows: 232px; gap: 16px; }
.dl-gal__item { grid-column: span 4; }
.dl-gal__item--big { grid-column: span 7; grid-row: span 2; }
.dl-gal__item--side { grid-column: span 5; }
.dl-gal__item--wide { grid-column: span 12; grid-row: span 2; }
.dl-gal__item--half { grid-column: span 6; grid-row: span 2; }
.dl-gal__btn { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 20px; overflow: hidden; cursor: zoom-in; background: var(--dl-navy-card); color: #FFFFFF; text-align: left; font: inherit; }
.dl-gal__btn img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.001); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.dl-gal__btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,23,41,.9) 0, rgba(8,23,41,.74) 84px, rgba(8,23,41,.28) 140px, rgba(8,23,41,0) 188px); pointer-events: none; }
.dl-gal__btn::before { content: ""; position: absolute; inset: 12px; z-index: 2; border: 1px solid rgba(232,212,139,0); border-radius: 12px; transition: border-color .5s ease; pointer-events: none; }
.dl-gal__btn:hover img, .dl-gal__btn:focus-visible img { transform: scale(1.045); }
.dl-gal__btn:hover::before, .dl-gal__btn:focus-visible::before { border-color: rgba(232,212,139,.45); }
.dl-gal__btn:focus-visible { outline: 2px solid var(--dl-gold-light); outline-offset: 3px; }
.dl-gal__cap { position: absolute; left: 26px; right: 76px; bottom: 24px; z-index: 3; display: flex; flex-direction: column; gap: 7px; text-shadow: 0 1px 2px rgba(8,23,41,.55), 0 2px 18px rgba(8,23,41,.6); }
.dl-gal__cap .dl-sc { display: flex; align-items: center; gap: 10px; font-size: 9px; letter-spacing: .34em; color: var(--dl-gold-light); }
.dl-gal__cap .dl-sc::before { content: ""; width: 22px; height: 1px; background: currentColor; opacity: .8; }
.dl-gal__cap b { max-width: 34ch; font-family: var(--dl-serif); font-weight: 300; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.3; letter-spacing: .01em; }
.dl-gal__item--big .dl-gal__cap b, .dl-gal__item--wide .dl-gal__cap b { font-size: clamp(18px, 1.55vw, 23px); }
.dl-gal__item--half .dl-gal__cap b { font-size: clamp(17px, 1.4vw, 21px); }
.dl-gal__zoom { position: absolute; right: 24px; bottom: 24px; z-index: 3; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(232,212,139,.45); border-radius: 50%; color: var(--dl-gold-light); background: rgba(8,23,41,.35); transition: background .3s ease, color .3s ease; }
.dl-gal__zoom svg { width: 14px; height: 14px; }
.dl-gal__btn:hover .dl-gal__zoom, .dl-gal__btn:focus-visible .dl-gal__zoom { background: var(--dl-gold); color: var(--dl-navy); }
.dl-gal__note { margin: 28px 0 0; color: var(--dl-on-dark-muted); font-size: 14px; }

/* Просмотр во весь экран */
.dl-lb { --dl-navy: #0B1D3A; --dl-navy-deep: #081729; --dl-navy-card: #10294A; --dl-gold: #C9A84C; --dl-gold-light: #E8D48B; --dl-gold-ink: #7D6220; --dl-ivory: #FAF5E4; --dl-paper: #F4F7FB; --dl-ink: #1A1A2E; --dl-ink-soft: #2B3550; --dl-muted: #536178; --dl-on-dark: #D6E2F3; --dl-on-dark-muted: #B5CCEB; --dl-line-light: #E5DCC0; --dl-serif: 'Noto Serif Display', Georgia, 'Times New Roman', serif; --dl-sans: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif; --dl-gutter: 56px; }
.dl-lb { position: fixed; inset: 0; z-index: 10050; display: grid; grid-template-rows: auto minmax(0,1fr) auto; background: rgba(4,12,24,.97); color: #FFFFFF; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease; font-family: var(--dl-sans); }
.dl-lb.is-open { opacity: 1; visibility: visible; }
.dl-lb__top { display: flex; align-items: center; justify-content: space-between; padding: 20px 28px; }
.dl-lb__count { font-family: var(--dl-serif); font-size: 22px; color: var(--dl-gold-light); letter-spacing: .04em; }
.dl-lb__count span { color: rgba(255,255,255,.45); }
.dl-lb__stage { position: relative; display: grid; place-items: center; min-height: 0; padding: 0 96px; }
.dl-lb__img { max-width: 100%; max-height: calc(100vh - 230px); max-height: calc(100dvh - 230px); object-fit: contain; border-radius: 12px; box-shadow: 0 30px 80px rgba(0,0,0,.45); transition: opacity .25s ease; }
.dl-lb__img.is-loading { opacity: .15; }
.dl-lb__cap { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 22px 28px 30px; text-align: center; }
.dl-lb__cap .dl-sc { display: flex; align-items: center; gap: 10px; font-size: 9px; letter-spacing: .34em; color: var(--dl-gold-light); }
.dl-lb__cap .dl-sc::before, .dl-lb__cap .dl-sc::after { content: ""; width: 22px; height: 1px; background: currentColor; opacity: .7; }
.dl-lb__title { font-family: var(--dl-serif); font-weight: 300; font-size: clamp(19px, 1.7vw, 24px); line-height: 1.25; letter-spacing: .01em; }
.dl-lb__sub { margin: 0; max-width: 560px; color: var(--dl-on-dark-muted); font-size: 13px; font-weight: 300; line-height: 1.6; }
.dl-lb__btn { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid rgba(232,212,139,.45); border-radius: 50%; background: rgba(8,23,41,.6); color: var(--dl-gold-light); cursor: pointer; transition: background .25s ease, color .25s ease; }
.dl-lb__btn:hover, .dl-lb__btn:focus-visible { background: var(--dl-gold); color: var(--dl-navy); outline: none; }
.dl-lb__btn:focus-visible { box-shadow: 0 0 0 3px rgba(232,212,139,.5); }
.dl-lb__prev, .dl-lb__next { position: absolute; top: 50%; transform: translateY(-50%); }
.dl-lb__prev { left: 24px; }
.dl-lb__next { right: 24px; }
html.dl-lb-open, html.dl-lb-open body { overflow: hidden; }

@media (max-width: 1200px) {
  .dl-facts { grid-template-columns: repeat(3, minmax(0,1fr)); row-gap: 20px; }
  .dl-facts > div:nth-child(4) { padding-left: 0; border-left: 0; }
  .dl-pass dl { grid-template-columns: repeat(3, minmax(0,1fr)); row-gap: 28px; }
  .dl-pass dl > div:nth-child(4) { padding-left: 0; border-left: 0; }
}

@media (max-width: 960px) {
  .dl { --dl-gutter: 20px; font-size: 16px; }
  .dl-head, .dl-calc__grid, .dl-faq__grid, .dl-book__grid, .dl-about__grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .dl-head { margin-bottom: 32px; }
  .dl-kicker { margin-bottom: 14px; font-size: 10px; letter-spacing: .26em; }
  .dl-h2 { font-size: clamp(32px, 10.5vw, 44px); }

  /* Галерея: лента крупных кадров, листается пальцем */
  .dl-gal { padding: 72px 0 64px; }
  .dl-gal__grid.dl-strip > * { flex: 0 0 84vw; height: auto; }
  .dl-gal__btn { aspect-ratio: 4 / 5; height: auto; border-radius: 16px; }
  .dl-gal__cap { left: 18px; right: 64px; bottom: 18px; }
  .dl-gal__cap b, .dl-gal__item--big .dl-gal__cap b, .dl-gal__item--wide .dl-gal__cap b, .dl-gal__item--half .dl-gal__cap b { font-size: 17px; }
  .dl-gal__zoom { right: 16px; bottom: 16px; width: 32px; height: 32px; }
  .dl-gal__note { margin-top: 18px; font-size: 13px; }
  .dl-lb__top { padding: 14px 16px; }
  .dl-lb__count { font-size: 18px; }
  .dl-lb__stage { padding: 0 8px; }
  .dl-lb__img { border-radius: 8px; max-height: calc(100vh - 300px); max-height: calc(100dvh - 300px); }
  .dl-lb__prev, .dl-lb__next { top: auto; bottom: -64px; transform: none; width: 44px; height: 44px; }
  .dl-lb__prev { left: 16px; }
  .dl-lb__next { right: 16px; }
  .dl-lb__cap { padding: 16px 72px 24px; }
  .dl-lb__sub { font-size: 13px; }

  /* Ленты с пролистыванием пальцем (Р-43) */
  .dl-strip { display: flex !important; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--dl-gutter);
    margin-left: calc(var(--dl-gutter) * -1); margin-right: calc(var(--dl-gutter) * -1); padding: 0 var(--dl-gutter) 4px; scrollbar-width: none; }
  .dl-strip::-webkit-scrollbar { display: none; }
  .dl-strip > * { flex: 0 0 272px; scroll-snap-align: start; }
  .dl-strip::after { content: ""; flex: 0 0 8px; }

  /* Первый экран */
  .dl-hero { min-height: 0; height: 100svh; min-height: 640px; max-height: 900px; }
  .dl-hero::before { background: linear-gradient(180deg, rgba(8,23,41,.55) 0%, rgba(8,23,41,.1) 30%, rgba(8,23,41,.75) 60%, rgba(8,23,41,1) 100%); }
  .dl-hero__img img { object-position: 55% 50%; }
  .dl-hero > .dl-wrap { height: 100%; display: flex; flex-direction: column; }
  .dl-hero__bar { height: 64px; }
  .dl-hero__logo img { height: 26px; }
  .dl-crumbs, .dl-hero__phone { display: none; }
  .dl-hero__menu { display: inline-flex; }
  .dl-hero__body { position: static; margin-top: auto; padding: 0 0 28px; }
  .dl-hero__rule { display: none; }
  .dl-hero__col { display: block; }
  .dl-hero .dl-kicker { font-size: 10px; margin-bottom: 16px; }
  .dl-hero h1 { font-size: clamp(40px, 13.5vw, 54px); line-height: .98; letter-spacing: -0.015em; }
  .dl-hero__sub { margin-top: 16px; font-size: 18px; }
  .dl-hero__cta { flex-direction: column; align-items: stretch; gap: 14px; margin-top: 22px; }
  .dl-hero__cta .dl-link { align-self: center; font-size: 10px; }
  .dl-seal { top: 80px; right: 0; width: 100px; height: 100px; }
  .dl-facts { order: -1; grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 20px; }
  .dl-facts > div { padding: 12px 8px 0 12px; }
  .dl-facts > div:nth-child(2), .dl-facts > div:nth-child(3), .dl-facts > div:nth-child(5) { display: none; }
  .dl-facts > div:nth-child(4) { padding-left: 12px; border-left: 1px solid rgba(255,255,255,.1); }
  .dl-facts dt { font-size: 8px; }
  .dl-facts dd { font-size: 17px; margin-top: 4px; }
  .dl-hero__body { display: flex; flex-direction: column; }
  .dl-hero__body > .dl-facts { order: 1; }
  .dl-hero__body > .dl-hero__col { order: 0; }

  .dl-tabsnav .dl-wrap { height: 56px; gap: 22px; }
  .dl-tabsnav a { font-size: 10px; }
  .dl-tabsnav__price, .dl-tabsnav .dl-btn--line { display: none; }

  .dl-intro { padding: 72px 0 56px; }
  .dl-intro__lead { font-size: 26px; }
  .dl-intro__text { margin-top: 24px; font-size: 15px; }
  .dl-trio { margin-top: 40px; }
  .dl-trio > li:nth-child(n) { padding-top: 0; }
  .dl-trio h3 { font-size: 22px; }
  .dl-trio p { font-size: 14px; }

  .dl-pass { padding: 48px 0; }
  .dl-pass__head h2 { font-size: 26px; }
  .dl-pass dl { grid-template-columns: repeat(2, minmax(0,1fr)); row-gap: 0; }
  .dl-pass dl > div { padding: 18px 0 18px 14px; border-left: 1px solid #EFE7D2; border-bottom: 1px solid #EFE7D2; }
  .dl-pass dl > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .dl-pass dd { font-size: 18px; }

  .dl-prog, .dl-hotels, .dl-flight, .dl-calc, .dl-todo, .dl-about, .dl-faq { padding: 64px 0 56px; }
  .dl-day1 { gap: 14px; margin: 8px 0 28px; }
  .dl-day1__num { font-size: 72px; }
  .dl-day1__title { font-size: 21px; }
  .dl-tl { grid-template-columns: minmax(0,1fr); }
  .dl-tl li { display: grid; grid-template-columns: 62px 22px minmax(0,1fr); gap: 0 10px; padding-bottom: 22px; position: relative; }
  .dl-tl li:last-child { padding-bottom: 0; }
  .dl-tl__time { font-size: 22px; line-height: 1.2; }
  .dl-tl__track { height: auto; margin: 0; flex-direction: column; align-items: center; justify-content: flex-start; }
  .dl-tl__dot { margin: 8px 0 0; }
  .dl-tl li:last-child .dl-tl__dot { margin: 5px 0 0; }
  .dl-tl__line { position: absolute; left: calc(62px + 10px + 11px); top: 26px; bottom: 0; width: 1px; height: auto; }
  .dl-tl li:last-child .dl-tl__line { display: none; }
  .dl-tl__body { min-width: 0; }
  .dl-tl__key { font-size: 9px; }
  .dl-tl p { margin-top: 4px; padding: 0; font-size: 14px; }
  .dl-days { margin-top: 40px; }
  .dl-days__date b { font-size: 40px; }
  .dl-days__body { padding: 16px 18px 20px; }
  .dl-days h3 { font-size: 20px; }
  .dl-days p { font-size: 14px; }

  .dl-hotels__head { margin-bottom: 28px; }
  .dl-switch { display: flex; justify-content: center; gap: 28px; margin: 0 0 24px; border-bottom: 1px solid var(--dl-line-light); }
  .dl-switch button { min-height: 44px; padding: 0 2px; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; background: none; font: 400 16px var(--dl-serif); color: var(--dl-muted); cursor: pointer; }
  .dl-switch button[aria-selected="true"] { color: var(--dl-navy); border-bottom-color: var(--dl-gold); }
  .dl-hotel, .dl-hotel--rev { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .dl-hotel--rev .dl-hotel__media { order: 0; }
  .dl-hotel + .dl-hotel { margin-top: 0; }
  .dl-hotels.js-tabs .dl-hotel[hidden] { display: none; }
  .dl-hotel h3 { font-size: 30px; margin-top: 8px; }
  .dl-hotel__text { margin-top: 12px; font-size: 15px; }
  .dl-menu { margin-top: 18px; }
  .dl-menu li { padding: 8px 0; font-size: 15px; }
  .dl-menu b { font-size: 21px; }
  .dl-hotels__note { margin-top: 32px; font-size: 14px; }

  .dl-night { padding: 72px 0; }
  .dl-invite { padding: 10px; }
  .dl-invite__in { padding: 44px 22px; }
  .dl-invite__place { font-size: 16px; }
  .dl-invite__time { font-size: 32px; }
  .dl-invite__sep { margin: 26px auto; width: 120px; }
  .dl-invite ul { font-size: 15px; gap: 10px; }

  .dl-map { border-radius: 16px; }
  .dl-map--desk { display: none; }
  .dl-map--mob { display: block; }
  .dl-trip { border-radius: 20px; padding: 22px 20px 20px; }
  .dl-trip__head h3 { font-size: 21px; }
  .dl-legs { grid-template-columns: minmax(0,1fr); }
  .dl-leg { padding: 18px 0; }
  .dl-leg__row { gap: 10px; margin-top: 10px; }
  .dl-leg__t { font-size: 32px; }
  .dl-leg__c { margin-top: 6px; font-size: 11px; }
  .dl-leg__path svg { width: 14px; height: 14px; }
  .dl-specs { grid-template-columns: repeat(2, minmax(0,1fr)); row-gap: 14px; padding-top: 14px; }
  .dl-specs > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .dl-specs dd { font-size: 17px; }

  .dl-calc__fields { margin-top: 32px; gap: 28px; }
  .dl-opt { font-size: 18px; }
  .dl-opts { gap: 6px 22px; }
  .dl-sum { padding: 28px 22px; border-radius: 20px; }
  .dl-sum__what { font-size: 19px; }

  .dl-mosaic { display: block; }
  .dl-mosaic li:first-child .dl-tile, .dl-tile { min-height: 0; aspect-ratio: 3 / 4; }
  .dl-tile figcaption { left: 18px; right: 18px; bottom: 18px; }
  .dl-tile h3, .dl-mosaic li:first-child h3 { font-size: 24px; }
  .dl-tile p { display: none; }
  .dl-ideas { grid-template-columns: minmax(0,1fr); gap: 0; margin-top: 28px; }
  .dl-ideas li { padding: 18px 0; }
  .dl-ideas li:last-child { border-bottom: 1px solid var(--dl-line-light); }
  .dl-ideas li.has-img { grid-template-columns: minmax(0,1fr) 76px; align-items: center; }
  .dl-ideas li.has-img img { width: 76px; height: 76px; border-radius: 12px; }
  .dl-ideas h3 { font-size: 20px; }
  .dl-ideas p { font-size: 14px; }

  .dl-legend { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px 12px; border: 0; }
  .dl-legend li { padding: 0; border: 0; font-size: 13px; }
  .dl-legend b { width: 20px; height: 20px; font-size: 10px; line-height: 18px; }
  .dl-quote { font-size: 20px; padding-left: 18px; }
  .dl-pair { gap: 10px; }
  .dl-pair div { aspect-ratio: 4 / 5; border-radius: 14px; }

  .dl-qa summary { padding: 16px 0; font-size: 19px; }
  .dl-qa p { padding-bottom: 18px; font-size: 15px; }

  .dl-book { padding: 72px 0 120px; }
  .dl-form { padding: 26px 22px; border-radius: 20px; gap: 22px; }
  .dl-form__row { grid-template-columns: minmax(0,1fr); gap: 22px; }
  .dl-book__phone { margin-top: 24px; padding-top: 0; border-top: 0; }
  .dl-book__phone a { font-size: 26px; }
  .dl-book__legal { margin-top: 40px; }

  .dl-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; display: grid; grid-template-columns: minmax(0,1fr) 52px 52px; gap: 8px;
    padding: 10px 16px calc(14px + env(safe-area-inset-bottom)); background: rgba(8,23,41,.97); border-top: 1px solid rgba(232,212,139,.25);
    transform: translateY(110%); transition: transform .25s ease; }
  .dl-bar.is-on { transform: none; }
  .dl-bar a { display: flex; align-items: center; justify-content: center; height: 52px; border-radius: 12px; text-decoration: none; }
  .dl-bar__main { flex-direction: column !important; align-items: flex-start !important; padding: 0 16px; background: var(--dl-gold); color: var(--dl-navy); }
  .dl-bar__main b { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
  .dl-bar__main span { font-size: 12px; }
  .dl-bar a:not(.dl-bar__main) { border: 1px solid rgba(232,212,139,.4); color: var(--dl-gold-light); }
  body.page-dalian.dl-bar-on .chat-fab { bottom: 92px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .dl-gal__btn img, .dl-lb, .dl-lb__img { transition: none !important; }
  .dl *, .dl-bar { transition: none !important; scroll-behavior: auto !important; }
}
