/* BSBO mobile conversion improvements v0.2.0 */
@media (max-width: 767px) {
    .bsbo-mobile-header {
        background: #fff;
        border-bottom: 1px solid #e5e5e5;
        position: relative;
        z-index: 1000;
    }

    .bsbo-mobile-header__top {
        min-height: 68px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 8px 15px;
    }

    .bsbo-mobile-header__logo {
        min-width: 0;
        flex: 1 1 auto;
    }

    #header .bsbo-mobile-header__logo .custom-logo {
        float: none;
        display: block;
        width: auto;
        max-width: 190px;
        max-height: 52px;
        padding: 0;
        background: #fff;
        object-fit: contain;
    }

    .bsbo-mobile-header__actions {
        display: flex;
        flex: 0 0 auto;
        align-items: center;
        gap: 6px;
    }

    .bsbo-mobile-action {
        position: relative;
        width: 46px;
        height: 46px;
        border: 0;
        border-radius: 4px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: #f4f6f8;
        color: #406da4;
        padding: 0;
        text-decoration: none;
        cursor: pointer;
    }

    .bsbo-mobile-action:hover,
    .bsbo-mobile-action:focus {
        color: #31577f;
        text-decoration: none;
        outline: 2px solid currentColor;
        outline-offset: 2px;
    }

    .bsbo-mobile-cart .fa {
        font-size: 25px;
    }

    .bsbo-mobile-cart__count {
        position: absolute;
        top: 3px;
        right: 3px;
        min-width: 19px;
        height: 19px;
        padding: 0 4px;
        border-radius: 10px;
        background: #406da4;
        color: #fff;
        font-size: 11px;
        font-weight: 700;
        line-height: 19px;
        text-align: center;
    }

    .bsbo-mobile-menu-toggle {
        flex-direction: column;
        gap: 5px;
    }

    .bsbo-mobile-menu-toggle span {
        display: block;
        width: 24px;
        height: 2px;
        background: currentColor;
    }

    .bsbo-mobile-search {
        margin: 0;
        padding: 0 15px 10px;
        display: flex;
        width: 100%;
    }

    .bsbo-mobile-search input[type="search"] {
        min-width: 0;
        flex: 1 1 auto;
        height: 44px;
        margin: 0;
        border: 1px solid #b8c0c8;
        border-right: 0;
        border-radius: 4px 0 0 4px;
        padding: 0 12px;
        font-size: 16px;
        background: #fff;
    }

    .bsbo-mobile-search button {
        flex: 0 0 48px;
        height: 44px;
        margin: 0;
        border: 1px solid #406da4;
        border-radius: 0 4px 4px 0;
        background: #406da4;
        color: #fff;
        font-size: 18px;
    }

    .bsbo-mobile-trust {
        background: #406da4;
        color: #fff;
        padding: 6px 15px;
        text-align: center;
        font-size: 12px;
        line-height: 1.35;
        font-weight: 600;
    }

    .bsbo-mobile-menu {
        position: fixed;
        inset: 0;
        z-index: 9999999;
        visibility: hidden;
        pointer-events: none;
    }

    .bsbo-mobile-menu.is-open {
        visibility: visible;
        pointer-events: auto;
    }

    .bsbo-mobile-menu__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,.45);
        opacity: 0;
        transition: opacity .2s ease;
    }

    .bsbo-mobile-menu.is-open .bsbo-mobile-menu__backdrop {
        opacity: 1;
    }

    .bsbo-mobile-menu__panel {
        position: absolute;
        top: 0;
        right: 0;
        width: min(88vw, 360px);
        height: 100%;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: #fff;
        transform: translateX(100%);
        transition: transform .22s ease;
        box-shadow: -4px 0 20px rgba(0,0,0,.18);
    }

    .bsbo-mobile-menu.is-open .bsbo-mobile-menu__panel {
        transform: translateX(0);
    }

    .bsbo-mobile-menu__heading {
        min-height: 64px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px 16px;
        border-bottom: 1px solid #e5e5e5;
        color: #333;
        font-size: 20px;
    }

    .bsbo-mobile-menu__close {
        width: 44px;
        height: 44px;
        border: 0;
        background: transparent;
        color: #406da4;
        font-size: 34px;
        line-height: 1;
    }

    .bsbo-mobile-menu__nav .bsbo-mobile-menu__list,
    .bsbo-mobile-menu__nav .sub-menu {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .bsbo-mobile-menu__nav .menu-item {
        position: relative;
        border-bottom: 1px solid #ececec;
        padding: 0;
        float: none;
        text-align: left;
    }

    .bsbo-mobile-menu__nav .menu-item > a {
        display: block;
        min-height: 50px;
        padding: 14px 58px 14px 16px;
        color: #333;
        font-size: 16px;
        font-weight: 700;
        line-height: 22px;
        text-transform: none;
        float: none;
    }

    .bsbo-mobile-menu__nav .menu-item > a:hover,
    .bsbo-mobile-menu__nav .menu-item > a:focus {
        color: #406da4;
        background: #f6f8fa;
        text-decoration: none;
    }

    .bsbo-submenu-toggle {
        position: absolute;
        top: 4px;
        right: 6px;
        width: 44px;
        height: 44px;
        border: 0;
        background: transparent;
        color: #406da4;
        font-size: 18px;
    }

    .bsbo-submenu-toggle::before {
        content: "\f078";
        font-family: FontAwesome;
    }

    .bsbo-submenu-toggle[aria-expanded="true"]::before {
        content: "\f077";
    }

    .bsbo-mobile-menu__nav .sub-menu {
        display: none;
        background: #f6f8fa;
        border-top: 1px solid #ececec;
    }

    .bsbo-mobile-menu__nav .menu-item.is-submenu-open > .sub-menu {
        display: block;
    }

    .bsbo-mobile-menu__nav .sub-menu .menu-item > a {
        padding-left: 30px;
        font-size: 15px;
        font-weight: 600;
    }

    .bsbo-mobile-menu__utilities {
        padding: 14px 16px 28px;
    }

    .bsbo-mobile-menu__utilities a {
        display: block;
        padding: 11px 0;
        color: #406da4;
        font-size: 15px;
        font-weight: 700;
    }

    body.bsbo-menu-open {
        overflow: hidden;
        touch-action: none;
    }
}

