/* Store palette also applies to Woo widgets embedded outside the shop. */
:root:root {
    --woocommerce: var(--navy);
    --wc-primary: var(--navy);
    --wc-primary-text: white;
    --wc-secondary: #eaf0f4;
    --wc-secondary-text: var(--ink);
    --wc-form-border-color: #b6c6d2;
    --wc-form-border-radius: 8px;
}
body .woocommerce-store-notice, body p.demo_store,
body .widget_price_filter .ui-slider .ui-slider-range,
body .widget_price_filter .ui-slider .ui-slider-handle,
body .woocommerce :is(.button.alt, #respond input#submit.alt),
body.woocommerce :is(.button.alt, #respond input#submit.alt),
body .wc-block-components-button:not(.is-link) {
    background: var(--navy) !important;
    color: white !important;
    border-radius: 8px;
}
body :is(.woocommerce,.wc-block-cart,.wc-block-checkout) :is(.button.alt,.wc-block-components-button):hover {
    background-color: #245779 !important;
}
/* Keep WooCommerce's native icons, live regions and undo actions. */
body :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .wc-block-components-notice-banner) {
    --notice-accent: #245779;
    --notice-tint: #f1f6fa;
}
body :is(.woocommerce-message, .wc-block-components-notice-banner.is-success) {
    --notice-accent: #207251;
    --notice-tint: #f0f8f4;
}
body :is(.woocommerce-error, .wc-block-components-notice-banner.is-error) {
    --notice-accent: #a92f43;
    --notice-tint: #fff3f4;
}
body .wc-block-components-notice-banner.is-warning {
    --notice-accent: #855700;
    --notice-tint: #fff8eb;
}
body[class] :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .wc-block-components-notice-banner) {
    box-sizing: border-box;
    border: 1px solid color-mix(in srgb, var(--notice-accent) 25%, white);
    border-inline-start: 4px solid var(--notice-accent);
    border-radius: 10px;
    background: var(--notice-tint);
    color: var(--navy);
    line-height: 1.6;
    margin-block: 0 1rem;
    overflow-wrap: anywhere;
}
body[class] :is(.woocommerce-info, .woocommerce-message, .woocommerce-error) {
    position: relative;
    padding: .9rem 1.15rem .9rem 2.9rem;
    list-style: none;
}
body[class] :is(.woocommerce-info, .woocommerce-message, .woocommerce-error)::before {
    top: .9rem;
    left: 1rem;
    color: var(--notice-accent);
}
body[class] .wc-block-components-notice-banner > svg {
    background-color: var(--notice-accent);
    color: white;
}
body[class] :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .wc-block-components-notice-banner) a[href] {
    text-decoration: underline;
    text-decoration-thickness: .1em;
    text-underline-offset: .18em;
    font-weight: 600;
}
body[class] :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .wc-block-components-notice-banner) a[href]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
.bbe-purchase { padding-block: clamp(24px,4vw,54px) 80px; }
.bbe-purchase-header { border-top: 3px solid var(--navy); padding-top: 18px; margin-bottom: 26px; }
.bbe-purchase-header span { text-transform: uppercase; letter-spacing: .13em; font-size: 11px; font-weight: 700; color: #526a7e; }
.bbe-purchase-header h1 { font-size: clamp(36px,4vw,54px); margin: 10px 0; }
.bbe-purchase :is(h2,h3) { font-size: clamp(22px,2vw,30px); margin: 0 0 18px; }
.bbe-purchase :is(.woocommerce-cart-form,.cart_totals,#customer_details,#order_review) {
    background: #fff; border: 1px solid #d4dfe6; border-radius: 16px;
    padding: clamp(16px,2vw,28px); min-width: 0; box-shadow: 0 8px 26px #13335109;
}
.bbe-purchase .cart-collaterals .cart_totals { width: 100%; float: none; background: #f1f5f8; }
.bbe-purchase .woocommerce table.shop_table { border: 0; margin: 0; border-collapse: collapse; }
.bbe-purchase table.shop_table :is(th,td) { padding: 12px 8px; }
.bbe-purchase table.shop_table thead { font-size: 13px; color: #465e72; background: #f2f6f8; }
.bbe-purchase .product-name { overflow-wrap: anywhere; }
.bbe-purchase .product-name a { font-weight: 700; }
.bbe-purchase td.product-thumbnail img { width: 64px; min-width: 44px; border-radius: 6px; }
.bbe-purchase .quantity .qty { min-height: 38px; width: 3.5em; }
.bbe-purchase .woocommerce .cart .actions { display: table-cell; width: auto; }
.bbe-purchase .woocommerce table.cart td.actions .coupon .input-text { width: 9em; }
.bbe-purchase .woocommerce :is(input.input-text,select,textarea,.select2-selection--single) {
    border: 1px solid #aebfcd; border-radius: 8px; background: white; color: var(--ink);
    min-height: 44px; padding: 10px 12px; font: inherit;
}
.bbe-purchase .woocommerce textarea { min-height: 110px; }
.bbe-purchase .woocommerce :is(input,textarea,select):focus-visible { outline: 2px solid #30658a; outline-offset: 2px; }
.bbe-purchase .woocommerce input { accent-color: var(--navy); }
.bbe-purchase .woocommerce .form-row label { color: var(--ink); font-size: 14px; font-weight: 600; }
.bbe-purchase .woocommerce .button { border-radius: 8px; min-height: 44px; padding: 13px 18px; }
.bbe-purchase .wc-proceed-to-checkout { padding-bottom: 0; }
.bbe-purchase .wc-proceed-to-checkout a.checkout-button { margin-bottom: 0; font-size: 16px; }
.bbe-purchase #order_review_heading { margin-top: 30px; }
.bbe-purchase #payment { background: #eff4f7; border-radius: 12px; }
.bbe-purchase #payment div.payment_box { background: white; color: var(--ink); }
.bbe-purchase #payment div.payment_box::before { border-bottom-color: white; }
@media (min-width: 1000px) {
    .bbe-purchase .woocommerce:has(> .woocommerce-cart-form) {
        display: grid; grid-template-columns: minmax(0,2fr) minmax(290px,1fr); gap: 20px; align-items: start;
    }
    .bbe-purchase .woocommerce:has(> .woocommerce-cart-form) > * { grid-column: 1/-1; }
    .bbe-purchase .woocommerce:has(> .woocommerce-cart-form) > .woocommerce-cart-form { grid-column: 1; }
    .bbe-purchase .woocommerce:has(> .woocommerce-cart-form) > .cart-collaterals { grid-column: 2; width: 100%; }

}
@media (max-width: 999px) {
    .bbe-purchase .cart-collaterals { margin-top: 18px; }
    .bbe-purchase #payment { margin-top: 18px; }
}
@media (max-width: 768px) {
    .bbe-purchase .woocommerce table.cart td.actions { display: block; }
    .bbe-purchase #customer_details > div { float: none; width: 100%; }
    .bbe-purchase #customer_details .col-2 { margin-top: 24px; }
}

.bbe-purchase #customer_details > div { float: none; width: 100%; }
.bbe-purchase #customer_details .col-2 { margin-top: 24px; }
.bbe-purchase #payment { margin-top: 20px; }
.bbe-order-column { min-width: 0; padding: clamp(16px,2vw,28px); background: #f1f5f8; border: 1px solid #d4dfe6; border-radius: 16px; }
.bbe-order-column #order_review_heading { margin-top: 0; }
.bbe-order-column #order_review { padding: 0; background: transparent; border: 0; box-shadow: none; }
.bbe-order-column #payment { background: white; }
@media (min-width: 900px) {
    .bbe-purchase form.checkout:has(#customer_details) { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 20px; align-items: start; }
    .bbe-purchase form.checkout > * { grid-column: 1/-1; }
    .bbe-purchase form.checkout #customer_details { grid-column: 1; }
    .bbe-purchase form.checkout:has(#customer_details) > .bbe-order-column { grid-column: 2; grid-row: auto; }
}
@media (max-width: 899px) { .bbe-order-column { margin-top: 20px; } }
.bbe-header-cart { position: relative; flex: none; }
.bbe-header-cart[hidden] { display: none; }
.bbe-header-cart summary { position: relative; display: grid; place-items: center; width: 40px; height: 42px; cursor: pointer; color: var(--navy); list-style: none; }
.bbe-header-cart summary::-webkit-details-marker { display: none; }
.bbe-header-cart summary span { position: absolute; top: 0; right: -2px; min-width: 18px; padding: 2px 4px; border-radius: 20px; background: #cf1931; color: white; text-align: center; font: bold 11px/14px Arial,sans-serif; }
.bbe-cart-panel { position: absolute; z-index: 50; right: 0; top: 100%; width: min(330px,92vw); background: white; border: 1px solid #dae3e9; border-radius: 12px; box-shadow: 0 12px 36px #13335126; padding: 18px; color: var(--navy); }
.bbe-cart-panel ul { list-style: none; margin: 12px 0; padding: 0; max-height: min(38vh,300px); overflow: auto; }
.bbe-cart-panel li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid #e3e9ed; font-size: 14px; }
.bbe-cart-panel img { width: 46px; height: 46px; object-fit: contain; }
.bbe-cart-panel small { display: block; margin-top: 4px; color: #536b7d; }
.bbe-cart-panel > a { display: block; padding: 10px; text-align: center; font-size: 14px; font-weight: bold; }
.bbe-cart-panel .bbe-cart-checkout { background: var(--navy); color: white; border-radius: 8px; }
@media (max-width: 700px) { .bbe-header-cart { position: static; } .bbe-cart-panel { right: 4vw; } }
.bbe-account .bbe-site-header #navigation .bbe-account-menu-item > a.bbe-account-menu-button { color:var(--red); background:#fdf1f3; }
.bbe-return-shop { display:inline-flex; align-items:center; gap:.5em; padding:10px 15px; border:1px solid #b9cad5; border-radius:8px; color:var(--navy); font-size:14px; font-weight:600; }
.bbe-cart-panel .bbe-return-shop { margin-bottom:8px; }
.bbe-return-shop:hover { background:#eef4f7; }
.bbe-purchase-title, .bbe-purchase-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.bbe-purchase-title { justify-content:space-between; }
.bbe-purchase-actions { margin-inline-start:auto; justify-content:flex-end; }
.bbe-purchase .woocommerce-cart-form table.cart { border-collapse:separate; border-spacing:0; }
.bbe-purchase .woocommerce-cart-form table.cart thead { background:transparent; }
.bbe-purchase .woocommerce-cart-form table.cart thead th { background:#f2f6f8; }
.bbe-purchase .woocommerce-cart-form thead th:first-child { border-start-start-radius:12px; }
.bbe-purchase .woocommerce-cart-form thead th:last-child { border-start-end-radius:12px; }

/* Keep native dropdown keyboard controls on catalogue and product pages. */
.bbe-commerce select, .bbe-shop-sidebar select {
    appearance: none;
    max-width: 100%;
    min-height: 44px;
    padding: 10px 40px 10px 14px;
    border: 1px solid #aebfcd;
    border-radius: 8px;
    background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23133351' stroke-width='1.7'/%3E%3C/svg%3E") right 13px center / 16px no-repeat;
    color: var(--navy);
    font: inherit;
    cursor: pointer;
}
body.woocommerce .bbe-commerce :is(a.button,button.button) {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 11px 18px;
    border: 1px solid transparent; border-radius: 8px;
    background: var(--navy); color: white; font-weight: 600;
}
body.woocommerce .bbe-commerce :is(a.button,button.button):hover { background: #245779; color: white; }
.woocommerce .bbe-commerce nav.woocommerce-pagination ul {
    display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; border: 0; margin: 22px 0;
}
.woocommerce .bbe-commerce nav.woocommerce-pagination ul li { border: 0; float: none; }
.woocommerce .bbe-commerce nav.woocommerce-pagination li :is(a,span) {
    display: grid; place-items: center; min-width: 42px; min-height: 42px;
    border: 1px solid #c5d2db; border-radius: 8px; color: var(--navy); background: white;
}
.woocommerce .bbe-commerce nav.woocommerce-pagination li span.current { background: var(--navy); color: white; }
.woocommerce .bbe-commerce nav.woocommerce-pagination li a:hover { background: #eaf1f5; }
.bbe-commerce :is(select,.button,.page-numbers):focus-visible, .bbe-shop-sidebar select:focus-visible { outline: 2px solid #30658a; outline-offset: 2px; }

/* Share the same image corners across catalogue cards, galleries and cart thumbnails. */
body :is(ul.products li.product, .woocommerce-product-gallery, .product-thumbnail,
    .bbe-cart-panel li, .mini_cart_item, .wc-block-components-product-image,
    .wc-block-cart-item__image, .wc-block-components-order-summary-item__image,
    .wc-block-grid__product-image, .wp-block-woocommerce-product-image,
    .product_list_widget li) img,
body .woocommerce-product-gallery__image {
    border-radius: 12px;
}
body .woocommerce-product-gallery__image { overflow: hidden; }

.bbe-product-photo { aspect-ratio:1; margin-bottom:1em; overflow:hidden; border-radius:12px; }
.woocommerce .bbe-commerce ul.products li.product .bbe-product-photo img {
    display:block; width:100%; height:100%; max-height:none; margin:0; aspect-ratio:1; object-fit:cover;
}
.bbe-breadcrumbs + .section.bbe-commerce-layout { padding-top:clamp(16px,2vw,28px); }
.bbe-shop-sidebar .bbv2-event-product-search { display:flex; align-items:stretch; gap:6px; margin:0 0 20px; }
.bbv2-event-product-search label { flex:1; min-width:0; margin:0; }
.bbe-shop-sidebar .bbv2-event-product-search input { width:100%; min-width:0; height:42px; padding:0 9px; border:1px solid #aebfcd; border-radius:8px; background:white; color:var(--navy); font:inherit; font-size:14px; }
.bbe-shop-sidebar .bbv2-event-product-search button { flex:none; padding:0 12px; border-radius:8px; background:var(--navy); color:white; font-weight:600; }
.bbv2-event-product-search :is(input,button):focus-visible { outline:2px solid #30658a; outline-offset:2px; }

.bbe-shop-sidebar .bbv2-event-product-search {
    display: grid; grid-template-columns: minmax(0,1fr) 44px; gap: 6px; margin: 0 0 20px;
}
.bbe-shop-sidebar .bbv2-event-product-search label { min-width: 0; margin: 0; }
.bbe-shop-sidebar .bbv2-event-product-search input[type=search] {
    width: 100%; height: 44px; padding: 0 10px; border: 1px solid #aebfcd;
    border-radius: 8px; background: white; color: var(--navy); font: inherit; font-size: 14px;
}
.bbe-shop-sidebar .bbv2-event-product-search button {
    height: 44px; padding: 0; border: 0; border-radius: 8px; font-size: 0;
    background: var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='6.5'/%3E%3Cpath d='m15 15 6 6'/%3E%3C/svg%3E") center / 21px no-repeat;
}

body.woocommerce .bbe-commerce .quantity input.qty {
    height:44px; width:4.5em; padding:0 8px; border:1px solid #afbfcd;
    border-radius:8px; background:white; color:var(--navy); font:inherit; text-align:center;
}
body.woocommerce .bbe-commerce .quantity input.qty:focus-visible { outline:2px solid #30658a; outline-offset:2px; }
.bbe-commerce :is(.related,.up-sells) li.product a.woocommerce-loop-product__link {
    display:block; border:0; padding:0; border-radius:0; font-size:inherit;
}
.woocommerce .bbe-commerce :is(.related,.up-sells) li.product a img { margin-bottom:14px; }

/* Let shorter product descriptions absorb the spare height in each grid row. */
.woocommerce .bbe-commerce ul.products li.product {
    display: flex;
    flex-direction: column;
}
.woocommerce .bbe-commerce ul.products li.product > .woocommerce-loop-product__link { flex-grow: 1; }
.woocommerce .bbe-commerce ul.products li.product > .button { align-self: flex-start; }

.woocommerce .summary a.bbe-pricing-contact { color: #133352; font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
