/* Apex desktop shell: the inline page styles remain the mobile source of truth. */
:root { --bt-apex-gutter: max(40px, calc((100vw - 1100px) / 2)); }

.bt-shell-topbar { width: 100% !important; display: flex !important; align-items: center !important; box-sizing: border-box; position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line, #eceae7); height: 60px; padding: 0 16px; gap: 12px; }
body.bt-apex-shell-ready { margin: 0; }
body.bt-apex-shell-ready button,
body.bt-apex-shell-ready input,
body.bt-apex-shell-ready select,
body.bt-apex-shell-ready textarea,
body.bt-apex-shell-ready .btn {
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.bt-shell-topbar .logo { display: flex; align-items: center; gap: 8px; margin-right: auto; font-weight: 800; font-size: 18px; }
.bt-shell-topbar .logo img { width: 110px; height: auto; }
.bt-shell-topbar .hd-right { display: flex; align-items: center; gap: 10px; }
.bt-shell-topbar .lang { display: flex; border: 1px solid var(--line, #eceae7); border-radius: 9px; overflow: hidden; }
.bt-shell-topbar .lang a { display: inline-flex; align-items: center; font-size: 13px; font-weight: 700; padding: 7px 11px; color: var(--muted, #525252); background: #fff; text-decoration: none; }
.bt-shell-topbar .lang a[aria-current="page"],
.bt-shell-topbar .lang a.active { background: var(--accent, #ee1b49) !important; color: #fff !important; cursor: default; }
.bt-shell-topbar .burger { width: 42px; height: 42px; flex: 0 0 42px; border: 1px solid var(--line, #eceae7); border-radius: 10px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; cursor: pointer; }
.bt-shell-topbar .burger span { display: block; width: 18px; height: 2px; background: var(--ink, #2a2c31); border-radius: 2px; }
.bt-shell-topbar .dnav-fav,
.bt-shell-topbar .dnav-cart { position: relative; }
.bt-shell-topbar .dnav-fav svg,
.bt-shell-topbar .dnav-cart svg,
.bt-shell-topbar .account svg { width: 22px; height: 22px; max-width: 22px; max-height: 22px; }
.bt-shell-topbar .dnav-fav,
.bt-shell-topbar .dnav-cart,
.bt-shell-topbar .account { width: 38px; height: 38px; flex: 0 0 38px; display: inline-flex; align-items: center; justify-content: center; color: var(--ink, #2a2c31); }
.bt-shell-topbar .dnav-cart-badge { position: absolute; top: -5px; right: -6px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: var(--accent, #ee1b49); color: #fff; font-size: 10px; font-style: normal; font-weight: 800; line-height: 17px; text-align: center; }
.bt-shell-menu { z-index: 1000; }
.bt-back-wrap { width: 100%; padding: 24px var(--bt-apex-gutter) 0; }
.bt-back-link { display: inline-flex !important; align-items: center; min-height: 32px; color: var(--muted, #525252) !important; font-size: 14px; font-weight: 700; text-decoration: none; }
.bt-back-link:hover { color: var(--accent, #ee1b49) !important; }

/* Bonus plaque (глобальные стили для всех экранов: мобилка и десктоп) */
.bonus-plaque {
  display: flex !important;
  gap: 12px;
  align-items: center;
  width: 100%;
  text-align: left;
  background: #f8f5ff !important;
  border: 1.5px solid #d4c2fc !important;
  border-radius: 14px;
  padding: 12px 14px;
  cursor: pointer;
  font: inherit;
  margin: 14px 0 0;
  text-decoration: none !important;
  box-sizing: border-box;
  transition: background .15s ease, border-color .15s ease;
}
.bonus-plaque:hover {
  background: #f2ecff !important;
  border-color: #be9ffc !important;
}
.bonus-plaque__ico {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  box-shadow: 0 2px 6px rgba(123, 63, 228, .15);
}
.bonus-plaque__txt {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bonus-plaque__txt b {
  font-size: 14px;
  line-height: 18px;
  color: var(--ink, #1a1a1a) !important;
  font-weight: 700;
}
.bonus-plaque__txt span {
  font-size: 13px;
  line-height: 17px;
  color: var(--muted, #6b6b6b) !important;
}
.bonus-plaque__free {
  color: #7b3fe4 !important;
  font-weight: 700;
  font-size: 13px;
}
.bonus-plaque__free del {
  color: var(--muted, #6b6b6b) !important;
  font-weight: 400;
  margin-left: 6px;
  text-decoration: line-through;
}
.bonus-plaque__chev {
  flex: 0 0 auto;
  color: var(--muted, #6b6b6b) !important;
  font-size: 20px;
  line-height: 1;
}

/* Bonus modal */
.bonus-overlay {
  position: fixed;
  inset: 0;
  background: rgba(20, 18, 16, .55);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.bonus-overlay[hidden] {
  display: none !important;
}
.bonus-sheet {
  background: #fff;
  border-radius: 20px;
  max-width: 860px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 28px 24px 24px;
  position: relative;
  box-sizing: border-box;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
}
.bonus-sheet h3 {
  font-size: 22px;
  line-height: 28px;
  margin: 0 0 8px;
  padding-right: 36px;
  color: var(--ink, #1a1a1a);
  font-weight: 800;
}
.bonus-sheet__sub {
  font-size: 14px;
  line-height: 20px;
  color: var(--muted, #6b6b6b);
  margin: 0 0 16px;
}
.bonus-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border: 0;
  background: #f2f0ed;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  color: var(--ink, #2a2c31);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease;
}
.bonus-close:hover {
  background: #e5e2dd;
}
.bonus-scroll {
  overflow-x: auto;
  padding-bottom: 12px;
  margin: 0 0 20px;
  -webkit-overflow-scrolling: touch;
}
.bonus-lane {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: min-content;
}
.bonus-chiprow, .bonus-trackrow, .bonus-cards {
  display: grid;
  gap: 14px;
}
.bonus-chipcell {
  display: flex;
  justify-content: center;
  min-height: 28px;
  align-items: center;
}
.bonus-steps__chip {
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #f2f0ed;
  color: var(--muted, #6b6b6b);
  white-space: nowrap;
}
.bonus-steps__chip.on {
  background: #f0e8ff;
  color: #7b3fe4;
}
.bonus-trackcell {
  position: relative;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bonus-trackcell::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: #eceae7;
  transform: translateY(-50%);
}
.bonus-trackcell:first-child::before { left: 50%; }
.bonus-trackcell:last-child::before { right: 50%; }
.bonus-trackcell.on::before { background: #7b3fe4; }
.bonus-trackdot {
  position: relative;
  z-index: 1;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #dcd8d3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: #fff;
  line-height: 1;
}
.bonus-trackdot.on {
  background: #7b3fe4;
  border-color: #7b3fe4;
}
.bonus-card {
  border: 1px solid var(--line, #eceae7);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
}
.bonus-card.locked { opacity: .65; }
.bonus-card__img {
  height: 120px;
  background: linear-gradient(135deg, #7b3fe4, #b78bff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.bonus-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bonus-card__lock {
  position: absolute;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: #7b3fe4;
  box-shadow: 0 4px 10px rgba(0,0,0,.15);
}
.bonus-card__body {
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}
.bonus-card__at {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
}
.bonus-card__title {
  font-size: 13px;
  line-height: 17px;
  color: var(--ink, #2a2c31);
  font-weight: 600;
  flex: 1;
}
.bonus-card__price {
  font-size: 13px;
  font-weight: 700;
  color: #7b3fe4;
  margin-top: 4px;
}
.bonus-card__price del {
  color: var(--muted, #6b6b6b);
  font-weight: 400;
  margin-left: 6px;
  text-decoration: line-through;
}
.bonus-cta {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100%;
  height: auto !important;
  min-height: 56px !important;
  padding: 12px 18px !important;
  border: 0;
  border-radius: 12px;
  background: #ee1b49;
  color: #fff;
  font: inherit;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.3;
  cursor: pointer;
  box-sizing: border-box;
  transition: background .15s ease;
}
@media (max-width: 480px) {
  .bonus-cta {
    font-size: 14px !important;
    padding: 12px 14px !important;
    min-height: 54px !important;
  }
}
.bonus-cta:hover {
  background: #d4143d;
}
.bonus-foot {
  margin: 10px 0 0;
  text-align: center;
  font-size: 12px;
  color: var(--muted, #6b6b6b);
}
@media (max-width: 600px) {
  .bonus-sheet {
    padding: 20px 16px 16px;
    border-radius: 16px;
  }
  .bonus-sheet h3 {
    font-size: 18px;
    line-height: 24px;
  }
}

@media (max-width: 899px) {
  .app { width: 100% !important; max-width: none !important; margin: 0 !important; box-shadow: none !important; }
  .wrap { width: 100% !important; max-width: none !important; }
  .btm-discount-banner,
  .btm-tab-bar,
  .sticky .inner,
  .buy-bar .inner,
  .qc-sheet { width: 100% !important; max-width: 100% !important; }
  .modal-card { width: calc(100% - 32px) !important; max-width: 520px !important; }
  .bt-shell-topbar .dnav,
  .bt-shell-topbar .dnav-fav,
  .bt-shell-topbar .dnav-cart { display: none !important; }
  .bt-shell-topbar { padding-left: 16px !important; padding-right: 16px !important; }
  .bt-shell-topbar .logo { margin-right: auto !important; }
}

@media (min-width: 900px) {
  /* overflow-x:hidden on an ancestor of a `position:sticky` element breaks
     the sticky behavior per spec (it becomes a scroll container even with
     overflow-y left visible) — this is why .bt-shell-topbar stopped sticking
     on every apex page. `clip` keeps the same "no horizontal scrollbar"
     guarantee without creating a scroll container. */
  html.bt-apex-shell-ready,
  html.bt-apex-shell-ready body { overflow-x: clip; }
  body.bt-apex-shell-ready { background: #fff !important; }
  body.bt-apex-shell-ready .app { width: 100% !important; max-width: none !important; margin: 0 !important; box-shadow: none !important; background: var(--white, #fff); }
  body.bt-apex-shell-ready .bt-shell-topbar,
  body.bt-apex-shell-ready .topbar { height: 76px !important; padding-left: var(--bt-apex-gutter) !important; padding-right: var(--bt-apex-gutter) !important; gap: 12px; }
  body.bt-apex-shell-ready .bt-shell-topbar .burger,
  body.bt-apex-shell-ready .topbar .burger { display: none !important; }
  body.bt-apex-shell-ready .bt-shell-topbar .logo,
  body.bt-apex-shell-ready .topbar .logo { margin-right: auto !important; }
  body.bt-apex-shell-ready .bt-shell-topbar .logo img,
  body.bt-apex-shell-ready .topbar .logo img { width: 130px; height: auto; }
  body.bt-apex-shell-ready .bt-shell-topbar .dnav,
  body.bt-apex-shell-ready .topbar .dnav { display: flex !important; align-items: center; gap: 28px; white-space: nowrap; margin-left: 0 !important; margin-right: 0 !important; }
  body.bt-apex-shell-ready .bt-shell-topbar .dnav a,
  body.bt-apex-shell-ready .topbar .dnav a { font-size: 13px; font-weight: 700; color: var(--ink, #2a2c31); text-decoration: none !important; }
  body.bt-apex-shell-ready .bt-shell-topbar .dnav a:hover,
  body.bt-apex-shell-ready .topbar .dnav a:hover { color: var(--accent, #ee1b49); }
  body.bt-apex-shell-ready .bt-shell-topbar .hd-right,
  body.bt-apex-shell-ready .topbar .hd-right { display: flex !important; align-items: center; gap: 10px; margin-left: 32px !important; }
  body.bt-apex-shell-ready .bt-shell-topbar .lang,
  body.bt-apex-shell-ready .topbar .lang { display: flex; }
  body.bt-apex-shell-ready .bt-shell-topbar .lang a,
  body.bt-apex-shell-ready .topbar .lang a { font-size: 13px; font-weight: 700; padding: 7px 11px; }
  body.bt-apex-shell-ready .bt-shell-topbar .lang a[aria-current="page"],
  body.bt-apex-shell-ready .topbar .lang a[aria-current="page"] { background: var(--accent, #ee1b49); color: #fff; }
  body.bt-apex-shell-ready .bt-shell-menu { display: none !important; }

  body.bt-apex-shell-ready .wrap,
  body.bt-apex-shell-ready .sec.wrap,
  body.bt-apex-shell-ready .hero { width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: var(--bt-apex-gutter) !important; padding-right: var(--bt-apex-gutter) !important; }
  body.bt-apex-shell-ready .sec.grey,
  body.bt-apex-shell-ready .sec.cream { width: 100% !important; }
  body.bt-apex-shell-ready .bt-legal-footer__inner { width: 100% !important; max-width: 1100px !important; }
  body.bt-apex-shell-ready footer { width: 100%; }

  /* Main page: exact 1100 content grid at >=1200px. */
  body.bt-apex-home .hero { display: grid; grid-template-columns: 538px 512px; gap: 50px; align-items: center; padding-top: 56px !important; padding-bottom: 64px !important; text-align: left; }
  body.bt-apex-home .hero-banner { order: 1; width: 538px; height: 397px !important; aspect-ratio: auto !important; }
  body.bt-apex-home .hero-text { order: 2; width: 512px; }
  body.bt-apex-home #routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  body.bt-apex-home #routes .rcard { margin-top: 0; }
  body.bt-apex-home #catalog > .lead { max-width: 913px; }
  body.bt-apex-home #combo { display: grid; grid-template-columns: 538px 512px; gap: 50px; align-items: center; border-top: 1px solid var(--line, #eceae7); }
  body.bt-apex-home #combo .art { order: 1; width: 538px; }
  body.bt-apex-home #combo .combo-text { order: 2; width: 512px; }
  body.bt-apex-home #demo { display: grid; grid-template-columns: 538px 512px; gap: 50px; align-items: center; }
  body.bt-apex-home #demo .demo-text { width: 538px; }
  body.bt-apex-home #demo .shot { width: 512px; }
  body.bt-apex-home #features .flist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  body.bt-apex-home #howitworks > .eyebrow { display: block !important; text-align: center !important; margin-left: auto !important; margin-right: auto !important; }
  body.bt-apex-home #howitworks > div[style*="margin-top"] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 32px !important; align-items: start; }
  body.bt-apex-home #howitworks .step { max-width: none !important; width: auto !important; align-self: start; margin-top: 0 !important; }
  body.bt-apex-home #reviews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
  body.bt-apex-home #reviews > .eyebrow,
  body.bt-apex-home #reviews > h2,
  body.bt-apex-home #reviews > #openReviewBtn { grid-column: 1 / -1; }
  body.bt-apex-home #reviews > #openReviewBtn { justify-self: center; }
  body.bt-apex-home #reviews .review { width: auto !important; max-width: none !important; margin: 0 !important; height: 100%; }
  body.bt-apex-home #faq { max-width: none !important; }
  body.bt-apex-home #faq > div[style*="margin-top"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 50px; margin-top: 16px !important; }
  body.bt-apex-home #faq details { height: 100%; }
  body.bt-apex-home #howitworks h2,
  body.bt-apex-home #reviews h2,
  body.bt-apex-home #faq h2 { max-width: none !important; }
  body.bt-apex-home .gallery { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
  body.bt-apex-home .final { max-width: none !important; text-align: center; }
  body.bt-apex-home .final > * { max-width: 678px; margin-left: auto; margin-right: auto; }

  /* Product/combo shell: use the same 1100 content width, while preserving
     the payment widget and existing provider calls. */
  body.bt-apex-product .pcols,
  body.bt-apex-product .pcols.wrap,
  body.bt-apex-product .ghero-grid,
  body.bt-apex-product .sec-rec .rec,
  body.bt-apex-product .sec-other-gifts .rec,
  body.bt-apex-combo #builderSection .bundle,
  body.bt-apex-combo .preset-combos-list { width: 100%; max-width: 1100px !important; margin-left: auto !important; margin-right: auto; }
  body.bt-apex-product .pcols,
  body.bt-apex-product .pcols.wrap {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px) !important;
    gap: 48px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
  body.bt-apex-product .pcol-left { min-width: 0; }
  body.bt-apex-product .pcol-right { min-width: 0; }
  body.bt-apex-product .buycard { width: 100% !important; box-sizing: border-box !important; }
  /* Back links on desktop: aligned to 1100px grid container with balanced vertical rhythm */
  body.bt-apex-shell-ready .back,
  body.bt-apex-shell-ready .crumb,
  body.bt-apex-shell-ready .bt-back-wrap {
    display: inline-flex !important;
    align-items: center;
    min-height: 24px;
    margin: 24px 0 16px var(--bt-apex-gutter) !important;
    padding: 0 !important;
    width: auto !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--muted, #525252) !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
  }
  /* Legal pages: .back is inside centered main.page (max-width 820px), so margin-left should be 0 */
  body.bt-apex-legal .back,
  body.bt-apex-legal .bt-back-link,
  body.bt-apex-shell-ready main.page .back,
  body.bt-apex-shell-ready main.page .bt-back-link {
    margin: 0 0 16px 0 !important;
  }
  body.bt-apex-shell-ready .back:hover,
  body.bt-apex-shell-ready .crumb:hover,
  body.bt-apex-shell-ready .bt-back-wrap:hover {
    color: var(--accent, #ee1b49) !important;
  }
  body.bt-apex-shell-ready .crumb a,
  body.bt-apex-shell-ready .bt-back-wrap a {
    display: inline-flex !important;
    align-items: center;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: inherit !important;
    text-decoration: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
  }
  body.bt-apex-shell-ready .crumb a:hover,
  body.bt-apex-shell-ready .bt-back-wrap a:hover {
    color: var(--accent, #ee1b49) !important;
  }

  body.bt-apex-product .ghero-grid { grid-template-columns: minmax(0, 1fr); }
  body.bt-apex-product .sec.grey.wrap > .card,
  body.bt-apex-product .sec.grey.wrap > .acc,
  body.bt-apex-product .final { max-width: 1100px !important; }
  .sec-rec h2,
  .sec-other-gifts h2,
  body.bt-apex-product .sec-rec h2,
  body.bt-apex-product .sec-other-gifts h2 { margin-bottom: 24px !important; }
  @media (min-width: 900px) {
    .sec-rec h2,
    .sec-other-gifts h2,
    body.bt-apex-product .sec-rec h2,
    body.bt-apex-product .sec-other-gifts h2 { margin-bottom: 28px !important; }
  }
  body.bt-apex-product .sec-rec .rec,
  body.bt-apex-product .sec-other-gifts .rec,
  body.bt-apex-cart .cart-reco .rec { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
  body.bt-apex-product .sec-rec .rec > *,
  body.bt-apex-product .sec-other-gifts .rec > *,
  body.bt-apex-cart .cart-reco .rec > * { min-width: 0; flex: none; width: auto; }
  body.bt-apex-product .sec-rec .rec .cov,
  body.bt-apex-product .sec-other-gifts .rec .cov,
  body.bt-apex-cart .cart-reco .rec .cov { aspect-ratio: 16/9 !important; }
  body.bt-apex-combo #btmDiscountBanner { display: none !important; }

/* Product buy-bar cart button with + */
.buy-bar .row .cart,
.buy-bar .row.empty .cart {
  display: flex !important;
}
.buy-bar .row.empty .btn {
  width: auto !important;
  flex: 1 !important;
}
.buy-bar .cart .badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  border-radius: 10px;
  background: var(--accent, #EE1B49);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  display: flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.buy-bar .cart .badge.in-cart {
  background: #2FA04E;
}

  body.bt-apex-combo .combo-hero-wrap {
    display: grid !important;
    grid-template-columns: 538px 512px;
    gap: 50px;
    align-items: center;
    padding-top: 24px !important;
    padding-bottom: 48px !important;
  }
  body.bt-apex-combo .combo-hero-wrap .art {
    order: 1;
    width: 538px;
    height: 380px;
    aspect-ratio: auto;
    margin: 0 !important;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    box-shadow: var(--shadow);
    background: #cfe0d0;
  }
  body.bt-apex-combo .combo-hero-wrap .art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body.bt-apex-combo .combo-hero-wrap .head-sec {
    order: 2;
    width: 512px;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }
  body.bt-apex-combo .combo-hero-wrap .head-sec .eyebrow {
    margin-bottom: 10px;
  }
  body.bt-apex-combo .combo-hero-wrap .head-sec h1 {
    font-size: 32px;
    line-height: 1.18;
    font-weight: 800;
    color: var(--dark, #221d16);
    letter-spacing: -0.01em;
    margin: 0 0 14px;
    text-align: left;
  }
  body.bt-apex-combo .combo-hero-wrap .head-sec .shortdesc {
    font-size: 16px;
    line-height: 1.55;
    color: var(--muted, #525252);
    margin: 0 0 24px;
    text-align: left;
  }
  body.bt-apex-combo .combo-hero-wrap .hero-btns {
    display: flex;
    flex-direction: row;
    gap: 14px;
    margin-top: 0;
    width: 100%;
    max-width: 440px;
  }
  body.bt-apex-combo .combo-hero-wrap .hero-btns .btn {
    flex: 1;
    height: 50px;
    min-height: 50px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 10px;
  }

  body.bt-apex-combo .sec-preset-combos,
  body.bt-apex-combo #builderSection { max-width: none !important; }
  body.bt-apex-combo #builderSection .bundle {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 24px 28px !important;
  }
  body.bt-apex-combo .bundle-list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px 16px !important;
    margin-top: 14px !important;
  }
  body.bt-apex-combo .bundle-list .crow {
    margin-top: 0 !important;
    height: 100% !important;
  }

  body.bt-apex-combo #descBlocks {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;
    align-items: start !important;
    max-width: 1100px !important;
    margin: 24px auto 0 !important;
  }
  body.bt-apex-combo #descBlocks .gblock {
    margin-top: 0 !important;
  }
  body.bt-apex-combo .sec.grey.wrap:has(#descBlocks) > .eyebrow,
  body.bt-apex-combo .sec.grey.wrap:has(#descBlocks) > .totrow,
  body.bt-apex-combo .totrow {
    max-width: 1100px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.bt-apex-combo #demo {
    display: grid !important;
    grid-template-columns: 538px 512px !important;
    gap: 50px !important;
    align-items: center !important;
  }
  body.bt-apex-combo #demo .demo-text {
    width: 538px !important;
    text-align: left !important;
  }
  body.bt-apex-combo #demo .demo-text .btn {
    width: auto !important;
    display: inline-flex !important;
    padding: 14px 24px !important;
  }
  body.bt-apex-combo #demo .shot {
    width: 512px !important;
    margin-top: 0 !important;
    aspect-ratio: auto !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: var(--shadow) !important;
  }
  body.bt-apex-combo #demo .shot img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  body.bt-apex-combo .final {
    max-width: none !important;
    text-align: center !important;
  }
  body.bt-apex-combo .final > * {
    max-width: 678px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  body.bt-apex-combo .final .btn {
    width: auto !important;
    display: inline-flex !important;
    padding: 14px 32px !important;
  }

  /* Favorites and cart. The cart's payment JavaScript remains unchanged;
     only the placement of its already rendered blocks changes on desktop. */
  body.bt-apex-favorites #fav-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 20px !important; }
  body.bt-apex-favorites #fav-routes .rcard { margin-top: 0; }
  body.bt-apex-favorites .rc-media { aspect-ratio: 16/9; }
  body.bt-apex-cart .wrap { max-width: none !important; }
  body.bt-apex-cart main.wrap { padding-top: 0 !important; }
  body.bt-apex-cart #cartBody { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 380px); grid-template-areas: "items summary" "upsell payment" "checkout payment"; gap: 24px 32px; align-items: start; }
  body.bt-apex-cart #cartBody > .items { grid-area: items; }
  body.bt-apex-cart #cartBody > .upsell-block { grid-area: upsell; }
  body.bt-apex-cart #cartBody > .summary { grid-area: summary; position: sticky; top: 96px; }
  body.bt-apex-cart #cartBody > .payment-section { grid-area: payment; }
  body.bt-apex-cart #cartBody > .checkout-email { grid-area: checkout; }
  body.bt-apex-cart #cartBody > .lk-preview { display: none !important; }
  body.bt-apex-cart #cartBody > .empty { grid-column: 1 / -1; }
  body.bt-apex-cart .topcta { display: none !important; }
}

@media (min-width: 900px) and (max-width: 1199px) {
  body.bt-apex-home .hero,
  body.bt-apex-home #combo,
  body.bt-apex-home #demo,
  body.bt-apex-combo .combo-hero-wrap,
  body.bt-apex-combo #demo {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 24px !important;
  }
  body.bt-apex-home .hero-banner,
  body.bt-apex-home .hero-text,
  body.bt-apex-home #combo .art,
  body.bt-apex-home #combo .combo-text,
  body.bt-apex-home #demo .demo-text,
  body.bt-apex-home #demo .shot,
  body.bt-apex-combo .combo-hero-wrap .art,
  body.bt-apex-combo .combo-hero-wrap .head-sec,
  body.bt-apex-combo #demo .demo-text,
  body.bt-apex-combo #demo .shot {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  body.bt-apex-combo .combo-hero-wrap .art {
    height: auto !important;
    aspect-ratio: 16/10 !important;
  }
  body.bt-apex-combo #demo .shot img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }
  body.bt-apex-home #routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.bt-apex-home .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.bt-apex-home #features .flist,
  body.bt-apex-home #howitworks > div[style*="margin-top"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.bt-apex-product .pcols { grid-template-columns: minmax(0, 1fr) minmax(320px, 42%); gap: 24px; }
  body.bt-apex-product .sec-rec .rec,
  body.bt-apex-cart .cart-reco .rec,
  body.bt-apex-favorites #fav-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 899px) {
  body.bt-apex-combo .combo-hero-wrap {
    display: flex !important;
    flex-direction: column !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  body.bt-apex-combo .combo-hero-wrap .art {
    margin: 8px 16px 0 !important;
    width: auto !important;
    height: auto !important;
    aspect-ratio: 304/170 !important;
  }
  body.bt-apex-combo .combo-hero-wrap .head-sec {
    padding: 20px 16px 0 !important;
    width: auto !important;
  }
  body.bt-apex-combo #demo {
    display: block !important;
  }
  body.bt-apex-combo #demo .demo-text {
    width: auto !important;
  }
  body.bt-apex-combo #demo .shot {
    width: auto !important;
    margin-top: 22px !important;
    aspect-ratio: 334/338 !important;
  }
  body.bt-apex-cart #cartBody { display: block; }
  body.bt-apex-cart #cartBody > .summary { position: static; }
}


/* back-link-rhythm-20260812: единый ритм у ссылки «назад» на всех страницах
   апекса. Правится здесь, а не в 40 файлах гидов: у каждого свой инлайновый
   .back с padding 16/4, а у страниц шелла отступа не было вовсе. Дописано в
   конец файла, чтобы не спорить с существующими правилами по специфичности. */
@media (min-width: 1024px) {
  .app > .back,
  .bt-back-link,
  .app > .bt-apex-back,
  .bt-apex-back {
    display: inline-block;
    padding-top: 24px;
    padding-bottom: 24px;
  }
}


/* nested-sec-wrap-20260812. Регрессия страницы товара.
   Правило выше даёт боковой отступ --bt-apex-gutter каждому .sec.wrap через
   !important. Оно писалось под секции верхнего уровня, но .sec.wrap встречается
   и ВНУТРИ двухколоночной сетки .pcols на 21 странице гидов. Правило на строке 52
   ловит ещё и голый .wrap, поэтому селекторы ниже покрывают оба варианта: колонка 458px
   получала padding 90px (на 1280) или 170px (на 1440), и содержимое сжималось
   до 278 и 118 пикселей соответственно. Отступ верхнего уровня вложенной
   секции не нужен: её края уже задаёт колонка. */
@media (min-width: 1024px) {
  body.bt-apex-shell-ready .pcols .wrap,
  body.bt-apex-shell-ready .pcols .sec.wrap,
  body.bt-apex-shell-ready .pcol-left .wrap,
  body.bt-apex-shell-ready .pcol-right .wrap,
  body.bt-apex-shell-ready .wrap .wrap,
  body.bt-apex-shell-ready .sec.wrap .sec.wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}


/* cart-two-step-20260812. The legacy shell grid was for the former one-page
   checkout. The new cart owns its two-column layout inside each step.
   Figma's cart background is a neutral #f4f3f1, not the site's warm
   --cream (#faf6ee) that body.bt-apex-shell-ready sets for every other
   apex page — same specificity, so this must come after it to win. */
body.bt-apex-shell-ready.bt-apex-cart { background: #fff !important; }
/* cart-bg-scope-20260812: в макете (пиксели из Figma 1428-4458) верх корзины
   БЕЛЫЙ #FFFFFF, а серым #F3F2F1 залита только полоса «Добавьте к покупке».
   Прежнее правило красило серым всю страницу. */
body.bt-apex-shell-ready.bt-apex-cart .cart-reco { background: #f3f2f1 !important; }
@media (min-width: 900px) {
  body.bt-apex-cart #cartBody { display: block !important; }
  body.bt-apex-cart #cartBody .cart-step-layout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 50px; align-items: start; }
  body.bt-apex-cart #cartBody .cart-step-side { position: sticky; top: 96px; }
}
@media (max-width: 899px) {
  body.bt-apex-cart #cartBody { display: block !important; }
  body.bt-apex-cart #cartBody .cart-step-layout { display: block; }
  body.bt-apex-cart #cartBody .cart-step-side { position: static; }
}


/* pcols-grid-20260812. Страница товара жила на своей сетке: .pcols нёс
   собственный padding 40, поэтому рабочая ширина была 1020, а не 1100, и
   колонки делились 458 + 50 + 512. Левая выглядела заметно уже правой.
   Приводим к сетке сайта: 1100 без внутреннего отступа, колонки 538 + 50 + 512,
   ровно как первый экран главной в макете. */
@media (min-width: 1024px) {
  body.bt-apex-shell-ready .pcols {
    padding-left: 0 !important;
    padding-right: 0 !important;
    /* pcols-370-20260812: ширина правой колонки задана владельцем — 370.
       Левая добирает остаток до 1100 при зазоре 50: 680 + 50 + 370. */
    grid-template-columns: 680px 370px !important;
    column-gap: 50px !important;
  }
}


/* badge-center-20260812. Цифра в бейдже уезжала влево на части страниц.
   Причина: бейджу где-то достаётся display:flex, а центрирование в правиле
   сделано через text-align + line-height, которые во flex-контейнере на
   позицию строки не влияют (align-items и justify-content там normal).
   Центрируем средствами самого flex, чтобы работало при любом display. */
.bt-shell-topbar .dnav-cart-badge {
  /* display НЕ трогаем: его выставляет apex-desktop-shell.js:165-166 инлайном
     ('none' при нуле, 'inline-flex' иначе). !important на display спрятал бы
     от JS возможность гасить пустой бейдж, и рядом с сердечком висел бы «0». */
  align-items: center !important;
  justify-content: center !important;
  padding: 0 4px !important;
  box-sizing: border-box;
}


/* cart-bottom-air-20260812. Низ корзины упирался в серую полосу «Добавьте
   к покупке» вплотную: замер дал cartBody.bottom = 954 и .cart-reco.top = 954,
   то есть ноль воздуха. Последняя карточка набора визуально сливалась с фоном
   следующей секции, а липкая правая колонка на длинном списке доезжала до этой
   же границы и выглядела «заехавшей» на серое. Добавляем воздух внизу белой
   части: и стык перестаёт быть встык, и липкой колонке есть где остановиться. */
@media (min-width: 1024px) {
  body.bt-apex-cart #cartBody { padding-bottom: 72px; }
  body.bt-apex-cart .cart-step-side { bottom: 24px; }
}


/* cart-title-row-20260812. «Поделиться» и урна улетали к правому краю всего
   контейнера 1100 и повисали над карточкой итогов. В макете они прижаты к
   правому краю ЛЕВОЙ колонки. Строка заголовка лежит вне грида (она сестра
   #cartBody), поэтому space-between растягивал её на всю ширину. Ограничиваем
   строку шириной левой колонки: 1100 − 400 (правая) − 50 (зазор). */
@media (min-width: 1024px) {
  body.bt-apex-cart .cart-title-row { max-width: calc(100% - 450px); }
}

/* --- SIDE DRAWER ENGINE --- */
.drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.drawer-panel {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 85%;
  max-width: 360px;
  background: #FFFFFF;
  z-index: 950;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  visibility: hidden;
  box-shadow: none;
  transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), visibility 0.3s;
}
.drawer-panel.open {
  transform: translateX(0);
  visibility: visible;
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
}
.drawer-header {
  height: 60px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid var(--line, #E6E4E1);
  flex: 0 0 60px;
}
.drawer-close-btn {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid var(--line, #E6E4E1);
  background: #FFF;
  color: var(--ink, #221D16);
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  line-height: 1;
}
.drawer-header .logo img {
  width: 110px;
  height: auto;
  display: block;
}
.drawer-nav-list {
  flex: 1;
  overflow-y: auto;
  padding: 0;
  margin: 0;
  -webkit-overflow-scrolling: touch;
}
.drawer-nav-item {
  display: block;
  padding: 16px 20px;
  font-size: 15.5px;
  font-weight: 600;
  color: var(--ink, #221D16);
  text-decoration: none;
  border-bottom: 1px solid var(--line, #E6E4E1);
  transition: background 0.15s ease;
}
.drawer-nav-item.sub {
  padding-left: 36px;
  font-size: 14.5px;
  color: var(--muted, #717680);
  font-weight: 500;
  background: #FAFAFA;
}
.drawer-nav-item:active {
  background: #F8F9FA;
}
.drawer-footer-inline {
  padding: 16px;
  margin-top: 8px;
}
.drawer-footer-inline .drawer-cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 50px;
  background: var(--accent, #EE1B49);
  color: #FFFFFF;
  font-weight: 700;
  font-size: 15px;
  border-radius: 10px;
  text-decoration: none;
  border: none;
  box-shadow: 0 4px 14px rgba(238, 27, 73, 0.28);
}
body.drawer-locked {
  overflow: hidden !important;
  touch-action: none;
}

/* Bottom Tab Bar (Mobile) */
.btm-nav-wrap {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
}
.btm-tab-bar {
  width: 100%;
  max-width: 100%;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid #E6E4E1;
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 8px 0 calc(env(safe-area-inset-bottom) + 8px);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
  pointer-events: auto;
}
.btm-tab-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: #717680;
  font-size: 11px;
  font-weight: 600;
  text-decoration: none;
  flex: 1;
  position: relative;
  transition: color 0.15s ease;
  cursor: pointer;
}
.btm-tab-item.active { color: #EE1B49; }
.btm-tab-icon { font-size: 20px; line-height: 1; position: relative; }
.btm-tab-badge {
  position: absolute;
  top: -4px;
  right: -10px;
  background: #EE1B49;
  color: #FFF;
  font-size: 10px;
  font-weight: 800;
  padding: 0 5px;
  height: 16px;
  min-width: 16px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(238, 27, 73, 0.4);
}
/* Pre-footer white contact strip ("BeeTravel: аудиогиды по Грузии / напишите нам") */
footer:not(.bt-legal-footer) {
  padding: 24px 16px !important;
  margin: 0 !important;
  border-top: 1px solid var(--line, #eceae7) !important;
  background: var(--white, #fff) !important;
}
.bt-legal-footer {
  margin-top: 0 !important;
}

/* Mobile Footer bottom paddings accounting for sticky bottom bars */
@media (max-width: 899px) {
  /* Default mobile with standard 4-tab bar (Favorites, Legal pages, etc.) */
  .bt-legal-footer {
    padding-bottom: calc(84px + env(safe-area-inset-bottom)) !important;
  }

  /* Main page: Discount banner (~44px) + Tab bar (56px) */
  body.bt-apex-home .bt-legal-footer {
    padding-bottom: calc(124px + env(safe-area-inset-bottom)) !important;
  }

  /* Audio guide & Combo pages: Buy bar (~68px) + Tab bar (56px) */
  body.bt-apex-product .bt-legal-footer,
  body.bt-apex-combo .bt-legal-footer {
    padding-bottom: calc(148px + env(safe-area-inset-bottom)) !important;
  }

  /* Cart page: Sticky checkout bar (~72px) + Tab bar (56px) */
  body.bt-apex-cart .bt-legal-footer,
  body.bt-apex-cart {
    padding-bottom: calc(148px + env(safe-area-inset-bottom)) !important;
  }
}

@media (min-width: 900px) {
  .btm-nav-wrap { display: none !important; }
  .bt-legal-footer {
    padding-bottom: 28px !important;
  }
}



/* EXACT COMPACT STYLE FOR 'ПО ОТДЕЛЬНОСТИ' / 'IF BOUGHT SEPARATELY' */
.price-sep-cap,
.crow .price-sep-cap,
.bundle-list .crow .price-sep-cap,
.buycard .bc-old-caption,
.buycard .price-sep-cap,
.qc-price-cap {
  font-size: 10px !important;
  color: var(--muted, #717680) !important;
  font-weight: 600 !important;
  text-transform: lowercase !important;
  line-height: 1 !important;
  margin: 1px 0 !important;
  display: block !important;
}

/* Protect dark footer styling from page-level overrides */
.bt-legal-footer {
  color: #f7f6f4 !important;
}
.bt-legal-footer p,
.bt-legal-footer li,
.bt-legal-footer span,
.bt-legal-footer .bt-legal-footer__value {
  color: #f7f6f4 !important;
}
.bt-legal-footer .bt-legal-footer__label {
  color: #c9c8c4 !important;
}
.bt-legal-footer a {
  color: #fff !important;
}
.bt-legal-footer a.bt-legal-footer__contact {
  color: #fff !important;
}
.bt-legal-footer a.bt-legal-footer__contact:hover,
.bt-legal-footer a.bt-legal-footer__contact:focus {
  color: #a8a69f !important;
}
