/*
 Theme Name:     Divi Child Theme
 Theme URI:      https://www.elegantthemes.com/gallery/divi/
 Description:    Divi Child Theme
 Author:         Elegant Themes
 Author URI:     https://www.elegantthemes.com
 Template:       Divi
 Version:        1.0.0
*/

/* =Theme customization starts here
------------------------------------------------------- */


@media (min-width: 768px) {
    .woo-variation-product-gallery {
        max-width: 98% !important;
        width: 100%;
    }
}


/* ============================================================
 * CWV: Reserve heights for late-injected widgets (CLS prevention)
 * Added 2026-05-01
 * ============================================================ */

/* Affirm "as low as $X/mo" badge */
.affirm-as-low-as,
.affirm-product-modal,
.affirm-site-modal,
[data-affirm-color] {
    min-height: 28px;
    display: inline-block;
}

/* WC Variation Swatches Pro */
.variations select {
    min-height: 44px;
}
.wvs-archive-swatches-on-image,
.variable-items-wrapper {
    min-height: 44px;
    min-width: 44px;
}

/* Trustpilot widget */
.trustpilot-widget {
    min-width: 100%;
}
.trustpilot-widget[data-style-height="240px"] { min-height: 240px; }
.trustpilot-widget[data-style-height="180px"] { min-height: 180px; }
.trustpilot-widget[data-style-height="120px"] { min-height: 120px; }
.trustpilot-widget[data-style-height="100px"] { min-height: 100px; }
.trustpilot-widget[data-style-height="52px"]  { min-height: 52px;  }

/* GTranslate widget container */
.gtranslate_wrapper,
#gt_float_wrapper,
.gt_container,
.gt_selector,
#gtranslate_selector {
    min-height: 32px;
    min-width: 80px;
}

/* WC Variation Swatches Pro (secondary reserve) */
.variations select {
    min-height: 38px;
}
.wvs-archive-swatches-on-image,
.variable-items-wrapper {
    min-height: 38px;
}

/* MaxMega Menu */
#mega-menu-wrap-primary-menu,
.mega-menu-wrap {
    min-height: 60px;
}

/* WooCommerce loop product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-loop-product__title {
    min-height: 2.5em;
}

/* Klaviyo / Mailchimp inline forms */
.klaviyo-form,
[id^="klaviyo-form-"],
#mc_embed_signup,
.mc4wp-form {
    min-height: 80px;
}

/* WP Reviews for Google + Better Business Reviews widgets */
.wprwg-widget,
.bbr-reviews-list,
.tp-reviews-list {
    min-height: 200px;
}


/* ============================================================
 * HEADER / FOOTER / TYPOGRAPHY - from header-footer.md handoff
 * ============================================================ */

:root {
    --co-black: #121212;
    --co-gold: #E5C966;
    --co-gold-dark: #C8A034;
    /* Accessible gold for TEXT on light/white backgrounds. #C8A034 is only ~2.5:1
       on white (fails WCAG); #8A6D1F is 4.9:1 (passes AA for small text) while
       keeping the bronze-gold brand look. Use for eyebrows, hero price, etc. */
    --co-gold-text: #8A6D1F;
    --co-gold-mid: #EFD678;
    --co-gold-soft: #FFF8E0;
    --co-gold-gradient: linear-gradient(135deg, #C8A034 0%, #FBF79E 100%);
    --co-ink: #101828;
    --co-text: #263244;
    --co-muted: #667085;
    --co-surface: #ffffff;
    --co-border: #d9e2ec;
    --co-radius: 8px;
    --co-container: 1200px;
    --co-font: "Inter", "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html {
    overflow-x: hidden;
    scroll-padding-top: 132px;
}

html.co-menu-open,
html.co-menu-open body {
    overflow: hidden;
}

body.co-clean-retail {
    overflow-x: hidden;
    color: var(--co-text);
    font-family: var(--co-font);
    font-size: 16px;
    line-height: 1.55;
    padding-top: 154px;
    background: var(--co-surface);
}

body.co-clean-retail * {
    box-sizing: border-box;
}

body.co-clean-retail h1,
body.co-clean-retail h2,
body.co-clean-retail h3,
body.co-clean-retail h4,
body.co-clean-retail h5,
body.co-clean-retail h6 {
    color: var(--co-ink);
    font-family: var(--co-font);
    line-height: 1.15;
    letter-spacing: 0;
}

body.co-clean-retail h1 { font-size: clamp(30px, 5vw, 52px); }
body.co-clean-retail h2 { font-size: clamp(24px, 4vw, 40px); }
body.co-clean-retail h3 { font-size: clamp(20px, 3vw, 28px); }
body.co-clean-retail h4 { font-size: 18px; }

body.co-clean-retail input,
body.co-clean-retail select,
body.co-clean-retail textarea,
body.co-clean-retail button {
    font-family: var(--co-font);
}

body.co-clean-retail .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body.co-clean-retail #top-header,
body.co-clean-retail #main-header,
body.co-clean-retail .et-l--header,
body.co-clean-retail .et_pb_section[class*="_tb_header"],
body.co-clean-retail #mega-menu-wrap-secondary-menu,
body.co-clean-retail #mega-menu-wrap-primary-menu,
body.co-clean-retail #main-footer,
body.co-clean-retail .et-l--footer {
    display: none !important;
}

.co-site-header {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    z-index: 99999;
    border-bottom: 1px solid rgba(229, 201, 102, 0.34);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 5px 24px rgba(18, 18, 18, 0.12);
    backdrop-filter: saturate(140%) blur(10px);
}

body.admin-bar .co-site-header {
    top: 32px;
}

.co-language-bar {
    color: #f8fafc;
    font-size: 12px;
    line-height: 1.25;
    background: var(--co-black);
}

.co-language-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: min(100% - 24px, var(--co-container));
    min-height: 38px;
    margin: 0 auto;
}

.co-language-inner > span {
    color: rgba(255, 255, 255, 0.86);
    font-weight: 650;
}

.co-language-control {
    min-width: 132px;
}

.co-language-control .gtranslate_wrapper,
.co-language-control .gt_container {
    position: relative;
    display: block !important;
    min-height: 0;
}

body.co-clean-retail .co-site-header .co-language-control select,
body.co-clean-retail .co-site-header .co-language-control .gt_selector {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    height: 28px !important;
    min-height: 28px !important;
    border: 1px solid rgba(229, 201, 102, 0.72) !important;
    border-radius: 8px !important;
    padding: 0 30px 0 10px !important;
    color: #f8fafc !important;
    font-size: 12px !important;
    line-height: 28px !important;
    font-weight: 600;
    background-color: #191919 !important;
    box-shadow: inset 0 0 0 1px rgba(229, 201, 102, 0.18) !important;
}

.co-language-control .gtranslate_wrapper::after,
.co-language-control .gt_container::after {
    content: "";
    position: absolute;
    right: 11px;
    top: 50%;
    width: 7px;
    height: 7px;
    border-right: 2px solid var(--co-gold);
    border-bottom: 2px solid var(--co-gold);
    pointer-events: none;
    transform: translateY(-65%) rotate(45deg);
}

body.co-clean-retail .co-site-header .co-language-continue,
body.co-clean-retail .co-site-header .co-language-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px !important;
    min-height: 28px !important;
    border: 0;
    border-radius: 8px;
    color: var(--co-black);
    font-size: 11px;
    line-height: 1 !important;
    font-weight: 700;
    background: var(--co-gold-gradient);
    box-shadow: none !important;
}

body.co-clean-retail .co-site-header .co-language-continue {
    margin-left: 2px;
    padding: 0 11px !important;
}

.co-language-close {
    width: 28px;
    padding: 0;
    color: rgba(255, 255, 255, 0.72);
    background: transparent;
}

.co-language-close span,
.co-language-close span::before {
    display: block;
    width: 13px;
    height: 2px;
    border-radius: 99px;
    background: currentColor;
}

.co-language-close span {
    transform: rotate(45deg);
}

.co-language-close span::before {
    content: "";
    transform: rotate(90deg);
}

html.co-language-hidden .co-language-bar {
    display: none;
}

html.co-language-hidden body.co-clean-retail {
    padding-top: 92px;
}

body.co-clean-retail .gtranslate_wrapper,
body.co-clean-retail #gt_float_wrapper {
    display: none !important;
}

body.co-clean-retail .co-language-control .gtranslate_wrapper {
    display: block !important;
}

.co-header-main {
    display: grid;
    grid-template-columns: 150px minmax(260px, 1fr) auto;
    align-items: center;
    gap: 18px;
    width: min(100% - 32px, var(--co-container));
    margin: 0 auto;
    padding: 12px 0;
    background: #fff;
}

.co-logo-link {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
}

.co-logo-link img {
    display: block;
    width: 76px;
    max-height: 54px;
    object-fit: contain;
}

.co-site-search {
    display: block;
    width: 100%;
}

.co-site-search .aws-container {
    width: 100%;
}

.co-site-search .aws-container .aws-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    height: 46px;
    border: 1px solid rgba(18, 18, 18, 0.22);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(229, 201, 102, 0.16);
}

.co-site-search .aws-container .aws-search-form .aws-wrapper {
    height: 46px;
    border: 0;
    background: #fff;
}

.co-site-search .aws-search-field,
.co-site-search input[type="search"] {
    width: 100%;
    height: 46px !important;
    min-height: 46px !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--co-black) !important;
    font-size: 15px !important;
    font-weight: 600;
    background: #fff !important;
    box-shadow: none !important;
}

.co-site-search .aws-search-field::placeholder {
    color: #777;
}

.co-site-search .aws-container .aws-search-form .aws-search-btn,
.co-site-search button {
    min-height: 46px;
    border: 0 !important;
    border-left: 1px solid rgba(229, 201, 102, 0.36) !important;
    border-radius: 0 !important;
    padding: 0;
    color: var(--co-gold) !important;
    font-weight: 900;
    background: var(--co-black) !important;
}

.co-site-search .aws-container .aws-search-form .aws-search-btn .aws-search-btn_icon,
.co-site-search .aws-container .aws-search-form .aws-search-btn svg {
    color: var(--co-gold) !important;
}

.co-site-search .aws-container .aws-search-form .aws-search-btn svg,
.co-site-search .aws-container .aws-search-form .aws-search-btn svg path {
    fill: currentColor !important;
    stroke: none !important;
}

.aws-search-result {
    z-index: 100001 !important;
    border: 1px solid rgba(18, 18, 18, 0.14) !important;
    border-radius: 12px !important;
    overflow: hidden;
    box-shadow: 0 18px 42px rgba(18, 18, 18, 0.18) !important;
}

.aws-search-result .aws_result_item:hover,
.aws-search-result .aws_result_item.hovered {
    background: var(--co-gold-soft) !important;
}

.co-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.co-header-actions a,
.co-mobile-search-toggle,
.co-language-toggle,
.co-menu-toggle,
.co-menu-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border: 1px solid rgba(18, 18, 18, 0.18);
    border-radius: 999px;
    padding: 0 13px;
    color: var(--co-black) !important;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
    background: #fff;
    cursor: pointer;
}

.co-header-actions a:hover,
.co-mobile-search-toggle:hover,
.co-language-toggle:hover,
.co-menu-toggle:hover,
.co-menu-close:hover {
    border-color: var(--co-gold);
    color: var(--co-black) !important;
    background: var(--co-gold-soft);
}

/* Language toggle: hidden until the user dismisses the language bar. */
.co-language-toggle {
    display: none;
}
html.co-language-hidden .co-language-toggle {
    display: inline-flex;
}

.co-header-actions svg {
    width: 20px;
    height: 20px;
    margin-right: 7px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.9;
}

.co-cart-link {
    position: relative;
}

.co-cart-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    margin-left: 6px;
    border-radius: 999px;
    color: #fff;
    font-size: 12px;
    background: var(--co-black);
    box-shadow: 0 0 0 1px var(--co-gold);
}

.co-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 4px;
    width: 44px;
    padding: 0;
}

.co-menu-toggle span:not(.screen-reader-text) {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 99px;
    background: var(--co-black);
}

.co-mobile-search {
    display: none;
    width: min(100% - 32px, var(--co-container));
    margin: 0 auto 12px;
}

.co-desktop-cats {
    border-top: 1px solid rgba(229, 201, 102, 0.24);
    background: #fff;
}

.co-category-menu {
    display: flex;
    justify-content: center;
    gap: 6px;
    width: min(100% - 32px, var(--co-container));
    margin: 0 auto;
    padding: 0;
    list-style: none;
    overflow: visible;
}

.co-category-menu li {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    list-style: none;
}

.co-category-menu > li {
    position: relative;
}

.co-category-menu a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 12px;
    color: var(--co-black) !important;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.co-category-menu a:hover {
    color: var(--co-gold-dark) !important;
}

.co-category-menu .sub-menu {
    position: absolute;
    left: 50%;
    top: 100%;
    z-index: 100002;
    display: none;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 2px 14px;
    min-width: 430px;
    max-width: min(680px, 92vw);
    margin: 0;
    padding: 16px;
    list-style: none;
    border: 1px solid rgba(229, 201, 102, 0.34);
    border-top: 3px solid var(--co-gold);
    border-radius: 0 0 12px 12px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(18, 18, 18, 0.18);
    transform: translateX(-50%);
}

.co-category-menu > li:hover > .sub-menu,
.co-category-menu > li:focus-within > .sub-menu {
    display: grid;
}

.co-category-menu .sub-menu a {
    justify-content: flex-start;
    min-height: 36px;
    padding: 7px 8px;
    border-radius: 7px;
    color: var(--co-black) !important;
    font-size: 13px;
    font-weight: 700;
}

.co-category-menu .sub-menu a:hover {
    color: var(--co-gold-dark) !important;
    background: var(--co-gold-soft);
}

.co-mobile-drawer {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(18, 18, 18, 0.58);
}

.co-drawer-panel {
    width: min(88vw, 390px);
    height: 100%;
    margin-left: auto;
    overflow-y: auto;
    padding: 18px;
    background: #fff;
    box-shadow: -12px 0 30px rgba(18, 18, 18, 0.26);
}

.co-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.co-drawer-head strong {
    color: var(--co-black);
    font-size: 18px;
}

.co-mobile-menu,
.co-drawer-links {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.co-mobile-menu li {
    margin: 0;
    padding: 0;
}

.co-mobile-menu a,
.co-drawer-links a {
    display: flex;
    align-items: center;
    min-height: 44px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: var(--co-radius);
    padding: 10px 12px;
    color: var(--co-black) !important;
    font-weight: 850;
    text-decoration: none;
    background: #fff;
}

.co-mobile-menu a:hover,
.co-drawer-links a:hover {
    border-color: rgba(229, 201, 102, 0.65);
    background: var(--co-gold-soft);
}

.co-drawer-links {
    margin-top: 16px;
}

.co-site-footer {
    margin-top: 56px;
    padding: 0 16px 24px;
    color: #424245;
    background: #f5f5f7;
    border-top: 4px solid var(--co-black);
}

body.co-clean-retail .co-site-footer a,
body.co-clean-retail .co-site-footer a:visited {
    color: #424245 !important;
    text-decoration: none;
}

body.co-clean-retail .co-site-footer a:hover,
body.co-clean-retail .co-site-footer a:focus {
    color: var(--co-gold-dark) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.co-footer-inner {
    width: min(100%, 1120px);
    margin: 0 auto;
    padding-top: 18px;
}

.co-footer-note,
.co-footer-shopline {
    margin: 0;
    color: #6e6e73;
    font-size: 13px;
    line-height: 1.45;
}

.co-footer-note {
    padding-bottom: 16px;
    border-bottom: 1px solid #d2d2d7;
}

.co-footer-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 28px;
    padding: 22px 0 28px;
}

.co-footer-grid details {
    min-width: 0;
    border: 0;
    padding: 0;
    background: transparent;
}

.co-footer-grid summary {
    display: block;
    margin-bottom: 9px;
    color: var(--co-black);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
    cursor: pointer;
    list-style: none;
}

.co-footer-grid summary::-webkit-details-marker {
    display: none;
}

.co-footer-grid span,
.co-footer-grid a {
    display: block;
    margin: 0 0 8px;
    color: #515154;
    font-size: 13px;
    line-height: 1.35;
}

.co-footer-shopline {
    padding: 16px 0 14px;
    border-top: 1px solid #d2d2d7;
}

body.co-clean-retail .co-footer-shopline a,
body.co-clean-retail .co-footer-shopline a:visited {
    color: var(--co-gold-dark) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.co-footer-bottom {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 14px;
    padding-top: 14px;
    border-top: 1px solid #d2d2d7;
    color: #6e6e73;
    font-size: 13px;
    line-height: 1.4;
}

.co-footer-bottom nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
}

body.co-clean-retail .co-footer-bottom nav a,
body.co-clean-retail .co-footer-bottom nav a:visited {
    color: #424245 !important;
}

body.co-clean-retail .co-footer-grid a,
body.co-clean-retail .co-footer-grid a:visited,
body.co-clean-retail .co-footer-bottom a,
body.co-clean-retail .co-footer-bottom a:visited,
body.co-clean-retail .co-footer-shopline a,
body.co-clean-retail .co-footer-shopline a:visited {
    color: #424245 !important;
}

body.co-clean-retail .co-footer-grid a:hover,
body.co-clean-retail .co-footer-grid a:focus,
body.co-clean-retail .co-footer-bottom a:hover,
body.co-clean-retail .co-footer-bottom a:focus,
body.co-clean-retail .co-footer-shopline a:hover,
body.co-clean-retail .co-footer-shopline a:focus {
    color: var(--co-gold-dark) !important;
}

.co-footer-bottom nav a + a::before {
    content: "|";
    margin: 0 9px;
    color: #86868b;
}

.co-footer-locale {
    color: #424245;
    white-space: nowrap;
}

@media (min-width: 981px) {
    .co-footer-grid details:not([open]) > :not(summary) {
        display: block;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    .co-footer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px 34px;
    }
}

@media (max-width: 980px) {
    body.admin-bar .co-site-header {
        top: 46px;
    }

    body.co-clean-retail {
        padding-top: 148px;
    }

    html.co-language-hidden body.co-clean-retail {
        padding-top: 108px;
    }

    .co-language-inner {
        justify-content: flex-end;
        gap: 7px;
        width: calc(100% - 20px);
        min-height: 38px;
    }

    .co-language-inner > span {
        display: none;
    }

    .co-language-control {
        flex: 1 1 auto;
        min-width: 0;
        max-width: 150px;
    }

    body.co-clean-retail .co-site-header .co-language-control select,
    body.co-clean-retail .co-site-header .co-language-control .gt_selector {
        height: 30px !important;
        min-height: 30px !important;
        font-size: 13px !important;
        line-height: 30px !important;
        border-color: rgba(229, 201, 102, 0.58) !important;
    }

    .co-header-main {
        grid-template-columns: auto 1fr;
        gap: 10px;
        width: calc(100% - 20px);
        padding: 8px 0 6px;
    }

    .co-logo-link img {
        width: 62px;
        max-height: 44px;
    }

    .co-search-desktop {
        display: none;
    }

    .co-mobile-search {
        display: block;
        width: calc(100% - 20px);
        margin-bottom: 8px;
    }

    .co-header-actions {
        justify-self: end;
        gap: 6px;
    }

    .co-header-actions > a,
    .co-mobile-search-toggle,
    .co-language-toggle {
        width: 42px;
        min-width: 42px;
        min-height: 42px;
        padding: 0;
        font-size: 0 !important;
    }

    .co-header-actions svg {
        width: 20px;
        height: 20px;
        margin-right: 0;
    }

    .co-header-actions > a > span:not(.co-cart-count),
    .co-cart-link > span:not(.co-cart-count) {
        display: none;
    }

    .co-cart-count {
        position: absolute;
        top: -5px;
        right: -5px;
        min-width: 18px;
        height: 18px;
        margin-left: 0;
        font-size: 10px;
    }

    .co-menu-toggle {
        display: inline-flex;
        width: 42px;
        min-height: 42px;
        border-color: rgba(18, 18, 18, 0.18);
    }

    .co-desktop-cats {
        display: none;
    }

    .co-site-search .aws-container .aws-search-form {
        grid-template-columns: minmax(0, 1fr) 46px;
        height: 44px;
        border-radius: 12px;
    }

    .co-site-search .aws-container .aws-search-form .aws-wrapper,
    .co-site-search .aws-search-field,
    .co-site-search input[type="search"] {
        height: 44px !important;
        min-height: 44px !important;
        font-size: 15px !important;
    }

    .co-site-search .aws-container .aws-search-form .aws-search-btn,
    .co-site-search button {
        min-height: 44px;
        padding-inline: 0;
        font-size: 0;
    }

    .co-drawer-panel {
        width: 100%;
        max-width: none;
        min-height: 100vh;
        height: 100vh;
        margin: 0;
        padding: 24px 26px 44px;
        border-top: 0;
        background: #f5f5f7;
        box-shadow: none;
    }

    .co-drawer-head {
        position: sticky;
        top: 0;
        z-index: 2;
        justify-content: flex-end;
        margin: -24px -26px 12px;
        padding: 14px 18px 0;
        color: #1d1d1f;
        background: #f5f5f7;
    }

    .co-drawer-head strong {
        display: none;
    }

    .co-menu-close {
        position: relative;
        width: 38px;
        min-width: 38px;
        height: 38px !important;
        min-height: 38px !important;
        border: 0;
        border-radius: 50%;
        padding: 0;
        color: #1d1d1f !important;
        font-size: 0;
        background: transparent;
    }

    .co-menu-close::before,
    .co-menu-close::after {
        content: "";
        position: absolute;
        left: 10px;
        top: 18px;
        width: 20px;
        height: 2px;
        border-radius: 99px;
        background: currentColor;
    }

    .co-menu-close::before {
        transform: rotate(45deg);
    }

    .co-menu-close::after {
        transform: rotate(-45deg);
    }

    .co-mobile-menu,
    .co-drawer-links {
        gap: 0;
    }

    .co-mobile-menu > li {
        border-bottom: 1px solid rgba(29, 29, 31, 0.1);
    }

    .co-mobile-menu > li > a {
        position: relative;
        min-height: 48px;
        border: 0;
        border-radius: 0;
        padding: 8px 34px 8px 0;
        color: #333336 !important;
        font-size: clamp(22px, 6.2vw, 30px);
        font-weight: 760;
        line-height: 1.16;
        letter-spacing: 0;
        background: transparent;
        outline: none;
    }

    .co-mobile-menu > .menu-item-has-children > a::after {
        content: "";
        position: absolute;
        right: 4px;
        top: 50%;
        width: 9px;
        height: 9px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        opacity: 0.55;
        transform: translateY(-65%) rotate(45deg);
        transition: transform 160ms ease, opacity 160ms ease;
    }

    .co-mobile-menu > .co-submenu-open > a::after {
        opacity: 1;
        transform: translateY(-35%) rotate(225deg);
    }

    .co-mobile-menu > .co-submenu-open > a::before {
        content: "";
        position: absolute;
        left: -16px;
        top: 12px;
        bottom: 12px;
        width: 4px;
        border-radius: 999px;
        background: var(--co-gold-gradient);
    }

    .co-mobile-menu .sub-menu {
        display: none;
        margin: -2px 0 12px;
        padding: 0;
        list-style: none;
    }

    .co-mobile-menu .co-submenu-open > .sub-menu {
        display: grid;
        gap: 2px;
    }

    .co-mobile-menu .sub-menu a {
        min-height: 34px;
        border: 0;
        border-radius: 0;
        padding: 5px 0 5px 18px;
        color: #5f6368 !important;
        font-size: 16px;
        font-weight: 600;
        line-height: 1.25;
        background: transparent;
        outline: none;
    }

    .co-drawer-links {
        margin-top: 22px;
        padding-top: 16px;
        border-top: 1px solid rgba(29, 29, 31, 0.12);
    }

    .co-drawer-links a,
    .co-drawer-links .co-drawer-language-toggle {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 34px;
        border: 0 !important;
        border-radius: 0 !important;
        padding: 5px 0 !important;
        color: #333336 !important;
        font-size: 16px;
        font-weight: 650;
        line-height: 1.25;
        background: transparent !important;
        box-shadow: none !important;
        outline: none;
        cursor: pointer;
        text-align: left;
        font-family: inherit;
    }

    .co-drawer-links a::before,
    .co-drawer-links .co-drawer-language-toggle::before {
        content: "";
        width: 6px;
        height: 6px;
        margin-right: 12px;
        border-radius: 50%;
        background: var(--co-gold-gradient);
    }

    /* Mobile: hide the header globe icon — language access lives in the drawer */
    .co-language-toggle {
        display: none !important;
    }

    .co-site-footer {
        margin-top: 34px;
        padding-inline: 0;
    }

    .co-footer-inner {
        width: calc(100% - 28px);
        padding-top: 12px;
    }

    .co-footer-note {
        padding-bottom: 12px;
        font-size: 12px;
    }

    .co-footer-grid {
        display: block;
        padding: 0;
        border-top: 0;
    }

    .co-footer-grid details {
        border-bottom: 1px solid #d2d2d7;
    }

    .co-footer-grid summary {
        position: relative;
        min-height: 44px;
        margin: 0;
        padding: 12px 34px 12px 0;
        color: #1d1d1f;
        font-size: 16px;
        font-weight: 700;
        cursor: pointer;
    }

    .co-footer-grid summary::after {
        content: "";
        position: absolute;
        right: 4px;
        top: 50%;
        width: 8px;
        height: 8px;
        border-right: 2px solid var(--co-black);
        border-bottom: 2px solid var(--co-black);
        transform: translateY(-65%) rotate(45deg);
        transition: transform 160ms ease, border-color 160ms ease;
    }

    .co-footer-grid details[open] summary::after {
        border-color: var(--co-gold-dark);
        transform: translateY(-35%) rotate(225deg);
    }

    .co-footer-grid span,
    .co-footer-grid a {
        margin: 0;
        padding: 3px 0 7px 12px;
        color: #424245 !important;
        font-size: 14px;
        line-height: 1.35;
    }

    .co-footer-grid details > :last-child {
        padding-bottom: 14px;
    }

    .co-footer-shopline {
        padding: 14px 0 13px;
        font-size: 14px;
    }

    .co-footer-bottom {
        grid-template-columns: 1fr;
        gap: 8px;
        padding-bottom: 18px;
        font-size: 12px;
    }

    .co-footer-bottom nav {
        order: 3;
    }

    .co-footer-locale {
        order: 1;
    }

    .co-footer-bottom > span:first-child {
        order: 2;
    }
}

@media (max-width: 369px) {
    .co-mobile-menu > li > a {
        font-size: 21px;
    }
}


/* ============================================================
 * OVERRIDES: bigger logo + header color matches footer
 * ============================================================ */

/* Match header background to footer (#f5f5f7) */
/* Header — BLACK background, light text, gold accents */
.co-site-header {
    background: var(--co-black) !important;
    backdrop-filter: none;
    border-bottom: 1px solid rgba(229, 201, 102, 0.28);
}

.co-header-main,
.co-desktop-cats {
    background: var(--co-black) !important;
}

/* Category bar separator (gold hairline) */
.co-desktop-cats {
    border-top: 1px solid rgba(229, 201, 102, 0.18);
}

/* Account / Cart / Menu pills — WHITE pills with dark text on black header */
.co-header-actions a,
.co-menu-toggle {
    color: var(--co-black) !important;
    background: #fff !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
}

.co-header-actions a:hover,
.co-menu-toggle:hover {
    color: var(--co-black) !important;
    background: var(--co-gold-soft) !important;
    border-color: var(--co-gold) !important;
}

.co-menu-toggle span:not(.screen-reader-text) {
    background: var(--co-black);
}

/* Mobile drawer close (×) — visible dark icon on the light drawer */
.co-menu-close {
    color: #1d1d1f !important;
    background: transparent !important;
    border-color: transparent !important;
}

.co-menu-close:hover {
    color: var(--co-gold-dark) !important;
    background: rgba(229, 201, 102, 0.12) !important;
}

@media (max-width: 980px) {
    .co-menu-close::before,
    .co-menu-close::after {
        background: #1d1d1f !important;
    }
    .co-menu-close:hover::before,
    .co-menu-close:hover::after {
        background: var(--co-gold-dark) !important;
    }
}

/* Cart count badge — gold on black */
.co-cart-count {
    background: var(--co-gold-gradient) !important;
    color: var(--co-black) !important;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2);
}