/* BSBO mobile catalogue controls v0.3.0 */
@media (max-width: 767px) {
    .bsbo-mobile-catalogue-tools {
        margin: 0 0 18px;
        padding: 0;
    }

    .bsbo-mobile-catalogue-tools .woocommerce-result-count {
        display: block !important;
        float: none;
        margin: 0 0 10px;
        color: #555;
        font-size: 14px;
        line-height: 1.4;
    }

    .bsbo-mobile-catalogue-tools__buttons {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .bsbo-mobile-filter-toggle,
    .bsbo-mobile-sort .woocommerce-ordering select {
        width: 100%;
        min-height: 46px;
        border: 1px solid #406da4;
        border-radius: 4px;
        background: #fff;
        color: #31577f;
        font-size: 14px;
        font-weight: 700;
    }

    .bsbo-mobile-filter-toggle {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 8px 10px;
    }

    .bsbo-mobile-filter-count {
        min-width: 20px;
        height: 20px;
        padding: 0 6px;
        border-radius: 10px;
        background: #406da4;
        color: #fff;
        font-size: 11px;
        line-height: 20px;
        text-align: center;
    }

    .bsbo-mobile-sort .woocommerce-ordering {
        display: block !important;
        float: none;
        margin: 0;
        width: 100%;
    }

    .bsbo-mobile-sort .woocommerce-ordering select {
        margin: 0;
        padding: 0 32px 0 10px;
        text-transform: none;
    }

    .bsbo-mobile-active-filters {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 7px;
        margin-top: 10px;
    }

    .bsbo-mobile-filter-chip {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        min-height: 34px;
        padding: 6px 10px;
        border-radius: 17px;
        background: #eef3f8;
        color: #31577f;
        font-size: 13px;
        font-weight: 700;
        text-decoration: none;
    }

    .bsbo-mobile-clear-filters {
        padding: 6px 2px;
        color: #555;
        font-size: 13px;
        text-decoration: underline;
    }

    .bsbo-mobile-filters {
        position: fixed;
        inset: 0;
        z-index: 9999999;
        visibility: hidden;
        pointer-events: none;
    }

    .bsbo-mobile-filters.is-open {
        visibility: visible;
        pointer-events: auto;
    }

    .bsbo-mobile-filters__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,.45);
        opacity: 0;
        transition: opacity .2s ease;
    }

    .bsbo-mobile-filters.is-open .bsbo-mobile-filters__backdrop {
        opacity: 1;
    }

    .bsbo-mobile-filters__panel {
        position: absolute;
        top: 0;
        right: 0;
        display: flex;
        flex-direction: column;
        width: min(92vw, 390px);
        height: 100%;
        background: #fff;
        transform: translateX(100%);
        transition: transform .22s ease;
        box-shadow: -4px 0 20px rgba(0,0,0,.18);
    }

    .bsbo-mobile-filters.is-open .bsbo-mobile-filters__panel {
        transform: translateX(0);
    }

    .bsbo-mobile-filters__heading {
        min-height: 64px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex: 0 0 auto;
        padding: 10px 16px;
        border-bottom: 1px solid #e5e5e5;
        color: #333;
        font-size: 20px;
    }

    .bsbo-mobile-filters__close {
        width: 44px;
        height: 44px;
        border: 0;
        background: transparent;
        color: #406da4;
        font-size: 34px;
        line-height: 1;
    }

    .bsbo-mobile-filters__content {
        flex: 1 1 auto;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0 16px 18px;
    }

    .bsbo-mobile-filter-group {
        margin: 0;
        padding: 15px 0;
        border-bottom: 1px solid #e8e8e8;
    }

    .bsbo-mobile-filter-group__title {
        margin: 0 0 10px;
        color: #333;
        font-size: 16px;
        line-height: 1.3;
    }

    .bsbo-mobile-filter-group ul,
    .bsbo-mobile-filter-group .woocommerce-widget-layered-nav-list {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .bsbo-mobile-filter-group li,
    .bsbo-mobile-filter-group .woocommerce-widget-layered-nav-list__item {
        margin: 0;
        padding: 0;
        border: 0;
    }

    .bsbo-mobile-filter-group li a {
        display: block;
        min-height: 42px;
        padding: 10px 8px;
        border-radius: 3px;
        color: #333;
        font-size: 15px;
        line-height: 22px;
    }

    .bsbo-mobile-filter-group li.chosen a,
    .bsbo-mobile-filter-group li a:hover,
    .bsbo-mobile-filter-group li a:focus {
        background: #eef3f8;
        color: #31577f;
        text-decoration: none;
    }

    .bsbo-mobile-filter-group .count {
        color: #777;
        font-size: 12px;
    }

    .bsbo-mobile-filters__footer {
        flex: 0 0 auto;
        display: flex;
        gap: 10px;
        padding: 12px 16px;
        border-top: 1px solid #e5e5e5;
        background: #fff;
    }

    .bsbo-mobile-filters__clear,
    .bsbo-mobile-filters__show {
        min-height: 46px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 1 1 0;
        border-radius: 4px;
        padding: 8px 12px;
        font-size: 14px;
        font-weight: 700;
        text-align: center;
    }

    .bsbo-mobile-filters__clear {
        border: 1px solid #b8c0c8;
        background: #fff;
        color: #444;
    }

    .bsbo-mobile-filters__show {
        border: 1px solid #406da4;
        background: #406da4;
        color: #fff;
    }

    body.bsbo-filter-open {
        overflow: hidden;
        touch-action: none;
    }
}

/* BSBO richer mobile product filters v0.3.2 */
@media (max-width: 767px) {
    .bsbo-mobile-filter-form {
        display: flex;
        min-height: 0;
        flex: 1 1 auto;
        flex-direction: column;
    }

    .bsbo-mobile-filter-select,
    .bsbo-mobile-filter-input {
        width: 100%;
        min-height: 46px;
        margin: 0;
        border: 1px solid #b8c0c8;
        border-radius: 4px;
        background: #fff;
        color: #333;
        padding: 8px 10px;
        font-size: 16px;
        line-height: 1.3;
    }

    .bsbo-mobile-filter-options {
        display: grid;
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .bsbo-mobile-filter-options--compact {
        grid-template-columns: 1fr 1fr;
    }

    .bsbo-mobile-filter-option {
        display: flex;
        align-items: center;
        gap: 10px;
        min-height: 44px;
        margin: 0;
        padding: 8px 10px;
        border: 1px solid #e1e5e9;
        border-radius: 4px;
        background: #fff;
        color: #333;
        font-size: 15px;
        font-weight: 600;
        cursor: pointer;
    }

    .bsbo-mobile-filter-option input {
        width: 20px;
        height: 20px;
        margin: 0;
        flex: 0 0 auto;
    }

    .bsbo-mobile-filter-option:has(input:checked) {
        border-color: #406da4;
        background: #eef3f8;
        color: #31577f;
    }

    .bsbo-mobile-filter-help {
        margin: 7px 0 0;
        color: #666;
        font-size: 12px;
        line-height: 1.45;
    }

    .bsbo-mobile-filter-group fieldset,
    fieldset.bsbo-mobile-filter-group {
        min-width: 0;
    }

    legend.bsbo-mobile-filter-group__title {
        width: auto;
        border: 0;
        padding: 0;
    }
}

/* Measurement selector and deduplicated blade widths v0.3.4 */
@media (max-width: 767px) {
    .bsbo-mobile-unit-group {
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .bsbo-mobile-unit-toggle {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .bsbo-mobile-unit-toggle__button {
        min-height: 44px;
        margin: 0;
        border: 1px solid #b8c0c8;
        border-radius: 4px;
        background: #fff;
        color: #444;
        padding: 8px 10px;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.25;
    }

    .bsbo-mobile-unit-toggle__button.is-active {
        border-color: #406da4;
        background: #406da4;
        color: #fff;
    }

    .bsbo-mobile-unit-toggle__button:focus {
        outline: 2px solid #406da4;
        outline-offset: 2px;
    }
}

/* BSBO 0.4.0: reduce non-shopping content before product results on mobile. */
@media (max-width: 767px) {
  .bsbo-commerce-content {
    padding-top: 0;
  }

  .woocommerce-products-header {
    margin-bottom: 12px;
  }

  .woocommerce-products-header .page-title {
    margin-top: 20px;
    margin-bottom: 14px;
  }

  body.tax-product_cat .term-description,
  body.post-type-archive-product .page-description {
    position: relative;
  }

  body.tax-product_cat .term-description.bsbo-description-collapsible,
  body.post-type-archive-product .page-description.bsbo-description-collapsible {
    max-height: 150px;
    overflow: hidden;
  }

  body.tax-product_cat .term-description.bsbo-description-collapsible:after,
  body.post-type-archive-product .page-description.bsbo-description-collapsible:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 52px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 85%);
  }

  body.tax-product_cat .term-description.bsbo-description-expanded,
  body.post-type-archive-product .page-description.bsbo-description-expanded {
    max-height: none;
  }

  body.tax-product_cat .term-description.bsbo-description-expanded:after,
  body.post-type-archive-product .page-description.bsbo-description-expanded:after {
    display: none;
  }

  .bsbo-description-toggle {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 7px 0;
    margin: 0 0 12px;
    border: 0;
    background: transparent;
    color: #3f70aa;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
  }

  .bsbo-conversion-page .page-header {
    margin-top: 15px;
  }
}


/* BSBO 0.4.2: trust-bar wrapping, cleaner archive-description fade and
 * less non-shopping space at the top of the mobile homepage. */
@media (max-width: 767px) {
  .bsbo-mobile-trust {
    white-space: normal;
    line-height: 1.35;
    padding-left: 10px;
    padding-right: 10px;
  }

  body.tax-product_cat .term-description.bsbo-description-collapsible:after,
  body.post-type-archive-product .page-description.bsbo-description-collapsible:after {
    height: 72px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.96) 58%, #fff 78%);
  }

  body.home #slider-wrap {
    display: none !important;
  }

  body.home .content-strip {
    padding-top: 18px;
    padding-bottom: 24px;
  }

  body.home .content-strip .page-header {
    margin-top: 0;
    margin-bottom: 16px;
  }

  body.home .content-strip .page-header h1 {
    margin-top: 0;
  }
}

/* BSBO 0.4.3: keep the mobile homepage focused on product discovery. */
@media (max-width: 767px) {
    body.home .bsbo-home-intro {
        position: relative;
        max-height: 220px;
        overflow: hidden;
    }

    body.home .bsbo-home-intro::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 54px;
        pointer-events: none;
        background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 82%);
    }

    body.home .bsbo-home-intro.bsbo-home-intro--expanded {
        max-height: none;
        overflow: visible;
    }

    body.home .bsbo-home-intro.bsbo-home-intro--expanded::after {
        display: none;
    }

    body.home .bsbo-home-intro-toggle {
        appearance: none;
        border: 0;
        background: transparent;
        color: #406da4;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.4;
        padding: 8px 0 4px;
        text-decoration: underline;
        cursor: pointer;
    }

    body.home .bsbo-home-intro-toggle:focus {
        outline: 2px solid #406da4;
        outline-offset: 2px;
    }

    body.home .bsbo-home-intro-wrap {
        margin-bottom: 14px;
    }

    body.home .content-strip:first-of-type {
        padding-top: 12px;
        padding-bottom: 18px;
    }

    body.home .content-strip:first-of-type .page-header {
        margin-bottom: 10px;
    }

    body.home .content-strip:first-of-type .page-header h1 {
        margin-top: 0;
        margin-bottom: 10px;
    }
}

