/* Brooklyn Bowl — v3 overrides.
   Гибрид: палитра/шрифт брендбука + минимализм живого сайта brooklynbowl.ru.
   Подключается ПОСЛЕ sections.css. */

/* ═══════════════════════════════════════════════════════════════════════ */
/* ТИПОГРАФИКА — Montserrat, uppercase акценты, без курсива               */
/* ═══════════════════════════════════════════════════════════════════════ */
body {
  font-family: var(--font-sans);
  letter-spacing: -0.005em;
}

.hero-editorial__title,
.section-head__title,
.branch__title,
.visit-card__title,
.event-card__title,
.dish-card__title,
.review-card__author,
.address-card__title,
.site-footer__logo {
  font-family: var(--font-sans);
}

/* Hero h1 — CAPS брендбук (стр. 20-21) + Montserrat Black */
.hero-editorial__title {
  text-transform: uppercase;
  font-weight: 900;
  letter-spacing: -0.015em;
  line-height: 0.98;
}
.hero-editorial__title em {
  font-style: normal;
  color: var(--color-accent);
  font-weight: 900;
}

/* Eyebrows (Афиша, Меню) — uppercase, разрежённые */
.section-head__eyebrow,
.hero-editorial__kicker,
.mobile-menu__label {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* КНОПКИ — плоские, острые углы, uppercase                               */
/* ═══════════════════════════════════════════════════════════════════════ */
.btn {
  border-radius: 0;
  box-shadow: none;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
}
.btn--primary {
  background: var(--color-accent);
  color: #fff;
  border: 1px solid var(--color-accent);
}
.btn--primary:hover,
.btn--primary:focus-visible {
  background: var(--color-accent-hover);
  border-color: var(--color-accent-hover);
  box-shadow: none;
  transform: none;
}
.btn--ghost {
  background: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-text);
}
.btn--ghost:hover,
.btn--ghost:focus-visible {
  background: var(--color-text);
  color: var(--color-bg);
}
.btn--large { min-height: 56px; padding: 0.8em 1.8em; }
.btn[disabled],
.btn[aria-disabled="true"] {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* APP-LINKS — крупные ссылки на приложение                                 */
/* ═══════════════════════════════════════════════════════════════════════ */
.app-links {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  max-width: 720px;
  margin: var(--space-xl) auto 0;
}
@media (min-width: 640px) {
  .app-links { grid-template-columns: 1fr 1fr; }
}
.app-link {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-lg);
  background: rgba(224, 87, 42, 0.08);
  border: 1px solid rgba(224, 87, 42, 0.35);
  border-radius: 3px;
  color: var(--color-text);
  transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.app-link:hover,
.app-link:focus-visible {
  background: rgba(224, 87, 42, 0.18);
  border-color: var(--color-accent);
  outline: none;
}
.app-link__icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  color: var(--color-accent);
}
.app-link__body { line-height: 1.3; }
.app-link__label {
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--color-text-muted);
  margin-bottom: 2px;
}
.app-link__name {
  font-size: var(--fs-h4);
  font-weight: 800;
  letter-spacing: -0.01em;
}

/* Раскрытый FAQ по умолчанию: скрыть "+" на таких страницах */
.faq--always-open .faq-item__q::after { display: none; }
.faq--always-open .faq-item { cursor: default; }
.faq--always-open .faq-item__q { cursor: default; }

/* Блок фото-placeholder для страниц акций/сценариев */
.photo-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, rgba(224, 87, 42, 0.25), rgba(20, 20, 22, 0.9));
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: var(--space-lg);
  overflow: hidden;
}
.photo-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 30% 30%, rgba(224, 87, 42, 0.35), transparent 60%),
                    radial-gradient(circle at 70% 70%, rgba(138, 74, 38, 0.28), transparent 55%);
  pointer-events: none;
}
.photo-hero__label {
  position: relative;
  font-size: var(--fs-micro);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  padding: 0.4em 1em;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 3px;
}
.photo-hero--compact { aspect-ratio: 21 / 9; }

/* Menu one-page — все категории одной страницей */
.menu-panel--static { display: block !important; margin-bottom: var(--space-2xl); }
.menu-panel--static[hidden] { display: block !important; }
.menu-section-head {
  margin: var(--space-2xl) 0 var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--color-border);
}
.menu-section-head__title {
  font-size: clamp(1.5rem, 1.1rem + 1vw, 2rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--color-accent);
  text-transform: uppercase;
}