/* Category menu links — white text, gold hover */
.co-category-menu a {
    color: #ffffff !important;
}

.co-category-menu a:hover {
    color: var(--co-gold) !important;
}

/* Search bar stays light so it's readable, but tighten border */
.co-site-search .aws-container .aws-search-form,
.co-site-search form {
    border-color: rgba(229, 201, 102, 0.35) !important;
    box-shadow: inset 0 0 0 1px rgba(229, 201, 102, 0.18) !important;
}

/* Bigger logo - desktop */
.co-header-main {
    grid-template-columns: 220px minmax(260px, 1fr) auto;
}

.co-logo-link {
    min-height: 72px;
}

.co-logo-link img {
    width: 140px;
    max-height: 80px;
}

/* Bigger logo - mobile (kept proportional, not overgrown) */
@media (max-width: 980px) {
    .co-header-main {
        grid-template-columns: auto 1fr;
    }

    .co-logo-link img {
        width: 96px;
        max-height: 64px;
    }
}

/* Hide accessibility skip link unless keyboard-focused */
.skip-to-main {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.skip-to-main:focus {
    position: fixed;
    left: 16px;
    top: 16px;
    z-index: 100003;
    width: auto;
    height: auto;
    padding: 10px 16px;
    border-radius: 8px;
    color: var(--co-gold);
    font-weight: 700;
    text-decoration: none;
    background: var(--co-black);
    box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}


/* ============================================================
 * Homepage info strip — clean white bar (4 items)
 * Used by Divi Code module with class .co-info-strip
 * Mobile  -> infinite right-to-left marquee
 * Tablet+ -> fixed, evenly spaced across full width
 * ============================================================ */

.co-info-strip {
    width: 100%;
    margin: 0;
    padding: 16px 24px;
    background: #ffffff;
    border-top: 1px solid #ececec;
    border-bottom: 1px solid #ececec;
    overflow: hidden;
}

.co-info-track {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    flex-wrap: nowrap;
}

.co-info-item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    white-space: nowrap;
}

.co-info-icon {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    fill: none;
    stroke: var(--co-gold-dark);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.co-info-text {
    color: #6e6e73;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0;
}

.co-info-text strong {
    color: var(--co-black);
    font-weight: 700;
    margin-right: 4px;
}

/* Desktop & tablet: hide duplicate set, evenly distribute 4 items */
@media (min-width: 769px) {
    .co-info-clone {
        display: none !important;
    }
}

/* Mobile: marquee */
@media (max-width: 768px) {
    .co-info-strip {
        padding: 12px 0;
    }

    .co-info-track {
        justify-content: flex-start;
        width: max-content;
        max-width: none;
        gap: 36px;
        padding-left: 16px;
        animation: co-info-marquee 22s linear infinite;
    }

    .co-info-strip:hover .co-info-track,
    .co-info-strip:active .co-info-track {
        animation-play-state: paused;
    }

    .co-info-text {
        font-size: 14px;
    }
}

@keyframes co-info-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ============================================================
 * Weekend shipping-cutoff banner (.co-weekend-banner)
 * Champagne-gold bar rendered as the FIRST CHILD of the fixed
 * .co-site-header (theme: co_child_render_site_header; slim
 * pages: mu-plugins/co-slim-pages.php) so it sits at the very
 * top of every page. Revealed by inline JS only Fri 2 PM – Sun
 * midnight Toronto time (functions.php), which also bumps the
 * body padding-top by the banner height. Desktop/tablet shows
 * ONE static centred message; phones (≤768px) run a single-copy
 * ticker: co-weekend-ticker carries it from off-screen right
 * (100vw) past the left edge (-100%) and loops, so one message
 * shows at a time. No hover/touch pause — taps leave a sticky
 * :hover on touch browsers that would freeze the ticker.
 * ============================================================ */

.co-weekend-banner {
    width: 100%;
    margin: 0;
    padding: 9px 0;
    background: linear-gradient(180deg, #edd47c 0%, #ddba4e 55%, #c8a034 100%);
    border-bottom: 1px solid rgba(42, 31, 6, 0.35);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
    overflow: hidden;
}

.co-weekend-banner[hidden] {
    display: none;
}

/* Desktop/tablet: single static message, centred. */
.co-weekend-track {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

@keyframes co-weekend-ticker {
    from { transform: translateX(100vw); }
    to   { transform: translateX(-100%); }
}

.co-weekend-item {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    white-space: nowrap;
    font-family: var(--co-font);
}

.co-weekend-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-right: 12px;
    fill: none;
    stroke: #2a1f06;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.co-weekend-label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #2a1f06;
    line-height: 1;
    padding-right: 12px;
    margin-right: 12px;
    border-right: 1px solid rgba(42, 31, 6, 0.35);
}

.co-weekend-text {
    color: rgba(26, 19, 4, 0.92);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.01em;
    line-height: 1.2;
}

@media (max-width: 768px) {
    .co-weekend-banner {
        padding: 8px 0;
    }

    /* Phones: one copy tickers across — off-screen right, exits left, loops.
     * No hover/touch pause: taps leave a sticky :hover that froze it. */
    .co-weekend-track {
        justify-content: flex-start;
        width: max-content;
        animation: co-weekend-ticker 14s linear infinite;
    }

    .co-weekend-text {
        font-size: 12.5px;
    }
}

/* ============================================================
 * Force Divi wrappers around .co-info-strip to ZERO padding
 * Fixes: vertical clipping (desktop) + left gutter (mobile)
 * ============================================================ */

/* Section, row, column wrapping the Code module */
.et_pb_section:has(.co-info-strip),
.et_pb_row:has(.co-info-strip),
.et_pb_column:has(.co-info-strip),
.et_pb_module:has(.co-info-strip),
.et_pb_code:has(.co-info-strip),
.et_pb_code_inner:has(.co-info-strip) {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* Fallback for browsers without :has() — target the Code module itself */
.et_pb_code .co-info-strip {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}

/* Make sure the strip itself has breathing room and never clips text */
.co-info-strip {
    min-height: 56px;
    display: flex;
    align-items: center;
}

@media (max-width: 768px) {
    .co-info-strip {
        min-height: 44px;
    }

    /* Kill any inherited horizontal padding on mobile */
    .co-info-track {
        padding-left: 0 !important;
    }

    /* The first item starts flush at the left edge */
    .co-info-track > .co-info-item:first-child {
        padding-left: 16px;
    }
}

/* ============================================================
 * HARDER OVERRIDE — target boxof4cl section directly
 * The :has() rules above don't always beat Divi's inline section CSS.
 * This block uses doubled-class specificity to win every cascade.
 * ============================================================ */

.et_pb_section.boxof4cl.boxof4cl,
.et_pb_section.boxof4cl.boxof4cl > .et_pb_row,
.et_pb_section.boxof4cl.boxof4cl .et_pb_row,
.et_pb_section.boxof4cl.boxof4cl .et_pb_column,
.et_pb_section.boxof4cl.boxof4cl .et_pb_module,
.et_pb_section.boxof4cl.boxof4cl .et_pb_code,
.et_pb_section.boxof4cl.boxof4cl .et_pb_code_inner {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    min-height: 0 !important;
}

/* ============================================================
 * Spacing between fixed header and the white strip
 * Desktop  -> larger gap so it breathes from the category menu
 * Mobile   -> small gap (was 100px from Divi inline — beat with doubled class)
 * ============================================================ */

/* DESKTOP / TABLET: visible white gap above the strip */
@media (min-width: 769px) {
    .et_pb_section.boxof4cl.boxof4cl {
        margin-top: 28px !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* MOBILE: moderate gap, override Divi's inline 100px !important */
@media (max-width: 768px) {
    .et_pb_section.boxof4cl.boxof4cl {
        margin-top: 24px !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* Strip itself — guarantee enough vertical room so text never clips */
.et_pb_section.boxof4cl .co-info-strip {
    min-height: 64px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden;
}

@media (max-width: 768px) {
    .et_pb_section.boxof4cl .co-info-strip {
        min-height: 48px !important;
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }
}

/* ============================================================
 * Homepage redesign - mobile-first clean retail
 * ============================================================ */

.co-home {
    --co-home-pad: clamp(16px, 4vw, 40px);
    color: var(--co-ink);
    background: #fff;
}

.co-home a {
    color: var(--co-black);
    text-decoration: none;
}

.co-home a:hover,
.co-home a:focus {
    color: var(--co-gold-dark);
}

.co-home-section,
.co-home-hero {
    width: min(var(--co-container), calc(100% - (var(--co-home-pad) * 2)));
    margin: 0 auto;
}

.co-home-section {
    padding: clamp(32px, 7vw, 72px) 0;
}

.co-home-eyebrow {
    display: inline-flex;
    align-items: center;
    margin-bottom: 8px;
    color: var(--co-gold-text);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.co-home h1,
.co-home h2,
.co-home h3,
.co-home p {
    margin-top: 0;
}

.co-home h1 {
    max-width: 700px;
    margin-bottom: 16px;
    color: var(--co-ink);
    font-size: clamp(34px, 8vw, 68px);
    font-weight: 850;
    line-height: 0.98;
}

.co-home h2 {
    margin-bottom: 0;
    color: var(--co-ink);
    font-size: clamp(26px, 5.8vw, 44px);
    font-weight: 820;
    line-height: 1.04;
}

.co-home h3 {
    color: var(--co-ink);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.2;
}

.co-home p {
    color: var(--co-text);
}

.co-home-section__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.co-home-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--co-black) !important;
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
}

.co-home-link::after {
    content: ">";
    margin-left: 8px;
    color: var(--co-gold-dark);
}

.co-home-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 20px;
    border: 1px solid var(--co-black);
    border-radius: 999px;
    font-size: 15px;
    font-weight: 850;
    line-height: 1;
}

.co-home-button--primary {
    color: #fff !important;
    background: var(--co-black);
}

.co-home-button--primary:hover,
.co-home-button--primary:focus {
    border-color: var(--co-gold-dark);
    color: var(--co-black) !important;
    background: var(--co-gold-gradient);
}

.co-home-button--secondary {
    color: var(--co-black) !important;
    background: #fff;
}

.co-home-button--secondary:hover,
.co-home-button--secondary:focus {
    border-color: var(--co-gold-dark);
    color: var(--co-black) !important;
    background: var(--co-gold-soft);
}

.co-home-badges span,
.co-product-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    border: 1px solid rgba(200, 160, 52, 0.24);
    border-radius: 999px;
    color: var(--co-black);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    background: var(--co-gold-gradient);
}

/* Condition badge colors: Brand New = blue, Open Box = green, Certified Pre-Owned = yellow. */
.co-product-badge--new {
    background: #1a5fd0;
    border-color: rgba(26, 95, 208, 0.45);
    color: #fff;
}

.co-product-badge--openbox {
    background: #157347;
    border-color: rgba(21, 115, 71, 0.45);
    color: #fff;
}

.co-product-badge--cpo {
    background: #f5c518;
    border-color: rgba(212, 169, 0, 0.55);
    color: var(--co-black);
}

.co-category-grid,
.co-trust-grid,
.co-need-grid,
.co-marketplace-grid {
    display: grid;
    gap: 14px;
}

.co-category-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.co-category-grid a,
.co-trust-grid article,
.co-marketplace-grid article {
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 18px;
    background: #fff;
}

.co-category-grid a {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
    min-height: 132px;
    padding: 18px;
    color: var(--co-black) !important;
    font-size: 15px;
    font-weight: 850;
}

.co-category-grid svg,
.co-trust-grid svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: var(--co-gold-dark);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.co-category-grid a:hover,
.co-category-grid a:focus,
.co-brand-strip a:hover,
.co-brand-strip a:focus {
    border-color: rgba(200, 160, 52, 0.48);
    color: var(--co-black) !important;
    background: var(--co-gold-soft);
}

.co-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.co-product-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 18px;
    background: #fff;
}

.co-product-card__image {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: 18px;
    background: #f7f7f5;
}

.co-product-card__image img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto;
    object-fit: contain;
    object-position: center;
    mix-blend-mode: multiply;
}

.co-product-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
}

.co-product-card__badges {
    display: flex;
    min-height: 28px;
    flex-wrap: wrap;
    gap: 6px;
}

.co-product-badge--sale {
    position: absolute;
    left: 12px;
    top: 12px;
    border-color: rgba(18, 18, 18, 0.18);
    color: #fff;
    background: var(--co-black);
}

.co-stock-dot {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #157347;
    font-size: 12px;
    font-weight: 800;
}

.co-stock-dot::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

.co-home-retail .co-product-card h3 {
    margin: 0;
    height: 2.6em;
    max-height: 2.6em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    text-overflow: ellipsis;
}

.co-home-retail .co-product-card h3 a {
    color: var(--co-ink) !important;
}

.co-product-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin-top: auto;
    color: var(--co-black);
    font-size: 17px;
    font-weight: 850;
    line-height: 1.1;
}

.co-product-price .co-price-from {
    color: var(--co-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Price-less products (no priced variation): mirror the PDP's "unavailable"
   treatment instead of showing CA$0.00 in the card. */
.co-product-price .co-price-unavailable {
    color: #b3261e;
    font-size: 14px;
    font-weight: 700;
}

.co-product-price .co-price-now {
    color: var(--co-black);
    font-size: 17px;
    font-weight: 850;
}

.co-product-price .co-price-was,
.co-product-price del {
    color: var(--co-muted);
    font-size: 12px;
    font-weight: 500;
    text-decoration: line-through;
}

.co-product-price ins {
    color: var(--co-black);
    text-decoration: none;
}

/* Homepage only: sale-product price stands out in sale red */
.co-home-products .co-product-card--sale .co-product-price,
.co-home-products .co-product-card--sale .co-product-price .co-price-now,
.co-home-products .co-product-card--sale .co-product-price ins {
    color: #D7263D;
}

.co-product-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin-top: 4px;
    border: 1px solid var(--co-black);
    border-radius: 999px;
    color: var(--co-black) !important;
    font-size: 14px;
    font-weight: 850;
}

.co-product-cta:hover,
.co-product-cta:focus {
    border-color: var(--co-gold-dark);
    background: var(--co-gold-gradient);
}

.co-trust-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.co-trust-grid article {
    padding: 18px;
}

.co-trust-grid span {
    display: inline-flex;
    margin-bottom: 16px;
}

.co-trust-grid h3 {
    margin-bottom: 8px;
}

.co-trust-grid p {
    margin-bottom: 0;
    color: var(--co-muted);
    font-size: 14px;
    line-height: 1.45;
}

.co-home-retail .co-home-section.co-home-trade {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr) auto;
    align-items: center;
    gap: 24px;
    padding: clamp(28px, 5vw, 56px) clamp(32px, 7vw, 96px);
    border: 1px solid rgba(229, 201, 102, 0.28);
    border-radius: 24px;
    background: var(--co-gold-gradient);
}

.co-home-trade .co-home-eyebrow {
    color: var(--co-black);
}

.co-home-trade h2 {
    max-width: 620px;
    margin-bottom: 10px;
}

.co-home-trade p {
    max-width: 620px;
    margin-bottom: 0;
}

.co-home-trade ol {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.co-home-trade li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--co-text);
    font-weight: 650;
}

.co-home-trade li strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border-radius: 50%;
    color: #fff;
    background: var(--co-black);
}

.co-brand-strip {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 4px;
    padding-left: 4px;
    padding-right: 4px;
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-snap-type: none;
}

.co-brand-strip::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

.co-brand-strip a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 148px;
    min-height: 58px;
    padding: 12px 18px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 16px;
    color: var(--co-black) !important;
    font-weight: 850;
    background: #fff;
    scroll-snap-align: none;
}

.co-brand-strip a svg,
.co-brand-strip a img {
    display: block;
    width: 100px;
    height: 32px;
    object-fit: contain;
    object-position: center;
    color: var(--co-black);
}

/* Mobile-only refinements to the brand carousel */
@media (max-width: 980px) {
    .co-brand-strip {
        padding-bottom: 0;
        -webkit-overflow-scrolling: touch;
    }
}

.co-marketplace-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.co-marketplace-grid article {
    padding: 20px;
    background: #f7f7f5;
}

.co-marketplace-grid strong {
    display: block;
    margin-bottom: 8px;
    color: var(--co-ink);
    font-size: 18px;
}

.co-marketplace-grid span,
.co-home-empty {
    color: var(--co-muted);
}

