/* Витрина заведения (showcase.html) на градиентном редизайне (этап 1
   задачи "гостевые экраны на градиентном редизайне", см. LOG_2026-09-19).
   Значения токенов - в catalog.css (--gh-*-dark/-light, --gradient-cta),
   catalog.css подключён в showcase.html ДО этого файла и вешает
   body.gh-guest-mesh (см. там же) - фон-сетка статичная, шрифты
   Unbounded/Manrope. Здесь - только правки, специфичные для разметки и
   классов самой витрины (не входят в catalog.css, у витрины свои имена
   компонентов: .service-card/.hotel-room-card/.cafe-item-card и т.п.).

   Не трогаем (по заданию): портал бизнеса, "Награда дня" (#reward-*,
   .cafe-my-orders-clear-btn - не тема, отдельная функция), фото, поле
   showcase_primary_color/showcase_accent_color в портале/БД - здесь
   только то, ЧТО эти токены красят на странице, не сами токены. */

body.gh-guest-mesh h1,
body.gh-guest-mesh h2 {
  font-family: 'Unbounded', 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* catalog.css задаёт body.gh-guest-mesh только светлую палитру по
   умолчанию (см. комментарий там же) - тёмную назначает каждая страница
   сама, своим классом темы. У витрины это body.theme-dark (JS
   theme-switcher.js, а не системная media-тема напрямую - см. showcase.html
   выше), поэтому переключение палитры здесь, а не в catalog.css. */
body.gh-guest-mesh.theme-dark {
  --mesh-a: var(--gh-mesh-a-dark); --mesh-b: var(--gh-mesh-b-dark); --mesh-c: var(--gh-mesh-c-dark); --mesh-o: var(--gh-mesh-o-dark);
  --mesh-page-base: var(--gh-mesh-page-base-dark);
  --glass-bg: var(--gh-glass-bg-dark);
  --glass-bg-fallback: var(--gh-glass-bg-fallback-dark);
  --glass-border: var(--gh-glass-border-dark);
  --gradient-text: var(--gh-gradient-text-dark);
}

/* ------------------------------------------------------------------ */
/* Стекло - карточки, модалки/шторки, липкие панели, поле поиска,      */
/* кнопки-иконки, чипы и переключатель формата (вкладки "В зале/       */
/* С собой" и т.п.) в неактивном состоянии. Тот же приём, что в        */
/* catalog.css: непрозрачный --glass-bg-fallback по умолчанию, поверх -*/
/* @supports с настоящим стеклом+блюром для браузеров, где оно есть.   */
/* ------------------------------------------------------------------ */
body.gh-guest-mesh .service-card,
body.gh-guest-mesh .hotel-room-card,
body.gh-guest-mesh .hotel-booking-card,
body.gh-guest-mesh .cafe-item-card,
body.gh-guest-mesh .cafe-order-card,
body.gh-guest-mesh .info-contacts-card,
body.gh-guest-mesh .bg-white.rounded-2xl,
body.gh-guest-mesh .cafe-sheet,
body.gh-guest-mesh #showcase-bottom-nav,
body.gh-guest-mesh .info-map-expand-btn,
body.gh-guest-mesh .cafe-service-toggle,
body.gh-guest-mesh .cafe-search-input,
body.gh-guest-mesh .cafe-search-btn,
body.gh-guest-mesh .cafe-section-nav-wrap,
body.gh-guest-mesh .cafe-section-nav-btn,
body.gh-guest-mesh .hotel-filter-chip {
  background: var(--glass-bg-fallback);
  border-color: var(--glass-border);
}
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  body.gh-guest-mesh .service-card,
  body.gh-guest-mesh .hotel-room-card,
  body.gh-guest-mesh .hotel-booking-card,
  body.gh-guest-mesh .cafe-item-card,
  body.gh-guest-mesh .cafe-order-card,
  body.gh-guest-mesh .info-contacts-card,
  body.gh-guest-mesh .bg-white.rounded-2xl,
  body.gh-guest-mesh .cafe-sheet,
  body.gh-guest-mesh #showcase-bottom-nav,
  body.gh-guest-mesh .info-map-expand-btn,
  body.gh-guest-mesh .cafe-service-toggle,
  body.gh-guest-mesh .cafe-search-input,
  body.gh-guest-mesh .cafe-search-btn,
  body.gh-guest-mesh .cafe-section-nav-wrap,
  body.gh-guest-mesh .cafe-section-nav-btn,
  body.gh-guest-mesh .hotel-filter-chip {
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
  }
}
/* .info-contacts-card уже был градиентной плашкой (не сплошным цветом) -
   стекло заменяет именно фон, свой лёгкий градиент внутри плашки не
   переносим поверх стекла (эффект накладки), поэтому background
   переопределяется полностью, а не через background-color. */

