/* ==========================================================
   ONEBIO v1.4 hardening
   - mobile menu and small-screen layout fixes
   - single product alignment / sale badge / trust badges
   - safe overflow guards for Elementor and WooCommerce pages
========================================================== */
.no-onebio-announcement { --announcement-height: 0px; }

@media (max-width: 1120px) {
  body.menu-open { overflow: hidden !important; overscroll-behavior: none; touch-action: none; }
  .site-header.is-menu-open {
    z-index: 220;
    top: 0;
    height: 70px;
    border-bottom-color: rgba(255,255,255,.1);
    background: #080908;
    color: #fff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .site-header.is-menu-open .brand-logo__mark img { filter: brightness(0) invert(1); }
  .site-header.is-menu-open .site-action { color: #fff; }
  .site-header.is-menu-open .site-header__inner { z-index: 230; }
  .mobile-menu {
    visibility: hidden;
    z-index: 210;
    inset: 0;
    width: 100%;
    height: 100dvh;
    min-height: 100dvh;
    padding: calc(82px + env(safe-area-inset-top)) 0 calc(20px + env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #080908;
    opacity: 0;
    transform: translateY(-8px);
  }
  .mobile-menu.is-open { visibility: visible; opacity: 1; transform: none; }
  .mobile-menu__inner {
    display: flex;
    width: min(calc(100% - 32px), 680px);
    min-height: calc(100dvh - 112px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin-inline: auto;
    padding: 0;
    flex-direction: column;
  }
  .mobile-menu__label {
    margin: 0 0 12px;
    font-size: .66rem;
    line-height: 1.2;
    letter-spacing: .18em;
  }
  .mobile-menu nav { display: flex; width: 100%; flex-direction: column; }
  .mobile-menu nav a {
    display: grid !important;
    width: 100%;
    min-width: 0;
    min-height: 0;
    grid-template-columns: 32px minmax(0,1fr);
    align-items: center;
    gap: 10px;
    padding: 11px 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.12);
    font-family: var(--font-heading) !important;
    font-size: clamp(1.65rem, 6vw, 2.55rem) !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    letter-spacing: -.04em !important;
    white-space: normal;
  }
  .mobile-menu nav a > span {
    align-self: center;
    font-family: var(--font-body);
    font-size: .61rem !important;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .12em;
  }
  .mobile-menu nav a > strong {
    display: block;
    min-width: 0;
    font: inherit;
    overflow-wrap: anywhere;
  }
  .mobile-menu__footer {
    display: grid;
    gap: 5px;
    margin-top: auto;
    padding: 18px 0 2px;
    font-size: .56rem;
    line-height: 1.45;
    letter-spacing: .08em;
  }
}

@media (max-width: 700px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  body { min-width: 0; }
  .container { width: calc(100% - 32px); max-width: none; }
  main, section, article, aside, header, footer, nav, form,
  .elementor, .elementor-section, .elementor-container, .elementor-widget-wrap,
  .elementor-widget-container, .onebio-elementor-page { min-width: 0; max-width: 100%; }
  img, video, iframe, svg { max-width: 100%; }
  input, select, textarea, button { max-width: 100%; }
  .inner-hero__content, .about-hero__content, .policy-document, .split-copy,
  .form-panel, .inquiry-form, .community-form { min-width: 0; }
  .inner-hero h1, .about-hero h1, .policy-hero h1,
  .section-heading h2, .split-copy h2, .form-panel h2, .inner-cta h2 {
    overflow-wrap: anywhere;
    text-wrap: balance;
  }
  .button { max-width: 100%; }
  .site-footer__grid { gap: 34px 22px; }
}

@media (max-width: 480px) {
  .container { width: calc(100% - 28px); }
  .announcement-bar__inner { gap: 10px; }
  .announcement-bar p { max-width: 52%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .site-actions { gap: 10px; }
  .site-action--cart b { top: -8px; right: -7px; }
  .mobile-menu { padding-top: calc(74px + env(safe-area-inset-top)); }
  .mobile-menu__inner { width: calc(100% - 28px); }
  .mobile-menu nav a { grid-template-columns: 28px minmax(0,1fr); padding: 10px 0 !important; font-size: clamp(1.5rem, 8.2vw, 2.05rem) !important; }
  .mobile-menu nav a > span { font-size: .56rem !important; }
  .mobile-menu__footer { padding-top: 14px; }
}

/* ---------- Single product desktop alignment ---------- */
body.single-product .onebio-commerce-container > .woocommerce { min-width: 0; }
body.single-product .woocommerce div.product {
  position: relative;
  grid-template-columns: minmax(0,1.04fr) minmax(360px,.86fr);
  align-items: start !important;
}
body.single-product .woocommerce div.product > .images,
body.single-product .woocommerce div.product > .summary {
  align-self: start;
  grid-row: 1 !important;
  margin-top: 0 !important;
}
body.single-product .woocommerce div.product > .images { grid-column: 1 !important; }
body.single-product .woocommerce div.product > .summary { grid-column: 2 !important; }
body.single-product .woocommerce div.product > span.onsale {
  position: absolute !important;
  z-index: 8 !important;
  top: 16px !important;
  right: auto !important;
  left: 16px !important;
  margin: 0 !important;
  transform: none !important;
}
body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__wrapper { position: relative; }
body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__trigger { z-index: 7; }
body.single-product .woocommerce div.product div.images { top: 104px; }
body.single-product .woocommerce div.product .summary::before { margin-top: 0; }

/* Product assurances belong to the right information column. Short icon + heading only. */
.onebio-trust-badges--product {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 9px;
  margin: 22px 0 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--border-light);
}
.onebio-trust-badges--product .onebio-trust-badge {
  display: grid;
  min-width: 0;
  grid-template-columns: 30px minmax(0,1fr);
  align-items: center;
  gap: 9px;
  padding: 11px 10px;
  border: 1px solid var(--border-light);
  border-radius: 9px;
  background: var(--color-white);
}
.onebio-trust-badges--product .onebio-trust-badge__icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--color-green-soft);
  color: var(--color-green-deep);
}
.onebio-trust-badges--product .onebio-trust-badge__icon svg { width: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.55; }
.onebio-trust-badges--product .onebio-trust-badge strong { display: block; font-size: .62rem; line-height: 1.3; letter-spacing: .035em; text-transform: uppercase; }
.onebio-trust-badges--product .onebio-trust-badge p { display: none !important; }

/* Never let WooCommerce zoom cursor/transform survive on the product gallery. */
body.single-product .woocommerce-product-gallery,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image a,
body.single-product .woocommerce-product-gallery__image img { cursor: default !important; }
body.single-product .zoomImg { display: none !important; opacity: 0 !important; pointer-events: none !important; }

@media (max-width: 980px) {
  body.single-product .woocommerce div.product { grid-template-columns: 1fr !important; gap: 28px !important; }
  body.single-product .woocommerce div.product > .images,
  body.single-product .woocommerce div.product > .summary { grid-column: 1 !important; grid-row: auto !important; }
  body.single-product .woocommerce div.product div.images { position: relative; top: auto; }
  body.single-product .woocommerce div.product > span.onsale { top: 14px !important; left: 14px !important; }
  .onebio-trust-badges--product { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}

@media (max-width: 620px) {
  body.onebio-commerce-page .onebio-commerce-main { padding-top: 34px; }
  body.onebio-commerce-page .woocommerce .woocommerce-breadcrumb { margin-bottom: 20px; font-size: .58rem; line-height: 1.45; }
  body.single-product .woocommerce div.product { gap: 24px !important; }
  body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__image a { min-height: 0; aspect-ratio: 1 / 1.02; padding: 24px 12px; }
  body.single-product .woocommerce div.product div.images img { width: 88% !important; max-height: 430px; }
  body.single-product .woocommerce div.product .summary::before { margin-bottom: 12px; font-size: .58rem; letter-spacing: .13em; }
  body.single-product .woocommerce div.product .product_title { margin-bottom: 13px; font-size: clamp(2.2rem,12vw,3.2rem); }
  body.single-product .woocommerce div.product p.price { margin-bottom: 18px; }
  body.single-product .woocommerce div.product form.cart { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 10px; margin: 22px 0; padding: 18px 0; }
  body.single-product .woocommerce div.product form.cart .variations,
  body.single-product .woocommerce div.product form.cart .single_variation_wrap { grid-column: 1 / -1; }
  body.single-product .woocommerce .quantity .qty { width: 100%; }
  body.single-product .woocommerce div.product form.cart .button { width: 100%; min-width: 0; padding-inline: 16px !important; }
  .onebio-trust-badges--product { grid-template-columns: 1fr !important; gap: 7px; margin-top: 16px; padding-top: 16px; }
  .onebio-trust-badges--product .onebio-trust-badge { grid-template-columns: 28px minmax(0,1fr); padding: 9px 10px; }
  .onebio-trust-badges--product .onebio-trust-badge__icon { width: 28px; height: 28px; }

  /* WooCommerce mobile structures: no accidental desktop widths. */
  body.woocommerce-cart .onebio-commerce-container > .woocommerce,
  body.woocommerce-account .onebio-commerce-container > .woocommerce,
  body.woocommerce-checkout form.checkout,
  body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
  body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 22px !important;
  }
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content,
  body.woocommerce-checkout form.checkout #customer_details,
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    grid-column: 1 !important;
    position: static !important;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul { border-radius: 8px; }
  body.woocommerce-account .woocommerce-MyAccount-navigation a { padding: 12px 13px; font-size: .66rem; }
  body.woocommerce-account .woocommerce-MyAccount-content { padding: 18px 15px; }
  body.woocommerce-checkout form.checkout #order_review { padding: 17px; }
  body.woocommerce-cart table.shop_table { font-size: .76rem; }
  body.woocommerce-cart .cart-collaterals .cart_totals { padding-top: 4px; }
}

@media (max-width: 1120px) {
  .mobile-menu__search { display: grid; grid-template-columns: minmax(0,1fr) 42px; gap: 8px; margin: 0 0 10px; }
  .mobile-menu__search input[type="search"] { width: 100%; min-width: 0; height: 42px; padding: 0 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; outline: none; background: rgba(255,255,255,.04); color: #fff; font-size: .78rem; }
  .mobile-menu__search input[type="search"]::placeholder { color: #8d928b; }
  .mobile-menu__search button { display: grid; width: 42px; height: 42px; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: transparent; color: #fff; }
  .mobile-menu__search button svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
}