/* ============================================================
 * Homepage retail refresh - featured deal carousel first
 * ============================================================ */

.co-home-retail {
    background: #fff;
}

.co-home-retail > .co-info-strip:first-child {
    margin-top: 0;
}

.co-home-retail .co-home-section {
    padding: clamp(26px, 5vw, 56px) 0;
}

.co-feature-carousel {
    position: relative;
    width: min(1480px, calc(100% - 48px));
    margin: 28px auto 0;
}

.co-feature-carousel__viewport {
    overflow: hidden;
    border: 1px solid rgba(229, 201, 102, 0.32);
    border-radius: 28px;
    background: var(--co-black);
}

.co-feature-carousel__track {
    display: flex;
    transition: transform 420ms ease;
    will-change: transform;
}

.co-feature-slide {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr);
    min-width: 100%;
    min-height: clamp(460px, calc(100vh - 280px), 640px);
    overflow: hidden;
    color: var(--co-black);
    background: #fff;
}

.co-feature-slide__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(30px, 5.5vw, 72px);
}

.co-feature-slide .co-home-eyebrow {
    color: var(--co-gold-text);
    opacity: 1;
}

.co-home-retail .co-feature-slide h1 {
    max-width: 720px;
    margin: 0 0 18px;
    color: var(--co-black);
    font-size: clamp(36px, 5.8vw, 68px);
    font-weight: 900;
    line-height: 1.02;
}

.co-feature-slide p {
    max-width: 560px;
    margin: 0 0 18px;
    color: var(--co-text);
    font-size: clamp(17px, 2vw, 22px);
    line-height: 1.4;
}

.co-feature-slide__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
    color: var(--co-muted);
    font-size: 14px;
    font-weight: 700;
}

.co-feature-slide__price {
    margin-bottom: 22px;
    color: var(--co-gold-text);
    font-size: clamp(24px, 4vw, 42px);
    font-weight: 900;
    line-height: 1;
}

.co-feature-slide .co-home-button {
    width: fit-content;
    min-width: 190px;
    border-color: var(--co-black);
    color: #fff !important;
    background: var(--co-black);
}

.co-feature-slide .co-home-button:hover,
.co-feature-slide .co-home-button:focus {
    color: var(--co-black) !important;
    background: #fff;
    border-color: var(--co-black);
}

.co-feature-slide__image {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: clamp(24px, 5vw, 70px);
}

.co-feature-slide__image::before {
    content: none;
}

.co-hero-product-image {
    position: relative;
    z-index: 1;
    width: min(100%, 520px);
    max-height: 460px;
    object-fit: contain;
    /* Soft radial mask so the baked-in white background of WooCommerce
       product photos fades into whatever color sits behind the image,
       instead of looking like a stark white rectangle on dark slides. */
    -webkit-mask-image: radial-gradient(ellipse at center, #000 55%, transparent 92%);
            mask-image: radial-gradient(ellipse at center, #000 55%, transparent 92%);
}

.co-feature-phone-fallback {
    position: relative;
    z-index: 1;
    width: min(56vw, 260px);
    aspect-ratio: 9 / 18;
    border: 9px solid #050505;
    border-radius: 34px;
    background: linear-gradient(160deg, #ffe48d 0%, #222 55%, #050505 100%);
    box-shadow: 0 32px 64px rgba(0, 0, 0, 0.44);
}

.co-feature-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 14px;
}

.co-feature-carousel__controls button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(18, 18, 18, 0.18);
    color: var(--co-black);
    background: #fff;
}

.co-carousel-prev,
.co-carousel-next {
    width: 42px;
    min-height: 42px;
    border-radius: 50%;
    font-size: 32px;
    line-height: 1;
}

.co-carousel-dots {
    display: inline-flex;
    gap: 4px;
    align-items: center;
}

/* WCAG 2.5.8 target size: each dot BUTTON is a 24x24 tap target (so it measures
   large enough), with the small 10px indicator drawn INSIDE via ::before. The
   dots stay visually small but are easy to tap, and don't overlap. */
.co-carousel-dots button {
    width: 24px;
    height: 24px;
    min-height: 24px;
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.co-carousel-dots button::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: rgba(16, 24, 40, 0.3);
    transition: width 0.2s ease, background 0.2s ease;
}

.co-carousel-dots button.is-active {
    width: 36px;
}

.co-carousel-dots button.is-active::before {
    width: 32px;
    background: var(--co-gold-gradient);
    border: 1px solid var(--co-gold-dark);
}

.co-deal-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.co-deal-tile a {
    display: grid;
    grid-template-rows: auto auto auto 1fr;
    min-height: 238px;
    overflow: hidden;
    padding: 14px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 14px;
    color: var(--co-black) !important;
    background: #f7f7f5;
}

.co-deal-tile a:hover,
.co-deal-tile a:focus {
    border-color: rgba(200, 160, 52, 0.48);
    background: var(--co-gold-soft);
}

.co-deal-tile__label {
    width: fit-content;
    margin-bottom: 8px;
    padding: 5px 8px;
    border-radius: 999px;
    color: var(--co-black);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    background: var(--co-gold-gradient);
}

.co-deal-tile strong {
    min-height: 2.24em;
    margin-bottom: 6px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--co-ink);
    font-size: clamp(17px, 1.45vw, 21px);
    font-weight: 900;
    line-height: 1.12;
}

.co-deal-tile span:not(.co-deal-tile__label) {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--co-muted);
    font-size: 13px;
    line-height: 1.35;
}

.co-deal-tile__image {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 104px;
    margin: 10px -4px -6px;
}

.co-deal-tile__image img {
    width: 100%;
    max-height: 116px;
    object-fit: contain;
    mix-blend-mode: multiply;
}

.co-home-retail .co-category-grid a {
    min-height: 118px;
}

.co-home-retail .co-trust-grid article {
    background: #f7f7f5;
}

@media (max-width: 1180px) {
    .co-feature-slide {
        grid-template-columns: 1fr 0.92fr;
    }

    .co-deal-grid,
    .co-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .co-home-retail .co-home-section.co-home-trade {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .co-home-retail .co-home-section.co-home-trade .co-home-button {
        justify-self: start;
    }

    .co-feature-carousel {
        width: min(100% - 28px, 720px);
        margin-top: 18px;
    }

    .co-feature-slide {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .co-feature-slide__copy {
        padding: 28px 22px 10px;
    }

    .co-feature-slide__image {
        min-height: 300px;
        padding: 12px 24px 28px;
    }

    .co-feature-slide h1 {
        font-size: clamp(34px, 9vw, 50px);
    }

    .co-feature-slide .co-home-button {
        width: 100%;
    }

    .co-deal-grid,
    .co-product-grid,
    .co-category-grid,
    .co-trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .co-feature-carousel {
        width: calc(100% - 20px);
    }

    .co-feature-carousel__viewport {
        border-radius: 22px;
    }

    .co-feature-slide__copy {
        padding: 24px 18px 8px;
    }

    .co-feature-slide h1 {
        font-size: 34px;
    }

    .co-feature-slide p {
        font-size: 16px;
    }

    .co-feature-slide__image {
        min-height: 250px;
    }

    .co-hero-product-image {
        max-height: 245px;
    }

    .co-deal-grid,
    .co-product-grid,
    .co-category-grid,
    .co-trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .co-deal-tile a {
        min-height: 214px;
        padding: 12px;
    }

    .co-deal-tile__label {
        font-size: 9px;
    }

    .co-deal-tile strong {
        font-size: 16px;
    }

    .co-deal-tile span:not(.co-deal-tile__label) {
        font-size: 12px;
    }

    .co-deal-tile__image {
        min-height: 92px;
    }

    .co-deal-tile__image img {
        max-height: 96px;
    }

    .co-product-card__body {
        gap: 7px;
        padding: 10px;
    }

    .co-home-retail .co-product-card h3 {
        font-size: 13px;
    }

    .co-product-price {
        font-size: 15px;
    }

    .co-product-cta {
        min-height: 38px;
        font-size: 13px;
    }

    .co-carousel-prev,
    .co-carousel-next {
        width: 38px;
        min-height: 38px;
    }
}

/* ============================================================
 * Sticky header scroll state
 * At top: full header. Scrolled: main header only with Apple-like blur.
 * ============================================================ */

.co-site-header,
.co-header-main,
.co-desktop-cats,
.co-mobile-search,
.co-language-bar {
    transition:
        background-color 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease,
        opacity 180ms ease,
        max-height 220ms ease,
        padding 220ms ease,
        transform 220ms ease;
}

.co-site-header.co-header-scrolled {
    background: rgba(18, 18, 18, 0.72) !important;
    border-bottom-color: rgba(229, 201, 102, 0.22);
    box-shadow: 0 10px 34px rgba(0, 0, 0, 0.24);
    backdrop-filter: saturate(180%) blur(18px);
    -webkit-backdrop-filter: saturate(180%) blur(18px);
}

.co-site-header.co-header-scrolled .co-header-main {
    background: transparent !important;
}

.co-site-header.co-header-scrolled .co-desktop-cats {
    max-height: 0;
    overflow: hidden;
    border-top-color: transparent;
    opacity: 0;
    pointer-events: none;
}

.co-site-header.co-header-scrolled .co-language-bar {
    max-height: 0;
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0;
    border-bottom-color: transparent;
    opacity: 0;
    pointer-events: none;
}

.co-site-header.co-header-scrolled .co-category-menu {
    transform: translateY(-8px);
}

@media (min-width: 981px) {
    .co-site-header.co-header-scrolled .co-header-main {
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .co-site-header.co-header-scrolled .co-logo-link {
        min-height: 58px;
    }

    .co-site-header.co-header-scrolled .co-logo-link img {
        width: 112px;
        max-height: 64px;
    }
}

@media (max-width: 980px) {
    .co-site-header.co-header-scrolled {
        background: rgba(18, 18, 18, 0.78) !important;
    }

    .co-site-header.co-header-scrolled .co-mobile-search {
        max-height: 0;
        margin-bottom: 0;
        overflow: hidden;
        opacity: 0;
        pointer-events: none;
    }

    .co-site-header.co-header-scrolled.co-search-open .co-mobile-search {
        max-height: 240px;
        margin-bottom: 12px;
        opacity: 1;
        pointer-events: auto;
    }
}

/* Mobile-only search toggle in header actions row: matches cart/account look,
   hidden by default, revealed only when the header is in its scrolled state. */
.co-mobile-search-toggle {
    display: none;
}

@media (max-width: 980px) {
    .co-site-header.co-header-scrolled .co-mobile-search-toggle,
    .co-site-header.co-search-open .co-mobile-search-toggle {
        display: inline-flex;
    }

    .co-site-header.co-search-open .co-mobile-search-toggle {
        border-color: var(--co-gold);
        background: var(--co-gold-soft);
    }
}

/* ============================================================
 * Product detail page - mobile-first Best Buy inspired flow
 * ============================================================ */

body.single-product.co-clean-retail {
    padding-bottom: 86px;
    background: #f4f6f8;
}

body.single-product.co-clean-retail #main-content {
    background: transparent;
}

body.single-product.co-clean-retail #main-content .container,
body.single-product.co-clean-retail #content-area,
body.single-product.co-clean-retail #left-area {
    width: 100%;
    max-width: none;
    padding: 0;
}

body.single-product.co-clean-retail #left-area {
    float: none;
}

body.single-product.co-clean-retail #sidebar {
    display: none;
}

body.single-product.co-clean-retail .woocommerce-notices-wrapper {
    width: min(100% - 20px, 1240px);
    margin: 0 auto;
}

.co-pdp {
    color: var(--co-text);
    background: #f4f6f8;
}

.co-pdp-frame {
    width: min(100% - 20px, 1240px);
    margin: 0 auto;
    padding: 12px 0 38px;
}

.co-pdp a {
    color: var(--co-black);
}

.co-pdp-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 10px;
    color: var(--co-muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.35;
}

.co-pdp-breadcrumb a {
    color: var(--co-muted) !important;
}

.co-pdp-breadcrumb__sep {
    color: #98a2b3;
}

.co-pdp-explore {
    display: grid;
    gap: 8px;
    margin: 0 0 12px;
    padding: 12px;
    border: 1px solid rgba(16, 24, 40, 0.1);
    border-radius: 8px;
    background: #fff;
}

.co-pdp-explore > span,
.co-pdp-eyebrow,
.co-pdp-price-block > span,
.co-pdp-meta-grid dt,
.co-pdp-sticky-action span {
    color: var(--co-muted);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0;
    line-height: 1;
    text-transform: uppercase;
}

.co-pdp-chip-row {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: thin;
}

.co-pdp-chip-row a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    flex: 0 0 auto;
    padding: 8px 12px;
    border: 1px solid rgba(200, 160, 52, 0.28);
    border-radius: 999px;
    color: var(--co-black) !important;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    background: var(--co-gold-soft);
}

.co-pdp-layout {
    display: grid;
    gap: 12px;
}

.co-pdp-gallery-panel,
.co-pdp-summary-panel,
.co-pdp-buy-panel,
.co-pdp-confidence article,
.co-pdp-after .woocommerce-tabs,
.co-pdp-after .related.products,
.co-pdp-after .upsells.products {
    border: 1px solid rgba(16, 24, 40, 0.1);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(16, 24, 40, 0.06);
}

.co-pdp-gallery-panel,
.co-pdp-summary-panel,
.co-pdp-buy-panel {
    min-width: 0;
    padding: 14px;
}

.co-pdp-gallery-panel {
    position: relative;
}

.co-pdp-gallery-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 30px;
    margin-bottom: 10px;
    color: var(--co-muted);
    font-size: 12px;
    font-weight: 800;
}

.co-pdp-gallery-toolbar strong,
.co-pdp-badges span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--co-black);
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    background: var(--co-gold-gradient);
}

.co-pdp .woocommerce-product-gallery,
.co-pdp .woo-variation-product-gallery {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    opacity: 1 !important;
}

.co-pdp .woocommerce-product-gallery__wrapper {
    margin: 0;
}

.co-pdp .woocommerce-product-gallery__image > a,
.co-pdp .woocommerce-product-gallery__image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    border-radius: 8px;
    background: #f8fafc;
}

.co-pdp .woocommerce-product-gallery__image img {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 100%;
    max-height: 360px;
    object-fit: contain;
    object-position: center;
    mix-blend-mode: multiply;
}

.co-pdp .flex-control-thumbs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 10px 2px 2px !important;
    margin: 0 !important;
    list-style: none;
}

.co-pdp .flex-control-thumbs li {
    width: 64px !important;
    min-width: 64px;
    overflow: hidden;
    border: 1px solid rgba(16, 24, 40, 0.14);
    border-radius: 8px;
    background: #fff;
}

.co-pdp .flex-control-thumbs img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.co-pdp-gallery-panel .onsale {
    top: 52px !important;
    left: 24px !important;
    z-index: 5;
    min-height: 30px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #fff;
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    background: #d7263d;
}

.co-pdp-summary-panel {
    display: grid;
    align-content: start;
    gap: 12px;
}

.co-pdp-eyebrow {
    margin: 0;
}

.co-pdp-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.co-pdp-badges:empty,
.co-pdp-summary-addons:empty {
    display: none;
}

.co-pdp-badges .co-pdp-badge--sale {
    color: #fff;
    background: #d7263d;
}

body.co-clean-retail .co-pdp-title {
    margin: 0;
    color: var(--co-ink);
    font-size: 22px;
    font-weight: 850;
    line-height: 1.18;
}

.co-pdp-rating {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 24px;
    color: var(--co-muted);
    font-size: 13px;
    font-weight: 750;
}

.co-pdp-rating .star-rating {
    width: 5.4em;
    float: none;
    color: #f5a400;
    font-size: 14px;
}

.co-pdp-rating a {
    color: var(--co-black) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.co-pdp-meta-grid {
    display: grid;
    gap: 8px;
    margin: 0;
}

.co-pdp-meta-grid div {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(16, 24, 40, 0.1);
    border-radius: 8px;
    background: #f8fafc;
}

.co-pdp-meta-grid dd {
    margin: 5px 0 0;
    color: var(--co-ink);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.co-pdp-overview-copy {
    color: var(--co-text);
    font-size: 14px;
    line-height: 1.55;
}

.co-pdp-overview-copy p:last-child,
.co-pdp-overview-copy ul:last-child,
.co-pdp-summary-addons > :last-child {
    margin-bottom: 0;
}

.co-pdp-buy-panel {
    display: grid;
    align-content: start;
    gap: 14px;
}

.co-pdp-price-block {
    display: grid;
    gap: 6px;
}

.co-pdp-price,
.co-pdp-price .price,
.co-pdp-sticky-action strong,
.co-pdp-sticky-action .price {
    color: var(--co-black);
    font-size: 28px;
    font-weight: 900;
    line-height: 1.05;
}

.co-pdp-price del,
.co-pdp-sticky-action del {
    color: var(--co-muted);
    font-size: 15px;
    font-weight: 600;
}

.co-pdp-price ins,
.co-pdp-sticky-action ins {
    color: #d7263d;
    text-decoration: none;
}

.co-pdp-stock {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--co-muted);
    font-size: 14px;
    font-weight: 850;
}

.co-pdp-stock::before {
    content: "";
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
    border-radius: 50%;
    background: currentColor;
}

.co-pdp-stock--in {
    color: #157347;
}

.co-pdp-stock--out {
    color: #b42318;
}

.co-pdp-cart form.cart {
    display: grid;
    gap: 12px;
    margin: 0;
}

.co-pdp-cart form.cart::before,
.co-pdp-cart form.cart::after {
    display: none;
}

.co-pdp-cart .quantity {
    width: 100%;
    margin: 0 !important;
}

.co-pdp-cart .quantity .qty {
    width: 100%;
    min-height: 48px;
    border: 1px solid rgba(16, 24, 40, 0.16);
    border-radius: 8px;
    color: var(--co-ink);
    font-size: 16px;
    font-weight: 750;
    background: #fff;
}

.co-pdp-cart .single_add_to_cart_button,
.co-pdp-cart .button.alt,
.co-pdp-sticky-action .button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    border: 1px solid var(--co-gold-dark) !important;
    border-radius: 8px !important;
    color: var(--co-black) !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center;
    background: var(--co-gold-gradient) !important;
    box-shadow: none !important;
}

.co-pdp-cart .single_add_to_cart_button:hover,
.co-pdp-cart .single_add_to_cart_button:focus,
.co-pdp-sticky-action .button:hover,
.co-pdp-sticky-action .button:focus {
    border-color: var(--co-black) !important;
    color: #fff !important;
    background: var(--co-black) !important;
}

.co-pdp-cart .single_add_to_cart_button.disabled,
.co-pdp-cart .single_add_to_cart_button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.co-pdp-cart table.variations,
.co-pdp-cart table.variations tbody,
.co-pdp-cart table.variations tr,
.co-pdp-cart table.variations th,
.co-pdp-cart table.variations td {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
}

.co-pdp-cart table.variations {
    margin: 0;
}

.co-pdp-cart table.variations tr {
    margin-bottom: 12px;
}

.co-pdp-cart table.variations label {
    display: block;
    margin: 0 0 7px;
    color: var(--co-ink);
    font-size: 14px;
    font-weight: 850;
}

.co-pdp-cart table.variations select {
    width: 100%;
    min-height: 48px;
    border: 1px solid rgba(16, 24, 40, 0.16);
    border-radius: 8px;
    padding: 0 12px;
    color: var(--co-ink);
    font-size: 15px;
    font-weight: 700;
    background: #fff;
}

.co-pdp-cart .reset_variations {
    display: inline-flex;
    margin-top: 8px;
    color: var(--co-muted);
    font-size: 12px;
    font-weight: 800;
}

.co-pdp-cart .single_variation_wrap,
.co-pdp-cart .woocommerce-variation-add-to-cart {
    display: grid;
    gap: 12px;
}

.co-pdp-cart .woocommerce-variation-price {
    font-weight: 900;
}

.co-pdp-cart .variable-items-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 44px;
}

.co-pdp-cart .variable-item {
    border: 1px solid rgba(16, 24, 40, 0.16) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.co-pdp-services {
    display: grid;
    border-top: 1px solid rgba(16, 24, 40, 0.1);
}

.co-pdp-service-row {
    display: grid;
    gap: 4px;
    padding: 13px 0;
    border-bottom: 1px solid rgba(16, 24, 40, 0.1);
}

.co-pdp-service-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.co-pdp-service-row strong {
    color: var(--co-ink);
    font-size: 15px;
    font-weight: 850;
}

.co-pdp-service-row span {
    color: var(--co-muted);
    font-size: 13px;
    line-height: 1.4;
}

.co-pdp-confidence {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.co-pdp-confidence article {
    display: grid;
    gap: 5px;
    padding: 14px;
}

.co-pdp-confidence strong {
    color: var(--co-ink);
    font-size: 15px;
    font-weight: 850;
}

.co-pdp-confidence span {
    color: var(--co-muted);
    font-size: 13px;
    line-height: 1.4;
}

.co-pdp-after {
    display: grid;
    gap: 14px;
    margin-top: 14px;
}

.co-pdp-after .woocommerce-tabs {
    overflow: hidden;
}

.co-pdp-after .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 0;
    overflow-x: auto;
    padding: 0 12px !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(16, 24, 40, 0.1);
    list-style: none;
    background: #fff;
}

.co-pdp-after .woocommerce-tabs ul.tabs::before,
.co-pdp-after .woocommerce-tabs ul.tabs::after {
    display: none !important;
}

.co-pdp-after .woocommerce-tabs ul.tabs li {
    flex: 0 0 auto;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.co-pdp-after .woocommerce-tabs ul.tabs li::before,
.co-pdp-after .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}

.co-pdp-after .woocommerce-tabs ul.tabs li a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 12px !important;
    color: var(--co-muted) !important;
    font-size: 14px;
    font-weight: 850;
}

.co-pdp-after .woocommerce-tabs ul.tabs li.active a {
    color: var(--co-black) !important;
    box-shadow: inset 0 -3px 0 var(--co-gold-dark);
}

.co-pdp-after .woocommerce-tabs .panel {
    padding: 16px;
    margin: 0;
}

.co-pdp-after .woocommerce-tabs .panel h2,
.co-pdp-after .related.products > h2,
.co-pdp-after .upsells.products > h2 {
    margin: 0 0 12px;
    color: var(--co-ink);
    font-size: 21px;
    font-weight: 900;
    line-height: 1.2;
}

