/* Product heading, purchase button and one-click modal. */
.l-titlebar-h {
    display: flex;
    flex-direction: column;
}
.l-titlebar .l-titlebar-h > h1,
.l-titlebar .l-titlebar-h > .g-breadcrumbs {
    width: auto;
    max-width: 100%;
    text-align: left;
}
.l-titlebar .l-titlebar-h > .g-breadcrumbs { margin-top: 10px; }

a.clickBuyButton.button21 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 176px;
    min-height: 52px;
    box-sizing: border-box;
    margin: 8px 0 24px;
    padding: 14px 28px;
    border: 1px solid #0d6efd;
    border-radius: 6px;
    background: #0d6efd;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .02em;
    text-decoration: none;
    box-shadow: none;
    cursor: pointer;
    transition: none;
}
a.clickBuyButton.button21::before {
    content: "\f07a";
    font-family: FontAwesome;
    font-size: 19px;
    font-weight: normal;
}
a.clickBuyButton.button21:hover:not(:active) {
    background: #0b5ed7;
    color: #fff;
    box-shadow: none;
    transform: none;
}
a.clickBuyButton.button21:active {
    background: #0b5ed7;
    color: #fff;
    box-shadow: none;
    transform: none;
}
a.clickBuyButton.button21:focus-visible {
    outline: 3px solid #20272d;
    outline-offset: 4px;
}

/* The companion script places this container directly inside body. */
body > #formOrderOneClick {
    position: relative;
    z-index: 2147483000;
    isolation: isolate;
}
body #formOrderOneClick .overlay,
body #formOrderOneClick .overlay_message { z-index: 1; }
body #formOrderOneClick .popup,
body #formOrderOneClick .popummessage { z-index: 2; }
body #formOrderOneClick .popup {
    top: 50%;
    width: 480px;
    padding: 52px 32px 32px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: #fff;
    box-shadow: none;
    box-sizing: border-box;
    max-width: calc(100vw - 40px);
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
}
body #formOrderOneClick .popup .close_order {
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    padding: 0;
    line-height: 32px;
    background: transparent;
    border: 0;
    border-radius: 4px;
    box-shadow: none;
    text-shadow: none;
    color: #6c757d;
    font: 28px/32px Arial, sans-serif;
    text-align: center;
    cursor: pointer;
    transition: none;
    z-index: 3;
}
body #formOrderOneClick .popup textarea,
body #formOrderOneClick .popup input:not([type="submit"]):not([type="hidden"]):not([type="checkbox"]) {
    box-sizing: border-box;
    max-width: 100%;
    display: block;
    width: 100%;
    height: 52px;
    margin: 0 0 20px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid #ced4da;
    border-radius: 6px;
    box-shadow: none;
    color: #212529;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
}
body #formOrderOneClick .popup textarea { height: 120px; min-height: 100px; resize: vertical; }
body #formOrderOneClick .popup h2 { display: none; }
body #formOrderOneClick .popup .phoneFormat { margin: -12px 0 20px; color: #6c757d; font-size: 13px; }
body #formOrderOneClick .popup .buyvalide:focus { border-color: #86b7fe; outline: 2px solid #b6d4fe; outline-offset: 1px; box-shadow: none; }
body #formOrderOneClick .popup .close_order:hover { background: #f1f3f5; color: #212529; box-shadow: none; }
body #formOrderOneClick .popup .buyButtonOkForm {
    display: block; width: max-content; min-width: 176px; min-height: 52px;
    margin: 8px 0 0 auto; padding: 14px 28px; box-sizing: border-box;
    border: 1px solid #0d6efd; border-radius: 6px; background: #0d6efd;
    color: #fff; font-size: 17px; font-weight: 700; line-height: 1.25;
    letter-spacing: .02em; box-shadow: none; text-shadow: none;
    transform: none; transition: none; cursor: pointer;
}
body #formOrderOneClick .popup .buyButtonOkForm:hover,
body #formOrderOneClick .popup .buyButtonOkForm:active { background: #0b5ed7; color: #fff; box-shadow: none; transform: none; }
body #formOrderOneClick .popup .buyButtonOkForm:focus-visible { outline: 3px solid #20272d; outline-offset: 4px; }
.single-product div.product > a.clickBuyButton.button21 { display: flex; width: max-content; margin-left: auto; }
@media (max-width: 600px) {
    a.clickBuyButton.button21 { min-width: 180px; min-height: 54px; }
    body #formOrderOneClick .popup { padding: 48px 24px 24px; }
}
@media (prefers-reduced-motion: reduce) {
    a.clickBuyButton.button21 { transition: none; }
    a.clickBuyButton.button21:hover:not(:active) { transform: none; }
}
/* Shared category tree: links navigate, separate buttons toggle whole branches. */
.widget_product_categories .npo-category-tree li { position: relative; padding-left: 30px; }
.widget_product_categories .npo-category-tree li::before { display: none !important; }
.widget_product_categories .npo-category-tree ul.children { margin-left: 0; padding-left: 0; }
.widget_product_categories .npo-category-tree ul.children[hidden] { display: none !important; }
.widget_product_categories .npo-category-tree ul.children:not([hidden]) { display: block; }
.widget_product_categories .npo-category-tree .npo-category-toggle {
    position: absolute; left: 0; top: 0; width: 28px; height: 32px;
    padding: 0; margin: 0; border: 0; border-radius: 5px;
    background: transparent; color: inherit; box-shadow: none;
    font: 24px/32px Arial, sans-serif; text-align: center; cursor: pointer;
}
.widget_product_categories .npo-category-toggle span { display: block; transition: transform .15s; }
.widget_product_categories .npo-category-toggle[aria-expanded="true"] span { transform: rotate(90deg); }
.widget_product_categories .npo-category-toggle:hover { color: #c91f2b; background: #f4f4f4; }
.widget_product_categories .npo-category-toggle:focus-visible { outline: 2px solid #c91f2b; outline-offset: 1px; }
.widget_product_categories .npo-category-tree .current-cat > a { color: #c91f2b; font-weight: 700; }

/* Wider desktop container; retain the theme's responsive columns and gutters. */
@media (min-width: 1400px) {
    body .l-canvas.type_boxed,
    body .l-canvas.type_boxed .l-subheader,
    body .l-canvas.type_boxed ~ .l-footer .l-subfooter { max-width: 1420px; }
    body .l-subheader-h,
    body .l-titlebar-h,
    body .l-main-h,
    body .l-section-h,
    body .l-subfooter-h,
    body .w-tabs-section-content-h,
    body .w-blog-post-body { max-width: 1320px; }
}
/* Remove the theme's main navigation underline, including its pseudo-element. */
body .l-header .w-nav .w-nav-anchor { text-decoration: none; }
body .l-header .w-nav .w-nav-anchor .w-nav-title::after { display: none !important; }

/* Category tiles share a square image frame and stretch evenly within each row. */
.woocommerce ul.products {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product-category {
    display: flex;
    float: none;
    height: auto;
}
.woocommerce ul.products li.product-category > a {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}
.woocommerce ul.products li.product > a > img,
.woocommerce ul.products li.product .product-h > a > img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    object-position: center;
    background: #fff;
    flex-shrink: 0;
}
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
    min-height: 3em;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

/* Catalog card links must not inherit the theme hover underline. */
.no-touch .g-html ul.products li.product a:not(.button),
.no-touch .g-html ul.products li.product a:not(.button):hover {
    border-bottom: 0;
    text-decoration: none;
}