/* BSBO 0.4.4: move the existing homepage montage above the intro on mobile. */
.bsbo-home-montage-mobile {
    display: none;
}

@media (max-width: 767px) {
    body.home .bsbo-home-montage-mobile {
        display: block;
        width: 100%;
        overflow: hidden;
        background: #f5f5f5;
        aspect-ratio: 16 / 9;
    }

    body.home .bsbo-home-montage-mobile__image {
        display: block;
        width: 100%;
        height: 100% !important;
        max-width: none;
        object-fit: cover;
        object-position: center;
    }

    body.home .bsbo-home-montage-original {
        display: none !important;
    }

    body.home .content-strip:first-of-type {
        padding-top: 14px;
    }
}


/* BSBO mobile homepage header order v0.4.5 */
@media (max-width: 767px) {
    #header .bsbo-mobile-header {
        display: flex;
        flex-direction: column;
    }

    #header .bsbo-mobile-trust {
        order: 1;
    }

    #header .bsbo-home-montage-mobile {
        order: 2;
        width: 100%;
        margin: 0;
        overflow: hidden;
        background: #f3f3f3;
    }

    #header .bsbo-home-montage-mobile__image {
        display: block;
        width: 100%;
        height: auto;
        max-height: 330px;
        object-fit: cover;
        margin: 0;
    }

    #header .bsbo-mobile-header__top {
        order: 3;
        margin-top: 0;
    }

    #header .bsbo-mobile-search {
        order: 4;
    }

    body.home #main,
    body.page-template-template-homepage #main {
        padding-top: 0;
    }
}


/* BSBO 0.4.6: homepage full-bleed hero with floating logo/menu controls. */
@media (max-width: 767px) {
    body.home #header .bsbo-mobile-header--home,
    body.page-template-template-homepage #header .bsbo-mobile-header--home {
        overflow: visible;
        border-bottom: 0;
    }

    body.home #header .bsbo-mobile-header--home .bsbo-mobile-trust,
    body.page-template-template-homepage #header .bsbo-mobile-header--home .bsbo-mobile-trust {
        position: relative;
        z-index: 5;
    }

    body.home #header .bsbo-home-mobile-hero,
    body.page-template-template-homepage #header .bsbo-home-mobile-hero {
        position: relative;
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        overflow: hidden;
        background: #f3f3f3;
    }

    body.home #header .bsbo-home-montage-mobile,
    body.page-template-template-homepage #header .bsbo-home-montage-mobile {
        width: 100vw;
        max-width: 100vw;
        margin: 0;
        aspect-ratio: auto;
        overflow: hidden;
    }

    body.home #header .bsbo-home-montage-mobile__image,
    body.page-template-template-homepage #header .bsbo-home-montage-mobile__image {
        display: block;
        width: 100vw !important;
        max-width: 100vw !important;
        height: auto !important;
        max-height: none;
        margin: 0 !important;
        object-fit: contain;
    }

    body.home #header .bsbo-mobile-header__top--overlay,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay {
        position: absolute;
        top: 12px;
        left: 0;
        right: 0;
        z-index: 6;
        min-height: 0;
        padding: 0 14px;
        align-items: flex-start;
        pointer-events: none;
    }

    body.home #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo,
    body.home #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__actions,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__actions {
        pointer-events: auto;
    }

    body.home #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo {
        flex: 0 0 auto;
        padding: 7px 9px;
        border-radius: 4px;
        background: rgba(255,255,255,.86);
        box-shadow: 0 2px 12px rgba(255,255,255,.55), 0 2px 8px rgba(0,0,0,.12);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }

    body.home #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo .custom-logo,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo .custom-logo {
        max-width: 118px;
        max-height: 46px;
        background: transparent;
    }

    body.home #header .bsbo-mobile-header__top--overlay .bsbo-mobile-menu-toggle,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-mobile-menu-toggle {
        background: rgba(255,255,255,.82);
        box-shadow: 0 2px 10px rgba(0,0,0,.12);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }

    body.home #header .bsbo-mobile-header--home > .bsbo-mobile-search,
    body.page-template-template-homepage #header .bsbo-mobile-header--home > .bsbo-mobile-search,
    body.home #header .bsbo-mobile-header--home .bsbo-mobile-cart,
    body.page-template-template-homepage #header .bsbo-mobile-header--home .bsbo-mobile-cart {
        display: none !important;
    }

    .bsbo-mobile-menu__shopping-tools {
        padding: 14px 16px 16px;
        border-bottom: 1px solid #e5e5e5;
        background: #f7f8fa;
    }

    .bsbo-mobile-menu__basket {
        min-height: 46px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 10px;
        padding: 0 13px;
        border: 1px solid #d8dee5;
        border-radius: 4px;
        background: #fff;
        color: #31577f;
        font-size: 15px;
        font-weight: 700;
        text-decoration: none;
    }

    .bsbo-mobile-menu__basket .fa {
        margin-right: 7px;
    }

    .bsbo-mobile-menu__basket-count {
        min-width: 24px;
        height: 24px;
        padding: 0 7px;
        border-radius: 12px;
        background: #406da4;
        color: #fff;
        line-height: 24px;
        text-align: center;
        font-size: 12px;
    }

    .bsbo-mobile-menu__search {
        display: flex;
        width: 100%;
        margin: 0;
    }

    .bsbo-mobile-menu__search input[type="search"] {
        min-width: 0;
        flex: 1 1 auto;
        height: 44px;
        margin: 0;
        padding: 0 12px;
        border: 1px solid #b8c0c8;
        border-right: 0;
        border-radius: 4px 0 0 4px;
        background: #fff;
        font-size: 16px;
    }

    .bsbo-mobile-menu__search button {
        flex: 0 0 48px;
        height: 44px;
        margin: 0;
        border: 1px solid #406da4;
        border-radius: 0 4px 4px 0;
        background: #406da4;
        color: #fff;
        font-size: 18px;
    }
}

/* BSBO 0.4.7: transparent logo treatment and contained menu basket count. */

/* Remove the parent theme's blue border/white box from the logo everywhere. */
#header a.custom-logo-link,
#header .custom-logo-link {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    height: auto !important;
}

#header .custom-logo {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

/* Keep the desktop logo clean while preserving its existing sizing/layout. */
@media (min-width: 768px) {
    #header .middle-wrap .custom-logo-link {
        display: inline-block !important;
        width: auto !important;
        block-size: auto !important;
    }

    #header .middle-wrap .custom-logo {
        max-width: 100%;
        object-fit: contain;
    }
}

@media (max-width: 767px) {
    /* Homepage: float the transparent artwork itself, not a white card. */
    body.home #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.home #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo .custom-logo,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-mobile-header__logo .custom-logo {
        width: auto !important;
        max-width: 122px !important;
        height: auto !important;
        max-height: 58px !important;
        filter: drop-shadow(0 1px 3px rgba(255,255,255,.95)) drop-shadow(0 2px 5px rgba(0,0,0,.18));
    }

    /* Keep ordinary mobile-page logos box-free too. */
    #header .bsbo-mobile-header__logo,
    #header .bsbo-mobile-header__logo .custom-logo-link,
    #header .bsbo-mobile-header__logo .custom-logo {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    /* Parent .totalAmount rules position counts absolutely. Reset it in this row. */
    .bsbo-mobile-menu__basket .bsbo-mobile-menu__basket-count,
    .bsbo-mobile-menu__basket .totalAmount {
        position: static !important;
        inset: auto !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
        min-width: 24px;
        width: auto !important;
        height: 24px;
        margin: 0 !important;
        padding: 0 7px !important;
        border-radius: 12px;
        background: #406da4 !important;
        color: #fff !important;
        font-size: 12px !important;
        font-weight: 700;
        line-height: 24px !important;
        text-align: center;
        transform: none !important;
    }
}

/* BSBO 0.4.8: supplied transparent logo + trust bar integrated with homepage montage. */
#header .bsbo-brand-logo {
    display: inline-block !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    line-height: 0;
}

#header .bsbo-brand-logo__image {
    display: block;
    width: auto;
    height: auto;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

@media (min-width: 768px) {
    #header .middle-wrap .bsbo-brand-logo__image {
        max-width: 100%;
        max-height: 145px;
        object-fit: contain;
    }
}

