/* ==========================================================================
   Bharati CJ Repair 2.1.2-owner2 — consolidated owner correction.
   Parent (immutable): Customer Journey 2.1.0-rc1 + bharati theme + rc2.4 lineage.
   Presentation-only. No theme file is edited; no catalog/order/payment rule changes.
   Supersedes the 2.1.0-rc2.4 stylesheet at the same path.
   ========================================================================== */

/* Existing locale CSS already requests these two Noto families. Bundle only the
   missing Indic subsets so Bengali/Odia remain legible on Linux kiosks and
   other devices without system Indic fonts; Android/iOS/Windows keep their
   normal platform fallbacks. Fonts are SIL OFL 1.1 (fonts/OFL.txt). */
@font-face {
  font-family: 'Noto Sans Bengali';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('./fonts/NotoSansBengali-400-800.woff2') format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1, U+11DF0-11DF1;
}
@font-face {
  font-family: 'Noto Sans Oriya';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('./fonts/NotoSansOriya-400-800.woff2') format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0B01-0B77, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC;
}

/* --------------------------------------------------------------------------
   R1 — Mobile header composition (Part 2)
   One intentional compact header on CJ routes: [hamburger] [logo] ... [search].
   Hamburger sits FIRST (left), 44px touch target; logo fixed proportion;
   search stays reachable but never dominates; elements cannot collide at
   360/390/430px because the row is a controlled flex, not a squeezed desktop
   nav. Desktop (>=1024) keeps the full bhcj-desktop-nav and no hamburger.
   -------------------------------------------------------------------------- */
@media (max-width: 1023.98px) {
  .bhcj-appbar-inner {
    min-height: 60px;
    padding: 8px 12px;
    gap: 10px;
    justify-content: flex-start;
  }
  .bhcj-appbar-inner .bhcj-hamburger { order: -1; margin-left: 0; margin-right: 2px; }
  .bhcj-appbar-inner .bhcj-brand { flex: 0 1 auto; min-width: 0; }
  .bhcj-appbar-inner .bhcj-brand img { width: 96px; height: auto; max-height: 36px; object-fit: contain; }
  .bhcj-appbar-inner .bhcj-appbar-action {
    margin-left: auto;
    min-width: 44px; min-height: 44px;
    flex: 0 0 auto;
  }
}
@media (max-width: 374.98px) {
  .bhcj-appbar-inner .bhcj-brand img { width: 88px; }
}
.bhcj-hamburger {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 0; background: transparent;
  cursor: pointer; border-radius: 12px; flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
.bhcj-hamburger:hover { background: rgba(0,0,0,.04); }
.bhcj-hamburger:focus-visible { outline: 3px solid #117b87; outline-offset: 2px; }
.bhcj-hamburger svg { width: 24px; height: 24px; display: block; }
@media (min-width: 1024px) {
  .bhcj-hamburger { display: none; }
  .bhcj-menu-sheet, .bhcj-menu-sheet-backdrop { display: none !important; }
}
@media (max-width: 1023.98px) {
  .bhcj-desktop-nav { display: none !important; }
}

/* Theme-owned homepage header menu button: give it the same clear, intentional
   size as the CJ hamburger so the two headers feel like one product. */
[data-bh-menu-btn] {
  height: 44px !important; width: 44px !important;
  place-items: center;
}
[data-bh-menu-btn] svg { height: 22px !important; width: 22px !important; }

/* Homepage desktop header: preserve the theme's real controls and destinations,
   but reserve enough geometry for each owner at the 1024px desktop boundary.
   The prior 56px side padding consumed 112px exactly when the full nav first
   appeared, leaving the logo, All Products and language control touching. */
#bh-nav [data-bh-nav-item],
#bh-nav .bh-l10n__btn { white-space: nowrap; }
#bh-nav nav [data-bh-nav-item] {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
#bh-nav > div > div:last-child > a[data-bh-nav-item] {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
#bh-nav button:focus-visible,
#bh-nav a:focus-visible {
  outline: 3px solid #f0c46a;
  outline-offset: 3px;
  border-radius: 8px;
}
@media (min-width: 1024px) and (max-width: 1199.98px) {
  #bh-nav > div {
    max-width: none !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    gap: 16px !important;
    justify-content: flex-start !important;
  }
  #bh-nav > div > button:first-child {
    flex: 0 0 110px;
    min-width: 110px;
  }
  #bh-nav > div > button:first-child .bh-logo-wrap {
    width: 110px;
    overflow: visible;
  }
  #bh-nav > div > button:first-child .bh-logo-wrap img {
    max-width: 110px;
  }
  #bh-nav > div > nav {
    flex: 0 0 auto;
    gap: 20px !important;
  }
  #bh-nav > div > div:last-child {
    flex: 0 0 auto;
    margin-left: auto;
  }
  #bh-nav .bh-l10n__btn {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  #bh-nav [data-bh-cart-open] {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* --------------------------------------------------------------------------
   R2 — Hamburger menu sheet (single shared sheet for CJ routes)
   -------------------------------------------------------------------------- */