/* Активный чип (категория меню кафе "Все"/"Завтраки"/..., фильтр типа
   номера отеля) - было незаметно в обеих темах: .cafe-section-nav-btn.is-
   active (cafe-showcase.css) и .hotel-filter-chip.is-active (hotel-
   showcase.css) красят фон через var(--accent-color), но специфичность
   двух классов (0,2,0) ниже, чем у стеклянного правила выше по этому же
   файлу body.gh-guest-mesh .cafe-section-nav-btn/.hotel-filter-chip
   (0,2,1 - лишний типовой селектор body), поэтому активный чип всегда
   получал обычное стекло вместо акцентной заливки. Тот же приём, что уже
   в catalog.css у .chip.is-active - общий --gradient-cta, белый текст. */
body.gh-guest-mesh .cafe-section-nav-btn.is-active,
body.gh-guest-mesh .hotel-filter-chip.is-active {
  background: var(--gradient-cta);
  color: #fff;
  border-color: transparent;
}

/* .cafe-screen/.hotel-screen (корзина/оформление/статус заказа, "Мои
   заказы"/"Мои брони") - это ПОЛНОЭКРАННЫЙ, а не плавающий слой (fixed,
   inset:0), фону-сетке страницы за ним взяться неоткуда, поэтому не
   стекло (блюрить нечего), а та же сама сетка, что у body.gh-guest-mesh -
   формула та же, что в catalog.css, значения из тех же переменных. */
body.gh-guest-mesh .cafe-screen,
body.gh-guest-mesh .hotel-screen {
  background:
    radial-gradient(95% 60% at 12% 6%, var(--mesh-a), transparent 72%),
    radial-gradient(90% 65% at 92% 20%, var(--mesh-b), transparent 72%),
    radial-gradient(95% 65% at 22% 90%, var(--mesh-c), transparent 72%),
    radial-gradient(70% 55% at 92% 96%, var(--mesh-o), transparent 72%),
    var(--mesh-page-base);
}
/* Карточки строк корзины/заказа/брони внутри .cafe-screen/.hotel-screen -
   тоже стекло, той же формулой, что и остальные карточки выше. */
body.gh-guest-mesh .cafe-order-card,
body.gh-guest-mesh .hotel-booking-card,
body.gh-guest-mesh .cafe-screen-footer,
body.gh-guest-mesh .hotel-screen-footer {
  background: var(--glass-bg-fallback);
  border-color: var(--glass-border);
}
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  body.gh-guest-mesh .cafe-screen-footer,
  body.gh-guest-mesh .hotel-screen-footer {
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
  }
}

/* ------------------------------------------------------------------ */
/* Кнопки действия ("Забронировать", "Заказать", "+", "Добавить",     */
/* "Отправить" и подобные) - решение владельца: заливка --gradient-cta */
/* вместо фирменного цвета площадки (--primary-color/--accent-color), */
/* белый текст. Список остальных мест с фирменным цветом (цена,       */
/* ссылки, подчёркивание/активные чипы и т.п.) - в отчёте задачи, тут  */
/* не трогаем ничего, что НЕ является кнопкой действия.               */
/* ------------------------------------------------------------------ */
body.gh-guest-mesh .accent-bg,
body.gh-guest-mesh .primary-bg,
body.gh-guest-mesh .book-room-btn,
body.gh-guest-mesh .cafe-add-btn,
body.gh-guest-mesh .cafe-cart-bar,
body.gh-guest-mesh .cafe-submit-btn,
body.gh-guest-mesh .cafe-cart-line-fix-btn,
body.gh-guest-mesh .cafe-confirm-btn--primary,
body.gh-guest-mesh .hotel-search-btn,
body.gh-guest-mesh .hotel-submit-btn,
body.gh-guest-mesh .hotel-offer-bar,
body.gh-guest-mesh .hotel-addon-toggle.is-added {
  background: var(--gradient-cta);
  color: #fff;
  border-color: transparent;
}
/* .accent-bg.text-white/.primary-bg.text-white (catalog.css/showcase.html
   доводка контраста тёмного текста на светлом акценте) для градиента не
   нужны - белый текст на --gradient-cta проходит 4.5:1+ по всему пути
   градиента (см. TOKENS.md), поэтому здесь не переопределяем. */
body.gh-guest-mesh .accent-bg.text-white,
body.gh-guest-mesh .primary-bg.text-white {
  color: #fff;
}