@media (max-width: 767px) {
    body.home #header .bsbo-home-mobile-hero,
    body.page-template-template-homepage #header .bsbo-home-mobile-hero {
        position: relative;
        padding-top: 0;
    }

    body.home #header .bsbo-mobile-trust--hero,
    body.page-template-template-homepage #header .bsbo-mobile-trust--hero {
        position: absolute !important;
        top: 0;
        left: 0;
        right: 0;
        z-index: 8;
        width: 100%;
        margin: 0;
    }

    body.home #header .bsbo-mobile-header__top--overlay,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay {
        top: 42px;
    }

    body.home #header .bsbo-mobile-header__top--overlay .bsbo-brand-logo__image,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay .bsbo-brand-logo__image {
        width: 126px !important;
        max-width: 126px !important;
        max-height: 64px !important;
        filter: drop-shadow(0 1px 2px rgba(255,255,255,.9)) drop-shadow(0 2px 5px rgba(0,0,0,.2));
    }

    /* Ensure the montage starts at the very top, underneath the trust bar overlay. */
    body.home #header .bsbo-home-montage-mobile,
    body.page-template-template-homepage #header .bsbo-home-montage-mobile {
        margin-top: 0 !important;
    }
}


/* 0.4.9: let the trust bar define its own height so two-line copy never crowds the hero. */
@media (max-width: 767px) {
    body.home #header .bsbo-mobile-trust--hero,
    body.page-template-template-homepage #header .bsbo-mobile-trust--hero {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        z-index: 8;
        width: 100%;
        margin: 0;
        padding: 9px 14px 10px !important;
        line-height: 1.35 !important;
        min-height: 0 !important;
    }

    body.home #header .bsbo-home-montage-mobile,
    body.page-template-template-homepage #header .bsbo-home-montage-mobile {
        position: relative;
        margin-top: 0 !important;
    }

    body.home #header .bsbo-mobile-header__top--overlay,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay {
        top: 12px !important;
    }
}

/* BSBO 0.5.0: final homepage hero spacing + desktop logo plate. */
@media (max-width: 767px) {
    body.home #header .bsbo-mobile-header__top--overlay,
    body.page-template-template-homepage #header .bsbo-mobile-header__top--overlay {
        top: 22px !important;
    }
}

@media (min-width: 768px) {
    #header .middle-wrap .bsbo-brand-logo {
        background: #fff !important;
        border: 0 !important;
        border-radius: 2px;
        padding: 10px 14px !important;
        box-shadow: 0 2px 8px rgba(0,0,0,.10) !important;
        line-height: 0;
    }

    #header .middle-wrap .bsbo-brand-logo__image {
        display: block;
        background: transparent !important;
        box-shadow: none !important;
    }
}

/* BSBO 0.6.0: mobile product-card conversion improvements. */
.woocommerce .products .bsbo-product-card,
.woocommerce-page .products .bsbo-product-card {
    margin-bottom: 22px;
}

.bsbo-product-card__inner {
    height: 100%;
    background: #fff;
    border: 1px solid #e3e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.bsbo-product-card__link {
    display: block;
    color: inherit;
    text-decoration: none !important;
}

.bsbo-product-card__image-wrap {
    position: relative;
    overflow: hidden;
    background: #f7f7f7;
    aspect-ratio: 4 / 3;
}

.bsbo-product-card__image-wrap img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: cover;
}

.bsbo-product-card__body {
    padding: 14px 14px 15px;
}

.bsbo-product-card__title {
    display: block;
    margin: 0 0 8px;
    color: #315f96;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    text-transform: uppercase;
}

.bsbo-product-card__price {
    min-height: 24px;
    margin-bottom: 12px;
    color: #333;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
}

.bsbo-product-card__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: 4px;
    background: #406da4;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}

.bsbo-product-card__link:hover .bsbo-product-card__cta,
.bsbo-product-card__link:focus .bsbo-product-card__cta {
    text-decoration: none;
    filter: brightness(.94);
}

@media (max-width: 479px) {
    .woocommerce .products .bsbo-product-card,
    .woocommerce-page .products .bsbo-product-card {
        float: none !important;
        width: 100% !important;
        clear: both !important;
    }
}

@media (min-width: 480px) and (max-width: 767px) {
    .woocommerce .products .bsbo-product-card,
    .woocommerce-page .products .bsbo-product-card {
        float: left !important;
        width: 50% !important;
        clear: none !important;
    }

    .woocommerce .products .bsbo-product-card:nth-of-type(2n+1),
    .woocommerce-page .products .bsbo-product-card:nth-of-type(2n+1) {
        clear: both !important;
    }

    .bsbo-product-card__body {
        padding: 12px;
    }

    .bsbo-product-card__title {
        font-size: 16px;
    }
}

/* BSBO 0.6.1: make blade length the visual identifier in the by-length category. */
.bsbo-product-card--length .bsbo-product-card__image-wrap {
    isolation: isolate;
}

.bsbo-length-overlay {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 2;
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: calc(100% - 24px);
    padding: 8px 11px 7px;
    border-radius: 4px;
    background: rgba(38, 78, 123, .94);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    color: #fff;
    line-height: 1.05;
    text-align: left;
}

.bsbo-length-overlay__imperial {
    display: block;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: .01em;
}

.bsbo-length-overlay__metric {
    display: block;
    margin-top: 3px;
    font-size: 14px;
    font-weight: 700;
    opacity: .94;
}

.bsbo-product-card--length .bsbo-product-card__title {
    margin-bottom: 7px;
}

@media (max-width: 479px) {
    .bsbo-length-overlay {
        left: 14px;
        bottom: 14px;
        padding: 10px 13px 9px;
    }

    .bsbo-length-overlay__imperial {
        font-size: 26px;
    }

    .bsbo-length-overlay__metric {
        font-size: 15px;
    }
}

/* BSBO mobile product page improvements v0.7.0 */
.bsbo-single-length-badge {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    margin: 0 0 12px;
    padding: 8px 12px;
    border-radius: 3px;
    background: #315f96;
    color: #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,.18);
    line-height: 1.05;
}
.bsbo-single-length-badge strong {
    font-size: 22px;
    font-weight: 800;
}
.bsbo-single-length-badge span {
    font-size: 13px;
    font-weight: 700;
}

@media (max-width: 767px) {
    .single-product .summary.entry-summary {
        padding-top: 14px !important;
    }

    .single-product .summary.entry-summary .product_title {
        margin-top: 0;
        font-size: 25px;
        line-height: 1.15;
    }

    .single-product .summary.entry-summary > .price,
    .single-product .summary.entry-summary > .price .woocommerce-Price-amount {
        font-size: 20px !important;
        line-height: 1.3;
    }

    .single-product .woocommerce-product-details__short-description {
        padding-top: 8px;
        font-size: 15px;
        line-height: 1.55;
    }

    .woocommerce div.product form.cart .variations {
        width: 100%;
        margin: 14px 0 8px;
    }

    .woocommerce div.product form.cart .variations tbody,
    .woocommerce div.product form.cart .variations tr,
    .woocommerce div.product form.cart .variations td,
    .woocommerce div.product form.cart .variations th {
        display: block;
        width: 100%;
        float: none;
    }

    .woocommerce div.product form.cart .variations tr {
        margin: 0 0 14px;
    }

    .woocommerce div.product form.cart .variations .label {
        padding: 0 0 6px;
        line-height: 1.3;
    }

    .woocommerce div.product form.cart .variations label {
        float: none;
        display: block;
        margin: 0;
        color: #222;
        font-size: 14px;
        line-height: 1.3;
    }

    .woocommerce div.product form.cart .variations .value {
        padding: 0;
    }

    .woocommerce div.product form.cart .variations select {
        float: none;
        width: 100%;
        min-width: 100%;
        max-width: 100%;
        height: 52px;
        margin: 0;
        border: 1px solid #aeb8c2;
        border-radius: 4px;
        background: #fff;
        padding: 0 38px 0 12px;
        color: #222;
        font-size: 16px;
    }

    .woocommerce div.product form.cart .reset_variations {
        display: inline-block;
        margin-top: 8px;
        font-size: 13px;
        font-weight: 700;
    }

    .woocommerce div.product .single_variation_wrap {
        margin-top: 4px;
    }

    .woocommerce div.product .woocommerce-variation-price,
    .woocommerce div.product .woocommerce-variation-availability {
        padding: 8px 0;
    }

    .woocommerce div.product .woocommerce-variation-price .price,
    .woocommerce div.product .woocommerce-variation-price .woocommerce-Price-amount {
        font-size: 22px !important;
        font-weight: 800;
    }

    .woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
        display: grid;
        grid-template-columns: 78px minmax(0,1fr);
        gap: 10px;
        align-items: stretch;
        width: 100%;
    }

    .woocommerce div.product form.cart .quantity,
    .woocommerce div.product form.cart .single_add_to_cart_button {
        float: none;
        margin: 0 !important;
    }

    .woocommerce div.product form.cart .quantity .qty {
        width: 100%;
        height: 56px;
        border: 1px solid #aeb8c2;
        border-radius: 4px;
        font-size: 16px;
    }

    .woocommerce div.product form.cart .single_add_to_cart_button,
    .woocommerce div.product form.cart button.single_add_to_cart_button.alt {
        width: 100%;
        min-height: 56px;
        height: auto;
        border-radius: 4px;
        background: #406da4;
        padding: 12px 16px;
        color: #fff;
        font-size: 16px;
        font-weight: 800;
        line-height: 1.2;
        text-transform: none;
    }

    .woocommerce div.product form.cart .single_add_to_cart_button:hover,
    .woocommerce div.product form.cart .single_add_to_cart_button:focus {
        background: #31577f;
    }

    .woocommerce table.shop_attributes,
    .woocommerce table.shop_attributes tbody,
    .woocommerce table.shop_attributes tr,
    .woocommerce table.shop_attributes th,
    .woocommerce table.shop_attributes td {
        display: block;
        width: 100%;
    }

    .woocommerce table.shop_attributes tr {
        height: auto;
        padding: 12px 0;
        border-bottom: 1px solid #e2e2e2;
    }

    .woocommerce table.shop_attributes th {
        width: 100% !important;
        padding: 0 0 3px;
        font-size: 13px;
        line-height: 1.35;
    }

    .woocommerce table.shop_attributes td {
        padding: 0;
        font-style: normal;
        line-height: 1.45;
    }

    .woocommerce table.shop_attributes td p {
        margin: 0;
        padding: 0;
    }
}