.bhcj-menu-sheet {
  position: fixed; inset: 0 0 0 auto;
  width: min(86vw, 360px); z-index: 250;
  background: var(--bh-paper, #fffefa);
  box-shadow: -12px 0 40px rgba(41,51,48,.18);
  transform: translateX(100%);
  transition: transform .22s cubic-bezier(.4,0,.2,1);
  display: flex; flex-direction: column;
  padding: max(env(safe-area-inset-top), 16px) 0 max(env(safe-area-inset-bottom), 16px);
  overflow-y: auto;
}
.bhcj-menu-sheet[data-open="true"] { transform: translateX(0); }
.bhcj-menu-sheet-backdrop {
  position: fixed; inset: 0; z-index: 249;
  background: rgba(41,51,48,.45);
  opacity: 0; visibility: hidden;
  transition: opacity .22s ease, visibility .22s;
}
.bhcj-menu-sheet-backdrop[data-open="true"] { opacity: 1; visibility: visible; }
.bhcj-menu-sheet header {
  padding: 8px 20px 16px; border-bottom: 1px solid rgba(41,51,48,.08);
  display: flex; align-items: center; justify-content: space-between;
}
.bhcj-menu-sheet header strong { font-size: 15px; letter-spacing: .04em; }
.bhcj-menu-sheet nav { padding: 8px 12px; display: flex; flex-direction: column; gap: 2px; }
.bhcj-menu-sheet nav a {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 12px; border-radius: 12px;
  color: inherit; text-decoration: none; font-weight: 600; font-size: 16px;
  min-height: 48px;
}
.bhcj-menu-sheet nav a:hover, .bhcj-menu-sheet nav a:focus-visible { background: rgba(0,0,0,.04); }
.bhcj-menu-sheet nav a svg { width: 22px; height: 22px; flex-shrink: 0; opacity: .8; }
.bhcj-menu-sheet footer { margin-top: auto; padding: 16px 20px; font-size: 12px; opacity: .55; }
@media (prefers-reduced-motion: reduce) {
  .bhcj-menu-sheet, .bhcj-menu-sheet-backdrop { transition: none; }
}

/* Hide WhatsApp and install affordances while the menu sheet is open. */
body.bhcj-menu-open #bh-wa, body.bhcj-menu-open #bh-install-entry { display: none !important; }
body:has(#bhcj-menu-sheet[data-open="true"]) #bh-wa { display: none !important; }

/* --------------------------------------------------------------------------
   R3 — Fixed Bahiragora service-area label (Part 3)
   Replaces the city-picker styled "DELIVER TO / Choose delivery address ⌄".
   Now a truthful, static label — no dropdown affordance, no picker behaviour.
   -------------------------------------------------------------------------- */
.bhcj-location,
span.bhcj-location.bhcj-location-fixed {
  max-width: 1240px; margin: auto; padding: 8px 16px 10px;
  display: flex; gap: 8px; align-items: center;
  color: var(--bhcj-ink, #203a33); font-size: 14px;
  min-height: 0;
  cursor: default;
}
.bhcj-location-fixed:hover { text-decoration: none; }
.bhcj-location-fixed svg { flex: 0 0 auto; opacity: .85; }
.bhcj-location-fixed > span:nth-child(2) { min-width: 0; }
.bhcj-location-fixed strong { display: block; font-size: 13px; }
.bhcj-location-fixed small {
  display: block; font-size: 10px; letter-spacing: .1em;
  color: var(--bhcj-muted, #53665f);
}
/* The dropdown chevron is gone by construction; hide it defensively too. */
.bhcj-location > span[aria-hidden]:last-child { display: none !important; }

/* --------------------------------------------------------------------------
   R4 — Original navigation ownership
   No dock selectors live in this child stylesheet. The retained server markup,
   Tailwind classes and mobile/dock.js exclusively own labels, icons, geometry,
   active state and badge presentation: Home / Explore / Wishlist / Bag / Profile.
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   R5 — Add-to-Cart button stability (Part 5)
   The card-action JS swaps icon SVG + label text on state change. Fixed metrics
   make every state occupy the identical box: no baseline drift, no vertical
   movement, no font-weight jump, spinner inside a reserved 20px slot.
   -------------------------------------------------------------------------- */
.bh-atc, a.bh-atc, button.bh-atc {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; min-height: 44px; line-height: 14px;
  font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden;
}
.bh-atc .bh-atc-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; flex-shrink: 0; line-height: 0;
}
.bh-atc .bh-atc-icon svg { width: 20px; height: 20px; display: block; }
.bh-atc .bh-atc-label { display: inline-block; white-space: nowrap; line-height: 14px; vertical-align: middle; }
.bh-atc-spin { animation: bhcj-spin .8s linear infinite; }
@keyframes bhcj-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .bh-atc-spin { animation: none; } }

/* --------------------------------------------------------------------------
   R6 — Mobile cart: professional native-WooCommerce presentation
   Three separate 44px controls [ − ] [ quantity ] [ + ]; all quantity and
   totals updates still submit through the native WooCommerce cart form.
   -------------------------------------------------------------------------- */
.bhcj-stepper {
  display: inline-flex; align-items: center; gap: 7px;
  border: 0; border-radius: 0; overflow: visible; background: transparent;
}
.bhcj-stepper-btn,
.bhcj-stepper-value {
  width: 44px; height: 44px; min-width: 44px;
  border: 1px solid #9eb3aa; border-radius: 11px;
  background: #fffefa; color: #203a33;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 2px rgba(32,58,51,.06);
}
.bhcj-stepper-btn {
  padding: 0; cursor: pointer; font: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: background-color .12s ease, border-color .12s ease, transform .12s ease;
}
.bhcj-stepper-btn > span { display: block; font-size: 24px; font-weight: 500; line-height: 1; transform: translateY(-1px); }
.bhcj-stepper-btn:hover:not(:disabled) { background: #eef6f1; border-color: #176e5c; }
.bhcj-stepper-btn:active:not(:disabled) { transform: scale(.96); }
.bhcj-stepper-btn:focus-visible { outline: 3px solid #117b87; outline-offset: 2px; }
.bhcj-stepper-btn:disabled { opacity: .55; cursor: not-allowed; background: #f2f3ef; }
.bhcj-stepper-value { background: #fff; border-color: #758f83; }
.bhcj-stepper-value input {
  width: 40px !important; height: 42px; margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-radius: 10px !important; background: transparent !important;
  color: #203a33 !important; text-align: center; font-weight: 750; font-size: 16px;
  line-height: 42px; box-shadow: none !important; -moz-appearance: textfield;
}
.bhcj-stepper-value input::-webkit-outer-spin-button,
.bhcj-stepper-value input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bhcj-stepper[data-busy="true"] { opacity: .7; }
.bhcj-stepper[data-busy="true"] .bhcj-stepper-btn { pointer-events: none; }

/* Theme bag sheet retains its own native controls, only enlarged for touch. */
[data-bh-bag-qty] { height: 40px !important; width: 40px !important; }
[data-bh-bag-qty] svg { height: 16px !important; width: 16px !important; stroke-width: 2; }

/* Keep the service-area versus Woo destination distinction explicit at every
   tested width. Baharagora is the store service-area label; Woo's destination
   remains customer/package state and is only confirmed from the existing
   checkout address. No address or serviceability value is written here. */
.bhcj-ui--cart .woocommerce-shipping-destination {
  margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid #e1e6e2;
  color: #53665f; font-size: 13px; line-height: 1.45;
}
.bhcj-ui--cart .woocommerce-shipping-destination::before {
  content: "Cart delivery estimate"; display: block; margin-bottom: 3px;
  color: #203a33; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
}
.bhcj-ui--cart .woocommerce-shipping-destination::after {
  content: "Exact address is confirmed at checkout."; display: block; margin-top: 4px;
}

@media (max-width: 767px) {
  .bhcj-ui--cart .bhcj-cart-items { gap: 16px; }
  .bhcj-ui--cart .bhcj-cart-item {
    grid-template-columns: 88px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 15px 16px; align-items: start;
    padding: 18px; border-radius: 18px;
    box-shadow: 0 7px 20px rgba(32,58,51,.055);
  }
  .bhcj-ui--cart .bhcj-cart-item .product-thumbnail {
    grid-column: 1; grid-row: 1; align-self: start;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-thumbnail img {
    width: 88px; height: 100px; padding: 6px;
    object-fit: contain; border-radius: 13px; background: #f6f7f1;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-name {
    grid-column: 2; grid-row: 1; min-width: 0; align-self: center;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-name h2 {
    margin: 0; font-size: 17px; line-height: 1.28; font-weight: 750;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-price {
    margin: 8px 0 0; font-size: 17px; line-height: 1.3; color: #176e5c;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-price small { color: #53665f; font-size: 13px; font-weight: 600; }
  .bhcj-ui--cart .bhcj-cart-item .product-quantity {
    grid-column: 1 / -1; grid-row: 2;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    min-width: 0;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-quantity > label {
    margin: 0; font-size: 13px; line-height: 1.35; font-weight: 750; color: #53665f;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-subtotal {
    grid-column: 1; grid-row: 3; align-self: center;
    display: flex; flex-direction: column; gap: 3px; text-align: left;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-subtotal small {
    font-size: 11px; line-height: 1.2; color: #65756e;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-subtotal strong {
    font-size: 18px; line-height: 1.25; color: #203a33;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-remove {
    grid-column: 2; grid-row: 3; justify-self: end; align-self: center;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-remove a {
    min-height: 44px; padding: 0 13px; border: 1px solid #d9e1dc;
    border-radius: 11px; background: #fffefa; color: #8a3b34;
    font-size: 13px; font-weight: 700; text-decoration: none;
  }
  .bhcj-ui--cart .bhcj-cart-item .product-remove a:hover,
  .bhcj-ui--cart .bhcj-cart-item .product-remove a:focus-visible { border-color: #b45b52; background: #fdf3f2; }

  .bhcj-ui--cart .bhcj-cart-actions {
    margin-top: 18px; padding: 18px; border-radius: 18px;
    box-shadow: 0 7px 20px rgba(32,58,51,.045);
  }
  .bhcj-ui--cart .bhcj-cart-actions .coupon > label {
    display: block; margin: 0 0 10px; font-size: 16px; font-weight: 750;
  }
  .bhcj-ui--cart .bhcj-coupon-row { gap: 10px; }
  .bhcj-ui--cart .bhcj-coupon-row input,
  .bhcj-ui--cart .bhcj-coupon-row button,
  .bhcj-ui--cart .bhcj-cart-actions > [name="update_cart"] {
    min-height: 48px; border-radius: 11px; font-size: 14px;
  }
  .bhcj-ui--cart .bhcj-cart-actions > [name="update_cart"] { margin-top: 12px; }
  .bhcj-ui--cart .bhcj-cart-actions > [name="update_cart"]:disabled {
    opacity: .65; color: #53665f; background: #eef1ed; border-color: #d7ded9;
  }

  .bhcj-ui--cart .cart_totals {
    margin: 22px 0 0; padding: 20px; border-radius: 18px;
    box-shadow: 0 7px 20px rgba(32,58,51,.055);
  }
  .bhcj-ui--cart .cart_totals > h2 { margin: 0 0 14px; font-size: 22px; line-height: 1.25; }
  .bhcj-ui--cart .cart_totals table { width: 100%; border-collapse: collapse; }
  .bhcj-ui--cart .cart_totals table :is(th, td) { padding-top: 14px; padding-bottom: 14px; vertical-align: top; }
  .bhcj-ui--cart .cart_totals table th { width: 38%; padding-right: 12px; font-weight: 700; }
  .bhcj-ui--cart .cart_totals .order-total :is(th, td) { font-size: 20px; color: #203a33; }
  .bhcj-ui--cart .wc-proceed-to-checkout { margin-top: 18px; }
  .bhcj-ui--cart .checkout-button { min-height: 54px; border-radius: 12px; font-size: 16px; font-weight: 750; }
}
@media (max-width: 390px) {
  .bhcj-ui--cart .bhcj-coupon-row { grid-template-columns: minmax(0,1fr); }
  .bhcj-ui--cart .bhcj-coupon-row button { width: 100%; }
}

/* --------------------------------------------------------------------------
   R7 — Branded first-visit welcome / mobile bottom sheet
   Language writes stay with BharatiLocale; installation stays with the retained
   BharatiInstall implementation. This presentation is deliberately isolated
   from checkout, account, payment, OTP and password routes in repair.js.
   -------------------------------------------------------------------------- */
#bh-welcome-dialog {
  --bhw-paper: #fffefa;
  --bhw-ink: #203a33;
  --bhw-muted: #52665e;
  --bhw-line: #dce5df;
  --bhw-green: #176e5c;
  --bhw-green-dark: #105548;
  width: min(94vw, 820px);
  max-width: 820px;
  max-height: min(90dvh, 720px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--bhw-line);
  border-radius: 26px;
  background: var(--bhw-paper);
  color: var(--bhw-ink);
  box-shadow: 0 28px 90px rgba(20, 38, 30, .32);
  overflow: hidden;
}
#bh-welcome-dialog::backdrop {
  background: rgba(18, 34, 29, .62);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
#bh-welcome-dialog .bhw-shell {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  max-height: min(90dvh, 720px);
  overflow: auto;
  font-family: inherit;
}
#bh-welcome-dialog .bhw-brand {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 530px;
  padding: 26px 28px 25px;
  background:
    radial-gradient(circle at 110% -5%, rgba(222, 166, 82, .28), transparent 38%),
    linear-gradient(155deg, #f9eee2 0%, #f3e4d4 58%, #eaf3ec 100%);
  overflow: hidden;
}
#bh-welcome-dialog .bhw-brand::after {
  content: "";
  position: absolute;
  right: -78px;
  bottom: -86px;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(23, 110, 92, .16);
  border-radius: 50%;
  box-shadow: 0 0 0 30px rgba(255,255,255,.16), 0 0 0 60px rgba(255,255,255,.1);
  pointer-events: none;
}
#bh-welcome-dialog .bhw-brandbar {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  gap: 16px;
}
#bh-welcome-dialog .bhw-logo-slot {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  font-weight: 800;
  color: var(--bhw-ink);
}
#bh-welcome-dialog .bhw-logo-slot img {
  display: block;
  width: 128px;
  height: 42px;
  object-fit: contain;
  object-position: left center;
}
#bh-welcome-dialog .bhw-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(32, 58, 51, .17);
  border-radius: 50%;
  background: rgba(255, 254, 250, .7);
  color: var(--bhw-ink);
  cursor: pointer;
}
#bh-welcome-dialog .bhw-close svg { display: block; }
#bh-welcome-dialog .bhw-welcome-copy {
  position: relative;
  z-index: 1;
  margin: auto 0;
  padding: 46px 0 38px;
}
#bh-welcome-dialog .bhw-eyebrow {
  display: inline-flex;
  margin-bottom: 15px;
  color: var(--bhw-green);
  font-size: 10px;
  line-height: 1.35;
  font-weight: 850;
  letter-spacing: .13em;
}
#bh-welcome-dialog h2 {
  margin: 0;
  max-width: 330px;
  color: var(--bhw-ink);
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.03;
  letter-spacing: -.035em;
  font-weight: 650;
  outline: none;
}
#bh-welcome-dialog #bhw-description {
  margin: 19px 0 0;
  max-width: 350px;
  color: var(--bhw-muted);
  font-size: 14px;
  line-height: 1.62;
}
#bh-welcome-dialog .bhw-brand-note {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  max-width: 310px;
  color: #38534a;
  font-size: 11.5px;
  line-height: 1.45;
}
#bh-welcome-dialog .bhw-brand-note > span:first-child {
  display: inline-grid;
  place-items: center;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--bhw-green);
  color: #fff;
  font-size: 11px;
}
#bh-welcome-dialog .bhw-controls {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 34px 34px 27px;
  background: var(--bhw-paper);
}
#bh-welcome-dialog .bhw-language {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
#bh-welcome-dialog .bhw-language legend {
  padding: 0;
  color: var(--bhw-ink);
  font-size: 20px;
  line-height: 1.25;
  font-weight: 780;
}
#bh-welcome-dialog .bhw-hint {
  margin: 7px 0 16px;
  color: var(--bhw-muted);
  font-size: 12.5px;
  line-height: 1.45;
}
#bh-welcome-dialog .bhw-language-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
#bh-welcome-dialog .bhw-language-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  min-height: 54px;
  padding: 0 15px;
  border: 1px solid var(--bhw-line);
  border-radius: 13px;
  background: #fff;
  color: var(--bhw-ink);
  font: inherit;
  font-size: 14px;
  font-weight: 720;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