.co-pdp-after .woocommerce-tabs .panel p,
.co-pdp-after .woocommerce-tabs .panel li {
    color: var(--co-text);
    font-size: 15px;
    line-height: 1.6;
}

.co-pdp-after table.shop_attributes {
    border: 0;
    margin: 0;
}

.co-pdp-after table.shop_attributes th,
.co-pdp-after table.shop_attributes td {
    padding: 12px;
    border: 1px solid rgba(16, 24, 40, 0.1);
    color: var(--co-text);
    font-size: 14px;
    background: #fff;
}

.co-pdp-after .related.products,
.co-pdp-after .upsells.products {
    padding: 16px;
}

.co-pdp-after ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0 !important;
}

.co-pdp-after ul.products li.product {
    width: auto !important;
    margin: 0 !important;
}

.co-pdp-sticky-action {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99998;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(16, 24, 40, 0.14);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 -12px 32px rgba(16, 24, 40, 0.16);
    backdrop-filter: saturate(160%) blur(12px);
    -webkit-backdrop-filter: saturate(160%) blur(12px);
}

.co-pdp-sticky-action > div {
    min-width: 0;
}

.co-pdp-sticky-action strong {
    display: block;
    max-width: 48vw;
    overflow: hidden;
    color: #d7263d;
    font-size: 16px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.co-pdp-sticky-action .button {
    width: min(48vw, 220px);
    min-height: 46px;
    margin: 0;
    padding: 0 14px !important;
    white-space: normal;
}

@media (min-width: 700px) {
    .co-pdp-frame {
        width: min(100% - 32px, 1240px);
        padding-top: 18px;
    }

    .co-pdp-explore {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
    }

    .co-pdp-layout {
        grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1fr);
        gap: 14px;
    }

    .co-pdp-buy-panel {
        grid-column: 1 / -1;
    }

    .co-pdp-meta-grid,
    .co-pdp-confidence {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.co-clean-retail .co-pdp-title {
        font-size: 26px;
    }

    .co-pdp-cart form.cart:not(.variations_form) {
        grid-template-columns: 124px minmax(0, 1fr);
        align-items: center;
    }
}

@media (min-width: 981px) {
    body.single-product.co-clean-retail {
        padding-bottom: 0;
    }

    .co-pdp-sticky-action {
        display: none;
    }

    .co-pdp-after ul.products {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1080px) {
    .co-pdp-frame {
        padding-top: 24px;
        padding-bottom: 54px;
    }

    .co-pdp-layout {
        grid-template-columns: minmax(400px, 1.06fr) minmax(320px, 0.9fr) minmax(290px, 0.68fr);
        gap: 16px;
        align-items: start;
    }

    .co-pdp-gallery-panel,
    .co-pdp-buy-panel {
        position: sticky;
        top: 150px;
    }

    .co-pdp-buy-panel {
        grid-column: auto;
    }

    .co-pdp-gallery-panel,
    .co-pdp-summary-panel,
    .co-pdp-buy-panel {
        padding: 16px;
    }

    .co-pdp .woocommerce-product-gallery__image > a,
    .co-pdp .woocommerce-product-gallery__image {
        min-height: 430px;
    }

    body.co-clean-retail .co-pdp-title {
        font-size: 29px;
    }
}

@media (max-width: 420px) {
    .co-pdp-frame {
        width: calc(100% - 16px);
    }

    .co-pdp-gallery-panel,
    .co-pdp-summary-panel,
    .co-pdp-buy-panel,
    .co-pdp-after .woocommerce-tabs .panel,
    .co-pdp-after .related.products,
    .co-pdp-after .upsells.products {
        padding: 12px;
    }

    body.co-clean-retail .co-pdp-title {
        font-size: 20px;
    }

    .co-pdp-price,
    .co-pdp-price .price {
        font-size: 25px;
    }
}

/* ============================================================
 * Custom product detail layout - mobile first
 * ============================================================ */

.co-shop-product-shell {
    background: #f6f7f8;
}

.co-bb-pdp {
    width: min(100%, 1280px);
    margin: 0 auto;
    padding: 12px 12px 136px;
    color: var(--co-text);
}

.co-bb-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 10px 0 12px;
    font-size: 13px;
}

.co-bb-breadcrumb a {
    color: var(--co-black);
}

.co-bb-option-grid {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.co-bb-option-grid button {
    flex: 0 0 auto;
    border: 1px solid #cfd5dc;
    background: #fff;
    padding: 8px 10px;
    color: var(--co-black);
    font-size: 13px;
}

.co-bb-main {
    display: grid;
    gap: 14px;
    padding: 14px 0 0;
}

.co-bb-media,
.co-bb-summary,
.co-bb-buybox,
.co-bb-panel {
    background: #fff;
    border: 1px solid #e0e4e8;
    padding: 14px;
}

.co-bb-media {
    display: grid;
    gap: 12px;
}

.co-bb-thumbs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    order: 2;
}

.co-bb-thumbs button,
.co-bb-thumbs span {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    border: 1px solid #d7dce1;
    background: #fff;
    padding: 4px;
}

.co-bb-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.co-bb-image-stage {
    display: grid;
    place-items: center;
    min-height: 280px;
    background: #fff;
}

.co-bb-main-image {
    max-width: 100%;
    max-height: 360px;
    object-fit: contain;
}

.co-bb-image-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 260px;
    background: #f1f3f5;
    color: #66717d;
}

.co-bb-media-count {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
}

.co-bb-media-count button {
    border: 0;
    background: none;
    color: var(--co-black);
    text-decoration: underline;
}

.co-bb-summary {
    display: grid;
    gap: 16px;
}

.co-bb-overview,
.co-bb-title-block,
.co-bb-options,
.co-bb-fulfillment section,
.co-bb-policy-stack section {
    display: grid;
    gap: 8px;
}

.co-bb-overview h2,
.co-bb-title-block h3,
.co-bb-option-row h3,
.co-bb-fulfillment h2,
.co-bb-policy-stack h3,
.co-bb-panel h2 {
    margin: 0;
}

body.co-shop-product-custom .co-bb-title-block--top h3 {
    font-size: 20px !important;
    line-height: 1.2 !important;
    font-weight: 700;
    width: 100%;
    max-width: none;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left;
    text-wrap: balance;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
}

body.co-shop-product-custom .co-bb-title-block--top h3 span {
    display: block;
}

.co-bb-title-block--top {
    display: grid;
    gap: 8px;
    padding: 8px 0 10px;
    border-bottom: 1px solid #e2e5e8;
    text-align: left;
}

.co-bb-title-block dl,
.co-bb-spec-list {
    display: grid;
    gap: 8px;
    margin: 0;
}

.co-bb-title-block dl div,
.co-bb-spec-list div {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 10px;
}

.co-bb-title-block dt,
.co-bb-spec-list dt {
    color: #6c747c;
}

.co-bb-title-block dd,
.co-bb-spec-list dd {
    margin: 0;
}

.co-bb-options {
    gap: 14px;
}

.co-bb-option-row {
    display: grid;
    gap: 8px;
}

.co-bb-option-grid button {
    min-width: 82px;
}

.co-bb-buybox {
    display: grid;
    gap: 14px;
}

.co-bb-price {
    font-size: 28px;
    font-weight: 800;
}

.co-bb-price del {
    display: block;
    font-size: 15px;
    font-weight: 500;
}

.co-bb-fulfillment,
.co-bb-policy-stack,
.co-bb-lower {
    display: grid;
    gap: 12px;
}

.co-bb-cart-button {
    width: 100%;
    min-height: 48px;
    border: 0;
    background: var(--co-gold);
    color: var(--co-black);
    font-weight: 800;
}

.co-bb-policy-row {
    padding-top: 12px;
    border-top: 1px solid #e0e4e8;
}

.co-bb-policy-row h3 {
    margin: 0 0 8px;
    font-size: 18px;
    line-height: 1.2;
}

.co-bb-policy-row a {
    color: #0046be;
    font-weight: 800;
    text-decoration: none;
}

.co-bb-policy-row a:hover {
    text-decoration: underline;
}

.co-bb-sticky-actions {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9999;
    display: grid;
    gap: 10px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: #fff;
    border-top: 1px solid #d7dce1;
    box-shadow: 0 -4px 18px rgba(15, 23, 42, 0.14);
}

.co-bb-sticky-price {
    color: #c8102e;
    font-size: 24px;
    font-weight: 800;
    line-height: 1;
}

.co-bb-sticky-price del {
    display: none;
}

.co-bb-sticky-buttons {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
}

.co-bb-sticky-button {
    min-height: 54px;
    border: 0;
    color: var(--co-black);
    font-size: 17px;
    font-weight: 800;
}

.co-bb-sticky-button--cart {
    background: var(--co-gold);
}

.co-bb-sticky-button--buy {
    background: var(--co-black);
    color: #fff;
}

.co-bb-lower {
    padding-top: 14px;
}

.co-bb-panel {
    display: grid;
    gap: 10px;
}

@media (min-width: 760px) {
    .co-bb-pdp {
        padding: 16px 20px 44px;
    }

    .co-bb-sticky-actions {
        display: none;
    }

    .co-bb-main {
        grid-template-columns: minmax(0, 1fr) 330px;
        align-items: start;
    }

    .co-bb-media,
    .co-bb-summary {
        grid-column: 1;
    }

    .co-bb-buybox {
        grid-column: 2;
        grid-row: 1 / span 2;
        position: sticky;
        top: 130px;
    }
}

@media (min-width: 1080px) {
    .co-bb-pdp {
        padding-inline: 24px;
    }

    .co-bb-main {
        grid-template-columns: minmax(360px, 0.95fr) minmax(320px, 0.9fr) 320px;
        gap: 16px;
    }

    .co-bb-media,
    .co-bb-summary,
    .co-bb-buybox {
        grid-column: auto;
        grid-row: auto;
    }

    .co-bb-media {
        grid-template-columns: 74px minmax(0, 1fr);
        align-items: start;
    }

    .co-bb-thumbs {
        flex-direction: column;
        order: 0;
        overflow: visible;
    }

    .co-bb-image-stage {
        min-height: 460px;
    }

    .co-bb-media-count {
        grid-column: 2;
    }

    .co-bb-title-block h1 {
        font-size: 10px;
    }
}

/* Product detail page using the front-page retail UI system */
body.co-shop-product-custom .co-shop-product-shell {
    background: #fff;
}

body.co-shop-product-custom .co-bb-pdp {
    width: min(var(--co-container), calc(100% - (var(--co-home-pad, clamp(16px, 4vw, 40px)) * 2)));
    padding-inline: 0;
    color: var(--co-text);
}

body.co-shop-product-custom .co-bb-breadcrumb {
    color: var(--co-muted);
    font-size: 13px;
    font-weight: 700;
}

body.co-shop-product-custom .co-bb-breadcrumb a {
    color: var(--co-black);
    font-weight: 800;
}

body.co-shop-product-custom .co-bb-breadcrumb a:hover,
body.co-shop-product-custom .co-bb-breadcrumb a:focus,
body.co-shop-product-custom .co-bb-media-count button:hover,
body.co-shop-product-custom .co-bb-media-count button:focus,
body.co-shop-product-custom .co-bb-policy-row a:hover,
body.co-shop-product-custom .co-bb-policy-row a:focus {
    color: var(--co-gold-dark);
}

body.co-shop-product-custom .co-bb-title-block--top {
    padding: 10px 0 18px;
    border-bottom: 1px solid rgba(18, 18, 18, 0.12);
}

body.co-shop-product-custom .co-bb-title-block--top h3 {
    color: var(--co-ink);
    font-weight: 850;
}

body.co-shop-product-custom .co-bb-media,
body.co-shop-product-custom .co-bb-summary,
body.co-shop-product-custom .co-bb-buybox,
body.co-shop-product-custom .co-bb-panel {
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 18px;
    background: #fff;
}

body.co-shop-product-custom .co-bb-media,
body.co-shop-product-custom .co-bb-panel {
    overflow: hidden;
}