/* Таблица цен для страницы lane */
.price-table {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-top: var(--space-lg);
}
@media (min-width: 768px) {
  .price-table { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .price-table { grid-template-columns: repeat(4, 1fr); }
}
.price-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  padding: var(--space-lg);
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--color-border);
  border-radius: 3px;
}
.price-card--hero { border-color: var(--color-accent); background: rgba(224, 87, 42, 0.08); }
.price-card__when {
  font-size: var(--fs-micro);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.price-card__amount {
  font-size: 2.25rem;
  font-weight: 900;
  line-height: 1;
  color: var(--color-text);
}
.price-card--hero .price-card__amount { color: var(--color-accent); }
.price-card__unit {
  font-size: var(--fs-small);
  color: var(--color-text-muted);
}
.price-card__note {
  font-size: var(--fs-small);
  color: var(--color-text-muted);
  line-height: 1.5;
  margin-top: auto;
  padding-top: var(--space-sm);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* КАРТОЧКИ — radius 0, без теней (минимализм брендбука, стр. 35)          */
/* ═══════════════════════════════════════════════════════════════════════ */
.occasion__card,
.event-card,
.review-card,
.review-photo,
.dish-card,
.visit-card,
.intro-photo,
.intro__map,
.address-card,
.faq-item {
  border-radius: 0;
  box-shadow: none;
}
.occasion__card { border: 1px solid var(--color-border); }
.occasion input[type="radio"]:checked + .occasion__card,
.occasion__card:hover {
  border-color: var(--color-accent);
}
.occasion__title {
  color: var(--color-accent);
}
.event-card,
.visit-card,
.address-card {
  border: 1px solid var(--color-border);
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* МЕНЮ-ТАБЫ еды — красный акцент вместо оранжевого                         */
/* ═══════════════════════════════════════════════════════════════════════ */
.menu__tab {
  border-radius: 0;
}
.menu__tab[aria-selected="true"],
.menu__tab.is-active {
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* ШАПКА — адаптация под Montserrat                                         */
/* ═══════════════════════════════════════════════════════════════════════ */
.logo__word {
  font-weight: 900;
  letter-spacing: -0.02em;
}
.logo__city {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
}
.site-nav__list a {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  font-size: 0.875rem;
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* ПРАВКА 3 — фикс бургер-меню: body lock, 100dvh, z-index                  */
/* ═══════════════════════════════════════════════════════════════════════ */
body.is-menu-open {
  overflow: hidden;
  /* фиксируем высоту, чтобы прокрутка фона ушла */
  height: 100vh;
  height: 100dvh;
}
.mobile-menu {
  z-index: 200;
  height: 100vh;
  height: 100dvh;
  padding-top: calc(var(--safe-top) + 76px);
  padding-bottom: calc(var(--safe-bottom) + var(--space-2xl));
}
.burger {
  position: relative;
  z-index: 210;
}
.site-header {
  z-index: 150;
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* ПРАВКА 5 — quick-nav (текстовая строка-бегущка)                         */
/* ═══════════════════════════════════════════════════════════════════════ */
.quick-nav {
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 14px 0;
  background: var(--color-bg-soft);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.quick-nav::-webkit-scrollbar { display: none; }
.quick-nav__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  white-space: nowrap;
  font-size: 0.875rem;
}
.quick-nav a {
  color: var(--color-text);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 700;
  padding: 4px 2px;
  border-bottom: 2px solid transparent;
  transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.quick-nav a:hover,
.quick-nav a:focus-visible {
  color: var(--color-accent);
  border-bottom-color: var(--color-accent);
}
.quick-nav__dot {
  color: var(--color-text-subtle);
}
@media (max-width: 640px) {
  .quick-nav__inner {
    justify-content: flex-start;
    padding: 0 var(--container-x);
  }
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* ПРАВКА 4 — FAB-bar: «Забронировать» sticky внизу полной полосой          */
/* ═══════════════════════════════════════════════════════════════════════ */
.fab-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 10px var(--container-x) calc(10px + var(--safe-bottom));
  background: linear-gradient(to top, rgba(30, 24, 23, 0.98), rgba(30, 24, 23, 0.88));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--color-border);
  z-index: 95;
  transform: translateY(0);
  transition: transform var(--dur-base) var(--ease), opacity var(--dur-base) var(--ease);
}
.fab-bar.is-hidden-in-section,
.fab-bar.is-hidden-at-top,
.fab-bar.is-hidden-menu {
  transform: translateY(110%);
  pointer-events: none;
  opacity: 0;
}
.fab-bar__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  min-height: 52px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
/* Контент не прячется под FAB */
body {
  padding-bottom: calc(82px + var(--safe-bottom));
}
@media (min-width: 1024px) {
  .fab-bar__btn { max-width: 440px; }
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* ПРАВКА 1 — точки-спойлеры на мобиле (<1024px)                           */
/* ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 1023px) {
  .branch {
    position: relative;
    padding-right: 0;
  }
  .branch__head {
    position: relative;
    cursor: pointer;
    padding: var(--space-sm) 0;
    padding-right: 44px;
    margin: 0;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
  }
  .branch__head::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 28px;
    line-height: 1;
    color: var(--color-accent);
    font-weight: 400;
    transition: transform var(--dur-fast) var(--ease);
  }
  .branch.is-open > .branch__head::after {
    content: "−";
  }
  .branch > :not(.branch__head) {
    display: none;
  }
  .branch.is-open > :not(.branch__head) {
    display: block;
  }
  .branch + .branch {
    border-top: 1px solid var(--color-border);
    margin-top: 0;
    padding-top: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* ДЕКОР — halftone-паттерн (брендбук стр. 44) + эмблема BRKLN             */
/* ═══════════════════════════════════════════════════════════════════════ */
.intro {
  position: relative;
  isolation: isolate;
}
.intro::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(237, 28, 36, 0.08) 1px, transparent 1px);
  background-size: 14px 14px;
  pointer-events: none;
  z-index: -1;
  opacity: 0.55;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), transparent 80%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), transparent 80%);
}

/* Фирменная эмблема BRKLN (брендбук стр. 30) — квадратный блок */
.emblem {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  font-family: var(--font-sans);
  font-weight: 900;
  font-size: 0.875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-text);
  border: 2px solid currentColor;
  background: transparent;
  line-height: 1;
}
.emblem--brkln { color: var(--color-text); }
.emblem--live  { color: var(--color-accent); }

/* ═══════════════════════════════════════════════════════════════════════ */
/* Тонкие правки: hero kicker, intro-photo caption, футер                  */
/* ═══════════════════════════════════════════════════════════════════════ */
.hero-editorial__live b {
  background: var(--color-accent);
}
.review-card__highlight {
  color: var(--color-accent);
}
.intro-photo__caption {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.8125rem;
  font-weight: 700;
}
.site-footer__logo {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 900;
}

/* Theme-color подсказка для iOS Safari address bar */
@supports (-webkit-touch-callout: none) {
  :root { color-scheme: dark; }
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* Расширенный футер — 5 колонок + legal отдельной строкой                  */
/* ═══════════════════════════════════════════════════════════════════════ */
@media (min-width: 1024px) {
  .site-footer--expanded .site-footer__inner {
    grid-template-columns: 2fr 1fr 1fr 1fr 1.5fr;
  }
}
.site-footer--expanded .site-footer__legal {
  grid-column: 1 / -1;
  margin-top: var(--space-md);
  padding-top: var(--space-md);
  border-top: 1px solid var(--color-border);
  text-align: center;
  opacity: 0.7;
  font-size: 0.8125rem;
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* Page-hero: мини-hero для дочерних страниц                               */
/* ═══════════════════════════════════════════════════════════════════════ */
.page-hero {
  padding: clamp(var(--space-xl), 8vw, var(--space-3xl)) 0 var(--space-xl);
  border-bottom: 1px solid var(--color-border);
}
.page-hero__title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  letter-spacing: -0.015em;
  line-height: 1.02;
  text-transform: uppercase;
  margin: var(--space-sm) 0 var(--space-md);
  color: var(--color-text);
}
.page-hero__title em {
  font-style: normal;
  color: var(--color-accent);
}
.page-hero__lead {
  max-width: 62ch;
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.55;
  color: var(--color-text-muted);
  margin-bottom: var(--space-lg);
}
.page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* Promo-banner: плашка акции внутри страниц                                */
/* ═══════════════════════════════════════════════════════════════════════ */
.promo-banner {
  padding: var(--space-xl) 0;
}
.promo-banner__card {
  background: var(--color-accent-soft);
  border-left: 4px solid var(--color-accent);
  padding: var(--space-lg) clamp(var(--space-lg), 4vw, var(--space-xl));
}
.promo-banner__card h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  letter-spacing: -0.01em;
  margin: var(--space-xs) 0 var(--space-sm);
  text-transform: uppercase;
}
.promo-banner__card p {
  max-width: 56ch;
  color: var(--color-text-muted);
  margin-bottom: var(--space-md);
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* Page-cta: финальный призыв перед футером                                */
/* ═══════════════════════════════════════════════════════════════════════ */
.page-cta {
  padding: var(--space-2xl) 0;
  text-align: center;
  background: var(--color-bg-soft);
  border-top: 1px solid var(--color-border);
}
.page-cta h2 {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 900;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}
.page-cta p {
  max-width: 48ch;
  margin: 0 auto var(--space-lg);
  color: var(--color-text-muted);
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* Page-section: стандартная секция на дочерних страницах                  */
/* ═══════════════════════════════════════════════════════════════════════ */
.page-section {
  padding: clamp(var(--space-xl), 6vw, var(--space-3xl)) 0;
}
.page-section--soft {
  background: var(--color-bg-soft);
}

/* Visit-steps: нумерованные шаги «как всё пройдёт»                        */
.visit-steps ol {
  counter-reset: step;
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .visit-steps ol {
    grid-template-columns: repeat(3, 1fr);
  }
}
.visit-steps li {
  position: relative;
  padding: var(--space-lg) var(--space-md) var(--space-md);
  background: var(--color-bg-card);
  border: 1px solid var(--color-border);
  counter-increment: step;
  line-height: 1.55;
  color: var(--color-text-muted);
}
.visit-steps li::before {
  content: counter(step);
  position: absolute;
  top: -18px;
  left: 16px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  background: var(--color-accent);
  color: #fff;
  font-weight: 900;
  font-size: 1.125rem;
}
.visit-steps li strong {
  display: block;
  color: var(--color-text);
  margin-bottom: 4px;
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* Trust-anchors: блок якорей доверия на /booking.html и страницах ДР       */
/* ═══════════════════════════════════════════════════════════════════════ */
.trust-anchors {
  padding: var(--space-2xl) 0;
  background: var(--color-bg-soft);
}
.trust-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-lg);
}
.trust-card {
  padding: var(--space-lg);
  background: var(--color-bg-card);
  border: 1px solid var(--color-border);
}
.trust-card h3 {
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  margin-bottom: var(--space-sm);
  color: var(--color-accent);
}
.trust-card p {
  color: var(--color-text-muted);
  line-height: 1.55;
  font-size: 0.9375rem;
}
.trust-card p + p { margin-top: var(--space-sm); }

/* ═══════════════════════════════════════════════════════════════════════ */
/* Dish-card как ссылка — hover-эффект                                      */
/* ═══════════════════════════════════════════════════════════════════════ */
a.dish-card {
  text-decoration: none;
  color: inherit;
  display: block;
  position: relative;
  transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
a.dish-card:hover,
a.dish-card:focus-visible {
  border-color: var(--color-accent);
  outline: none;
}
a.dish-card::after {
  content: "→";
  position: absolute;
  top: var(--space-sm);
  right: var(--space-sm);
  color: var(--color-accent);
  font-weight: 700;
  opacity: 0;
  transition: opacity var(--dur-fast) var(--ease);
}
a.dish-card:hover::after,
a.dish-card:focus-visible::after {
  opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════════════ */
/* Ссылка «Подробнее →» в visit-card__foot под кнопкой брони                */
/* ═══════════════════════════════════════════════════════════════════════ */
.visit-card__more-link {
  display: inline-block;
  margin-top: var(--space-sm);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-accent);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.visit-card__more-link:hover,
.visit-card__more-link:focus-visible {
  color: var(--color-accent-hover);
  border-bottom-color: var(--color-accent-hover);
}
.visit-card__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-sm) var(--space-md);
}