#bh-welcome-dialog .bhw-language-button:hover { border-color: #86aa9e; background: #f7fbf8; }
#bh-welcome-dialog .bhw-language-button[aria-checked="true"] {
  border-color: var(--bhw-green);
  background: #f0f8f4;
  box-shadow: inset 0 0 0 1px var(--bhw-green);
}
#bh-welcome-dialog .bhw-radio {
  position: relative;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  border: 1.5px solid #8ba198;
  border-radius: 50%;
  background: #fff;
}
#bh-welcome-dialog .bhw-language-button[aria-checked="true"] .bhw-radio { border-color: var(--bhw-green); }
#bh-welcome-dialog .bhw-language-button[aria-checked="true"] .bhw-radio::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: var(--bhw-green);
}
#bh-welcome-dialog .bhw-language-status {
  min-height: 19px;
  margin: 9px 2px 7px;
  color: var(--bhw-green-dark);
  font-size: 11.5px;
  line-height: 1.45;
}
#bh-welcome-dialog .bhw-install {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 69px;
  padding: 11px 13px;
  border: 1px solid #c9d9d1;
  border-radius: 14px;
  background: #f5faf7;
  color: var(--bhw-ink);
  text-align: left;
  cursor: pointer;
}
#bh-welcome-dialog .bhw-install > svg:first-child { color: var(--bhw-green); }
#bh-welcome-dialog .bhw-install > svg:last-child { color: #698078; }
#bh-welcome-dialog .bhw-install span { min-width: 0; }
#bh-welcome-dialog .bhw-install strong,
#bh-welcome-dialog .bhw-install small { display: block; }
#bh-welcome-dialog .bhw-install strong { font-size: 14px; line-height: 1.3; }
#bh-welcome-dialog .bhw-install small { margin-top: 3px; color: var(--bhw-muted); font-size: 10.5px; line-height: 1.35; font-weight: 500; }
#bh-welcome-dialog .bhw-install:hover { border-color: #81a99b; background: #edf7f1; }
#bh-welcome-dialog .bhw-installed {
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: #eff8f3;
  color: var(--bhw-green-dark);
  font-size: 12px;
  line-height: 1.4;
}
#bh-welcome-dialog .bhw-actions {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: 10px;
  margin-top: 17px;
}
#bh-welcome-dialog .bhw-actions button {
  min-height: 50px;
  padding: 0 14px;
  border-radius: 13px;
  font: inherit;
  font-size: 13px;
  font-weight: 780;
  cursor: pointer;
}
#bh-welcome-dialog .bhw-skip {
  border: 1px solid var(--bhw-line);
  background: #fff;
  color: #4b625a;
}
#bh-welcome-dialog .bhw-continue {
  border: 1px solid var(--bhw-green);
  background: var(--bhw-green);
  color: #fff;
  box-shadow: 0 9px 20px rgba(23, 110, 92, .18);
}
#bh-welcome-dialog .bhw-continue:hover { background: var(--bhw-green-dark); }
#bh-welcome-dialog .bhw-privacy {
  margin: auto 3px 0;
  padding-top: 15px;
  color: #5b6d66;
  font-size: 10.2px;
  line-height: 1.45;
  text-align: center;
}
#bh-welcome-dialog button:focus-visible {
  outline: 3px solid #117b87;
  outline-offset: 2px;
}
body.bhcj-welcome-open #bh-wa,
body.bhcj-welcome-open #bh-back-to-top {
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 767.98px) {
  #bh-welcome-dialog {
    inset: auto 0 0;
    width: min(100%, 560px);
    max-width: 560px;
    max-height: calc(100dvh - 8px);
    margin: 0 auto;
    border-radius: 24px 24px 0 0;
    border-bottom: 0;
  }
  #bh-welcome-dialog .bhw-shell {
    display: block;
    max-height: calc(100dvh - 8px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  #bh-welcome-dialog .bhw-brand {
    min-height: 0;
    padding: 17px 18px 20px;
  }
  #bh-welcome-dialog .bhw-brand::after {
    right: -96px;
    bottom: -116px;
    width: 205px;
    height: 205px;
  }
  #bh-welcome-dialog .bhw-brandbar { min-height: 44px; }
  #bh-welcome-dialog .bhw-logo-slot img { width: 108px; height: 36px; }
  #bh-welcome-dialog .bhw-welcome-copy { margin: 0; padding: 22px 0 2px; }
  #bh-welcome-dialog .bhw-eyebrow { margin-bottom: 9px; font-size: 9px; }
  #bh-welcome-dialog h2 { max-width: 350px; font-size: clamp(28px, 8vw, 34px); line-height: 1.06; }
  #bh-welcome-dialog #bhw-description { margin-top: 10px; max-width: 390px; font-size: 12.2px; line-height: 1.52; }
  #bh-welcome-dialog .bhw-brand-note { display: none; }
  #bh-welcome-dialog .bhw-controls {
    padding: 20px 18px calc(17px + env(safe-area-inset-bottom, 0px));
  }
  #bh-welcome-dialog .bhw-language legend { font-size: 17px; }
  #bh-welcome-dialog .bhw-hint { margin: 5px 0 12px; font-size: 11.5px; }
  #bh-welcome-dialog .bhw-language-grid { gap: 8px; }
  #bh-welcome-dialog .bhw-language-button { min-height: 49px; padding: 0 12px; font-size: 13px; border-radius: 12px; }
  #bh-welcome-dialog .bhw-language-status { margin-top: 7px; margin-bottom: 5px; }
  #bh-welcome-dialog .bhw-install { min-height: 62px; }
  #bh-welcome-dialog .bhw-actions { margin-top: 13px; }
  #bh-welcome-dialog .bhw-actions button { min-height: 48px; padding: 0 10px; font-size: 12px; }
  #bh-welcome-dialog .bhw-privacy { padding-top: 11px; }
}
@media (max-width: 374.98px) {
  #bh-welcome-dialog .bhw-brand { padding-left: 15px; padding-right: 15px; }
  #bh-welcome-dialog .bhw-controls { padding-left: 15px; padding-right: 15px; }
  #bh-welcome-dialog .bhw-language-button { font-size: 12.5px; }
}
@media (prefers-reduced-motion: reduce) {
  #bh-welcome-dialog *, #bh-welcome-dialog *::before, #bh-welcome-dialog *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* --------------------------------------------------------------------------
   R8 — Add to Home Screen: complete modal / bottom sheet only
   The rejected clipped floating banner is never rendered. The retained install
   module owns beforeinstallprompt, userChoice, appinstalled, iOS instructions,
   cooldown and standalone detection; this child CSS owns presentation only.
   -------------------------------------------------------------------------- */
#bh-install-entry { display: none !important; }
#bh-install-dialog {
  --bi-paper: #fffefa; --bi-ink: #203a33; --bi-muted: #53665f;
  --bi-line: #dfe5df; --bi-green: #176e5c; --bi-hover: #115848;
  width: min(92vw, 560px); max-height: min(88dvh, 760px);
  padding: 0; border: 1px solid var(--bi-line); border-radius: 24px;
  background: var(--bi-paper); color: var(--bi-ink);
  box-shadow: 0 28px 80px rgba(20,38,30,.30); overflow: hidden;
}
#bh-install-dialog::backdrop { background: rgba(19,35,30,.58); backdrop-filter: blur(3px); }
#bh-install-dialog .bi-scroll { max-height: min(88dvh,760px); padding: 0 24px 22px; overflow-y: auto; }
#bh-install-dialog .bi-brandbar {
  min-height: 70px; padding: 13px 0; gap: 11px; background: var(--bi-paper);
  border-bottom: 1px solid var(--bi-line);
}
#bh-install-dialog .bi-logo { width: 108px; height: 38px; object-fit: contain; }
#bh-install-dialog .bi-descriptor { max-width: 175px; font-size: 12px; line-height: 1.35; }
#bh-install-dialog .bi-close { width: 44px; height: 44px; border-color: var(--bi-line); }
#bh-install-dialog .bi-hero {
  display: block; min-height: 0; margin-top: 18px; padding: 22px;
  border-radius: 18px; background: linear-gradient(145deg,#fff1e7,#f6eee5);
  overflow: hidden;
}
#bh-install-dialog .bi-hero::before { width: 210px; height: 210px; right: -95px; top: -105px; }
#bh-install-dialog .bi-art { display: none; }
#bh-install-dialog .bi-kicker { margin: 0 0 9px; font-size: 10px; letter-spacing: .12em; color: #176e5c; }
#bh-install-dialog .bi-title {
  margin: 0; max-width: 470px; font-family: var(--font-display,Georgia),serif;
  font-size: clamp(27px, 6.5vw, 36px); line-height: 1.08; letter-spacing: -.025em;
  font-weight: 650; color: var(--bi-ink);
}
#bh-install-dialog .bi-description { max-width: 460px; margin: 13px 0 0; font-size: 14px; line-height: 1.55; }
#bh-install-dialog .bi-benefits { gap: 8px; padding: 16px 0; }
#bh-install-dialog .bi-benefits li { justify-content: flex-start; font-size: 12px; }
#bh-install-dialog .bi-language { margin: 17px 0 14px; }
#bh-install-dialog .bi-chips { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
#bh-install-dialog .bi-chip { min-height: 48px; border-radius: 11px; }
#bh-install-dialog .bi-chip[lang="hi"] { font-family: 'Noto Sans Devanagari', 'Nirmala UI', 'Mangal', sans-serif; }
#bh-install-dialog .bi-chip[lang="bn"] { font-family: 'Noto Sans Bengali', 'Nirmala UI', sans-serif; }
#bh-install-dialog .bi-chip[lang="or"] { font-family: 'Noto Sans Oriya', 'Nirmala UI', sans-serif; }
#bh-install-dialog .bi-help { margin-top: 8px; border-radius: 12px; }
#bh-install-dialog .bi-actions { gap: 5px; }
#bh-install-dialog .bi-primary { min-height: 52px; border-radius: 13px; font-size: 15px; }
#bh-install-dialog .bi-secondary { min-height: 46px; }
#bh-install-dialog .bi-note { margin-bottom: 0; }
#bh-install-dialog button:focus-visible { outline: 3px solid #117b87; outline-offset: 2px; }
body:has(#bh-install-dialog[open]) #bh-wa,
body:has(#bh-install-dialog[open]) #bh-back-to-top {
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 767px) {
  #bh-install-dialog {
    inset: auto 0 0; width: min(100%,560px); max-height: calc(100dvh - 10px);
    margin: 0 auto; border-radius: 24px 24px 0 0; border-bottom: 0;
  }
  #bh-install-dialog .bi-scroll {
    max-height: calc(100dvh - 10px); padding: 0 18px calc(15px + env(safe-area-inset-bottom,0px));
  }
  #bh-install-dialog .bi-brandbar { min-height: 64px; padding: 10px 0; }
  #bh-install-dialog .bi-logo { width: 96px; height: 34px; }
  #bh-install-dialog .bi-descriptor { max-width: 125px; font-size: 10.5px; padding-left: 8px; }
  #bh-install-dialog .bi-hero { margin-top: 14px; padding: 19px 17px; border-radius: 16px; }
  #bh-install-dialog .bi-title { font-size: clamp(26px,7.4vw,31px); }
  #bh-install-dialog .bi-description { font-size: 13px; }
  #bh-install-dialog .bi-benefits { grid-template-columns: 1fr; gap: 7px; padding: 13px 2px; }
  #bh-install-dialog .bi-benefits li { justify-content: flex-start; font-size: 11px; }
  #bh-install-dialog .bi-language { margin: 13px 0 11px; }
  #bh-install-dialog .bi-language legend { margin-bottom: 8px; }
  #bh-install-dialog .bi-chip { min-height: 46px; }
}