body.co-shop-product-custom .co-bb-image-stage,
body.co-shop-product-custom .co-bb-image-placeholder {
    border-radius: 14px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-main-image {
    mix-blend-mode: multiply;
}

body.co-shop-product-custom .co-bb-thumbs button,
body.co-shop-product-custom .co-bb-thumbs span,
body.co-shop-product-custom .co-bb-option-grid button {
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 14px;
    background: #fff;
}

body.co-shop-product-custom .co-bb-thumbs button:hover,
body.co-shop-product-custom .co-bb-thumbs button:focus,
body.co-shop-product-custom .co-bb-option-grid button:hover,
body.co-shop-product-custom .co-bb-option-grid button:focus {
    border-color: rgba(200, 160, 52, 0.48);
    background: var(--co-gold-soft);
}

body.co-shop-product-custom .co-bb-overview h2,
body.co-shop-product-custom .co-bb-option-row h3,
body.co-shop-product-custom .co-bb-policy-row h3,
body.co-shop-product-custom .co-bb-panel h2 {
    color: var(--co-ink);
    font-weight: 820;
}

body.co-shop-product-custom .co-bb-overview h2,
body.co-shop-product-custom .co-bb-panel h2 {
    font-size: clamp(24px, 4.5vw, 36px);
    line-height: 1.04;
}

body.co-shop-product-custom .co-bb-price,
body.co-shop-product-custom .co-bb-price ins {
    color: var(--co-black);
    font-weight: 900;
}

body.co-shop-product-custom .co-bb-price del {
    color: var(--co-muted);
}

/* Affirm / Klarna financing messaging row, shown after the price in the buybox. */
body.co-shop-product-custom .co-bb-financing {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 4px 0 2px;
}

/* SureBright protection badge — shown (via co-mobile-ux.js) only when SureBright
   has an offer for the product. Styled like the Klarna/Affirm messaging rows. */
body.co-shop-product-custom .co-bb-surebright {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 6px 0 2px;
    padding: 10px 12px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 12px;
    background: #fff;
    color: var(--co-text);
    font-size: 14px;
    line-height: 1.4;
}

body.co-shop-product-custom .co-bb-surebright-icon {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    fill: none;
    stroke: var(--co-gold-dark);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.co-shop-product-custom .co-bb-surebright strong {
    color: var(--co-ink);
    font-weight: 850;
}

body.co-shop-product-custom .co-bb-financing .affirm-as-low-as {
    margin: 0;
    font-size: 14px;
    line-height: 1.4;
    color: var(--co-text);
}

body.co-shop-product-custom .co-bb-financing klarna-placement {
    display: block;
}

/* Hidden but functional standard WooCommerce add-to-cart form. Kept in the DOM
   (NOT display:none) so the SureBright SDK and Affirm's variation watcher can bind
   to .single_add_to_cart_button / .variations_form; positioned offscreen. */
body.co-shop-product-custom .co-bb-wc-native {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    border: 0;
    opacity: 0;
    pointer-events: none;
}

body.co-shop-product-custom .co-bb-policy-row {
    padding-top: 14px;
    border-top: 1px solid rgba(18, 18, 18, 0.12);
}

body.co-shop-product-custom .co-bb-policy-row a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    color: var(--co-black);
    font-weight: 850;
}

body.co-shop-product-custom .co-bb-policy-row a::after {
    content: ">";
    margin-left: 8px;
    color: var(--co-gold-dark);
}

body.co-shop-product-custom .co-bb-sticky-actions {
    border-top: 1px solid rgba(18, 18, 18, 0.12);
    background: #fff;
}

body.co-shop-product-custom .co-bb-sticky-price,
body.co-shop-product-custom .co-bb-sticky-price ins {
    color: var(--co-black);
}

body.co-shop-product-custom .co-bb-sticky-button {
    border: 1px solid var(--co-black);
    border-radius: 999px;
    font-weight: 850;
}

body.co-shop-product-custom .co-bb-sticky-button--cart {
    background: var(--co-gold-gradient);
}

body.co-shop-product-custom .co-bb-sticky-button--buy {
    background: var(--co-black);
}
/* Product gallery carousel from front-page system */
body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
    position: relative;
    display: block;
    padding: 0;
    overflow: hidden;
    border-radius: 18px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport {
    height: 100%;
    min-height: clamp(360px, 78vw, 620px);
    border: 0;
    border-radius: 18px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__track {
    height: 100%;
}

body.co-shop-product-custom .co-bb-gallery-slide {
    display: flex;
    min-height: clamp(360px, 78vw, 620px);
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-gallery-slide__image {
    width: 100%;
    min-height: inherit;
    padding: clamp(6px, 1.5vw, 14px);
}

body.co-shop-product-custom .co-bb-gallery-slide__image .co-bb-main-image {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__controls {
    position: absolute;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 3;
    margin: 0;
    pointer-events: none;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__controls button,
body.co-shop-product-custom .co-bb-gallery-carousel .co-carousel-dots {
    pointer-events: auto;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-carousel-prev,
body.co-shop-product-custom .co-bb-gallery-carousel .co-carousel-next {
    border-color: rgba(18, 18, 18, 0.12);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-carousel-dots {
    align-items: center;
    padding: 8px 10px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

@media (min-width: 1080px) {
    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport,
    body.co-shop-product-custom .co-bb-gallery-slide {
        min-height: 620px;
    }
}
/* Product carousel thumbnail boxes */
body.co-shop-product-custom .co-bb-gallery-thumbs {
    display: flex;
    gap: 10px;
    padding: 12px;
    overflow-x: auto;
    background: #fff;
    border-top: 1px solid rgba(18, 18, 18, 0.08);
    scrollbar-width: thin;
}

body.co-shop-product-custom .co-bb-gallery-thumbs button {
    flex: 0 0 68px;
    width: 68px;
    height: 68px;
    padding: 5px;
    border: 1px solid rgba(18, 18, 18, 0.14);
    border-radius: 14px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-gallery-thumbs button.is-active {
    border-color: var(--co-gold-dark);
    box-shadow: inset 0 0 0 2px rgba(200, 160, 52, 0.28);
}

body.co-shop-product-custom .co-bb-gallery-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

@media (min-width: 1080px) {
    body.co-shop-product-custom .co-bb-gallery-thumbs {
        padding: 14px;
    }

    body.co-shop-product-custom .co-bb-gallery-thumbs button {
        flex-basis: 76px;
        width: 76px;
        height: 76px;
    }
}
/* Product gallery rail and Best Buy-style description layout */
body.co-shop-product-custom .co-bb-overview--gallery {
    display: grid;
    gap: 18px;
    padding: 8px 0 2px;
    background: transparent;
    border: 0;
}

body.co-shop-product-custom .co-bb-overview--gallery h2 {
    margin: 0;
    color: var(--co-ink);
    font-size: clamp(28px, 5vw, 36px);
    font-weight: 850;
    line-height: 1.05;
}

body.co-shop-product-custom .co-bb-overview--gallery p {
    max-width: 760px;
    margin: 0;
    color: var(--co-text);
    font-size: clamp(17px, 2.25vw, 22px);
    line-height: 1.45;
}

body.co-shop-product-custom .co-bb-about-panel {
    gap: 18px;
    padding: clamp(24px, 5vw, 44px);
    border-radius: 18px;
}

body.co-shop-product-custom .co-bb-about-panel h2 {
    margin: 0;
    color: var(--co-ink);
    font-size: clamp(34px, 6vw, 54px);
    font-weight: 900;
    line-height: 1;
}

body.co-shop-product-custom .co-bb-about-title {
    max-width: 980px;
    margin: 0;
    color: var(--co-ink);
    font-size: clamp(24px, 4.6vw, 42px);
    font-weight: 900;
    line-height: 1.08;
}

body.co-shop-product-custom .co-bb-about-panel p,
body.co-shop-product-custom .co-bb-about-panel li {
    max-width: 980px;
    color: var(--co-text);
    font-size: clamp(17px, 2.1vw, 22px);
    line-height: 1.5;
}

body.co-shop-product-custom .co-bb-gallery-thumbs {
    display: none;
}

@media (max-width: 759px) {
    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__controls {
        right: 10px;
        bottom: 10px;
        left: 10px;
    }
}

@media (min-width: 760px) {
    body.co-shop-product-custom .co-bb-main {
        align-items: start;
    }

    body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        align-items: stretch;
        background: #fff;
    }

    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport {
        grid-column: 2;
        grid-row: 1;
        border-radius: 0 18px 18px 0;
    }

    body.co-shop-product-custom .co-bb-gallery-thumbs {
        grid-column: 1;
        grid-row: 1;
        display: flex;
        flex-direction: column;
        gap: 14px;
        max-height: 620px;
        padding: 18px 10px;
        overflow-x: hidden;
        overflow-y: auto;
        border-top: 0;
        border-right: 1px solid rgba(18, 18, 18, 0.08);
        background: #fff;
    }

    body.co-shop-product-custom .co-bb-gallery-thumbs button {
        flex: 0 0 74px;
        width: 74px;
        height: 74px;
        border-radius: 8px;
    }

    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__controls {
        right: 22px;
        bottom: 22px;
        left: 114px;
    }

    body.co-shop-product-custom .co-bb-overview--gallery,
    body.co-shop-product-custom .co-bb-summary {
        grid-column: 1;
    }

    /* Single-image products render no thumbnail rail, so drop the reserved
       92px column and let the one image fill the whole gallery card. */
    body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel.co-bb-gallery-carousel--single {
        grid-template-columns: minmax(0, 1fr);
    }

    body.co-shop-product-custom .co-bb-gallery-carousel--single .co-feature-carousel__viewport {
        grid-column: 1;
        border-radius: 18px;
    }
}

@media (min-width: 1080px) {
    body.co-shop-product-custom .co-bb-media {
        grid-column: 1;
        grid-row: 1;
    }

    body.co-shop-product-custom .co-bb-summary {
        grid-column: 2;
        grid-row: 1;
    }

    body.co-shop-product-custom .co-bb-buybox {
        grid-column: 3;
        grid-row: 1;
    }

    body.co-shop-product-custom .co-bb-overview--gallery {
        grid-column: 1;
        grid-row: 2;
        padding-top: 18px;
    }

    body.co-shop-product-custom .co-bb-lower {
        padding-top: 28px;
    }
}
/* Left product column: gallery image with the Overview glued directly beneath
   it. Wrapping both in one grid item keeps them together no matter how tall the
   right-hand buybox column grows (e.g. out-of-stock products that add the
   back-in-stock form), instead of the surplus height pushing the Overview down
   to the middle of the buybox. */
body.co-shop-product-custom .co-bb-left {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

@media (min-width: 760px) {
    body.co-shop-product-custom .co-bb-left {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: start;
    }
}

/* Overview body: space out multiple paragraphs/lists when a variation's own
   Description carries more than one block. */
body.co-shop-product-custom .co-bb-overview-body {
    display: grid;
    gap: 10px;
}

/* Make inline links (e.g. the "Learn More" condition link) stand out as bold. */
body.co-shop-product-custom .co-bb-overview-body a {
    font-weight: 700;
}

/* Final two-column Best Buy product layout correction */
body.co-shop-product-custom .co-bb-title-block--side {
    padding: 0;
    border: 0;
    background: transparent;
}

body.co-shop-product-custom .co-bb-title-block--side h3 {
    margin: 0 !important;
    color: var(--co-ink);
    font-size: clamp(22px, 2.4vw, 32px) !important;
    font-weight: 850;
    line-height: 1.16 !important;
}

body.co-shop-product-custom .co-bb-summary {
    background: transparent;
    border: 0;
    padding: 0;
}

body.co-shop-product-custom .co-bb-options,
body.co-shop-product-custom .co-bb-buybox {
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 18px;
    background: #fff;
    padding: clamp(18px, 3vw, 28px);
}

body.co-shop-product-custom .co-bb-buybox {
    position: static !important;
    top: auto !important;
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100%;
}

@media (max-width: 759px) {
    body.co-shop-product-custom .co-bb-summary {
        display: grid;
        gap: 16px;
    }

    body.co-shop-product-custom .co-bb-title-block--side {
        order: -2;
    }

    body.co-shop-product-custom .co-bb-buybox {
        margin-top: 0;
    }
}

@media (min-width: 760px) {
    body.co-shop-product-custom .co-bb-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr) !important;
        gap: clamp(18px, 2.6vw, 32px) !important;
        align-items: start;
    }

    body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body.co-shop-product-custom .co-bb-summary {
        grid-column: 2 !important;
        grid-row: 1 / span 2 !important;
        display: flex;
        min-height: min(620px, calc(100vh - 210px));
        flex-direction: column;
        gap: clamp(16px, 2vw, 24px);
    }

    body.co-shop-product-custom .co-bb-overview--gallery {
        grid-column: 1 !important;
        grid-row: 2 !important;
        padding-top: 18px;
    }

    body.co-shop-product-custom .co-bb-buybox {
        margin-top: auto;
    }
}

@media (min-width: 1080px) {
    body.co-shop-product-custom .co-bb-main {
        grid-template-columns: minmax(560px, 1.06fr) minmax(420px, 0.94fr) !important;
    }

    body.co-shop-product-custom .co-bb-summary,
    body.co-shop-product-custom .co-bb-buybox,
    body.co-shop-product-custom .co-bb-overview--gallery,
    body.co-shop-product-custom .co-bb-media {
        grid-column: auto;
        grid-row: auto;
    }

    body.co-shop-product-custom .co-bb-summary {
        grid-column: 2 !important;
        grid-row: 1 / span 2 !important;
        min-height: 620px;
    }

    body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body.co-shop-product-custom .co-bb-overview--gallery {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
}
/* Best Buy-style right column product controls */
body.co-shop-product-custom .co-bb-product-info {
    display: grid;
    gap: 12px;
}

body.co-shop-product-custom .co-bb-deal-badge {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 6px;
    color: #fff;
    background: #c8102e;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
}

body.co-shop-product-custom .co-bb-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    color: var(--co-text);
    font-size: 14px;
    line-height: 1.35;
}

body.co-shop-product-custom .co-bb-meta-line strong,
body.co-shop-product-custom .co-bb-seller-line strong {
    color: var(--co-ink);
    font-weight: 850;
}

body.co-shop-product-custom .co-bb-rating-row {
    color: #b8c0cc;
    font-size: 23px;
    line-height: 1;
    letter-spacing: 1px;
}

body.co-shop-product-custom .co-bb-seller-line {
    margin: 0;
    color: var(--co-text);
    font-size: 15px;
    line-height: 1.35;
}

body.co-shop-product-custom .co-bb-seller-line a {
    color: #0046be;
    font-weight: 850;
    text-decoration: underline;
}

body.co-shop-product-custom .co-bb-save-line {
    color: #c8102e;
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
}

body.co-shop-product-custom .co-bb-save-line .woocommerce-Price-amount {
    color: inherit;
}

body.co-shop-product-custom .co-bb-buybox {
    display: grid;
    gap: 16px;
}

body.co-shop-product-custom .co-bb-price {
    color: #c8102e;
    font-size: clamp(32px, 4.4vw, 48px);
    font-weight: 900;
    line-height: 1.08;
}

body.co-shop-product-custom .co-bb-price ins,
body.co-shop-product-custom .co-bb-price .woocommerce-Price-amount {
    color: #c8102e;
    text-decoration: none;
}

body.co-shop-product-custom .co-bb-price del,
body.co-shop-product-custom .co-bb-price del .woocommerce-Price-amount {
    color: var(--co-muted);
    font-size: 18px;
    font-weight: 650;
}

body.co-shop-product-custom .co-bb-options {
    display: grid;
    gap: 22px;
}

body.co-shop-product-custom .co-bb-option-row {
    display: grid;
    gap: 12px;
}

body.co-shop-product-custom .co-bb-option-row h3 {
    margin: 0;
    color: var(--co-ink);
    font-size: clamp(21px, 2.2vw, 29px);
    font-weight: 850;
    line-height: 1.12;
}

body.co-shop-product-custom .co-bb-choice-grid,
body.co-shop-product-custom .co-bb-image-option-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

body.co-shop-product-custom .co-bb-choice-grid button {
    min-width: 92px;
    min-height: 58px;
    padding: 10px 16px;
    border: 1px solid #c8d1df;
    border-radius: 6px;
    color: var(--co-ink);
    background: #fff;
    font-size: 18px;
    font-weight: 750;
}

body.co-shop-product-custom .co-bb-image-option-grid button {
    display: grid;
    width: 112px;
    min-height: 142px;
    grid-template-rows: 92px auto;
    gap: 8px;
    align-items: center;
    justify-items: center;
    padding: 10px 8px;
    border: 1px solid #c8d1df;
    border-radius: 6px;
    color: #0046be;
    background: #fff;
    font-size: 15px;
    font-weight: 750;
    text-align: center;
}

body.co-shop-product-custom .co-bb-image-option__image {
    display: grid;
    width: 100%;
    height: 92px;
    place-items: center;
}

body.co-shop-product-custom .co-bb-image-option__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

body.co-shop-product-custom .co-bb-choice-grid button.is-active,
body.co-shop-product-custom .co-bb-image-option-grid button.is-active {
    border-color: #001e73;
    box-shadow: inset 0 0 0 2px #001e73;
    color: var(--co-ink);
}

body.co-shop-product-custom .co-bb-choice-grid button:hover,
body.co-shop-product-custom .co-bb-choice-grid button:focus,
body.co-shop-product-custom .co-bb-image-option-grid button:hover,
body.co-shop-product-custom .co-bb-image-option-grid button:focus {
    border-color: #001e73;
}

@media (min-width: 760px) {
    body.co-shop-product-custom .co-bb-summary {
        gap: 22px;
    }

    body.co-shop-product-custom .co-bb-buybox {
        order: 3;
        margin-top: auto;
    }

    body.co-shop-product-custom .co-bb-options {
        order: 2;
    }
}

@media (max-width: 520px) {
    body.co-shop-product-custom .co-bb-image-option-grid button {
        width: calc(50% - 5px);
    }

    body.co-shop-product-custom .co-bb-choice-grid button {
        flex: 1 1 calc(50% - 5px);
    }
}
/* Compact product option selector sizing */
body.co-shop-product-custom .co-bb-options {
    gap: 16px;
    padding: clamp(14px, 2vw, 20px);
}

body.co-shop-product-custom .co-bb-option-row {
    gap: 8px;
}

body.co-shop-product-custom .co-bb-option-row h3 {
    font-size: clamp(17px, 1.45vw, 22px);
    line-height: 1.12;
}

body.co-shop-product-custom .co-bb-choice-grid,
body.co-shop-product-custom .co-bb-image-option-grid {
    gap: 8px;
}

body.co-shop-product-custom .co-bb-choice-grid button {
    min-width: 76px;
    min-height: 42px;
    padding: 7px 12px;
    font-size: 15px;
    font-weight: 700;
}

body.co-shop-product-custom .co-bb-image-option-grid button {
    width: 86px;
    min-height: 108px;
    grid-template-rows: 66px auto;
    gap: 6px;
    padding: 8px 6px;
    font-size: 13px;
    font-weight: 700;
}

body.co-shop-product-custom .co-bb-image-option__image {
    height: 66px;
}

body.co-shop-product-custom .co-bb-choice-grid button.is-active,
body.co-shop-product-custom .co-bb-image-option-grid button.is-active {
    box-shadow: inset 0 0 0 1px #001e73;
}

@media (min-width: 1080px) {
    body.co-shop-product-custom .co-bb-options {
        padding: 18px;
    }

    body.co-shop-product-custom .co-bb-image-option-grid button {
        width: 92px;
        min-height: 114px;
        grid-template-rows: 70px auto;
    }

    body.co-shop-product-custom .co-bb-image-option__image {
        height: 70px;
    }
}

@media (max-width: 520px) {
    body.co-shop-product-custom .co-bb-image-option-grid button {
        width: calc(33.333% - 6px);
        min-width: 0;
    }
}
/* Desktop purchase buttons and equal-height product columns */
body.co-shop-product-custom .co-bb-buy-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
}

body.co-shop-product-custom .co-bb-action-button {
    min-height: 48px;
    border: 1px solid var(--co-black);
    border-radius: 999px;
    font-size: 15px;
    font-weight: 850;
    line-height: 1;
}

body.co-shop-product-custom .co-bb-action-button--cart {
    color: var(--co-black);
    background: var(--co-gold-gradient);
}

body.co-shop-product-custom .co-bb-action-button--buy {
    color: #fff;
    background: var(--co-black);
}

body.co-shop-product-custom [data-co-purchase].is-busy {
    opacity: 0.62;
    cursor: wait;
}

@media (min-width: 760px) {
    body.co-shop-product-custom .co-bb-main {
        --co-product-top-height: clamp(620px, 56vw, 760px);
        align-items: stretch !important;
    }

    body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel,
    body.co-shop-product-custom .co-bb-summary {
        height: var(--co-product-top-height) !important;
        min-height: 0 !important;
    }

    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport,
    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__track,
    body.co-shop-product-custom .co-bb-gallery-slide {
        height: 100% !important;
        min-height: 0 !important;
    }

    body.co-shop-product-custom .co-bb-gallery-thumbs {
        max-height: none;
        height: 100%;
    }

    body.co-shop-product-custom .co-bb-summary {
        overflow: hidden;
    }

    body.co-shop-product-custom .co-bb-options {
        overflow: auto;
    }

    body.co-shop-product-custom .co-bb-buybox {
        flex-shrink: 0;
    }
}

@media (max-width: 759px) {
    body.co-shop-product-custom .co-bb-buy-actions {
        display: none;
    }
}

/* ============================================================
 * Product-grade PDP refresh - mobile first
 * ============================================================ */
body.co-shop-product-custom {
    padding-bottom: 122px;
}

body.co-shop-product-custom .co-shop-product-shell,
body.co-shop-product-custom .co-bb-pdp {
    background: #fff;
}

body.co-shop-product-custom .co-bb-pdp {
    width: min(var(--co-container), calc(100% - 24px));
    padding: 10px 0 128px;
}

body.co-shop-product-custom .co-bb-breadcrumb {
    flex-wrap: nowrap;
    gap: 7px;
    overflow-x: auto;
    padding: 8px 0 10px;
    white-space: nowrap;
    scrollbar-width: none;
}

body.co-shop-product-custom .co-bb-breadcrumb::-webkit-scrollbar {
    display: none;
}

body.co-shop-product-custom .co-bb-main {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
    padding-top: 4px;
}

body.co-shop-product-custom .co-bb-summary,
body.co-shop-product-custom .co-bb-media,
body.co-shop-product-custom .co-bb-overview--gallery {
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
}

body.co-shop-product-custom .co-bb-summary {
    order: 1;
    display: grid;
    gap: 12px;
    overflow: visible !important;
}

body.co-shop-product-custom .co-bb-media {
    order: 2;
}

body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
    height: auto !important;
    min-height: 0 !important;
}

body.co-shop-product-custom .co-bb-overview--gallery {
    order: 3;
}

body.co-shop-product-custom .co-bb-product-info,
body.co-shop-product-custom .co-bb-buybox,
body.co-shop-product-custom .co-bb-options,
body.co-shop-product-custom .co-bb-panel {
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 8px;
    background: #fff;
}

body.co-shop-product-custom .co-bb-product-info {
    display: grid;
    gap: 10px;
    padding: 14px;
}

body.co-shop-product-custom .co-bb-badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

body.co-shop-product-custom .co-bb-deal-badge,
body.co-shop-product-custom .co-bb-condition-badge,
body.co-shop-product-custom .co-bb-stock-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0;
}

body.co-shop-product-custom .co-bb-deal-badge {
    color: #fff;
    background: #d7263d;
}

body.co-shop-product-custom .co-bb-condition-badge {
    color: var(--co-black);
    background: var(--co-gold-soft);
    border: 1px solid rgba(200, 160, 52, 0.36);
}

body.co-shop-product-custom .co-bb-stock-pill {
    gap: 6px;
    color: #157347;
    background: #eef8f1;
}

body.co-shop-product-custom .co-bb-stock-pill::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

body.co-shop-product-custom .co-bb-stock-pill.is-out-of-stock {
    color: #b42318;
    background: #fff0ee;
}

body.co-shop-product-custom .co-bb-title-block--side h1 {
    margin: 0 !important;
    color: var(--co-ink);
    font-size: 20px !important;
    font-weight: 900;
    line-height: 1.15 !important;
    letter-spacing: 0;
}

body.co-shop-product-custom .co-bb-title-block--side h1 span {
    display: block;
}

body.co-shop-product-custom .co-bb-selected-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--co-text);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.35;
}

body.co-shop-product-custom .co-bb-seller-line {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin: 0;
    color: var(--co-muted);
    font-size: 13px;
}

body.co-shop-product-custom .co-bb-seller-line strong {
    color: var(--co-black);
}

body.co-shop-product-custom .co-bb-buybox,
body.co-shop-product-custom .co-bb-options {
    padding: 14px;
}

body.co-shop-product-custom .co-bb-save-line {
    min-height: 0;
    color: #d7263d;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0;
}

body.co-shop-product-custom .co-bb-save-line:empty {
    display: none;
}

body.co-shop-product-custom .co-bb-price,
body.co-shop-product-custom .co-bb-sticky-price {
    color: #d7263d;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.05;
}

body.co-shop-product-custom .co-bb-price .price,
body.co-shop-product-custom .co-bb-price ins,
body.co-shop-product-custom .co-bb-price .woocommerce-Price-amount,
body.co-shop-product-custom .co-bb-sticky-price .price,
body.co-shop-product-custom .co-bb-sticky-price ins,
body.co-shop-product-custom .co-bb-sticky-price .woocommerce-Price-amount {
    color: inherit;
    text-decoration: none;
}

body.co-shop-product-custom .co-bb-price del,
body.co-shop-product-custom .co-bb-price del .woocommerce-Price-amount,
body.co-shop-product-custom .co-bb-sticky-price del,
body.co-shop-product-custom .co-bb-sticky-price del .woocommerce-Price-amount {
    color: var(--co-muted);
    font-size: 15px;
    font-weight: 650;
}

/* The Divi Theme Options custom CSS carries a global `del { all: unset; }`
   which strips the browser's line-through from every <del>. Restore the
   strikethrough on the regular ("was") price so the discount reads clearly. */
body.co-shop-product-custom .co-bb-price del,
body.co-shop-product-custom .co-bb-price del .woocommerce-Price-amount {
    text-decoration: line-through;
}

body.co-shop-product-custom .co-bb-buy-actions {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 8px;
}

body.co-shop-product-custom .co-bb-action-button,
body.co-shop-product-custom .co-bb-sticky-button {
    min-height: 50px;
    border: 1px solid var(--co-black);
    border-radius: 999px;
    font-size: 15px;
    font-weight: 850;
    line-height: 1;
}

body.co-shop-product-custom .co-bb-action-button--cart,
body.co-shop-product-custom .co-bb-sticky-button--cart {
    color: var(--co-black);
    background: var(--co-gold-gradient);
}

body.co-shop-product-custom .co-bb-action-button--buy,
body.co-shop-product-custom .co-bb-sticky-button--buy {
    color: #fff;
    background: var(--co-black);
}

body.co-shop-product-custom .co-bb-action-button.is-disabled,
body.co-shop-product-custom .co-bb-sticky-button.is-disabled {
    opacity: 0.48;
    cursor: not-allowed;
    pointer-events: none;
}

body.co-shop-product-custom .co-bb-fulfillment-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    padding-top: 4px;
}

body.co-shop-product-custom .co-bb-fulfillment-grid div {
    display: grid;
    gap: 2px;
    padding: 10px;
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 8px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-fulfillment-grid strong {
    color: var(--co-ink);
    font-size: 13px;
    line-height: 1.2;
}

body.co-shop-product-custom .co-bb-fulfillment-grid span {
    color: var(--co-muted);
    font-size: 12px;
    line-height: 1.3;
}

body.co-shop-product-custom .co-bb-options {
    display: grid;
    gap: 14px;
    overflow: visible !important;
}

body.co-shop-product-custom .co-bb-option-row {
    gap: 8px;
}

body.co-shop-product-custom .co-bb-option-row h3 {
    margin: 0;
    color: var(--co-ink);
    font-size: 16px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: 0;
}

body.co-shop-product-custom .co-bb-choice-grid,
body.co-shop-product-custom .co-bb-image-option-grid {
    display: grid;
    gap: 8px;
}

body.co-shop-product-custom .co-bb-choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.co-shop-product-custom .co-bb-image-option-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.co-shop-product-custom .co-bb-choice-grid button,
body.co-shop-product-custom .co-bb-image-option-grid button {
    width: 100%;
    min-width: 0;
    border: 1px solid rgba(18, 18, 18, 0.18);
    border-radius: 8px;
    color: var(--co-ink);
    background: #fff;
    font-weight: 800;
    letter-spacing: 0;
}

body.co-shop-product-custom .co-bb-choice-grid button {
    min-height: 46px;
    padding: 8px 10px;
    font-size: 14px;
}

body.co-shop-product-custom .co-bb-image-option-grid button {
    display: grid;
    grid-template-rows: 62px auto;
    gap: 6px;
    min-height: 102px;
    padding: 7px 6px;
    font-size: 12px;
}

body.co-shop-product-custom .co-bb-image-option__image {
    height: 62px;
}

body.co-shop-product-custom .co-bb-image-option__image img {
    mix-blend-mode: normal;
}

body.co-shop-product-custom .co-bb-choice-grid button.is-active,
body.co-shop-product-custom .co-bb-image-option-grid button.is-active {
    border-color: var(--co-black);
    box-shadow: inset 0 0 0 2px var(--co-black);
    background: var(--co-gold-soft);
}

body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
    display: grid;
    overflow: hidden;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 8px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport,
body.co-shop-product-custom .co-bb-gallery-slide {
    min-height: min(92vw, 430px) !important;
    height: auto !important;
    border-radius: 8px 8px 0 0;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-gallery-slide__image {
    min-height: inherit;
    padding: 6px;
}

body.co-shop-product-custom .co-bb-gallery-slide__image .co-bb-main-image,
body.co-shop-product-custom .co-bb-main-image,
body.co-shop-product-custom .co-hero-product-image {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    mix-blend-mode: normal;
    -webkit-mask-image: none;
            mask-image: none;
}

body.co-shop-product-custom .co-bb-gallery-thumbs {
    display: flex !important;
    gap: 8px;
    padding: 10px;
    overflow-x: auto;
    border-top: 1px solid rgba(18, 18, 18, 0.08);
    background: #fff;
    scrollbar-width: thin;
}

body.co-shop-product-custom .co-bb-gallery-thumbs button {
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    padding: 4px;
    border-radius: 8px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-gallery-thumbs button.is-active {
    border-color: var(--co-black);
    box-shadow: inset 0 0 0 1px var(--co-black);
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__controls {
    right: 10px;
    bottom: 76px;
    left: 10px;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-carousel-dots {
    display: none;
}

body.co-shop-product-custom .co-bb-gallery-carousel .co-carousel-prev,
body.co-shop-product-custom .co-bb-gallery-carousel .co-carousel-next {
    width: 38px;
    min-height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
}

body.co-shop-product-custom .co-bb-overview--gallery {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 8px;
    background: #fff;
}

body.co-shop-product-custom .co-bb-overview--gallery h2,
body.co-shop-product-custom .co-bb-panel h2 {
    margin: 0;
    color: var(--co-ink);
    font-size: 22px;
    font-weight: 900;
    line-height: 1.12;
    letter-spacing: 0;
}

body.co-shop-product-custom .co-bb-overview--gallery p,
body.co-shop-product-custom .co-bb-overview--gallery li {
    margin: 0;
    color: var(--co-text);
    font-size: 15px;
    line-height: 1.5;
}

body.co-shop-product-custom .co-bb-lower {
    display: grid;
    gap: 12px;
    padding-top: 16px;
}

body.co-shop-product-custom .co-bb-panel {
    display: grid;
    gap: 12px;
    padding: 16px;
    overflow: visible;
}

body.co-shop-product-custom .co-bb-about-panel h2,
body.co-shop-product-custom .co-bb-about-title {
    font-size: 22px;
    line-height: 1.15;
}

body.co-shop-product-custom .co-bb-about-title {
    margin: 0;
    color: var(--co-ink);
    font-weight: 850;
}

/* Collapsible "About This Product" panel. The <details> stays a default-display
   block so the native open/close keeps working; only the summary is restyled. */
body.co-shop-product-custom .co-bb-about-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    list-style: none;
}

body.co-shop-product-custom .co-bb-about-details > summary::-webkit-details-marker {
    display: none;
}

body.co-shop-product-custom .co-bb-about-details > summary h2 {
    margin: 0;
}

/* Chevron: points down when collapsed, flips up when open. */
body.co-shop-product-custom .co-bb-about-details > summary::after {
    content: "";
    flex: 0 0 auto;
    width: 11px;
    height: 11px;
    margin-right: 4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 0.2s ease;
}

body.co-shop-product-custom .co-bb-about-details[open] > summary::after {
    transform: translateY(2px) rotate(-135deg);
}

body.co-shop-product-custom .co-bb-about-body {
    display: grid;
    gap: 12px;
    margin-top: 14px;
}

/* Narrow-screen overflow fix (dynamic, applies to every product). Grid/flex
   children default to min-width:auto and won't shrink below their content, so a
   long title/model string (e.g. "S731B/DS") pushed the panel wider than the
   phone and the text clipped instead of wrapping. min-width:0 lets the columns
   shrink; overflow-wrap lets long strings break. Desktop layout is unaffected. */
body.co-shop-product-custom .co-bb-panel,
body.co-shop-product-custom .co-bb-about-body,
body.co-shop-product-custom .co-bb-panel > *,
body.co-shop-product-custom .co-bb-about-body > * {
    min-width: 0;
}
body.co-shop-product-custom .co-bb-about-panel,
body.co-shop-product-custom .co-bb-about-panel h2,
body.co-shop-product-custom .co-bb-about-panel h3,
body.co-shop-product-custom .co-bb-about-panel p,
body.co-shop-product-custom .co-bb-about-panel li,
body.co-shop-product-custom .co-bb-about-title {
    overflow-wrap: break-word;
    word-break: break-word;
}

body.co-shop-product-custom .co-bb-about-panel p,
body.co-shop-product-custom .co-bb-about-panel li,
body.co-shop-product-custom .co-bb-panel p,
body.co-shop-product-custom .co-bb-panel li {
    color: var(--co-text);
    font-size: 15px;
    line-height: 1.55;
}

body.co-shop-product-custom .co-bb-spec-list {
    gap: 0;
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 8px;
    overflow: hidden;
}

body.co-shop-product-custom .co-bb-spec-list div {
    grid-template-columns: minmax(100px, 0.44fr) minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
    border-bottom: 1px solid rgba(18, 18, 18, 0.08);
}

body.co-shop-product-custom .co-bb-spec-list div:last-child {
    border-bottom: 0;
}

body.co-shop-product-custom .co-bb-spec-list dt {
    color: var(--co-muted);
    font-weight: 800;
}

body.co-shop-product-custom .co-bb-spec-list dd {
    color: var(--co-ink);
    font-weight: 750;
}

body.co-shop-product-custom .co-bb-faq-list {
    display: grid;
    gap: 8px;
}

body.co-shop-product-custom .co-bb-faq-list details {
    border: 1px solid rgba(18, 18, 18, 0.1);
    border-radius: 8px;
    background: #f7f7f5;
}

body.co-shop-product-custom .co-bb-faq-list summary {
    cursor: pointer;
    padding: 12px;
    color: var(--co-ink);
    font-weight: 850;
}

body.co-shop-product-custom .co-bb-faq-list p {
    margin: 0;
    padding: 0 12px 12px;
}

body.co-shop-product-custom .co-bb-policy-panel a {
    color: var(--co-black);
    font-weight: 850;
    text-decoration: underline;
    text-decoration-color: var(--co-gold-dark);
    text-underline-offset: 3px;
}

body.co-shop-product-custom .co-bb-sticky-actions {
    gap: 8px;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(18, 18, 18, 0.12);
    background: rgba(255, 255, 255, 0.98);
}

body.co-shop-product-custom .co-bb-sticky-price {
    font-size: 20px;
}

body.co-shop-product-custom .co-bb-sticky-price del {
    display: none;
}

body.co-shop-product-custom .co-bb-sticky-buttons {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

body.co-shop-product-custom .co-bb-sticky-button {
    min-height: 48px;
    font-size: 14px;
}

body.co-shop-product-custom .psfw-popup-container {
    display: none !important;
}

@media (min-width: 520px) {
    body.co-shop-product-custom .co-bb-buy-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 760px) {
    body.co-shop-product-custom {
        padding-bottom: 0;
    }

    body.co-shop-product-custom .co-bb-pdp {
        width: min(var(--co-container), calc(100% - 32px));
        padding: 16px 0 48px;
    }

    body.co-shop-product-custom .co-bb-main {
        grid-template-columns: minmax(0, 1fr) minmax(330px, 430px) !important;
        gap: 18px !important;
    }

    body.co-shop-product-custom .co-bb-summary {
        grid-column: 2 !important;
        grid-row: 1 / span 2 !important;
        order: 0;
        gap: 14px;
    }

    body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
        grid-column: 1 !important;
        grid-row: 1 !important;
        order: 0;
    }

    body.co-shop-product-custom .co-bb-overview--gallery {
        grid-column: 1 !important;
        grid-row: 2 !important;
        order: 0;
    }

    body.co-shop-product-custom .co-bb-title-block--side h1 {
        font-size: 24px !important;
    }

    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport,
    body.co-shop-product-custom .co-bb-gallery-slide {
        min-height: 500px !important;
    }

    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport,
    body.co-shop-product-custom .co-bb-gallery-slide {
        border-radius: 8px 8px 0 0;
    }

    body.co-shop-product-custom .co-bb-gallery-slide__image .co-bb-main-image,
    body.co-shop-product-custom .co-bb-main-image,
    body.co-shop-product-custom .co-hero-product-image {
        max-height: none;
    }

    body.co-shop-product-custom .co-bb-sticky-actions {
        display: none;
    }

    body.co-shop-product-custom .co-bb-lower {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
        padding-top: 22px;
    }

    body.co-shop-product-custom .co-bb-about-panel {
        grid-column: 1 / -1;
    }
}

@media (min-width: 1080px) {
    body.co-shop-product-custom .co-bb-pdp {
        width: min(1280px, calc(100% - 48px));
    }

    body.co-shop-product-custom .co-bb-main {
        grid-template-columns: minmax(560px, 1fr) minmax(390px, 450px) !important;
        gap: 24px !important;
    }

    body.co-shop-product-custom .co-bb-product-info,
    body.co-shop-product-custom .co-bb-buybox,
    body.co-shop-product-custom .co-bb-options,
    body.co-shop-product-custom .co-bb-overview--gallery,
    body.co-shop-product-custom .co-bb-panel {
        padding: 18px;
    }

    body.co-shop-product-custom .co-bb-title-block--side h1 {
        font-size: 27px !important;
    }

    body.co-shop-product-custom .co-bb-gallery-carousel .co-feature-carousel__viewport,
    body.co-shop-product-custom .co-bb-gallery-slide {
        min-height: 620px !important;
    }

    body.co-shop-product-custom .co-bb-gallery-slide__image .co-bb-main-image,
    body.co-shop-product-custom .co-bb-main-image,
    body.co-shop-product-custom .co-hero-product-image {
        max-height: none;
    }
}

/* Mobile PDP order: title, gallery, price, options */
@media (max-width: 759px) {
    body.co-shop-product-custom .co-bb-summary {
        display: contents !important;
    }

    body.co-shop-product-custom .co-bb-product-info {
        order: 1;
    }

    body.co-shop-product-custom .co-bb-media.co-bb-gallery-carousel {
        order: 2;
    }

    body.co-shop-product-custom .co-bb-buybox {
        order: 3;
    }

    body.co-shop-product-custom .co-bb-options {
        order: 4;
    }

    body.co-shop-product-custom .co-bb-overview--gallery {
        order: 5;
    }

    body.co-shop-product-custom .co-bb-buybox .co-bb-action-button--buy {
        display: none;
    }

    body.co-shop-product-custom .co-bb-buybox .co-bb-buy-actions {
        grid-template-columns: 1fr;
    }
}

/* Mobile sticky purchase bar: compact and revealed after the shopper reaches price */
@media (max-width: 759px) {
    body.co-shop-product-custom {
        padding-bottom: 86px;
    }

    body.co-shop-product-custom .co-bb-sticky-actions {
        right: 8px;
        bottom: 8px;
        left: 8px;
        grid-template-columns: minmax(82px, 0.42fr) minmax(0, 1fr);
        align-items: center;
        gap: 8px;
        padding: 8px;
        border: 1px solid rgba(18, 18, 18, 0.12);
        border-radius: 14px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 10px 34px rgba(15, 23, 42, 0.18);
        opacity: 0;
        pointer-events: none;
        transform: translateY(calc(100% + 20px));
        transition: opacity 180ms ease, transform 220ms ease;
    }

    body.co-shop-product-custom.co-sticky-purchase-visible .co-bb-sticky-actions {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    body.co-shop-product-custom .co-bb-sticky-price {
        min-width: 0;
        overflow: hidden;
        font-size: 14px;
        line-height: 1.1;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    body.co-shop-product-custom .co-bb-sticky-price .screen-reader-text,
    body.co-shop-product-custom .co-bb-sticky-price del,
    body.co-shop-product-custom .co-bb-sticky-price del + .screen-reader-text {
        display: none;
    }

    body.co-shop-product-custom .co-bb-sticky-buttons {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 6px;
    }

    body.co-shop-product-custom .co-bb-sticky-button {
        min-height: 40px;
        padding: 0 10px;
        border-radius: 999px;
        font-size: 13px;
    }
}

/* ============================================================
 * Variation colour swatches — bare image (no box/border/padding)
 * with the colour name BELOW it. Appended last so it supersedes the
 * earlier conflicting .co-bb-image-option-grid rules in this file.
 * ============================================================ */
body.co-shop-product-custom .co-bb-image-option-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

body.co-shop-product-custom .co-bb-image-option-grid button {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: auto;
    min-width: 0;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.co-shop-product-custom .co-bb-image-option__image {
    display: block;
    width: 60px;
    height: 60px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
}

body.co-shop-product-custom .co-bb-image-option__image img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    mix-blend-mode: normal;
}

/* Selection indicator: a ring around the active image (no filled box). */
body.co-shop-product-custom .co-bb-image-option-grid button.is-active {
    background: transparent;
    box-shadow: none;
}

body.co-shop-product-custom .co-bb-image-option-grid button.is-active .co-bb-image-option__image {
    border-color: var(--co-black);
}

body.co-shop-product-custom .co-bb-image-option-grid button > span:last-child {
    display: block;
    width: 100%;
    font-size: 12px;
    line-height: 1.25;
    text-align: center;
}

body.co-shop-product-custom .co-bb-image-option-grid button.is-active > span:last-child {
    font-weight: 800;
}

/* ============================================================
 * Out-of-stock option values — solid grey (no strike-through).
 * ============================================================ */
body.co-shop-product-custom .co-bb-choice-grid button.is-unavailable,
body.co-shop-product-custom .co-bb-image-option-grid button.is-unavailable {
    color: #9aa0a6;
}

/* Text option: grey fill. */
body.co-shop-product-custom .co-bb-choice-grid button.is-unavailable {
    background: #f1f2f4;
    border-color: #d7dbe0;
}

/* Image swatch: grey the image. */
body.co-shop-product-custom .co-bb-image-option-grid button.is-unavailable .co-bb-image-option__image img {
    filter: grayscale(1);
    opacity: 0.5;
}

/* Back-in-stock subscribe form surfaced in the buybox. */
body.co-shop-product-custom .co-bb-oos-notify {
    margin-top: 6px;
}

body.co-shop-product-custom .co-bb-oos-notify[hidden] {
    display: none;
}

body.co-shop-product-custom .co-bb-oos-notify .cwginstock-subscribe-form {
    display: block;
    margin: 0;
}

/* "Out of Stock" pill shown in place of the buy buttons. */
body.co-shop-product-custom .co-bb-action-button--oos {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    color: #6b7280;
    background: #eef0f2;
    border-color: #d7dbe0;
    cursor: not-allowed;
}

body.co-shop-product-custom .co-bb-action-button--oos[hidden] {
    display: none !important;
}

/* Hide the plugin's duplicate "Out of stock" line (our pill already says it). */
body.co-shop-product-custom .co-bb-oos-notify p.stock,
body.co-shop-product-custom .co-bb-oos-notify .stock.out-of-stock {
    display: none;
}

/* Restyle the Back In Stock subscribe form to match the site UI. */
body.co-shop-product-custom .co-bb-oos-notify .panel {
    margin: 0;
    border: 1px solid rgba(18, 18, 18, 0.14);
    border-radius: 12px;
    background: #fff;
    box-shadow: none;
    overflow: hidden;
}

body.co-shop-product-custom .co-bb-oos-notify .panel-heading {
    padding: 12px 14px 4px;
    border: 0;
    background: #fff;
    color: var(--co-ink);
}

body.co-shop-product-custom .co-bb-oos-notify .panel-heading h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--co-ink);
}

body.co-shop-product-custom .co-bb-oos-notify .panel-body {
    padding: 10px 14px 14px;
}

body.co-shop-product-custom .co-bb-oos-notify .cwgstock_name,
body.co-shop-product-custom .co-bb-oos-notify .cwgstock_email,
body.co-shop-productS-custom .co-bb-oos-notify .cwgstock_phone {
    width: 100%;
    min-height: 44px;
    margin: 0 0 10px;
    padding: 10px 12px;
    border: 1px solid rgba(18, 18, 18, 0.2);
    border-radius: 8px;
    background: #fff;
    font-size: 14px;
}

body.co-shop-product-custom .co-bb-oos-notify .cwgstock_button {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--co-black);
    border-radius: 999px;
    background: var(--co-gold-gradient);
    color: var(--co-black);
    font-size: 15px;
    font-weight: 850;
    cursor: pointer;
    box-shadow: none;
    text-shadow: none;
}

body.co-shop-product-custom .co-bb-oos-notify .cwgstock_output {
    margin-top: 8px;
    font-size: 13px;
}

/* ---- About This Product: normalised description, consistent across all products ---- */
body.co-shop-product-custom .co-bb-about-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 980px;
}

body.co-shop-product-custom .co-bb-about-content h4 {
    margin: 8px 0 0;
    color: var(--co-ink);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.25;
}

body.co-shop-product-custom .co-bb-about-content p,
body.co-shop-product-custom .co-bb-about-content li {
    margin: 0;
    color: var(--co-text);
    font-size: 15px;
    line-height: 1.6;
}

body.co-shop-product-custom .co-bb-about-content ul,
body.co-shop-product-custom .co-bb-about-content ol {
    margin: 0;
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.co-shop-product-custom .co-bb-about-content strong,
body.co-shop-product-custom .co-bb-about-content b {
    font-weight: 700;
    color: var(--co-ink);
}

body.co-shop-product-custom .co-bb-about-content a {
    color: var(--co-accent, #1a5fd0);
    text-decoration: underline;
}

body.co-shop-product-custom .co-bb-about-content table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

body.co-shop-product-custom .co-bb-about-content th,
body.co-shop-product-custom .co-bb-about-content td {
    border: 1px solid var(--co-line, #e3e3e3);
    padding: 8px 10px;
    text-align: left;
    vertical-align: top;
}

/* Shop / category / search loops render the shared homepage product card
   (co-product-card, via woocommerce/content-product.php). Strip the default
   loop-item chrome so the card isn't double-framed. The site's existing
   responsive grid and float-based filter-sidebar layout are left untouched. */
.woocommerce ul.products li.product.co-shop-card-item,
.et_pb_shop ul.products li.product.co-shop-card-item {
    display: flex;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
}

.co-shop-card-item > .co-product-card {
    width: 100%;
}

/* Card actions — Add to Cart + View Details side by side (50/50), all screens. */
.co-product-actions {
    display: flex;
    gap: 8px;
    margin-top: auto;
    align-items: stretch;
}

.co-product-actions > .button,
.co-product-actions > a.add_to_cart_button,
.co-product-actions > .co-product-cta {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 10px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* Add to Cart = primary (gold) */
.co-product-actions .button,
.co-product-actions a.add_to_cart_button {
    border: 1px solid var(--co-gold-dark) !important;
    background: var(--co-gold-gradient) !important;
    color: var(--co-black) !important;
    cursor: pointer;
}

.co-product-actions .button:hover,
.co-product-actions a.add_to_cart_button:hover {
    filter: brightness(0.97);
}

/* View Details = secondary (outline) */
.co-product-actions .co-product-cta {
    border: 1px solid var(--co-border) !important;
    background: #fff !important;
    color: var(--co-ink) !important;
    font-weight: 700 !important;
}

.co-product-actions .co-product-cta:hover {
    border-color: var(--co-ink) !important;
}

/* Hide WooCommerce's appended "View cart" link so the 50/50 layout stays intact. */
.co-product-actions .added_to_cart {
    display: none !important;
}

/* Kill Divi's button hover arrow (the ::after glyph) on the card action buttons. */
.co-product-actions .button::before,
.co-product-actions .button::after,
.co-product-actions a.add_to_cart_button::before,
.co-product-actions a.add_to_cart_button::after,
.co-product-actions .co-product-cta::before,
.co-product-actions .co-product-cta::after,
.co-product-actions .button:hover::after,
.co-product-actions a.add_to_cart_button:hover::after,
.co-product-actions .co-product-cta:hover::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
    margin: 0 !important;
}

/* ============================================================
 * Shop toolbar — Best Buy-style bar above the grid
 * [result count] ........ [In Stock toggle] [Sort]
 * Mobile-first; enhances at >=600px.
 * ============================================================ */
.co-shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin: 0 0 18px;
    padding: 12px 14px;
    background: #f6f7f9;
    border: 1px solid var(--co-border);
    border-radius: 14px;
}

.co-shop-toolbar__count {
    flex: 1 1 120px;
    min-width: 0;
    color: var(--co-muted);
    font-size: 13px;
    font-weight: 600;
}

.co-shop-toolbar__count .woocommerce-result-count {
    margin: 0;
    font-size: inherit;
    color: inherit;
}

.co-shop-toolbar__controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 16px;
    margin-left: auto;
}

.co-instock-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
    font-size: 13px;
    font-weight: 700;
    color: var(--co-ink);
}

.co-instock-toggle__input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.co-instock-toggle__track {
    position: relative;
    flex: 0 0 auto;
    width: 38px;
    height: 22px;
    border-radius: 999px;
    background: #cdd3db;
    transition: background 0.18s ease;
}

.co-instock-toggle__thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(16, 24, 40, 0.3);
    transition: transform 0.18s ease;
}

.co-instock-toggle__input:checked + .co-instock-toggle__track {
    background: var(--co-ink);
}

.co-instock-toggle__input:checked + .co-instock-toggle__track .co-instock-toggle__thumb {
    transform: translateX(16px);
}

.co-instock-toggle__input:focus-visible + .co-instock-toggle__track {
    outline: 2px solid var(--co-ink);
    outline-offset: 2px;
}

.co-shop-toolbar__sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Safety net: if the WooCommerce ordering <form> isn't present (0 or 1 result,
   e.g. after an AJAX filter empties the grid), hide the whole sort block so the
   "Sort" label never sits there orphaned without its dropdown. The PHP template
   (co_shop_toolbar) already gates this server-side; this covers any path that
   mutates the DOM without re-rendering the toolbar. */
.co-shop-toolbar__sort:not(:has(form.woocommerce-ordering)) {
    display: none;
}

.co-shop-toolbar__sort-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--co-ink);
}

