@font-face {
  font-family: "Golos Text";
  src: url("/fonts/golos-text/GolosText.ttf") format("truetype");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}

:root,
:root[data-theme="light"] {
  --page: #f6f4ef;
  --card: #ffffff;
  --sunken: #edeae1;
  --ink: #182430;
  --muted: #5c6873;
  --faint: #8a94a0;
  --line: #e3dfd3;
  --line-strong: #e3dfd3;
  --accent: #1c4fd6;
  --accent-soft: #eaeffd;
  --on-accent: #ffffff;
  --green: #0a7f3f;
  --green-soft: #e8f6ee;
  --shadow-card: 0 10px 30px #1c2b3a14;
  --navy: #1c2b3a;
  --navy-card: #263747;
  --navy-line: #35495c;
  --navy-text: #b9c6d2;
  --sky: #9cc3e0;
  --bg: var(--page);
  --best: var(--green);
  --bestbg: var(--green-soft);
  color-scheme: light;
}

:root[data-theme="dark"] {
  --page: #111820;
  --card: #1a2530;
  --sunken: #233140;
  --ink: #e9e7e4;
  --muted: #a8adb5;
  --faint: #7d8894;
  --line: #2b3947;
  --line-strong: #3d5064;
  --accent: #6e94f0;
  --accent-soft: #22314a;
  --on-accent: #0d1522;
  --green: #77c297;
  --green-soft: #1d3328;
  --shadow-card: 0 10px 30px #00000059;
  --bg: var(--page);
  --best: var(--green);
  --bestbg: var(--green-soft);
  color-scheme: dark;
}

html.catalog-redesign {
  scroll-behavior: smooth;
}

.catalog-redesign body {
  margin: 0;
  background: var(--page);
  color: var(--muted);
  font: 400 16px/1.55 "Golos Text", system-ui, sans-serif;
}

.catalog-redesign a {
  color: var(--accent);
}

.catalog-brand {
  position: relative;
  z-index: 30;
  border-bottom: 1px solid var(--navy-line);
  background: var(--navy);
}

.catalog-brand > div {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 30px;
  width: min(1120px, calc(100% - 40px));
  max-width: none;
  min-height: 72px;
  margin: 0 auto;
  padding: 0;
}

.catalog-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}

.catalog-brand-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--sky);
  color: var(--navy);
}

.catalog-brand-mark svg {
  width: 18px;
  height: 18px;
  margin: 0;
}

.catalog-nav {
  display: flex;
  justify-content: center;
  gap: 26px;
}

.catalog-nav a,
.catalog-brand .lang a,
.catalog-brand .lang b {
  color: var(--navy-text);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.catalog-nav a:hover,
.catalog-brand .lang a:hover {
  color: #fff;
}

.catalog-brand .lang {
  float: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  color: var(--navy-text);
  font-size: 13px;
}

.catalog-brand .lang a,
.catalog-brand .lang b,
.catalog-brand .lang button {
  margin: 0;
}

.catalog-brand .lang b {
  color: #fff;
}

.catalog-brand .lang button {
  width: 38px;
  min-height: 38px;
  overflow: hidden;
  border-color: var(--navy-line);
  border-radius: 999px;
  color: #fff;
  white-space: nowrap;
}

.catalog-brand .lang button span {
  font-size: 0;
}

.catalog-brand .lang button span::before {
  font-size: 17px;
}

.catalog-brand .theme-to-dark::before {
  content: "☾";
}

.catalog-brand .theme-to-light::before {
  content: "☀";
}

.catalog-redesign .wrap {
  width: min(1120px, calc(100% - 40px));
  max-width: none;
  margin: 0 auto;
  padding: 56px 0 80px;
}

.catalog-redesign .catalog-page {
  padding-top: 0;
}

.catalog-eyebrow {
  margin: 0 0 14px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.catalog-redesign .catalog-page h1 {
  max-width: 840px;
  margin: 0 0 18px;
  color: var(--ink);
  font-size: 52px;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
}

.catalog-redesign .catalog-city-page h1 {
  font-size: 52px;
}

.catalog-home-title-line {
  display: block;
}

.catalog-redesign .catalog-intro {
  max-width: 700px;
  margin-bottom: 20px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
}

.catalog-trusts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 28px;
}

.catalog-chip,
.catalog-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--sunken);
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}