/* BSBO mobile product purchase improvements v0.7.1 */
@media (max-width: 767px) {
    .single-product .woocommerce-product-gallery,
    .single-product div.product div.images {
        position: relative;
        width: 100% !important;
        margin: 0 0 14px !important;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
        overflow: visible;
    }

    .single-product .woocommerce-product-gallery__wrapper,
    .single-product div.product div.images .woocommerce-product-gallery__wrapper {
        margin: 0 !important;
    }

    .single-product .woocommerce-product-gallery img,
    .single-product div.product div.images img {
        display: block;
        width: 100% !important;
        height: auto !important;
        border: 0 !important;
        border-radius: 12px !important;
        box-shadow: none !important;
    }

    .single-product .woocommerce-product-gallery .bsbo-single-length-badge,
    .single-product div.product div.images .bsbo-single-length-badge {
        position: absolute;
        z-index: 5;
        left: 14px;
        bottom: 14px;
        margin: 0;
        padding: 9px 12px 8px;
        border-radius: 4px;
        pointer-events: none;
    }

    .single-product .woocommerce-product-gallery .bsbo-single-length-badge strong,
    .single-product div.product div.images .bsbo-single-length-badge strong {
        font-size: 22px;
    }

    .bsbo-quick-buy {
        margin: 12px 0 18px;
    }

    .bsbo-quick-buy__open {
        display: flex;
        width: 100%;
        min-height: 58px;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 2px;
        border: 0;
        border-radius: 6px;
        background: #406da4;
        padding: 10px 16px;
        color: #fff;
        text-align: center;
        cursor: pointer;
    }

    .bsbo-quick-buy__open > span {
        font-size: 18px;
        font-weight: 800;
        line-height: 1.15;
    }

    .bsbo-quick-buy__open > small {
        font-size: 12px;
        font-weight: 600;
        opacity: .9;
    }

    .bsbo-dispatch-countdown {
        display: flex;
        justify-content: center;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 4px;
        margin-top: 8px;
        border-radius: 5px;
        background: #f3f6f9;
        padding: 8px 10px;
        color: #293b50;
        font-size: 13px;
        line-height: 1.25;
        text-align: center;
    }

    .bsbo-dispatch-countdown[hidden] { display: none !important; }
    .bsbo-dispatch-countdown strong { color: #315f96; }

    body.bsbo-quick-buy-open { overflow: hidden; }

    .bsbo-quick-buy-modal {
        position: fixed;
        z-index: 100000;
        inset: 0;
    }
    .bsbo-quick-buy-modal[hidden] { display: none !important; }

    .bsbo-quick-buy-modal__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(16, 27, 39, .58);
    }

    .bsbo-quick-buy-modal__panel {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        max-height: 90vh;
        overflow-y: auto;
        border-radius: 16px 16px 0 0;
        background: #fff;
        box-shadow: 0 -10px 35px rgba(0,0,0,.2);
    }

    .bsbo-quick-buy-modal__header {
        position: sticky;
        z-index: 3;
        top: 0;
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
        border-bottom: 1px solid #e4e7eb;
        background: #fff;
        padding: 18px 18px 14px;
    }
    .bsbo-quick-buy-modal__header h2 {
        margin: 0 0 4px;
        color: #222;
        font-size: 22px;
        line-height: 1.2;
    }
    .bsbo-quick-buy-modal__header p {
        margin: 0;
        color: #66717d;
        font-size: 13px;
        line-height: 1.4;
    }
    .bsbo-quick-buy-modal__close {
        flex: 0 0 auto;
        width: 40px;
        height: 40px;
        border: 0;
        background: transparent;
        color: #315f96;
        font-size: 32px;
        line-height: 1;
    }

    .bsbo-quick-buy-modal__body { padding: 16px 18px; }
    .bsbo-quick-buy-modal__field { margin: 0 0 15px; }
    .bsbo-quick-buy-modal__field label,
    .bsbo-quick-buy-modal__quantity > span {
        display: block;
        margin-bottom: 6px;
        color: #222;
        font-size: 14px;
        font-weight: 800;
    }
    .bsbo-quick-buy-modal__field select,
    .bsbo-quick-buy-modal__quantity input {
        width: 100%;
        height: 52px;
        border: 1px solid #aeb8c2;
        border-radius: 5px;
        background: #fff;
        padding: 0 12px;
        color: #222;
        font-size: 16px;
    }
    .bsbo-quick-buy-modal__field.is-error select { border-color: #b42318; }
    .bsbo-quick-buy-modal__quantity { display: block; margin: 2px 0 15px; }
    .bsbo-quick-buy-modal__quantity input { max-width: 110px; }

    .bsbo-quick-buy-modal__variation {
        min-height: 22px;
        color: #26384c;
        font-size: 15px;
        font-weight: 700;
    }
    .bsbo-quick-buy-modal__variation .price,
    .bsbo-quick-buy-modal__variation .woocommerce-Price-amount {
        font-size: 20px !important;
        font-weight: 800;
    }
    .bsbo-quick-buy-modal__error {
        margin: 10px 0 0;
        color: #b42318;
        font-size: 13px;
        font-weight: 700;
    }
    .bsbo-quick-buy-modal__error[hidden] { display: none !important; }

    .bsbo-quick-buy-modal__footer {
        position: sticky;
        bottom: 0;
        border-top: 1px solid #e4e7eb;
        background: #fff;
        padding: 12px 18px max(12px, env(safe-area-inset-bottom));
    }
    .bsbo-quick-buy-modal__submit {
        width: 100%;
        min-height: 56px;
        border: 0;
        border-radius: 5px;
        background: #406da4;
        color: #fff;
        font-size: 17px;
        font-weight: 800;
    }
}

@media (min-width: 768px) {
    .bsbo-quick-buy,
    .bsbo-quick-buy-modal { display: none !important; }
}


/* BSBO 0.7.2: compact mobile add-to-basket confirmation. */
@media (max-width: 767px) {
    body.single-product .woocommerce-message {
        display: none !important;
    }

    .bsbo-cart-toast {
        position: fixed;
        z-index: 100000;
        width: max-content;
        max-width: min(260px, calc(100vw - 32px));
        padding: 11px 14px;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 8px 26px rgba(0, 0, 0, .18);
        color: #25364a;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.3;
        opacity: 0;
        transform: translateY(-7px);
        pointer-events: none;
        transition: opacity .25s ease, transform .25s ease;
    }

    .bsbo-cart-toast::before {
        content: "";
        position: absolute;
        top: -8px;
        right: var(--bsbo-toast-arrow-right, 22px);
        width: 16px;
        height: 16px;
        background: #fff;
        transform: rotate(45deg);
        box-shadow: -3px -3px 8px rgba(0, 0, 0, .035);
    }

    .bsbo-cart-toast.is-visible {
        opacity: 1;
        transform: translateY(0);
    }

    .bsbo-cart-toast.is-leaving {
        opacity: 0;
        transform: translateY(-5px);
    }

    .bsbo-cart-toast__tick {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 20px;
        height: 20px;
        margin-right: 7px;
        border-radius: 50%;
        background: #4a78ad;
        color: #fff;
        font-size: 12px;
        vertical-align: -1px;
    }
}

/* BSBO 0.7.3: floating mobile purchase CTA and animated bottom sheet. */
@media (max-width: 767px) {
    .bsbo-quick-buy-float {
        position: fixed;
        z-index: 99980;
        right: 14px;
        bottom: max(12px, env(safe-area-inset-bottom));
        left: 14px;
        opacity: 0;
        transform: translateY(calc(100% + 24px));
        pointer-events: none;
        transition: opacity .24s ease, transform .3s cubic-bezier(.2,.8,.2,1);
    }

    .bsbo-quick-buy-float.is-visible {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }

    .bsbo-quick-buy-float .bsbo-quick-buy__open {
        margin: 0;
        box-shadow: 0 8px 28px rgba(20, 45, 70, .24);
    }

    .bsbo-quick-buy-modal__backdrop {
        opacity: 0;
        transition: opacity .28s ease;
    }

    .bsbo-quick-buy-modal__panel {
        transform: translateY(102%);
        transition: transform .32s cubic-bezier(.2,.8,.2,1);
        will-change: transform;
    }

    .bsbo-quick-buy-modal.is-open .bsbo-quick-buy-modal__backdrop {
        opacity: 1;
    }

    .bsbo-quick-buy-modal.is-open .bsbo-quick-buy-modal__panel {
        transform: translateY(0);
    }

    .bsbo-quick-buy-modal__close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: #f3f6f9;
        font-size: 30px;
        font-weight: 700;
        cursor: pointer;
    }

    .bsbo-quick-buy-modal__close span {
        display: block;
        margin-top: -8px;
        line-height: 1;
    }

    .bsbo-cart-toast::before {
        right: auto;
        left: var(--bsbo-toast-arrow-left, 22px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .bsbo-quick-buy-float,
    .bsbo-quick-buy-modal__backdrop,
    .bsbo-quick-buy-modal__panel,
    .bsbo-cart-toast {
        transition-duration: .01ms !important;
    }
}

/* BSBO 0.7.4: streamlined mobile purchase flow and centred minimise control. */
@media (max-width: 767px) {
    /* The quick-buy bottom sheet is now the only mobile variation purchase UI.
       Keep the WooCommerce form in the DOM for variation logic, but remove the
       duplicate visual controls from the page. */
    body.single-product form.variations_form {
        display: none !important;
    }

    .bsbo-quick-buy-modal__close {
        position: relative;
        width: 42px;
        min-width: 42px;
        height: 42px;
        padding: 0 !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .bsbo-quick-buy-modal__close span {
        display: none !important;
    }

    .bsbo-quick-buy-modal__close::before {
        content: "\2193";
        display: block;
        margin: 0;
        padding: 0;
        font-size: 25px;
        font-weight: 700;
        line-height: 1;
        transform: translateY(-1px);
    }
}

/* 0.7.5: mobile product information accordions */
@media (max-width: 767px) {
    .single-product .woocommerce-tabs.bsbo-accordion-ready ul.tabs.wc-tabs {
        display: none !important;
    }

    .single-product .woocommerce-tabs.bsbo-accordion-ready {
        margin-top: 24px !important;
        overflow: visible !important;
    }

    .bsbo-product-accordion__toggle {
        width: 100%;
        min-height: 54px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        margin: 0;
        padding: 15px 16px;
        border: 0;
        border-top: 1px solid #e1e5ea;
        background: #fff;
        color: #30343b;
        font: inherit;
        font-size: 17px;
        font-weight: 700;
        text-align: left;
        cursor: pointer;
    }

    .bsbo-product-accordion__toggle:last-of-type {
        border-bottom: 1px solid #e1e5ea;
    }

    .bsbo-product-accordion__icon {
        width: 12px;
        height: 12px;
        flex: 0 0 12px;
        border-right: 2px solid #3f6fa6;
        border-bottom: 2px solid #3f6fa6;
        transform: rotate(45deg) translateY(-2px);
        transition: transform .2s ease;
    }

    .bsbo-product-accordion__toggle[aria-expanded="true"] .bsbo-product-accordion__icon {
        transform: rotate(225deg) translate(-2px, -2px);
    }

    .single-product .woocommerce-tabs .bsbo-product-accordion__panel {
        display: block;
        margin: 0 !important;
        padding: 16px 16px 20px !important;
        border: 0 !important;
        background: #fff;
    }

    .single-product .woocommerce-tabs .bsbo-product-accordion__panel[hidden] {
        display: none !important;
    }

    .single-product .woocommerce-tabs .bsbo-product-accordion__panel > h2:first-child,
    .single-product .woocommerce-tabs .bsbo-product-accordion__panel > .page-header:first-child,
    .single-product .woocommerce-tabs .bsbo-product-accordion__panel > .page-header:first-child h2 {
        display: none !important;
    }

    .single-product .woocommerce-tabs.bsbo-accordion-ready .woocomtabinner > .container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .single-product .woocommerce-tabs.bsbo-accordion-ready .bsbo-product-accordion__toggle + .bsbo-product-accordion__panel {
        border-bottom: 1px solid #e1e5ea !important;
    }
}

/* BSBO 0.7.7: clearer blade-length comparison and machine compatibility. */
@media (max-width: 767px) {
    /* WooCommerce can leave inline display:none on tab panels. The accordion
       owns visibility on mobile, so make its state authoritative. */
    .single-product .woocommerce-tabs .bsbo-product-accordion__panel {
        display: block !important;
    }
    .single-product .woocommerce-tabs .bsbo-product-accordion__panel[hidden] {
        display: none !important;
    }

    .bsbo-length-comparison {
        margin: 18px 0 22px;
        padding: 14px;
        border: 1px solid #dce4ec;
        border-radius: 10px;
        background: #f8fafc;
    }
    .bsbo-length-comparison__title {
        margin: 0 0 11px;
        color: #315f91;
        font-size: 15px;
        font-weight: 800;
    }
    .bsbo-length-comparison__grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
    }
    .bsbo-length-comparison__item {
        min-width: 0;
        padding: 10px 7px;
        border-radius: 7px;
        background: #fff;
        box-shadow: 0 1px 2px rgba(25, 45, 65, .06);
        text-align: center;
    }
    .bsbo-length-comparison__label {
        display: block;
        margin-bottom: 4px;
        color: #6b747e;
        font-size: 10px;
        font-weight: 800;
        line-height: 1.2;
        text-transform: uppercase;
        letter-spacing: .02em;
    }
    .bsbo-length-comparison__value {
        display: block;
        color: #26384c;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }
    .bsbo-original-length-row {
        display: none !important;
    }

    .bsbo-compatible-machines {
        margin: 20px 0;
        padding: 15px 15px 14px;
        border: 1px solid #b9cee3;
        border-left: 4px solid #406da4;
        border-radius: 8px;
        background: #f2f7fc;
    }
    .bsbo-compatible-machines__title {
        display: flex;
        align-items: center;
        gap: 7px;
        margin: 0 0 10px;
        color: #315f91;
        font-size: 15px;
        font-weight: 800;
    }
    .bsbo-compatible-machines__title::before {
        content: "\2713";
        display: block;
        width: 21px;
        height: 21px;
        flex: 0 0 21px;
        border-radius: 50%;
        background: #406da4;
        color: #fff;
        font-family: Arial, sans-serif;
        font-size: 12px;
        font-weight: 700;
        line-height: 21px;
        text-align: center;
        padding: 0;
        transform: translateY(-0.5px);
        box-sizing: border-box;
    }
    .bsbo-compatible-machines__chips {
        display: flex;
        flex-wrap: wrap;
        gap: 7px;
    }
    .bsbo-compatible-machines__chip {
        display: inline-block;
        padding: 6px 9px;
        border: 1px solid #d5e1ed;
        border-radius: 999px;
        background: #fff;
        color: #31475e;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.25;
    }
}

/* BSBO 0.8.0: streamlined mobile basket. */
@media (max-width: 767px) {
    body.woocommerce-cart .woocommerce {
        padding-bottom: 92px;
    }

    body.woocommerce-cart .woocommerce-cart-form table.shop_table.cart {
        display: block;
        border: 0 !important;
        background: transparent;
    }

    body.woocommerce-cart .woocommerce-cart-form table.shop_table.cart thead {
        display: none !important;
    }

    body.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tbody,
    body.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tr.cart_item {
        display: block;
        width: 100%;
    }

    body.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tr.cart_item {
        position: relative;
        display: grid;
        grid-template-columns: 94px minmax(0, 1fr);
        gap: 7px 14px;
        margin: 0 0 14px;
        padding: 14px;
        border: 1px solid #e0e5ea !important;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 2px 8px rgba(24, 45, 67, .05);
    }

    body.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tr.cart_item td {
        display: block !important;
        width: auto !important;
        padding: 0 !important;
        border: 0 !important;
        text-align: left !important;
        background: transparent !important;
    }

    body.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tr.cart_item td::before {
        display: none !important;
    }

    body.woocommerce-cart td.product-thumbnail {
        grid-column: 1;
        grid-row: 1 / span 4;
    }

    body.woocommerce-cart td.product-thumbnail img {
        width: 94px !important;
        height: 94px !important;
        object-fit: cover;
        border-radius: 9px;
    }

    body.woocommerce-cart td.product-name {
        grid-column: 2;
        padding-right: 28px !important;
        color: #2d4054;
        font-size: 16px;
        font-weight: 800;
        line-height: 1.3;
    }

    body.woocommerce-cart td.product-name > a {
        color: #315f91;
    }

    body.woocommerce-cart td.product-name dl.variation {
        margin: 7px 0 0;
        color: #626d78;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.4;
    }

    body.woocommerce-cart td.product-name dl.variation dt,
    body.woocommerce-cart td.product-name dl.variation dd {
        display: inline;
        float: none;
        margin: 0;
        padding: 0;
    }

    body.woocommerce-cart td.product-name dl.variation dd::after {
        content: "\A";
        white-space: pre;
    }

    body.woocommerce-cart td.product-price {
        grid-column: 2;
        color: #6a737d;
        font-size: 13px;
    }

    body.woocommerce-cart td.product-price::before {
        content: "Each: ";
        display: inline !important;
        font-weight: 700;
    }

    body.woocommerce-cart td.product-quantity {
        grid-column: 2;
        display: flex !important;
        align-items: center;
        gap: 9px;
    }

    body.woocommerce-cart td.product-quantity::before {
        content: "Qty";
        display: inline !important;
        color: #606b76;
        font-size: 13px;
        font-weight: 700;
    }

    body.woocommerce-cart td.product-quantity .quantity {
        display: inline-block;
    }

    body.woocommerce-cart td.product-quantity input.qty {
        width: 72px !important;
        min-height: 42px;
        padding: 8px;
        border: 1px solid #c7d0da;
        border-radius: 7px;
        text-align: center;
    }

    body.woocommerce-cart td.product-subtotal {
        grid-column: 2;
        padding-top: 5px !important;
        border-top: 1px solid #edf0f3 !important;
        color: #24384d;
        font-size: 16px;
        font-weight: 800;
    }

    body.woocommerce-cart td.product-subtotal::before {
        content: "Subtotal: ";
        display: inline !important;
        color: #68737d;
        font-size: 13px;
        font-weight: 700;
    }

    body.woocommerce-cart td.product-remove {
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 2;
    }

    body.woocommerce-cart td.product-remove a.remove {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background: #f3f5f7;
        color: #5e6b77 !important;
        font-size: 22px;
        line-height: 1;
    }

    body.woocommerce-cart .woocommerce-cart-form tr:last-child,
    body.woocommerce-cart .woocommerce-cart-form td.actions {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    body.woocommerce-cart td.actions .coupon {
        display: none;
        width: 100%;
        margin: 8px 0 12px;
        padding: 12px;
        border: 1px solid #dde4eb;
        border-radius: 9px;
        background: #f8fafc;
    }

    body.woocommerce-cart td.actions .coupon.is-open {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
    }

    body.woocommerce-cart td.actions .coupon label {
        display: none;
    }

    body.woocommerce-cart td.actions .coupon input.input-text {
        width: 100% !important;
        min-height: 44px;
        margin: 0 !important;
        border-radius: 7px;
    }

    body.woocommerce-cart td.actions .coupon button.button,
    body.woocommerce-cart td.actions button[name="update_cart"] {
        min-height: 44px;
        border-radius: 7px;
    }

    .bsbo-cart-coupon-toggle {
        width: 100%;
        margin: 2px 0 8px;
        padding: 11px 13px;
        border: 1px solid #d8e0e8;
        border-radius: 8px;
        background: #fff;
        color: #315f91;
        font-weight: 700;
        text-align: left;
    }

    body.woocommerce-cart td.actions button[name="update_cart"] {
        float: none !important;
        width: 100%;
        margin-top: 4px;
        background: #eef3f8;
        color: #315f91;
    }

    body.woocommerce-cart .cart-collaterals {
        width: 100%;
    }

    body.woocommerce-cart .cross-sells {
        display: none !important;
    }

    body.woocommerce-cart .cart_totals {
        float: none !important;
        width: 100% !important;
        margin-top: 20px;
        padding: 16px;
        border: 1px solid #dce4ec;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(24, 45, 67, .06);
    }

    body.woocommerce-cart .cart_totals h2 {
        margin: 0 0 12px;
        color: #315f91;
        font-size: 22px;
    }

    body.woocommerce-cart .cart_totals table.shop_table {
        margin: 0 0 14px !important;
        border: 0 !important;
    }

    body.woocommerce-cart .cart_totals table.shop_table tr,
    body.woocommerce-cart .cart_totals table.shop_table th,
    body.woocommerce-cart .cart_totals table.shop_table td {
        border-color: #edf0f3 !important;
    }

    body.woocommerce-cart .cart_totals table.shop_table th,
    body.woocommerce-cart .cart_totals table.shop_table td {
        padding: 11px 0 !important;
    }

    body.woocommerce-cart .wc-proceed-to-checkout {
        padding: 0 !important;
    }

    body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
        width: 100%;
        margin: 0 !important;
        padding: 15px 16px !important;
        border-radius: 8px;
        background: #4477ad;
        font-size: 18px;
        font-weight: 800;
    }

    .bsbo-cart-delivery-progress {
        margin: 0 0 15px;
        padding: 13px;
        border-radius: 9px;
        background: #f2f7fc;
        color: #30465d;
    }

    .bsbo-cart-delivery-progress strong {
        display: block;
        margin-bottom: 8px;
        color: #315f91;
        font-size: 14px;
        line-height: 1.35;
    }

    .bsbo-cart-delivery-progress__track {
        height: 7px;
        margin-bottom: 7px;
        overflow: hidden;
        border-radius: 99px;
        background: #dce6f0;
    }

    .bsbo-cart-delivery-progress__track span {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: #4477ad;
    }

    .bsbo-cart-delivery-progress small {
        display: block;
        color: #6b7680;
        font-size: 11px;
        line-height: 1.35;
    }

    .bsbo-cart-floating-checkout {
        position: fixed;
        z-index: 99970;
        right: 12px;
        bottom: max(12px, env(safe-area-inset-bottom));
        left: 12px;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 9px 10px 9px 14px;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 8px 28px rgba(20, 45, 70, .24);
        opacity: 0;
        transform: translateY(calc(100% + 24px));
        pointer-events: none;
        transition: opacity .2s ease, transform .28s ease;
    }

    .bsbo-cart-floating-checkout.is-visible {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }

    .bsbo-cart-floating-checkout__total {
        min-width: 0;
        flex: 1;
        color: #68737d;
        font-size: 11px;
        line-height: 1.2;
    }

    .bsbo-cart-floating-checkout__total strong {
        display: block;
        margin-top: 2px;
        color: #24384d;
        font-size: 17px;
    }

    .bsbo-cart-floating-checkout__button {
        flex: 0 0 auto;
        padding: 13px 16px;
        border-radius: 7px;
        background: #4477ad;
        color: #fff !important;
        font-weight: 800;
        text-decoration: none !important;
    }
}

/* BSBO 0.8.1: mobile checkout conversion layout. */
@media (max-width: 767px) {
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
        padding-bottom: 92px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout {
        display: block;
        margin: 0;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .col2-set,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .col-1,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .col-2 {
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #customer_details > .col-1,
    body.woocommerce-checkout:not(.woocommerce-order-received) #customer_details > .col-2,
    body.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
        background: #fff;
        border: 1px solid #d9e2ec;
        border-radius: 10px;
        padding: 16px;
        margin: 0 0 16px;
        box-shadow: 0 3px 12px rgba(26, 54, 84, .05);
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #customer_details h3,
    body.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading {
        margin: 0 0 14px !important;
        color: #315f98;
        font-size: 22px;
        line-height: 1.2;
        text-transform: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading {
        padding: 0 2px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row,
    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row-first,
    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row-last,
    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row-wide {
        float: none !important;
        width: 100% !important;
        margin: 0 0 14px !important;
        padding: 0 !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row label {
        display: block;
        margin: 0 0 6px;
        color: #343d48;
        font-size: 14px;
        line-height: 1.35;
        font-weight: 700;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row .required {
        color: #b33a3a;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row input.input-text,
    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row textarea,
    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row select,
    body.woocommerce-checkout:not(.woocommerce-order-received) .select2-container .select2-selection--single {
        width: 100% !important;
        min-height: 48px;
        border: 1px solid #b9c7d5;
        border-radius: 6px;
        background: #fff;
        color: #303944;
        font-size: 16px;
        line-height: 1.4;
        box-shadow: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row input.input-text,
    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row textarea,
    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row select {
        padding: 11px 12px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .select2-container .select2-selection--single .select2-selection__rendered {
        line-height: 46px;
        padding-left: 12px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .select2-container .select2-selection--single .select2-selection__arrow {
        height: 46px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .form-row textarea {
        min-height: 92px;
        resize: vertical;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-invalid input.input-text,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-invalid .select2-selection {
        border-color: #b33a3a !important;
        box-shadow: 0 0 0 2px rgba(179,58,58,.08);
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address {
        margin: 0 0 12px;
        font-size: 16px;
        line-height: 1.4;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address label {
        display: flex;
        align-items: center;
        gap: 9px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address-checkbox {
        width: 20px;
        height: 20px;
        margin: 0;
    }

    .bsbo-checkout-reassurance {
        display: grid;
        grid-template-columns: 1fr;
        gap: 7px;
        margin: 0 0 16px;
        padding: 12px 14px;
        border: 1px solid #c9daea;
        border-radius: 9px;
        background: #f4f8fc;
        color: #315f98;
        font-size: 13px;
        line-height: 1.35;
    }

    .bsbo-checkout-reassurance span {
        position: relative;
        padding-left: 23px;
    }

    .bsbo-checkout-reassurance span::before {
        content: "\2713";
        position: absolute;
        left: 0;
        top: 0;
        width: 17px;
        height: 17px;
        border-radius: 50%;
        background: #406fa7;
        color: #fff;
        font-size: 11px;
        line-height: 17px;
        text-align: center;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-login-toggle {
        margin: 0 0 10px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle .woocommerce-info,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-login-toggle .woocommerce-info {
        margin: 0 !important;
        padding: 13px 14px !important;
        border: 1px solid #d9e2ec;
        border-radius: 8px;
        background: #fff;
        color: #315f98;
        font-size: 14px;
        font-weight: 700;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout_coupon,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.woocommerce-form-login {
        margin: -1px 0 14px !important;
        padding: 14px !important;
        border: 1px solid #d9e2ec;
        border-radius: 0 0 8px 8px;
        background: #fff;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout_coupon .form-row {
        margin-bottom: 8px !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout_coupon button,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.woocommerce-form-login button {
        width: 100%;
        min-height: 46px;
        border-radius: 6px;
        background: #406fa7;
        color: #fff;
        font-weight: 700;
    }

    .bsbo-checkout-delivery-progress {
        margin: 0 0 14px;
        padding: 12px 14px;
        border-radius: 9px;
        background: #eef5fb;
        color: #315f98;
        font-size: 13px;
        line-height: 1.35;
    }

    .bsbo-checkout-delivery-progress strong {
        display: block;
        margin-bottom: 8px;
    }

    .bsbo-checkout-delivery-progress__track {
        height: 7px;
        overflow: hidden;
        border-radius: 99px;
        background: #d5e2ee;
    }

    .bsbo-checkout-delivery-progress__track span {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: #406fa7;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table {
        display: block;
        width: 100%;
        margin: 0 0 16px;
        border: 0;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table thead {
        display: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tbody,
    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot,
    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tr {
        display: block;
        width: 100%;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tr.cart_item {
        position: relative;
        margin: 0 0 10px;
        padding: 12px;
        border: 1px solid #e0e7ee;
        border-radius: 8px;
        background: #f9fbfd;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tr.cart_item td {
        display: block;
        width: 100%;
        padding: 0 !important;
        border: 0 !important;
        text-align: left !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tr.cart_item td.product-name {
        padding-right: 80px !important;
        color: #315f98;
        font-weight: 700;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tr.cart_item td.product-total {
        position: absolute;
        right: 12px;
        top: 12px;
        width: auto;
        color: #424a54;
        font-weight: 700;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table .product-quantity {
        white-space: nowrap;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table dl.variation {
        margin: 7px 0 0;
        color: #596573;
        font-size: 13px;
        font-weight: 400;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table dl.variation dt,
    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table dl.variation dd {
        float: none;
        display: inline;
        margin: 0;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table dl.variation dd::after {
        content: "";
        display: block;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        align-items: start;
        padding: 11px 0;
        border-top: 1px solid #e3e8ed;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot th,
    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot td {
        display: block;
        width: auto;
        padding: 0 !important;
        border: 0 !important;
        text-align: right;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot th {
        text-align: left;
        color: #596573;
        font-weight: 700;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot tr.order-total {
        margin-top: 4px;
        padding-top: 14px;
        font-size: 18px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot tr.order-total td {
        color: #263c55;
        font-weight: 800;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table .woocommerce-shipping-methods {
        margin: 0;
        padding: 0;
        list-style: none;
        text-align: left;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
        display: flex;
        align-items: flex-start;
        gap: 7px;
        margin: 0 0 9px;
        line-height: 1.35;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table .woocommerce-shipping-methods input {
        flex: 0 0 auto;
        width: 18px;
        height: 18px;
        margin: 1px 0 0;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment {
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment ul.payment_methods {
        margin: 0 0 14px;
        padding: 0;
        border: 0;
        list-style: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment ul.payment_methods > li {
        margin: 0 0 9px;
        padding: 12px;
        border: 1px solid #d9e2ec;
        border-radius: 8px;
        background: #fff;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment ul.payment_methods > li > input[type="radio"] {
        width: 19px;
        height: 19px;
        margin: 1px 7px 0 0;
        vertical-align: top;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment ul.payment_methods > li > label {
        color: #343d48;
        font-size: 15px;
        font-weight: 700;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment .payment_box {
        margin: 10px 0 0;
        padding: 10px 0 0;
        background: transparent;
        color: #596573;
        font-size: 13px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment .payment_box::before {
        display: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #payment .place-order {
        margin: 0 !important;
        padding: 4px 0 0 !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #place_order {
        width: 100% !important;
        min-height: 54px;
        margin: 10px 0 0 !important;
        border: 0;
        border-radius: 7px;
        background: #406fa7 !important;
        color: #fff !important;
        font-size: 17px;
        font-weight: 800;
        text-transform: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #place_order:hover,
    body.woocommerce-checkout:not(.woocommerce-order-received) #place_order:focus {
        background: #315f98 !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-terms-and-conditions-wrapper {
        color: #596573;
        font-size: 13px;
        line-height: 1.45;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-error,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-message,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-info {
        border-radius: 8px;
    }

    .bsbo-checkout-floating-order {
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        z-index: 99997;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 9px;
        border: 1px solid #d7e0e8;
        border-radius: 9px;
        background: rgba(255,255,255,.97);
        box-shadow: 0 7px 24px rgba(21,48,75,.2);
        opacity: 0;
        visibility: hidden;
        transform: translateY(14px);
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    }

    .bsbo-checkout-floating-order.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .bsbo-checkout-floating-order__total {
        flex: 1 1 auto;
        min-width: 0;
        padding-left: 3px;
        color: #596573;
        font-size: 11px;
        line-height: 1.15;
    }

    .bsbo-checkout-floating-order__total strong {
        display: block;
        margin-top: 2px;
        color: #263c55;
        font-size: 16px;
    }

    .bsbo-checkout-floating-order__button {
        flex: 0 0 auto;
        min-width: 150px;
        min-height: 48px;
        padding: 0 17px;
        border: 0;
        border-radius: 6px;
        background: #406fa7;
        color: #fff;
        font-size: 15px;
        font-weight: 800;
    }
}

/* BSBO 0.8.3: checkout polish, coupon interaction and checkbox/radio alignment. */
@media (max-width: 767px) {
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle .woocommerce-info {
        position: relative;
        cursor: pointer;
        padding-left: 14px !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle .woocommerce-info::before,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle .woocommerce-info::after {
        display: none !important;
        content: none !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle .woocommerce-info a {
        display: block;
        width: 100%;
        color: inherit;
        text-decoration: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address {
        margin: 0 0 12px !important;
        padding: 0 !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address label {
        position: relative;
        display: block !important;
        min-height: 24px;
        padding-left: 32px;
        line-height: 24px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address-checkbox {
        position: absolute !important;
        left: 0;
        top: 2px;
        width: 20px !important;
        height: 20px !important;
        margin: 0 !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals.shipping {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 7px !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals.shipping > th,
    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals.shipping > td {
        grid-column: 1 / -1;
        width: 100% !important;
        text-align: left !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
        position: relative;
        display: block !important;
        min-height: 24px;
        margin: 0 0 12px !important;
        padding-left: 32px;
        line-height: 1.4;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table .woocommerce-shipping-methods input[type="radio"] {
        position: absolute !important;
        left: 0;
        top: 2px;
        width: 20px !important;
        height: 20px !important;
        margin: 0 !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) table.woocommerce-checkout-review-order-table .woocommerce-shipping-methods label {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        line-height: 1.4;
    }


}