.co-shop-toolbar .woocommerce-ordering {
    margin: 0;
}

.co-shop-toolbar .woocommerce-ordering select.orderby {
    max-width: 170px;
    padding: 9px 30px 9px 12px;
    border: 1px solid var(--co-border);
    border-radius: 10px;
    background: #fff;
    color: var(--co-ink);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

/* In-stock-only mode hides out-of-stock cards (toggle wired in co-mobile-ux.js) */
ul.products.co-instock-only li.product.outofstock {
    display: none !important;
}

@media (min-width: 600px) {
    .co-shop-toolbar {
        padding: 14px 18px;
        gap: 12px 20px;
    }

    .co-shop-toolbar__count {
        font-size: 14px;
    }

    .co-instock-toggle,
    .co-shop-toolbar__sort-label {
        font-size: 14px;
    }

    .co-shop-toolbar .woocommerce-ordering select.orderby {
        max-width: none;
        font-size: 14px;
    }
}

/* ============================================================
 * Shop cards on mobile — Best Buy-style single-column list.
 * One full-width card per row, reflowed to match Best Buy:
 *     title (full width, top)
 *     [ image ] [ badges / price ]
 *     [ ---- View Details (full width) ---- ]
 * Same front-page card component + styling; only the layout
 * changes (via grid areas), and only on phones (<= 767px).
 * ============================================================ */
@media (max-width: 767px) {
    /* 1 product per row — beats the site's 2-up rule
       (.woocommerce-page ... li.product:nth-child(n){width:44%}). */
    .woocommerce ul.products li.product.co-shop-card-item:nth-child(n),
    .woocommerce-page ul.products li.product.co-shop-card-item:nth-child(n) {
        width: 100% !important;
        margin: 0 0 12px !important;
        float: none !important;
        clear: both !important;
    }

    /* Re-grid the existing card: promote the body's children into the card
       grid (display:contents) and place every part with grid areas. */
    .co-shop-card-item .co-product-card {
        display: grid;
        grid-template-columns: 116px 1fr;
        grid-template-areas:
            "title  title"
            "media  badges"
            "media  price"
            "cta    cta";
        column-gap: 14px;
        row-gap: 4px;
        align-items: start;
        padding: 12px;
    }

    .co-shop-card-item .co-product-card__body {
        display: contents;
    }

    .co-shop-card-item .co-product-card__image {
        grid-area: media;
        aspect-ratio: 1 / 1;
        padding: 8px;
        border-bottom: 0;
        border-radius: 12px;
    }

    .co-shop-card-item .co-product-card__badges {
        grid-area: badges;
        margin: 0;
        min-height: 0;
        align-self: end;
    }

    .co-shop-card-item .co-product-card h3 {
        grid-area: title;
        margin: 0;
        font-size: 14px !important;
        font-weight: 800;
        line-height: 1.3;
    }

    .co-shop-card-item .co-product-card h3 a {
        color: var(--co-ink);
        text-decoration: none;
    }

    .co-shop-card-item .co-product-price {
        grid-area: price;
        margin: 0;
        align-self: start;
        font-size: 15px;
    }

    /* Actions row (Add to Cart + View Details) spans the full-width bottom. */
    .co-shop-card-item .co-product-actions {
        grid-area: cta;
        margin-top: 6px;
    }

    /* When only View Details is present (no actions wrapper), keep it in the CTA area. */
    .co-shop-card-item .co-product-card__body > .co-product-cta {
        grid-area: cta;
        justify-self: stretch;
        text-align: center;
        margin-top: 6px;
    }
}

/* ============================================================
 * Shop grid column counts for tablet / small desktop — the float
 * grid is 4-up by default, which crams the cards (and truncates the
 * buttons) between ~768px and ~1280px. Step it down: 2-up on tablet,
 * 3-up on small desktop, back to 4-up on wide screens.
 * ============================================================ */
@media (min-width: 768px) and (max-width: 1024px) {
    .woocommerce ul.products li.product.co-shop-card-item:nth-child(n),
    .woocommerce-page ul.products li.product.co-shop-card-item:nth-child(n) {
        width: 47% !important;
        margin: 0 1.5% 18px !important;
        float: left !important;
        clear: none !important;
    }
}

@media (min-width: 1025px) and (max-width: 1280px) {
    .woocommerce ul.products li.product.co-shop-card-item:nth-child(n),
    .woocommerce-page ul.products li.product.co-shop-card-item:nth-child(n) {
        width: 30.33% !important;
        margin: 0 1.5% 20px !important;
        float: left !important;
        clear: none !important;
    }
}

/* ============================================================
 * Custom cart page - mobile-first retail checkout
 * ============================================================ */

body.co-cart-custom {
    margin: 0;
    background: #fff;
}

body.co-cart-custom .co-cart-shell {
    min-height: 70vh;
    background: #fff;
}

body.co-cart-custom .co-cart-page {
    width: min(var(--co-container), calc(100% - (var(--co-home-pad, clamp(16px, 4vw, 40px)) * 2)));
    margin: 0 auto;
    padding: clamp(26px, 5vw, 56px) 0 clamp(44px, 7vw, 80px);
}

body.co-cart-custom .co-cart-heading {
    max-width: 740px;
    margin-bottom: 22px;
}

body.co-cart-custom .co-cart-heading h1 {
    margin: 0 0 10px;
    color: var(--co-ink);
    font-size: clamp(34px, 8vw, 58px);
    font-weight: 900;
    line-height: 1;
}

body.co-cart-custom .co-cart-heading p {
    max-width: 620px;
    margin: 0;
    color: var(--co-text);
    font-size: 16px;
    line-height: 1.5;
}

body.co-cart-custom .woocommerce-notices-wrapper,
body.co-cart-custom .woocommerce-error,
body.co-cart-custom .woocommerce-info,
body.co-cart-custom .woocommerce-message {
    margin: 0 0 18px;
}

body.co-cart-custom .woocommerce-error,
body.co-cart-custom .woocommerce-info,
body.co-cart-custom .woocommerce-message {
    display: block;
    min-height: 52px;
    padding: 15px 18px 15px 22px !important;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-left: 4px solid var(--co-gold-dark);
    border-radius: 16px;
    color: var(--co-black) !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(18, 18, 18, 0.05);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
}

body.co-cart-custom .woocommerce-error::before,
body.co-cart-custom .woocommerce-info::before,
body.co-cart-custom .woocommerce-message::before {
    content: none;
}

body.co-cart-custom .woocommerce-error li,
body.co-cart-custom .woocommerce-info li,
body.co-cart-custom .woocommerce-message li {
    color: var(--co-black) !important;
}

body.co-cart-custom .woocommerce-error a,
body.co-cart-custom .woocommerce-info a,
body.co-cart-custom .woocommerce-message a {
    color: var(--co-black) !important;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.co-cart-custom .woocommerce-error a:hover,
body.co-cart-custom .woocommerce-error a:focus,
body.co-cart-custom .woocommerce-info a:hover,
body.co-cart-custom .woocommerce-info a:focus,
body.co-cart-custom .woocommerce-message a:hover,
body.co-cart-custom .woocommerce-message a:focus {
    color: var(--co-gold-dark) !important;
}

body.co-cart-custom .co-cart-empty-panel,
body.co-cart-custom .co-cart-items-panel,
body.co-cart-custom .co-cart-summary-panel {
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 18px;
    background: #fff;
}

body.co-cart-custom .co-cart-empty-panel {
    display: grid;
    gap: 22px;
    padding: clamp(22px, 6vw, 46px);
    background: #f7f7f5;
}

body.co-cart-custom .co-cart-empty-panel h2 {
    margin: 14px 0 10px;
    color: var(--co-ink);
    font-size: clamp(28px, 7vw, 46px);
    font-weight: 900;
    line-height: 1.04;
}

body.co-cart-custom .co-cart-empty-panel p {
    max-width: 560px;
    margin: 0 0 20px;
    color: var(--co-text);
    font-size: 16px;
    line-height: 1.5;
}

body.co-cart-custom .co-cart-primary-button,
body.co-cart-custom .co-cart-summary-panel .checkout-button,
body.co-cart-custom .co-cart-coupon button,
body.co-cart-custom .co-cart-update-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 20px;
    border: 1px solid var(--co-black) !important;
    border-radius: 999px;
    color: #fff !important;
    background: var(--co-black) !important;
    font-size: 15px;
    font-weight: 850;
    line-height: 1;
    text-decoration: none !important;
}

body.co-cart-custom .co-cart-primary-button:hover,
body.co-cart-custom .co-cart-primary-button:focus,
body.co-cart-custom .co-cart-summary-panel .checkout-button:hover,
body.co-cart-custom .co-cart-summary-panel .checkout-button:focus,
body.co-cart-custom .co-cart-coupon button:hover,
body.co-cart-custom .co-cart-coupon button:focus,
body.co-cart-custom .co-cart-update-button:hover,
body.co-cart-custom .co-cart-update-button:focus {
    border-color: var(--co-gold-dark) !important;
    color: var(--co-black) !important;
    background: var(--co-gold-gradient) !important;
}

body.co-cart-custom .co-cart-category-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

body.co-cart-custom .co-cart-category-links a {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 14px;
    color: var(--co-black) !important;
    background: #fff;
    font-size: 14px;
    font-weight: 850;
    text-decoration: none;
}

body.co-cart-custom .co-cart-category-links a:hover,
body.co-cart-custom .co-cart-category-links a:focus {
    border-color: rgba(200, 160, 52, 0.48);
    background: var(--co-gold-soft);
}

body.co-cart-custom .co-cart-layout {
    display: grid;
    gap: 16px;
}

body.co-cart-custom .co-cart-items-panel,
body.co-cart-custom .co-cart-summary-panel {
    padding: 14px;
}

body.co-cart-custom .co-cart-form {
    display: grid;
    gap: 14px;
}

body.co-cart-custom .co-cart-items {
    display: grid;
    gap: 12px;
}

body.co-cart-custom .co-cart-item {
    display: grid;
    gap: 0;
    overflow: hidden;
    padding: 0;
    border: 1px solid rgba(18, 18, 18, 0.1);
    border-radius: 8px;
    background: #fff;
}

body.co-cart-custom .co-cart-item__main {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 18px;
    padding: 26px 14px 14px;
}

body.co-cart-custom .co-cart-item__image {
    display: grid;
    place-items: center;
    align-self: start;
    aspect-ratio: 0.72 / 1;
    overflow: hidden;
    border-radius: 0;
    background: transparent;
}

body.co-cart-custom .co-cart-item__image a {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
}

body.co-cart-custom .co-cart-item__image img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

body.co-cart-custom .co-cart-item__body {
    display: grid;
    gap: 12px;
    min-width: 0;
}

body.co-cart-custom .co-cart-item__top {
    display: grid;
    gap: 6px;
}

body.co-cart-custom .co-cart-item h2 {
    margin: 0;
    color: var(--co-ink);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.35;
}

body.co-cart-custom .co-cart-item h2 a {
    color: var(--co-ink) !important;
    text-decoration: none;
}

body.co-cart-custom .co-cart-item h2 a:hover,
body.co-cart-custom .co-cart-item h2 a:focus,
body.co-cart-custom .co-cart-remove:hover,
body.co-cart-custom .co-cart-remove:focus {
    color: var(--co-gold-dark) !important;
}

body.co-cart-custom .co-cart-item__meta,
body.co-cart-custom .co-cart-item__meta p,
body.co-cart-custom .co-cart-item__meta dl {
    margin: 6px 0 0;
    color: var(--co-muted);
    font-size: 13px;
    line-height: 1.45;
}

body.co-cart-custom .co-cart-item__meta {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.co-cart-custom .co-cart-item__meta dl,
body.co-cart-custom .co-cart-item__meta .variation {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin: 0;
}

body.co-cart-custom .co-cart-item__meta dt,
body.co-cart-custom .co-cart-item__meta .wc-item-meta-label,
body.co-cart-custom .co-cart-item__meta dd,
body.co-cart-custom .co-cart-item__meta dd p,
body.co-cart-custom .co-cart-item__meta .wc-item-meta p {
    color: var(--co-ink) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-transform: none;
}

body.co-cart-custom .co-cart-item__meta dt,
body.co-cart-custom .co-cart-item__meta .wc-item-meta-label {
    margin: 0;
}

body.co-cart-custom .co-cart-item__meta dd {
    margin: 0 0 0 -8px;
}

body.co-cart-custom .co-cart-item__meta dd p,
body.co-cart-custom .co-cart-item__meta .wc-item-meta p {
    margin: 0;
}

body.co-cart-custom .co-cart-item__price {
    display: grid;
    gap: 2px;
}

body.co-cart-custom .co-cart-save-line {
    color: #d7263d;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.1;
    text-transform: uppercase;
}

body.co-cart-custom .co-cart-item__price .co-cart-save-line .woocommerce-Price-amount {
    font-size: inherit;
    line-height: inherit;
}

body.co-cart-custom .co-cart-item__price strong,
body.co-cart-custom .co-cart-item__price .woocommerce-Price-amount {
    color: #d7263d;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.1;
}

body.co-cart-custom .co-cart-item__fulfillment {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: start;
    color: var(--co-text);
    font-size: 12px;
    line-height: 1.2;
}

body.co-cart-custom .co-cart-stock,
body.co-cart-custom .co-cart-low-stock {
    position: relative;
    display: inline-flex;
    align-items: flex-start;
    gap: 5px;
}

body.co-cart-custom .co-cart-stock::before {
    content: "✓";
    color: #157347;
    font-size: 13px;
    line-height: 1;
}

body.co-cart-custom .co-cart-stock.is-unavailable::before {
    content: "!";
    color: #d7263d;
}

body.co-cart-custom .co-cart-low-stock {
    color: var(--co-black);
    font-weight: 850;
}

body.co-cart-custom .co-cart-low-stock::before {
    content: "△";
    color: var(--co-muted);
    font-size: 12px;
    line-height: 1;
}

body.co-cart-custom .co-cart-remove,
body.co-cart-custom a.remove.co-cart-remove {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: fit-content;
    height: auto;
    min-height: 30px;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--co-black) !important;
    background: transparent !important;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.2;
    text-decoration: none;
}

body.co-cart-custom .co-cart-remove:hover {
    background: transparent !important;
}

body.co-cart-custom .co-cart-quantity {
    display: grid;
    gap: 0;
    min-width: 0;
}

body.co-cart-custom .co-cart-quantity__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

body.co-cart-custom .co-cart-item__actions {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 0 14px 22px;
}

body.co-cart-custom .co-cart-item__links {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 18px;
    min-width: 0;
}

body.co-cart-custom .co-cart-quantity__control {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

body.co-cart-custom .co-cart-quantity__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 2px solid #b8c2d1;
    border-radius: 50%;
    color: #7d8794;
    background: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}

body.co-cart-custom .co-cart-quantity__button--plus {
    border-color: var(--co-black);
    color: #fff;
    background: var(--co-black);
}

body.co-cart-custom .co-cart-quantity .quantity {
    width: auto;
}

body.co-cart-custom .co-cart-quantity .qty {
    width: 44px;
    min-height: 28px;
    padding: 2px 4px;
    border: 0;
    border-radius: 4px;
    color: var(--co-black);
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    text-align: center;
}

body.co-cart-custom .co-cart-item__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 20px 14px;
    border-top: 1px solid rgba(18, 18, 18, 0.12);
}