/* --------------------------------------------------------------------------
   R9 — Coordinated WhatsApp + Move-to-Top stack
   WhatsApp remains the theme-owned link with its original destination, message,
   icon and click behavior. The theme back-to-top remains on the homepage; the
   child creates one equivalent control only where the theme omitted it. The two
   rectangles are center-aligned with a 20px visual/shadow gap at every width.
   -------------------------------------------------------------------------- */
#bh-wa {
  top: auto !important;
  left: auto !important;
  right: max(16px, env(safe-area-inset-right, 0px)) !important;
  bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
  transform: none !important;
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  cursor: pointer;
  touch-action: manipulation;
  transition: box-shadow .16s ease, border-color .16s ease, opacity .16s ease !important;
}
#bh-wa .bh-wa-tip {
  top: 50% !important;
  right: 68px !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  white-space: nowrap;
}
#bh-back-to-top {
  position: fixed !important;
  z-index: 70 !important;
  top: auto !important;
  left: auto !important;
  right: calc(max(16px, env(safe-area-inset-right, 0px)) + 4px) !important;
  bottom: calc(164px + env(safe-area-inset-bottom, 0px)) !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.32) !important;
  border-radius: 50% !important;
  background: #203a33 !important;
  color: #fffefa !important;
  box-shadow: 0 8px 20px rgba(20, 38, 30, .24) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(7px) !important;
  cursor: pointer;
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease, box-shadow .18s ease !important;
}
#bh-back-to-top.bh-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}
#bh-back-to-top:hover { background: #176e5c !important; box-shadow: 0 10px 24px rgba(20, 38, 30, .30) !important; }
#bh-back-to-top:focus-visible {
  outline: 3px solid #117b87 !important;
  outline-offset: 3px !important;
}
#bh-back-to-top svg { display: block; width: 20px; height: 20px; }

