/* === pagination-scroll-focus.css === */
[data-pagination-content] {
  scroll-margin-top: var(--ziggy-scroll-offset, 96px);
}

/* === z-search-unified.css === */
/**
 * Unified portal search bars — same pill + circular CTA as homepage hero.
 * Use .z-search-inline on forms, maps, cabinet toolbars.
 */

/* ── Hero homepage: фиксируем размеры (style.css min-height 28px + font 1.33rem ломали pill) ── */
.homepage-hero-promo-stack .hero-search--homepage .search-box {
  display: flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  width: 100%;
  max-width: min(720px, 100%);
  margin: 0 auto;
  min-height: 52px !important;
  padding: 5px 5px 5px 1.15rem;
  border-radius: var(--z-radius-pill, 9999px);
  transform: none;
}

.homepage-hero-promo-stack .hero-search--homepage .search-box:hover {
  transform: none;
}

.homepage-hero-promo-stack .hero-search--homepage .search-input,
.homepage-hero-promo-stack .hero-search--homepage .z-search-field {
  flex: 1;
  min-width: 0;
  height: auto;
  padding: 0 !important;
  margin: 0;
  border: none !important;
  background: transparent !important;
  font-size: 1rem !important;
  line-height: 1.35;
  outline: none !important;
  box-shadow: none !important;
}

.homepage-hero-promo-stack .hero-search--homepage .search-input:focus,
.homepage-hero-promo-stack .hero-search--homepage .z-search-field:focus {
  background: transparent !important;
}

.homepage-hero-promo-stack .hero-search--homepage .search-icon-btn,
.homepage-hero-promo-stack .hero-search--homepage .search-icon-btn.btn-lg {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  padding: 0 !important;
  margin: 0;
  border-radius: 50% !important;
  flex-shrink: 0;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.homepage-hero-promo-stack .hero-search--homepage .search-icon-btn svg {
  width: 20px;
  height: 20px;
}

@media (max-width: 768px) {
  .homepage-hero-promo-stack .hero-search--homepage .search-box {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    min-height: 48px !important;
    padding: 4px 4px 4px 1rem;
    box-sizing: border-box;
  }

  .homepage-hero-promo-stack .hero-search--homepage .search-input,
  .homepage-hero-promo-stack .hero-search--homepage .z-search-field {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: max(16px, 1rem) !important;
  }

  .homepage-hero-promo-stack .hero-search--homepage .search-icon-btn,
  .homepage-hero-promo-stack .hero-search--homepage .search-icon-btn.btn-lg {
    width: var(--site-fab-orbit-size, 44px) !important;
    height: var(--site-fab-orbit-size, 44px) !important;
    min-width: var(--site-fab-orbit-size, 44px) !important;
    min-height: var(--site-fab-orbit-size, 44px) !important;
    flex: 0 0 var(--site-fab-orbit-size, 44px) !important;
  }
}

.z-search-inline,
.location-search-box.z-search-inline {
  display: flex;
  align-items: center;
  gap: 4px;
  box-sizing: border-box;
  width: 100%;
  min-height: 38px;
  padding: 2px 2px 2px 0.75rem;
  border-radius: var(--z-radius-pill, 9999px);
  border: 1px solid var(--z-border-soft, #dadce0);
  background: var(--z-surface-white);
  box-shadow: 0 1px 3px rgba(60, 64, 67, 0.08);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.z-search-inline:focus-within {
  border-color: rgba(61, 122, 153, 0.45);
  box-shadow: 0 0 0 2px rgba(61, 122, 153, 0.12);
}

.z-search-inline__input,
.z-search-inline .map-search-input,
.z-search-inline input[type="text"],
.z-search-inline input[type="search"] {
  flex: 1;
  min-width: 0;
  border: none !important;
  background: transparent !important;
  padding: 0.45rem 0.35rem !important;
  margin: 0;
  font-size: 0.9rem;
  font-family: inherit;
  color: var(--z-text-headline, var(--z-text-headline));
  outline: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.z-search-inline__input::placeholder,
.z-search-inline input::placeholder {
  color: var(--z-text-body, #5f6368);
}

/* Circular submit — matches hero .search-icon-btn */
.z-search-inline .search-icon-btn,
.location-search-box .map-search-btn.search-icon-btn {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  margin: 0;
  flex-shrink: 0;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  border: none !important;
  background: var(--z-action-primary, var(--z-brand-ocean)) !important;
  color: var(--z-surface-white) !important;
  box-shadow: 0 1px 3px rgba(61, 122, 153, 0.28);
  cursor: pointer;
  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.z-search-inline .search-icon-btn:hover,
.location-search-box .map-search-btn.search-icon-btn:hover {
  background: var(--z-action-primary-hover, var(--z-brand-ocean-dark)) !important;
  transform: none;
}

.z-search-inline .search-icon-btn svg,
.location-search-box .map-search-btn.search-icon-btn svg {
  display: block;
  width: 18px;
  height: 18px;
}

/* Toolbar variant: flex child in filter rows */
.listings-toolbar .z-search-inline,
.ba-search .z-search-inline {
  flex: 1 1 220px;
  min-width: 180px;
}

@media (max-width: 600px) {
  .location-search-box.z-search-inline {
    min-height: 34px;
    padding-left: 0.6rem;
  }

  .location-search-box.z-search-inline .z-search-inline__input {
    font-size: 0.82rem;
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
  }

  .location-search-box.z-search-inline .search-icon-btn {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
  }
}

/* === seo-content-block.css === */
/**
 * SEO content blocks — site-wide light Google style (same as homepage).
 * Used by templates/partials/_seo_content_block.html on all pages.
 */

.seo-about {
  padding: 0;
  overflow: hidden;
  background: transparent;
}

.seo-about + .footer {
  margin-top: 0;
}

/* ── Intro pillars — голубая полоса SEO (страница вокруг белая) ── */
.seo-about__intro {
  position: relative;
  background: var(--z-sl-ocean-soft, var(--z-brand-ocean-soft)) !important;
  color: var(--z-text-headline, var(--z-text-headline));
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  overflow: hidden;
}

.seo-about__intro-bg {
  display: none;
}

.seo-about__intro-header {
  text-align: center;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  position: relative;
  z-index: 1;
}

.seo-about__badge {
  display: inline-block;
  padding: 5px 18px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #046868;
  border: 1px solid rgba(4, 104, 104, 0.32);
  background: rgba(255, 255, 255, 0.9);
  margin-bottom: 14px;
}

.seo-about__headline {
  font-size: clamp(1.4rem, 2.35vw, 1.95rem);
  font-weight: 800;
  color: #0f172a !important;
  line-height: 1.22;
  margin: 0;
  letter-spacing: -0.02em;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95),
    0 1px 2px rgba(15, 23, 42, 0.07);
}

.seo-about__pillars {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  position: relative;
  z-index: 1;
}

.seo-about__pillar {
  background: var(--z-surface-white);
  border: 1px solid var(--z-border-soft, #dadce0);
  border-radius: 16px;
  padding: 28px 24px;
  box-shadow: 0 1px 3px rgba(60, 64, 67, 0.08);
  transition: transform 0.3s, box-shadow 0.3s;
  opacity: 0;
  transform: translateY(24px);
}

.seo-about__pillar.seo-revealed {
  opacity: 1;
  transform: translateY(0);
}

.seo-about__pillar:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 16px rgba(60, 64, 67, 0.12);
}

.seo-about__pillar-icon {
  width: 44px;
  height: 44px;
  background: var(--z-sl-saffron-soft, var(--z-brand-saffron-soft));
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  color: var(--z-sl-saffron, #d69d30);
}

.seo-about__pillar-text {
  font-size: 0.88rem;
  line-height: 1.65;
  color: var(--z-text-body, #5f6368);
  margin: 0;
}

/* ── FAQ — фон как у страницы, карточки белые для читаемости ── */
.seo-about__faq-wrap {
  background: var(--z-surface-page, var(--color-light, #f8f9fa));
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  margin-bottom: 0;
  padding-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.seo-about__faq-header {
  text-align: center;
  margin-bottom: clamp(1.35rem, 2.8vw, 2.1rem);
  max-width: min(64rem, 100%);
  margin-left: auto;
  margin-right: auto;
  padding: 0 0.5rem;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}

/* Title + subtitle always one line (no wrap) */
.seo-about__faq-title {
  position: relative;
  display: block;
  width: max-content;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(0.95rem, 2.1vw, 1.7rem);
  font-weight: 800;
  color: #0f172a !important;
  letter-spacing: -0.02em;
  line-height: 1.25;
  margin-bottom: 1rem;
  white-space: nowrap !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95),
    0 1px 2px rgba(15, 23, 42, 0.07);
}

.seo-about__faq-title::after {
  content: "";
  position: absolute;
  bottom: -9px;
  left: 50%;
  transform: translateX(-50%);
  width: 2.6rem;
  height: 2.5px;
  background: var(--z-brand-ocean, #0a7575);
  border-radius: 999px;
  opacity: 0.9;
}

.seo-about__faq-sub {
  display: block;
  width: max-content;
  max-width: none !important;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(0.8rem, 1.35vw, 1.08rem);
  font-weight: 600;
  color: #3c4043 !important;
  line-height: 1.45;
  letter-spacing: 0.01em;
  white-space: nowrap !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
}

.seo-about__faq-list {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.seo-faq-card {
  background: var(--z-surface-white);
  border-radius: 14px;
  border: 1px solid var(--z-border-soft, #dadce0);
  overflow: hidden;
  transition: border-color 0.25s, box-shadow 0.25s;
  opacity: 0;
  transform: translateY(20px);
}

.seo-faq-card.seo-revealed {
  opacity: 1;
  transform: translateY(0);
}

.seo-faq-card:hover {
  border-color: var(--z-gray-300);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.seo-faq-card.open,
.seo-faq-card.is-open {
  border-color: var(--color-primary, #3d7a99);
  box-shadow: 0 4px 24px rgba(61, 122, 153, 0.1);
}

.seo-faq-card__toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
}

.seo-faq-card__num {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--color-primary, #3d7a99);
  background: var(--z-sl-ocean-soft, var(--z-brand-ocean-soft));
  border: 1px solid rgba(61, 122, 153, 0.15);
}

.seo-faq-card__q {
  flex: 1;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--z-text-headline, var(--z-text-headline));
  line-height: 1.35;
}

.seo-faq-card__chevron {
  flex-shrink: 0;
  color: var(--z-text-dim);
  transition: transform 0.3s;
}

.seo-faq-card.open .seo-faq-card__chevron,
.seo-faq-card.is-open .seo-faq-card__chevron {
  transform: rotate(180deg);
  color: var(--color-primary, #3d7a99);
}

.seo-faq-card__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.seo-faq-card.open .seo-faq-card__body,
.seo-faq-card.is-open .seo-faq-card__body {
  max-height: 1200px;
}

.seo-faq-card__answer {
  padding: 0 20px 18px 64px;
  font-size: 0.86rem;
  line-height: 1.7;
  color: var(--z-text-body, #5f6368);
}

.seo-faq-card__answer p {
  margin: 0;
}

/* ── Comparison table ── */
.seo-compare {
  padding: 2rem 0;
  background: var(--z-surface-white);
  border-top: 1px solid var(--z-border-soft, #dadce0);
}

.seo-compare__title {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--z-text-headline, var(--z-text-headline));
  margin: 0 0 1rem;
}

.seo-compare__wrap {
  overflow-x: auto;
  border-radius: 12px;
  border: 1px solid var(--z-border-soft, #dadce0);
}

.seo-compare__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.seo-compare__table th,
.seo-compare__table td {
  padding: 0.65rem 0.85rem;
  text-align: left;
  border-bottom: 1px solid var(--z-gray-100);
}

.seo-compare__table th {
  background: var(--z-sl-ocean-soft, var(--z-brand-ocean-soft));
  font-weight: 700;
  color: var(--z-text-body, #5f6368);
}

.seo-compare__table tr:last-child td {
  border-bottom: none;
}

/* ── Inset variant (transport detail pages) ── */
.seo-about--inset {
  width: 100%;
  margin: 0;
  border-radius: 20px;
  border: 1px solid var(--z-border-soft, #dadce0);
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.07);
  overflow: hidden;
  background: var(--z-surface-white);
}

.seo-about--inset .seo-about__intro {
  padding: clamp(1.75rem, 3vw, 2.5rem) 0;
  border-radius: 20px 20px 0 0;
}

.seo-about--inset .seo-about__faq-wrap {
  padding: clamp(1.75rem, 3vw, 2.5rem) 0;
  background: var(--z-surface-page, var(--color-light, #f8f9fa));
}

.seo-about--inset .seo-about__pillars {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.seo-about--inset .seo-about__pillar {
  padding: 1.35rem 1.25rem;
}

.seo-about--inset .seo-about__faq-list {
  max-width: none;
  width: 100%;
}

.seo-about--inset .seo-faq-card__toggle {
  padding: 14px 18px;
}

.td-block-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 1.35rem;
  box-sizing: border-box;
}

/* SEO .container: stable gutters (global .container often only 8px on mobile) */
.seo-about > .seo-about__intro > .container,
.seo-about > .seo-about__faq-wrap > .container,
.seo-about > .seo-compare > .container {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--catalog-rail-max, var(--container-width, 1260px));
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(14px, 3.5vw, 24px);
  padding-right: clamp(14px, 3.5vw, 24px);
}

@media (max-width: 768px) {
  .seo-about__pillars {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .seo-about__pillar {
    padding: 20px 18px;
  }

  .seo-about__intro,
  .seo-about__faq-wrap {
    padding-top: clamp(2rem, 6vw, 2.75rem);
    padding-bottom: clamp(2rem, 6vw, 2.75rem);
  }

  .seo-faq-card__answer {
    padding: 0 16px 16px 16px;
  }

  .seo-faq-card__toggle {
    padding: 14px 16px;
    gap: 10px;
  }

  .seo-faq-card__q {
    font-size: 0.88rem;
    min-width: 0;
  }

  .seo-faq-card__num {
    width: 28px;
    height: 28px;
    font-size: 0.65rem;
  }

  .seo-about--inset {
    border-radius: 16px;
  }

  .seo-about--inset .seo-about__intro {
    border-radius: 16px 16px 0 0;
  }

  .td-block-inner {
    padding: 0 1rem;
  }
}

/* ── Дисклеймер актуальности — по центру; одна строка, перенос только если не влезает ── */
.zookzy-staleness-note {
  font-size: 0.72rem;
  line-height: 1.45;
  color: #94a3b8;
  margin: 1.35rem auto 0;
  padding: 0.85rem 0 0;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
  text-align: center;
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  text-wrap: pretty;
  hyphens: none;
  word-break: normal;
  overflow-wrap: normal;
}

/* === responsive-scaling.css === */
@media (min-width:900px) and (max-width:1279px) and (max-height:449px){.header{background:var(--color-white)!important}.nav-container{max-width:var(--container-width)!important;width:calc(100% - 2 * var(--container-px))!important;margin:0 auto!important;padding:0!important;height:52px!important;display:flex!important;justify-content:space-between!important}.nav-menu{justify-content:space-evenly!important;gap:0!important}.nav-link{font-size:0.68rem!important;letter-spacing:-0.01em!important;padding:0.3rem 0.5rem!important}.nav-actions{gap:0.25rem!important}.btn-sm{padding:0.3rem 0.45rem!important;font-size:0.64rem!important}.lang-btn,.country-select{padding:0.2rem 0.35rem!important;font-size:0.6rem!important}.country-select{min-width:75px!important}.hero{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;text-align:center!important;padding-top:2.5rem!important;padding-bottom:0.5rem!important}.hero-content{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important}.hero-title{font-size:1.1rem!important;font-weight:800!important;line-height:1.15!important;letter-spacing:-0.01em!important;margin-bottom:0.3rem!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}.hero-subtitle{font-size:0.42rem!important;line-height:1.2!important;margin-bottom:0.5rem!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;color:rgba(0,0,0,0.5)!important}.search-box{min-height:44px!important;max-width:520px!important;padding:3px!important;padding-left:1rem!important;border-radius:22px!important;display:flex!important;align-items:center!important;background:var(--color-white)!important;box-shadow:0 6px 20px rgba(0,0,0,0.06)!important}.search-input{font-size:0.72rem!important;flex:1!important;height:100%!important}.search-box button{height:36px!important;width:36px!important;border-radius:50%!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;background:var(--color-primary)!important;color:var(--color-white)!important;flex-shrink:0!important;transition:transform 0.2s ease!important}.search-box button svg{width:16px!important;height:16px!important;stroke:white!important}.search-box button:hover{transform:scale(1.05);background:var(--color-primary-dark)!important}.hero-stats{margin-top:0.8rem!important;gap:0.5rem!important}.stat-item{width:120px!important;height:60px!important;padding:0.5rem!important;border-radius:6px!important}.stat-number{font-size:0.85rem!important}.stat-label{font-size:0.5rem!important}.promo-banners-section{padding-top:0.5rem!important;padding-bottom:0.5rem!important;margin-bottom:0!important}.promo-banner{min-height:70px!important;padding:0.5rem 0.8rem!important}.promo-banner-title{font-size:1.1rem!important;margin-bottom:0.1rem!important}.promo-banner-description{font-size:0.75rem!important}.site-fab-stack{right:24px!important;bottom:24px!important;left:auto!important;top:auto!important;width:65px;gap:14px}.site-fab-stack .ai-guide-widget{position:relative!important;bottom:auto!important;right:auto!important;top:auto!important;left:auto!important;transform:none!important}.site-fab,.site-fab-stack .ai-guide-widget{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;max-height:48px!important}.site-fab__emoji{font-size:2rem!important;line-height:1!important}.breadcrumbs{padding:0.5rem 0!important;font-size:0.65rem!important;margin-bottom:0.5rem!important}.category-tabs-wrapper{top:60px!important;padding:0.5rem 0!important}.category-tab{padding:0.3rem 0.6rem!important;font-size:0.7rem!important;gap:0.3rem!important}.category-tab img{width:14px!important;height:14px!important}.filter-bar{padding:0.6rem 0.8rem!important;gap:0.8rem!important;margin-bottom:1rem!important;border-radius:8px!important}.filter-group label{font-size:0.65rem!important;font-weight:700!important}.filter-select{height:32px!important;font-size:0.7rem!important;padding:0 0.5rem!important;border-radius:6px!important}.filter-checkbox-group{font-size:0.65rem!important;gap:0.5rem!important}.category-grid{gap:0.75rem!important}.category-card{padding:1.2rem 1rem!important;min-height:220px!important;border-radius:16px!important;border:1px solid rgba(0,0,0,0.05)!important}.category-icon{width:72px!important;height:72px!important;margin-bottom:1rem!important}.category-icon img{width:38px!important;height:38px!important}.category-title{font-size:1.05rem!important;margin-bottom:0.3rem!important;font-weight:700!important}.category-description{font-size:0.75rem!important;line-height:1.3!important;margin-bottom:0.5rem!important}.category-count{font-size:0.7rem!important;margin-top:auto!important}.services-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0.8rem!important}.card{border-radius:12px!important;overflow:hidden!important;min-height:auto!important;background:var(--color-white)!important;border:1px solid rgba(0,0,0,0.06)!important;box-shadow:0 10px 25px -10px rgba(0,0,0,0.05)!important;display:flex!important;flex-direction:column!important;transition:transform 0.3s ease!important}.card-image{aspect-ratio:1 / 1!important;min-height:auto!important;aspect-ratio:1 / 1!important;min-height:0!important;max-height:none!important;width:100%!important;object-fit:cover!important}.card-content{padding:0.8rem!important;flex-grow:1!important;display:flex!important;flex-direction:column!important}.card-title{font-size:0.95rem!important;margin-bottom:0.35rem!important;line-height:1.25!important;font-weight:700!important;color:var(--color-dark)!important}.card-text{font-size:0.75rem!important;line-height:1.4!important;margin-bottom:0.8rem!important;color:rgba(0,0,0,0.6)!important;-webkit-line-clamp:2!important;line-clamp:2!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;overflow:hidden!important}.card-footer{padding-top:0.6rem!important;border-top:1px solid rgba(0,0,0,0.04)!important;margin-top:auto!important}.price-val{font-size:1.1rem!important;font-weight:800!important}.card .btn{padding:0.5rem!important;font-size:0.75rem!important;height:36px!important;font-weight:600!important}.homepage-news-card{min-height:340px!important;height:auto!important}.homepage-news-card .card-image-wrapper{height:auto!important;aspect-ratio:1 / 1!important;min-height:0!important;max-height:none!important}.news-main-grid{gap:1rem!important}.news-card-featured .card-title,.featured-content h2{font-size:1.35rem!important;line-height:1.1!important}.news-card-featured .card-text,.featured-content p{font-size:0.85rem!important}.news-side-grid .card-title,.featured-news h4{font-size:0.9rem!important;margin-bottom:0.2rem!important}section[style*="background: var(--gradient-primary)"] h2{font-size:1.4rem!important}section[style*="background: var(--gradient-primary)"] p{font-size:0.85rem!important;margin-bottom:1.2rem!important}section[style*="background: var(--gradient-primary)"] .btn-lg{padding:0.6rem 1.2rem!important;font-size:0.85rem!important}.section{padding:1.5rem 0!important}.section-title{font-size:1.2rem!important;margin-bottom:0.3rem!important}.section-description{font-size:0.7rem!important;margin-bottom:1rem!important}.promo-banners-section~section,.promo-banners-section~.section{display:block!important}.footer{display:block!important;padding:2rem 0 max(1.25rem,calc(0.75rem + env(safe-area-inset-bottom,0px)))!important;overflow:visible!important}.footer-content{grid-template-columns:repeat(4,1fr)!important;gap:1rem!important}.footer-section .footer-heading{font-size:0.85rem!important;margin-bottom:0.6rem!important}.footer-links a,.footer-content p,.footer-bottom p{font-size:0.7rem!important}}@media (min-width:1280px) and (max-width:1439px) and (max-height:449px){.nav-container,.container,.news-container,.tours-container{max-width:95vw!important}.header{height:60px}.logo{font-size:1.3rem}.hero{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding-top:1.5rem!important}.hero-content{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important}.hero-title{font-size:1.2rem!important;font-weight:800!important;letter-spacing:-0.01em!important;margin-bottom:0.35rem!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}.hero-subtitle{font-size:0.42rem!important;line-height:1.2!important;margin-bottom:0.7rem!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;color:rgba(0,0,0,0.5)!important}.search-box{min-height:54px!important;max-width:65vw!important;border-radius:27px!important}.search-box button{height:46px!important;width:46px!important;border-radius:50%!important}}@media (min-width:1440px) and (max-width:1919px) and (max-height:449px){.nav-container,.container,.news-container,.tours-container{max-width:1320px!important}.hero{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding-top:1.8rem!important}.hero-content{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important}.hero-title{font-size:1.35rem!important;font-weight:800!important;letter-spacing:-0.01em!important;margin-bottom:0.4rem!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}.hero-subtitle{font-size:0.48rem!important;line-height:1.2!important;margin-bottom:0.9rem!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;color:rgba(0,0,0,0.5)!important}.search-box{min-height:58px!important;max-width:62vw!important;border-radius:29px!important}.search-box button{height:50px!important;width:50px!important;border-radius:50%!important}}@media (min-width:1920px) and (max-width:2559px) and (max-height:449px){.nav-container{max-width:1400px!important;height:75px!important;margin:0 auto!important}.nav-link{font-size:0.95rem!important;font-weight:500!important;padding:0.5rem 1rem!important}.logo-text{font-size:1.6rem!important;font-weight:800!important}.hero{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding-top:2.5rem!important;padding-bottom:3rem!important}.hero-content{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important}.hero-title{font-size:1.65rem!important;font-weight:800!important;letter-spacing:-0.02em!important;margin-bottom:0.5rem!important;line-height:1.15!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}.hero-subtitle{font-size:0.55rem!important;line-height:1.2!important;margin-bottom:1.2rem!important;white-space:nowrap!important;width:fit-content!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;color:rgba(0,0,0,0.5)!important}.search-box{min-height:64px!important;max-width:960px!important;padding:5px!important;padding-left:2rem!important;border-radius:32px!important;box-shadow:0 15px 40px -10px rgba(0,0,0,0.08)!important;background:var(--color-white)!important;display:flex!important;align-items:center!important}.search-input{font-size:1.05rem!important;color:var(--color-dark)!important}.search-box button{height:54px!important;width:54px!important;border-radius:50%!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;background:var(--color-primary)!important;color:white!important;flex-shrink:0!important;box-shadow:0 4px 12px rgba(0,0,0,0.1)!important}.search-box button svg{width:26px!important;height:26px!important;stroke-width:3px!important}.hero-stats{margin-top:4rem!important;gap:3rem!important}.stat-item{width:240px!important;height:auto!important;aspect-ratio:1 / 1!important;min-height:0!important;max-height:none!important;padding:2rem!important;border-radius:24px!important}.stat-number{font-size:1.8rem!important;font-weight:800!important}.stat-label{font-size:0.9rem!important;font-weight:500!important}.promo-banners-section{padding-top:2rem!important;padding-bottom:3rem!important}.promo-banner{min-height:auto!important;aspect-ratio:1 / 1!important;min-height:0!important;max-height:none!important;padding:2rem 2.5rem!important;border-radius:20px!important}.promo-banner-title{font-size:1.4rem!important;font-weight:700!important}.promo-banner-description{font-size:1rem!important}.container,.news-container,.tours-container{max-width:1400px!important}}@media (min-width:2560px) and (max-height:449px){.nav-container,.container,.news-container,.tours-container,.hero .container{max-width:1800px!important;margin:0 auto!important}.hero{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}.hero-content{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;width:100%!important}.hero-title{font-size:2rem!important;letter-spacing:-0.02em!important;font-weight:800!important;width:fit-content!important;max-width:95vw!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;white-space:nowrap!important}.hero-subtitle{font-size:0.65rem!important;width:fit-content!important;max-width:95vw!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;white-space:nowrap!important;color:rgba(0,0,0,0.5)!important;margin-bottom:1.5rem!important}.nav-container .nav-menu{justify-content:space-evenly;gap:0}}
/* РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’
   LANDSCAPE PHONES: 568РІР‚вЂњ899px width Р“вЂ” РІвЂ°В¤449px height
   iPhone SE landscape (568Р“вЂ”320), iPhone 15 Pro (852Р“вЂ”393),
   Galaxy S24 (876Р“вЂ”432), Galaxy S24 Ultra (926Р“вЂ”432 РІвЂ вЂ™ above 900 handled)
   Added 2026-06-26 РІР‚вЂќ responsive audit
   РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’РІвЂўС’ */

@media (min-width: 568px) and (max-width: 899px) and (max-height: 449px) {
    /* РІвЂќР‚РІвЂќР‚ Header: compact landscape РІвЂќР‚РІвЂќР‚ */
    .header {
        background: var(--color-white) !important;
    }

    .nav-container {
        height: 44px !important;
        padding: 0 0.5rem !important;
        display: flex !important;
        align-items: center !important;
    }

    .mobile-menu-toggle {
        display: flex !important;
    }

    .nav-menu {
        display: none !important;
    }

    .nav-menu.active {
        display: flex !important;
    }

    .nav-link {
        font-size: 0.62rem !important;
        padding: 0.25rem 0.35rem !important;
    }

    /* РІвЂќР‚РІвЂќР‚ Hero: ultra-compact landscape РІвЂќР‚РІвЂќР‚ */
    .hero {
        min-height: auto !important;
        padding-top: calc(44px + 0.5rem) !important;
        padding-bottom: 0.5rem !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
    }

    .hero-content {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }

    .hero-title {
        font-size: 0.95rem !important;
        font-weight: 800 !important;
        white-space: nowrap !important;
        margin-bottom: 0.2rem !important;
    }

    .hero-subtitle {
        font-size: 0.55rem !important;
        white-space: nowrap !important;
        margin-bottom: 0.35rem !important;
    }

    .search-box {
        min-height: 38px !important;
        max-width: 440px !important;
        border-radius: 19px !important;
        padding: 2px !important;
        padding-left: 0.75rem !important;
    }

    .search-input {
        font-size: 0.68rem !important;
    }

    .search-box button {
        height: 32px !important;
        width: 32px !important;
        border-radius: 50% !important;
    }

    .search-box button svg {
        width: 14px !important;
        height: 14px !important;
    }

    /* РІвЂќР‚РІвЂќР‚ Stats: inline micro РІвЂќР‚РІвЂќР‚ */
    .hero-stats {
        gap: 0.4rem !important;
        margin-top: 0.5rem !important;
    }

    .stat-item {
        width: 95px !important;
        height: 48px !important;
        padding: 0.3rem !important;
        border-radius: 6px !important;
    }

    .stat-number {
        font-size: 0.72rem !important;
    }

    .stat-label {
        font-size: 0.42rem !important;
    }

    /* РІвЂќР‚РІвЂќР‚ Grid: 2-column in landscape phones РІвЂќР‚РІвЂќР‚ */
    .category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.5rem !important;
    }

    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.5rem !important;
    }

    .category-card {
        min-height: 140px !important;
        padding: 0.6rem !important;
    }

    .category-icon {
        width: 42px !important;
        height: 42px !important;
    }

    .category-title {
        font-size: 0.78rem !important;
    }

    .category-description {
        display: none !important;
    }

    /* РІвЂќР‚РІвЂќР‚ Cards: compact landscape РІвЂќР‚РІвЂќР‚ */
    .card-content {
        padding: 0.5rem !important;
    }

    .card-title {
        font-size: 0.78rem !important;
    }

    .card-text {
        font-size: 0.62rem !important;
        -webkit-line-clamp: 2 !important;
        line-clamp: 2 !important;
    }

    /* РІвЂќР‚РІвЂќР‚ Sections РІвЂќР‚РІвЂќР‚ */
    .section {
        padding: 0.8rem 0 !important;
    }

    .section-title {
        font-size: 1rem !important;
    }

    .section-description {
        font-size: 0.6rem !important;
    }

    /* РІвЂќР‚РІвЂќР‚ Promo banners РІвЂќР‚РІвЂќР‚ */
    .promo-banners-section {
        padding-top: 0.3rem !important;
        padding-bottom: 0.3rem !important;
    }

    .promo-banners-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.4rem !important;
    }

    .promo-banner {
        min-height: 55px !important;
        padding: 0.3rem 0.5rem !important;
    }

    .promo-banner-title {
        font-size: 0.82rem !important;
    }

    .promo-banner-description {
        font-size: 0.6rem !important;
    }

    /* РІвЂќР‚РІвЂќР‚ Footer: 2-column compact РІвЂќР‚РІвЂќР‚ */
    .footer-content {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.6rem !important;
    }

    .footer-section .footer-heading {
        font-size: 0.72rem !important;
    }

    .footer-links a,
    .footer-content p {
        font-size: 0.6rem !important;
    }

    /* РІвЂќР‚РІвЂќР‚ FAB РІвЂќР‚РІвЂќР‚ */
    .site-fab-stack {
        right: 12px !important;
        bottom: 8px !important;
        gap: 6px !important;
    }

    .site-fab,
    .site-fab-stack .ai-guide-widget {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
    }
}

/* === large-screens.css === */
@media (max-width:768px){:root{font-size:16px!important}}@media (min-width:1400px) and (max-width:1919px){.ai-guide-chat:not(.ai-guide-chat--custom-size){width:28rem!important;height:38rem!important;max-height:calc(100vh - 120px)!important}.chat-message.bot .message-bubble p{margin-bottom:0.75rem!important}.chat-message.bot .message-bubble p+p{margin-top:0.75rem!important;padding-top:0.4rem!important;border-top:1px solid rgba(0,0,0,0.06)!important}}@media (min-width:1400px){.homepage-news-card .card-title,.news-container .card-title{min-height:0!important;margin-bottom:0.25rem!important;font-size:1.375rem!important}.homepage-news-card .card-text,.news-container .card-text{min-height:0!important;font-size:1rem!important}}@media (min-width:1920px){.ai-guide-chat:not(.ai-guide-chat--custom-size){width:30rem!important;height:40rem!important;max-height:calc(100vh - 80px)!important}.chat-message.bot .message-bubble p{margin-bottom:0.85rem!important}.chat-message.bot .message-bubble p+p{margin-top:0.85rem!important;padding-top:0.5rem!important;border-top:1px solid rgba(0,0,0,0.06)!important}body .homepage-news-card .card-title,body .news-container .card-title{font-size:1.5rem!important}body .homepage-news-card .card-text,body .news-container .card-text{font-size:1.14rem!important;line-height:1.5!important}}@media (min-width:2000px){.nav-container,.container,.page-header-context .container,.promo-banners-section .container,.rental-container,.news-container,.tours-container,.services-container,.hero .container,.footer-content{max-width:1750px!important;padding-left:var(--container-px)!important;padding-right:var(--container-px)!important}.nav-container{height:var(--header-h)!important}.nav-link{font-size:0.9625rem!important}.hero{}.category-tabs-wrapper{top:var(--header-h)!important}.hero-search{max-width:1300px!important}.btn-lg.search-icon-btn{width:80px!important;height:80px!important;max-width:80px!important;max-height:80px!important;aspect-ratio:1 / 1!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;min-width:80px!important;min-height:80px!important;flex-shrink:0!important}.search-icon-btn svg{width:32px!important;height:32px!important;min-width:32px!important;display:block!important}body .services-grid .card-image,body .card .card-image,.card-image{width:100%!important;aspect-ratio:1 / 1!important;object-fit:cover!important}body .services-grid .card,body .card:not(.homepage-news-card):not(.contact-card){height:auto!important;min-height:440px!important;display:flex;flex-direction:column}body .services-grid .card .card-image,body .card:not(.homepage-news-card):not(.contact-card) .card-image{aspect-ratio:1 / 1!important;width:100%!important;object-fit:cover!important}body .card:not(.homepage-news-card):not(.contact-card) .card-content{padding:0.625rem 1.5rem 0.75rem 1.5rem!important;flex:1;display:flex;flex-direction:column}body .card:not(.homepage-news-card):not(.contact-card) .card-title{margin-bottom:0.5rem!important}body .card:not(.homepage-news-card):not(.contact-card) .card-text{margin-bottom:0.75rem!important;line-height:1.4!important}body .card:not(.homepage-news-card):not(.contact-card) .card-footer{margin-top:auto!important;padding-top:1.5vh!important;padding-bottom:0!important}body .card:not(.homepage-news-card):not(.contact-card) .btn{margin-top:1rem!important;margin-bottom:0!important;min-height:48px!important}.homepage-news-card .card-image-wrapper,.news-container .card-image-wrapper{height:auto!important;aspect-ratio:1 / 1!important;min-height:0!important;max-height:none!important}.homepage-news-card .card-image,.news-container .card-image{height:100%!important;min-height:100%!important}body .homepage-news-card{display:flex!important;flex-direction:column!important;height:100%!important}body .homepage-news-card .card-content{display:flex!important;flex-direction:column!important;padding:1.25rem 1.5rem!important;flex:1!important}body .homepage-news-card .card-text{margin-bottom:2rem!important}body .homepage-news-card .news-date{margin-top:auto!important;display:block!important}body .homepage-news-card .card-title,body .news-container .card-title{font-size:1.5rem!important}body .homepage-news-card .card-text,body .news-container .card-text{font-size:1.14rem!important;line-height:1.5!important}body .featured-side-cards .homepage-news-card .card-content{padding:0 0.5rem!important;gap:0!important;justify-content:flex-start!important}html body .featured-side-cards .homepage-news-card .card-title,html body .featured-side-cards .card-title{font-size:1rem!important;line-height:1.15!important;margin:0!important}html body .featured-side-cards .homepage-news-card .card-text,html body .featured-side-cards .card-text{font-size:0.8125rem!important;line-height:1.2!important;margin:0!important}body .featured-side-cards .homepage-news-card .news-date{font-size:0.6rem!important;margin:0!important}.country-select{min-width:180px!important;height:45px!important}.btn{min-height:48px}footer,.footer{padding-top:var(--section-gap-v)!important}.footer-content{gap:60px!important}.footer .footer-heading{font-size:1em!important}.footer-content p,.footer-bottom p{font-size:1em!important}.footer-links{font-size:1em!important}.footer-links a{font-size:1em!important}.footer-bottom{font-size:0.9em!important}.auth-container{min-height:calc(100vh - 80px)!important;padding-top:4rem!important}.auth-card{max-width:540px!important}.auth-header h1{font-size:2.2rem!important}.container-narrow{max-width:1200px!important}.profile-form-container{max-width:800px!important}.profile-container{max-width:1600px!important;padding-top:100px!important}.profile-layout{grid-template-columns:320px 1fr!important;gap:40px!important}.profile-sidebar{top:100px!important}.avatar-circle{width:100px!important;height:100px!important;font-size:2.5rem!important}input.form-control,select.form-control,textarea.form-control{padding:1rem 1.25rem!important;font-size:1.1rem!important;min-height:56px!important}textarea.form-control{height:auto!important}.btn-lg{font-size:1.25rem!important;padding:1.25rem 2.5rem!important}.category-tabs-wrapper{padding:0!important}.category-tabs-container{padding:0.6rem var(--container-px)!important;gap:0.25rem!important}.category-tab{font-size:0.75rem!important;padding:0.2rem 0.5rem!important;min-height:28px!important;gap:0.25rem!important}.category-tab .count{font-size:0.69rem!important}.filter-controls{gap:2rem!important;justify-content:flex-start!important;padding:0!important}.filter-group-inline label{font-size:0.86rem!important}.filter-select{height:37px!important;padding:0 0.86rem!important;font-size:0.86rem!important}.category-grid,.services-grid,.promo-banners-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:clamp(1rem,2vw,2.5rem)!important;width:100%!important;max-width:none!important}.promo-banners-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.services-grid .card{height:auto!important;min-height:320px!important;display:flex!important;flex-direction:column!important}.services-grid .card-image{aspect-ratio:1 / 1!important;width:100%!important;height:auto!important}.services-grid .card-content{flex:1!important;display:flex!important;flex-direction:column!important}.services-grid .card-footer{margin-top:auto!important;padding-top:1.5rem!important}.hero-stats{gap:60px!important}.stat-item{}.stat-number{}.category-card{padding:1.5rem!important;padding-bottom:0!important;min-height:450px!important}.category-icon{width:120px!important;height:120px!important;margin-top:2.5rem!important;margin-bottom:2rem!important}.category-tabs-container{max-width:1750px!important}.ai-guide-chat:not(.ai-guide-chat--custom-size){width:30rem!important;height:40rem!important;max-height:calc(100vh - 120px)!important}}@media (min-width:2560px){body .homepage-news-card .card-title,body .news-container .card-title{font-size:1.65rem!important}body .homepage-news-card .card-text,body .news-container .card-text{font-size:1.3rem!important;line-height:1.55!important}html body .featured-side-cards .homepage-news-card .card-title,html body .featured-side-cards .card-title{font-size:1.25rem!important}html body .featured-side-cards .homepage-news-card .card-text,html body .featured-side-cards .card-text{font-size:0.975rem!important}}@media (min-width:3800px){.nav-container,.container,.category-tabs-container{max-width:2400px!important}.nav-container{height:100px!important}.hero{}.category-tabs-wrapper{top:100px!important}}

/* === desktop-unified.css === */
@media (min-width:1024px) and (max-width:1279px){:root{--desktop-container:var(--container-width,clamp(900px,73vw,1400px));--desktop-padding:var(--container-px,clamp(1rem,2vw,2.5rem));--desktop-gap:1rem;--section-padding-y:2rem;--section-margin-y:1.5rem;--title-scale:1.6rem;--subtitle-scale:0.9rem;--body-scale:0.875rem;--small-scale:0.75rem;--card-gap:0.875rem;--card-padding:1rem;--card-radius:0.75rem}}@media (min-width:1280px) and (max-width:1599px){:root{--desktop-container:var(--container-width,clamp(900px,73vw,1400px));--desktop-padding:var(--container-px,clamp(1rem,2vw,2.5rem));--desktop-gap:1.25rem;--section-padding-y:2.5rem;--section-margin-y:2rem;--title-scale:1.8rem;--subtitle-scale:1rem;--body-scale:0.95rem;--small-scale:0.8rem;--card-gap:1.25rem;--card-padding:1.25rem;--card-radius:1rem}}@media (min-width:1600px) and (max-width:1999px){:root{--desktop-container:var(--container-width,clamp(900px,73vw,1400px));--desktop-padding:var(--container-px,clamp(1rem,2vw,2.5rem));--desktop-gap:1.5rem;--section-padding-y:3rem;--section-margin-y:2.5rem;--title-scale:2rem;--subtitle-scale:1.1rem;--body-scale:1rem;--small-scale:0.85rem;--card-gap:1.5rem;--card-padding:1.5rem;--card-radius:1.25rem}}@media (min-width:2000px){:root{--desktop-container:1340px;--desktop-padding:var(--container-px,clamp(1rem,2vw,2.5rem));--desktop-gap:1.5rem;--section-padding-y:3rem;--section-margin-y:2.5rem;--title-scale:2rem;--subtitle-scale:1.1rem;--body-scale:1rem;--small-scale:0.85rem;--card-gap:1.5rem;--card-padding:1.5rem;--card-radius:1.25rem}}@media (min-width:1024px){.container,.news-container,.tours-container,.services-container,.rental-container,.promo-banners-section .container,.hero .container,.footer-content,.footer .footer-regulatory{max-width:var(--desktop-container)!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important;width:100%!important}.section{padding-top:var(--section-padding-y)!important;padding-bottom:var(--section-padding-y)!important}}@media (min-width:1024px){.header{position:fixed;top:0;left:0;right:0;z-index:1030;background:rgba(255,255,255,0.98);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,0.05)}.nav-container{height:clamp(58px,6vh,80px)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;max-width:1340px!important;padding-left:24px!important;padding-right:24px!important;margin-left:auto!important;margin-right:auto!important;width:100%!important}.logo{font-size:clamp(1.1rem,1.3vw,1.5rem)}.logo-text{font-size:clamp(1.1rem,1.3vw,1.5rem)!important}.nav-menu:not(.nav-main-rail){display:flex;align-items:center;justify-content:flex-start!important;gap:clamp(0.2rem,0.55vw,0.65rem)!important;margin-left:clamp(0.45rem,0.9vw,1rem)!important;flex:0 1 auto!important}.nav-link{font-size:clamp(0.68rem,0.74vw,0.82rem)!important;padding:clamp(0.28rem,0.35vw,0.42rem) clamp(0.35rem,0.45vw,0.55rem)!important;white-space:nowrap;font-weight:500;min-width:0!important}.nav-actions{display:flex;align-items:center;gap:clamp(0.4rem,0.7vw,1rem)!important}.lang-btn{padding:clamp(0.2rem,0.35vw,0.4rem) clamp(0.35rem,0.6vw,0.75rem)!important;font-size:clamp(0.6rem,0.7vw,0.8rem)!important}.country-select{min-width:clamp(90px,9vw,150px)!important;padding:clamp(0.25rem,0.4vw,0.4rem) clamp(0.4rem,0.6vw,0.8rem)!important;font-size:clamp(0.6rem,0.7vw,0.8rem)!important}.btn-sm{padding:clamp(0.2rem,0.3vw,0.4rem) clamp(0.4rem,0.5vw,0.8rem)!important;font-size:clamp(0.55rem,0.6vw,0.75rem)!important;max-height:32px!important}}@media (min-width:1024px){.hero{min-height:clamp(50vh,60vh,70vh)!important;display:flex!important;align-items:center!important;justify-content:center!important;padding-top:calc(clamp(60px,6vh,85px) + clamp(2rem,4vw,4rem))!important;padding-bottom:clamp(1.5rem,3vw,3rem)!important;padding-left:clamp(2rem,5vw,8rem)!important;padding-right:clamp(2rem,5vw,8rem)!important;text-align:center!important;width:100%!important;box-sizing:border-box!important}.hero-content{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;max-width:clamp(800px,80vw,1400px)!important;width:100%!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}.hero-title{font-size:clamp(1.5rem,2.2vw,2.4rem)!important;font-weight:800!important;line-height:1.15!important;letter-spacing:-0.02em!important;margin-bottom:clamp(0.5rem,1vw,1.2rem)!important;color:var(--color-dark)!important;text-align:center!important;width:fit-content!important;display:block!important;margin-left:auto!important;margin-right:auto!important;white-space:nowrap!important}.hero-subtitle{font-size:clamp(0.55rem,0.7vw,0.85rem)!important;line-height:1.4!important;color:rgba(0,0,0,0.5)!important;margin-bottom:clamp(1.2rem,2.5vw,3rem)!important;max-width:none!important;width:fit-content!important;display:block!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;white-space:nowrap!important}.hero-search{width:100%!important;display:flex!important;justify-content:center!important;align-items:center!important;margin:0 auto clamp(0.9rem,1.8vw,2.2rem)!important}.search-box{width:100%!important;max-width:clamp(516px,65.52vw,1123px)!important;padding:2px 2px 2px clamp(0.5rem,1vw,1rem)!important;border-radius:clamp(20px,2.2vw,28px)!important;box-shadow:0 10px 40px -10px rgba(0,0,0,0.12)!important;margin-left:auto!important;margin-right:auto!important;align-items:center!important}.search-input{font-size:clamp(0.85rem,1vw,1.1rem)!important;min-height:3em!important;padding:0.35em 0!important;line-height:1.4!important}.search-icon-btn,.search-box button{width:clamp(28px,2.8vw,40px)!important;height:clamp(28px,2.8vw,40px)!important;min-width:clamp(28px,2.8vw,40px)!important;min-height:clamp(28px,2.8vw,40px)!important;aspect-ratio:1 / 1!important;border-radius:50%!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}.search-icon-btn svg,.search-box button svg{width:clamp(14px,1.4vw,20px)!important;height:clamp(14px,1.4vw,20px)!important}.hero-stats{display:flex!important;justify-content:center!important;gap:clamp(0.75rem,2vw,3rem)!important;margin-top:clamp(1.5rem,3vw,4rem)!important}.stat-item{width:clamp(110px,14vw,240px)!important;height:clamp(70px,9vw,140px)!important;padding:clamp(0.5rem,1vw,2rem)!important;border-radius:clamp(8px,1.2vw,24px)!important;background:rgba(255,255,255,0.95)!important;-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;box-shadow:0 4px 20px rgba(0,0,0,0.08)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}.hero--cinematic .hero-stats--homepage .stat-item{position:relative!important;overflow:hidden!important;background:linear-gradient(155deg,rgba(122,182,217,0.12) 0%,rgba(73,98,117,0.22) 48%,rgba(38,52,64,0.30) 100%)!important;border:1px solid rgba(255,255,255,0.22)!important;border-top-color:rgba(255,255,255,0.36)!important;border-left-color:rgba(255,255,255,0.28)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:0 8px 28px rgba(15,23,42,0.22),0 2px 8px rgba(15,23,42,0.12),inset 0 1px 0 rgba(255,255,255,0.26),inset 0 -1px 0 rgba(0,0,0,0.08)!important}.hero--cinematic .hero-stats--homepage .stat-number{color:var(--z-surface-white)!important;text-shadow:0 1px 2px rgba(15,23,42,0.55),0 0 1px rgba(0,0,0,0.40)!important}.hero--cinematic .hero-stats--homepage .stat-label{color:rgba(255,255,255,0.94)!important;text-shadow:0 1px 3px rgba(15,23,42,0.50)!important}.stat-number{font-size:clamp(0.9rem,1.4vw,1.8rem)!important;font-weight:800!important;color:var(--color-primary)!important}.stat-label{font-size:clamp(0.55rem,0.75vw,0.9rem)!important;font-weight:600!important;color:var(--color-dark)!important;text-align:center!important}}@media (min-width:1024px){.promo-banners-section{padding-top:clamp(2rem,4vw,5rem)!important;padding-bottom:clamp(3rem,6vw,8rem)!important}.promo-banners-grid{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:var(--card-gap)!important}.promo-banner{min-height:clamp(72px,8vw,128px)!important;padding:clamp(0.8rem,1.2vw,1.6rem) clamp(1rem,1.6vw,2rem)!important;border-radius:var(--card-radius)!important}.promo-banner-icon{width:clamp(38px,4vw,58px)!important;height:clamp(38px,4vw,58px)!important}.promo-banner-icon svg{width:clamp(19px,2vw,32px)!important;height:clamp(19px,2vw,32px)!important}.promo-banner-title{font-size:clamp(0.8rem,1.04vw,1.2rem)!important}.promo-banner-description{font-size:clamp(0.6rem,0.72vw,0.8rem)!important}}@media (min-width:1024px){.section-header{margin-bottom:clamp(2rem,4vw,4rem)!important}.section-title{font-size:clamp(1.5rem,2.2vw,2.5rem)!important;margin-bottom:clamp(0.5rem,1vw,1rem)!important}.section-description{font-size:clamp(0.9rem,1.1vw,1.2rem)!important;max-width:clamp(500px,50vw,700px)!important;margin-left:auto!important;margin-right:auto!important}}@media (min-width:1024px){.category-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--card-gap)!important;width:100%!important}.category-card{min-height:clamp(220px,18vw,320px)!important;padding:clamp(0.8rem,1.2vw,1.5rem)!important;padding-bottom:0!important;border-radius:var(--card-radius)!important}.category-icon{width:clamp(56px,6vw,100px)!important;height:clamp(56px,6vw,100px)!important;margin-bottom:clamp(0.75rem,1.2vw,1.5rem)!important}.category-title{font-size:clamp(0.95rem,1.2vw,1.4rem)!important;margin-bottom:clamp(0.3rem,0.6vw,0.75rem)!important}.category-description{font-size:clamp(0.75rem,0.85vw,1rem)!important;line-height:1.45!important}.category-count{min-height:clamp(60px,7vw,100px)!important;padding:clamp(1rem,1.2vw,1.5rem)!important;margin:0 clamp(-1rem,-1.5vw,-2rem)!important}.category-count span:first-child{font-size:clamp(1.1rem,1.5vw,1.8rem)!important}.category-count span:last-child{font-size:clamp(0.6rem,0.7vw,0.85rem)!important}}@media (min-width:1024px){.card,.services-grid .card{min-height:clamp(300px,22vw,400px)!important;height:auto!important;border-radius:var(--card-radius)!important;overflow:hidden!important}.card-image{aspect-ratio:1 / 1!important;width:100%!important;object-fit:cover!important}.card-content{padding:clamp(0.8rem,1.2vw,1.5rem)!important;display:flex!important;flex-direction:column!important;flex:1!important}.card-title{font-size:clamp(0.9rem,1.1vw,1.3rem)!important;line-height:1.35!important;margin-bottom:clamp(0.4rem,0.6vw,0.75rem)!important}.card-text{font-size:clamp(0.75rem,0.85vw,1rem)!important;line-height:1.5!important;margin-bottom:clamp(0.6rem,1vw,1rem)!important}.card-footer{margin-top:auto!important;padding-top:clamp(0.5rem,0.8vw,1rem)!important}.card-footer .btn{padding:clamp(0.5rem,0.7vw,0.85rem) clamp(1rem,1.3vw,1.5rem)!important;font-size:clamp(0.75rem,0.85vw,0.95rem)!important}}@media (min-width:1024px){.homepage-news-card{min-height:clamp(300px,22vw,400px)!important}.homepage-news-card .card-image-wrapper{height:auto!important;aspect-ratio:1 / 1!important}.homepage-news-card .card-title{font-size:clamp(0.8rem,0.95vw,1.1rem)!important}.homepage-news-card .card-text{font-size:clamp(0.7rem,0.8vw,0.9rem)!important}.homepage-news-card .news-date{font-size:clamp(0.6rem,0.7vw,0.8rem)!important}.news-category-badge{font-size:clamp(0.55rem,0.65vw,0.75rem)!important;padding:clamp(3px,0.4vw,5px) clamp(8px,0.9vw,12px)!important}}@media (min-width:1024px){.services-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:var(--card-gap)!important}}@media (min-width:1024px){section[style*="background: var(--gradient-primary)"] h2{font-size:clamp(1.5rem,2.2vw,2.8rem)!important}section[style*="background: var(--gradient-primary)"] p{font-size:clamp(0.95rem,1.15vw,1.35rem)!important}section[style*="background: var(--gradient-primary)"] .btn-lg{padding:clamp(0.75rem,1vw,1.25rem) clamp(1.5rem,2vw,2.5rem)!important;font-size:clamp(0.85rem,1vw,1.15rem)!important}}@media (min-width:1024px){.footer{padding-top:clamp(2rem,4vw,4rem)!important;padding-bottom:max(1.25rem,calc(0.75rem + env(safe-area-inset-bottom,0px)))!important;margin-top:clamp(3rem,5vw,6rem)!important}.footer-content{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:clamp(1.5rem,3vw,4rem)!important}.footer-section .footer-heading{font-size:clamp(0.85rem,1vw,1.1rem)!important;margin-bottom:clamp(0.5rem,0.8vw,1rem)!important}.footer-links a,.footer-content p,.footer-bottom p{font-size:clamp(0.75rem,0.85vw,0.95rem)!important}.footer-bottom{font-size:clamp(0.7rem,0.8vw,0.9rem)!important;padding-top:clamp(0.75rem,1.2vw,1.5rem)!important}.footer-regulatory{margin-top:clamp(0.5rem,0.75vw,0.75rem)!important;padding-top:clamp(0.6rem,0.85vw,0.85rem)!important;padding-bottom:max(1rem,calc(0.5rem + env(safe-area-inset-bottom,0px)))!important;font-size:clamp(0.68rem,0.74vw,0.8rem)!important;line-height:1.55!important;overflow:visible!important;max-height:none!important;height:auto!important}}@media (min-width:1024px){.site-fab-stack{position:fixed!important;bottom:24px!important;right:24px!important;left:auto!important;top:auto!important;width:clamp(48px,4.5vw,65px);gap:clamp(12px,1.4vh,16px);z-index:calc(var(--z-modal) + 2);transform:none!important}.site-fab-stack .ai-guide-widget{position:relative!important;bottom:auto!important;right:auto!important;top:auto!important;left:auto!important;transform:none!important;width:clamp(48px,4.5vw,65px)!important;height:clamp(48px,4.5vw,65px)!important;min-width:clamp(48px,4.5vw,65px)!important;min-height:clamp(48px,4.5vw,65px)!important}.site-fab{width:clamp(48px,4.5vw,65px)!important;height:clamp(48px,4.5vw,65px)!important;min-width:clamp(48px,4.5vw,65px)!important;min-height:clamp(48px,4.5vw,65px)!important;max-width:clamp(48px,4.5vw,65px)!important;max-height:clamp(48px,4.5vw,65px)!important}.site-fab__blabla-btn{width:100%!important;height:100%!important}.site-fab__emoji{font-size:2.15rem!important;line-height:1!important}.site-fab__avatar{width:100%!important;height:100%!important}.ai-guide-button{width:clamp(48px,4.5vw,65px)!important;height:clamp(48px,4.5vw,65px)!important}.ai-guide-chat{position:fixed!important}.ai-guide-chat:not(.ai-guide-chat--custom-pos){top:auto!important;bottom:clamp(100px,12vh,150px)!important;transform:translateX(0)!important;right:24px!important}.ai-guide-chat:not(.ai-guide-chat--custom-size){width:28rem!important;height:38rem!important}}@media (min-width:1920px){.ai-guide-chat:not(.ai-guide-chat--custom-size){width:30rem!important;height:40rem!important;max-height:calc(95vh - 80px)!important}.ai-guide-chat:not(.ai-guide-chat--custom-pos){right:80px!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important}.ai-guide-chat.open:not(.ai-guide-chat--custom-pos){transform:translateY(-50%) translateX(0)!important}}@media (min-width:1024px){.category-tabs-container{max-width:var(--desktop-container)!important;padding:clamp(0.5rem,0.8vw,1rem) var(--desktop-padding)!important}.category-tab{font-size:clamp(0.7rem,0.8vw,0.9rem)!important;padding:clamp(0.3rem,0.4vw,0.5rem) clamp(0.6rem,0.8vw,1rem)!important;gap:clamp(0.2rem,0.3vw,0.4rem)!important}.category-tab .count{font-size:clamp(0.6rem,0.7vw,0.8rem)!important}.filter-bar{padding:clamp(0.75rem,1vw,1.25rem) clamp(1rem,1.5vw,2rem)!important;gap:clamp(0.75rem,1.2vw,1.5rem)!important;border-radius:var(--card-radius)!important}.filter-group label{font-size:clamp(0.7rem,0.8vw,0.9rem)!important}.filter-select{height:clamp(32px,3vw,40px)!important;font-size:clamp(0.7rem,0.8vw,0.9rem)!important;padding:0 clamp(0.5rem,0.8vw,1rem)!important}}@media (min-width:1024px){.breadcrumbs{font-size:clamp(0.7rem,0.8vw,0.9rem)!important;padding:clamp(0.5rem,0.8vw,1rem) 0!important}}@media (min-width:1024px){.btn{padding:clamp(0.6rem,0.8vw,1rem) clamp(1.2rem,1.5vw,2rem)!important;font-size:clamp(0.8rem,0.9vw,1rem)!important;border-radius:clamp(0.5rem,0.7vw,0.85rem)!important}.btn-lg{padding:clamp(0.85rem,1.1vw,1.3rem) clamp(1.75rem,2.2vw,2.8rem)!important;font-size:clamp(0.9rem,1vw,1.15rem)!important}}@media (min-width:1024px){input.form-control,select.form-control,textarea.form-control{padding:clamp(0.75rem,1vw,1.25rem) clamp(1rem,1.2vw,1.5rem)!important;font-size:clamp(0.85rem,0.95vw,1.1rem)!important;min-height:clamp(44px,4vw,56px)!important;border-radius:clamp(0.5rem,0.7vw,0.85rem)!important}}@media (min-width:1024px){.pagination-compact{gap:clamp(4px,0.5vw,8px)!important}.pagination-compact .btn{min-width:clamp(34px,3vw,42px)!important;height:clamp(34px,3vw,42px)!important;font-size:clamp(0.75rem,0.85vw,0.95rem)!important}}@media (min-width:1024px){.auth-container{padding-top:clamp(3rem,5vw,5rem)!important}.auth-card{max-width:clamp(380px,30vw,500px)!important;padding:clamp(2rem,3vw,3.5rem)!important}.auth-header h1{font-size:clamp(1.5rem,2vw,2.5rem)!important}}@media (min-width:1024px){.profile-container{max-width:var(--desktop-container)!important;padding-top:clamp(5rem,8vw,7rem)!important}.profile-layout{grid-template-columns:clamp(220px,18vw,320px) 1fr!important;gap:clamp(1.5rem,3vw,3rem)!important}.avatar-circle{width:clamp(70px,7vw,100px)!important;height:clamp(70px,7vw,100px)!important;font-size:clamp(1.5rem,2vw,2.5rem)!important}}@media (min-width:2000px){:root{--desktop-container:1340px}.container,.news-container,.tours-container,.services-container,.rental-container,.promo-banners-section .container,.hero .container,.footer-content,.footer .footer-regulatory,.category-tabs-container,.profile-container{max-width:1340px!important}}@media (min-width:1024px){body .container,body .news-container,body .tours-container{max-width:var(--desktop-container)!important}body .category-grid,body .services-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:var(--card-gap)!important}}@media (min-width:769px){footer.footer .footer-regulatory,.footer.footer .footer-regulatory{overflow:visible!important;max-height:none!important;height:auto!important;min-height:0!important;flex-shrink:0!important;white-space:normal!important;box-sizing:border-box!important;padding-bottom:max(1rem,calc(0.5rem + env(safe-area-inset-bottom,0px)))!important}footer.footer .footer-regulatory p,.footer.footer .footer-regulatory p,footer.footer .footer-regulatory__intro,.footer.footer .footer-regulatory__intro,footer.footer .footer-regulatory__more,.footer.footer .footer-regulatory__more{display:block!important;overflow:visible!important;max-height:none!important;height:auto!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:break-word!important;-webkit-line-clamp:unset!important;line-clamp:unset!important;-webkit-box-orient:initial!important;text-overflow:clip!important}}@media print{.hero{min-height:0!important;padding:2rem!important}.ai-guide-widget,.site-fab-stack{display:none!important}}

/* === badges.css === */
.badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;color:var(--color-white);white-space:nowrap;line-height:1.2;text-transform:none}.badge--positioned{position:absolute;top:12px;left:12px;z-index:2;pointer-events:none;box-shadow:0 2px 4px rgba(0,0,0,0.1)}.service-badge{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:20px;padding:0 8px;border-radius:4px;font-size:10px;font-weight:700;line-height:20px;white-space:nowrap;color:var(--color-white);background:linear-gradient(135deg,var(--z-green-600) 0%,var(--z-green-500) 100%);z-index:2;pointer-events:none}.news-category-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;color:var(--color-white);background:var(--color-info)}.badge--verified,.service-badge--verified{background:linear-gradient(135deg,var(--z-green-600) 0%,var(--z-green-500) 100%)}.badge--hot,.service-badge--hot{background:linear-gradient(135deg,var(--z-red-600) 0%,#F97316 100%)}.badge--new,.service-badge--new{background:linear-gradient(135deg,var(--z-blue-500) 0%,#60A5FA 100%)}.badge--premium,.service-badge--premium{background:linear-gradient(135deg,#8B7355 0%,#C4A35A 100%)}.badge--bestseller,.service-badge--bestseller{background:linear-gradient(135deg,var(--z-amber-600) 0%,var(--z-amber-500) 100%)}.badge--featured,.service-badge--featured{background:linear-gradient(135deg,var(--z-red-600) 0%,var(--z-red-500) 100%)}.badge--popular,.service-badge--popular{background:linear-gradient(135deg,#E11D48 0%,#F43F5E 100%)}.badge--top-rated,.service-badge--top-rated{background:linear-gradient(135deg,var(--z-amber-500) 0%,var(--z-amber-400) 100%)}.badge--trusted,.service-badge--trusted{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#06B6D4 100%)}.badge--licensed,.service-badge--licensed{background:linear-gradient(135deg,#4F46E5 0%,var(--z-indigo-500) 100%)}.badge--certified,.service-badge--certified{background:linear-gradient(135deg,var(--z-purple-600) 0%,#8B5CF6 100%)}.badge--pro,.service-badge--pro{background:linear-gradient(135deg,var(--z-text-dark) 0%,var(--z-gray-600) 100%)}.badge--vip,.service-badge--vip{background:linear-gradient(135deg,#B8860B 0%,#DAA520 100%)}.badge--discount,.service-badge--discount{background:linear-gradient(135deg,var(--z-red-600) 0%,var(--z-red-500) 100%)}.badge--free,.service-badge--free{background:linear-gradient(135deg,var(--z-green-bright) 0%,var(--z-green-400) 100%)}.badge--booking-required,.service-badge--booking-required{background:linear-gradient(135deg,var(--z-orange-600) 0%,#F97316 100%)}.badge--instant,.service-badge--instant{background:linear-gradient(135deg,var(--z-green-500) 0%,#34D399 100%)}.badge--safari,.service-badge--safari{background:linear-gradient(135deg,#A16207 0%,#CA8A04 100%)}.badge--jungle,.service-badge--jungle{background:linear-gradient(135deg,var(--z-green-800) 0%,var(--z-green-400) 100%)}.badge--mountain,.service-badge--mountain{background:linear-gradient(135deg,var(--z-gray-600) 0%,var(--z-text-secondary) 100%)}.badge--beach,.service-badge--beach{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#38BDF8 100%)}.badge--city-tour,.service-badge--city-tour{background:linear-gradient(135deg,var(--z-purple-600) 0%,var(--z-purple-300) 100%)}.badge--historical,.service-badge--historical{background:linear-gradient(135deg,var(--z-amber-900) 0%,var(--z-amber-800) 100%)}.badge--cultural,.service-badge--cultural{background:linear-gradient(135deg,#9333EA 0%,#A855F7 100%)}.badge--adventure,.service-badge--adventure{background:linear-gradient(135deg,var(--z-orange-600) 0%,#FB923C 100%)}.badge--eco-tour,.service-badge--eco-tour{background:linear-gradient(135deg,var(--z-green-deep) 0%,#4ADE80 100%)}.badge--night-tour,.service-badge--night-tour{background:linear-gradient(135deg,#1E1B4B 0%,var(--z-indigo-700) 100%)}.badge--sunrise,.service-badge--sunrise{background:linear-gradient(135deg,#F97316 0%,var(--z-amber-400) 100%)}.badge--sunset,.service-badge--sunset{background:linear-gradient(135deg,var(--z-red-600) 0%,#F97316 100%)}.badge--photo-tour,.service-badge--photo-tour{background:linear-gradient(135deg,var(--z-text-dark) 0%,var(--z-gray-700) 100%)}.badge--private,.service-badge--private{background:linear-gradient(135deg,#6B21A8 0%,#A855F7 100%)}.badge--group,.service-badge--group{background:linear-gradient(135deg,#0284C7 0%,#38BDF8 100%)}.badge--tuktuk,.service-badge--tuktuk,.service-badge--transport{background:linear-gradient(135deg,#FF6B35 0%,#F7931E 100%)}.badge--car,.service-badge--car{background:linear-gradient(135deg,#1E40AF 0%,var(--z-blue-500) 100%)}.badge--motorcycle,.service-badge--motorcycle{background:linear-gradient(135deg,var(--z-red-600) 0%,var(--z-red-500) 100%)}.badge--scooter,.service-badge--scooter{background:linear-gradient(135deg,var(--z-green-600) 0%,var(--z-green-500) 100%)}.badge--bike,.service-badge--bike{background:linear-gradient(135deg,var(--z-orange-600) 0%,#FB923C 100%)}.badge--ebike,.service-badge--ebike{background:linear-gradient(135deg,var(--z-teal-600) 0%,#2DD4BF 100%)}.badge--atv,.service-badge--atv{background:linear-gradient(135deg,var(--z-orange-600) 0%,#F97316 100%)}.badge--buggy,.service-badge--buggy{background:linear-gradient(135deg,#65A30D 0%,#84CC16 100%)}.badge--jeep,.service-badge--jeep{background:linear-gradient(135deg,#365314 0%,#65A30D 100%)}.badge--bus,.service-badge--bus{background:linear-gradient(135deg,var(--z-blue-700) 0%,#0EA5E9 100%)}.badge--minivan,.service-badge--minivan{background:linear-gradient(135deg,var(--z-indigo-700) 0%,var(--z-indigo-500) 100%)}.badge--driver,.service-badge--driver{background:linear-gradient(135deg,#1F2937 0%,#4B5563 100%)}.badge--transfer,.service-badge--transfer{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#22D3EE 100%)}.badge--yacht,.service-badge--yacht{background:linear-gradient(135deg,#0077B6 0%,#00B4D8 100%)}.badge--boat,.service-badge--boat{background:linear-gradient(135deg,var(--z-blue-800) 0%,#60A5FA 100%)}.badge--jetski,.service-badge--jetski{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#06B6D4 100%)}.badge--kayak,.service-badge--kayak{background:linear-gradient(135deg,#0E7490 0%,#22D3EE 100%)}.badge--catamaran,.service-badge--catamaran{background:linear-gradient(135deg,var(--z-blue-700) 0%,#38BDF8 100%)}.badge--fishing-boat,.service-badge--fishing-boat{background:linear-gradient(135deg,#155E75 0%,var(--z-teal-dark) 100%)}.badge--speedboat,.service-badge--speedboat{background:linear-gradient(135deg,var(--z-red-600) 0%,#F97316 100%)}.badge--surf,.service-badge--surf{background:linear-gradient(135deg,#0077B6 0%,#00B4D8 100%)}.badge--restaurant,.service-badge--restaurant{background:linear-gradient(135deg,var(--z-amber-600) 0%,var(--z-amber-500) 100%)}.badge--barber,.service-badge--barber{background:linear-gradient(135deg,var(--z-text-dark) 0%,var(--z-gray-600) 100%)}.badge--beauty,.service-badge--beauty,.service-badge--beauty_salon{background:linear-gradient(135deg,#DB2777 0%,#EC4899 100%)}.badge--art,.service-badge--art{background:linear-gradient(135deg,var(--z-purple-600) 0%,#A855F7 100%)}.badge--villa,.service-badge--villa{background:linear-gradient(135deg,#8B7355 0%,#C4A35A 100%)}.badge--house,.service-badge--house{background:linear-gradient(135deg,#A0522D 0%,#CD853F 100%)}.badge--apartment,.service-badge--apartment{background:linear-gradient(135deg,var(--z-gray-600) 0%,var(--z-text-secondary) 100%)}.badge--room,.service-badge--room{background:linear-gradient(135deg,var(--z-purple-600) 0%,var(--z-purple-300) 100%)}.badge--bungalow,.service-badge--bungalow{background:linear-gradient(135deg,var(--z-teal-600) 0%,#2DD4BF 100%)}.badge--hotel,.service-badge--hotel{background:linear-gradient(135deg,#7C2D12 0%,var(--z-orange-600) 100%)}.badge--hostel,.service-badge--hostel{background:linear-gradient(135deg,#0E7490 0%,#06B6D4 100%)}.badge--guesthouse,.service-badge--guesthouse{background:linear-gradient(135deg,var(--z-amber-800) 0%,var(--z-amber-500) 100%)}.badge--treehouse,.service-badge--treehouse{background:linear-gradient(135deg,var(--z-green-800) 0%,var(--z-green-400) 100%)}.badge--glamping,.service-badge--glamping{background:linear-gradient(135deg,#6D28D9 0%,var(--z-purple-300) 100%)}.badge--resort,.service-badge--resort{background:linear-gradient(135deg,var(--z-blue-700) 0%,#38BDF8 100%)}.badge--pool,.service-badge--pool{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#22D3EE 100%)}.badge--ocean-view,.service-badge--ocean-view{background:linear-gradient(135deg,#0077B6 0%,#00B4D8 100%)}.badge--surfing,.service-badge--surfing{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#22D3EE 100%)}.badge--diving,.service-badge--diving{background:linear-gradient(135deg,#1E40AF 0%,var(--z-blue-500) 100%)}.badge--snorkeling,.service-badge--snorkeling{background:linear-gradient(135deg,var(--z-teal-600) 0%,#2DD4BF 100%)}.badge--kitesurfing,.service-badge--kitesurfing{background:linear-gradient(135deg,var(--z-purple-600) 0%,var(--z-purple-300) 100%)}.badge--wakeboard,.service-badge--wakeboard{background:linear-gradient(135deg,var(--z-blue-700) 0%,#38BDF8 100%)}.badge--parasailing,.service-badge--parasailing{background:linear-gradient(135deg,#0EA5E9 0%,#7DD3FC 100%)}.badge--whale-watching,.service-badge--whale-watching{background:linear-gradient(135deg,#1E3A8A 0%,var(--z-blue-500) 100%)}.badge--fishing,.service-badge--fishing{background:linear-gradient(135deg,#155E75 0%,var(--z-teal-dark) 100%)}.badge--hiking,.service-badge--hiking{background:linear-gradient(135deg,var(--z-green-800) 0%,var(--z-green-400) 100%)}.badge--trekking,.service-badge--trekking{background:linear-gradient(135deg,#78350F 0%,#A16207 100%)}.badge--climbing,.service-badge--climbing{background:linear-gradient(135deg,#6B21A8 0%,#9333EA 100%)}.badge--zipline,.service-badge--zipline{background:linear-gradient(135deg,var(--z-green-deep) 0%,#4ADE80 100%)}.badge--bungee,.service-badge--bungee{background:linear-gradient(135deg,var(--z-red-600) 0%,#F97316 100%)}.badge--rafting,.service-badge--rafting{background:linear-gradient(135deg,var(--z-blue-700) 0%,#0EA5E9 100%)}.badge--golf,.service-badge--golf{background:linear-gradient(135deg,var(--z-green-bright) 0%,#4ADE80 100%)}.badge--tennis,.service-badge--tennis{background:linear-gradient(135deg,#65A30D 0%,#A3E635 100%)}.badge--yoga,.service-badge--yoga{background:linear-gradient(135deg,#6D28D9 0%,var(--z-purple-300) 100%)}.badge--fitness,.service-badge--fitness{background:linear-gradient(135deg,var(--z-orange-600) 0%,#FB923C 100%)}.badge--spa,.service-badge--spa{background:linear-gradient(135deg,#BE185D 0%,#F472B6 100%)}.badge--massage,.service-badge--massage{background:linear-gradient(135deg,#9D174D 0%,#EC4899 100%)}.badge--ayurveda,.service-badge--ayurveda{background:linear-gradient(135deg,var(--z-green-deep) 0%,var(--z-green-400) 100%)}.badge--guide,.service-badge--guide{background:linear-gradient(135deg,var(--z-blue-700) 0%,#0EA5E9 100%)}.badge--translator,.service-badge--translator{background:linear-gradient(135deg,var(--z-indigo-700) 0%,var(--z-indigo-500) 100%)}.badge--photographer,.service-badge--photographer{background:linear-gradient(135deg,var(--z-text-dark) 0%,var(--z-gray-600) 100%)}.badge--videographer,.service-badge--videographer{background:linear-gradient(135deg,#7C2D12 0%,var(--z-red-600) 100%)}.badge--instructor,.service-badge--instructor{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#22D3EE 100%)}.badge--chef,.service-badge--chef{background:linear-gradient(135deg,#B91C1C 0%,var(--z-red-500) 100%)}.badge--babysitter,.service-badge--babysitter{background:linear-gradient(135deg,#DB2777 0%,#F472B6 100%)}.badge--cleaner,.service-badge--cleaner{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#22D3EE 100%)}.badge--gardener,.service-badge--garden{background:linear-gradient(135deg,#228B22 0%,#32CD32 100%)}.badge--security,.service-badge--security{background:linear-gradient(135deg,#1F2937 0%,#4B5563 100%)}.badge--doctor,.service-badge--doctor{background:linear-gradient(135deg,var(--z-red-600) 0%,var(--z-red-500) 100%)}.badge--lawyer,.service-badge--lawyer{background:linear-gradient(135deg,#1E3A8A 0%,var(--z-blue-500) 100%)}.badge--manager,.service-badge--manager{background:linear-gradient(135deg,var(--z-indigo-700) 0%,var(--z-indigo-500) 100%)}.badge--concierge,.service-badge--concierge{background:linear-gradient(135deg,#6B21A8 0%,#A855F7 100%)}.badge--bakery,.service-badge--bakery{background:linear-gradient(135deg,#8B5A2B 0%,#CD853F 100%)}.badge--restaurant,.service-badge--restaurant{background:linear-gradient(135deg,#B91C1C 0%,var(--z-red-500) 100%)}.badge--cafe,.service-badge--cafe{background:linear-gradient(135deg,#78350F 0%,#A16207 100%)}.badge--bar,.service-badge--bar{background:linear-gradient(135deg,#581C87 0%,#7E22CE 100%)}.badge--catering,.service-badge--catering{background:linear-gradient(135deg,var(--z-amber-800) 0%,var(--z-amber-500) 100%)}.badge--seafood,.service-badge--seafood{background:linear-gradient(135deg,var(--z-blue-700) 0%,#0EA5E9 100%)}.badge--vegan,.service-badge--vegan{background:linear-gradient(135deg,var(--z-green-deep) 0%,var(--z-green-400) 100%)}.badge--organic,.service-badge--organic{background:linear-gradient(135deg,var(--z-green-800) 0%,#4ADE80 100%)}.badge--local,.service-badge--local{background:linear-gradient(135deg,var(--z-amber-600) 0%,var(--z-amber-500) 100%)}.badge--international,.service-badge--international{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#22D3EE 100%)}.badge--bbq,.service-badge--bbq{background:linear-gradient(135deg,#9A3412 0%,var(--z-orange-600) 100%)}.badge--delivery,.service-badge--delivery{background:linear-gradient(135deg,var(--z-green-bright) 0%,#4ADE80 100%)}.badge--food,.service-badge--food{background:linear-gradient(135deg,var(--z-orange-600) 0%,#FB923C 100%)}.badge--handmade,.service-badge--handmade{background:linear-gradient(135deg,#8B4513 0%,#D2691E 100%)}.badge--souvenirs,.service-badge--souvenirs{background:linear-gradient(135deg,#2E8B57 0%,#3CB371 100%)}.badge--jewelry,.service-badge--jewelry{background:linear-gradient(135deg,#B8860B 0%,#FFD700 100%)}.badge--textiles,.service-badge--textiles{background:linear-gradient(135deg,var(--z-purple-600) 0%,var(--z-purple-300) 100%)}.badge--pottery,.service-badge--pottery{background:linear-gradient(135deg,var(--z-amber-900) 0%,var(--z-amber-600) 100%)}.badge--art,.service-badge--art{background:linear-gradient(135deg,#C026D3 0%,#E879F9 100%)}.badge--antiques,.service-badge--antiques{background:linear-gradient(135deg,#78350F 0%,#A16207 100%)}.badge--market,.service-badge--market{background:linear-gradient(135deg,var(--z-green-deep) 0%,var(--z-green-400) 100%)}.badge--spices,.service-badge--spices{background:linear-gradient(135deg,#B91C1C 0%,#F97316 100%)}.badge--tea,.service-badge--tea{background:linear-gradient(135deg,var(--z-green-800) 0%,var(--z-green-400) 100%)}.badge--wedding,.service-badge--wedding{background:linear-gradient(135deg,#EC4899 0%,#F9A8D4 100%)}.badge--party,.service-badge--party{background:linear-gradient(135deg,#C026D3 0%,#E879F9 100%)}.badge--concert,.service-badge--concert{background:linear-gradient(135deg,#7C2D12 0%,var(--z-orange-600) 100%)}.badge--festival,.service-badge--festival{background:linear-gradient(135deg,var(--z-red-600) 0%,var(--z-amber-400) 100%)}.badge--show,.service-badge--show{background:linear-gradient(135deg,#7E22CE 0%,#D946EF 100%)}.badge--dance,.service-badge--dance{background:linear-gradient(135deg,#DB2777 0%,#F472B6 100%)}.badge--cooking-class,.service-badge--cooking-class{background:linear-gradient(135deg,var(--z-amber-800) 0%,var(--z-amber-500) 100%)}.badge--workshop,.service-badge--workshop{background:linear-gradient(135deg,#78350F 0%,#A16207 100%)}.badge--eco,.service-badge--eco{background:linear-gradient(135deg,var(--z-teal-600) 0%,#2DD4BF 100%)}.badge--wildlife,.service-badge--wildlife{background:linear-gradient(135deg,var(--z-green-800) 0%,#4ADE80 100%)}.badge--birdwatching,.service-badge--birdwatching{background:linear-gradient(135deg,var(--z-teal-dark) 0%,#22D3EE 100%)}.badge--botanical,.service-badge--botanical{background:linear-gradient(135deg,var(--z-green-deep) 0%,var(--z-green-400) 100%)}.badge--nature,.service-badge--nature{background:linear-gradient(135deg,var(--z-green-800) 0%,var(--z-green-400) 100%)}.badge--waterfall,.service-badge--waterfall{background:linear-gradient(135deg,var(--z-blue-700) 0%,#38BDF8 100%)}.badge--temple,.service-badge--temple{background:linear-gradient(135deg,var(--z-amber-800) 0%,var(--z-amber-500) 100%)}.badge--news,.news-category-badge--news{background:var(--color-info)}.badge--blog,.news-category-badge--blog{background:var(--color-secondary)}.badge--announcement,.news-category-badge--announcement{background:var(--color-success)}.badge--events,.news-category-badge--events{background:var(--color-info)}.badge--tips,.news-category-badge--tips{background:var(--color-warning)}.badge--nearby,.service-badge--nearby{background:linear-gradient(135deg,var(--z-green-bright) 0%,#4ADE80 100%)}.badge--airport,.service-badge--airport{background:linear-gradient(135deg,var(--z-blue-700) 0%,#0EA5E9 100%)}.badge--24-7,.service-badge--24-7{background:linear-gradient(135deg,var(--z-green-600) 0%,var(--z-green-500) 100%)}.badge--weekend,.service-badge--weekend{background:linear-gradient(135deg,var(--z-purple-600) 0%,var(--z-purple-300) 100%)}.badge--express,.service-badge--express{background:linear-gradient(135deg,var(--z-red-600) 0%,var(--z-red-500) 100%)}.badge--sm,.service-badge--sm{padding:2px 6px;font-size:9px;border-radius:4px}.badge--lg,.service-badge--lg{padding:6px 14px;font-size:13px;border-radius:8px}.badge--outline{background:transparent!important;border:1.5px solid currentColor}.badge--outline.badge--verified{color:var(--z-green-600);border-color:var(--z-green-600)}.badge--outline.badge--hot{color:var(--z-red-600);border-color:var(--z-red-600)}.badge--outline.badge--new{color:var(--z-blue-500);border-color:var(--z-blue-500)}.badge--pill{border-radius:50px}.badge--hoverable:hover,.service-badge--hoverable:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,0.15);transition:all 0.2s ease}.cbt-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#065f46;border:1px solid #6ee7b7;vertical-align:middle}@media (max-width:768px){.badge{padding:3px 8px;font-size:10px}.badge--lg{padding:4px 12px;font-size:12px}.service-badge{padding:2px 5px;font-size:8px}}

/* === search_cards.css === */
:root{--z-card-badge-inset:10px;--z-card-badge-inset-mob:8px;--z-card-fav-inset-pc:10px;--z-card-fav-inset-mob:8px;--z-card-fav-compass-mob:8px}.sr-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--z-surface-white);border-radius:20px;overflow:hidden;border:none;box-sizing:border-box;box-shadow:var(--z-card-outer-ring);transition:transform 0.25s cubic-bezier(.4,0,.2,1),box-shadow 0.25s cubic-bezier(.4,0,.2,1);position:relative}.sr-card:hover{transform:translateY(-5px);box-shadow:var(--z-card-outer-ring-hover)}.sr-card__image-wrap{position:relative;width:100%;height:auto;aspect-ratio:var(--z-card-photo-aspect,1/1);min-height:0;max-height:none;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,var(--z-gray-100),var(--z-border-light));border-radius:0;isolation:isolate;line-height:0}@media (min-width:769px){.sr-card__image-wrap{height:auto;aspect-ratio:var(--z-card-photo-aspect,1/1);min-height:0;max-height:none}}.sr-card__image-wrap>.card-carousel{display:block;width:100%;height:100%}.sr-card__image{position:absolute;inset:0;width:100%;height:100%;max-height:100%;object-fit:cover;display:block;border:none;border-radius:0;box-sizing:border-box;transition:transform 0.5s ease;transform-origin:center center;vertical-align:top}.sr-card:hover .sr-card__image{transform:scale(1.07)}.sr-card__image-wrap .card-carousel .card-carousel__slide img{transition:transform 0.5s ease;transform-origin:center center;border-radius:0}.sr-card:hover .sr-card__image-wrap .card-carousel .card-carousel__slide img{transform:scale(1.07)}.sr-card__image-wrap .card-carousel__dots{bottom:44px}.sr-card__section-badge{position:absolute;top:var(--z-card-badge-inset,10px);left:var(--z-card-badge-inset,10px);padding:4px 10px;background:rgba(0,0,0,0.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--z-surface-white);font-size:0.75rem;font-weight:600;border-radius:20px;letter-spacing:0.02em;z-index:3;max-width:calc(100% - 2 * var(--z-card-badge-inset,10px) - 36px);box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-card__badge{position:absolute;top:var(--z-card-badge-inset,10px);right:var(--z-card-badge-inset,10px);left:auto;padding:4px 10px;background:linear-gradient(135deg,var(--z-amber-500),var(--z-amber-600));color:var(--z-surface-white);font-size:0.7rem;font-weight:700;border-radius:20px;text-transform:uppercase;letter-spacing:0.04em;z-index:3;max-width:calc(100% - 2 * var(--z-card-badge-inset,10px));box-sizing:border-box}.sr-card__price-tag{position:absolute;bottom:var(--z-card-badge-inset,10px);right:var(--z-card-badge-inset,10px);left:auto;padding:6px 14px;background:rgba(0,0,0,0.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--z-surface-white);font-size:0.9rem;font-weight:700;border-radius:10px;letter-spacing:0.01em;z-index:12;max-width:calc(100% - 2 * var(--z-card-badge-inset,10px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;box-sizing:border-box}.sr-card__price-tag--request{background:rgba(100,116,139,0.65);font-weight:500;font-size:0.8rem}.sr-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.sr-card__title{font-size:1rem;font-weight:700;line-height:1.35;color:var(--z-text-dark);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sr-card__desc{font-size:0.825rem;line-height:1.45;color:var(--z-text-secondary);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sr-card__location{display:flex;align-items:center;gap:5px;font-size:0.8125rem;color:var(--z-text-dim);font-weight:500}.sr-card__location svg{flex-shrink:0;color:var(--z-blue-500)}.sr-card__location-text{flex:1;min-width:0;word-break:break-word}.sr-card__tags{display:flex;flex-wrap:wrap;gap:5px}.sr-card__tag{display:inline-flex;align-items:center;padding:3px 8px;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:var(--z-blue-800);font-size:0.7rem;font-weight:600;border-radius:6px;white-space:nowrap;letter-spacing:0.01em}.sr-card__footer{display:flex;justify-content:flex-start;align-items:center;margin-top:auto;padding-top:8px;border-top:1px solid rgba(0,0,0,0.05)}.sr-card__rating{display:flex;align-items:center;gap:6px;font-size:0.875rem;font-weight:600;color:var(--z-gray-700)}@media (prefers-color-scheme:dark){.sr-card{background:var(--z-text-dark);border-color:var(--z-gray-700);box-shadow:var(--z-card-outer-ring-dark)}.sr-card:hover{box-shadow:var(--z-card-outer-ring-dark-hover)}.sr-card__title{color:var(--z-gray-100)}.sr-card__desc{color:var(--z-text-dim)}.sr-card__tag{background:linear-gradient(135deg,rgba(59,130,246,0.15),rgba(59,130,246,0.1));color:#93c5fd}.sr-card__rating{color:var(--z-border-light)}.sr-card__footer{border-top-color:rgba(255,255,255,0.06)}}.dark .sr-card{background:var(--z-text-dark);border-color:var(--z-gray-700);box-shadow:var(--z-card-outer-ring-dark)}.dark .sr-card:hover{box-shadow:var(--z-card-outer-ring-dark-hover)}.dark .sr-card__title{color:var(--z-gray-100)}.dark .sr-card__desc{color:var(--z-text-dim)}.dark .sr-card__tag{background:linear-gradient(135deg,rgba(59,130,246,0.15),rgba(59,130,246,0.1));color:#93c5fd}.dark .sr-card__rating{color:var(--z-border-light)}.dark .sr-card__footer{border-top-color:rgba(255,255,255,0.06)}@media (max-width:768px){.sr-card__image-wrap .card-carousel__dots{bottom:56px}:root{--z-card-badge-inset:var(--z-card-badge-inset-mob)}}@media (max-width:560px){.sr-card__body{padding:12px 14px 14px;gap:6px}.sr-card__title{font-size:0.9375rem}.sr-card__desc{font-size:0.8rem;-webkit-line-clamp:1}.sr-card__tags{gap:4px}.sr-card__tag{font-size:0.65rem;padding:2px 6px}.sr-card__price-tag{font-size:0.8rem;padding:4px 10px}}.sr-card-wrapper{position:relative;display:block}.sr-card-wrapper>.listing-favorite-btn,.sr-card-wrapper>a.listing-favorite-btn{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);margin:0;z-index:5}@media (hover:hover){.sr-card-wrapper>.listing-favorite-btn,.sr-card-wrapper>a.listing-favorite-btn{opacity:0;pointer-events:none;transition:opacity 0.2s ease}.sr-card-wrapper>.listing-favorite-btn.is-active,.sr-card-wrapper>a.listing-favorite-btn.is-active{opacity:1;pointer-events:auto}.sr-card-wrapper:has(.sr-card__image-wrap:hover)>.listing-favorite-btn,.sr-card-wrapper:has(.sr-card__image-wrap:hover)>a.listing-favorite-btn{opacity:1;pointer-events:auto}.sr-card-wrapper:has(.listing-favorite-btn:focus-visible)>.listing-favorite-btn{opacity:1;pointer-events:auto}}.search-page .search-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--spacing-lg);width:100%;min-width:0}@media (min-width:769px){.search-page .search-grid{gap:var(--spacing-xl)}}@media (max-width:768px){.search-page .search-grid{grid-template-columns:minmax(0,1fr);gap:12px}.sr-card-wrapper{min-width:0;max-width:100%}.sr-card{min-width:0;max-width:100%;overflow:hidden}.sr-card__image-wrap{height:auto;aspect-ratio:1 / 1;width:100%}.sr-card__body{min-width:0}.sr-card__location-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sr-card__section-badge{max-width:calc(100% - 100px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-card__tags{max-width:100%;max-height:3.25rem;overflow:hidden}}.listing-favorite-btn,a.listing-favorite-btn{-webkit-appearance:none;appearance:none;border:none;width:23px;height:23px;min-width:23px;min-height:23px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:rgba(255,255,255,0.94);color:var(--z-text-secondary);box-shadow:0 1px 8px rgba(15,23,42,0.12);transition:transform 0.15s ease,color 0.15s ease,background 0.15s ease;text-decoration:none;line-height:0}.listing-favorite-btn .listing-favorite-btn__icon,a.listing-favorite-btn .listing-favorite-btn__icon{width:12px;height:12px;max-width:12px;max-height:12px;flex-shrink:0;display:block}.listing-favorite-btn:hover,a.listing-favorite-btn:hover{transform:scale(1.07);color:#e11d48}.listing-favorite-btn.is-active,a.listing-favorite-btn.is-active{color:#e11d48}.listing-favorite-btn.is-active .listing-favorite-btn__icon,a.listing-favorite-btn.is-active .listing-favorite-btn__icon{fill:#e11d48;stroke:#e11d48}.listing-favorite-btn--featured{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:5}.listing-favorite-btn--svc{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:6}.services-grid .svc-card-wrapper{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;min-width:0;max-width:100%}.services-grid .svc-card-wrapper>.svc-card{flex:1;min-height:0}.hero-search-card-wrap{position:relative;display:block}.listing-favorite-btn--hero{position:absolute;top:var(--z-card-fav-inset-mob,8px);right:var(--z-card-fav-inset-mob,8px);left:auto;z-index:8}.dark .listing-favorite-btn,.dark a.listing-favorite-btn{background:rgba(30,41,59,0.92);color:var(--z-text-dim)}.rental-main-photo-wrap{position:relative;display:block;width:100%;min-width:0}.rental-main-photo-wrap .main-photo{display:block}.listing-favorite-btn--detail{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:6;width:26px;height:26px;min-width:26px;min-height:26px;box-shadow:0 2px 10px rgba(15,23,42,0.18)}.listing-favorite-btn--detail .listing-favorite-btn__icon{width:13px;height:13px;max-width:13px;max-height:13px}@media (max-width:768px){.listing-favorite-btn--detail{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob);width:24px;height:24px;min-width:24px;min-height:24px}.listing-favorite-btn--detail .listing-favorite-btn__icon{width:12px;height:12px;max-width:12px;max-height:12px}}.compass-main-card-wrap,.compass-side-card-wrap,.compass-card-wrap{position:relative;display:block}.compass-main-card-wrap>.listing-favorite-btn--compass,.compass-main-card-wrap>a.listing-favorite-btn--compass{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:5}.compass-side-card-wrap>.listing-favorite-btn--compass,.compass-side-card-wrap>a.listing-favorite-btn--compass{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:5}.compass-card-wrap>.listing-favorite-btn--compass,.compass-card-wrap>a.listing-favorite-btn--compass{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:5}.homepage-compass-section .compass-card-wrap{position:relative;display:block;min-width:0}.homepage-compass-section .compass-card-wrap>.listing-favorite-btn--home-news,.homepage-compass-section .compass-card-wrap>a.listing-favorite-btn--home-news{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:4}.homepage-news-card-wrap{position:relative;display:block;min-width:0}.homepage-news-card-wrap .homepage-news-card{height:100%}.homepage-news-card-wrap>.listing-favorite-btn--home-news,.homepage-news-card-wrap>a.listing-favorite-btn--home-news{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:4}.news-detail-fav-wrap{position:relative}.news-detail-fav-wrap>.listing-favorite-btn--news-detail,.news-detail-fav-wrap>a.listing-favorite-btn--news-detail{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:12}.lux-rev-fav-outer{position:relative;display:block}.lux-rev-fav-outer>.listing-favorite-btn--promo-lux,.lux-rev-fav-outer>a.listing-favorite-btn--promo-lux{position:absolute;top:var(--z-card-fav-inset-pc);right:var(--z-card-fav-inset-pc);z-index:6}@media (max-width:768px){.sr-card-wrapper>.listing-favorite-btn,.sr-card-wrapper>a.listing-favorite-btn{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob)}.listing-favorite-btn--svc,a.listing-favorite-btn--svc{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob)}.listing-favorite-btn--featured,a.listing-favorite-btn--featured{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob)}.compass-main-card-wrap>.listing-favorite-btn--compass,.compass-main-card-wrap>a.listing-favorite-btn--compass,.compass-side-card-wrap>.listing-favorite-btn--compass,.compass-side-card-wrap>a.listing-favorite-btn--compass{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob)}.compass-card-wrap>.listing-favorite-btn--compass,.compass-card-wrap>a.listing-favorite-btn--compass,.homepage-compass-section .compass-card-wrap>.listing-favorite-btn--home-news,.homepage-compass-section .compass-card-wrap>a.listing-favorite-btn--home-news{top:var(--z-card-fav-compass-mob);right:var(--z-card-fav-compass-mob)}.news-detail-fav-wrap>.listing-favorite-btn--news-detail,.news-detail-fav-wrap>a.listing-favorite-btn--news-detail{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob)}.homepage-news-card-wrap>.listing-favorite-btn--home-news,.homepage-news-card-wrap>a.listing-favorite-btn--home-news{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob)}.lux-rev-fav-outer>.listing-favorite-btn--promo-lux,.lux-rev-fav-outer>a.listing-favorite-btn--promo-lux{top:var(--z-card-fav-inset-mob);right:var(--z-card-fav-inset-mob)}}@media (min-width:481px) and (max-width:767px){.search-page .search-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.search-page .sr-card-wrapper{min-width:0!important;max-width:100%!important}}
@media (pointer:coarse) and (min-width:768px) and (max-width:1024px) and (orientation:portrait){.search-page .search-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}}
@media (max-width:480px){.search-page .search-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}.search-page .sr-card-wrapper,.search-page .sr-card{width:100%!important;max-width:100%!important}}
:root{--z-company-badge-size:26px}.z-company-card-badge{display:inline-flex;align-items:center;justify-content:center;width:var(--z-company-badge-size);height:var(--z-company-badge-size);border-radius:50%;background:#e9f6f6;color:var(--color-primary,#0a7575);text-decoration:none;box-sizing:border-box;flex-shrink:0;transition:transform 0.2s ease,background 0.2s ease,color 0.2s ease}.z-company-card-badge__icon{display:block;flex-shrink:0}.z-company-card-badge--footer:hover{transform:scale(1.06);background:var(--color-primary,#0a7575);color:#fff}.z-company-card-badge:focus-visible{outline:2px solid var(--color-primary,#0a7575);outline-offset:2px}.z-company-card-badge--footer{position:static}.sr-card-wrapper>.z-company-card-badge--sr{position:absolute;left:18px;bottom:14px;z-index:4;background:rgba(255,255,255,0.92);border:1.5px solid rgba(255,255,255,0.85);box-shadow:0 2px 10px rgba(15,23,42,0.14)}@media (max-width:768px){:root{--z-company-badge-size:24px}.z-company-card-badge__icon{width:12px;height:12px}.sr-card-wrapper>.z-company-card-badge--sr{left:14px;bottom:12px}}

/* === card_carousel.css === */
.card-carousel{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;border-radius:0 0 var(--z-card-photo-bottom-radius,var(--z-card-radius,20px)) var(--z-card-photo-bottom-radius,var(--z-card-radius,20px))}.card-carousel__track{display:flex;width:100%;height:100%;transition:transform 0.35s cubic-bezier(0.25,0.46,0.45,0.94);will-change:transform}.card-carousel__track.dragging{transition:none}.card-carousel__slide{min-width:100%;width:100%;height:100%;flex-shrink:0;border-radius:0 0 var(--z-card-photo-bottom-radius,var(--z-card-radius,20px)) var(--z-card-photo-bottom-radius,var(--z-card-radius,20px));background:#e8e8e8;overflow:hidden;position:relative;z-index:0}.card-carousel__slide.active{z-index:1}.card-carousel__slide img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center;display:block;pointer-events:none;border-radius:0 0 var(--z-card-photo-bottom-radius,var(--z-card-radius,20px)) var(--z-card-photo-bottom-radius,var(--z-card-radius,20px));-webkit-clip-path:none!important;clip-path:none!important;max-width:none!important;max-height:none!important;margin:0!important}.card-carousel__btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,0.96);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0.55;transition:opacity 0.2s,transform 0.2s,background 0.15s;z-index:10;box-shadow:0 1px 4px rgba(0,0,0,0.18);padding:0}.card-carousel__btn svg{stroke:#1a1a2e}.card-carousel__btn--prev{left:8px}.card-carousel__btn--next{right:8px}.svc-card-img:hover .card-carousel__btn,.sr-card__image-wrap:hover .card-carousel__btn,.similar-card__img-wrap:hover .card-carousel__btn,.card-carousel:hover .card-carousel__btn{opacity:0.9}.card-carousel__btn:hover{background:var(--z-surface-white);transform:translateY(-50%) scale(1.1);box-shadow:0 2px 8px rgba(0,0,0,0.22)}.card-carousel__btn:active{transform:translateY(-50%) scale(0.95)}.card-carousel__btn.hidden{opacity:0!important;pointer-events:none}.card-carousel__dots{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:10;padding:3px 6px;border-radius:20px;background:rgba(0,0,0,0.48)}.card-carousel__dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,0.5);transition:background 0.25s,transform 0.25s;cursor:pointer;border:none;padding:0;font:inherit;line-height:0;appearance:none;-webkit-appearance:none}.card-carousel__dot.active{background:var(--z-surface-white);transform:scale(1.3)}.card-carousel__dots.many .card-carousel__dot{width:5px;height:5px}@media (max-width:768px){.card-carousel{container-type:inline-size;container-name:card-carousel}.card-carousel__btn{display:none!important}.card-carousel__dots{bottom:36px;gap:4px;padding:2px 6px}.card-carousel__dot{width:6px;height:6px}}@container card-carousel (max-width:150px){.card-carousel__btn{width:20px;height:20px;opacity:0.85;box-shadow:0 1px 4px rgba(0,0,0,0.2)}.card-carousel__btn--prev{left:4px}.card-carousel__btn--next{right:4px}.card-carousel__btn svg{width:11px;height:11px}.card-carousel__dots{bottom:36px;gap:3px;padding:2px 5px}.card-carousel__dot{width:5px;height:5px}}@container card-carousel (min-width:280px){.card-carousel__btn{width:34px;height:34px}.card-carousel__btn svg{width:16px;height:16px}.card-carousel__btn--prev{left:8px}.card-carousel__btn--next{right:8px}}.card-carousel__btn,.card-carousel__dot{-webkit-tap-highlight-color:transparent}

/* === star-rating.css === */
/* Unified gold star rating — display + interactive input (site-wide) */
:root {
  --z-star-gold: #f59e0b;
  --z-star-gold-deep: #d97706;
  --z-star-empty: #d1d5db;
}

.z-star-rating {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  line-height: 1;
  vertical-align: middle;
}

.z-star-rating__star {
  font-size: 1.15rem;
  color: var(--z-star-empty);
  letter-spacing: 0.02em;
  line-height: 1;
}

.z-star-rating--sm .z-star-rating__star { font-size: 0.95rem; }
.z-star-rating--md .z-star-rating__star { font-size: 1.15rem; }
.z-star-rating--lg .z-star-rating__star { font-size: 1.5rem; }

.z-star-rating__star.is-filled {
  color: var(--z-star-gold);
}

.z-star-rating--input .z-star-rating__star {
  background: none;
  border: none;
  padding: 0 0.02rem;
  margin: 0;
  cursor: pointer;
  transition: color 0.12s ease, transform 0.12s ease;
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
}

.z-star-rating--input .z-star-rating__star:hover,
.z-star-rating--input .z-star-rating__star:focus-visible {
  transform: scale(1.1);
  outline: none;
}

.z-star-rating--input .z-star-rating__star.is-filled,
.z-star-rating--input .z-star-rating__star.is-preview {
  color: var(--z-star-gold);
}

.z-star-rating__hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* Legacy wrappers — keep gold on filled stars */
.review-stars,
.reviews-avg-stars,
.review-stars-mini,
.place-reviews-item__stars {
  display: inline-flex;
  align-items: center;
}

.review-stars .z-star-rating__star.is-filled,
.reviews-avg-stars .z-star-rating__star.is-filled,
.review-stars-mini .z-star-rating__star.is-filled,
.place-reviews-item__stars .z-star-rating__star.is-filled,
.place-reviews-block__avg .z-star-rating__star.is-filled {
  color: var(--z-star-gold);
}

/* Old radio-star form: still support until fully migrated */
.star-rating-input label:hover,
.star-rating-input input:checked + label,
.star-rating-input input:checked ~ input + label {
  color: var(--z-star-gold) !important;
}

.listing-vivid-page .z-star-rating__star.is-filled,
.listing-vivid-page .z-star-rating__star.is-preview,
.listing-vivid-page .review-stars .z-star-rating__star.is-filled,
.listing-vivid-page .reviews-avg-stars .z-star-rating__star.is-filled {
  color: var(--z-star-gold) !important;
}

/* === site-page-canvas.css === */
/**
 * Site canvas — мягкий slate-50 как было до «везде белого».
 * Только body/tokens; не ломаем локальные градиенты страниц.
 */
:root {
  --z-page-bg: #f8fafc;
  --z-home-canvas: #f8fafc;
  --color-bg: #f8fafc;
}

html,
body {
  background-color: var(--z-page-bg);
}

.homepage-main-canvas,
.homepage-hero-promo-stack,
.homepage-hero-stage {
  background: var(--z-home-canvas);
}

/* === components/shared/dom-states.css === */
/* Shared DOM state classes — toggled from JS (never .style.display / .style.background). */

.u-is-hidden {
    display: none !important;
}

.u-is-visible {
    display: block !important;
}

.u-is-block {
    display: block !important;
}

.u-is-relative {
    position: relative !important;
}

.u-is-opacity-half {
    opacity: 0.5 !important;
}

.u-is-flex {
    display: flex !important;
}

.u-is-grid {
    display: grid !important;
}

.u-is-opacity-dim {
    opacity: 0.3 !important;
}

.u-is-opacity-full {
    opacity: 1 !important;
}

.u-scroll-btn--hidden {
    display: none !important;
}

.u-scroll-btn--visible {
    display: flex !important;
}

/* Gallery main image swap (listing-detail.js) */
.gallery-main__img--fade {
    opacity: 0;
    transition: opacity 0.2s ease;
}

.gallery-main__img--visible {
    opacity: 1;
    transition: opacity 0.2s ease;
}

/* Zoom modal */
.zoom-modal--open {
    display: flex !important;
    opacity: 1;
}

.zoom-modal {
    opacity: 0;
    transition: opacity 0.15s ease;
}

.zoom-modal.u-is-hidden {
    display: none !important;
}

/* Body lock (lightbox / modal) */
body.zk-modal-open,
body.zk-nav-open {
    overflow: hidden;
}

/* Ad invite modal status text */
.ad-invite-status--error {
    color: #ef4444;
}

.ad-invite-status--success {
    color: #22c55e;
}

/* Mobile card tap cursor */
.zk-card-tappable {
    cursor: pointer;
}

/* === components/shared/extract-utilities.css === */
/* Shared utilities for extracted inline style= conversions */
.u-w-full { width: 100% !important; }
.u-text-center { text-align: center !important; }
.u-overflow-hidden { overflow: hidden !important; }
.u-mt-0 { margin-top: 0 !important; }
.u-p-0 { padding: 0 !important; }

/* === components/shared/notifications-states.css === */
/* Notification dropdown — badge visibility, bell shake, item dismiss. */

.notif-badge {
    display: none;
}

.notif-badge.notif-badge--visible {
    display: inline-flex;
}

.notif-bell-btn.notif-bell-btn--shake {
    animation: notif-shake 0.6s ease;
}

.notif-item.notif-item--dismissing {
    transition: all 0.25s ease;
    opacity: 0;
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 16px;
    padding-right: 16px;
    overflow: hidden;
}

/* === page-nav-unified.css === */
.page-header-context .container.container--nav-narrow{max-width:860px!important;margin-left:auto!important;margin-right:auto!important;padding-left:1.25rem;padding-right:1.25rem;box-sizing:border-box}.page-header-context .container.container--nav-narrow-960{max-width:960px!important;margin-left:auto!important;margin-right:auto!important;padding-left:1rem;padding-right:1rem;box-sizing:border-box}.page-header-context .container.container--nav-list{max-width:var(--desktop-container,1200px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--spacing-md,1rem);padding-right:var(--spacing-md,1rem);box-sizing:border-box}:root{--page-nav-mobile-px:16px;--breadcrumb-font-mobile:0.75rem;--breadcrumb-gap-mobile:0.5rem;--nav-back-font-mobile:0.875rem;--nav-back-gap-mobile:0.5rem;--nav-back-bottom-mobile:12px}@media (max-width:768px){.page-header-context .container{padding-left:var(--page-nav-mobile-px)!important;padding-right:var(--page-nav-mobile-px)!important;box-sizing:border-box!important}.page-header-context .container.container--nav-narrow{max-width:860px;margin-left:auto;margin-right:auto}.page-header-context .container.container--nav-narrow-960{max-width:960px;margin-left:auto;margin-right:auto}.breadcrumb{font-size:var(--breadcrumb-font-mobile)!important;font-weight:600!important;letter-spacing:0.04em!important;gap:var(--breadcrumb-gap-mobile)!important;line-height:1.25!important}.breadcrumb li:not(:last-child)::after{font-size:0.95rem!important;opacity:0.45!important}button.back-button,.rental-container>.container>button.back-button,a.rv-back,a.place-back-link,a.detail-back-btn{display:inline-flex!important;align-items:center!important;gap:var(--nav-back-gap-mobile)!important;padding:0!important;margin:0 0 var(--nav-back-bottom-mobile) 0!important;background:transparent!important;background-image:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;color:var(--z-text-secondary)!important;font-size:var(--nav-back-font-mobile)!important;font-weight:600!important;line-height:1.2!important;cursor:pointer!important;text-decoration:none!important;-webkit-appearance:none!important;appearance:none!important;font-family:inherit!important}button.back-button:hover,a.place-back-link:hover,a.detail-back-btn:hover{color:var(--color-primary,#496275)!important;background:transparent!important;border-color:transparent!important;transform:none!important}a.rv-back:hover{color:var(--rv-a,var(--color-primary,#496275))!important;background:transparent!important}button.back-button svg,a.rv-back svg,a.place-back-link svg,a.detail-back-btn svg{width:18px!important;height:18px!important;flex-shrink:0!important;stroke:currentColor!important;fill:none!important;stroke-width:2.5!important}button.back-button:hover svg{transform:translateX(-4px)!important}.category-tabs-wrapper{padding-left:var(--page-nav-mobile-px)!important;padding-right:var(--page-nav-mobile-px)!important;box-sizing:border-box!important}.category-tabs-container{padding-top:0.55rem!important;padding-bottom:0.55rem!important;padding-left:0!important;padding-right:0!important}.category-tabs-inner,.subcategory-chips-inner{padding-left:0!important;padding-right:0!important;box-sizing:border-box!important}.filter-controls{padding-left:0.35rem!important;padding-right:0.35rem!important;box-sizing:border-box!important}}@media (max-width:480px){.page-header-context .container{padding-left:var(--page-nav-mobile-px)!important;padding-right:var(--page-nav-mobile-px)!important}.breadcrumb{font-size:var(--breadcrumb-font-mobile)!important}.category-tabs-wrapper{padding-left:8px!important;padding-right:8px!important}}@media (min-width:769px){:root{--catalog-rail-max:1340px;--catalog-rail-px:24px;--site-content-max:1340px}section.page-header-context.page-header-context--catalog-nav>.container,.catalog-back-corridor>.container.catalog-back-crumb-rail,.catalog-page-inner,.catalog-page-inner.ad-strip-catalog-inner{max-width:var(--catalog-rail-max)!important;width:100%!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--catalog-rail-px)!important;padding-right:var(--catalog-rail-px)!important;box-sizing:border-box!important}.catalog-back-corridor .catalog-back-above-hero.catalog-back--align-crumb{margin-left:0!important}.header .nav-container{max-width:var(--site-content-max)!important;width:100%!important;padding-left:var(--catalog-rail-px)!important;padding-right:var(--catalog-rail-px)!important;margin-left:auto!important;margin-right:auto!important}.header .nav-menu{flex:1 1 auto!important;justify-content:space-evenly!important;margin:0!important;padding:0 clamp(1rem,3vw,3rem)!important}.header .nav-link{padding:0.32rem 0.42rem!important;min-width:0!important;font-size:clamp(0.78rem,0.85vw,0.92rem)!important;letter-spacing:0.03em!important}.header .nav-actions{gap:clamp(0.35rem,0.5vw,0.65rem)!important;flex-shrink:0!important}.header .logo{flex-shrink:0!important}body .container:not(.container--nav-narrow):not(.container--nav-narrow-960):not(.container--nav-list),body .rental-container:not(.rental-container--listing-page),body .services-container,body .news-container,body .tours-container,body .promo-banners-section .container,body .hero .container,body .footer-content,body .footer .footer-regulatory,body .category-tabs-container,body .profile-container,.tender-body,.services-body,.market-body,.market-detail-page,.market-form-shell,.transport-detail-page.catalog-page-inner,.transport-explorer-body.catalog-page-inner,.aff-page,.compass-body.catalog-page-body,.places-body.catalog-page-body{max-width:var(--site-content-max)!important;padding-left:var(--catalog-rail-px)!important;padding-right:var(--catalog-rail-px)!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important;width:100%!important}}@media (min-width:900px) and (max-width:1279px){.header .nav-menu{justify-content:space-evenly!important}.header .nav-container{max-width:var(--site-content-max,1340px)!important;padding-left:var(--catalog-rail-px,24px)!important;padding-right:var(--catalog-rail-px,24px)!important}}@media (min-width:1024px){.header .nav-container{max-width:var(--site-content-max,1340px)!important}.header .nav-menu{margin-left:0!important}}

/* === site-home-fab.css === */
/**
 * Site home FAB — «остров» справа + радиальные кнопки (+, поезд, автобус, shared ride, Bla Bla).
 *
 * Меняйте переменные ниже или overlay (ZOOKZY_DESIGN_ROOT/css/site-home-fab.css).
 * Каждая кнопка настраивается отдельно — соседние блоки не затрагиваются.
 */

:root {
  /* ── Геометрия / позиция ── */
  --site-fab-z-index: calc(var(--z-modal, 1000) + 2);
  --site-fab-orbit-size: 44px;
  --site-fab-hub-size: 44px;
  --site-fab-island-peek: 26px;
  --site-fab-edge-gap: 12px;
  --site-fab-desktop-v-anchor: 58vh;
  --site-fab-mobile-v-shift: 12px;
  --site-fab-img-bleed: 1.28;
  /* Жёлтая кнопка восстановления виджетов над островком */
  --site-fab-widgets-nudge-x: 0;
  --site-fab-widgets-nudge-y: 2%;
  --site-fab-widgets-island-gap: 1px;

  /* ── Остров (hub) — развёрнут ── */
  --site-fab-island-border: rgba(15, 23, 42, 0.14);
  --site-fab-island-bg: radial-gradient(
    circle at 100% 50%,
    rgba(248, 250, 252, 0.98) 0%,
    rgba(255, 255, 255, 0.96) 55%,
    rgba(241, 245, 249, 0.92) 100%
  );
  --site-fab-island-shadow: -6px 0 22px rgba(15, 23, 42, 0.16);
  --site-fab-island-text: var(--z-gray-700, #374151);

  /* ── Остров — свёрнут (peek) ── */
  --site-fab-island-collapsed-bg: var(--color-primary, #047a7c);
  --site-fab-island-collapsed-border: rgba(255, 255, 255, 0.28);
  --site-fab-island-collapsed-text: var(--z-surface-white, #ffffff);
  --site-fab-island-collapsed-shadow: -6px 0 22px rgba(73, 98, 117, 0.38);
  --site-fab-island-pulse-shadow: -10px 0 30px rgba(122, 182, 217, 0.5);

  /* ── Кнопка «+» (add listing) ── */
  --site-fab-add-bg: var(--z-action-primary, #ffce1b);
  --site-fab-add-icon: #ffffff;
  --site-fab-add-ring: #d4b483;
  --site-fab-add-fill: #e8d5b5;
  --site-fab-add-shadow: 0 0 0 1px rgba(184, 146, 90, 0.42), inset 0 0 0 1px rgba(255, 248, 230, 0.35), 0 6px 18px rgba(90, 65, 30, 0.22);
  --site-fab-add-ring-hover: #e0c090;

  /* ── Поезд ── */
  --site-fab-train-ring: #7ab6d9;
  --site-fab-train-fill: #e8f4fd;
  --site-fab-train-shadow: 0 0 0 1px rgba(26, 115, 232, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.4), 0 6px 18px rgba(26, 115, 232, 0.22);
  --site-fab-train-ring-hover: #93c5fd;

  /* ── Автобус ── */
  --site-fab-bus-ring: #f59e0b;
  --site-fab-bus-fill: #fff7ed;
  --site-fab-bus-shadow: 0 0 0 1px rgba(234, 88, 12, 0.35), inset 0 0 0 1px rgba(255, 252, 240, 0.4), 0 6px 18px rgba(234, 88, 12, 0.22);
  --site-fab-bus-ring-hover: #fbbf24;

  /* ── Shared ride ── */
  --site-fab-sharedride-ring: #14b8a6;
  --site-fab-sharedride-fill: #ecfdf5;
  --site-fab-sharedride-shadow: 0 0 0 1px rgba(13, 148, 136, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.4), 0 6px 18px rgba(13, 148, 136, 0.24);
  --site-fab-sharedride-ring-hover: #2dd4bf;

  /* ── Bla Bla ── */
  --site-fab-blabla-ring: #c084fc;
  --site-fab-blabla-fill: #faf5ff;
  --site-fab-blabla-shadow: 0 0 0 1px rgba(147, 51, 234, 0.32), inset 0 0 0 1px rgba(255, 255, 255, 0.4), 0 6px 18px rgba(124, 58, 237, 0.2);
  --site-fab-blabla-ring-hover: #d8b4fe;

  /* internal geometry aliases */
  --fab-orbit-size: var(--site-fab-orbit-size);
  --fab-island-r: calc(var(--fab-orbit-size) * 0.7);
  --fab-island-r-peek: var(--site-fab-island-peek);
  --fab-hub-size: var(--site-fab-hub-size);
  --fab-edge-gap: var(--site-fab-edge-gap);
  --fab-gap-step: calc(var(--fab-orbit-size) + var(--fab-edge-gap));
  --fab-orbit-r: calc(var(--fab-gap-step) / (2 * sin(22.5deg)));
  --fab-orbit-diag: calc(var(--fab-orbit-r) * cos(45deg));
  --fab-axis-inset-x: calc(var(--fab-orbit-size) / 2 + var(--fab-edge-gap));
  --fab-desktop-v-anchor: var(--site-fab-desktop-v-anchor);
  --fab-mobile-v-shift: var(--site-fab-mobile-v-shift);
  --fab-hub-h: calc(var(--fab-island-r) * 2);
  --fab-img-bleed: var(--site-fab-img-bleed);
  --site-fab-expanded-w: calc(var(--fab-axis-inset-x) + var(--fab-orbit-r) + var(--fab-orbit-size) + 10px);
  --site-fab-expanded-h: calc(var(--fab-orbit-r) * 2 + var(--fab-orbit-size) + 16px + var(--site-fab-widgets-slot, 0px));
  --site-fab-col-center: calc(var(--fab-axis-inset-x) + var(--fab-orbit-size) / 2);
}

@media (min-width: 769px) {
  :root {
    --site-fab-orbit-size: 48px;
    --site-fab-hub-size: 48px;
    --site-fab-island-peek: 28px;
  }
}

@keyframes site-fab-peek-chevron {
  0%, 50%, 100% { transform: rotate(180deg) translateX(0); }
  8% { transform: rotate(180deg) translateX(-5px); }
  16% { transform: rotate(180deg) translateX(-1px); }
  24% { transform: rotate(180deg) translateX(-4px); }
  32% { transform: rotate(180deg) translateX(-1px); }
  40% { transform: rotate(180deg) translateX(-3px); }
}

@keyframes site-fab-peek-island-pulse {
  0%, 100% {
    opacity: 1;
    box-shadow: var(--site-fab-island-collapsed-shadow);
  }
  50% {
    opacity: 0.88;
    box-shadow: var(--site-fab-island-pulse-shadow);
  }
}

/* ═══════════════════════════════════════════════════════════════
   STACK SHELL
   ═══════════════════════════════════════════════════════════════ */

body > #siteFabStack {
  --site-fab-widgets-slot: 0px;
  --site-fab-widgets-btn: calc(24px * 0.9);
}

@media (min-width: 769px) {
  body > #siteFabStack {
    --site-fab-widgets-btn: calc(26px * 0.9);
  }
}

body > #siteFabStack:has(> .zw-home-float-restore:not([hidden])) {
  /* 140px = прежние 100px + 40px ниже (ПК и мобилка) */
  --site-fab-widgets-slot: calc(var(--site-fab-widgets-btn) + 140px + var(--site-fab-widgets-island-gap, 1px));
}

body > #siteFabStack.site-fab-stack--collapsed > .zw-home-float-restore {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Restore-кнопка: вне #siteFabWidgets, на 140px ниже слота */
body > #siteFabStack > .zw-home-float-restore {
  position: absolute !important;
  right: 0 !important;
  left: auto !important;
  bottom: auto !important;
  top: calc(50% - var(--fab-island-r) - var(--site-fab-widgets-btn) - var(--site-fab-widgets-island-gap, 1px) + var(--site-fab-widgets-btn) + 140px) !important;
  transform: translate(var(--site-fab-widgets-nudge-x), var(--site-fab-widgets-nudge-y)) !important;
  z-index: 8;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

body > #siteFabStack > .zw-home-float-restore .zw-recruit-restore__text,
body > #siteFabStack > .zw-home-float-restore .zw-weather-restore__text {
  display: none !important;
}

body > #siteFabStack > .zw-home-float-restore .zw-recruit-restore__btn,
body > #siteFabStack > .zw-home-float-restore .zw-weather-restore__btn {
  --site-fab-restore-btn: 50px;
  writing-mode: horizontal-tb;
  transform: none;
  width: var(--site-fab-restore-btn);
  height: var(--site-fab-restore-btn);
  min-width: var(--site-fab-restore-btn);
  min-height: var(--site-fab-restore-btn);
  max-width: var(--site-fab-restore-btn);
  max-height: var(--site-fab-restore-btn);
  padding: 0;
  border-radius: 6px;
  font-size: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.2);
  touch-action: manipulation;
}

@media (max-width: 768px) {
  body > #siteFabStack > .zw-home-float-restore .zw-recruit-restore__btn,
  body > #siteFabStack > .zw-home-float-restore .zw-weather-restore__btn {
    --site-fab-restore-btn: 25px; /* в 2 раза меньше на мобиле */
    border-radius: 5px;
  }

  body > #siteFabStack > .zw-home-float-restore .zw-recruit-restore__btn::before {
    font-size: 0.55rem;
  }
}

body > #siteFabStack > .zw-home-float-restore .zw-recruit-restore__btn::before {
  content: '↺';
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
}

body > #siteFabStack.site-fab-stack {
  --fab-stack-w: var(--site-fab-expanded-w);
  --fab-stack-h: var(--site-fab-expanded-h);
  display: block !important;
  flex-direction: unset !important;
  align-items: unset !important;
  position: fixed !important;
  left: auto !important;
  transform: none !important;
  width: var(--fab-stack-w) !important;
  height: var(--fab-stack-h) !important;
  min-width: var(--fab-stack-w);
  min-height: var(--fab-stack-h);
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: visible !important;
  filter: none !important;
  z-index: var(--site-fab-z-index) !important;
}

@media (max-width: 768px) {
  body > #siteFabStack.site-fab-stack {
    top: calc(50vh - var(--fab-stack-h) / 2 + var(--fab-mobile-v-shift)) !important;
    right: 0 !important;
    bottom: auto !important;
  }

  body > #siteFabStack.site-fab-stack--collapsed {
    top: calc(50vh - var(--fab-island-r-peek) + var(--fab-mobile-v-shift)) !important;
    bottom: auto !important;
  }
}

@media (min-width: 769px) {
  body > #siteFabStack.site-fab-stack {
    top: calc(var(--fab-desktop-v-anchor) - var(--fab-stack-h) / 2) !important;
    right: 0 !important;
    bottom: auto !important;
  }

  body > #siteFabStack.site-fab-stack--collapsed {
    top: calc(var(--fab-desktop-v-anchor) - var(--fab-island-r-peek)) !important;
    bottom: auto !important;
  }
}

body > #siteFabStack.site-fab-stack--collapsed {
  --fab-stack-w: var(--fab-island-r-peek);
  --fab-stack-h: calc(var(--fab-island-r-peek) * 2);
  width: var(--fab-island-r-peek) !important;
  min-width: var(--fab-island-r-peek) !important;
  height: calc(var(--fab-island-r-peek) * 2) !important;
  min-height: calc(var(--fab-island-r-peek) * 2) !important;
}

body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit,
body > #siteFabStack.site-fab-stack--collapsed .site-fab-widgets {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   WIDGETS RESTORE — внутри FAB-колонки, над островком
   ═══════════════════════════════════════════════════════════════ */

body > #siteFabStack .site-fab-widgets {
  position: absolute;
  right: 0;
  top: calc(50% - var(--fab-island-r) - var(--site-fab-widgets-btn) - var(--site-fab-widgets-island-gap, 1px));
  width: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0;
  z-index: 8;
  pointer-events: none;
  transform: translate(var(--site-fab-widgets-nudge-x), var(--site-fab-widgets-nudge-y));
}

body > #siteFabStack .site-fab-widgets > .zw-home-float-restore {
  /* legacy: restore больше не монтируется внутрь widgets */
  display: none !important;
}

body > #siteFabStack .site-fab-widgets .zw-recruit-restore__text,
body > #siteFabStack .site-fab-widgets .zw-weather-restore__text {
  display: none !important;
}

body > #siteFabStack .site-fab-widgets .zw-recruit-restore__btn,
body > #siteFabStack .site-fab-widgets .zw-weather-restore__btn {
  writing-mode: horizontal-tb;
  transform: none;
  width: var(--site-fab-widgets-btn);
  height: var(--site-fab-widgets-btn);
  min-width: var(--site-fab-widgets-btn);
  min-height: var(--site-fab-widgets-btn);
  max-width: var(--site-fab-widgets-btn);
  max-height: var(--site-fab-widgets-btn);
  padding: 0;
  border-radius: 6px;
  font-size: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.2);
  touch-action: manipulation;
}

body > #siteFabStack .site-fab-widgets .zw-recruit-restore__btn::before {
  content: '↺';
  font-size: calc(0.72rem * 0.9);
  font-weight: 800;
  line-height: 1;
}

/* ═══════════════════════════════════════════════════════════════
   ISLAND HUB
   ═══════════════════════════════════════════════════════════════ */

body > #siteFabStack .site-fab-hub {
  position: absolute;
  right: 0;
  top: 50%;
  width: var(--fab-island-r);
  height: var(--fab-hub-h);
  margin: 0 !important;
  transform: translateY(-50%);
  z-index: 5;
  pointer-events: none;
  overflow: visible;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

body > #siteFabStack.site-fab-stack--collapsed .site-fab-hub {
  width: var(--fab-island-r-peek);
  height: calc(var(--fab-island-r-peek) * 2);
  pointer-events: auto;
  z-index: 10;
}

body > #siteFabStack.site-fab-stack--collapsed .site-fab-hub:hover .site-fab-collapse svg,
body > #siteFabStack.site-fab-stack--collapsed .site-fab-hub:focus-within .site-fab-collapse svg {
  animation-play-state: paused;
}

body > #siteFabStack .site-fab-hub .site-fab-collapse {
  pointer-events: auto;
}

body > #siteFabStack .site-fab-collapse {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  bottom: auto !important;
  transform: none !important;
  transition: border-radius 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.28s ease !important;
  z-index: 4;
  border: 1px solid var(--site-fab-island-border) !important;
  border-right: none !important;
  border-radius: var(--fab-island-r) 0 0 var(--fab-island-r) !important;
  background: var(--site-fab-island-bg) !important;
  box-shadow: var(--site-fab-island-shadow), inset 2px 0 8px rgba(255, 255, 255, 0.75) !important;
  color: var(--site-fab-island-text) !important;
  cursor: pointer;
}

body > #siteFabStack.site-fab-stack--collapsed .site-fab-collapse {
  justify-content: center !important;
  align-items: center !important;
  padding: 0 0 0 1px !important;
  border-radius: var(--fab-island-r-peek) 0 0 var(--fab-island-r-peek) !important;
  border-color: var(--site-fab-island-collapsed-border) !important;
  background: var(--site-fab-island-collapsed-bg) !important;
  box-shadow: var(--site-fab-island-collapsed-shadow) !important;
  color: var(--site-fab-island-collapsed-text) !important;
  overflow: visible !important;
  animation: site-fab-peek-island-pulse 3.2s ease-in-out infinite;
}

body > #siteFabStack.site-fab-stack--collapsed .site-fab-collapse svg {
  display: block !important;
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  min-height: 12px !important;
  color: var(--site-fab-island-collapsed-text) !important;
  stroke: currentColor !important;
  flex-shrink: 0;
  transition: none !important;
  transform: rotate(180deg);
  animation: site-fab-peek-chevron 2s cubic-bezier(0.45, 0, 0.25, 1) infinite !important;
  will-change: transform;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2));
}

body > #siteFabStack .site-fab-collapse svg {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0;
  transition: transform 0.35s ease;
}

body > #siteFabStack.site-fab-stack:not(.site-fab-stack--collapsed) .site-fab-collapse svg {
  transform: none;
}

/* ═══════════════════════════════════════════════════════════════
   ORBIT LAYOUT
   ═══════════════════════════════════════════════════════════════ */

body > #siteFabStack .site-fab-orbit {
  position: absolute !important;
  right: 0;
  top: 50%;
  width: 0;
  height: 0;
  transform: translateY(-50%);
  z-index: 3;
  pointer-events: none;
}

body > #siteFabStack .site-fab-orbit > .site-fab,
body > #siteFabStack .site-fab-orbit > .ai-guide-widget,
body > #siteFabStack .site-fab-orbit > .add-listing-widget {
  position: absolute !important;
  display: flex !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  inset: auto !important;
  width: var(--fab-orbit-size) !important;
  height: var(--fab-orbit-size) !important;
  min-width: var(--fab-orbit-size) !important;
  min-height: var(--fab-orbit-size) !important;
  margin: 0 !important;
  pointer-events: auto;
  transform: translate(calc(-50% + var(--fab-x, 0px)), calc(-50% + var(--fab-y, 0px))) !important;
  transition: transform 0.45s cubic-bezier(0.34, 1.28, 0.64, 1), opacity 0.3s ease, box-shadow 0.25s ease !important;
  will-change: transform;
  z-index: 2;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 50% !important;
  box-sizing: border-box !important;
  border: 2px solid transparent !important;
}

body > #siteFabStack .site-fab-orbit .site-fab__avatar,
body > #siteFabStack .site-fab-orbit .ai-avatar {
  width: var(--fab-orbit-size) !important;
  height: var(--fab-orbit-size) !important;
}

body > #siteFabStack .site-fab-orbit > .add-listing-widget.site-fab-radial {
  width: var(--fab-hub-size) !important;
  height: var(--fab-hub-size) !important;
  min-width: var(--fab-hub-size) !important;
  min-height: var(--fab-hub-size) !important;
  z-index: 6;
  border-color: var(--site-fab-add-ring) !important;
  background: var(--site-fab-add-fill) !important;
  box-shadow: var(--site-fab-add-shadow) !important;
}

body > #siteFabStack .site-fab-orbit > .add-listing-widget .add-listing-button {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  background: var(--site-fab-add-bg) !important;
  color: var(--site-fab-add-icon) !important;
}

body > #siteFabStack .site-fab-orbit > .add-listing-widget .big-plus svg {
  stroke: var(--site-fab-add-icon) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab-radial--add {
  --fab-x: calc(-1 * var(--fab-axis-inset-x));
  --fab-y: calc(-1 * var(--fab-orbit-r));
  transition-delay: 0.06s !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--train {
  --fab-x: calc(-1 * var(--fab-axis-inset-x) - var(--fab-orbit-diag));
  --fab-y: calc(-1 * var(--fab-orbit-r) * sin(45deg));
  transition-delay: 0.14s !important;
  border-color: var(--site-fab-train-ring) !important;
  background: var(--site-fab-train-fill) !important;
  box-shadow: var(--site-fab-train-shadow) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--bus {
  --fab-x: calc(-1 * var(--fab-axis-inset-x) - var(--fab-orbit-r));
  --fab-y: 0px;
  transition-delay: 0.1s !important;
  border-color: var(--site-fab-bus-ring) !important;
  background: var(--site-fab-bus-fill) !important;
  box-shadow: var(--site-fab-bus-shadow) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--sharedride {
  --fab-x: calc(-1 * var(--fab-axis-inset-x) - var(--fab-orbit-diag));
  --fab-y: calc(var(--fab-orbit-r) * sin(45deg));
  transition-delay: 0.08s !important;
  border-color: var(--site-fab-sharedride-ring) !important;
  background: var(--site-fab-sharedride-fill) !important;
  box-shadow: var(--site-fab-sharedride-shadow) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--blabla {
  --fab-x: calc(-1 * var(--fab-axis-inset-x));
  --fab-y: var(--fab-orbit-r);
  transition-delay: 0.18s !important;
  z-index: 5;
  border-color: var(--site-fab-blabla-ring) !important;
  background: var(--site-fab-blabla-fill) !important;
  box-shadow: var(--site-fab-blabla-shadow) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--blabla.ai-guide-widget {
  position: absolute !important;
  bottom: auto !important;
  right: auto !important;
  top: 50% !important;
  left: 50% !important;
}

.site-fab--lazy-loading {
  opacity: 0.55;
  pointer-events: none;
  cursor: wait;
}

body > #siteFabStack .site-fab-orbit > .site-fab:hover,
body > #siteFabStack .site-fab-orbit > .ai-guide-widget:hover,
body > #siteFabStack .site-fab-orbit > .add-listing-widget:hover {
  transform: translate(calc(-50% + var(--fab-x, 0px)), calc(-50% + var(--fab-y, 0px))) scale(1.06) !important;
}

body > #siteFabStack .site-fab-orbit > .add-listing-widget.site-fab-radial:hover {
  border-color: var(--site-fab-add-ring-hover) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--train:hover {
  border-color: var(--site-fab-train-ring-hover) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--bus:hover {
  border-color: var(--site-fab-bus-ring-hover) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--sharedride:hover {
  border-color: var(--site-fab-sharedride-ring-hover) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--blabla.ai-guide-widget:hover {
  border-color: var(--site-fab-blabla-ring-hover) !important;
}

body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .site-fab,
body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .ai-guide-widget,
body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .add-listing-widget {
  --fab-x: 0px !important;
  --fab-y: 0px !important;
  transform: translate(-50%, -50%) scale(0.12) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .site-fab--blabla { transition-delay: 0.14s !important; }
body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .site-fab--sharedride { transition-delay: 0.1s !important; }
body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .site-fab--bus { transition-delay: 0.06s !important; }
body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .site-fab--train { transition-delay: 0.03s !important; }
body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .site-fab-radial--add { transition-delay: 0s !important; }

body > #siteFabStack.site-fab-stack--no-anim .site-fab-orbit > *,
body > #siteFabStack.site-fab-stack--no-anim .site-fab-collapse,
body > #siteFabStack.site-fab-stack--no-anim .site-fab-collapse svg,
body > #siteFabStack.site-fab-stack--no-anim .site-fab-hub {
  transition: none !important;
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body > #siteFabStack.site-fab-stack--collapsed .site-fab-hub,
  body > #siteFabStack.site-fab-stack--collapsed .site-fab-collapse,
  body > #siteFabStack.site-fab-stack--collapsed .site-fab-collapse svg {
    animation: none !important;
  }
}

/* Bla Bla inner button */
body > #siteFabStack .site-fab-orbit > .site-fab--blabla .ai-guide-button,
body > #siteFabStack .site-fab-orbit > .site-fab--blabla .site-fab__blabla-btn {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

/* Avatars */
body > #siteFabStack .site-fab-orbit .site-fab__avatar,
body > #siteFabStack .site-fab-orbit .ai-avatar.site-fab__avatar {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  transform: scale(var(--fab-img-bleed)) !important;
  transform-origin: center center !important;
  filter: none !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--train .site-fab__avatar {
  object-position: 50% 50%;
  transform: scale(1.32) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--bus .site-fab__avatar {
  object-position: 50% 48%;
  transform: scale(1.3) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--sharedride .site-fab__avatar {
  object-position: 50% 50%;
  transform: scale(1.3) !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab--blabla .site-fab__avatar {
  object-position: 50% 46%;
  transform: scale(1.28) !important;
}

/* ═══════════════════════════════════════════════════════════════
   LEGACY style.css overrides — один остров FAB, без flex/slide сбоку
   ═══════════════════════════════════════════════════════════════ */

body > #siteFabStack.site-fab-stack {
  display: block !important;
  flex-direction: unset !important;
  align-items: unset !important;
  gap: 0 !important;
}

body > #siteFabStack .site-fab-collapse {
  margin-right: 0 !important;
  align-self: auto !important;
}

body > #siteFabStack .site-fab-orbit > .site-fab {
  position: absolute !important;
}

@media (max-width: 767px) {
  body > #siteFabStack.site-fab-stack .site-fab-collapse {
    margin-right: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
  }

  body > #siteFabStack.site-fab-stack .site-fab-orbit > .site-fab,
  body > #siteFabStack.site-fab-stack .site-fab-orbit > .ai-guide-widget,
  body > #siteFabStack.site-fab-stack .site-fab-orbit > .add-listing-widget {
    width: var(--fab-orbit-size) !important;
    height: var(--fab-orbit-size) !important;
    min-width: var(--fab-orbit-size) !important;
    min-height: var(--fab-orbit-size) !important;
    max-width: none !important;
    max-height: none !important;
  }

  body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .site-fab,
  body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .ai-guide-widget,
  body > #siteFabStack.site-fab-stack--collapsed .site-fab-orbit > .add-listing-widget {
    transform: translate(-50%, -50%) scale(0.12) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1280px) {
  :root {
    --site-fab-edge-gap: 14px;
  }
}

/* ── World + trains/buses: keep full FAB island (not BlaBla-only crush) ── */
html.market-is-world body > #siteFabStack.site-fab-stack--world-tx {
  /* Same geometry as country FAB — train / bus / BlaBla orbit */
  pointer-events: none;
}
html.market-is-world body > #siteFabStack.site-fab-stack--world-tx .site-fab-orbit > *,
html.market-is-world body > #siteFabStack.site-fab-stack--world-tx .site-fab-hub,
html.market-is-world body > #siteFabStack.site-fab-stack--world-tx .site-fab-collapse {
  pointer-events: auto;
}

/* ── World: only BlaBla icon, parked just above scroll-to-top ── */
html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla {
  --site-fab-widgets-slot: 0px;
  top: auto !important;
  left: auto !important;
  right: max(14px, env(safe-area-inset-right, 0px)) !important;
  /* Just above .zk-scroll-top (48px + small gap) */
  bottom: max(78px, calc(env(safe-area-inset-bottom, 0px) + 70px)) !important;
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  transform: none !important;
  overflow: visible !important;
  pointer-events: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla .site-fab-orbit {
  position: static !important;
  inset: auto !important;
  width: 56px !important;
  height: 56px !important;
  transform: none !important;
  pointer-events: none !important;
}

html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla .site-fab--blabla,
html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla .ai-guide-widget {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  margin: 0 !important;
  pointer-events: auto !important;
  opacity: 1 !important;
}

html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla .site-fab__blabla-btn,
html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla .ai-guide-button {
  width: 56px !important;
  height: 56px !important;
  border-radius: 999px !important;
}

/* World: scroll-top stays in the corner (not shifted for full FAB island) */
html.market-is-world .zk-scroll-top {
  right: max(14px, env(safe-area-inset-right, 0px)) !important;
  bottom: max(22px, calc(env(safe-area-inset-bottom, 0px) + 18px)) !important;
}

@media (min-width: 900px) {
  html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla {
    right: max(18px, env(safe-area-inset-right, 0px)) !important;
    bottom: max(88px, calc(env(safe-area-inset-bottom, 0px) + 80px)) !important;
  }
  html.market-is-world .zk-scroll-top {
    right: max(18px, env(safe-area-inset-right, 0px)) !important;
    bottom: max(28px, calc(env(safe-area-inset-bottom, 0px) + 24px)) !important;
  }
}

@media (max-width: 899px) {
  html.market-is-world body > #siteFabStack.site-fab-stack--world-blabla {
    /* Above mobile scroll-top (44px) + gap */
    bottom: max(76px, calc(env(safe-area-inset-bottom, 0px) + 68px)) !important;
  }
  html.market-is-world .zk-scroll-top {
    bottom: max(22px, calc(env(safe-area-inset-bottom, 0px) + 18px)) !important;
  }
}

/* === design-public-overrides.css === */
/**
 * Public palette + component colors (canonical).
 * Loads AFTER /assets/site-design.css — fixes Design Studio :root mistakes
 * and catalog-vivid !important conflicts.
 */
:root {
  --aff-border: rgba(108, 92, 231, 0.1);
  --buses-primary-soft: rgba(26, 115, 232, 0.08);
  --cb-bg-card: rgba(15, 23, 42, 0.85);
  --cb-bg-glass: rgba(255, 255, 255, 0.04);
  --cb-border: rgba(255, 255, 255, 0.08);
  --color-primary: #0a7575;
  --color-primary-dark: #047a7c;
  --color-primary-light: #14b0b3;
  --trains-primary-soft: rgba(26, 115, 232, 0.08);
  --z-action-primary: #ffce1b;
  --z-action-primary-hover: #f6db79;
  --z-brand-ocean: #0a7575;
  --z-brand-ocean-dark: #047a7c;
  --z-brand-ocean-light: #14b0b3;
  --z-text-dark: #1e293b;
  --zw-border: rgba(255, 255, 255, 0.2);
  --zw-ge-border: rgba(255, 255, 255, 0.18);
  --zw-ge-glass: rgba(15, 23, 42, 0.52);
  --zw-ge-muted: rgba(226, 232, 240, 0.78);
  --zw-glass: rgba(15, 23, 42, 0.48);
  --zw-muted: rgba(226, 232, 240, 0.78);
  --zw-r-badge: rgb(190, 81, 3);
  --zw-r-badge-text: #ffffff;
  --zw-r-border: rgba(255, 255, 255, 0.18);
  --zw-r-glass: rgba(15, 23, 42, 0.56);
  --zw-r-muted: rgba(226, 232, 240, 0.78);
}

/* Search: readable text on white dropdown (never white-on-white) */
.z-search-field,
input.z-search-field,
textarea.z-search-field,
.search-input,
.hero-search .search-input,
.z-search-field:focus,
.search-input:focus {
  color: var(--z-gray-600) !important;
  caret-color: var(--z-gray-600) !important;
  -webkit-text-fill-color: var(--z-gray-600) !important;
}

/* Hero homepage: неактивный стеклянный бар — placeholder и текст-подсказка белые */
.hero--cinematic .hero-search--homepage .hero-search__bar:not(:hover):not(:focus-within) .search-input.z-search-field:placeholder-shown,
.homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .hero-search__bar:not(:hover):not(:focus-within)
  .search-input.z-search-field:placeholder-shown,
body:not(.search-active)
  .hero--cinematic
  .hero-search--homepage
  .hero-search__bar:not(:focus-within)
  .search-input.z-search-field:placeholder-shown {
  color: #ffffff !important;
  caret-color: rgba(255, 255, 255, 0.9) !important;
  -webkit-text-fill-color: #ffffff !important;
}

.hero--cinematic .hero-search--homepage .z-search-field::placeholder,
.homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .z-search-field::placeholder,
.hero--cinematic .hero-search--homepage .z-search-field::-webkit-input-placeholder,
.homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .z-search-field::-webkit-input-placeholder {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

.hero--cinematic .hero-search--homepage .hero-search__bar:hover .z-search-field,
.hero--cinematic .hero-search--homepage .hero-search__bar:focus-within .z-search-field,
body.search-active .hero--cinematic .hero-search--homepage .z-search-field,
.homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .hero-search__bar:hover
  .z-search-field,
.homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .hero-search__bar:focus-within
  .z-search-field,
body.search-active
  .homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .z-search-field {
  color: var(--z-gray-900, #0f172a) !important;
  caret-color: var(--z-gray-900, #0f172a) !important;
  -webkit-text-fill-color: var(--z-gray-900, #0f172a) !important;
}

.hero--cinematic .hero-search--homepage .hero-search__bar:hover .z-search-field::placeholder,
.hero--cinematic .hero-search--homepage .hero-search__bar:focus-within .z-search-field::placeholder,
body.search-active .hero--cinematic .hero-search--homepage .z-search-field::placeholder,
.homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .hero-search__bar:hover
  .z-search-field::placeholder,
.homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .hero-search__bar:focus-within
  .z-search-field::placeholder,
body.search-active
  .homepage-hero-promo-stack
  .hero--cinematic
  .hero-search--homepage
  .z-search-field::placeholder,
.hero--cinematic .hero-search--homepage .hero-search__bar:hover .z-search-field::-webkit-input-placeholder,
.hero--cinematic .hero-search--homepage .hero-search__bar:focus-within .z-search-field::-webkit-input-placeholder,
body.search-active .hero--cinematic .hero-search--homepage .z-search-field::-webkit-input-placeholder {
  color: var(--z-gray-900, #0f172a) !important;
  -webkit-text-fill-color: var(--z-gray-900, #0f172a) !important;
  opacity: 1 !important;
}

.hero-search-card__title {
  color: var(--z-gray-900) !important;
}

/* Hero search result cards */
.hero-search-card__price-corner .hero-search-card__price,
.hero-search-card__meta .hero-search-card__price {
  color: #0a7575 !important;
}

.hero-search-card__opt {
  color: #0a7575 !important;
}

.hero-search-card__tag--more {
  color: #be5103 !important;
}

.hero-search-card__tag {
  background: linear-gradient(135deg, #faf1eb, #fae8dc) !important;
  color: #be5103 !important;
}

/* Category tabs */
.category-tab.active .cat-svg-icon {
  color: #ffffff !important;
}

.services-body.catalog-page-body .category-tab.active {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.services-body.catalog-page-body .subcategory-chip.active {
  background: var(--color-primary-light) !important;
  border-color: #0a7575 !important;
}

.subcategory-chip.active {
  background: var(--color-primary-light) !important;
  border-color: #0a7575 !important;
}

/* Catalog / home service cards */
.svc-card-arrow,
.services-body.catalog-page-body .svc-card-arrow {
  background: #e9f6f6 !important;
}

/* Category grid — без полосок сверху, единый футер */
.homepage-categories-section .category-grid .category-card::before,
.category-grid .category-card::before {
  display: none !important;
  content: none !important;
}

/* Popular categories — футер на всю ширину карты, без двойного градиента из style.css */
.homepage-categories-section .category-grid .category-count {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 0 !important;
  background: var(--z-surface-white, #fff) !important;
  background-image: none !important;
}

.homepage-categories-section .category-grid .category-card:hover .category-count {
  /* No background change — keep as-is */
}

.homepage-categories-section .category-grid .category-card:hover .category-count span:first-child,
.homepage-categories-section .category-grid .category-card:hover .category-count span:last-child {
  color: var(--z-brand-ocean, #0a7575) !important;
}

/* Photo cards: no hover text recolor — keep dual-halo white from photo-cards.css */
.homepage-categories-section .category-grid .category-card.category-card--photo:hover .category-count span:first-child,
.homepage-categories-section .category-grid .category-card.category-card--photo:hover .category-count span:last-child,
.homepage-categories-section .category-grid .category-card.category-card--photo:hover .category-title,
.homepage-categories-section .category-grid .category-card.category-card--photo:hover .category-description {
  color: #fff !important;
}

/* Градиентные полоски сверху карточек/блоков — отключены по всему публичному сайту */
.z-vivid-stripe-top::before,
.services-body.catalog-page-body .svc-filter-box::before,
.rental-container--listing-page .rental-main-info::before,
.rental-container--listing-page .booking-card::before,
.compass-filter-inline::before,
.compass-section-head::before,
.market-vivid-page .mkt-gallery-shell::before,
.market-vivid-page .mkt-panel::before,
.market-vivid-page .mkt-sidebar-card::before,
.mkt-board-filter-box::before,
.footer::before,
.partner-level-card::before,
.aff-level-card::before,
.td2-hero-card::before,
.category-card::before {
  display: none !important;
  content: none !important;
  background: none !important;
}

/* ── Заголовки секций: линия под title и шапки блоков — flat, без rainbow-gradient ── */
.section-heading::after,
.mkt-section-head__title::after {
  background: var(--color-primary, var(--z-brand-ocean, #3d7a99)) !important;
  background-image: none !important;
}

.passport-header,
.vehicle-passport .passport-header,
.excursion-section-header,
.vitrine-header,
.vitrine-category-header,
.food-menu-section .section-header,
.environment-section .section-header,
.compass-section-head h2 .section-icon,
.compass-section-head .section-icon,
.mkt-section-head__icon,
.tender-body .section-icon,
.td2-card__header-icon,
.trains-section-head .section-icon,
.buses-section-head .section-icon,
.listing-page-container .form-section-header .section-icon {
  background: var(--z-sl-ocean-soft, var(--z-brand-ocean-soft)) !important;
  background-image: none !important;
  color: var(--color-primary, var(--z-brand-ocean, #3d7a99)) !important;
}

.vitrine-header,
.vitrine-title,
.passport-header,
.passport-header h2,
.passport-header h3,
.excursion-section-header,
.excursion-section-header h2,
.excursion-section-header h3 {
  color: var(--z-text-headline, var(--z-text-headline)) !important;
  text-shadow: none !important;
}

.vitrine-title {
  color: var(--z-text-headline, var(--z-text-headline)) !important;
  text-shadow: none !important;
}

.vitrine-badge {
  background: var(--z-surface-white) !important;
  color: var(--color-primary-dark, var(--z-brand-ocean-dark)) !important;
  border: 1px solid rgba(61, 122, 153, 0.22) !important;
}

/* AI promo strip */
.home-ai-promo-section .home-ai-promo-card::before {
  display: none !important;
  background: none !important;
}

/* Compass home CTA + cards */
.homepage-compass-section .compass-home-cta__icon {
  background: #0a757521 !important;
  color: #0a7575 !important;
}

.homepage-compass-section .compass-home-cta:hover .compass-home-cta__icon {
  background: #ffce1b !important;
  color: #ffffff !important;
}

.compass-card:hover .compass-card-arrow,
.compass-vivid-page .compass-card:hover .compass-card-arrow {
  background: #ffce1b !important;
}

/* Recruitment widget — только экскурсия (GE); SR не трогаем */
.zw-recruit-ge {
  background: #10abab !important;
}

.zw-recruit-ge__toggle {
  background: #0a7575 !important;
}

.zw-recruit-ge__badge {
  background: #be5103 !important;
}

.zw-recruit-ge__thumb--icon {
  background: #ffce1b !important;
}

.zw-recruit-ge__progress {
  background: #ffffff57 !important;
}

.zw-recruit-ge__cta--primary {
  background: #ffce1b !important;
  color: #ffffff !important;
}

/* Footer — см. static/css/site-footer.css */

/* === site-footer.css === */
/* Repaired merge of sub-splits */

/**
 * Site footer — единый настраиваемый слой публичного сайта.
 *
 * Меняйте переменные ниже, overlay (ZOOKZY_DESIGN_ROOT/css/site-footer.css)
 * или Design Studio — без правок style.css / surface-text.css.
 */

:root {
  /* ── Оболочка футера ── */
  --site-footer-bg: var(--color-primary-dark, #047a7c);
  --site-footer-text: #ffffff;
  --site-footer-border-top: rgba(91, 168, 212, 0.35);
  --site-footer-max-width: 1400px;
  --site-footer-pad-x: var(--container-px, 1.25rem);
  --site-footer-pad-top: clamp(2.25rem, 4.5vw, 3.25rem);
  --site-footer-pad-bottom: var(--spacing-md, 1rem);

  /* ── Заголовки и ссылки ── */
  --site-footer-heading: #ffffff;
  --site-footer-body: #ffffff;
  --site-footer-link: #ffffff;
  --site-footer-link-hover: #ffffff;
  --site-footer-link-gap: var(--spacing-xs, 0.5rem);
  --site-footer-link-line-height: 1.45;
  --site-footer-heading-weight: 700;
  --site-footer-link-weight: 400;

  /* ── Copyright / bottom ── */
  --site-footer-bottom-text: #ffffff;

  /* ── Regulatory block ── */
  --site-footer-regulatory-text: #ffffff;
  --site-footer-regulatory-border: rgba(255, 255, 255, 0.16);
  --site-footer-regulatory-link: #ffffff;
  --site-footer-regulatory-link-hover: var(--z-sl-ocean-soft, #e0f2fe);

  /* ── Официальный справочник (светлая карточка) ── */
  --site-footer-official-bg: rgba(255, 255, 255, 0.82);
  --site-footer-official-border: var(--z-border-soft, rgba(148, 163, 184, 0.35));
  --site-footer-official-title: #0f172a;
  --site-footer-official-text: #475569;
  --site-footer-official-btn-bg: var(--z-surface-white, #ffffff);
  --site-footer-official-btn-text: #046868;
  --site-footer-official-btn-border: rgba(61, 122, 153, 0.28);
  --site-footer-official-btn-hover-bg: var(--z-sl-ocean-soft, #e0f2fe);
  --site-footer-official-btn-hover-text: var(--color-primary-dark, #047a7c);
  --site-footer-official-btn-active-bg: var(--z-sl-tea-soft, #ecfdf5);
  --site-footer-official-btn-active-text: var(--color-primary-dark, #047a7c);
  --site-footer-official-stripe: rgba(255, 255, 255, 0.18);
}

/* ═══════════════════════════════════════════════════════════════
   SHELL
   ═══════════════════════════════════════════════════════════════ */

.footer::before {
  display: none !important;
  content: none !important;
  background: none !important;
}

.footer {
  position: relative;
  isolation: isolate;
  background: var(--site-footer-bg) !important;
  background-image: none !important;
  color: var(--site-footer-text) !important;
  border-top: 1px solid var(--site-footer-border-top);
  padding: var(--site-footer-pad-top) var(--site-footer-pad-x) var(--site-footer-pad-bottom) !important;
  margin-top: 0 !important;
  overflow: hidden;
  font-size: 0.9rem;
  line-height: 1.6;
}

.footer::after {
  display: none;
}

footer.footer {
  margin-top: 0 !important;
}

.footer-content,
.footer-official-guide,
.footer-bottom,
.footer-regulatory {
  position: relative;
  z-index: 2;
  max-width: var(--site-footer-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--site-footer-pad-x);
  padding-right: var(--site-footer-pad-x);
  box-sizing: border-box;
}

.footer-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--spacing-md, 1rem);
  margin-bottom: 0;
  padding-top: 0.35rem;
  padding-bottom: 1.75rem;
  align-items: start;
}

.footer-section {
  min-width: 0;
}

.footer .social-share-buttons .share-btn {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* ═══════════════════════════════════════════════════════════════
   TYPOGRAPHY — белый на тёмном фоне
   ═══════════════════════════════════════════════════════════════ */

.footer,
.footer-regulatory {
  --z-heading-color: var(--site-footer-heading);
  --z-surface-text-color: var(--site-footer-text);
}

.footer :is(h1, h2, h3, h4, h5, h6):not(.footer-official-guide__title),
.footer-section .footer-heading {
  color: var(--site-footer-heading) !important;
  font-weight: var(--site-footer-heading-weight, 700);
  letter-spacing: 0.02em;
}

.footer-section .footer-heading {
  margin-bottom: var(--spacing-sm, 0.75rem);
  font-size: 1.05rem;
}

.footer-section p,
.footer-about-blurb {
  color: var(--site-footer-body) !important;
  font-size: 0.9rem;
  line-height: 1.6;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
  display: flex;
  flex-direction: column;
  gap: var(--site-footer-link-gap);
}

.footer-links li {
  margin: 0;
  line-height: var(--site-footer-link-line-height);
}

.footer-links a,
.footer-link-btn {
  color: var(--site-footer-link) !important;
  font-weight: var(--site-footer-link-weight, 400);
  transition: color var(--transition-fast, 0.15s ease);
  text-decoration: none;
  font-size: 0.9rem;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.35rem 0;
  box-sizing: border-box;
  line-height: var(--site-footer-link-line-height);
}

.footer-link-btn {
  background: none;
  border: none;
  padding: 0.35rem 0;
  margin: 0;
  font: inherit;
  cursor: pointer;
  text-align: left;
  width: auto;
  min-height: 44px;
}

.footer-links a:hover,
.footer-link-btn:hover {
  color: var(--site-footer-link-hover) !important;
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════
   OFFICIAL GUIDE CARD
   ═══════════════════════════════════════════════════════════════ */

.footer-official-guide {
  padding: 0.75rem 0;
  border-top: 1px solid var(--site-footer-official-stripe);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.footer-official-guide__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  padding: 1.1rem 1.35rem;
  background: var(--site-footer-official-bg) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--site-footer-official-border) !important;
  border-radius: var(--z-radius-card, 12px);
  box-shadow: var(--z-shadow-card, 0 2px 12px rgba(15, 23, 42, 0.06));
  --z-heading-color: var(--site-footer-official-title);
  --z-surface-text-color: var(--site-footer-official-text);
  color: var(--site-footer-official-text) !important;
}

.footer-official-guide__icon {
  font-size: 2rem;
  line-height: 1;
  flex-shrink: 0;
}

.footer-official-guide__body {
  flex: 1 1 220px;
  min-width: 0;
}

.footer .footer-official-guide .footer-official-guide__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--site-footer-official-title) !important;
}

.footer .footer-official-guide .footer-official-guide__text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--site-footer-official-text) !important;
}

.footer-official-guide__btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.15rem;
  border-radius: var(--z-radius-pill, 999px);
  font-weight: 600;
  font-size: 0.9rem;
  background: var(--site-footer-official-btn-bg) !important;
  color: var(--site-footer-official-btn-text) !important;
  border: 1px solid var(--site-footer-official-btn-border) !important;
  box-shadow: var(--z-shadow-card, 0 2px 12px rgba(15, 23, 42, 0.06));
  transition:
    background var(--transition-fast, 0.15s ease),
    color var(--transition-fast, 0.15s ease),
    box-shadow var(--transition-fast, 0.15s ease);
  text-decoration: none;
}

.footer-official-guide__btn:hover {
  background: var(--site-footer-official-btn-hover-bg) !important;
  color: var(--site-footer-official-btn-hover-text) !important;
  border-color: rgba(61, 122, 153, 0.4) !important;
  transform: none;
}

.footer-official-guide__btn--active {
  background: var(--site-footer-official-btn-active-bg) !important;
  color: var(--site-footer-official-btn-active-text) !important;
  border: 1px solid rgba(89, 154, 120, 0.32) !important;
}

/* ═══════════════════════════════════════════════════════════════
   BOTTOM + REGULATORY
   ═══════════════════════════════════════════════════════════════ */

.footer-bottom {
  padding-top: 1rem;
  padding-bottom: 0.5rem;
  border-top: none;
  text-align: center;
  color: var(--site-footer-bottom-text) !important;
  font-size: var(--font-size-sm, 0.875rem);
}

.footer-bottom p {
  margin: 0;
  color: var(--site-footer-bottom-text) !important;
}

.footer-regulatory {
  margin: 0.75rem auto 0;
  padding: 0.65rem max(6px, var(--spacing-xs, 0.5rem))
    calc(0.3rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--site-footer-regulatory-border) !important;
  color: var(--site-footer-regulatory-text) !important;
  font-size: clamp(0.78rem, 0.9vw, 0.9rem);
  line-height: 1.65;
  text-align: start;
  overflow: visible !important;
  max-height: none !important;
  white-space: normal !important;
  width: 100%;
}

.footer-regulatory p {
  margin: 0;
  display: block !important;
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
  white-space: normal !important;
  word-break: break-word;
  overflow-wrap: break-word;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: initial !important;
  text-overflow: clip !important;
}

.footer-regulatory__intro {
  color: #ffffff !important;
}

.footer-regulatory__intro,
.footer-regulatory__more {
  margin: 0;
  display: block;
  overflow: visible;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
}

.footer-regulatory__details {
  margin-top: 0.35rem;
}

.footer-regulatory__summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0;
  color: #ffffff !important;
  font-size: 0.88em;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.footer-regulatory__summary::-webkit-details-marker {
  display: none;
}

.footer-regulatory__summary::marker {
  content: "";
}

.footer-regulatory__chev {
  display: inline-block;
  font-size: 0.68rem;
  line-height: 1;
  opacity: 0.92;
  transform: rotate(0deg);
  transition: transform 0.2s ease;
}

.footer-regulatory__expand-label {
  font-size: 0.92em;
  text-decoration: underline;
  text-underline-offset: 2px;
  opacity: 0.95;
}

.footer-regulatory__details[open] .footer-regulatory__chev {
  transform: rotate(90deg);
}

.footer-regulatory__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.footer-regulatory__more {
  margin-top: 0.4rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: #ffffff !important;
}

.footer-regulatory a {
  color: var(--site-footer-regulatory-link) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(255, 255, 255, 0.45);
}

.footer-regulatory a:hover {
  color: var(--site-footer-regulatory-link-hover) !important;
}

/* ═══════════════════════════════════════════════════════════════
   PAGE-BOTTOM DISCLAIMERS (слот перед footer)
   Стили полоски — legal-no-copy.css
   ═══════════════════════════════════════════════════════════════ */

main#main-content {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.page-footer-disclaimer-slot:empty {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 480px),
  screen and (min-width: 769px) and (max-width: 1280px) and (max-height: 450px) and (min-height: 240px) and (hover: none) {
  .footer-content {
    grid-template-columns: 1fr 1fr !important;
    gap: 1.25rem 0.85rem !important;
    padding-bottom: 1.25rem !important;
  }

  .footer-section:first-child {
    grid-column: 1 / -1 !important;
  }

  .footer-section .footer-heading,
  .footer-section:not(:first-child) .footer-heading,
  .footer-section:first-child .footer-heading {
    font-size: 0.92rem !important;
    margin-bottom: 0.5rem !important;
    letter-spacing: 0.01em !important;
    line-height: 1.25 !important;
    color: var(--site-footer-heading) !important;
  }

  .footer-links a,
  .footer-link-btn,
  .footer-section:not(:first-child) .footer-links a {
    font-size: 0.8rem !important;
    line-height: 1.4 !important;
    color: #ffffff !important;
  }

  .footer-about-blurb,
  .footer-content p,
  .footer-bottom p {
    font-size: 0.85rem !important;
    line-height: 1.55 !important;
    color: #ffffff !important;
  }

  .footer-regulatory {
    border-top-color: var(--site-footer-regulatory-border) !important;
  }

  .footer-official-guide__inner {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "icon body"
      "btn btn";
    align-items: start;
    column-gap: 0.75rem;
    row-gap: 0.55rem;
    padding: 0.85rem 1rem;
  }

  .footer-official-guide__icon {
    grid-area: icon;
    font-size: 1.65rem;
  }

  .footer-official-guide__body {
    grid-area: body;
    flex: none;
    min-width: 0;
  }

  .footer-official-guide__btn {
    grid-area: btn;
    width: 100%;
    text-align: center;
    justify-content: center;
    margin-top: 0;
  }
}

/* Планшет / phablet (высокий экран): «О нас» на всю ширину, 3 колонки списков как на ПК */

@media (min-width: 481px) and (max-width: 1023px) and (min-height: 451px) {
  .footer-content {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: clamp(1rem, 2vw, 2.5rem) !important;
    padding-bottom: 1.75rem !important;
  }

  .footer-section:first-child {
    grid-column: 1 / -1 !important;
  }

  .footer-section:not(:first-child) .footer-heading {
    font-size: 0.92rem !important;
    letter-spacing: 0.01em !important;
    line-height: 1.25 !important;
    margin-bottom: 0.5rem !important;
  }

  .footer-links a,
  .footer-link-btn {
    font-size: 0.85rem !important;
    line-height: var(--site-footer-link-line-height, 1.45) !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  .footer-section:not(:first-child) .footer-links {
    gap: 0.42rem !important;
  }
}

/* Все планшеты + desktop: рельса и компактные ссылки как на ПК */
@media (min-width: 769px) {
  :root {
    --site-footer-pad-x: var(--catalog-rail-px, 12px);
  }

  .footer-content,
  .footer-bottom,
  .footer-regulatory,
  .footer-official-guide {
    max-width: var(--catalog-rail-max, 1340px) !important;
    padding-left: var(--catalog-rail-px, 12px) !important;
    padding-right: var(--catalog-rail-px, 12px) !important;
  }

  .footer-links a,
  .footer-link-btn {
    min-height: 0 !important;
    padding: 0 !important;
    display: inline !important;
    line-height: var(--site-footer-link-line-height, 1.45) !important;
  }

  .footer-links {
    gap: var(--site-footer-link-gap, 0.5rem) !important;
  }

  .footer-links li {
    margin: 0 !important;
    line-height: var(--site-footer-link-line-height, 1.45) !important;
  }

  .footer-section .footer-heading {
    margin-bottom: 0.5rem !important;
  }
}

/* === ui-buttons-flat.css === */
/**
 * Interactive controls — flat solid fills, no gradients.
 * Loaded last in base.html (after design-public-overrides and page extra_css).
 */

/* ── Strip gradient layers ── */
.btn-primary,
.btn-accent,
.btn-theme,
.btn-success,
.btn-glow,
.wb-btn-primary,
.wb-btn-accent,
.wb-btn-success,
[class*="-btn--primary"],
[class*="-btn-primary"],
[class*="-page-btn"].next,
.comm-page-btn--active,
.auth-submit,
.auth-tab.is-active,
.lang-btn.active,
.compass-tab.active,
.tender-body .compass-tab.active,
.tender-cat-chip.active,
.market-body .compass-tab.active,
.places-kind-chip.active,
.category-tab.active,
.subcategory-chip.active,
.pagination-compact .btn-primary,
.pagination .page-item.active .page-link,
.catalog-page-btn.next,
.compass-page-btn.next,
.places-page-btn.next,
.mkt-action-btn--primary,
.market-vivid-page .mkt-action-btn--primary,
body.market-vivid-body .mkt-offer-modal .btn-primary,
body.market-vivid-body .mkt-confirm-modal .btn-primary,
.listing-vivid-page .booking-card .btn-primary,
.listing-vivid-page .booking-card .book-btn,
.listing-vivid-page .sidebar-book-btn,
.listing-vivid-page .btn-theme,
.listing-vivid-page .shop-book-visit-btn,
.listing-vivid-page .booking-card button[type="submit"]:not(.btn-outline),
.rental-container .booking-card .btn-primary,
.rental-container .booking-card .book-btn,
.rental-container .sidebar-book-btn,
.rental-container .btn-theme,
.rental-container .shop-book-visit-btn,
.tender-filter-submit,
.tender-propose-btn,
.td2-cta-btn,
.td2-cta-btn.active,
.td2-cta-card .td2-cta-btn--propose,
.partner-cta-btn,
.promo-create-btn,
.buy-level-btn,
.add-listing-button,
body > #siteFabStack .site-fab-orbit > .add-listing-widget .add-listing-button,
.search-auth-gate__btn--login,
.search-auth-gate__btn--premium,
.search-auth-gate__btn--register,
.blabla-premium-gate__btn,
#aiGuideChat .chat-conv-btn-summary,
#aiGuideChat .chat-summary-btn,
.promo-banner-primary,
.listing-auth-section .btn-block,
.contact-auth-btn--primary,
.zk-cc-btn--primary,
.pwa-install-btn,
.official-filter-submit,
.poi-hub-btn--primary,
.pan-btn--primary,
.pp-btn-primary,
.pp-btn-sm,
.cb-btn-primary,
.bo-submit-btn,
.zookzy-ad-invite-modal__btn--primary,
.comm-filter-btn,
.buy-slots-btn,
.graduation-btn,
.pp-premium-buy-btn,
.premium-buy-btn,
.wallet-promo-btn,
.wallet-redeem-btn,
.pay-form-btn,
.boost-submit-btn,
.pr-order-submit,
.pin-inline-btn,
.my-listings-header .btn-add,
.btn-submit-draft,
.btn-boost-listing,
.btn-promo-review-order,
.rv-cta-btn,
.rv-sticky-cta-btn,
.place-cbt-cta__btn {
  background-image: none !important;
}

/* ── Primary CTA (yellow action) ── */
.btn-primary,
button.btn-primary,
a.btn-primary,
input.btn-primary[type="submit"],
.wb-btn-primary,
.auth-submit,
.chat-auth-inline-submit,
.contact-auth-btn--primary,
.zookzy-ad-invite-modal__btn--primary,
.pan-btn--primary,
.pp-btn-primary,
.pp-btn-sm,
.cb-btn-primary,
.profile-body.pcb-page .cb-btn-primary {
  background: var(--z-action-primary, #ffce1b) !important;
  color: var(--z-surface-white, #fff) !important;
}

.btn-primary:hover,
button.btn-primary:hover,
a.btn-primary:hover,
.wb-btn-primary:hover:not(:disabled),
.auth-submit:hover:not(:disabled),
.chat-auth-inline-submit:hover:not(:disabled),
.contact-auth-btn--primary:hover,
.zookzy-ad-invite-modal__btn--primary:hover,
.pan-btn--primary:hover,
.pp-btn-primary:hover,
.pp-btn-sm:hover,
.cb-btn-primary:hover,
.profile-body.pcb-page .cb-btn-primary:hover {
  background: var(--z-action-primary-hover, #f6db79) !important;
  color: var(--z-surface-white, #fff) !important;
}

/* ── Accent / lotus ── */
.btn-accent,
.wb-btn-accent {
  background: var(--z-sl-lotus, #ee6d8a) !important;
  color: var(--z-surface-white, #fff) !important;
}

.btn-accent:hover,
.wb-btn-accent:hover {
  background: var(--z-sl-lotus-dark, #d65c7a) !important;
}

/* ── Brand ocean (pagination, vivid, tender, market) ── */
.catalog-page-btn.next,
.compass-page-btn.next,
.places-page-btn.next,
.comm-page-btn--active,
.pagination-compact .btn-primary,
.pagination .page-item.active .page-link,
.mkt-action-btn--primary,
.market-vivid-page .mkt-action-btn--primary,
body.market-vivid-body .mkt-offer-modal .btn-primary,
body.market-vivid-body .mkt-confirm-modal .btn-primary,
.listing-vivid-page .booking-card .btn-primary,
.listing-vivid-page .booking-card .book-btn,
.listing-vivid-page .sidebar-book-btn,
.listing-vivid-page .btn-theme,
.listing-vivid-page .shop-book-visit-btn,
.listing-vivid-page .booking-card button[type="submit"]:not(.btn-outline),
.rental-container .booking-card .btn-primary,
.rental-container .booking-card .book-btn,
.rental-container .sidebar-book-btn,
.rental-container .btn-theme,
.rental-container .shop-book-visit-btn,
.tender-filter-submit,
.tender-propose-btn,
.td2-cta-card .td2-cta-btn--propose,
.compass-tab.active,
.tender-body .compass-tab.active,
.market-body .compass-tab.active,
.tender-cat-chip.active,
.places-kind-chip.active,
.category-tab.active,
.subcategory-chip.active,
.official-filter-submit,
.poi-hub-btn--primary,
.btn-theme,
.btn-success,
.btn-glow,
.wb-btn-success,
.td2-cta-btn.active,
.auth-tab.is-active,
.lang-btn.active,
#aiGuideChat .chat-conv-btn-summary,
#aiGuideChat .chat-summary-btn,
.listing-auth-section .btn-block,
.bo-submit-btn,
.boost-submit-btn,
.pr-order-submit,
.wallet-redeem-btn,
.pay-form-btn,
.btn-submit-draft,
.my-listings-header .btn-add,
.place-cbt-cta__btn {
  background: var(--color-primary, #0a7575) !important;
  color: var(--z-surface-white, #fff) !important;
}

.catalog-page-btn.next:hover,
.compass-page-btn.next:hover,
.places-page-btn.next:hover,
.mkt-action-btn--primary:hover,
.market-vivid-page .mkt-action-btn--primary:hover,
.listing-vivid-page .booking-card .btn-primary:hover,
.listing-vivid-page .booking-card .book-btn:hover,
.listing-vivid-page .sidebar-book-btn:hover,
.listing-vivid-page .btn-theme:hover,
.rental-container .booking-card .btn-primary:hover,
.rental-container .booking-card .book-btn:hover,
.tender-filter-submit:hover,
.tender-propose-btn:hover,
.compass-tab.active:hover {
  background: var(--color-primary-dark, #047a7c) !important;
}

/* ── Partner / purple cabinet buttons ── */
.partner-cta-btn,
.promo-create-btn,
.buy-level-btn,
.comm-filter-btn,
.buy-slots-btn,
.wallet-promo-btn,
.btn-boost-listing:hover,
.btn-promo-review-order:hover {
  background: var(--z-purple-aff, #6c5ce7) !important;
  color: var(--z-surface-white, #fff) !important;
}

.partner-cta-btn--buy,
.partner-level-card--t5 .partner-cta-btn--buy,
.partner-level-card:nth-child(5) .partner-cta-btn--buy,
.pp-premium-buy-btn,
.premium-buy-btn,
.search-auth-gate__btn--premium,
.blabla-premium-gate__btn {
  background: var(--z-brand-saffron, #d69d30) !important;
  color: var(--z-surface-white, #fff) !important;
}

/* ── Search auth gate ── */
.search-auth-gate__btn--login {
  background: var(--z-action-blue, #1a73e8) !important;
  color: var(--z-surface-white, #fff) !important;
}

.search-auth-gate__btn--register {
  background: var(--z-brand-tea, #599a78) !important;
  color: var(--z-surface-white, #fff) !important;
}

/* ── FAB + listing modal ── */
.add-listing-button,
body > #siteFabStack .site-fab-orbit > .add-listing-widget .add-listing-button {
  background: var(--z-action-primary, #ffce1b) !important;
  color: var(--z-surface-white, #fff) !important;
}

/* ── Promo banner (clickable) ── */
.promo-banner-primary {
  background: var(--z-surface-sky, var(--z-brand-ocean-soft)) !important;
  color: var(--z-text-headline, #202124) !important;
}

.promo-banner-primary::before {
  display: none !important;
  background: none !important;
}

/* ── Cookie / PWA ── */
.zk-cc-btn--primary {
  background: var(--z-action-primary, #ffce1b) !important;
  color: var(--z-surface-white, #fff) !important;
}

.zk-cc-btn--primary:hover {
  background: var(--z-action-primary-hover, #f6db79) !important;
}

.pwa-install-btn {
  background: var(--color-primary, #0a7575) !important;
  color: var(--z-surface-white, #fff) !important;
}

/* Tender FAB choice cards keep their own surface styles (not flat CTA paints). */

.comm-page-btn--active {
  border-color: transparent !important;
}

/* ── Pagination unify: ocean prev/next, no shadows (loaded last) ── */
.catalog-page-btn,
.catalog-page-btn.prev,
.catalog-page-btn.next,
.catalog-page-btn.next:hover,
.compass-page-btn,
.compass-page-btn.prev,
.compass-page-btn.next,
.compass-page-btn.next:hover,
.places-page-btn,
.places-page-btn.prev,
.places-page-btn.next,
.places-page-btn.next:hover,
.trains-page-btn,
.trains-page-btn.prev,
.trains-page-btn.next,
.trains-page-btn.next:hover,
.buses-page-btn,
.buses-page-btn.prev,
.buses-page-btn.next,
.buses-page-btn.next:hover,
.pagination-compact .btn,
.pagination-compact .btn-primary,
.pagination-compact .btn-primary:hover,
.pagination .page-link,
.pagination .page-item.active .page-link,
.pagination-bar a,
.pagination-bar span.pg-current {
  box-shadow: none !important;
}

.catalog-page-btn.prev,
.compass-page-btn.prev,
.places-page-btn.prev,
.trains-page-btn.prev,
.buses-page-btn.prev {
  background: var(--color-primary, #0a7575) !important;
  background-image: none !important;
  color: #fff !important;
  border-color: transparent !important;
}

.catalog-page-btn.prev:hover,
.compass-page-btn.prev:hover,
.places-page-btn.prev:hover,
.trains-page-btn.prev:hover,
.buses-page-btn.prev:hover {
  background: var(--color-primary-dark, #047a7c) !important;
  color: #fff !important;
  border-color: transparent !important;
}

/* ── Trains / Buses pagination: match Compass layout ── */
.trains-pagination,
.buses-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 28px 0 12px;
  padding-top: 20px;
  border-top: 1px solid #f1f5f9;
  flex-wrap: wrap;
}

.trains-page-btn,
.buses-page-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.8rem;
  text-decoration: none;
  transition: all 0.2s ease;
  border: 1.5px solid transparent;
  box-sizing: border-box;
}

.trains-page-btn.prev,
.buses-page-btn.prev {
  background: var(--color-primary, #0a7575);
  color: #fff;
}

.trains-page-btn.prev:hover,
.buses-page-btn.prev:hover {
  background: var(--color-primary-dark, #047a7c);
  color: #fff;
}

.trains-page-btn.next,
.buses-page-btn.next {
  background: var(--color-primary, #0a7575);
  color: #fff;
}

.trains-page-btn.next:hover,
.buses-page-btn.next:hover {
  background: var(--color-primary-dark, #047a7c);
  box-shadow: none;
  transform: translateY(-1px);
}

.trains-page-info,
.buses-page-info {
  font-size: 0.78rem;
  color: #94a3b8;
  font-weight: 500;
}

.trains-page-info strong,
.buses-page-info strong {
  color: #0f172a;
}

/* === site-booking-block.css === */
/* Repaired merge of sub-splits */

/* Repaired merge of sub-splits */

/**
 * Site booking block — единый настраиваемый слой (.booking-card / .booking-sidebar).
 *
 * Меняйте переменные ниже, overlay (ZOOKZY_DESIGN_ROOT/css/site-booking-block.css)
 * или Design Studio — без правок шаблонов и detail-page.css.
 */

:root {
  /* ── Карточка ── */
  --site-booking-bg-from: var(--z-sl-saffron-soft, #fef9ec);
  --site-booking-bg-mid: var(--z-surface-white, #ffffff);
  --site-booking-bg-to: var(--z-sl-ocean-soft, #e8f4fa);
  --site-booking-border: rgba(214, 157, 48, 0.28);
  --site-booking-shadow: 0 6px 24px rgba(214, 157, 48, 0.12);
  --site-booking-radius: var(--radius-2xl, 16px);
  --site-booking-padding: var(--spacing-xl, 2rem);

  /* ── Текст ── */
  --site-booking-text: var(--color-dark, #0f172a);
  --site-booking-text-muted: var(--color-gray, #64748b);
  --site-booking-label: var(--color-dark, #0f172a);

  /* ── Поля ── */
  --site-booking-input-bg: #ffffff;
  --site-booking-input-border: var(--color-gray-light, #e2e8f0);
  --site-booking-input-text: var(--site-booking-text);
  --site-booking-input-focus-border: var(--theme-from, var(--color-primary, #0a7575));
  --site-booking-input-focus-ring: rgba(6, 148, 148, 0.12);
  --site-booking-divider: var(--color-gray-light, #e2e8f0);

  /* ── Цена ── */
  --site-booking-price-from: var(--z-sl-ocean, #3d7a99);
  --site-booking-price-to: var(--z-sl-tea, #599a78);

  /* ── Кнопка бронирования ── */
  --site-booking-btn-bg: var(--color-primary, #0a7575);
  --site-booking-btn-text: #ffffff;
  --site-booking-btn-border: transparent;
  --site-booking-btn-shadow: 0 4px 14px rgba(61, 122, 153, 0.28);
  --site-booking-btn-hover-bg: var(--color-primary-dark, #047a7c);

  /* ── Price breakdown / routes ── */
  --site-booking-panel-bg: rgba(0, 0, 0, 0.02);
  --site-booking-panel-bg-end: rgba(0, 0, 0, 0.04);
  --site-booking-panel-border: rgba(0, 0, 0, 0.08);
  --site-booking-breakdown-border-top: rgba(0, 0, 0, 0.1);

  /* ── Подсказки ── */
  --site-booking-hint-text: #475569;
  --site-booking-hint-bg: rgba(15, 118, 110, 0.06);
  --site-booking-hint-border: rgba(20, 184, 166, 0.22);

  /* ── Тип бронирования / people ── */
  --site-booking-option-bg: #ffffff;
  --site-booking-option-border: var(--color-gray-light, #e2e8f0);
  --site-booking-option-hover-bg: rgba(6, 148, 148, 0.04);
  --site-booking-option-active-bg: rgba(6, 148, 148, 0.08);
  --site-booking-people-hover-text: #ffffff;

  /* ── Multi-picker ── */
  --site-booking-multi-bg: rgba(255, 255, 255, 0.72);
  --site-booking-multi-border: rgba(15, 23, 42, 0.12);

  /* ── Статусы ── */
  --site-booking-state-success-bg: linear-gradient(135deg, rgba(34, 197, 94, 0.08) 0%, rgba(34, 197, 94, 0.15) 100%);
  --site-booking-state-success-border: rgba(34, 197, 94, 0.2);
  --site-booking-state-pin-bg: linear-gradient(135deg, rgba(59, 130, 246, 0.06) 0%, rgba(99, 102, 241, 0.12) 100%);
  --site-booking-state-pin-border: rgba(99, 102, 241, 0.2);
  --site-booking-state-pending-bg: linear-gradient(135deg, rgba(245, 158, 11, 0.06) 0%, rgba(245, 158, 11, 0.12) 100%);
  --site-booking-state-pending-border: rgba(245, 158, 11, 0.2);
  --site-booking-state-paywall-bg: linear-gradient(135deg, rgba(34, 197, 94, 0.06) 0%, rgba(99, 102, 241, 0.1) 100%);
  --site-booking-state-paywall-border: rgba(99, 102, 241, 0.2);
  --site-booking-state-declined-bg: linear-gradient(135deg, rgba(239, 68, 68, 0.06) 0%, rgba(239, 68, 68, 0.12) 100%);
  --site-booking-state-declined-border: rgba(239, 68, 68, 0.2);
  --site-booking-state-expired-bg: linear-gradient(135deg, rgba(156, 163, 175, 0.08) 0%, rgba(156, 163, 175, 0.15) 100%);
  --site-booking-state-expired-border: rgba(156, 163, 175, 0.2);
  --site-booking-state-label-success: #16a34a;
  --site-booking-state-label-warning: #d97706;
  --site-booking-state-label-error: #dc2626;
  --site-booking-state-label-info: #6366f1;
  --site-booking-state-text: #6b7280;
  --site-booking-state-details: #374151;

  /* ── PIN ── */
  --site-booking-pin-bg: #ffffff;
  --site-booking-pin-border: rgba(99, 102, 241, 0.3);
  --site-booking-pin-text: #4f46e5;

  /* ── Контакты ── */
  --site-booking-wa-color: #25d366;

  /* ── Календарь доступности ── */
  --site-booking-cal-bg: rgba(59, 130, 246, 0.06);
  --site-booking-cal-head: var(--z-gray-700, #374151);
  --site-booking-cal-free-bg: rgba(34, 197, 94, 0.18);
  --site-booking-cal-free-text: var(--z-green-800, #166534);
  --site-booking-cal-partial-bg: rgba(234, 179, 8, 0.22);
  --site-booking-cal-partial-text: #854d0e;
  --site-booking-cal-full-bg: rgba(239, 68, 68, 0.15);
  --site-booking-cal-full-text: #991b1b;
}

/* ═══════════════════════════════════════════════════════════════
   SHELL
   ═══════════════════════════════════════════════════════════════ */

.booking-sidebar {
  position: sticky;
  top: 84px;
  height: fit-content;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}

.booking-card {
  background: linear-gradient(
    145deg,
    var(--site-booking-bg-from) 0%,
    var(--site-booking-bg-mid) 50%,
    var(--site-booking-bg-to) 100%
  ) !important;
  padding: var(--site-booking-padding);
  border-radius: var(--site-booking-radius);
  box-shadow: var(--site-booking-shadow) !important;
  border: 1px solid var(--site-booking-border) !important;
  position: relative;
  overflow: hidden;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}

.booking-card::before {
  display: none !important;
  content: none !important;
}

.rental-container--listing-page .booking-card {
  background: linear-gradient(
    145deg,
    var(--site-booking-bg-from) 0%,
    var(--site-booking-bg-mid) 55%
  ) !important;
}

.listing-vivid-page .booking-card {
  background: linear-gradient(
    145deg,
    var(--site-booking-bg-from) 0%,
    var(--site-booking-bg-mid) 50%,
    var(--site-booking-bg-to) 100%
  ) !important;
}

/* ═══════════════════════════════════════════════════════════════
   PRICE + CTA
   ═══════════════════════════════════════════════════════════════ */

.booking-card .price-tag,
.booking-card .price-tag--theme,
.booking-card .booking-price-display,
.listing-vivid-page .price-tag,
.listing-vivid-page .price-tag--theme,
.listing-vivid-page .booking-price-display {
  background: linear-gradient(
    135deg,
    var(--site-booking-price-from),
    var(--site-booking-price-to)
  ) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

.booking-card .btn-primary,
.booking-card .book-btn,
.booking-card .sidebar-book-btn,
.booking-card .btn-theme,
.booking-card .shop-book-visit-btn,
.booking-card button[type="submit"]:not(.btn-outline),
.listing-vivid-page .booking-card .btn-primary,
.listing-vivid-page .booking-card .book-btn,
.listing-vivid-page .sidebar-book-btn,
.listing-vivid-page .btn-theme,
.listing-vivid-page .shop-book-visit-btn,
.listing-vivid-page .booking-card button[type="submit"]:not(.btn-outline),
.rental-container .booking-card .btn-primary,
.rental-container .booking-card .book-btn,
.rental-container .sidebar-book-btn {
  background: var(--site-booking-btn-bg) !important;
  background-image: none !important;
  color: var(--site-booking-btn-text) !important;
  border-color: var(--site-booking-btn-border) !important;
  box-shadow: var(--site-booking-btn-shadow) !important;
}

.booking-card .btn-primary:hover,
.booking-card .book-btn:hover,
.booking-card .sidebar-book-btn:hover:not(:disabled),
.listing-vivid-page .booking-card .btn-primary:hover,
.listing-vivid-page .booking-card .book-btn:hover,
.rental-container .booking-card .btn-primary:hover,
.rental-container .booking-card .book-btn:hover {
  background: var(--site-booking-btn-hover-bg) !important;
  filter: brightness(1.05);
}

.listing-vivid-page .sidebar-divider,
.booking-card .sidebar-divider {
  border-color: rgba(91, 168, 212, 0.2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   FORM FIELDS
   ═══════════════════════════════════════════════════════════════ */

.booking-card .sidebar-field {
  margin-bottom: 16px;
}

.booking-card .sidebar-field-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--site-booking-label);
}

.booking-card .sidebar-field-input,
.listing-vivid-page .sidebar-field-input {
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--radius-md, 8px);
  border: 1px solid var(--site-booking-input-border) !important;
  background: var(--site-booking-input-bg);
  color: var(--site-booking-input-text);
  font-size: 0.9rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.booking-card .sidebar-field-input:focus,
.listing-vivid-page .sidebar-field-input:focus {
  border-color: var(--site-booking-input-focus-border) !important;
  outline: none;
  box-shadow: 0 0 0 3px var(--site-booking-input-focus-ring);
}

.booking-card .price-breakdown {
  margin-bottom: 16px;
  padding: 12px 14px;
  background: var(--site-booking-panel-bg);
  border-radius: var(--radius-lg, 12px);
  border: 1px solid var(--site-booking-panel-border);
}

.booking-card .price-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  font-size: 0.88rem;
  color: var(--site-booking-text);
}

.booking-card .price-line--total {
  margin-top: 6px;
  padding-top: 10px;
  border-top: 1px solid var(--site-booking-breakdown-border-top);
  font-size: 0.95rem;
}

.booking-card .sidebar-book-btn {
  width: 100%;
  padding: 14px;
  font-weight: 700;
  font-size: 0.92rem;
  border-radius: var(--radius-xl, 14px);
  margin-top: 16px;
  margin-bottom: 16px;
  letter-spacing: 0.02em;
  transition: all 0.2s ease;
}

.booking-card .sidebar-book-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.booking-contacts-hint {
  margin: 0 0 1rem;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--site-booking-hint-text);
  background: var(--site-booking-hint-bg);
  border: 1px solid var(--site-booking-hint-border);
}

.booking-card #bookingStatusBanner {
  margin-top: 12px;
  margin-bottom: 12px;
}

.booking-card .booking-state-card {
  margin-top: 12px;
  margin-bottom: 16px;
}

.booking-card .sidebar-divider {
  margin: 16px 0;
  border: none;
  border-top: 1px solid var(--site-booking-divider);
}

.booking-card #contactButtonsArea {
  margin-top: 4px;
}

.booking-card #maskedContactsBlock,
.booking-card #revealedContactsBlock {
  margin-top: 12px;
  margin-bottom: 12px;
}

.booking-card .sidebar-expert-card {
  margin-top: 16px !important;
  margin-bottom: 4px;
}

.booking-card .sidebar-footer-info {
  padding-top: 16px !important;
  margin-top: 16px !important;
  border-top: 1px solid var(--site-booking-divider) !important;
}

.booking-card .sidebar-support {
  margin-top: 8px;
  margin-bottom: 0;
  padding-top: 0;
}

.booking-card .sidebar-info-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
  color: var(--site-booking-text-muted);
  margin-top: 4px;
  margin-bottom: 4px;
}

.booking-card #sidebarRoutesList,
.booking-card .sidebar-routes-list {
  margin-top: 16px !important;
  margin-bottom: 16px;
  padding: 14px;
  background: linear-gradient(135deg, var(--site-booking-panel-bg) 0%, var(--site-booking-panel-bg-end) 100%);
  border-radius: var(--radius-lg, 12px);
  border: 1px solid var(--site-booking-panel-border);
  overflow: hidden;
}

.booking-card .people-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--site-booking-option-border);
  background: var(--site-booking-option-bg);
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  color: var(--site-booking-text);
}

.booking-card .people-btn:hover {
  background: var(--site-booking-input-focus-border);
  color: var(--site-booking-people-hover-text);
  border-color: var(--site-booking-input-focus-border);
}

.booking-card .booking-type-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.booking-card .booking-type-option {
  flex: 1;
  min-width: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 6px;
  border-radius: var(--radius-lg, 12px);
  border: 2px solid var(--site-booking-option-border);
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: center;
  background: var(--site-booking-option-bg);
}

.booking-card .booking-type-option:hover {
  border-color: var(--site-booking-input-focus-border);
  background: var(--site-booking-option-hover-bg);
}

.booking-card .booking-type-option.active,
.booking-card .booking-type-option:has(input:checked) {
  border-color: var(--site-booking-input-focus-border);
  background: var(--site-booking-option-active-bg);
  box-shadow: 0 0 0 1px var(--site-booking-input-focus-border);
}

.booking-card .booking-type-option input[type="radio"] {
  display: none;
}

/* GE / SR: stacked full-width choices (not cramped 2-col pills) */
.booking-card .booking-type-options--stack {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.booking-card .booking-type-options--stack .booking-type-option,
.booking-card .booking-type-option--row {
  flex: none;
  width: 100%;
  min-width: 0;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
  padding: 10px 12px;
  text-align: left;
}

.booking-card .booking-type-option--row::before {
  content: "";
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.15rem;
  flex-shrink: 0;
  border-radius: 999px;
  border: 2px solid var(--site-booking-option-border, rgba(15, 23, 42, 0.22));
  background: #fff;
  box-sizing: border-box;
}

.booking-card .booking-type-option--row:has(input:checked)::before,
.booking-card .booking-type-option--row.active::before {
  border-color: var(--site-booking-input-focus-border, #0d9488);
  background: radial-gradient(circle at center, var(--site-booking-input-focus-border, #0d9488) 0 40%, #fff 42%);
}

.booking-card .booking-type-option__body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.booking-card .booking-type-option__title {
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--site-booking-text, #0f172a);
}

.booking-card .booking-type-option__meta {
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.3;
  opacity: 0.72;
  word-break: break-word;
}

/* Routes list: spacing only — pills keep original inline util look (padding/border/bg) */
.booking-card .sidebar-routes-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Inner column had gap:4px — air between pills, no extra side padding (was shifting content) */
.booking-card .sidebar-routes-list > .u-is-flex:last-child,
.booking-card #sidebarRoutesList > .u-is-flex:last-child {
  gap: 12px !important;
  max-height: min(420px, 55vh);
  padding: 0 !important;
  margin: 0;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
}

/* Route pills only — NOT header «Все» */
.booking-card #sidebarRoutesList > .u-is-flex:last-child > label.zk-card-tappable,
.booking-card .sidebar-routes-list .route-main-label {
  min-width: 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  align-items: center !important;
  justify-content: space-between !important;
}

/* One line inside pill: checkbox + title … price (ellipsis, not wrap) */
.booking-card #sidebarRoutesList > .u-is-flex:last-child > label.zk-card-tappable > span,
.booking-card .sidebar-routes-list .route-main-label > span {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  align-items: center !important;
  display: flex !important;
}

.booking-card #sidebarRoutesList > .u-is-flex:last-child > label.zk-card-tappable > strong,
.booking-card .sidebar-routes-list .route-main-label > strong,
.booking-card .sidebar-routes-list .route-price-label {
  flex: 0 0 auto !important;
  align-self: center !important;
  white-space: nowrap !important;
  margin-left: 8px !important;
}

.booking-card .booking-date-range-calc {
  margin-top: 0.35rem;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--site-booking-option-border, rgba(15, 23, 42, 0.12));
  background: rgba(255, 255, 255, 0.88);
}

.booking-card .booking-multi-opt-text {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 10px;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}

.booking-card .booking-multi-opt-name {
  flex: 1 1 8rem;
  min-width: 0;
  font-weight: 600;
  line-height: 1.3;
  word-break: break-word;
}

.booking-card .booking-multi-opt-price {
  flex: 0 0 auto;
  font-weight: 700;
  font-size: 0.8rem;
  opacity: 0.85;
  white-space: nowrap;
}

.booking-card .booking-type-icon {
  font-size: 1.3rem;
  height: 1.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.booking-card .booking-type-icon--combo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  font-size: 1.05rem;
  line-height: 1;
}

.booking-card .booking-type-text {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--site-booking-text);
  line-height: 1.2;
}

.sidebar-price-note {
  font-size: 0.85rem;
  color: var(--site-booking-text-muted);
  margin-bottom: 16px;
}

/* Multi service picker */
.booking-multi-picker:not([hidden]) {
  max-height: 240px;
  overflow-y: auto;
  border: 1px solid var(--site-booking-multi-border);
  border-radius: 12px;
  padding: 6px 10px;
  margin-top: 8px;
  background: var(--site-booking-multi-bg);
}

.booking-multi-cat-h {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--theme-from, var(--site-booking-state-label-info));
  margin: 0.35rem 0 0.15rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.booking-multi-opt-label {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 0.82rem;
  padding: 5px 0;
  cursor: pointer;
  line-height: 1.35;
  color: var(--site-booking-text);
}

.booking-multi-opt-label input {
  margin-top: 3px;
  accent-color: var(--theme-from, var(--site-booking-input-focus-border));
  flex-shrink: 0;
}

.booking-multi-opt-text {
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

.booking-service-select-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden;
}

.booking-guest-offer-block .sidebar-field-label {
  font-size: 0.78rem;
}

/* ═══════════════════════════════════════════════════════════════
   BOOKING STATES
   ═══════════════════════════════════════════════════════════════ */

.booking-state--revealed,
.booking-state--approved {
  background: var(--site-booking-state-success-bg);
  border: 1px solid var(--site-booking-state-success-border);
}

.booking-state--pin {
  background: var(--site-booking-state-pin-bg);
  border: 1px solid var(--site-booking-state-pin-border);
}

.booking-state--pending,
.booking-state--busy {
  background: var(--site-booking-state-pending-bg);
  border: 1px solid var(--site-booking-state-pending-border);
  text-align: center;
}

.booking-state--paywall {
  background: var(--site-booking-state-paywall-bg);
  border: 1px solid var(--site-booking-state-paywall-border);
  text-align: center;
}

.booking-state--declined {
  background: var(--site-booking-state-declined-bg);
  border: 1px solid var(--site-booking-state-declined-border);
  text-align: center;
}

.booking-state--expired {
  background: var(--site-booking-state-expired-bg);
  border: 1px solid var(--site-booking-state-expired-border);
  text-align: center;
}

.booking-state--approved {
  text-align: center;
}

.booking-state-icon {
  font-size: 2rem;
  margin-bottom: 6px;
}

.booking-state-label {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}

.booking-state-label--success {
  color: var(--site-booking-state-label-success);
}

.booking-state-label--warning {
  color: var(--site-booking-state-label-warning);
}

.booking-state-label--error {
  color: var(--site-booking-state-label-error);
}

.booking-state-label--info {
  color: var(--site-booking-state-label-info);
}

.booking-state-text {
  font-size: 0.85rem;
  color: var(--site-booking-state-text);
  line-height: 1.4;
  margin-bottom: 8px;
}

.booking-state-details {
  font-size: 0.82rem;
  color: var(--site-booking-state-details);
  padding: 6px 0;
  font-weight: 500;
}

.booking-state-hint {
  font-size: 0.75rem;
  color: var(--site-booking-text-muted);
  text-align: center;
  margin-top: 6px;
}

.booking-state-hint--timer {
  color: var(--site-booking-state-label-warning);
  font-weight: 600;
}

.booking-contact-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  font-size: 0.9rem;
}

.booking-contact-row a {
  color: var(--theme-from, var(--site-booking-input-focus-border));
  font-weight: 600;
}

.booking-contact-wa {
  color: var(--site-booking-wa-color) !important;
}

.pin-digits {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 0;
}

.pin-digit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 40px;
  background: var(--site-booking-pin-bg);
  border: 2px solid var(--site-booking-pin-border);
  border-radius: 8px;
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--site-booking-pin-text);
}

.booking-location-map-wrap {
  margin-top: 10px;
  margin-left: calc(12px - var(--spacing-xl, 3rem));
  margin-right: calc(12px - var(--spacing-xl, 3rem));
  width: auto;
  height: auto;
  border-radius: var(--radius-md, 10px);
  overflow: hidden;
  border: 1px solid var(--site-booking-input-border);
  background: var(--z-surface-white, #fff);
}

.booking-location-map {
  width: 100%;
  height: 220px;
  min-height: 180px;
}

.booking-location-maps-link {
  display: block;
  padding: 8px 12px;
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
  color: var(--color-primary, #3d7a99);
  text-decoration: none;
  border-top: 1px solid var(--site-booking-input-border, #e5e7eb);
}
.booking-location-maps-link:hover {
  background: rgba(61, 122, 153, 0.06);
}

/* ═══════════════════════════════════════════════════════════════
   AVAILABILITY CALENDAR
   ═══════════════════════════════════════════════════════════════ */

.booking-avail-cal {
  margin: 0.35rem 0 0.65rem;
  padding: 0.5rem 0.55rem;
  border-radius: 10px;
  background: var(--site-booking-cal-bg);
  font-size: 0.72rem;
}

.booking-avail-cal__head {
  color: var(--site-booking-cal-head);
}

.booking-avail-cal__cell--free {
  background: var(--site-booking-cal-free-bg);
  color: var(--site-booking-cal-free-text);
}

.booking-avail-cal__cell--partial {
  background: var(--site-booking-cal-partial-bg);
  color: var(--site-booking-cal-partial-text);
}

.booking-avail-cal__cell--full {
  background: var(--site-booking-cal-full-bg);
  color: var(--site-booking-cal-full-text);
}

.booking-avail-cal__legend .leg-free::before {
  background: var(--site-booking-cal-free-bg);
}

.booking-avail-cal__legend .leg-partial::before {
  background: var(--site-booking-cal-partial-bg);
}

.booking-avail-cal__legend .leg-full::before {
  background: var(--site-booking-cal-full-bg);
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  .booking-sidebar {
    width: 100% !important;
    margin-top: 12px;
    position: static;
  }

  .booking-card {
    padding: 12px !important;
    margin-bottom: 16px !important;
  }

  .booking-card .btn,
  .booking-card button {
    font-size: 0.88rem !important;
    padding: 10px 14px !important;
  }

  .booking-card .sidebar-book-btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  .booking-location-map-wrap {
    margin-left: 0;
    margin-right: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════
   FULL BOOKING — confirmed / paid panel
   ═══════════════════════════════════════════════════════════════ */

.fb-confirmed {
  margin: 0.35rem 0 0.85rem;
  padding: 1.05rem 1rem 1rem;
  border-radius: var(--site-booking-radius, 16px);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.96) 0%, rgba(236, 253, 245, 0.9) 55%, rgba(240, 253, 250, 0.85) 100%);
  border: 1px solid rgba(16, 185, 129, 0.22);
  box-shadow: 0 8px 28px rgba(6, 95, 70, 0.07);
  color: var(--site-booking-text, #0f172a);
}

.fb-confirmed__hero {
  text-align: center;
  margin-bottom: 0.95rem;
}

.fb-confirmed__badge {
  width: 44px;
  height: 44px;
  margin: 0 auto 0.55rem;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #059669;
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.14), rgba(5, 150, 105, 0.22));
  box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.18);
}

.fb-confirmed__title {
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #065f46;
  margin: 0 0 0.35rem;
}

.fb-confirmed__lead {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--site-booking-text-muted, #64748b);
  padding: 0 0.15rem;
}

.fb-confirmed__meta {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.75rem 0.85rem;
  margin-bottom: 0.75rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(15, 23, 42, 0.06);
}

.fb-confirmed__meta-row {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.fb-confirmed__meta-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
}

.fb-confirmed__meta-val {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.fb-confirmed__uid {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #065f46;
  background: transparent;
}

.fb-confirmed__amount strong {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}

.fb-confirmed__amount-sec {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.82rem;
  color: #64748b;
}

.fb-confirmed__dates {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: #334155;
}

.fb-confirmed__icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 10px;
  background: #fff;
  color: #475569;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  flex: 0 0 auto;
}

.fb-confirmed__icon-btn:hover {
  background: #f8fafc;
  color: #0f766e;
  border-color: rgba(13, 148, 136, 0.35);
}

.fb-confirmed__icon-btn.is-copied,
.fb-confirmed__icon-btn.is-active {
  color: #059669;
  border-color: rgba(16, 185, 129, 0.45);
  background: rgba(16, 185, 129, 0.08);
}

.fb-code-card {
  padding: 0.85rem 0.9rem;
  margin-bottom: 0.65rem;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(99, 102, 241, 0.18);
  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.06);
}

.fb-code-card--guest {
  border-color: rgba(14, 165, 233, 0.22);
  box-shadow: 0 4px 16px rgba(14, 165, 233, 0.06);
}

.fb-code-card__head {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin-bottom: 0.65rem;
}

.fb-code-card__icon {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6366f1;
  background: rgba(99, 102, 241, 0.1);
  flex: 0 0 auto;
}

.fb-code-card__icon--guest {
  color: #0284c7;
  background: rgba(14, 165, 233, 0.12);
}

.fb-code-card__title {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #334155;
}

.fb-code-card__sub {
  font-size: 0.72rem;
  color: #94a3b8;
  margin-top: 0.1rem;
  line-height: 1.3;
}

.fb-code-card__actions {
  margin-left: auto;
  display: flex;
  gap: 0.3rem;
}

.fb-code-card__head > .fb-confirmed__icon-btn {
  margin-left: auto;
}

.fb-pin-digits {
  display: flex;
  justify-content: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  padding: 0.15rem 0 0.25rem;
}

.fb-pin-digit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.15rem;
  height: 2.65rem;
  padding: 0 0.2rem;
  border-radius: 12px;
  font-size: 1.35rem;
  font-weight: 800;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: #312e81;
  background: linear-gradient(180deg, #f8fafc 0%, #eef2ff 100%);
  border: 1px solid rgba(99, 102, 241, 0.28);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}

.fb-guest-code {
  text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #0c4a6e;
  padding: 0.55rem 0.5rem;
  border-radius: 12px;
  background: linear-gradient(180deg, #f0f9ff 0%, #e0f2fe 100%);
  border: 1px solid rgba(14, 165, 233, 0.25);
}

.fb-guest-qr {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.65rem;
  padding: 0.65rem;
  border-radius: 14px;
  background: #fff;
  border: 1px dashed rgba(14, 165, 233, 0.35);
}

.fb-guest-qr img {
  display: block;
  border-radius: 10px;
}

.fb-guest-qr__hint {
  font-size: 0.72rem;
  color: #64748b;
}

.fb-code-card__hint {
  margin: 0.55rem 0 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: #64748b;
  text-align: center;
}

.fb-confirmed__cta {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin: 0.85rem 0 0.75rem;
}

.fb-confirmed__cta-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}

.fb-confirmed__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: 0.65rem 1rem;
  border-radius: 14px;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  transition: transform 0.12s, box-shadow 0.12s, background 0.12s;
}

.fb-confirmed__btn--primary {
  color: #fff;
  background: linear-gradient(135deg, var(--theme-from, #0a7575), var(--theme-to, #059669));
  border: none;
  box-shadow: 0 6px 18px rgba(5, 150, 105, 0.28);
}

.fb-confirmed__btn--primary:hover {
  transform: translateY(-1px);
  color: #fff;
  box-shadow: 0 8px 22px rgba(5, 150, 105, 0.34);
}

.fb-confirmed__btn--ghost {
  color: #0f766e;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(13, 148, 136, 0.28);
}

.fb-confirmed__btn--ghost:hover {
  background: #fff;
  color: #0f766e;
  border-color: rgba(13, 148, 136, 0.45);
}

.fb-support {
  padding: 0.75rem 0.85rem;
  margin-bottom: 0.55rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(15, 23, 42, 0.06);
}

.fb-support__title {
  font-size: 0.78rem;
  font-weight: 800;
  color: #334155;
}

.fb-support__note {
  font-size: 0.7rem;
  color: #94a3b8;
  margin: 0.1rem 0 0.45rem;
}

.fb-support__row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.45rem;
  margin: 0.2rem 0;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--theme-from, #0a7575);
  text-decoration: none;
  transition: background 0.12s;
}

.fb-support__row:hover {
  background: rgba(13, 148, 136, 0.06);
  color: var(--theme-from, #0a7575);
}

.fb-support__ico {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: rgba(13, 148, 136, 0.1);
  color: #0f766e;
  flex: 0 0 auto;
}

.fb-confirmed__legal {
  margin-top: 0.35rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(15, 23, 42, 0.06);
  font-size: 0.72rem;
  line-height: 1.4;
  color: #94a3b8;
}

.fb-confirmed__legal a {
  color: #0f766e;
}

.booking-card .fb-confirmed {
  margin-left: 0;
  margin-right: 0;
}

@media (max-width: 480px) {
  .fb-confirmed {
    padding: 0.9rem 0.8rem;
  }

  .fb-pin-digit {
    min-width: 1.9rem;
    height: 2.4rem;
    font-size: 1.15rem;
    border-radius: 10px;
  }

  .fb-guest-code {
    font-size: 1.15rem;
    letter-spacing: 0.1em;
  }
}

/* ── Pay booking sheet (modal) ── */
.zk-pay-overlay {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.48);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.zk-pay-sheet {
  position: relative;
  width: 100%;
  max-width: 22rem;
  padding: 1.15rem 1.2rem 1.05rem;
  border-radius: 16px;
  border: 1px solid var(--site-booking-border, rgba(214, 157, 48, 0.28));
  background:
    linear-gradient(165deg, var(--site-booking-bg-from, #fef9ec) 0%, #fff 42%, var(--site-booking-bg-to, #e8f4fa) 100%);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22);
  color: var(--site-booking-text, #0f172a);
}
.zk-pay-sheet__close {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  width: 1.75rem;
  height: 1.75rem;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  color: #475569;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}
.zk-pay-sheet__close:hover {
  background: rgba(15, 23, 42, 0.1);
}
.zk-pay-sheet__eyebrow {
  margin: 0 1.5rem 0.35rem 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--site-booking-text-muted, #64748b);
}
.zk-pay-sheet__title {
  margin: 0 1.6rem 0.65rem 0;
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1.3;
  color: var(--site-booking-text, #0f172a);
}
.zk-pay-sheet__amount {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--site-booking-price-from, #3d7a99);
}
.zk-pay-sheet__fx {
  margin: 0.2rem 0 0;
  font-size: 0.85rem;
  color: var(--site-booking-text-muted, #64748b);
}
.zk-pay-sheet__meta {
  display: grid;
  gap: 0.35rem;
  margin: 0.75rem 0 0;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 23, 42, 0.08);
  font-size: 0.8rem;
  line-height: 1.35;
}
.zk-pay-sheet__meta-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
}
.zk-pay-sheet__meta-row dt {
  margin: 0;
  color: var(--site-booking-text-muted, #64748b);
  font-weight: 500;
}
.zk-pay-sheet__meta-row dd {
  margin: 0;
  text-align: right;
  font-weight: 650;
  color: var(--site-booking-text, #0f172a);
  font-variant-numeric: tabular-nums;
}
.zk-pay-sheet__wallet {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
  color: var(--site-booking-text-muted, #64748b);
}
.zk-pay-sheet__wallet strong {
  color: var(--site-booking-text, #0f172a);
  font-weight: 700;
}
.zk-pay-sheet__actions {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: 0.75rem;
}
.zk-pay-sheet__pay {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.35rem;
  padding: 0.45rem 0.9rem;
  border: 0;
  border-radius: 10px;
  background: var(--site-booking-btn-bg, #0a7575);
  color: var(--site-booking-btn-text, #fff);
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--site-booking-btn-shadow, 0 4px 14px rgba(61, 122, 153, 0.22));
}
.zk-pay-sheet__pay:hover {
  background: var(--site-booking-btn-hover-bg, #047a7c);
}
.zk-pay-sheet__pay--secondary {
  background: #fff;
  color: var(--site-booking-btn-bg, #0a7575);
  border: 1px solid rgba(10, 117, 117, 0.28);
  box-shadow: none;
}
.zk-pay-sheet__pay--secondary:hover {
  background: rgba(10, 117, 117, 0.06);
}
.zk-pay-sheet .bk-pay-shortfall {
  margin: 0.55rem 0 0;
  padding: 0.65rem 0.7rem;
  border-radius: 10px;
  background: linear-gradient(145deg, #fef2f2, #fff1f2);
  border: 1px solid #fca5a5;
}
.zk-pay-sheet .bk-pay-shortfall__badge {
  display: inline-block;
  margin-bottom: 0.3rem;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #991b1b;
  background: rgba(220, 38, 38, 0.1);
}
.zk-pay-sheet .bk-pay-shortfall__title {
  margin: 0 0 0.25rem;
  font-size: 0.88rem;
  font-weight: 750;
  color: #7f1d1d;
  line-height: 1.25;
}
.zk-pay-sheet .bk-pay-shortfall__rows {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  color: #7f1d1d;
  line-height: 1.4;
}
.zk-pay-sheet .bk-pay-shortfall__gap {
  display: block;
  margin-top: 0.2rem;
  font-weight: 700;
  color: #b91c1c;
}
.zk-pay-sheet .bk-pay-shortfall__topup {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.1rem;
  padding: 0.35rem 0.75rem;
  border-radius: 9px;
  background: #dc2626;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}
.zk-pay-sheet .bk-pay-shortfall__topup:hover {
  background: #b91c1c;
  color: #fff;
}

/* Compact pay buttons when rendered into sidebar panel */
#bookingPayMethods .zk-pay-inline {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
#bookingPayMethods .zk-pay-sheet__pay {
  min-height: 2.2rem;
  font-size: 0.85rem;
}

/* === client-display-pc.css === */
/* Repaired merge of sub-splits */

/* Repaired merge of sub-splits */

/**
 * client-display-pc.css — клиент: планшет/десктоп ≈ пропорции ПК.
 * Рельса планшета: ~90% от прежней ширины → min(86.4vw, 1260px), отступ 12px.
 * ≥1440px: cap 1340px как на ПК.
 */

/* ── Глобальные токены рельсы (768+ планшет, не телефон landscape) ── */
@media (min-width: 768px) and (min-height: 451px) {
    :root {
        --catalog-rail-px: 12px;
        --catalog-rail-max: min(86.4vw, 1260px);
        --site-content-max: min(86.4vw, 1260px);
        --container-px: clamp(0.5rem, 0.9vw, 1.125rem);
        --container-width: min(86.4vw, 1260px);
        --desktop-container: min(86.4vw, 1260px);
        --desktop-padding: 12px;
        --desktop-gap: 1.125rem;
        --section-padding-y: 2.25rem;
        --card-gap: 1.125rem;
        --card-padding: 1.125rem;
        --card-radius: 1rem;
        --page-nav-desktop-px: 12px;
    }
}

/* На широком мониторе — прежний cap 1340, отступ 12px */
@media (min-width: 1440px) and (min-height: 451px) {
    :root {
        --catalog-rail-max: 1340px;
        --site-content-max: 1340px;
        --container-width: 1340px;
        --desktop-container: 1340px;
    }
}

/* ── Контейнеры: одна рельса, без двойных отступов ── */
@media (min-width: 768px) and (min-height: 451px) {
    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container,
    .promo-banners-section .container,
    .hero .container,
    .footer-content,
    .footer .footer-regulatory,
    .category-tabs-container,
    .profile-container,
    .catalog-page-inner,
    .page-header-context .container,
    .market-body,
    .market-detail-page,
    .market-form-shell,
    .tender-body,
    .services-body,
    .aff-page,
    .contacts-page-inner,
    .company-page-wrap,
    .company-public-page,
    .place-detail-page,
    .places-list-body,
    .transport-detail-page,
    .transport-explorer-body,
    .buses-body,
    .trains-body,
    .trip-planner-body,
    .blabla-page-wrap,
    .investors-page,
    .about-page-inner,
    .partner-lb-inner.container,
    .cp-page,
    .catalog-strip-stack-body,
    .catalog-page-body,
    .listing-detail-shell,
    .place-detail-shell,
    .company-detail-shell,
    .news-detail-wrap,
    .auth-container {
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
    }

    /* Страницы с собственным padding — 12px, не 24px + container-px */
    .market-body,
    .market-detail-page,
    .market-form-shell,
    .tender-body,
    .services-body,
    .catalog-page-inner,
    .catalog-strip-stack-body,
    .transport-detail-page.catalog-page-inner,
    .aff-page,
    .rental-container,
    .profile-container,
    .buses-body,
    .trains-body,
    .transport-explorer-body,
    .contacts-page-inner,
    .cp-page {
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
    }

    /* .container уже width через --container-px — не дублировать padding */
    .container:not(.catalog-back-crumb-rail),
    .news-container,
    .tours-container,
    .services-container {
        max-width: var(--container-width, min(86.4vw, 1260px)) !important;
        width: calc(100% - 2 * var(--container-px, 12px)) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Крошки / «Назад» / баннеры — одна геометрия (не calc-width от .container) */
    section.page-header-context.page-header-context--catalog-nav > .container,
    .catalog-back-corridor > .container.catalog-back-crumb-rail,
    .catalog-strip-stack .catalog-page-inner.ad-strip-catalog-inner,
    .catalog-page-like-listing > .catalog-page-inner,
    .compass-strip-back-filter-stack .catalog-page-inner.ad-strip-catalog-inner,
    .ad-strip-catalog-inner {
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        box-sizing: border-box !important;
    }

    .page-header-context:not(.page-header-context--catalog-nav) .container {
        padding-left: var(--page-nav-desktop-px, 12px) !important;
        padding-right: var(--page-nav-desktop-px, 12px) !important;
    }

    .section {
        padding-top: var(--section-padding-y) !important;
        padding-bottom: var(--section-padding-y) !important;
    }
}

/* ── Шапка: PC rail, отступ 12px, элементы как на десктопе ── */
@media (min-width: 768px) and (min-height: 451px) {
    .mobile-menu-toggle {
        display: none !important;
    }

    /* 768px portrait (iPad): перебить mobile slide-out из style.css */
    #navMenu.nav-menu.nav-main-rail,
    .nav-menu.nav-main-rail {
        position: static !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
        transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        overflow: visible !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
        display: contents !important;
    }

    #navMenu.nav-menu.nav-main-rail.active {
        transform: none !important;
        visibility: visible !important;
        box-shadow: none !important;
    }

    .header .nav-actions {
        display: flex !important;
    }

    /* page-nav-unified: убрать space-evenly и лишние отступы у меню */
    .header .nav-menu.nav-main-rail,
    .header .nav-container:has(> .nav-menu.nav-main-rail) > .nav-menu.nav-main-rail {
        display: contents !important;
        flex: none !important;
        padding: 0 !important;
        margin: 0 !important;
        justify-content: unset !important;
    }

    .nav-menu.nav-main-rail {
        display: contents !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item {
        display: flex !important;
    }

    .nav-menu.nav-main-rail > li.mobile-only-auth {
        display: none !important;
    }

    .nav-menu .nav-menu-head {
        display: none !important;
    }

    .nav-container,
    .nav-container:has(> .nav-menu.nav-main-rail),
    .header .nav-container {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        height: clamp(58px, 6vh, 80px) !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        margin-inline: auto !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        gap: clamp(6px, 0.65vw, 12px) !important;
    }

    .header .nav-container > .logo {
        flex: 0 0 auto !important;
        align-self: center !important;
        display: flex !important;
        align-items: center !important;
        margin: 0 !important;
        margin-right: clamp(0.2rem, 0.5vw, 0.55rem) !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item {
        flex: 1 1 0 !important;
        align-self: center !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        align-self: center !important;
        min-height: 0 !important;
        height: auto !important;
        line-height: 1.15 !important;
        vertical-align: middle !important;
    }

    .nav-container:has(> .nav-menu.nav-main-rail) > .nav-actions,
    .header .nav-actions {
        display: flex !important;
        flex: 0 0 auto !important;
        flex-shrink: 0 !important;
        margin-left: auto !important;
        align-self: center !important;
        align-items: center !important;
        gap: clamp(0.4rem, 0.68vw, 0.8rem) !important;
        min-height: 0 !important;
        padding-left: clamp(0.25rem, 0.6vw, 0.65rem) !important;
    }

    .desktop-only-auth {
        display: inline-flex !important;
        align-items: center !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: clamp(11px, 0.72vw, 14px) !important;
        padding: 0.35rem 0.1rem !important;
    }

    .nav-container .language-switcher,
    .nav-container .country-dropdown,
    .nav-container .country-dropdown-btn,
    .nav-container .user-menu,
    .nav-container .header-icon-btn,
    .nav-container .notif-bell-wrapper {
        align-self: center !important;
    }
    .nav-dropdown .mobile-dropdown-toggle {
        display: none !important;
    }

    /* Тач-планшет: одна стрелка в ссылке (как ПК), без дублирующей mobile-dropdown-toggle */
    @media (pointer: coarse) {
        .header .nav-menu.nav-main-rail > li.nav-dropdown {
            position: relative !important;
        }

        .header .nav-dropdown .mobile-dropdown-toggle {
            display: none !important;
        }

        .header .nav-dropdown > .nav-link {
            padding-right: 0.15rem !important;
        }

        .header .nav-dropdown > .nav-link .dropdown-arrow-nav {
            display: inline-block !important;
        }
    }

    .nav-dropdown > .nav-link .dropdown-arrow-nav {
        display: inline-block !important;
    }

    .nav-dropdown > .nav-link {
        padding-right: inherit !important;
    }

    /* ── Язык: pill как на ПК (не круглый mobile-чип) ── */
    .nav-container .language-switcher {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        gap: 0 !important;
        flex: 0 0 auto !important;
        min-width: 100px !important;
        width: auto !important;
        height: auto !important;
        min-height: 34px !important;
        max-height: none !important;
        padding: 0 !important;
        border: 1px solid var(--z-border-soft, rgba(30, 64, 175, 0.15)) !important;
        border-radius: var(--z-radius-pill, 999px) !important;
        background: var(--z-surface-white, #fff) !important;
        overflow: visible !important;
    }

    .nav-container .language-switcher .lang-btn {
        display: flex !important;
        align-items: center !important;
        gap: 0.25rem !important;
        min-width: 45px !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0.35rem 0.5rem !important;
        font-size: 0.72rem !important;
        font-weight: 600 !important;
        border-radius: var(--z-radius-pill, 999px) !important;
        overflow: visible !important;
        white-space: nowrap !important;
    }

    .nav-container .language-switcher .lang-btn:not(.active) span {
        display: inline !important;
    }

    .nav-container .language-switcher .lang-btn.active {
        margin-top: -2px !important;
        margin-bottom: -2px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: calc(0.35rem + 2px) 0.55rem !important;
        background: #035f5f !important;
        box-shadow: none !important;
        color: #ffffff !important;
    }

    .nav-container .language-switcher .lang-btn.active span {
        color: #ffffff !important;
    }

    .nav-container .language-switcher .lang-btn.active:first-child {
        margin-left: -2px !important;
    }

    .nav-container .language-switcher .lang-btn.active:last-child {
        margin-right: -2px !important;
    }

    .nav-container .language-switcher .lang-btn.lang-secondary.active {
        margin-right: -2px !important;
    }

    .nav-container .language-switcher .lang-flag {
        width: 22px !important;
        height: 14px !important;
        border-radius: 0 !important;
        flex: 0 0 auto !important;
    }

    .nav-container .language-switcher .lang-expand-btn {
        position: absolute !important;
        bottom: -12px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: 32px !important;
        height: 12px !important;
        border-radius: 0 0 8px 8px !important;
        background: var(--z-sl-ocean-soft, rgba(30, 64, 175, 0.12)) !important;
        border: 1px solid var(--z-border-soft, rgba(30, 64, 175, 0.15)) !important;
    }

    /* ── Страна: pill фикс. ширины как на ПК ── */
    .nav-container .country-dropdown {
        flex: 0 0 auto !important;
        min-width: 0 !important;
    }

    .nav-container .country-dropdown-btn {
        display: flex !important;
        align-items: center !important;
        gap: 0.35rem !important;
        width: 135px !important;
        min-width: 135px !important;
        max-width: 135px !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0.4rem 0.6rem !important;
        border: 1px solid var(--z-border-soft, rgba(30, 64, 175, 0.15)) !important;
        border-radius: var(--z-radius-pill, 999px) !important;
        background: var(--z-surface-white, #fff) !important;
        font-size: 0.75rem !important;
        font-weight: 600 !important;
        overflow: hidden !important;
    }

    .nav-container .country-dropdown .country-name {
        display: inline-block !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        font-size: 0.75rem !important;
        max-width: none !important;
    }

    .nav-container .country-dropdown-btn .dropdown-arrow {
        display: block !important;
        flex: 0 0 auto !important;
        width: 12px !important;
        height: 12px !important;
    }

    .nav-container .country-dropdown-btn .globe-icon {
        width: 18px !important;
        height: 18px !important;
    }

    /* Mega-menu: та же рельса что контент и шапка */
    .header .nav-dropdown .mega-menu {
        position: fixed !important;
        top: var(--header-h, 60px) !important;
        left: 50% !important;
        transform: translateX(-50%) translateY(10px) !important;
        width: min(var(--catalog-rail-max, 1316px), calc(100vw - 2 * var(--catalog-rail-px, 12px))) !important;
        max-width: min(1240px, calc(100vw - 2 * var(--catalog-rail-px, 12px))) !important;
        min-width: min(560px, calc(100vw - 2 * var(--catalog-rail-px, 12px))) !important;
        border-radius: 16px !important;
        opacity: 0 !important;
        visibility: hidden !important;
        max-height: min(88vh, 920px) !important;
        overflow: hidden !important;
        pointer-events: none !important;
        z-index: var(--z-mega-menu, 10060) !important;
    }

    .header .nav-dropdown:hover .mega-menu,
    .header .nav-dropdown.open .mega-menu {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateX(-50%) translateY(0) !important;
        pointer-events: auto !important;
    }

    /* Невидимый мост: пункт меню → fixed-панель (иначе :hover рвётся в зазоре) */
    .header .nav-dropdown .mega-menu::before {
        content: "" !important;
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 100% !important;
        height: 14px !important;
    }

    /* Тонкое подчёркивание — ::before; ::after только невидимый мост (не 12px полоска) */
    .header .nav-dropdown > .nav-link::before {
        content: "" !important;
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 0 !important;
        height: 2px !important;
        background: var(--color-primary) !important;
        transition: width var(--transition-base, 0.2s ease) !important;
    }

    .header .nav-dropdown > .nav-link:hover::before,
    .header .nav-dropdown > .nav-link.active::before,
    .header .nav-dropdown.open > .nav-link::before {
        width: 100% !important;
    }

    .header .nav-dropdown > .nav-link::after {
        content: "" !important;
        position: absolute !important;
        left: -6px !important;
        right: -6px !important;
        top: 100% !important;
        bottom: auto !important;
        width: auto !important;
        height: 12px !important;
        background: transparent !important;
    }

    .header .nav-dropdown > .nav-link:hover::after,
    .header .nav-dropdown > .nav-link.active::after,
    .header .nav-dropdown.open > .nav-link::after {
        width: auto !important;
        background: transparent !important;
    }

    .header .nav-dropdown > .nav-link {
        position: relative !important;
    }
}

/* Mega-menu: планшет 768–1100 portrait — masonry (flex column wrap) */

@media (min-width: 768px) and (max-width: 1100px) and (min-height: 451px) and (orientation: portrait) {
    .header:has(.nav-menu.nav-main-rail) {
        overflow: visible !important;
    }

    .header .nav-menu.nav-main-rail > li.nav-dropdown {
        position: relative !important;
        overflow: visible !important;
    }

    /* Каталог: одна стрелка в ссылке (как ПК) */
    .header .nav-dropdown .mobile-dropdown-toggle {
        display: none !important;
    }

    .header .nav-dropdown > .nav-link {
        padding-right: 0.15rem !important;
    }

    .header .nav-dropdown > .nav-link .dropdown-arrow-nav {
        display: inline-block !important;
    }

    .header .nav-dropdown .mega-menu {
        --mega-gap: 0.45rem;
        --mega-cols: 3;
        display: flex !important;
        flex-direction: column !important;
        max-height: calc(100dvh - var(--header-h, 60px) - 8px) !important;
        z-index: var(--z-mega-menu, 10060) !important;
    }

    .header .nav-dropdown .mega-menu-inner {
        --mega-panel-h: calc(100dvh - var(--header-h, 60px) - 22px);
        display: flex !important;
        flex-flow: column wrap !important;
        align-content: flex-start !important;
        align-items: stretch !important;
        gap: var(--mega-gap) !important;
        columns: unset !important;
        column-gap: unset !important;
        padding: 0.65rem 0.7rem !important;
        box-sizing: border-box !important;
        width: 100% !important;
        height: var(--mega-panel-h) !important;
        max-height: var(--mega-panel-h) !important;
        min-height: 0 !important;
        flex: 1 1 auto !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin !important;
    }

    .header .nav-dropdown .mega-menu-column {
        display: block !important;
        width: calc((100% - (var(--mega-cols) - 1) * var(--mega-gap)) / var(--mega-cols)) !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        flex: 0 0 auto !important;
        padding: 0.45rem 0.5rem 0.48rem !important;
        border: 1px solid rgba(0, 0, 0, 0.07) !important;
        border-radius: 10px !important;
        background: rgba(248, 250, 252, 0.96) !important;
        box-sizing: border-box !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        -webkit-column-break-inside: avoid !important;
    }

    .header .nav-dropdown .mega-menu-list a {
        min-height: 0 !important;
        height: auto !important;
        padding-top: 0.18rem !important;
        padding-bottom: 0.18rem !important;
    }
}

/* Mega-menu: планшет landscape — columns как portrait, компактно, на весь экран */

@media (min-width: 768px) and (max-width: 1366px) and (orientation: landscape) and (max-height: 900px) {
    .header:has(.nav-menu.nav-main-rail) {
        overflow: visible !important;
    }

    .header .nav-menu.nav-main-rail > li.nav-dropdown {
        position: relative !important;
        overflow: visible !important;
    }

    .header .nav-dropdown .mega-menu {
        width: calc(100vw - 2 * max(8px, env(safe-area-inset-left, 0px))) !important;
        max-width: calc(100vw - 2 * max(8px, env(safe-area-inset-left, 0px))) !important;
        min-width: 0 !important;
        left: 50% !important;
        top: var(--header-h, 60px) !important;
        max-height: calc(100dvh - var(--header-h, 60px) - 4px) !important;
        border-radius: 10px !important;
        z-index: var(--z-mega-menu, 10060) !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        background: var(--color-white, #fff) !important;
        box-shadow:
            0 25px 50px -12px rgba(0, 0, 0, 0.15),
            0 0 0 1px rgba(0, 0, 0, 0.05) !important;
    }

    .header .nav-dropdown:hover .mega-menu,
    .header .nav-dropdown.open .mega-menu {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateX(-50%) translateY(0) !important;
        pointer-events: auto !important;
    }

    /* columns, не flex-wrap — иначе колонки уезжают вправо и обрезаются */
    .header .nav-dropdown .mega-menu-inner {
        display: block !important;
        flex: 1 1 auto !important;
        flex-flow: unset !important;
        align-content: unset !important;
        align-items: unset !important;
        columns: 4 !important;
        column-gap: 0.45rem !important;
        padding: 0.5rem 0.55rem !important;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: calc(100dvh - var(--header-h, 60px) - 14px) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin !important;
        box-sizing: border-box !important;
    }

    .header .nav-dropdown .mega-menu-column {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 0 0.4rem 0 !important;
        flex: unset !important;
        padding: 0.32rem 0.42rem 0.36rem !important;
        border: 1px solid rgba(0, 0, 0, 0.07) !important;
        border-radius: 8px !important;
        background: rgba(248, 250, 252, 0.96) !important;
        box-sizing: border-box !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        -webkit-column-break-inside: avoid !important;
    }

    .header .nav-dropdown .mega-menu-column:hover {
        border-color: rgba(73, 98, 117, 0.24) !important;
        box-shadow: 0 4px 16px rgba(15, 23, 42, 0.07) !important;
    }

    .header .nav-dropdown .mega-menu-title {
        display: block !important;
        font-size: 0.62rem !important;
        font-weight: 700 !important;
        color: var(--z-gray-950, #0f172a) !important;
        text-transform: uppercase !important;
        letter-spacing: 0.25px !important;
        margin-bottom: 0.32rem !important;
        padding-bottom: 0.22rem !important;
        border-bottom: 2px solid var(--color-primary) !important;
        line-height: 1.25 !important;
        white-space: normal !important;
    }

    .header .nav-dropdown .mega-menu-title::after {
        display: none !important;
    }

    .header .nav-dropdown .mega-menu-title .cat-svg-icon {
        width: 15px !important;
        height: 15px !important;
        margin-right: 4px !important;
    }

    .header .nav-dropdown .mega-menu-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .header .nav-dropdown .mega-menu-list li {
        margin-bottom: 0 !important;
    }

    .header .nav-dropdown .mega-menu-list a {
        display: block !important;
        min-height: 0 !important;
        height: auto !important;
        font-size: 0.68rem !important;
        line-height: 1.25 !important;
        padding: 0.1rem 0 !important;
        color: var(--color-gray) !important;
        white-space: normal !important;
    }

    .header .nav-dropdown .mega-menu-list a .cat-svg-icon {
        width: 14px !important;
        height: 14px !important;
        margin-right: 4px !important;
    }

    .header .nav-dropdown .mega-menu-list a:hover {
        padding-left: 0.5rem !important;
        color: var(--color-primary) !important;
    }
}

@media (min-width: 1024px) and (max-width: 1366px) and (orientation: landscape) and (max-height: 900px) {
    .header .nav-dropdown .mega-menu-inner {
        columns: 5 !important;
        column-gap: 0.4rem !important;
    }
}

@media (min-width: 768px) and (max-width: 900px) and (orientation: landscape) and (max-height: 900px) {
    .header .nav-dropdown .mega-menu-inner {
        columns: 3 !important;
    }
}

/* Широкий планшет / ПК: Tours + About если влезают (как на большом мониторе) */
@media (min-width: 1200px) and (min-height: 451px) {
    .nav-menu.nav-main-rail > li.nav-main-rail__item--optional {
        display: flex !important;
    }
}

/* Планшет portrait: отступы hero как на ПК, с учётом двухрядной шапки */
@media (min-width: 768px) and (max-width: 1100px) and (min-height: 451px) and (orientation: portrait) {
    .hero {
        min-height: clamp(50vh, 60vh, 70vh) !important;
        padding-top: calc(var(--header-h, 108px) + clamp(2rem, 4vw, 4rem)) !important;
        padding-bottom: clamp(1.5rem, 3vw, 3rem) !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item--optional {
        display: none !important;
    }
}

/* ── Сетки: 4 колонки ── */
@media (min-width: 768px) and (min-height: 451px) {
    .category-grid,
    .services-grid,
    body .category-grid,
    body .services-grid {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: var(--card-gap, 1.25rem) !important;
    }

    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: clamp(1.25rem, 2.5vw, 3rem) !important;
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        box-sizing: border-box !important;
    }

    .promo-banners-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--card-gap, 1.25rem) !important;
    }
}

@media (min-width: 768px) and (max-width: 1100px) and (min-height: 451px) and (orientation: portrait) {
    .category-grid,
    .services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .footer-content {
        grid-template-columns: repeat(3, 1fr) !important;
    }

    .footer-section:first-child {
        grid-column: 1 / -1 !important;
    }
}

/* ── Hero / поиск: PC clamp — только landscape или широкий экран (не portrait-планшет) ── */
@media (min-width: 768px) and (min-height: 451px) and (orientation: landscape),
       (min-width: 1101px) and (min-height: 451px) {
    .hero {
        min-height: clamp(50vh, 60vh, 70vh) !important;
        padding-top: calc(clamp(60px, 6vh, 85px) + clamp(2rem, 4vw, 4rem)) !important;
        padding-bottom: clamp(1.5rem, 3vw, 3rem) !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
    }

    .hero-title {
        font-size: clamp(1.5rem, 2.2vw, 2.4rem) !important;
        white-space: nowrap !important;
    }

    .hero-subtitle {
        font-size: clamp(0.55rem, 0.7vw, 0.85rem) !important;
        white-space: nowrap !important;
    }

    .search-box {
        max-width: min(83vw, 1010px) !important;
        min-height: clamp(40px, 3.6vw, 52px) !important;
    }

    .search-input {
        font-size: clamp(0.85rem, 1vw, 1.1rem) !important;
    }

    .hero-stats {
        gap: clamp(0.75rem, 2vw, 3rem) !important;
        margin-top: clamp(1.5rem, 3vw, 4rem) !important;
    }

    .stat-item {
        width: clamp(99px, 12.6vw, 216px) !important;
        height: clamp(63px, 8.1vw, 126px) !important;
        padding: clamp(0.45rem, 0.9vw, 1.8rem) !important;
    }

    .stat-number {
        font-size: clamp(0.9rem, 1.4vw, 1.8rem) !important;
    }

    .stat-label {
        font-size: clamp(0.55rem, 0.75vw, 0.9rem) !important;
    }

    .section-title {
        font-size: clamp(1.5rem, 2.2vw, 2.5rem) !important;
    }

    .section-description {
        font-size: clamp(0.9rem, 1.1vw, 1.2rem) !important;
    }

    .category-tabs-container {
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .category-tabs-wrapper {
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        box-sizing: border-box !important;
    }

    /* Крошки, strip-stack, «назад», статья ревью/новостей — одна рельса с баннерами */
    section.page-header-context.page-header-context--catalog-nav > .container,
    .catalog-back-corridor > .container.catalog-back-crumb-rail,
    .catalog-strip-stack .catalog-page-inner.ad-strip-catalog-inner,
    .catalog-page-like-listing > .catalog-page-inner,
    .compass-strip-back-filter-stack .catalog-page-inner.ad-strip-catalog-inner,
    .news-compass-detail-page.rental-container.catalog-page-inner {
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        box-sizing: border-box !important;
    }

    body .category-tabs-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ── Детальные страницы ── */
@media (min-width: 768px) and (min-height: 451px) {
    .rental-gallery,
    .listing-gallery-grid {
        grid-template-columns: 2fr 1fr !important;
    }

    .profile-layout {
        grid-template-columns: clamp(200px, 16vw, 300px) 1fr !important;
        gap: clamp(1.25rem, 2.5vw, 3rem) !important;
    }

    .detail-two-col,
    .listing-detail-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(260px, 380px) !important;
        gap: clamp(1rem, 1.8vw, 2rem) !important;
        align-items: start !important;
    }
}

/* ── Touch-зоны: шапка в одну линию, pill языка/страны не раздуваем ── */
@media (pointer: coarse) and (min-width: 768px) {
    .btn,
    .filter-select:not(.svc-filter-box .filter-select),
    .category-tab:not(.svc-filter-box .category-tab) {
        min-height: 44px !important;
    }

    .svc-filter-box .category-tab,
    .svc-filter-box .subcategory-chip {
        min-height: 0 !important;
        height: auto !important;
    }

    /* Пункты меню = та же высота что язык/страна, не «лесенка» */
    .header .nav-link,
    .header .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        min-height: 0 !important;
        height: auto !important;
        padding-top: 0.35rem !important;
        padding-bottom: 0.35rem !important;
    }

    .header .nav-container:has(> .nav-menu.nav-main-rail) {
        align-items: center !important;
    }

    .nav-container .language-switcher .lang-btn,
    .nav-container .country-dropdown-btn {
        min-height: 0 !important;
    }

    .nav-container .country-dropdown-btn {
        min-height: 34px !important;
    }

    input.form-control:not(#aiGuideChat input),
    select.form-control,
    textarea.form-control,
    .booking-card input,
    .booking-card select,
    .auth-card input {
        min-height: 48px !important;
    }

    .site-fab,
    .site-fab-stack .ai-guide-widget,
    .ai-guide-button {
        width: 56px !important;
        height: 56px !important;
        min-width: 56px !important;
        min-height: 56px !important;
    }

    .detail-gallery-main {
        touch-action: pan-x !important;
    }
}

/* === tablet-desktop.css === */
/* Repaired merge of sub-splits */

/* Repaired merge of sub-splits */

/**
 * tablet-desktop.css — Планшетная адаптация: ПК-подобный вид на тач-устройствах.
 *
 * Загружается ПОСЛЕ desktop-unified.css и responsive-scaling.css.
 * Использует `pointer: coarse` для определения тач-устройств и дополняет
 * десктопные стили увеличенными touch-зонами, расширенными контейнерами
 * и оптимизированными пропорциями.
 *
 * Tier 1: Средние планшеты  (1024–1279px)  — iPad Air, iPad Pro 11"
 * Tier 2: Большие планшеты   (1280–1599px)  — iPad Pro 12.9"
 * Tier 3: XL-планшеты        (1600–1919px)  — Samsung Tab S9 Ultra portrait
 * Tier 4: Full-HD планшеты   (1920px+)      — Samsung Tab S9 Ultra landscape
 */

/* ═══════════════════════════════════════════════════════════════════
   GLOBAL TOUCH ADAPTATIONS
   Applies to ALL tablet resolutions with coarse pointer (touch).
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 768px) {

    /* ── Touch target minimums (Apple HIG / WCAG 2.5.8) ── */
    .btn,
    .btn-sm,
    .nav-link,
    .lang-btn,
    .country-dropdown-btn,
    .filter-select,
    .category-tab {
        min-height: 44px !important;
        /* Ensure tappable area is at least 44px tall */
    }

    .btn-sm {
        min-height: 36px !important;
        padding: 0.35rem 0.6rem !important;
    }

    /* ── Nav links: increase tap zone without changing visual size ── */
    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        min-height: 44px !important;
        display: flex !important;
        align-items: center !important;
    }

    /* ── Search button: larger for finger tap ── */
    .search-icon-btn,
    .search-box button {
        min-width: 44px !important;
        min-height: 44px !important;
    }

    /* ── Form controls: finger-friendly height ── */
    input.form-control,
    select.form-control,
    textarea.form-control {
        min-height: 48px !important;
    }

    .filter-select {
        min-height: 40px !important;
    }

    /* ── Category tabs: finger-friendly ── */
    .category-tab {
        min-height: 40px !important;
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    /* ── Cards: ensure tappable area ── */
    .card .btn,
    .card-footer .btn {
        min-height: 44px !important;
    }

    /* ── FAB: позиция и радиальная геометрия — site-home-fab.css (v-anchor) ── */

    /* ── Pagination: bigger tap targets ── */
    .pagination-compact .btn {
        min-width: 44px !important;
        min-height: 44px !important;
    }

    /* ── Dropdown menus: bigger spacing for finger selection ── */
    .lang-dropdown-menu .lang-option,
    .country-dropdown-menu .country-option {
        min-height: 44px !important;
        padding: 0.5rem 0.75rem !important;
    }

    /* ── Mega-menu: компактные строки = высота по числу подкатегорий (не 44px touch) ── */
    .header .nav-dropdown .mega-menu-list li a {
        min-height: 0 !important;
        height: auto !important;
        display: block !important;
        align-items: unset !important;
        padding-top: 0.22rem !important;
        padding-bottom: 0.22rem !important;
    }

    /* ── Footer links: compact line spacing ── */
    .footer-links li {
        margin-bottom: 0.1rem !important;
    }

    .footer-links a,
    .footer-link-btn {
        display: inline-flex !important;
        align-items: center !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   TIER 1: MEDIUM TABLETS (1024–1279px, touch)
   iPad Air (1180×820), iPad Pro 11" (1194×834), Samsung Tab S8 (1340×800)
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 1024px) and (max-width: 1279px) {

    /* ── Container: wider than default 73vw for tablets ── */
    :root {
        --desktop-container: min(92vw, 1260px) !important;
    }

    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container,
    .promo-banners-section .container,
    .hero .container,
    .footer-content,
    .footer .footer-regulatory {
        max-width: min(92vw, 1260px) !important;
    }

    /* ── Navigation: slightly bigger text and spacing ── */
    .nav-container {
        height: 58px !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: clamp(0.76rem, 0.95vw, 0.88rem) !important;
        padding: 0.4rem 0.2rem !important;
    }

    .nav-container:has(> .nav-menu.nav-main-rail) > .nav-actions {
        gap: 0.55rem !important;
    }

    .lang-btn {
        font-size: 0.72rem !important;
    }

    .country-dropdown-btn {
        font-size: 0.72rem !important;
    }

    /* ── Hero: readable proportions ── */
    .hero-title {
        font-size: 1.15rem !important;
    }

    .hero-subtitle {
        font-size: 0.62rem !important;
    }

    .search-box {
        max-width: min(88vw, 680px) !important;
        min-height: 50px !important;
    }

    .search-input {
        font-size: 0.88rem !important;
    }

    .search-box button {
        width: 42px !important;
        height: 42px !important;
    }

    /* ── Stats: slightly bigger for touch ── */
    .stat-item {
        width: 140px !important;
        height: 70px !important;
        padding: 0.6rem !important;
    }

    .stat-number {
        font-size: 0.95rem !important;
    }

    .stat-label {
        font-size: 0.55rem !important;
    }

    /* ── Grid cards: maintain 4-column with larger gaps ── */
    .category-grid,
    .services-grid {
        gap: 1rem !important;
    }

    .card-content {
        padding: 0.9rem !important;
    }

    .card-title {
        font-size: 1rem !important;
    }

    .card-text {
        font-size: 0.8rem !important;
    }

    /* ── Category cards: comfortable sizes ── */
    .category-card {
        min-height: 240px !important;
        padding: 1.25rem 1.1rem !important;
    }

    .category-icon {
        width: 76px !important;
        height: 76px !important;
    }

    .category-title {
        font-size: 1.05rem !important;
    }

    .category-description {
        font-size: 0.78rem !important;
    }

    /* ── Filters: comfortable for touch ── */
    .filter-bar {
        padding: 0.75rem 1rem !important;
        gap: 1rem !important;
    }

    .filter-group label {
        font-size: 0.72rem !important;
    }

    .filter-select {
        height: 40px !important;
        font-size: 0.76rem !important;
        padding: 0 0.65rem !important;
    }

    /* ── Promo banners: adequate sizing ── */
    .promo-banner {
        min-height: 80px !important;
        padding: 0.65rem 1rem !important;
    }

    .promo-banner-title {
        font-size: 1.05rem !important;
    }

    .promo-banner-description {
        font-size: 0.78rem !important;
    }

    /* ── Section titles ── */
    .section-title {
        font-size: 1.3rem !important;
    }

    .section-description {
        font-size: 0.78rem !important;
    }

    /* ── Breadcrumbs ── */
    .breadcrumbs {
        font-size: 0.72rem !important;
    }

    /* ── Footer: 4-column desktop grid ── */
    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 1.25rem !important;
    }

    .footer-section .footer-heading {
        font-size: 0.9rem !important;
    }

    .footer-links a,
    .footer-content p,
    .footer-bottom p {
        font-size: 0.78rem !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   TIER 2: LARGE TABLETS (1280–1599px, touch)
   iPad Pro 12.9" (2048×1536 → 1024×768 CSS @ 2x), Samsung Tab S9+ (1280×800)
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 1280px) and (max-width: 1599px) {

    :root {
        --desktop-container: min(90vw, 1340px) !important;
    }

    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container,
    .promo-banners-section .container,
    .hero .container,
    .footer-content,
    .footer .footer-regulatory {
        max-width: min(90vw, 1340px) !important;
    }

    /* ── Navigation: desktop-class ── */
    .nav-container {
        height: 62px !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: clamp(0.78rem, 0.85vw, 0.92rem) !important;
    }

    /* ── Hero: comfortable desktop size ── */
    .hero-title {
        font-size: 1.28rem !important;
    }

    .hero-subtitle {
        font-size: 0.65rem !important;
    }

    .search-box {
        max-width: min(80vw, 780px) !important;
        min-height: 54px !important;
    }

    .search-input {
        font-size: 0.92rem !important;
    }

    .search-box button {
        width: 46px !important;
        height: 46px !important;
    }

    /* ── Stats ── */
    .stat-item {
        width: 160px !important;
        height: 85px !important;
    }

    .stat-number {
        font-size: 1.1rem !important;
    }

    .stat-label {
        font-size: 0.62rem !important;
    }

    /* ── Grid: standard desktop with comfortable gaps ── */
    .category-grid,
    .services-grid {
        gap: 1.15rem !important;
    }

    .card-content {
        padding: 1rem !important;
    }

    .card-title {
        font-size: 1.05rem !important;
    }

    .card-text {
        font-size: 0.82rem !important;
    }

    /* ── Category cards ── */
    .category-card {
        min-height: 260px !important;
    }

    .category-icon {
        width: 84px !important;
        height: 84px !important;
    }

    /* ── Filters ── */
    .filter-select {
        height: 42px !important;
    }

    /* ── Promo banners ── */
    .promo-banner {
        min-height: 90px !important;
        padding: 0.75rem 1.2rem !important;
    }

    .promo-banner-title {
        font-size: 1.15rem !important;
    }

    /* ── Section titles ── */
    .section-title {
        font-size: 1.4rem !important;
    }

    .section-description {
        font-size: 0.85rem !important;
    }

    /* ── Footer ── */
    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 1.5rem !important;
    }

    .footer-section .footer-heading {
        font-size: 0.95rem !important;
    }

    .footer-links a,
    .footer-content p,
    .footer-bottom p {
        font-size: 0.82rem !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   TIER 3: XL TABLETS (1600–1919px, touch)
   Samsung Tab S9 Ultra portrait, Huawei MatePad Pro 13.2"
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 1600px) and (max-width: 1919px) {

    :root {
        --desktop-container: 1340px !important;
    }

    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container,
    .promo-banners-section .container,
    .hero .container,
    .footer-content,
    .footer .footer-regulatory {
        max-width: 1340px !important;
    }

    /* ── Navigation: full desktop ── */
    .nav-container {
        height: 66px !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: 0.84rem !important;
    }

    /* ── Hero: full desktop sizes ── */
    .hero-title {
        font-size: 1.4rem !important;
    }

    .hero-subtitle {
        font-size: 0.68rem !important;
    }

    .search-box {
        max-width: 820px !important;
        min-height: 58px !important;
    }

    .search-input {
        font-size: 0.98rem !important;
    }

    .search-box button {
        width: 50px !important;
        height: 50px !important;
    }

    /* ── Stats ── */
    .stat-item {
        width: 200px !important;
        height: 110px !important;
        padding: 1.25rem !important;
    }

    .stat-number {
        font-size: 1.4rem !important;
    }

    .stat-label {
        font-size: 0.72rem !important;
    }

    /* ── Grid ── */
    .category-grid,
    .services-grid {
        gap: 1.35rem !important;
    }

    .card-content {
        padding: 1.1rem !important;
    }

    .card-title {
        font-size: 1.1rem !important;
    }

    .card-text {
        font-size: 0.88rem !important;
    }

    /* ── Category cards ── */
    .category-card {
        min-height: 290px !important;
    }

    .category-icon {
        width: 96px !important;
        height: 96px !important;
    }

    /* ── Promo banners ── */
    .promo-banner {
        min-height: 100px !important;
        padding: 1rem 1.5rem !important;
    }

    .promo-banner-title {
        font-size: 1.25rem !important;
    }

    .promo-banner-description {
        font-size: 0.88rem !important;
    }

    /* ── Section titles ── */
    .section-title {
        font-size: 1.55rem !important;
    }

    .section-description {
        font-size: 0.92rem !important;
    }

    /* ── Footer ── */
    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 2rem !important;
    }

    .footer-section .footer-heading {
        font-size: 1rem !important;
    }

    .footer-links a,
    .footer-content p,
    .footer-bottom p {
        font-size: 0.88rem !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   TIER 4: FULL-HD+ TABLETS (1920px+, touch)
   Samsung Tab S9 Ultra landscape (2960×1848), iPad Pro + Stage Manager
   ═══════════════════════════════════════════════════════════════════ */

/* Repaired merge of sub-splits */

@media (pointer: coarse) and (min-width: 1920px) {

    :root {
        --desktop-container: 1400px !important;
    }

    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container,
    .promo-banners-section .container,
    .hero .container,
    .footer-content,
    .footer .footer-regulatory {
        max-width: 1400px !important;
    }

    /* ── Navigation: full PC navigation ── */
    .nav-container {
        height: 72px !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: 0.9rem !important;
    }

    .logo-text {
        font-size: 1.5rem !important;
    }

    /* ── Hero: full PC proportions ── */
    .hero {
        padding-top: 2rem !important;
        padding-bottom: 2.5rem !important;
    }

    .hero-title {
        font-size: 1.6rem !important;
    }

    .hero-subtitle {
        font-size: 0.72rem !important;
    }

    .search-box {
        max-width: 920px !important;
        min-height: 62px !important;
        padding: 4px !important;
        padding-left: 1.5rem !important;
    }

    .search-input {
        font-size: 1.02rem !important;
    }

    .search-box button {
        width: 52px !important;
        height: 52px !important;
    }

    /* ── Stats: full desktop ── */
    .hero-stats {
        margin-top: 3rem !important;
        gap: 2.5rem !important;
    }

    .stat-item {
        width: 220px !important;
        height: 120px !important;
        padding: 1.5rem !important;
        border-radius: 20px !important;
    }

    .stat-number {
        font-size: 1.6rem !important;
    }

    .stat-label {
        font-size: 0.82rem !important;
    }

    /* ── Grid: full PC ── */
    .category-grid,
    .services-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 1.5rem !important;
    }

    .card-content {
        padding: 1.2rem 1.3rem !important;
    }

    .card-title {
        font-size: 1.15rem !important;
    }

    .card-text {
        font-size: 0.92rem !important;
    }

    /* ── Category cards: full desktop ── */
    .category-card {
        min-height: 320px !important;
        padding: 1.5rem !important;
    }

    .category-icon {
        width: 108px !important;
        height: 108px !important;
    }

    .category-title {
        font-size: 1.2rem !important;
    }

    .category-description {
        font-size: 0.92rem !important;
    }

    /* ── Promo banners ── */
    .promo-banners-section {
        padding-top: 1.5rem !important;
        padding-bottom: 2.5rem !important;
    }

    .promo-banner {
        min-height: 110px !important;
        padding: 1.25rem 1.75rem !important;
        border-radius: 16px !important;
    }

    .promo-banner-title {
        font-size: 1.3rem !important;
    }

    .promo-banner-description {
        font-size: 0.92rem !important;
    }

    /* ── Section titles ── */
    .section-title {
        font-size: 1.7rem !important;
    }

    .section-description {
        font-size: 1rem !important;
    }

    /* ── Footer: full desktop ── */
    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 2.5rem !important;
    }

    .footer-section .footer-heading {
        font-size: 1.05rem !important;
    }

    .footer-links a,
    .footer-content p,
    .footer-bottom p {
        font-size: 0.92rem !important;
    }

    /* ── AI Chat: comfortable desktop size (skip when user resized) ── */
    .ai-guide-chat:not(.ai-guide-chat--custom-size) {
        width: 28rem !important;
        height: 38rem !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   PORTRAIT ORIENTATION ADJUSTMENTS
   When a tablet is held in portrait, width is smaller but height is large.
   Ensure desktop layout still applies for tablets ≥769px width in portrait.
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 768px) and (max-width: 1100px) and (orientation: portrait) {

    /* ── Force desktop nav rail (not burger) for tablets in portrait ── */
    .mobile-menu-toggle {
        display: none !important;
    }

    .nav-menu.nav-main-rail {
        display: contents !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item {
        display: flex !important;
    }

    .nav-menu.nav-main-rail > li.mobile-only-auth {
        display: none !important;
    }

    .nav-menu .nav-menu-head {
        display: none !important;
    }

    /* ── Container: use most of the width ── */
    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container {
        max-width: 94vw !important;
    }

    /* ── Compact nav for narrower portrait ── */
    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: clamp(0.68rem, 1.2vw, 0.82rem) !important;
        padding: 0.35rem 0.1rem !important;
    }

    /* ── Nav optional items: hide to save space in portrait ── */
    .nav-menu.nav-main-rail > li.nav-main-rail__item--optional {
        display: none !important;
    }

    /* ── Hero: adjusted for portrait aspect ── */
    .hero-title {
        font-size: clamp(1rem, 2.5vw, 1.3rem) !important;
    }

    .hero-subtitle {
        font-size: clamp(0.55rem, 1vw, 0.65rem) !important;
    }

    /* ── Grid: 3 columns for portrait tablets ── */
    .category-grid,
    .services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 0.85rem !important;
    }

    /* ── Footer: 3-column for portrait ── */
    .footer-content {
        grid-template-columns: repeat(3, 1fr) !important;
    }

    .footer-section:first-child {
        grid-column: 1 / -1 !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   LANDSCAPE ORIENTATION BOOST
   When a tablet is in landscape, it has plenty of width.
   Ensure full 4-column desktop experience.
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 1024px) and (orientation: landscape) {

    /* ── Ensure 4-column grids in landscape ── */
    .category-grid,
    .services-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    /* ── Footer: full 4-column ── */
    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   BOOKING / DETAIL PAGE TOUCH ADJUSTMENTS
   Ensure booking forms and detail pages are finger-friendly on tablets.
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 768px) {

    /* ── Booking form inputs ── */
    .booking-card input,
    .booking-card select,
    .booking-card textarea {
        min-height: 48px !important;
    }

    .booking-card .btn {
        min-height: 48px !important;
        font-size: 0.95rem !important;
    }

    /* ── Detail page gallery: swipe-friendly ── */
    .detail-gallery-main {
        touch-action: pan-x !important;
    }

    /* ── Profile layout: maintain desktop sidebar ── */
    .profile-layout {
        grid-template-columns: clamp(220px, 20vw, 300px) 1fr !important;
    }

    /* ── Auth forms: comfortable sizing ── */
    .auth-card {
        max-width: 480px !important;
        padding: 2.5rem !important;
    }

    .auth-card input {
        min-height: 50px !important;
    }

    .auth-card .btn {
        min-height: 50px !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   FOLDABLE DEVICES — Galaxy Fold Unfolded (717–884px, touch)
   Samsung Galaxy Z Fold5 unfolded (884×1812 → 717×884 CSS @ ~2.6x)
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 717px) and (max-width: 884px) {

    /* ── Container: wide for foldable screen ── */
    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container {
        max-width: 96vw !important;
    }

    /* ── Hero: compact for foldable proportions ── */
    .hero {
        min-height: clamp(30vh, 40vh, 50vh) !important;
        padding-top: calc(clamp(52px, 5vh, 64px) + 1rem) !important;
    }

    .hero-title {
        font-size: clamp(1.1rem, 3vw, 1.4rem) !important;
        white-space: normal !important;
    }

    .hero-subtitle {
        font-size: clamp(0.55rem, 1.2vw, 0.7rem) !important;
        white-space: normal !important;
    }

    /* ── Grid: 2 columns for fold unfolded ── */
    .category-grid,
    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.85rem !important;
    }

    /* ── Stats: compact for fold ── */
    .stat-item {
        width: clamp(85px, 22vw, 120px) !important;
        height: clamp(55px, 14vw, 78px) !important;
    }

    /* ── Footer: 2-column for fold ── */
    .footer-content {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1rem !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   LANDSCAPE MEDIUM TABLETS (769–1023px, landscape, touch)
   iPad Mini landscape (1133×744), iPad 10th gen landscape (1080×810)
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 768px) and (max-width: 1023px) and (orientation: landscape) {

    /* ── Container: use more width in landscape ── */
    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container {
        max-width: 92vw !important;
    }

    /* ── Grid: 4 columns in landscape (plenty of width) ── */
    .category-grid,
    .services-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 0.9rem !important;
    }

    /* ── Footer: 4-column in landscape ── */
    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
    }

    /* ── Hero: landscape-optimized proportions ── */
    .hero {
        min-height: clamp(50vh, 60vh, 70vh) !important;
    }

    .hero-title {
        font-size: clamp(1.15rem, 2.2vw, 1.5rem) !important;
    }

    .hero-subtitle {
        font-size: clamp(0.55rem, 0.85vw, 0.7rem) !important;
    }

    /* ── Stats: landscape comfortable ── */
    .stat-item {
        width: clamp(110px, 14vw, 160px) !important;
        height: clamp(65px, 8vw, 90px) !important;
    }

    /* ── Nav: ensure optional items show if space allows ── */
    .nav-menu.nav-main-rail > li.nav-main-rail__item--optional {
        display: flex !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   PHABLET TABLETS — iPad Mini portrait (744px), small touch tablets
   Width 700–767px but tall portrait → nav-rail, not burger
   Added 2026-06-26 — responsive audit (closes 481–767 nav gap)
   ═══════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) and (min-width: 700px) and (max-width: 767px) and (min-height: 700px) {

    .mobile-menu-toggle {
        display: none !important;
    }

    .nav-menu.nav-main-rail {
        display: contents !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item {
        display: flex !important;
    }

    .nav-menu.nav-main-rail > li.mobile-only-auth {
        display: none !important;
    }

    .nav-menu .nav-menu-head {
        display: none !important;
    }

    #navMenu.nav-menu.nav-main-rail,
    .nav-menu.nav-main-rail {
        position: static !important;
        transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: clamp(0.65rem, 1.1vw, 0.78rem) !important;
        padding: 0.3rem 0.08rem !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item--optional {
        display: none !important;
    }

    .category-grid,
    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.85rem !important;
    }

    .footer-content {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .footer-section:first-child {
        grid-column: 1 / -1 !important;
    }
}


/* Footer list links: compact rows (no 44px touch stretch on every line) */

@media (pointer: coarse) and (min-width: 768px) {
    .footer .footer-links a,
    .footer .footer-link-btn {
        min-height: 0 !important;
        height: auto !important;
        padding: 0 !important;
        line-height: 1.2 !important;
        display: inline !important;
    }

    .footer .footer-links li {
        margin-bottom: 0.1rem !important;
    }

    .footer .footer-links li:last-child {
        margin-bottom: 0 !important;
    }
}


/* Homepage category cards: preserve footer reserve, balanced count strip */

@media (pointer: coarse) and (min-width: 481px) {
    .homepage-categories-section .category-grid .category-card {
        --cat-footer-h: 6.25rem !important;
        padding: 0.85rem 0 0 !important;
        padding-bottom: var(--cat-footer-h) !important;
    }

    .homepage-categories-section .category-grid .category-count {
        min-height: var(--cat-footer-h) !important;
        height: var(--cat-footer-h) !important;
        max-height: var(--cat-footer-h) !important;
        padding: 0.5rem 0.45rem 0.95rem !important;
        gap: 0.15rem !important;
    }

    .homepage-categories-section .category-grid .category-count span:first-child {
        font-size: 1.35rem !important;
        line-height: 1.05 !important;
    }

    .homepage-categories-section .category-grid .category-count span:last-child {
        font-size: 0.78rem !important;
        line-height: 1.1 !important;
    }
}

/* Catalog rail — перебить tier overrides: ревью/каталог = одна линия с баннерами */
@media (min-width: 768px) {
    section.page-header-context.page-header-context--catalog-nav > .container,
    .catalog-back-corridor > .container.catalog-back-crumb-rail,
    .catalog-strip-stack .catalog-page-inner.ad-strip-catalog-inner,
    .catalog-page-like-listing > .catalog-page-inner,
    .compass-strip-back-filter-stack .catalog-page-inner.ad-strip-catalog-inner,
    .ad-strip-catalog-inner,
    .news-compass-detail-page.rental-container.catalog-page-inner {
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        box-sizing: border-box !important;
    }
}

/* === components/shared/a11y-screen-reader.css === */
/* Component CSS — isolated selectors. Edit freely. */

.zai-ctx{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.zai-ctx[aria-hidden="true"]{display:none!important}

/* === components/shared/js-widget-states.css === */
/* JS widget states — toggled from static/js (no inline .style). */

.chat-link-hover-card {
    position: fixed;
    top: var(--chat-hover-top, 0);
    left: var(--chat-hover-left, 0);
    z-index: 10050;
}

.chat-catalog-fallback-wrap {
    margin-top: 0.75rem;
    margin-bottom: 0;
}

.widget-drag-anchor--custom {
    position: fixed;
    left: var(--widget-x, 0);
    top: var(--widget-y, 0);
    right: auto;
}

.hero-bg-layer { background-size: cover; background-position: center; }

.captcha-canvas--visible { display: block; }
.captcha-canvas.u-is-hidden { display: none; }

.ai-guide-panel--open { display: block; }
.ai-guide-panel.u-is-hidden { display: none; }

.weather-widget-loading { opacity: 0.5; }
.weather-widget-ready { opacity: 1; }

.recruitment-widget-step { display: none; }
.recruitment-widget-step.recruitment-widget-step--active { display: block; }

.company-tab-panel { display: none; }
.company-tab-panel.company-tab-panel--active { display: block; }

.market-detail-gallery-img { opacity: 1; transform: scale(1); transition: opacity 0.3s, transform 0.3s; }
.market-detail-gallery-img--swap { opacity: 0.4; transform: scale(0.98); }

.card-carousel-track--no-transition { transition: none; }

.listing-fav-btn--animating { transform: scale(1.2); }

.tender-bot-msg--error { color: #ef4444; }
.tender-bot-msg--success { color: #22c55e; }

.bus-wizard-step { display: none; }
.bus-wizard-step.bus-wizard-step--active { display: block; }

.ai-search-result--highlight { background: rgba(59, 130, 246, 0.08); }

.date-guard-msg { display: none; }
.date-guard-msg.date-guard-msg--visible { display: block; }

/* Каталог mega-menu — над плавающими виджетами (weather/recruit/FAB ~9950) */
@media (min-width: 768px) {
    .header .nav-dropdown .mega-menu {
        z-index: var(--z-mega-menu, 10060) !important;
    }

    .header:has(.nav-dropdown.open),
    .header:has(.nav-dropdown:hover) {
        z-index: var(--z-mega-menu, 10060);
    }
}

body.catalog-mega-open .zw-recruit-anchor--floating,
body.catalog-mega-open .zw-weather-anchor--floating,
body.catalog-mega-open .zw-ge-anchor--floating,
body.catalog-mega-open #siteFabStack {
    z-index: 900 !important;
    pointer-events: none !important;
}

/* === components/search/hero-search-states.css === */
/* Hero search — button dim, filter wrap, scroll-reveal cards. */

.hero-search-btn--dim {
    opacity: 0.5 !important;
}

.hero-filter-chips-wrap {
    display: block;
}

.hero-filter-chips-wrap.u-is-hidden {
    display: none !important;
}

.zk-scroll-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.zk-scroll-reveal.zk-scroll-reveal--visible {
    opacity: 1;
    transform: translateY(0);
}

/* === category-icons.css === */
.cat-svg-icon{display:inline-block;vertical-align:middle;flex-shrink:0;transition:color 0.2s ease,transform 0.2s ease}.mega-menu-title .cat-svg-icon{width:24px;height:24px;margin-right:7px;color:var(--color-primary,#1e40af);position:relative;top:-1px}.mega-menu-title:hover .cat-svg-icon{color:var(--color-primary-dark,#1e3a8a);transform:scale(1.12)}.mega-menu-list a .cat-svg-icon{width:20px;height:20px;margin-right:6px;color:var(--color-gray,#94a3b8);position:relative;top:-1px;transition:color 0.2s ease,transform 0.2s ease}.mega-menu-list a:hover .cat-svg-icon{color:var(--color-primary,#1e40af);transform:scale(1.15)}.listing-card .cat-svg-icon,.svc-card .cat-svg-icon{width:14px;height:14px;margin-right:4px;opacity:0.7}.booking-type-icon .cat-svg-icon{width:18px;height:18px;color:var(--accent,#a78bfa)}.category-chip .cat-svg-icon,.filter-chip .cat-svg-icon{width:16px;height:16px;margin-right:4px}.category-chip.active .cat-svg-icon,.filter-chip.active .cat-svg-icon{color:var(--z-surface-white)}@media (max-width:1024px){.mega-menu-title .cat-svg-icon{width:22px;height:22px;margin-right:8px}.mega-menu-list a .cat-svg-icon{width:18px;height:18px;margin-right:6px}}.category-tab .cat-svg-icon{width:16px;height:16px;margin-right:3px;position:relative;top:-1px;opacity:0.7}.category-tab.active .cat-svg-icon{opacity:1;color:#ffffff}.category-tab:hover .cat-svg-icon{opacity:1}.subcategory-chip .cat-svg-icon{width:14px;height:14px;margin-right:3px}.booking-type-icon .cat-svg-icon{width:20px;height:20px}

/* === watermark-overlay.css === */
.compass-card-img::after{content:"";position:absolute;inset:0;border-radius:0 0 var(--z-card-photo-bottom-radius,var(--z-card-radius,20px)) var(--z-card-photo-bottom-radius,var(--z-card-radius,20px));z-index:2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='140'%3E%3Ctext x='50%25' y='50%25' dominant-baseline='middle' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-size='16' font-weight='600' fill='rgba(255,255,255,0.07)' transform='rotate(-30 140 70)'%3Ezookzy.com%3C/text%3E%3C/svg%3E");background-repeat:repeat;background-size:280px 140px;mix-blend-mode:normal}.places-side-img::after,.place-card-img::after,.svc-card-img::after,.sr-card__image-wrap::after,.rv-nc-photo::after{content:"";position:absolute;inset:0;border-radius:0 0 var(--z-card-photo-bottom-radius,var(--z-card-radius,20px)) var(--z-card-photo-bottom-radius,var(--z-card-radius,20px));z-index:2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='140'%3E%3Ctext x='50%25' y='50%25' dominant-baseline='middle' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-size='16' font-weight='600' fill='rgba(255,255,255,0.07)' transform='rotate(-30 140 70)'%3Ezookzy.com%3C/text%3E%3C/svg%3E");background-repeat:repeat;background-size:280px 140px;mix-blend-mode:normal}.compass-detail-hero::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='170'%3E%3Ctext x='50%25' y='50%25' dominant-baseline='middle' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-size='22' font-weight='700' fill='rgba(255,255,255,0.09)' transform='rotate(-30 170 85)'%3Ezookzy.com%3C/text%3E%3C/svg%3E");background-repeat:repeat;background-size:340px 170px}.compass-detail-hero,.svc-card-img,.sr-card__image-wrap,.rv-nc-photo{position:relative;overflow:hidden}.compass-article-content img,.place-article-content img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}.compass-card-img img,.places-side-img img,.place-card-img img,.svc-card-img img,.sr-card__image,.rv-nc-photo img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}

/* === surface-text.css === */
/**
 * Surface text — light copy on dark backgrounds + isolated search field.
 * Loaded after style.css. Fixes global body/h* black overrides on dark UI.
 */

/* ── Token hosts: children inherit --z-heading-color / --z-surface-text-color ── */
.hero--cinematic,
.homepage-hero-promo-stack,
.section-hero,
.compass-hero-bar,
.places-hero-bar,
.rv-hero:not(.rv-no-hero),
.td-hero__overlay,
.trains-hero,
.buses-hero,
.about-hero,
.tours-hero,
.affiliate-hero,
.aff-hero-new,
.transport-stop-hero-media,
.promo-banner,
.wb-legal-toolbar,
.auth-card-header,
.section[style*="gradient-primary"],
.section[style*="background: var(--gradient-primary)"],
.cb-listing-embed,
.z-surface-dark,
[data-z-surface="dark"] {
  --z-heading-color: #fff;
  --z-surface-text-color: rgba(255, 255, 255, 0.88);
}

/* Light corridors inside dark layouts */
.rv-no-hero,
.seo-about__faq-wrap,
.seo-about,
.seo-about--inset .seo-about__faq-wrap {
  --z-heading-color: #202124;
  --z-surface-text-color: #5f6368;
}

/* Footer — см. static/css/site-footer.css */

/* ── Hero / page intros ── */
.hero--cinematic .hero-title,
.hero--cinematic .hero-title--homepage,
.hero--cinematic .hero-subtitle,
.hero--cinematic .hero-subtitle--homepage,
.section-hero :is(h1, h2, h3),
.compass-hero-title h1,
.places-hero-title-row h1,
.places-main-card .places-main-content :is(h2, h3, p, .excerpt, .places-main-meta),
.places-main-card .places-hero-badge,
.places-main-card .places-read-btn,
.compass-main-card .compass-main-content :is(h2, h3, p, .excerpt, .compass-main-meta),
.compass-main-card .compass-read-btn,
.rv-hero:not(.rv-no-hero) .rv-hero-title,
.rv-hero:not(.rv-no-hero) h1.rv-hero-title,
.rv-hero:not(.rv-no-hero) .rv-hero-excerpt,
.place-rv-hero-content h1,
.td-hero__route h1,
.td-hero__overlay :is(h1, h2, h3),
.trains-hero__title,
.buses-hero__title,
.about-hero h1,
.about-hero p,
.tours-hero h1,
.tours-hero p,
.affiliate-hero h1,
.affiliate-hero p,
.aff-hero-new h1,
.aff-hero-new h2,
.aff-hero-new p,
.section[style*="gradient-primary"] :is(h1, h2, h3, h4, h5, h6),
.section[style*="background: var(--gradient-primary)"] :is(h1, h2, h3, h4, h5, h6),
.section[style*="gradient-primary"] p,
.section[style*="background: var(--gradient-primary)"] p {
  color: #fff !important;
}

.places-main-card .places-main-content .excerpt,
.compass-main-card .compass-main-content .excerpt {
  color: #fff !important;
}

.hero--cinematic .hero-subtitle,
.hero--cinematic .hero-subtitle--homepage {
  color: rgba(255, 255, 255, 0.93) !important;
}

/* Gradient accent spans inside white hero titles */
.compass-hero-title h1 span,
.places-hero-title-row h1 span {
  -webkit-text-fill-color: transparent;
}

/* Promo tiles on homepage */
.promo-banner-title {
  color: var(--z-surface-white) !important;
}

.promo-banner-description {
  color: rgba(255, 255, 255, 0.9) !important;
}

.promo-banner-arrow {
  color: var(--z-surface-white) !important;
}

/* Legal reader chrome */
.wb-legal-toolbar,
.wb-legal-toolbar :is(h1, h2, h3, p, span, button) {
  color: var(--z-surface-white) !important;
}

.wb-legal-meta {
  color: rgba(255, 255, 255, 0.72) !important;
}

/* Auth card headers (login/register) */
.auth-card-header,
.auth-card-header :is(h1, h2, h3, p) {
  color: var(--z-surface-white) !important;
}

/* ── Search field: never inherits surface / heading color ── */
.z-search-field,
input.z-search-field,
textarea.z-search-field {
  color: var(--z-gray-600) !important;
  caret-color: var(--z-gray-600);
  -webkit-text-fill-color: var(--z-gray-600);
  text-shadow: none;
}

.z-search-field::placeholder {
  color: var(--z-text-secondary) !important;
  opacity: 1;
}

.z-search-field:focus {
  color: var(--z-gray-600) !important;
  -webkit-text-fill-color: var(--z-gray-600);
}

.hero--cinematic .z-search-field,
.homepage-hero-promo-stack .hero--cinematic .z-search-field {
  background: transparent !important;
}

.hero--cinematic .z-search-field:focus,
.homepage-hero-promo-stack .hero--cinematic .z-search-field:focus {
  background: transparent !important;
}

/* Header language switcher — active pill text stays white */
.language-switcher .lang-btn.active,
.language-switcher .lang-btn.active span {
  color: var(--z-surface-white) !important;
}

/* === site-banner-proportions.css === */
/**
 * site-banner-proportions.css
 * Один универсальный креатив на все экраны и слоты (главная ×2, страницы ×3, mobile dock).
 *
 * Мастер-файл для дизайна: 1900×400 px (ровно 19∶4).
 * Safe-zone: важные лого/текст в центральных ~70% ширины и высоты.
 * На сайте ячейка всегда 19∶4 → картинка с object-fit:cover заполняет без искажений.
 */

:root {
  --z-banner-ratio-w: 19;
  --z-banner-ratio-h: 4; /* 4.75:1 — единый стандарт desktop / tablet / mobile */
}

/* ── Promo banners: главная и любые .promo-banners-section ── */
.promo-banners-grid .promo-banner,
.promo-banners-section .promo-banner,
.homepage-hero-promo-stack .promo-banner,
.promo-home-cell--1 .promo-banner,
.promo-home-cell--2 .promo-banner,
.promo-banners-grid .promo-banner--adsense,
.promo-banners-section .promo-banner--adsense,
.promo-banners-grid .promo-banner--adsense .z-adsense-slot,
.homepage-categories-ad-dock .promo-banner,
.homepage-categories-ad-dock .promo-banner--adsense,
a.promo-banner,
button.promo-banner,
.promo-banner--db {
  aspect-ratio: var(--z-banner-ratio-w) / var(--z-banner-ratio-h) !important;
  min-height: unset !important;
  height: auto !important;
  max-height: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.promo-banner--adsense,
.promo-banners-grid .promo-banner--adsense {
  display: block !important;
  padding: 0 !important;
}

.promo-banner--adsense .z-adsense-slot {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  border-radius: inherit;
}

.promo-banner {
  padding: clamp(0.55rem, 1.35vw, 1.25rem) clamp(0.65rem, 1.6vw, 1.35rem) !important;
  align-items: center !important;
}

.promo-banner__img,
.promo-banner img.promo-banner__img,
.promo-banner video.promo-banner__img {
  object-fit: cover !important;
  object-position: center center !important;
}

.promo-banner-icon {
  width: clamp(36px, 8vw, 51px) !important;
  height: clamp(36px, 8vw, 51px) !important;
}

.promo-banner-title {
  font-size: clamp(0.78rem, 1.05vw, 1.15rem) !important;
  line-height: 1.25 !important;
  margin-bottom: clamp(0.1rem, 0.35vw, 0.35rem) !important;
}

.promo-banner-description {
  font-size: clamp(0.62rem, 0.85vw, 0.82rem) !important;
  line-height: 1.35 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.promo-banner-primary .promo-banner-arrow,
.promo-banner-secondary .promo-banner-arrow,
.promo-banner--demo .promo-banner-arrow,
.promo-banner--stub .promo-banner-arrow {
  width: clamp(34px, 7vw, 42px) !important;
  height: clamp(34px, 7vw, 42px) !important;
  min-width: clamp(34px, 7vw, 42px) !important;
  max-width: clamp(34px, 7vw, 42px) !important;
}

/* ── Catalog / listing ad-strip (3-up, 2-up, mobile dock) ── */
.ad-strip-triple__grid .ad-strip-card,
.ad-strip-card,
a.ad-strip-card,
button.ad-strip-card,
.catalog-ad-mobile-dock .ad-strip-card,
.ad-strip-card--adsense,
.ad-strip-card--adsense .z-adsense-slot {
  aspect-ratio: var(--z-banner-ratio-w) / var(--z-banner-ratio-h) !important;
  min-height: unset !important;
  height: auto !important;
  max-height: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.ad-strip-card--adsense {
  padding: 0 !important;
  display: block !important;
}

.ad-strip-card--adsense .z-adsense-slot {
  height: 100% !important;
  min-height: 0 !important;
}

.ad-strip-card__img {
  object-fit: cover !important;
  object-position: center center !important;
}

.ad-strip-card video.ad-strip-card__img,
.promo-banner video.promo-banner__img {
  object-fit: cover !important;
  object-position: center center !important;
}

.ad-strip-card__body {
  padding: clamp(0.45rem, 1.1vw, 0.7rem) clamp(0.55rem, 1.4vw, 0.9rem) !important;
}

.ad-strip-card__title {
  font-size: clamp(0.78rem, 1vw, 0.95rem) !important;
  line-height: 1.25 !important;
}

.ad-strip-card__desc {
  font-size: clamp(0.65rem, 0.82vw, 0.78rem) !important;
  line-height: 1.35 !important;
}

/* Standalone AdSense slots in banner grid */
.z-adsense-slot:not(.promo-banner--adsense .z-adsense-slot):not(.ad-strip-card--adsense .z-adsense-slot) {
  aspect-ratio: var(--z-banner-ratio-w) / var(--z-banner-ratio-h);
  min-height: unset !important;
  height: auto !important;
}

/* === tablet-portrait.css === */
/* Repaired merge of sub-splits */

/**
 * tablet-portrait.css — планшет вертикально (portrait).
 * Убирает смешение mobile (≤767) и desktop PC на ширине 768–1100px.
 * Грузится последним среди layout CSS.
 */

@media (min-width: 768px) and (max-width: 1100px) and (orientation: portrait) and (min-height: 600px),
       (min-device-width: 768px) and (max-width: 767px) and (orientation: portrait) and (pointer: coarse) {

    /* ── Header: 2 ряда — лого | язык+страна по центру | вход; меню второй строкой ── */
    :root {
        --header-h: 108px;
        --page-below-header: clamp(2.75rem, 5vw, 4.5rem);
        --hero-title-top-extra: clamp(1.5rem, 3.5vh, 2.75rem);
        --catalog-rail-px: 12px;
        --catalog-rail-max: min(86.4vw, 1260px);
    }

    .mobile-menu-toggle {
        display: none !important;
    }

    .header .nav-container:has(> .nav-menu.nav-main-rail) {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) auto auto minmax(0, 1fr) auto !important;
        grid-template-rows: auto auto;
        align-items: center !important;
        justify-content: stretch !important;
        height: auto !important;
        min-height: var(--header-h) !important;
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        margin-inline: auto !important;
        padding-top: 8px !important;
        padding-bottom: 10px !important;
        padding-left: max(var(--catalog-rail-px, 12px), env(safe-area-inset-left, 0px)) !important;
        padding-right: max(var(--catalog-rail-px, 12px), env(safe-area-inset-right, 0px)) !important;
        gap: 8px clamp(6px, 1.1vw, 10px) !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    .header .nav-container > .logo {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
        align-self: center;
        margin: 0 !important;
    }

    .header .logo-img {
        height: 26px !important;
        max-width: 128px !important;
    }

    /* nav-actions → display:contents: язык/страна в центре между лого и входом */
    .header .nav-container > .nav-actions,
    .header .nav-container:has(> .nav-menu.nav-main-rail) > .nav-actions,
    .nav-container:has(> .nav-menu.nav-main-rail) > .nav-actions {
        display: contents !important;
        margin: 0 !important;
        padding: 0 !important;
        gap: 0 !important;
    }

    .header .nav-container > .nav-actions > script {
        display: none !important;
    }

    .header .nav-container > .nav-actions > .language-switcher,
    .nav-container .language-switcher {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        margin: 0 !important;
    }

    .header .nav-container > .nav-actions > .country-dropdown,
    .nav-container .country-dropdown {
        grid-column: 4;
        grid-row: 1;
        justify-self: start;
        align-self: center;
        margin: 0 !important;
    }

    .header .nav-container > .nav-actions > .user-menu,
    .header .nav-container > .nav-actions > .desktop-only-auth,
    .header .nav-container > .nav-actions > a.btn.auth-btn,
    .header .nav-container > .nav-actions > a.auth-btn {
        grid-column: 6;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        margin: 0 !important;
    }

    .header .nav-container > .nav-actions > .mobile-menu-toggle {
        display: none !important;
    }

    #navMenu.nav-menu.nav-main-rail,
    .header .nav-container > .nav-menu.nav-main-rail {
        grid-column: 1 / -1;
        grid-row: 2;
        position: static !important;
        transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 2px !important;
        gap: clamp(2px, 0.6vw, 8px) !important;
        /* overflow на nav-menu обрезает position:fixed mega-menu — только visible */
        overflow: visible !important;
        scrollbar-width: none;
        background: transparent !important;
        box-shadow: none !important;
        pointer-events: auto !important;
        list-style: none !important;
    }

    .header .nav-container > .nav-menu.nav-main-rail::-webkit-scrollbar {
        display: none;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item {
        flex: 0 0 auto !important;
        min-width: 0 !important;
        max-width: none !important;
        width: auto !important;
        display: flex !important;
    }

    .nav-menu.nav-main-rail > li.mobile-only-auth,
    .nav-menu .nav-menu-head {
        display: none !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item--optional {
        display: none !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link {
        font-size: clamp(12px, 0.75vw, 14.5px) !important;
        font-weight: 500 !important;
        letter-spacing: 0.01em !important;
        padding: 0.4rem 0.15rem !important;
        min-height: 0 !important;
        height: auto !important;
        white-space: nowrap !important;
        overflow: visible !important;
        text-overflow: unset !important;
        border-bottom: none !important;
        line-height: 1.3 !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item > .nav-link.nav-link--requests {
        overflow: visible !important;
        padding-right: 0.35rem !important;
        font-weight: 500 !important;
    }

    .nav-menu.nav-main-rail > li.nav-dropdown > .nav-link {
        gap: 0.22rem !important;
        padding-right: 0.15rem !important;
    }

    .nav-menu.nav-main-rail > li.nav-dropdown > .nav-link .dropdown-arrow-nav {
        display: inline-block !important;
        width: 10px !important;
        height: 10px !important;
        flex-shrink: 0 !important;
        opacity: 0.6 !important;
    }

    .nav-menu.nav-main-rail > li.nav-dropdown.open > .nav-link .dropdown-arrow-nav {
        transform: rotate(180deg);
    }

    /* Одна стрелка как на ПК — без mobile-dropdown-toggle */
    .header .nav-dropdown .mobile-dropdown-toggle {
        display: none !important;
    }

    .nav-container .language-switcher {
        height: 32px !important;
        min-height: 32px !important;
    }

    .language-switcher .lang-btn {
        height: 26px !important;
        min-height: 26px !important;
        font-size: 10px !important;
        padding: 0 7px !important;
    }

    .language-switcher .lang-flag {
        width: 14px !important;
        height: 10px !important;
    }

    .country-dropdown-btn {
        height: 32px !important;
        min-height: 32px !important;
        font-size: 10px !important;
        padding: 0 8px !important;
        gap: 4px !important;
    }

    .country-dropdown-btn .country-name {
        max-width: 5.5rem !important;
    }

    /* ── Mega-menu: как на ПК; не клипать шапкой и nav-menu ── */
    .header:has(.nav-menu.nav-main-rail) {
        overflow: visible !important;
    }

    .nav-menu.nav-main-rail > li.nav-dropdown {
        position: relative !important;
        overflow: visible !important;
    }

    .header .nav-dropdown .mobile-dropdown-toggle {
        display: none !important;
    }

    .nav-menu.nav-main-rail > li.nav-dropdown > .nav-link {
        padding-right: 0.15rem !important;
    }

    .header .nav-dropdown .mega-menu {
        --mega-gap: 0.45rem;
        --mega-cols: 3;
        position: fixed !important;
        top: var(--header-h, 108px) !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translateX(-50%) translateY(10px) !important;
        width: min(var(--catalog-rail-max, 1260px), calc(100vw - 2 * var(--catalog-rail-px, 12px))) !important;
        max-width: min(1240px, calc(100vw - 2 * var(--catalog-rail-px, 12px))) !important;
        min-width: min(560px, calc(100vw - 2 * var(--catalog-rail-px, 12px))) !important;
        max-height: calc(100dvh - var(--header-h, 108px) - 8px) !important;
        height: auto !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        z-index: var(--z-mega-menu, 10060) !important;
        border-radius: 16px !important;
        background: var(--color-white, #fff) !important;
        box-shadow:
            0 25px 50px -12px rgba(0, 0, 0, 0.15),
            0 0 0 1px rgba(0, 0, 0, 0.05) !important;
        box-sizing: border-box !important;
    }

    .header .nav-dropdown:hover .mega-menu,
    .header .nav-dropdown.open .mega-menu {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateX(-50%) translateY(0) !important;
        pointer-events: auto !important;
    }

    .header .nav-dropdown .mega-menu-inner {
        --mega-panel-h: calc(100dvh - var(--header-h, 108px) - 20px);
        display: flex !important;
        flex-flow: column wrap !important;
        align-content: flex-start !important;
        align-items: stretch !important;
        gap: var(--mega-gap) !important;
        columns: unset !important;
        column-gap: unset !important;
        padding: 0.65rem 0.75rem !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: var(--mega-panel-h) !important;
        max-height: var(--mega-panel-h) !important;
        flex: 1 1 auto !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        box-sizing: border-box !important;
        scrollbar-width: thin !important;
        scrollbar-color: rgba(15, 23, 42, 0.28) transparent !important;
    }

    .header .nav-dropdown .mega-menu-inner::-webkit-scrollbar {
        width: 7px !important;
        height: 7px !important;
    }

    .header .nav-dropdown .mega-menu-inner::-webkit-scrollbar-thumb {
        background: rgba(15, 23, 42, 0.22) !important;
        border-radius: 7px !important;
    }

    .header .nav-dropdown .mega-menu-column {
        display: block !important;
        width: calc((100% - (var(--mega-cols) - 1) * var(--mega-gap)) / var(--mega-cols)) !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        flex: 0 0 auto !important;
        padding: 0.45rem 0.5rem 0.48rem !important;
        border: 1px solid rgba(0, 0, 0, 0.07) !important;
        border-radius: 10px !important;
        background: rgba(248, 250, 252, 0.96) !important;
        box-sizing: border-box !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        -webkit-column-break-inside: avoid !important;
    }

    .header .nav-dropdown .mega-menu-column:hover {
        border-color: rgba(73, 98, 117, 0.24) !important;
        box-shadow: 0 4px 16px rgba(15, 23, 42, 0.07) !important;
    }

    /* Сброс mobile-accordion; типографика = ПК */
    .header .nav-dropdown .mega-menu-title {
        display: block !important;
        font-size: 0.72rem !important;
        font-weight: 700 !important;
        color: var(--z-gray-950, #0f172a) !important;
        text-transform: uppercase !important;
        letter-spacing: 0.4px !important;
        margin-bottom: 0.55rem !important;
        padding-bottom: 0.4rem !important;
        border-bottom: 2px solid var(--color-primary) !important;
        line-height: 1.35 !important;
        white-space: normal !important;
    }

    .header .nav-dropdown .mega-menu-title .cat-svg-icon {
        width: 20px !important;
        height: 20px !important;
        margin-right: 7px !important;
    }

    .header .nav-dropdown .mega-menu-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .header .nav-dropdown .mega-menu-list li {
        margin-bottom: 0 !important;
    }

    .header .nav-dropdown .mega-menu-list a {
        display: block !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0.22rem 0 !important;
        font-size: 0.78rem !important;
        line-height: 1.4 !important;
        color: var(--color-gray) !important;
        white-space: normal !important;
    }

    .header .nav-dropdown .mega-menu-list a .cat-svg-icon {
        width: 20px !important;
        height: 20px !important;
        margin-right: 6px !important;
    }

    .header .nav-dropdown .mega-menu-list a:hover {
        padding-left: 0.6rem !important;
        color: var(--color-primary) !important;
    }

    .header .nav-dropdown .mega-menu-column .mega-menu-title::after {
        display: none !important;
    }

    .header .nav-dropdown .mega-menu-footer {
        flex: 0 0 auto !important;
        padding: 0.9rem 1.5rem !important;
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.04)) !important;
        border-top: 1px solid rgba(0, 0, 0, 0.06) !important;
        text-align: center !important;
    }

    .header .nav-dropdown .mega-menu-all {
        font-size: 0.85rem !important;
        font-weight: 600 !important;
    }

    @media (min-width: 1000px) {
        .header .nav-dropdown .mega-menu {
            --mega-cols: 4;
        }
    }

    /* ── Отступы и пропорции как на ПК (client-display-pc + hero_cinematic) ── */
    .hero,
    .hero.hero--homepage,
    .homepage-hero-stage > .hero.hero--homepage {
        padding-top: calc(var(--header-h) + var(--page-below-header)) !important;
        padding-bottom: clamp(1.5rem, 3vw, 3rem) !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        box-sizing: border-box !important;
    }

    .homepage-hero-stage {
        min-height: 0 !important;
        padding-top: 0 !important;
    }

    .hero.hero--homepage .hero-content--homepage,
    .homepage-hero-stage > .hero.hero--homepage .hero-content--homepage {
        margin-top: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        flex: 1 1 auto !important;
        min-height: 100% !important;
        justify-content: flex-start !important;
    }

    body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage {
        display: flex !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
    }

.hero.hero--homepage .hero-title--homepage,
    .homepage-hero-stage > .hero.hero--homepage .hero-title--homepage {
        margin-top: 0 !important;
        padding-top: var(--hero-title-top-extra) !important;
    }

    .hero.hero--homepage .hero-subtitle--homepage,
    .homepage-hero-stage > .hero.hero--homepage .hero-subtitle--homepage {
        margin-top: clamp(0.35rem, 1vh, 0.65rem) !important;
        margin-bottom: 0 !important;
    }

    /* Поиск + stats — ближе к середине экрана */
    .hero.hero--homepage .hero-search--homepage,
    .homepage-hero-stage > .hero.hero--homepage .hero-search--homepage {
        margin-top: auto !important;
        padding-top: clamp(0.75rem, 2vh, 1.5rem) !important;
        width: 100% !important;
    }

    .hero.hero--homepage .hero-stats--homepage,
    .homepage-hero-stage > .hero.hero--homepage .hero-stats--homepage {
        margin-top: clamp(1rem, 2.5vw, 1.75rem) !important;
        margin-bottom: auto !important;
        padding-bottom: clamp(1.25rem, 3vh, 2.5rem) !important;
    }

    .page-header-context,
    section.page-header-context {
        padding-top: calc(var(--header-h) + var(--spacing-sm, 0.75rem) - 6px) !important;
        margin-bottom: var(--spacing-sm, 0.75rem) !important;
    }

    .catalog-page-inner,
    .homepage-main-canvas,
    .site-page-canvas {
        scroll-margin-top: var(--header-h);
    }

    .hero {
        min-height: clamp(50vh, 60vh, 70vh) !important;
    }

    .hero-title {
        font-size: clamp(1.5rem, 2.2vw, 2.4rem) !important;
        white-space: normal !important;
        line-height: 1.2 !important;
        padding-top: var(--hero-title-top-extra) !important;
    }

    .hero-subtitle {
        font-size: clamp(0.55rem, 0.7vw, 0.85rem) !important;
        white-space: normal !important;
        line-height: 1.35 !important;
        margin-top: clamp(0.35rem, 1vh, 0.65rem) !important;
    }

    .search-box {
        max-width: min(83vw, 1010px) !important;
        min-height: clamp(40px, 3.6vw, 52px) !important;
    }

    .search-input {
        font-size: clamp(0.85rem, 1vw, 1.1rem) !important;
    }

    .hero-stats {
        margin-top: clamp(1rem, 2.5vw, 1.75rem) !important;
        gap: clamp(0.75rem, 2vw, 3rem) !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    .stat-item {
        width: clamp(99px, 12.6vw, 216px) !important;
        height: clamp(63px, 8.1vw, 126px) !important;
        padding: clamp(0.45rem, 0.9vw, 1.8rem) !important;
    }

    .stat-number {
        font-size: clamp(0.9rem, 1.4vw, 1.8rem) !important;
    }

    .stat-label {
        font-size: clamp(0.55rem, 0.75vw, 0.9rem) !important;
    }

    /* Главная: fullscreen stack как на ПК */
    body:not(.search-active) .homepage-hero-promo-stack {
        --home-promo-bottom-inset: 25px;
        --home-promo-lift: 20px;
        height: 100vh !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        min-height: 100dvh !important;
        display: flex !important;
        flex-direction: column !important;
        box-sizing: border-box !important;
        padding-bottom: var(--home-promo-bottom-inset) !important;
        overflow: visible !important;
    }

    body:not(.search-active) .homepage-hero-promo-stack > .homepage-hero-stage {
        flex: 1 1 0 !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body:not(.search-active) .homepage-hero-promo-stack:has(.hero-cinematic--film) > .homepage-hero-stage {
        overflow: visible !important;
    }

    body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage {
        min-height: 0 !important;
        height: 100% !important;
    }

    body:not(.search-active) .homepage-hero-promo-stack > .hero-search-flow-spacer {
        flex: 0 0 0 !important;
        height: 0 !important;
    }

    body:not(.search-active) .homepage-hero-promo-stack > .promo-banners-section {
        flex: 0 0 auto !important;
        margin-top: calc(-1 * var(--home-promo-lift, 20px)) !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .section-title {
        font-size: clamp(1.5rem, 2.2vw, 2.5rem) !important;
    }

    .section-description {
        font-size: clamp(0.9rem, 1.1vw, 1.2rem) !important;
    }

    /* ── Сетки: 3 колонки (не 4 col desktop и не 1 col mobile) ── */
    .category-grid,
    .services-grid,
    body .category-grid,
    body .services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: var(--card-gap, 1.125rem) !important;
    }

    .promo-banners-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--card-gap, 1.125rem) !important;
    }

    /* ── Footer: 3 колонки ── */
    .footer-content {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: clamp(1rem, 2vw, 2rem) !important;
    }

    .footer-section:first-child {
        grid-column: 1 / -1 !important;
    }

    /* ── Отмена mobile-audit сжатия ── */
    .card-title {
        font-size: clamp(0.88rem, 1.2vw, 1rem) !important;
    }

    .card-text {
        font-size: clamp(0.75rem, 1vw, 0.88rem) !important;
    }

    /* ── Контейнеры: рельса как на ПК ── */
    .container,
    .news-container,
    .tours-container,
    .services-container,
    .rental-container {
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
    }

    .section {
        padding-top: var(--section-padding-y, 2.25rem) !important;
        padding-bottom: var(--section-padding-y, 2.25rem) !important;
    }

    /* ── Остальные страницы: виджеты по углам (главная — home-widget-layout.js) ── */
    body:not(:has(.homepage-hero-promo-stack)) .zw-weather-anchor--floating:not(.zw-weather-anchor--custom-pos):not(.zw-home-float--layout) {
        top: calc(var(--header-h, 108px) + 12px) !important;
        right: max(14px, env(safe-area-inset-right, 0px)) !important;
        left: auto !important;
        bottom: auto !important;
        transform: none !important;
    }

    body:not(:has(.homepage-hero-promo-stack)) .zw-recruit-anchor--group-excursion:not(.zw-recruit-anchor--custom-pos) {
        top: calc(var(--header-h, 108px) + 56px) !important;
        left: max(14px, env(safe-area-inset-left, 0px)) !important;
        right: auto !important;
        bottom: auto !important;
    }

    body:not(:has(.homepage-hero-promo-stack)) .zw-recruit-anchor--shared-ride:not(.zw-recruit-anchor--custom-pos):not(.zw-recruit-anchor--solo) {
        top: auto !important;
        bottom: clamp(140px, 22vh, 230px) !important;
        left: max(14px, env(safe-area-inset-left, 0px)) !important;
        right: auto !important;
    }

    body:not(:has(.homepage-hero-promo-stack)) .zw-recruit-anchor--shared-ride.zw-recruit-anchor--solo:not(.zw-recruit-anchor--custom-pos) {
        top: calc(var(--header-h, 108px) + 56px) !important;
        bottom: auto !important;
        left: max(14px, env(safe-area-inset-left, 0px)) !important;
    }

    .zw-recruit-ge,
    .zw-recruit-sr {
        max-width: min(340px, var(--home-float-viewport-w, calc(100dvw - 32px))) !important;
    }

    /* Крошки / «Назад» / баннеры — не calc-width от .container */
    section.page-header-context.page-header-context--catalog-nav > .container,
    .catalog-back-corridor > .container.catalog-back-crumb-rail,
    .catalog-strip-stack .catalog-page-inner.ad-strip-catalog-inner,
    .catalog-page-like-listing > .catalog-page-inner,
    .compass-strip-back-filter-stack .catalog-page-inner.ad-strip-catalog-inner,
    .ad-strip-catalog-inner {
        max-width: var(--catalog-rail-max, min(86.4vw, 1260px)) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--catalog-rail-px, 12px) !important;
        padding-right: var(--catalog-rail-px, 12px) !important;
        box-sizing: border-box !important;
    }
}

/* === tablet-pwa-fix.css === */
/**
 * tablet-pwa-fix.css — контент-сетки на touch-планшете.
 * Шапка: tablet-portrait (portrait, в т.ч. узкий viewport) / header-mobile (burger ≤767 landscape).
 * Не форсим inline-nav на узком экране — это ломало верхнее меню.
 */

/* ── Узкий экран на планшете (landscape): бургер + шторка, не inline-nav ── */
@media (min-device-width: 768px) and (max-width: 767px) and (pointer: coarse) {

    .mobile-menu-toggle {
        display: flex !important;
    }

    #navMenu.nav-menu.nav-main-rail,
    .header .nav-container > .nav-menu.nav-main-rail {
        display: block !important;
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: auto !important;
        width: 85% !important;
        max-width: 380px !important;
        height: 100dvh !important;
        transform: translateX(100%) !important;
        visibility: hidden !important;
        overflow: hidden !important;
        background: var(--z-surface-white, #fff) !important;
        z-index: 10001 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-shadow: none !important;
        list-style: none !important;
    }

    #navMenu.nav-menu.nav-main-rail.active,
    .header .nav-container > .nav-menu.nav-main-rail.active {
        transform: translateX(0) !important;
        visibility: visible !important;
        overflow-y: auto !important;
    }

    .nav-menu.nav-main-rail > li.nav-main-rail__item {
        display: block !important;
        width: 100% !important;
        flex: none !important;
    }

    .nav-menu .nav-menu-head {
        display: flex !important;
    }

    .header .nav-container {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 56px !important;
        min-height: 56px !important;
        margin: 0 !important;
        padding: 0 max(14px, env(safe-area-inset-left, 0px)) 0 max(14px, env(safe-area-inset-right, 0px)) !important;
        gap: 6px !important;
        box-sizing: border-box !important;
    }

    .header .nav-actions {
        display: contents !important;
    }

    .header .logo-img {
        height: 24px !important;
        max-width: 130px !important;
    }

    .country-dropdown .country-name {
        max-width: 5.5rem !important;
    }
}

/* Portrait на планшете с узким viewport — tablet-portrait.css (2 ряда); только hero offset */
@media (min-device-width: 768px) and (max-width: 767px) and (orientation: portrait) and (pointer: coarse) {
    :root {
        --header-h: 108px;
    }

    .hero {
        padding-top: calc(var(--header-h, 108px) + clamp(1rem, 3vw, 2rem)) !important;
    }
}

/* ── Сетки по orientation на touch-планшете ── */
@media (min-device-width: 768px) and (pointer: coarse) and (orientation: portrait) {

    .category-grid,
    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: clamp(0.6rem, 2vw, 0.95rem) !important;
    }

    .footer-content {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1rem !important;
    }
}

@media (min-device-width: 768px) and (pointer: coarse) and (orientation: landscape) {

    .category-grid,
    .services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: clamp(0.75rem, 1.5vw, 1.1rem) !important;
    }

    .footer-content {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (min-width: 768px) and (max-width: 1100px) and (pointer: coarse) and (orientation: portrait) {

    .category-grid,
    .services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 768px) and (pointer: coarse) and (orientation: landscape) {

    .category-grid,
    .services-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (min-device-width: 768px) and (min-width: 901px) and (pointer: coarse) and (orientation: landscape) {

    .category-grid,
    .services-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .footer-content {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

@media (min-device-width: 768px) and (pointer: coarse) {

    .hero {
        min-height: clamp(42vh, 52vh, 62vh) !important;
    }

    .profile-layout {
        grid-template-columns: minmax(180px, 220px) minmax(0, 1fr) !important;
        gap: clamp(0.75rem, 2vw, 1.25rem) !important;
    }
}

/* === components/shared/base-inline.css === */
/* Component CSS — isolated selectors. Edit freely. */

.notif-bell-wrapper {
            position: relative;
        }

        .notif-bell-btn {
            position: relative;
            cursor: pointer;
            background: none;
            border: none;
            font-size: 1.1rem;
            padding: 4px 6px;
            overflow: visible;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-wrap: nowrap;
            gap: 0;
            width: auto;
            min-width: 28px;
            height: 28px;
            box-sizing: border-box;
            color: var(--z-gray-950, #0f172a);
        }

        .notif-bell-btn svg {
            flex-shrink: 0;
            width: 18px;
            height: 18px;
            display: block;
        }

        .notif-badge {
            position: relative;
            top: -0.68em;
            right: auto;
            transform: none;
            transform-origin: center center;
            background: #ef4444;
            color: #fff;
            font-size: max(0.75rem, 12px);
            font-weight: 700;
            width: 20px;
            height: 20px;
            min-width: 20px;
            min-height: 20px;
            max-width: 20px;
            max-height: 20px;
            border-radius: 50%;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 0;
            margin-left: 2px;
            line-height: 1;
            box-sizing: border-box;
            aspect-ratio: 1 / 1;
            flex-shrink: 0;
            vertical-align: baseline;
            pointer-events: none;
            z-index: 30;
            animation: notif-pulse 2s ease-in-out infinite;
        }

        @keyframes notif-pulse {

            0%,
            100% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.1);
            }
        }

        @keyframes notif-shake {

            0%,
            100% {
                transform: rotate(0);
            }

            20% {
                transform: rotate(15deg);
            }

            40% {
                transform: rotate(-15deg);
            }

            60% {
                transform: rotate(10deg);
            }

            80% {
                transform: rotate(-5deg);
            }
        }

        .notif-dropdown {
            display: none;
            position: absolute;
            top: calc(100% + 8px);
            right: 0;
            width: 370px;
            max-height: 520px;
            background: #fff;
            border-radius: 14px;
            box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
            z-index: 9999;
            border: 1px solid rgba(0, 0, 0, 0.06);
            display: none;
            flex-direction: column;
        }

        .notif-dropdown.open {
            display: flex;
        }

        .notif-dropdown-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px 16px 8px;
            font-weight: 700;
            font-size: 0.9rem;
            color: #1f2937;
        }

        .notif-header-actions {
            display: flex;
            gap: 4px;
        }

        .notif-mark-all, .notif-clear-read {
            background: none;
            border: none;
            cursor: pointer;
            color: #6b7280;
            font-size: 0.82rem;
            padding: 4px 6px;
            border-radius: 6px;
            transition: all 0.15s;
        }
        .notif-mark-all:hover { background: rgba(99,102,241,0.08); color: #6366f1; }
        .notif-clear-read:hover { background: rgba(239,68,68,0.08); color: #ef4444; }

        /* ── Tabs ── */
        .notif-tabs {
            display: flex;
            gap: 0;
            border-bottom: 1px solid #f0f0f0;
            padding: 0 12px;
        }
        .notif-tab {
            flex: 1;
            background: none;
            border: none;
            padding: 8px 4px;
            font-size: 0.75rem;
            font-weight: 600;
            color: #9ca3af;
            cursor: pointer;
            border-bottom: 2px solid transparent;
            transition: all 0.15s;
            text-align: center;
        }
        .notif-tab:hover { color: #6366f1; }
        .notif-tab.active {
            color: #6366f1;
            border-bottom-color: #6366f1;
        }

        /* ── List ── */
        .notif-list {
            flex: 1;
            overflow-y: auto;
            max-height: 360px;
        }

        .notif-item {
            display: block;
            padding: 10px 16px 10px 14px;
            border-bottom: 1px solid #f5f5f5;
            text-decoration: none;
            color: inherit;
            transition: background 0.15s;
            position: relative;
        }

        .notif-item:hover {
            background: #f9fafb;
        }

        .notif-item.unread {
            background: rgba(99, 102, 241, 0.04);
            border-left: 3px solid #6366f1;
        }

        .notif-item-row {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 8px;
        }

        .notif-item-content {
            flex: 1;
            min-width: 0;
        }

        .notif-item-title {
            font-weight: 600;
            font-size: 0.82rem;
            color: #1f2937;
            margin-bottom: 2px;
        }

        .notif-item-msg {
            font-size: 0.76rem;
            color: #6b7280;
            line-height: 1.4;
        }

        .notif-item-time {
            font-size: 0.68rem;
            color: #9ca3af;
            margin-top: 3px;
        }

        .notif-delete-btn {
            background: none;
            border: none;
            cursor: pointer;
            color: #d1d5db;
            font-size: 0.85rem;
            padding: 2px 4px;
            border-radius: 4px;
            transition: all 0.15s;
            flex-shrink: 0;
            line-height: 1;
        }
        .notif-delete-btn:hover {
            color: #ef4444;
            background: rgba(239,68,68,0.08);
        }

        .notif-empty {
            padding: 32px 16px;
            text-align: center;
            color: #9ca3af;
            font-size: 0.85rem;
        }

        /* ── Footer / Pagination ── */
        .notif-footer {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            padding: 8px 16px;
            border-top: 1px solid #f0f0f0;
            background: #fafafa;
            border-radius: 0 0 14px 14px;
        }
        .notif-page-btn {
            background: none;
            border: 1px solid #e5e7eb;
            width: 28px;
            height: 28px;
            border-radius: 6px;
            font-size: 0.9rem;
            font-weight: 700;
            cursor: pointer;
            color: #6366f1;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.15s;
        }
        .notif-page-btn:hover:not(:disabled) {
            background: #6366f1;
            color: #fff;
            border-color: #6366f1;
        }
        .notif-page-btn:disabled {
            opacity: 0.3;
            cursor: not-allowed;
        }
        .notif-page-info {
            font-size: 0.75rem;
            font-weight: 600;
            color: #6b7280;
        }

        /* ── Action buttons for booking_new notifications ── */
        .notif-actions {
            display: flex;
            gap: 6px;
            margin-top: 8px;
            flex-wrap: wrap;
        }

        .notif-action-btn {
            padding: 4px 10px;
            border: none;
            border-radius: 6px;
            font-size: 0.72rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
            flex: 1;
            min-width: 60px;
            text-align: center;
        }

        .notif-action-btn:hover {
            transform: translateY(-1px);
            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
        }

        .notif-action-btn:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
        }

        .notif-action-btn--accept { background: #22c55e; color: #fff; }
        .notif-action-btn--decline { background: #ef4444; color: #fff; }
        .notif-action-btn--busy { background: #e5e7eb; color: #374151; }
        .notif-action-btn--full { background: #dbeafe; color: #1d4ed8; }

        .notif-action-result {
            font-size: 0.75rem;
            font-weight: 600;
            margin-top: 6px;
            padding: 4px 8px;
            border-radius: 4px;
            text-align: center;
        }

        .notif-action-result--success { background: rgba(34, 197, 94, 0.1); color: #16a34a; }
        .notif-action-result--error { background: rgba(239, 68, 68, 0.1); color: #dc2626; }

        .notif-link {
            display: inline-block;
            margin-top: 6px;
            font-size: 0.72rem;
            font-weight: 600;
            color: #6366f1;
            text-decoration: none;
            transition: color 0.2s;
        }
        .notif-link:hover { color: #4f46e5; text-decoration: underline; }

        /* Responsive: на мобиле дропдаун на всю ширину */
        @media (max-width: 768px) {
            .notif-dropdown {
                width: calc(100vw - 24px);
                right: -60px;
                max-height: 70vh;
            }
        }

        .notif-dropdown.open.open-mobile {
            position: static;
            width: 100%;
            max-height: none;
            margin-top: 0;
            border-radius: 0;
            z-index: 11050;
            box-shadow: none;
            border: none;
            border-top: 1px solid rgba(0, 0, 0, 0.08);
            overflow: hidden;
        }

        .notif-dropdown.open.open-mobile .notif-list {
            max-height: min(42vh, 320px);
            overflow-y: auto;
        }

/* === shared/platform-deal-disclaimer.css === */
/* Component CSS — isolated selectors. Edit freely. */

.platform-deal-disclaimer {
  margin: 0.5rem 0 0;
  padding: 0.5rem 0.65rem;
  font-size: 0.72rem;
  line-height: 1.4;
  color: #64748b;
  background: rgba(248, 250, 252, 0.95);
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}
.platform-deal-disclaimer--modal { font-size: 0.8rem; margin-bottom: 0.75rem; }
.platform-deal-disclaimer--inline { margin-bottom: 1rem; }
.platform-deal-disclaimer--checkout { background: #f0f9ff; border-color: #bae6fd; color: #0c4a6e; margin-bottom: 1rem; }
.platform-deal-disclaimer a { color: inherit; text-decoration: underline; }

/* === shared/gov-partnership-banner.css === */
/* Component CSS — isolated selectors. Edit freely. */

.gov-partnership-banner {
    margin: 0 0 1.75rem;
    padding: 0;
}
.gov-partnership-banner__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    padding: 1.25rem 1.5rem;
    border-radius: 16px;
    background: linear-gradient(135deg, #ecfdf5 0%, #f0fdfa 50%, #eff6ff 100%);
    border: 1px solid rgba(13, 148, 136, 0.22);
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.05);
}
.gov-partnership-banner__icon {
    font-size: 2rem;
    line-height: 1;
    flex-shrink: 0;
}
.gov-partnership-banner__body {
    flex: 1 1 220px;
    min-width: 0;
}
.gov-partnership-banner__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.01em;
}
.gov-partnership-banner__text {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.55;
    color: #475569;
}
.gov-partnership-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    flex-shrink: 0;
}
.gov-partnership-banner__btn {
    white-space: nowrap;
    font-size: 0.88rem;
    padding: 0.55rem 1rem;
}
@media (max-width: 640px) {
    .gov-partnership-banner__actions {
        width: 100%;
    }
    .gov-partnership-banner__btn {
        flex: 1 1 auto;
        text-align: center;
    }
}

/* === shared/content-missing-notice.css === */
/* Component CSS — isolated selectors. Edit freely. */

.content-missing-notice {
    margin: 0;
    padding: 0.75rem 1rem;
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 50%, #fff7ed 100%);
    border-bottom: 1px solid rgba(245, 158, 11, 0.35);
    position: sticky;
    top: 0;
    z-index: 1029;
}
@media (min-width: 1024px) {
    .content-missing-notice {
        top: clamp(58px, 6vh, 80px);
    }
}
.content-missing-notice__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}
.content-missing-notice__icon { font-size: 1.15rem; line-height: 1.4; flex-shrink: 0; }
.content-missing-notice__text {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: #92400e;
    font-weight: 500;
}
.content-missing-notice__slug {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    color: #b45309;
    opacity: 0.85;
}
.content-missing-notice__slug code {
    font-family: ui-monospace, monospace;
    font-size: 0.85em;
    word-break: break-all;
}

/* === shared/action-captcha.css === */
/* Component CSS — isolated selectors. Edit freely. */

.zc-puzzle { margin: 0.5rem 0 0.35rem; }
    .zc-puzzle-hint { margin: 0 0 0.45rem; font-size: 0.82rem; color: var(--color-gray, #666); line-height: 1.35; }
    .zc-puzzle-scroll { overflow-x: hidden; margin-bottom: 0.35rem; }
    .zc-puzzle-inner { width: 100%; max-width: 100%; }
    .zc-puzzle-stage { position: relative; width: 100%; max-width: 100%; line-height: 0; overflow: hidden; border-radius: var(--radius-lg, 8px); box-shadow: 0 1px 6px rgba(0,0,0,0.12); }
    .zc-puzzle-bgimg { display: block; width: 100%; height: auto; vertical-align: top; border-radius: var(--radius-lg, 8px); }
    .zc-puzzle-floating { position: absolute; left: 0; pointer-events: none; z-index: 2; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2)); }
    .zc-puzzle-controls { width: 100%; max-width: 100%; margin-top: 0.4rem; position: relative; z-index: 1; }
    .zc-puzzle-range { width: 100%; accent-color: var(--color-primary, #7c4dff); }
    .zc-puzzle-hint-foot { margin: 0.35rem 0 0; font-size: 0.72rem; line-height: 1.35; color: var(--color-gray-dark-secondary, #555); }
    .zc-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* === shared/detail-seo-footer-compact.css === */
/* Component CSS — isolated selectors. Edit freely. */

.detail-seo-footer .seo-faq-q[aria-expanded="true"] .seo-faq-chevron { transform: rotate(180deg); }
.detail-seo-footer .seo-faq-q:hover { background: rgba(148,163,184,0.06); }
.detail-seo-footer .seo-faq-item { transition: box-shadow 0.2s; }
.detail-seo-footer .seo-faq-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.04); }
.detail-seo-footer__intro-body p { margin: 0 0 0.45em; }
.detail-seo-footer__intro-body p:last-child { margin-bottom: 0; }

/* === object-cards-unified.css === */
/* Unified object-card typography & spacing — catalog, compass, places, featured, search */

:root {
  --z-card-text-lines: 2;
  --z-card-body-gap: 6px;
  --z-card-body-pad-bottom: 8px;
  --z-card-footer-pad-top: 7px;
  --z-card-footer-pad-bottom: 10px;
  --z-card-text-gap: 6px;
  --z-hub-card-fill: 90%;
}

/* Симметричный зазор между карточками объектов (сверху/снизу = слева/справа) */
.services-grid,
.compass-grid,
.places-grid,
.mkt-grid,
.cp-listings-grid.services-grid,
.pp-company-listings-grid.services-grid {
  --z-hub-card-fill: 90%;
}

.homepage-featured-grid .svc-card-wrapper,
.homepage-featured-grid .compass-card-wrap,
.hub-listing-grid .svc-card-wrapper,
.hub-listing-grid .compass-card-wrap,
.hub-listing-grid.places-grid > .place-card-wrap,
.hub-listing-grid.mkt-grid > .mkt-card-wrap,
.cp-listings-grid .svc-card-wrapper,
.pp-company-listings-grid .svc-card-wrapper,
.homepage-compass-section .compass-card-wrap {
  position: relative;
  max-width: 100%;
  justify-self: stretch;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: visible;
  --z-hub-card-inset: calc((100% - var(--z-hub-card-fill, 90%)) / 2);
  padding: var(--z-hub-card-inset);
}

.rv-nearby-grid .rv-nearby-card-wrap {
  position: relative;
  max-width: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: visible;
}

/* Сердечко на обёртке: учитываем hub-inset (padding ячейки = отступ до фото) */
.svc-card-wrapper > .listing-favorite-btn--svc,
.svc-card-wrapper > a.listing-favorite-btn--svc,
.compass-card-wrap > .listing-favorite-btn,
.compass-card-wrap > a.listing-favorite-btn,
.compass-card-wrap > .news-favorite-btn,
.compass-card-wrap > a.news-favorite-btn,
.rv-nearby-card-wrap > .listing-favorite-btn--nearby,
.rv-nearby-card-wrap > a.listing-favorite-btn--nearby,
.rv-nearby-card-wrap > .listing-favorite-btn,
.rv-nearby-card-wrap > a.listing-favorite-btn {
  position: absolute !important;
  top: var(--z-card-fav-inset-mob, 8px) !important;
  right: var(--z-card-fav-inset-mob, 8px) !important;
  margin: 0 !important;
  left: auto !important;
  z-index: 16 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

@media (min-width: 769px) {
  .hub-listing-grid .svc-card-wrapper > .listing-favorite-btn--svc,
  .hub-listing-grid .svc-card-wrapper > a.listing-favorite-btn--svc,
  .homepage-featured-grid .svc-card-wrapper > .listing-favorite-btn--svc,
  .homepage-featured-grid .svc-card-wrapper > a.listing-favorite-btn--svc,
  .cp-listings-grid .svc-card-wrapper > .listing-favorite-btn--svc,
  .cp-listings-grid .svc-card-wrapper > a.listing-favorite-btn--svc,
  .pp-company-listings-grid .svc-card-wrapper > .listing-favorite-btn--svc,
  .pp-company-listings-grid .svc-card-wrapper > a.listing-favorite-btn--svc,
  .rv-nearby-grid.hub-listing-grid .svc-card-wrapper > .listing-favorite-btn--svc,
  .rv-nearby-grid.hub-listing-grid .svc-card-wrapper > a.listing-favorite-btn--svc {
    top: calc(var(--z-hub-card-inset, 0px) + var(--z-card-fav-inset-pc, 10px)) !important;
    right: calc(var(--z-hub-card-inset, 0px) + var(--z-card-fav-inset-pc, 10px)) !important;
  }

  .hub-listing-grid .compass-card-wrap > .listing-favorite-btn,
  .hub-listing-grid .compass-card-wrap > a.listing-favorite-btn,
  .hub-listing-grid .compass-card-wrap > .news-favorite-btn,
  .hub-listing-grid .compass-card-wrap > a.news-favorite-btn {
    top: calc(var(--z-hub-card-inset, 0px) + var(--z-card-fav-inset-pc, 10px)) !important;
    right: calc(var(--z-hub-card-inset, 0px) + var(--z-card-fav-inset-pc, 10px)) !important;
  }
}

/* ── Titles: max 2 lines + ellipsis ── */
.svc-card-title,
.compass-card-title,
.place-card-title,
.compass-side-title,
.places-side-title,
.card-title,
.homepage-news-card .card-title,
.news-container .card-title,
.mkt-card__title,
.sr-card__title,
.tender-card__title,
.similar-card__title,
.cultural-poi-card__title {
  display: -webkit-box !important;
  -webkit-line-clamp: var(--z-card-text-lines) !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis;
  word-break: break-word;
}

/* ── Descriptions: max 2 lines + ellipsis ── */
.svc-card-desc,
.compass-card-text,
.place-card-desc,
.compass-side-excerpt,
.places-side-excerpt,
.card-text,
.homepage-news-card .card-text,
.news-container .card-text,
.mkt-card__desc,
.sr-card__desc,
.tender-card__desc,
.similar-card__desc,
.cultural-poi-card__text {
  display: -webkit-box !important;
  -webkit-line-clamp: var(--z-card-text-lines) !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis;
  word-break: break-word;
}

/* ── Catalog / featured service cards ── */
.svc-card-body {
  gap: var(--z-card-body-gap) !important;
  padding-bottom: var(--z-card-body-pad-bottom) !important;
}

.svc-card-footer {
  padding-top: var(--z-card-footer-pad-top) !important;
  padding-bottom: var(--z-card-footer-pad-bottom) !important;
}

.svc-card-desc {
  margin-bottom: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* ── Compass grid cards ── */
.compass-card-body {
  padding-bottom: var(--z-card-body-pad-bottom) !important;
}

.compass-card-title {
  margin-bottom: var(--z-card-text-gap) !important;
}

.compass-card-text {
  margin-bottom: var(--z-card-body-gap) !important;
}

.compass-card-footer {
  padding-top: var(--z-card-footer-pad-top) !important;
}

/* ── Places grid cards ── */
.place-card-body {
  padding-bottom: var(--z-card-footer-pad-bottom) !important;
}

.place-card-title {
  margin-bottom: var(--z-card-text-gap) !important;
}

.place-card-desc {
  margin-bottom: var(--z-card-body-gap) !important;
}

/* ── Side featured cards (compass / places) ── */
.compass-side-title,
.places-side-title {
  margin-bottom: var(--z-card-text-gap) !important;
}

.compass-side-text,
.places-side-text {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

/* ── Generic cards (style.css) ── */
.card-text {
  margin-bottom: calc(var(--spacing-md, 1rem) * 0.72) !important;
}

.card-footer {
  padding-top: calc(var(--spacing-md, 1rem) * 0.72) !important;
}

/* ── Search cards ── */
.sr-card__body {
  gap: var(--z-card-body-gap) !important;
  padding-bottom: var(--z-card-body-pad-bottom) !important;
}

.sr-card__footer {
  padding-top: var(--z-card-footer-pad-top) !important;
}

/* ── Catalog mobile: keep 2 lines (override svc_catalog_cards 3/4-line rules) ── */
@media (max-width: 768px) {
  .catalog-page-body .svc-card-title,
  .catalog-page-body .svc-card-desc {
    -webkit-line-clamp: 2 !important;
  }

  .catalog-page-body .svc-card-body {
    padding-bottom: var(--z-card-body-pad-bottom) !important;
    gap: var(--z-card-body-gap) !important;
  }
}

@media (max-width: 480px) {
  .catalog-page-body .svc-card-title,
  .catalog-page-body .svc-card-desc {
    -webkit-line-clamp: 2 !important;
  }

  .sr-card__desc {
    -webkit-line-clamp: 2 !important;
  }
}

/* ── Homepage «Рекомендуемые услуги»: −10% карточки и контент, больше воздуха ── */
.homepage-featured-grid.services-grid {
  --z-card-radius: 20px;
  --z-card-gap: 0px;
  --z-card-photo-radius: 0;
  --z-card-photo-bottom-radius: var(--z-card-radius);
  gap: 32px;
}

.homepage-featured-grid .svc-card-body {
  padding: 14px 16px 5px !important;
  gap: 4px !important;
}

.homepage-featured-grid .svc-card-footer {
  padding: 4px 16px 6px !important;
  gap: 6px !important;
}

.homepage-featured-grid .svc-card-title {
  font-size: 0.84rem !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  flex: 0 1 auto !important;
  min-height: 0 !important;
}

.homepage-featured-grid .svc-card-desc {
  font-size: 0.684rem !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  flex: 0 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

.homepage-featured-grid .svc-card-meta,
.homepage-featured-grid .svc-card-location {
  font-size: 0.65rem !important;
}

.homepage-featured-grid .svc-card-tag {
  font-size: 0.59rem !important;
  padding: 3px 7px !important;
}

.homepage-featured-grid .svc-card-price {
  font-size: 0.9rem !important;
}

.homepage-featured-grid .svc-card-cta {
  font-size: 0.7rem !important;
  gap: 3px !important;
}

.homepage-featured-grid .svc-card-arrow {
  width: 23px !important;
  height: 23px !important;
  font-size: 0.68rem !important;
}

.homepage-featured-grid .svc-badge,
.homepage-compass-section .compass-card-img > .svc-badge {
  font-size: 0.54rem !important;
  min-height: 22px !important;
  padding: 3px 9px !important;
}

.homepage-featured-grid .svc-rating-overlay {
  font-size: 0.65rem !important;
  padding: 2px 8px !important;
}

@media (max-width: 1200px) {
  .homepage-featured-grid.services-grid {
    gap: 28px;
  }
}

@media (max-width: 992px) {
  .services-grid,
  .compass-grid,
  .places-grid,
  .mkt-grid,
  .cp-listings-grid.services-grid,
  .pp-company-listings-grid.services-grid,
  .homepage-compass-section .compass-grid {
    --z-hub-card-fill: 94%;
  }

  .homepage-featured-grid.services-grid {
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .svc-card-wrapper > .listing-favorite-btn--svc,
  .svc-card-wrapper > a.listing-favorite-btn--svc,
  .compass-card-wrap > .listing-favorite-btn,
  .compass-card-wrap > a.listing-favorite-btn,
  .compass-card-wrap > .news-favorite-btn,
  .compass-card-wrap > a.news-favorite-btn,
  .rv-nearby-card-wrap > .listing-favorite-btn--nearby,
  .rv-nearby-card-wrap > a.listing-favorite-btn--nearby,
  .rv-nearby-card-wrap > .listing-favorite-btn,
  .rv-nearby-card-wrap > a.listing-favorite-btn {
    top: var(--z-card-fav-inset-mob, 8px) !important;
    right: var(--z-card-fav-inset-mob, 8px) !important;
    z-index: 16 !important;
  }
}

@media (max-width: 576px) {
  .services-grid,
  .compass-grid,
  .places-grid,
  .mkt-grid,
  .cp-listings-grid.services-grid,
  .pp-company-listings-grid.services-grid,
  .homepage-compass-section .compass-grid {
    --z-hub-card-fill: 100%;
  }

  .homepage-featured-grid.services-grid {
    gap: 12px !important;
  }

  .homepage-featured-grid .svc-card-wrapper,
  .homepage-featured-grid .compass-card-wrap,
  .hub-listing-grid .svc-card-wrapper,
  .hub-listing-grid .compass-card-wrap,
  .hub-listing-grid.places-grid > .place-card-wrap,
  .hub-listing-grid.mkt-grid > .mkt-card-wrap,
  .cp-listings-grid .svc-card-wrapper,
  .pp-company-listings-grid .svc-card-wrapper,
  .homepage-compass-section .compass-card-wrap {
    --z-hub-card-inset: 0;
    padding: 0;
  }

  .homepage-featured-grid .svc-card-wrapper,
  .homepage-featured-grid .compass-card-wrap {
    max-width: 100%;
  }

  .homepage-featured-grid .svc-card-body {
    gap: 2px !important;
    padding-bottom: 3px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
    padding-top: 9px !important;
  }

  .homepage-featured-grid .svc-card-footer {
    padding-top: 2px !important;
    padding-bottom: 4px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
    gap: 4px !important;
  }

  .homepage-featured-grid .svc-card-cta {
    gap: 2px !important;
  }

  .homepage-featured-grid .svc-card-title {
    font-size: 0.7rem !important;
    line-height: 1.28 !important;
  }

  .homepage-featured-grid .svc-card-desc {
    font-size: 0.585rem !important;
    line-height: 1.35 !important;
  }

  .homepage-featured-grid .svc-card-arrow {
    width: 20px !important;
    height: 20px !important;
    font-size: 0.61rem !important;
  }

  .homepage-featured-grid .svc-badge,
  .homepage-compass-section .compass-card-img > .svc-badge {
    min-height: 16px !important;
    padding: 2px 5px !important;
    font-size: 0.39rem !important;
  }
}

@media (max-width: 480px) {
  .homepage-featured-grid .svc-card-body {
    padding: 7px 7px 3px !important;
  }

  .homepage-featured-grid .svc-card-title {
    font-size: 0.65rem !important;
  }

  .homepage-featured-grid .svc-card-desc {
    font-size: 0.54rem !important;
  }

  .homepage-featured-grid .svc-card-footer {
    padding: 2px 7px 4px !important;
    gap: 3px !important;
  }

  .homepage-featured-grid .svc-card-arrow {
    width: 18px !important;
    height: 18px !important;
    font-size: 0.56rem !important;
  }

  .homepage-featured-grid .svc-badge,
  .homepage-compass-section .compass-card-img > .svc-badge {
    min-height: 15px !important;
    font-size: 0.36rem !important;
  }
}

/* ── Homepage «КОМПАС»: те же размеры карточек, что «Рекомендуемые услуги» ── */
.homepage-compass-section .compass-grid {
  --z-card-radius: 20px;
  --z-card-gap: 0px;
  --z-card-photo-radius: 0;
  --z-card-photo-bottom-radius: var(--z-card-radius);
  gap: 32px;
  /* Сетка 1:1 с .homepage-featured-grid.services-grid (не .compass-grid 1024/768) */
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.homepage-compass-section .compass-card {
  border-radius: var(--z-card-radius, 20px);
  border-width: var(--z-card-gap, 0px);
}

.homepage-compass-section .compass-card-img {
  border-radius: 0 0 var(--z-card-photo-bottom-radius, var(--z-card-radius, 20px)) var(--z-card-photo-bottom-radius, var(--z-card-radius, 20px));
}

.homepage-compass-section .compass-card-img img {
  -webkit-clip-path: var(--z-card-photo-clip, inset(0 round 0 0 20px 20px));
  clip-path: var(--z-card-photo-clip, inset(0 round 0 0 20px 20px));
}

.homepage-compass-section .compass-card-body {
  padding: 14px 16px 5px !important;
  gap: 4px !important;
}

.homepage-compass-section .compass-card-footer {
  padding: 4px 16px 6px !important;
}

.homepage-compass-section .compass-card-title {
  font-size: 0.84rem !important;
}

.homepage-compass-section .compass-card-text {
  font-size: 0.684rem !important;
}

.homepage-compass-section .compass-card-date {
  font-size: 0.58rem !important;
}

.homepage-compass-section .compass-card-author {
  font-size: 0.55rem !important;
}

.homepage-compass-section .compass-card-arrow {
  width: 23px !important;
  height: 23px !important;
  font-size: 0.68rem !important;
}

@media (max-width: 1200px) {
  .homepage-compass-section .compass-grid {
    gap: 28px;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 992px) {
  .homepage-compass-section .compass-grid {
    gap: 20px;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  /* Не компактный hub-layout из grid-card.css — как на featured */
  .homepage-compass-section .compass-card {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .homepage-compass-section .compass-card-img {
    width: 100% !important;
    align-self: stretch !important;
  }

  .homepage-compass-section .compass-card-text {
    display: -webkit-box !important;
  }

}

@media (max-width: 576px) {
  .homepage-compass-section .compass-grid {
    gap: 14px 12px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .homepage-compass-section .compass-card-wrap {
    max-width: 100%;
  }

  .homepage-compass-section .compass-card-body {
    padding: 9px 9px 3px !important;
    gap: 2px !important;
  }

  .homepage-compass-section .compass-card-footer {
    padding: 2px 9px 4px !important;
  }

  .homepage-compass-section .compass-card-title {
    font-size: 0.7rem !important;
    line-height: 1.28 !important;
  }

  .homepage-compass-section .compass-card-arrow {
    width: 20px !important;
    height: 20px !important;
    font-size: 0.61rem !important;
  }

}

@media (max-width: 480px) {
  .homepage-compass-section .compass-card-body {
    padding: 7px 7px 3px !important;
  }

  .homepage-compass-section .compass-card-title {
    font-size: 0.65rem !important;
  }

  .homepage-compass-section .compass-card-text {
    font-size: 0.54rem !important;
  }

  .homepage-compass-section .compass-card-footer {
    padding: 2px 7px 4px !important;
  }

  .homepage-compass-section .compass-card-arrow {
    width: 18px !important;
    height: 18px !important;
    font-size: 0.56rem !important;
  }

}

/* === legal-no-copy.css === */
/* ═══════════════════════════════════════════════════════════════
   Legal disclaimers — full-width compact strip (site-wide)
   White bg, ocean top stripe, minimal vertical space
   ═══════════════════════════════════════════════════════════════ */

:root {
  --legal-disclaimer-pad-x: clamp(0.65rem, 2.2vw, 1rem);
  --legal-disclaimer-stripe: var(--z-sl-ocean, #3d7a99);
  /* Эталон: /en/requests?category=shared_rides — зазор контента до полоски disclaimer */
  --site-content-footer-gap: 72px;
  --profile-cabinet-footer-gap: var(--site-content-footer-gap);
}

@media (max-width: 768px) {
  :root {
    --site-content-footer-gap: 56px;
  }
}

/* No copy — disclaimers + policy docs */
.legal-no-copy,
.legal-document-body,
.footer-regulatory {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.legal-no-copy::selection,
.legal-document-body::selection,
.footer-regulatory::selection {
  background: transparent;
  color: inherit;
}

.legal-no-copy a,
.legal-document-body a,
.footer-regulatory a {
  pointer-events: auto;
}

/* Full-bleed slot before footer */
.page-footer-disclaimer-slot {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
}

.page-footer-disclaimer-slot:not(:empty) {
  display: block;
  margin-top: var(--site-content-footer-gap) !important;
  margin-bottom: 0 !important;
}

.page-footer-disclaimer-slot .catalog-disclaimer-wrap,
main#main-content .catalog-disclaimer-wrap {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}

/* До переноса в слот — тот же зазор, что после (catalog reference) */
main#main-content > .catalog-disclaimer-wrap {
  margin-top: var(--site-content-footer-gap) !important;
}

.page-footer-disclaimer-slot .catalog-disclaimer-wrap {
  width: 100%;
  max-width: none;
}

/* Hub disclaimer strip — unified on all public pages */
.page-footer-disclaimer-slot .catalog-disclaimer-wrap .platform-info-disclaimer,
.page-footer-disclaimer-slot .catalog-disclaimer-wrap .places-info-disclaimer,
.page-footer-disclaimer-slot .catalog-disclaimer-wrap .platform-deal-disclaimer {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0.38rem 0 0.42rem !important;
  box-sizing: border-box !important;
  background: #fff !important;
  border: none !important;
  border-top: 3px solid var(--legal-disclaimer-stripe) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.page-footer-disclaimer-slot .platform-info-disclaimer,
.page-footer-disclaimer-slot .places-info-disclaimer,
.page-footer-disclaimer-slot .platform-deal-disclaimer,
main#main-content .catalog-disclaimer-wrap .platform-info-disclaimer,
main#main-content .catalog-disclaimer-wrap .places-info-disclaimer,
main#main-content .catalog-disclaimer-wrap .platform-deal-disclaimer,
.platform-info-disclaimer,
.places-info-disclaimer {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0.38rem 0 0.42rem !important;
  box-sizing: border-box;
  background: #fff !important;
  border: none !important;
  border-top: 3px solid var(--legal-disclaimer-stripe) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.catalog-disclaimer-wrap .platform-info-disclaimer,
.catalog-disclaimer-wrap .places-info-disclaimer {
  background: #fff !important;
}

.platform-info-disclaimer__inner,
.places-info-disclaimer__inner {
  width: 100%;
  max-width: var(--site-footer-max-width, 1400px);
  margin: 0 auto;
  padding: 0 var(--legal-disclaimer-pad-x);
  box-sizing: border-box;
}

.platform-info-disclaimer__text,
.places-info-disclaimer__text {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--z-text-secondary, #64748b);
  text-align: center;
}

.platform-info-disclaimer__terms {
  display: inline;
  margin: 0 0 0 0.35em;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
  white-space: nowrap;
}

.platform-info-disclaimer__terms a {
  color: var(--z-sl-ocean, #3d7a99);
  font-weight: 600;
  text-decoration: none;
}

.platform-info-disclaimer__terms a:hover {
  text-decoration: underline;
}

/* Deal micro-disclaimer when lifted to footer slot */
.page-footer-disclaimer-slot .platform-deal-disclaimer,
main#main-content .catalog-disclaimer-wrap .platform-deal-disclaimer {
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--z-text-secondary, #64748b);
}

.page-footer-disclaimer-slot + footer.footer {
  margin-top: 0 !important;
  border-top: none !important;
}

/* Не дублировать зазор margin/padding у контента — только slot / direct wrap */
.seo-about,
main#main-content > .seo-about,
main#main-content > section.seo-about,
.seo-about--inset {
  margin-bottom: 0 !important;
}

main#main-content > .homepage-main-canvas,
.services-body,
.tender-body,
.market-body,
.market-detail-page,
.compass-body,
.trains-body,
.buses-body,
.transport-explorer-body,
.transport-detail-page,
.rental-container,
.profile-container {
  padding-bottom: 0 !important;
}

body.profile-cabinet-page .page-footer-disclaimer-slot:not(:empty),
body.profile-cabinet-page main#main-content > .catalog-disclaimer-wrap,
body.profile-cabinet-page .profile-page-disclaimer-wrap {
  margin-top: var(--profile-cabinet-footer-gap) !important;
}

@media (max-width: 480px) {
  .platform-info-disclaimer__terms {
    white-space: normal;
  }
}

/* === components/homepage/homepage-hero-mobile-fab.css === */
/* Homepage hero — mobile: search above FAB +, full-width bar, clear of + */

@media (max-width: 767px) {
  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-content--homepage {
    scale: 1 !important;
    transform: none !important;
    justify-content: flex-start !important;
    padding-bottom: calc(
      var(--site-fab-expanded-h, 190px) + env(safe-area-inset-bottom, 0px) + 10px
    ) !important;
  }

  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-title--homepage,
  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-subtitle--homepage,
  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-search--homepage {
    position: relative !important;
    top: 0 !important;
  }

  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-title--homepage {
    margin-top: clamp(0.15rem, 0.8vh, 0.4rem) !important;
    margin-bottom: 0 !important;
  }

  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-subtitle--homepage {
    margin-top: clamp(0.35rem, 1.2vh, 0.65rem) !important;
    margin-bottom: 0 !important;
    text-align: left !important;
    padding-inline: 0 !important;
    max-width: none !important;
  }

  /*
   * Поиск выше середины — над кнопкой «+» FAB, с зазором.
   * Раньше 38dvh давал наезд на «+»; ~26dvh поднимает строку.
   */
  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-search--homepage {
    margin-top: max(0.85rem, calc(26dvh - 10.5rem)) !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    z-index: 4;
    /* Растянуть строку: кнопка поиска в колонке «+», без сжатия справа */
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-search__bar,
  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-search--homepage form.search-box {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body:not(.search-active) .homepage-hero-stage > .hero.hero--homepage .hero-stats--homepage {
    margin-top: clamp(0.55rem, 1.6vh, 0.95rem) !important;
    margin-bottom: 0 !important;
    flex: 0 0 auto !important;
  }

  /* Expanded FAB: subtitle/stats не уезжают под остров; поиск уже выше «+» — на всю ширину */
  body:has(#siteFabStack.site-fab-stack:not(.site-fab-stack--collapsed)):not(.search-active)
    .homepage-hero-stage
    > .hero.hero--homepage
    .hero-subtitle--homepage,
  body:has(#siteFabStack.site-fab-stack:not(.site-fab-stack--collapsed)):not(.search-active)
    .homepage-hero-stage
    > .hero.hero--homepage
    .hero-stats--homepage {
    padding-right: calc(var(--site-fab-col-center, 56px) + 10px) !important;
    box-sizing: border-box;
  }

  body:has(#siteFabStack.site-fab-stack:not(.site-fab-stack--collapsed)):not(.search-active)
    .homepage-hero-stage
    > .hero.hero--homepage
    .hero-search--homepage {
    /*
     * Полная ширина контейнера (без прежнего сжатия): кнопка поиска
     * оказывается над колонкой «+», поле не наезжает (поиск выше по Y).
     */
    padding-right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
  }

  body:has(#siteFabStack.site-fab-stack:not(.site-fab-stack--collapsed)):not(.search-active)
    .homepage-hero-stage
    .hero-search--homepage
    .search-box {
    width: 100% !important;
    max-width: none !important;
  }

  body:has(#siteFabStack.site-fab-stack:not(.site-fab-stack--collapsed)):not(.search-active)
    .homepage-hero-stage
    .hero-search--homepage
    .search-icon-btn {
    margin-right: 0 !important;
  }
}

/* === components/shared/z-card-photo-treatment.css === */
/* Unified listing / nearby card photo treatment — SSOT for the whole portal.
   Target: no white inset/border, photo flush to card edges, bottom corners rounded,
   soft shadow without 1px hairline ring. */

:root {
  --z-card-radius: 20px;
  --z-card-gap: 0px;
  --z-card-photo-aspect: 1 / 1;
  /* Top flush via card overflow; bottom rounded into body */
  --z-card-photo-radius: 0;
  --z-card-photo-bottom-radius: var(--z-card-radius, 20px);
  --z-card-photo-clip: inset(
    0 round 0 0 var(--z-card-photo-bottom-radius) var(--z-card-photo-bottom-radius)
  );
  /* Soft shadow only — no 0 0 0 1px frame around photos */
  --z-card-outer-ring: 0 1px 3px rgba(0, 0, 0, 0.04);
  --z-card-outer-ring-hover: 0 4px 16px rgba(0, 0, 0, 0.08);
}

/* ── Card chrome ── */
.svc-card,
.sr-card,
.rv-nearby-card,
.similar-card,
.place-card,
.compass-card,
.mkt-card,
.homepage-news-card,
.news-container .card {
  --z-card-gap: 0px;
  border: none !important;
  border-width: 0 !important;
  background-clip: padding-box;
  overflow: hidden;
  box-shadow: var(--z-card-outer-ring) !important;
}

.svc-card:hover,
.sr-card:hover,
.rv-nearby-card:hover,
.similar-card:hover,
.place-card:hover,
.compass-card:hover,
.mkt-card:hover {
  box-shadow: var(--z-card-outer-ring-hover) !important;
}

/* Kill white-gap border pattern wherever still wired to --z-card-gap */
.svc-card,
.sr-card,
.rv-nearby-card,
.similar-card,
.place-card,
.compass-card,
.mkt-card,
.hub-listing-grid .compass-card,
.hub-listing-grid .place-card,
.hub-listing-grid .mkt-card {
  border: none !important;
}

/* ── Photo wraps: flush top, rounded bottom ── */
.svc-card-img,
.sr-card__image-wrap,
.rv-nc-photo,
.similar-card__img-wrap,
.place-card-img,
.compass-card-img,
.mkt-card__img,
.places-side-img {
  border-radius: 0 0 var(--z-card-photo-bottom-radius) var(--z-card-photo-bottom-radius) !important;
  overflow: hidden !important;
  isolation: isolate;
  line-height: 0;
  transform: translateZ(0);
  background: transparent;
}

/* ── Media + carousel ──
   IMPORTANT: do NOT put clip-path on .card-carousel / __track / __slide —
   clip-path on the moving track/slides chops slides 2+ (half/white photo).
   Round corners via overflow:hidden + border-radius on the photo wrap. */

/* Kill accidental clip-path on carousel chrome (overrides svc_catalog / hub-grid) */
.svc-card-img .card-carousel,
.svc-card-img .card-carousel__track,
.svc-card-img .card-carousel__slide,
.sr-card__image-wrap .card-carousel,
.sr-card__image-wrap .card-carousel__track,
.sr-card__image-wrap .card-carousel__slide,
.rv-nc-photo .card-carousel,
.rv-nc-photo .card-carousel__track,
.rv-nc-photo .card-carousel__slide,
.similar-card__img-wrap .card-carousel,
.similar-card__img-wrap .card-carousel__track,
.similar-card__img-wrap .card-carousel__slide,
.place-card-img .card-carousel,
.place-card-img .card-carousel__track,
.place-card-img .card-carousel__slide,
.compass-card-img .card-carousel,
.compass-card-img .card-carousel__track,
.compass-card-img .card-carousel__slide {
  -webkit-clip-path: none !important;
  clip-path: none !important;
}

.svc-card-img > img,
.svc-card-img .card-carousel__slide img,
.sr-card__image-wrap > img,
.sr-card__image-wrap .sr-card__image,
.sr-card__image-wrap .card-carousel__slide img,
.rv-nc-photo > img,
.rv-nc-photo > .rv-nc-nophoto,
.rv-nc-photo .card-carousel__slide img,
.similar-card__img-wrap > img,
.similar-card__img-wrap .card-carousel__slide img,
.place-card-img > img,
.place-card-img .card-carousel__slide img,
.compass-card-img > img,
.compass-card-img .card-carousel__slide img,
.mkt-card__img > img,
.places-side-img > img {
  border-radius: 0 0 var(--z-card-photo-bottom-radius) var(--z-card-photo-bottom-radius) !important;
}

/* Fill square photo box: absolute inset beats % height + HTML 512×341 aspect */
.svc-card-img .card-carousel,
.svc-card-img .card-carousel__track,
.svc-card-img .card-carousel__slide,
.sr-card__image-wrap .card-carousel,
.sr-card__image-wrap .card-carousel__track,
.sr-card__image-wrap .card-carousel__slide,
.similar-card__img-wrap .card-carousel,
.similar-card__img-wrap .card-carousel__track,
.similar-card__img-wrap .card-carousel__slide,
.place-card-img .card-carousel,
.place-card-img .card-carousel__track,
.place-card-img .card-carousel__slide,
.compass-card-img .card-carousel,
.compass-card-img .card-carousel__track,
.compass-card-img .card-carousel__slide,
.rv-nc-photo .card-carousel,
.rv-nc-photo .card-carousel__track,
.rv-nc-photo .card-carousel__slide {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}

.svc-card-img .card-carousel__slide,
.sr-card__image-wrap .card-carousel__slide,
.similar-card__img-wrap .card-carousel__slide,
.place-card-img .card-carousel__slide,
.compass-card-img .card-carousel__slide,
.rv-nc-photo .card-carousel__slide {
  position: relative !important;
  overflow: hidden !important;
}

.svc-card-img > img,
.svc-card-img .card-carousel__slide img,
.sr-card__image-wrap > img,
.sr-card__image-wrap .sr-card__image,
.sr-card__image-wrap .card-carousel__slide img,
.rv-nc-photo > img,
.rv-nc-photo .card-carousel__slide img,
.similar-card__img-wrap > img,
.similar-card__img-wrap .card-carousel__slide img,
.place-card-img > img,
.place-card-img .card-carousel__slide img,
.compass-card-img > img,
.compass-card-img .card-carousel__slide img,
.mkt-card__img > img,
.places-side-img > img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center center;
  display: block !important;
  box-sizing: border-box !important;
}

/* Direct imgs still need a positioned parent */
.svc-card-img,
.sr-card__image-wrap,
.rv-nc-photo,
.similar-card__img-wrap,
.place-card-img,
.compass-card-img,
.mkt-card__img,
.places-side-img {
  position: relative;
}

/* Watermark overlays match photo bottom radius */
.svc-card-img::after,
.sr-card__image-wrap::after,
.rv-nc-photo::after,
.place-card-img::after,
.compass-card-img::after,
.places-side-img::after {
  border-radius: 0 0 var(--z-card-photo-bottom-radius) var(--z-card-photo-bottom-radius) !important;
}

/* Homepage / object-cards must not reintroduce full photo radius */
.homepage-featured-grid,
.homepage-compass-section,
.hub-listing-grid,
.rv-nearby,
.services-grid,
.places-grid {
  --z-card-gap: 0px;
  --z-card-photo-radius: 0;
  --z-card-photo-bottom-radius: var(--z-card-radius, 20px);
}