body.co-cart-custom .co-cart-item__total span {
    color: var(--co-black);
    font-size: 16px;
    font-weight: 900;
}

body.co-cart-custom .co-cart-item__total strong,
body.co-cart-custom .co-cart-item__total .woocommerce-Price-amount {
    color: var(--co-black);
    font-size: 16px;
    font-weight: 900;
}

body.co-cart-custom .co-cart-actions {
    display: grid;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(18, 18, 18, 0.1);
}

body.co-cart-custom .co-cart-coupon {
    display: grid;
    gap: 8px;
}

body.co-cart-custom .co-cart-coupon summary {
    width: fit-content;
    color: var(--co-black);
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
    list-style: none;
}

body.co-cart-custom .co-cart-coupon summary::-webkit-details-marker {
    display: none;
}

body.co-cart-custom .co-cart-coupon summary::after {
    content: "+";
    display: inline-block;
    margin-left: 8px;
    font-weight: 900;
}

body.co-cart-custom .co-cart-coupon[open] summary::after {
    content: "-";
}

body.co-cart-custom .co-cart-coupon label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

body.co-cart-custom .co-cart-coupon > div {
    display: grid;
    gap: 8px;
    margin-top: 8px;
}

body.co-cart-custom .co-cart-coupon input {
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid rgba(18, 18, 18, 0.16);
    border-radius: 999px;
    color: var(--co-black);
    background: #fff;
    font-size: 15px;
}

body.co-cart-custom .co-cart-update-button,
body.co-cart-custom .co-cart-coupon button {
    width: 100%;
}

body.co-cart-custom .co-cart-update-button:disabled,
body.co-cart-custom .co-cart-update-button[disabled] {
    cursor: not-allowed;
    opacity: 0.48;
}

body.co-cart-custom .co-cart-summary-panel {
    display: grid;
    gap: 14px;
    background: #fff;
}

body.co-cart-custom .co-cart-order-summary h2 {
    margin: 0 0 16px;
    color: var(--co-ink);
    font-size: 24px;
    font-weight: 850;
    line-height: 1.1;
}

body.co-cart-custom .co-cart-summary-lines {
    display: grid;
    gap: 10px;
}

body.co-cart-custom .co-cart-summary-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: baseline;
    color: var(--co-text);
    font-size: 15px;
    line-height: 1.35;
}

body.co-cart-custom .co-cart-summary-line strong {
    color: var(--co-black);
    font-weight: 500;
}

body.co-cart-custom .co-cart-summary-line--label {
    display: block;
}

body.co-cart-custom .co-cart-summary-line--discount {
    padding-left: 10px;
    color: var(--co-black);
}

body.co-cart-custom .co-cart-summary-line--discount strong,
body.co-cart-custom .co-cart-summary-line--discount .woocommerce-Price-amount {
    color: #d7263d;
}

body.co-cart-custom .co-cart-summary-line--total {
    margin-top: 10px;
    padding-top: 18px;
    border-top: 1px solid rgba(18, 18, 18, 0.12);
}

body.co-cart-custom .co-cart-summary-line--total span,
body.co-cart-custom .co-cart-summary-line--total strong,
body.co-cart-custom .co-cart-summary-line--total .woocommerce-Price-amount {
    color: var(--co-black);
    font-weight: 900;
}

body.co-cart-custom .co-cart-order-summary .wc-proceed-to-checkout {
    margin-top: 22px;
    padding: 22px 0 0;
    border-top: 1px solid rgba(18, 18, 18, 0.12);
}

body.co-cart-custom .co-cart-summary-panel .checkout-button {
    width: 100%;
    margin: 0;
    min-height: 54px;
    font-size: 16px;
}

body.co-cart-custom .co-cart-summary-trust {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid rgba(200, 160, 52, 0.26);
    border-radius: 16px;
    background: #fff;
}

body.co-cart-custom .co-cart-summary-trust strong {
    color: var(--co-black);
    font-size: 15px;
    font-weight: 900;
}

body.co-cart-custom .co-cart-summary-trust span {
    color: var(--co-muted);
    font-size: 13px;
    line-height: 1.45;
}

body.co-cart-custom .co-cart-summary-trust nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}

body.co-cart-custom .co-cart-summary-trust a {
    color: var(--co-black) !important;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
}

body.co-cart-custom .co-cart-summary-trust a::after {
    content: ">";
    margin-left: 6px;
    color: var(--co-gold-dark);
}

body.co-cart-custom .co-cart-cross-sells {
    margin-top: clamp(26px, 5vw, 56px);
}

body.co-cart-custom .co-cart-cross-sells .cross-sells > h2 {
    display: none;
}

body.co-cart-custom .co-cart-cross-sells ul.products {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

body.co-cart-custom .co-cart-cross-sells ul.products::before,
body.co-cart-custom .co-cart-cross-sells ul.products::after {
    content: none;
}

@media (min-width: 640px) {
    body.co-cart-custom .co-cart-category-links {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    body.co-cart-custom .co-cart-item__main {
        grid-template-columns: 150px minmax(0, 1fr);
        align-items: start;
    }

    body.co-cart-custom .co-cart-item__top {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    body.co-cart-custom .co-cart-coupon > div {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    body.co-cart-custom .co-cart-coupon button {
        width: auto;
        min-width: 132px;
    }
}

@media (min-width: 980px) {
    body.co-cart-custom .co-cart-layout {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
        align-items: start;
    }

    body.co-cart-custom .co-cart-items-panel,
    body.co-cart-custom .co-cart-summary-panel {
        padding: 18px;
    }

    body.co-cart-custom .co-cart-summary-panel {
        position: sticky;
        top: 132px;
    }

    body.co-cart-custom .co-cart-actions {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
    }

    body.co-cart-custom .co-cart-update-button {
        width: auto;
        min-width: 150px;
    }

    body.co-cart-custom .co-cart-cross-sells ul.products {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px;
    }
}

@media (max-width: 520px) {
    body.co-cart-custom .co-cart-page {
        width: calc(100% - 20px);
    }

    body.co-cart-custom .co-cart-items-panel,
    body.co-cart-custom .co-cart-summary-panel {
        padding: 10px;
        border-radius: 16px;
    }

    body.co-cart-custom .co-cart-category-links {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
 * Custom checkout page - mobile-first classic WooCommerce form
 * ============================================================ */

body.co-checkout-custom {
    margin: 0;
    background: #fff;
}

/* Canada-only store: the checkout country is fixed to Canada and still submits
   via the selected <select> value (CA), so hide the redundant "Country / Region"
   row in both the billing and shipping address blocks. !important beats any
   inline display WooCommerce's address/locale JS might set. */
body.co-checkout-custom #billing_country_field,
body.co-checkout-custom #shipping_country_field {
    display: none !important;
}

body.co-checkout-custom .co-checkout-shell {
    min-height: 70vh;
    background: #fff;
}

body.co-checkout-custom .co-checkout-page {
    width: min(var(--co-container), calc(100% - (var(--co-home-pad, clamp(16px, 4vw, 40px)) * 2)));
    margin: 0 auto;
    padding: clamp(24px, 5vw, 54px) 0 clamp(44px, 7vw, 82px);
}

body.co-checkout-custom .co-checkout-heading {
    max-width: 760px;
    margin-bottom: 12px;
}

body.co-checkout-custom .co-checkout-heading h1 {
    margin: 0 0 10px;
    color: var(--co-ink);
    font-size: clamp(34px, 8vw, 58px);
    font-weight: 900;
    line-height: 1;
}

body.co-checkout-custom .co-checkout-heading p {
    max-width: 640px;
    margin: 0;
    color: var(--co-text);
    font-size: 16px;
    line-height: 1.5;
}

body.co-checkout-custom .co-checkout-form-wrap {
    display: grid;
    gap: 10px;
}

body.co-checkout-custom .woocommerce-notices-wrapper,
body.co-checkout-custom .woocommerce-error,
body.co-checkout-custom .woocommerce-info,
body.co-checkout-custom .woocommerce-message {
    margin: 0 0 16px;
}

body.co-checkout-custom .woocommerce-error,
body.co-checkout-custom .woocommerce-info,
body.co-checkout-custom .woocommerce-message {
    display: block;
    min-height: 50px;
    padding: 15px 18px 15px 22px !important;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-left: 4px solid var(--co-gold-dark);
    border-radius: 14px;
    color: var(--co-black) !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(18, 18, 18, 0.05);
    font-size: 14px;
    font-weight: 550;
    line-height: 1.45;
}

body.co-checkout-custom .woocommerce-error::before,
body.co-checkout-custom .woocommerce-info::before,
body.co-checkout-custom .woocommerce-message::before {
    content: none;
}

body.co-checkout-custom .woocommerce-error li,
body.co-checkout-custom .woocommerce-info li,
body.co-checkout-custom .woocommerce-message li {
    color: var(--co-black) !important;
}

body.co-checkout-custom .woocommerce-error a,
body.co-checkout-custom .woocommerce-info a,
body.co-checkout-custom .woocommerce-message a {
    color: var(--co-black) !important;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.co-checkout-custom .co-checkout-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0;
}

body.co-checkout-custom .co-checkout-pill {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: 8px 8px 8px 14px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-left: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 999px;
    background: #fff;
    color: var(--co-text);
    box-shadow: none;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
}

body.co-checkout-custom .co-checkout-pill a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 8px 16px;
    border: 1px solid var(--co-black);
    border-radius: 999px;
    color: #fff !important;
    background: var(--co-black);
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
}

body.co-checkout-custom .co-checkout-pill a:hover,
body.co-checkout-custom .co-checkout-pill a:focus {
    border-color: var(--co-gold-dark);
    color: var(--co-black) !important;
    background: var(--co-gold-gradient);
}

body.co-checkout-custom .co-checkout-pill span {
    color: var(--co-text);
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    white-space: nowrap;
}

body.co-checkout-custom .woocommerce-form-login-toggle {
    display: none !important;
}

body.co-checkout-custom .woocommerce-form-coupon-toggle {
    display: none !important;
}

body.co-checkout-custom .woocommerce-form-login,
body.co-checkout-custom .co-checkout-empty {
    padding: 16px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 16px;
    background: #fff;
}

body.co-checkout-custom .checkout_coupon {
    flex-basis: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    width: min(100%, 540px);
    margin: 0 0 16px;
    padding: 8px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 16px;
    background: #fff;
}

body.co-checkout-custom .checkout_coupon::before,
body.co-checkout-custom .checkout_coupon::after,
body.co-checkout-custom .checkout_coupon .clear {
    content: none;
    display: none;
}

body.co-checkout-custom .checkout_coupon .form-row {
    min-width: 0;
}

body.co-checkout-custom .checkout_coupon input.input-text {
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 12px !important;
}

body.co-checkout-custom form.checkout {
    flex-basis: 100%;
    display: grid;
    gap: 16px;
    margin: 0;
}

body.co-checkout-custom #customer_details,
body.co-checkout-custom #order_review {
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 18px;
    background: #fff;
}

body.co-checkout-custom #customer_details {
    display: grid;
    gap: 16px;
}

body.co-checkout-custom #customer_details::before,
body.co-checkout-custom #customer_details::after {
    content: none;
}

body.co-checkout-custom #customer_details .col-1,
body.co-checkout-custom #customer_details .col-2 {
    float: none;
    width: 100%;
    margin: 0;
}