@media (min-width: 768px) {
  #bh-wa {
    right: 24px !important;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important;
  }
  #bh-back-to-top {
    right: 28px !important;
    bottom: calc(100px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

#bh-wa.bhcj-float-clearance,
#bh-back-to-top.bhcj-float-clearance {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.bhcj-menu-open #bh-back-to-top,
body:has(#bhcj-menu-sheet[data-open="true"]) #bh-back-to-top {
  visibility: hidden !important;
  pointer-events: none !important;
}
@media (prefers-reduced-motion: reduce) {
  #bh-wa, #bh-back-to-top { transition: none !important; scroll-behavior: auto !important; }
}

/* --------------------------------------------------------------------------
   R9 — Shared visibility guards
   -------------------------------------------------------------------------- */
[hidden] { display: none !important; }

/* Owner candidate geometry lock: presentation.css applies a generic 48px button
   minimum. The cart stepper's three peers are intentionally identical 44px
   squares, so the group reads as [ − ] [ 1 ] [ + ] rather than a capsule. */
.bhcj-ui--cart .bhcj-stepper-btn,
.bhcj-ui--cart .bhcj-stepper-value {
  width: 44px !important; min-width: 44px !important; max-width: 44px !important;
  height: 44px !important; min-height: 44px !important; max-height: 44px !important;
  border-radius: 11px !important; box-sizing: border-box;
}