.catalog-badge--green {
  background: var(--green-soft);
  color: var(--green);
}

.catalog-redesign .catalog-search {
  padding: 22px;
  border: 1px solid var(--line-strong);
  border-top: 1px solid var(--line-strong);
  border-radius: 18px;
  background: var(--card);
  box-shadow: var(--shadow-card);
}

.catalog-redesign .catalog-search-grid {
  grid-template-columns: minmax(180px, 1.35fr) repeat(4, minmax(120px, 1fr)) minmax(170px, 1.1fr);
  gap: 14px;
}

.catalog-redesign .catalog-city-page .catalog-search-grid {
  grid-template-columns: repeat(4, minmax(120px, 1fr)) minmax(170px, 1.1fr);
}

.catalog-redesign .catalog-city-field,
.catalog-redesign .catalog-children {
  grid-column: auto;
}

.catalog-redesign .catalog-children {
  order: 0;
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.catalog-redesign .catalog-search-grid > .catalog-primary {
  order: 0;
}

.catalog-redesign .catalog-field,
.catalog-redesign .catalog-label {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}

.catalog-redesign .catalog-field input,
.catalog-redesign .catalog-field select,
.catalog-redesign .catalog-stepper,
.catalog-redesign .catalog-children select {
  border-color: var(--line-strong);
  border-radius: 10px;
  background: var(--sunken);
  color: var(--ink);
  font-family: inherit;
}

.catalog-redesign .catalog-primary {
  border-radius: 10px;
  background: var(--accent);
  color: var(--on-accent);
  font: 700 15px/1.4 "Golos Text", sans-serif;
}

.catalog-redesign .catalog-primary:hover {
  filter: brightness(1.08);
  background: var(--accent);
}

.catalog-redesign .catalog-section {
  margin: 56px 0;
}

.catalog-redesign .catalog-section h2 {
  margin-bottom: 20px;
  color: var(--ink);
  font-size: 32px;
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -0.015em;
}

.catalog-redesign .catalog-section h3 {
  color: var(--ink);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.catalog-seller-grid {
  grid-template-columns: 1fr;
  gap: 10px;
}

.catalog-seller {
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: var(--card);
  box-shadow: 0 4px 18px #0000000a;
}

.catalog-redesign .catalog-seller-link {
  min-height: 110px;
  padding: 18px 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.catalog-redesign .catalog-seller-link:hover {
  border-color: transparent;
  background: var(--sunken);
}

.catalog-redesign .catalog-seller--preview .catalog-seller-link,
.catalog-redesign .catalog-seller--preview .catalog-seller-link:hover {
  border-color: var(--line-strong);
  background: var(--card);
  cursor: default;
}

.catalog-redesign .catalog-seller-mark {
  border: 0;
  border-radius: 12px;
  color: #fff;
  font-size: 18px;
}

.catalog-seller-mark--ostrovok { background: #00a99d; }
.catalog-seller-mark--otello { background: #12a663; }
.catalog-seller-mark--yandex { background: #ffd22e; color: #1b1b1b !important; }
.catalog-seller-mark--sutochno { background: #3d332d; }
.catalog-seller-mark--ozon { background: #0058ff; }
.catalog-seller-mark--aviasales { background: #ff7a59; }
.catalog-seller-mark--tutu { background: #d9435f; }
.catalog-seller-mark--tripster { background: #8e6cef; }
.catalog-seller-mark--cherehapa { background: #2aa5a0; }

.catalog-seller-mark--aviasales,
.catalog-seller-mark--tutu,
.catalog-seller-mark--tripster,
.catalog-seller-mark--cherehapa {
  font-size: 0;
}

.catalog-redesign .catalog-seller-mark svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #fff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.catalog-redesign .catalog-seller-mark--aviasales svg {
  fill: #fff;
  stroke: none;
}

.catalog-redesign .catalog-seller-name {
  color: var(--ink);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.catalog-redesign .catalog-seller-subtitle {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}

.catalog-seller-transfer,
.catalog-seller-trait {
  display: block;
  margin-top: 5px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
}

.catalog-seller-transfer {
  color: var(--faint);
}

.catalog-seller-trait {
  color: var(--green);
}

.catalog-seller-trait--neutral {
  color: var(--muted);
}

.catalog-seller-actions {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
}

.catalog-open {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.catalog-redesign .catalog-ad {
  margin: 0;
  padding: 0 20px 14px 82px;
  color: var(--faint);
  font-size: 13px;
  line-height: 1.4;
}

.catalog-redesign .catalog-transfer {
  display: none;
}

.catalog-order-note {
  margin: 12px 2px 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}

.catalog-redesign .catalog-hint,
.catalog-small {
  font-size: 14px;
  line-height: 1.45;
}

.catalog-chip,
.catalog-badge,
.catalog-tiny {
  font-size: 13px;
  line-height: 1.4;
}

.catalog-redesign .catalog-steps {
  gap: 12px;
}

.catalog-redesign .catalog-steps li {
  display: block;
  min-height: 165px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--card);
}

.catalog-step-number {
  display: block;
  margin-bottom: 28px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.catalog-step-title {
  display: block;
  color: var(--ink);
  font-weight: 700;
}

.catalog-redesign .catalog-trip-tools,
.catalog-city-summary {
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--card);
}

.catalog-city-summary > [data-trip-summary-text] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.catalog-redesign .catalog-trip-tools {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 18px;
  align-items: center;
}

.catalog-redesign .catalog-trip-tools h2,
.catalog-redesign .catalog-trip-tools .catalog-hint,
.catalog-redesign .catalog-trip-tools [role="status"],
.catalog-redesign .catalog-trip-tools [data-saved-trips],
.catalog-redesign .catalog-trip-tools [data-copy-url],
.catalog-redesign .catalog-trip-tools [data-clear-trips] {
  grid-column: 1 / -1;
}

.catalog-redesign .catalog-trip-tools h2 {
  margin: 0;
  font-size: 20px;
}

.catalog-redesign .catalog-trip-tools button {
  border-color: var(--line-strong);
  border-radius: 10px;
  background: var(--sunken);
  font-family: inherit;
}

.catalog-redesign .catalog-cities {
  border: 0;
}

.catalog-redesign .catalog-cities > summary {
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 32px;
  font-weight: 800;
}

.catalog-redesign .catalog-cities > h2 {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.catalog-region-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.catalog-redesign .catalog-region {
  margin: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--card);
}

.catalog-redesign .catalog-region > summary {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 700;
}

.catalog-redesign .catalog-city-links {
  display: grid;
  margin-top: 10px;
  gap: 2px;
}

.catalog-redesign .catalog-city-links a {
  min-height: auto;
  padding: 2px 0;
  border: 0;
  background: transparent;
  font-size: 14px;
}

.catalog-info--navy {
  margin-right: calc((100vw - min(1120px, calc(100vw - 40px))) / -2);
  margin-left: calc((100vw - min(1120px, calc(100vw - 40px))) / -2);
  padding: 64px max(20px, calc((100vw - 1120px) / 2));
  border: 0;
  background: var(--navy);
  color: var(--navy-text);
}

.catalog-info--navy h2 {
  color: #fff !important;
}

.catalog-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.catalog-info-card {
  padding: 22px;
  border: 1px solid var(--navy-line);
  border-radius: 14px;
  background: var(--navy-card);
}

.catalog-info-card h3 {
  margin-top: 0 !important;
  color: #fff !important;
}

.catalog-redesign .catalog-city-back a {
  text-decoration: none;
}

.catalog-city-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
}

.catalog-summary-edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  margin-left: auto;
  padding: 6px 12px;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  background: transparent;
  color: var(--ink);
  font: 700 13px/1.4 "Golos Text", sans-serif;
  cursor: pointer;
}

.catalog-summary-edit:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.catalog-search[hidden] {
  display: none;
}

.catalog-child-stepper {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
  min-height: 44px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--sunken);
}

.catalog-child-stepper button {
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: 700 20px/1 "Golos Text", sans-serif;
}

.catalog-child-stepper output {
  text-align: center;
  color: var(--ink);
  font-weight: 700;
}

.catalog-redesign .catalog-trip {
  border-color: var(--line);
  background: var(--card);
}

.catalog-redesign .catalog-trip .catalog-seller-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.catalog-redesign .catalog-trip .catalog-seller-link {
  min-height: 82px;
}

.catalog-redesign footer.catalog-footer {
  margin: 0;
  border-top: 1px solid var(--navy-line);
  background: var(--navy);
  color: var(--navy-text);
  font-size: 13px;
}

.catalog-footer-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
  width: min(1120px, calc(100% - 40px));
  min-height: 92px;
  margin: 0 auto;
}

.catalog-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #fff;
  font-weight: 700;
}

.catalog-footer-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}

.catalog-footer-brand .catalog-brand-mark {
  width: 28px;
  height: 28px;
  border-radius: 8px;
}

.catalog-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 18px;
}

.catalog-footer-language {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 4px;
  font-size: 13px;
  font-weight: 700;
}

.catalog-footer-language b {
  color: #fff;
}

.catalog-footer a {
  color: var(--navy-text);
  text-decoration: none;
}

@media (max-width: 760px) {
  .catalog-brand > div {
    grid-template-columns: auto 1fr;
    width: min(100% - 28px, 1120px);
    min-height: 58px;
    gap: 12px;
  }

  .catalog-nav {
    display: none;
  }

  .catalog-brand .lang {
    justify-self: end;
  }

  .catalog-redesign .wrap {
    width: min(100% - 28px, 1120px);
    padding: 34px 0 56px;
  }

  .catalog-redesign .catalog-page h1,
  .catalog-redesign .catalog-city-page h1 {
    font-size: 38px;
    line-height: 1.05;
  }

  .catalog-redesign .catalog-search {
    padding: 14px;
  }

  .catalog-redesign .catalog-search-grid,
  .catalog-redesign .catalog-city-page .catalog-search-grid,
  .catalog-redesign .catalog-home-page .catalog-search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .catalog-redesign .catalog-city-field,
  .catalog-redesign .catalog-primary {
    grid-column: 1 / -1;
  }

  .catalog-redesign .catalog-guests {
    grid-column: auto;
  }

  .catalog-redesign .catalog-children {
    grid-column: auto;
    order: 0;
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }

  .catalog-redesign .catalog-section {
    margin: 38px 0;
  }

  .catalog-redesign .catalog-section h2,
  .catalog-redesign .catalog-cities > summary {
    font-size: 27px;
  }

  .catalog-redesign .catalog-seller-link {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 16px;
  }

  .catalog-redesign .catalog-seller-mark {
    align-self: flex-start;
  }

  .catalog-seller-actions {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: space-between;
    padding-left: 0;
  }

  .catalog-open {
    flex: 1;
    justify-content: center;
    width: 100%;
  }

  .catalog-redesign .catalog-ad {
    padding: 0 16px 14px;
  }

  .catalog-redesign .catalog-steps,
  .catalog-info-grid,
  .catalog-redesign .catalog-trip .catalog-seller-grid {
    grid-template-columns: 1fr;
  }

  .catalog-redesign .catalog-steps li {
    min-height: 0;
  }

  .catalog-step-number {
    margin-bottom: 18px;
  }

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

  .catalog-info--navy {
    margin-right: -14px;
    margin-left: -14px;
    padding: 46px 14px;
  }

  .catalog-footer-inner {
    grid-template-columns: 1fr;
    width: min(100% - 28px, 1120px);
    padding: 24px 0;
  }

  .catalog-footer-links {
    justify-content: flex-start;
  }

  .catalog-footer-language {
    margin-left: 0;
  }
}

@media (max-width: 380px) {
  .catalog-redesign .catalog-page h1,
  .catalog-redesign .catalog-city-page h1 {
    font-size: 34px;
  }

  .catalog-redesign .catalog-search-grid,
  .catalog-redesign .catalog-city-page .catalog-search-grid,
  .catalog-redesign .catalog-home-page .catalog-search-grid {
    grid-template-columns: 1fr;
  }

  .catalog-redesign .catalog-guests {
    grid-column: 1 / -1;
  }
}