body.co-checkout-custom form.checkout h3,
body.co-checkout-custom .woocommerce-billing-fields > h3,
body.co-checkout-custom .woocommerce-additional-fields > h3,
body.co-checkout-custom #order_review_heading {
    margin: 0 0 14px;
    color: var(--co-ink);
    font-size: 22px;
    font-weight: 900;
    line-height: 1.15;
}

body.co-checkout-custom #order_review_heading {
    margin-top: 6px;
}

body.co-checkout-custom .woocommerce-billing-fields__field-wrapper,
body.co-checkout-custom .woocommerce-shipping-fields__field-wrapper,
body.co-checkout-custom .woocommerce-additional-fields__field-wrapper {
    display: grid;
    gap: 10px;
}

body.co-checkout-custom #order_comments_field,
body.co-checkout-custom .woocommerce-additional-fields:has(#order_comments_field:only-child) {
    display: none !important;
}

body.co-checkout-custom .form-row,
body.co-checkout-custom form .form-row {
    float: none;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    scroll-margin-top: 132px;
}

body.co-checkout-custom .form-row label {
    display: block;
    margin: 0 0 6px;
    color: var(--co-black);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
}

body.co-checkout-custom .optional,
body.co-checkout-custom .required {
    color: var(--co-muted);
    font-size: 12px;
    font-weight: 700;
}

body.co-checkout-custom input.input-text,
body.co-checkout-custom input[type="text"],
body.co-checkout-custom input[type="email"],
body.co-checkout-custom input[type="tel"],
body.co-checkout-custom input[type="password"],
body.co-checkout-custom textarea,
body.co-checkout-custom select,
body.co-checkout-custom .select2-container .select2-selection--single {
    width: 100%;
    min-height: 56px;
    padding: 13px 18px;
    border: 1px solid rgba(18, 18, 18, 0.16) !important;
    border-radius: 12px !important;
    color: var(--co-black);
    background: #fff !important;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.3;
    box-shadow: none !important;
}

body.co-checkout-custom textarea {
    min-height: 96px;
    border-radius: 12px !important;
    resize: vertical;
}

body.co-checkout-custom input.input-text:focus,
body.co-checkout-custom input[type="text"]:focus,
body.co-checkout-custom input[type="email"]:focus,
body.co-checkout-custom input[type="tel"]:focus,
body.co-checkout-custom input[type="password"]:focus,
body.co-checkout-custom textarea:focus,
body.co-checkout-custom select:focus,
body.co-checkout-custom .select2-container--open .select2-selection--single {
    outline: none;
    border-color: rgba(200, 160, 52, 0.75) !important;
    box-shadow: 0 0 0 3px rgba(200, 160, 52, 0.16) !important;
}

body.co-checkout-custom .select2-container {
    width: 100% !important;
}

body.co-checkout-custom .select2-container .select2-selection--single {
    display: flex;
    align-items: center;
    height: auto;
    min-height: 56px;
}

body.co-checkout-custom .select2-container .select2-selection__rendered {
    padding: 0;
    color: var(--co-black);
    line-height: 1.3;
}

body.co-checkout-custom .select2-container .select2-selection__arrow {
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
}

body.co-checkout-custom .select2-dropdown {
    z-index: 99990;
}

body.co-checkout-custom .woocommerce-invalid input.input-text,
body.co-checkout-custom .woocommerce-invalid select,
body.co-checkout-custom .woocommerce-invalid .select2-container .select2-selection--single {
    border-color: rgba(215, 38, 61, 0.72) !important;
}

body.co-checkout-custom .wc-stripe-elements-field,
body.co-checkout-custom .StripeElement,
body.co-checkout-custom .wc-stripe-card-field,
body.co-checkout-custom .wc-stripe-card-number,
body.co-checkout-custom .wc-stripe-card-expiry,
body.co-checkout-custom .wc-stripe-card-cvc {
    min-height: 54px;
    padding: 14px 16px !important;
    border: 1px solid rgba(18, 18, 18, 0.16) !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: none !important;
}

body.co-checkout-custom .woocommerce-form__label-for-checkbox,
body.co-checkout-custom .woocommerce-form__label.checkbox,
body.co-checkout-custom label.checkbox {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: var(--co-text);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.4;
}

body.co-checkout-custom input[type="checkbox"],
body.co-checkout-custom input[type="radio"] {
    accent-color: var(--co-black);
}

body.co-checkout-custom .woocommerce-shipping-fields {
    padding-top: 4px;
}

body.co-checkout-custom .woocommerce-shipping-fields h3 label {
    display: flex;
    gap: 10px;
    align-items: center;
    min-height: 44px;
    padding: 12px 14px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 14px;
    background: #f7f7f5;
    font-size: 14px;
}

body.co-checkout-custom .shop_table {
    width: 100%;
    margin: 0;
    border: 0 !important;
    border-collapse: collapse;
}

body.co-checkout-custom .shop_table th,
body.co-checkout-custom .shop_table td {
    padding: 12px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(18, 18, 18, 0.1) !important;
    color: var(--co-black);
    font-size: 14px;
    line-height: 1.35;
    vertical-align: top;
}

body.co-checkout-custom .shop_table thead th {
    color: var(--co-muted);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

body.co-checkout-custom .shop_table .product-name {
    width: 62%;
    padding-right: 12px !important;
    font-weight: 700;
    overflow: hidden; /* contain the floated mini thumbnail */
}

body.co-checkout-custom .co-checkout-item-thumb {
    float: left;
    width: 46px;
    height: 46px;
    margin: 1px 12px 4px 0;
    border: 1px solid rgba(18, 18, 18, 0.08);
    border-radius: 8px;
    background: #f2f2f0;
    overflow: hidden;
    line-height: 0;
}

body.co-checkout-custom .co-checkout-item-thumb img,
body.co-checkout-custom .co-checkout-item-thumb .co-checkout-thumb-img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover;
    border-radius: 0;
}

body.co-checkout-custom .co-checkout-remove-item {
    display: block;
    width: fit-content;
    margin-top: 6px;
    color: #d7263d !important;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.2;
    text-decoration: none;
}

body.co-checkout-custom .co-checkout-remove-item:hover,
body.co-checkout-custom .co-checkout-remove-item:focus {
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.co-checkout-custom .shop_table .product-total,
body.co-checkout-custom .shop_table td:last-child {
    text-align: right;
    font-weight: 850;
}

body.co-checkout-custom .shop_table tfoot th {
    font-weight: 650;
}

body.co-checkout-custom .shop_table .order-total th,
body.co-checkout-custom .shop_table .order-total td,
body.co-checkout-custom .shop_table .order-total .woocommerce-Price-amount {
    color: var(--co-black);
    font-size: 16px;
    font-weight: 900;
}

body.co-checkout-custom .shop_table tfoot tr.woocommerce-shipping-totals,
body.co-checkout-custom .shop_table tfoot tr.shipping {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px 0 !important;
    border-bottom: 1px solid rgba(18, 18, 18, 0.1) !important;
}

body.co-checkout-custom .shop_table tfoot tr.woocommerce-shipping-totals th,
body.co-checkout-custom .shop_table tfoot tr.woocommerce-shipping-totals td,
body.co-checkout-custom .shop_table tfoot tr.shipping th,
body.co-checkout-custom .shop_table tfoot tr.shipping td {
    display: block;
    width: 100%;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
}

body.co-checkout-custom #shipping_method.woocommerce-shipping-methods {
    display: none !important;
}

body.co-checkout-custom .woocommerce-shipping-methods,
body.co-checkout-custom #shipping_method,
body.co-checkout-custom .co-ship {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

body.co-checkout-custom .co-ship {
    display: grid !important;
    gap: 8px !important;
}

body.co-checkout-custom .co-ship,
body.co-checkout-custom .co-ship * {
    box-sizing: border-box !important;
}

body.co-checkout-custom .co-ship__opt,
body.co-checkout-custom .co-ship__option,
body.co-checkout-custom .co-ship__carhead,
body.co-checkout-custom .co-ship__service {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border-radius: 10px !important;
}

body.co-checkout-custom .co-ship__opt,
body.co-checkout-custom .co-ship__option,
body.co-checkout-custom .co-ship__service {
    min-height: 38px !important;
}

body.co-checkout-custom .co-ship__carhead {
    min-height: 46px !important;
}

/* Collapsed by default; the snippet toggles .is-open. The old
   `display:grid !important` kept the panel permanently open, so the chevron
   appeared to do nothing. */
body.co-checkout-custom .co-ship__services {
    display: none !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-left: 0 !important;
}

body.co-checkout-custom .co-ship__services.is-open {
    display: grid !important;
}

/* Real carrier logos in place of the coloured letter tags. */
body.co-checkout-custom .co-ship__badge.co-ship__badge--logo {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 32px !important;
    padding: 3px !important;
    border: 1px solid #e6e9ec !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: transparent !important;
    font-size: 0 !important;
    overflow: hidden !important;
}

body.co-checkout-custom .co-ship__badge.co-ship__badge--logo img.co-ship__logo {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
}

body.co-checkout-custom .co-ship input[type="radio"] {
    accent-color: var(--co-black) !important;
}

body.co-checkout-custom .co-ship__opt:has(input:checked),
body.co-checkout-custom .co-ship__option:has(input:checked),
body.co-checkout-custom .co-ship__carhead:has(input:checked),
body.co-checkout-custom .co-ship__service:has(input:checked) {
    border-color: var(--co-black) !important;
    box-shadow: 0 0 0 1px var(--co-black) !important;
}

body.co-checkout-custom .co-ship__disclaimer {
    width: 100% !important;
    max-width: none !important;
    margin: 2px 0 0 !important;
    color: var(--co-muted) !important;
    text-align: left !important;
}

body.co-checkout-custom #payment {
    margin-top: 16px;
    border: 0;
    border-radius: 0;
    background: transparent !important;
}

body.co-checkout-custom #payment ul.payment_methods {
    display: grid;
    gap: 10px;
    padding: 0 0 16px !important;
    border: 0;
}

body.co-checkout-custom #payment ul.payment_methods li.wc_payment_method {
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 14px;
    background: #fff;
}

body.co-checkout-custom #payment ul.payment_methods li.wc_payment_method > input.input-radio {
    margin: 17px 0 0 14px;
}

body.co-checkout-custom #payment ul.payment_methods li.wc_payment_method > label {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    margin: 0;
    padding: 13px 14px 13px 8px;
    color: var(--co-black);
    font-size: 14px;
    font-weight: 900;
}

body.co-checkout-custom #payment div.payment_box {
    margin: 0 !important;
    padding: 14px !important;
    border-top: 1px solid rgba(18, 18, 18, 0.1);
    color: var(--co-text);
    background: #f7f7f5 !important;
    font-size: 13px;
    line-height: 1.45;
}

body.co-checkout-custom #payment div.payment_box::before {
    content: none;
}

body.co-checkout-custom .wc-stripe_cc-container,
body.co-checkout-custom .wc-stripe_cc-new-method-container,
body.co-checkout-custom .wc-stripe-elements-field,
body.co-checkout-custom .StripeElement {
    max-width: 100%;
}

body.co-checkout-custom .woocommerce-terms-and-conditions-wrapper,
body.co-checkout-custom #custom_policy_field {
    color: var(--co-text);
    font-size: 13px;
    line-height: 1.45;
}

body.co-checkout-custom .woocommerce-terms-and-conditions-wrapper a,
body.co-checkout-custom #custom_policy_field a {
    color: var(--co-black);
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.co-checkout-custom #payment .place-order {
    display: grid;
    gap: 14px;
    padding: 16px 0 0 !important;
    margin: 0 !important;
}

body.co-checkout-custom #place_order,
body.co-checkout-custom .co-checkout-button,
body.co-checkout-custom .woocommerce-form-login button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 54px;
    padding: 13px 20px;
    border: 1px solid var(--co-black) !important;
    border-radius: 999px;
    color: #fff !important;
    background: var(--co-black) !important;
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
    text-decoration: none !important;
}

body.co-checkout-custom .checkout_coupon button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 136px;
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid var(--co-black) !important;
    border-radius: 999px;
    color: #fff !important;
    background: var(--co-black) !important;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
}

body.co-checkout-custom #place_order:hover,
body.co-checkout-custom #place_order:focus,
body.co-checkout-custom .co-checkout-button:hover,
body.co-checkout-custom .co-checkout-button:focus,
body.co-checkout-custom .checkout_coupon button:hover,
body.co-checkout-custom .checkout_coupon button:focus,
body.co-checkout-custom .woocommerce-form-login button:hover,
body.co-checkout-custom .woocommerce-form-login button:focus {
    border-color: var(--co-gold-dark) !important;
    color: var(--co-black) !important;
    background: var(--co-gold-gradient) !important;
}

body.co-checkout-custom .blockUI.blockOverlay {
    border-radius: 18px;
}

body.co-checkout-custom .co-checkout-empty h2 {
    margin: 0 0 8px;
    color: var(--co-ink);
    font-size: 28px;
    font-weight: 900;
}

body.co-checkout-custom .co-checkout-empty p {
    margin: 0 0 18px;
    color: var(--co-text);
}

@media (min-width: 640px) {
    body.co-checkout-custom .woocommerce-billing-fields__field-wrapper,
    body.co-checkout-custom .woocommerce-shipping-fields__field-wrapper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.co-checkout-custom #billing_country_field,
    body.co-checkout-custom #billing_address_1_field,
    body.co-checkout-custom #billing_address_2_field,
    body.co-checkout-custom #billing_email_field,
    body.co-checkout-custom #shipping_country_field,
    body.co-checkout-custom #shipping_address_1_field,
    body.co-checkout-custom #shipping_address_2_field,
    body.co-checkout-custom #kl_newsletter_checkbox_field,
    body.co-checkout-custom #kl_sms_consent_checkbox_field {
        grid-column: 1 / -1;
    }
}

@media (min-width: 980px) {
    body.co-checkout-custom form.checkout {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
        align-items: start;
    }

    body.co-checkout-custom #customer_details {
        grid-column: 1;
        grid-row: 1 / span 2;
        padding: 20px;
    }

    body.co-checkout-custom #order_review_heading {
        grid-column: 2;
        grid-row: 1;
        margin: 0 0 -2px;
        padding: 20px 20px 0;
        border: 1px solid rgba(18, 18, 18, 0.12);
        border-bottom: 0;
        border-radius: 18px 18px 0 0;
        background: #fff;
    }

    body.co-checkout-custom #order_review {
        grid-column: 2;
        grid-row: 2;
        position: sticky;
        top: 132px;
        padding: 4px 20px 20px;
        border-top: 0;
        border-radius: 0 0 18px 18px;
    }
}

@media (max-width: 520px) {
    html:has(body.co-checkout-custom) {
        scroll-padding-top: 118px;
    }

    body.co-checkout-custom .co-checkout-page {
        width: calc(100% - 20px);
        padding-top: 14px;
    }

    body.co-checkout-custom .co-checkout-heading {
        margin-bottom: 8px;
    }

    body.co-checkout-custom .co-checkout-form-wrap {
        display: grid;
        gap: 8px;
    }

    body.co-checkout-custom .co-checkout-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    body.co-checkout-custom .co-checkout-pill {
        width: 100%;
        min-width: 0;
        justify-content: space-between;
        gap: 2px;
        padding: 4px 4px 4px 7px;
        font-size: clamp(7px, 2.45vw, 10px);
        line-height: 1;
    }

    body.co-checkout-custom .co-checkout-pill a {
        min-height: 24px;
        padding: 5px 7px;
        font-size: clamp(7px, 2.45vw, 10px);
    }

    body.co-checkout-custom .form-row,
    body.co-checkout-custom form .form-row,
    body.co-checkout-custom input.input-text,
    body.co-checkout-custom select,
    body.co-checkout-custom .select2-container {
        scroll-margin-top: 118px;
    }

    body.co-checkout-custom #customer_details,
    body.co-checkout-custom #order_review,
    body.co-checkout-custom .woocommerce-form-login,
    body.co-checkout-custom .co-checkout-empty {
        padding: 12px;
        border-radius: 16px;
    }

    body.co-checkout-custom .checkout_coupon {
        grid-column: 1 / -1;
        grid-template-columns: 1fr;
        width: 100%;
        padding: 8px;
    }

    body.co-checkout-custom .checkout_coupon button {
        width: 100%;
    }

    body.co-checkout-custom form.checkout {
        width: 100%;
    }

    body.co-checkout-custom .shop_table th,
    body.co-checkout-custom .shop_table td {
        font-size: 13px;
    }

    body.co-checkout-custom #payment div.payment_box {
        padding: 12px !important;
    }
}

/* ============================================================
 * Checkout start page - guest / login / register choice
 * ============================================================ */

body.co-checkout-start-custom {
    margin: 0;
    background: #fff;
}

body.co-checkout-start-custom .co-checkout-start-shell {
    min-height: 70vh;
    background: #fff;
}

body.co-checkout-start-custom .co-checkout-start-page {
    width: min(var(--co-container), calc(100% - (var(--co-home-pad, clamp(16px, 4vw, 40px)) * 2)));
    margin: 0 auto;
    padding: clamp(24px, 5vw, 56px) 0 clamp(44px, 7vw, 82px);
}

body.co-checkout-start-custom .co-checkout-start-heading {
    max-width: 820px;
    margin-bottom: 18px;
}

body.co-checkout-start-custom .co-checkout-start-heading h1,
body.co-checkout-start-custom .co-checkout-start-empty h1 {
    margin: 0 0 12px;
    color: var(--co-ink);
    font-size: clamp(34px, 8vw, 58px);
    font-weight: 900;
    line-height: 1;
}

body.co-checkout-start-custom .co-checkout-start-heading p,
body.co-checkout-start-custom .co-checkout-start-empty p {
    max-width: 660px;
    margin: 0;
    color: var(--co-text);
    font-size: 16px;
    line-height: 1.5;
}

body.co-checkout-start-custom .co-checkout-start-grid {
    display: grid;
    gap: 12px;
}

body.co-checkout-start-custom .co-checkout-start-card,
body.co-checkout-start-custom .co-checkout-start-empty,
body.co-checkout-start-custom .co-checkout-start-note {
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 18px;
    background: #fff;
}

body.co-checkout-start-custom .co-checkout-start-card,
body.co-checkout-start-custom .co-checkout-start-empty {
    display: grid;
    gap: 12px;
    padding: clamp(18px, 5vw, 28px);
}

body.co-checkout-start-custom .co-checkout-start-card--featured {
    border-color: rgba(200, 160, 52, 0.45);
    background: linear-gradient(180deg, #fff 0%, #fbf7ea 100%);
}

body.co-checkout-start-custom .co-checkout-start-card > span {
    width: fit-content;
    padding: 6px 10px;
    border: 1px solid rgba(200, 160, 52, 0.36);
    border-radius: 999px;
    color: var(--co-black);
    background: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

body.co-checkout-start-custom .co-checkout-start-card h2 {
    margin: 0;
    color: var(--co-ink);
    font-size: clamp(24px, 6vw, 34px);
    font-weight: 900;
    line-height: 1.05;
}

body.co-checkout-start-custom .co-checkout-start-card p {
    margin: 0;
    color: var(--co-text);
    font-size: 15px;
    line-height: 1.45;
}

body.co-checkout-start-custom .co-checkout-start-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    margin-top: 4px;
    padding: 13px 18px;
    border: 1px solid var(--co-black) !important;
    border-radius: 999px;
    color: var(--co-black) !important;
    background: #fff !important;
    font-size: 15px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    text-decoration: none !important;
}

body.co-checkout-start-custom .co-checkout-start-button--primary,
body.co-checkout-start-custom .co-checkout-start-button:hover,
body.co-checkout-start-custom .co-checkout-start-button:focus {
    color: #fff !important;
    background: var(--co-black) !important;
}

body.co-checkout-start-custom .co-checkout-start-button--primary:hover,
body.co-checkout-start-custom .co-checkout-start-button--primary:focus {
    border-color: var(--co-gold-dark) !important;
    color: var(--co-black) !important;
    background: var(--co-gold-gradient) !important;
}

body.co-checkout-start-custom .co-checkout-start-note {
    display: grid;
    gap: 6px;
    margin-top: 14px;
    padding: 14px 16px;
    color: var(--co-text);
    font-size: 13px;
    line-height: 1.45;
}

body.co-checkout-start-custom .co-checkout-start-note strong {
    color: var(--co-black);
    font-size: 15px;
    font-weight: 900;
}

body.co-checkout-start-custom .woocommerce-error,
body.co-checkout-start-custom .woocommerce-info,
body.co-checkout-start-custom .woocommerce-message {
    display: block;
    min-height: 50px;
    margin: 0 0 16px;
    padding: 15px 18px 15px 22px !important;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-left: 4px solid var(--co-gold-dark);
    border-radius: 14px;
    color: var(--co-black) !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(18, 18, 18, 0.05);
}

body.co-checkout-start-custom .woocommerce-error::before,
body.co-checkout-start-custom .woocommerce-info::before,
body.co-checkout-start-custom .woocommerce-message::before {
    content: none;
}

@media (min-width: 760px) {
    body.co-checkout-start-custom .co-checkout-start-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.co-checkout-start-custom .co-checkout-start-card {
        align-content: start;
    }
}

@media (max-width: 520px) {
    body.co-checkout-start-custom .co-checkout-start-page {
        width: calc(100% - 20px);
    }

    body.co-checkout-start-custom .co-checkout-start-card,
    body.co-checkout-start-custom .co-checkout-start-empty {
        border-radius: 16px;
    }
}
