:root {
    --rpd-blue: #0b5f73;
    --rpd-dark: #0a2337;
    --rpd-light: #f4f8fa;
    --rpd-border: #d9e7ee;
    --rpd-card-border: #e6e6e6;
    --rpd-text: #1f2f36;
}

* { box-sizing: border-box; }
html, body { margin: 0; overflow-x: hidden; }
body { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; color: var(--rpd-text); background: #fff; }
a { color: inherit; }

.rpd-announcement-bar { text-align: center; font-weight: 700; padding: 10px 16px; font-size: 14px; }

.rpd-site-header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; padding: 12px 24px; background: #fff; }
.rpd-logo img { height: 70px; width: auto; display: block; }
.rpd-main-menu ul { display: flex; justify-content: center; gap: 24px; list-style: none; margin: 0; padding: 0; }
.rpd-main-menu a, .rpd-header-cart { text-decoration: none; text-transform: uppercase; letter-spacing: 1px; font-size: .92rem; font-weight: 600; }
.rpd-header-cart { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.rpd-header-cart strong { font-weight: 700; }
.rpd-menu-toggle { display: none; background: none; border: 0; font-size: 28px; cursor: pointer; }

.rpd-hero { position: relative; width: 100vw; min-height: 620px; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); background-size: cover; background-position: center center; overflow: hidden; }
.rpd-hero__overlay { position: absolute; inset: 0; z-index: 1; }
.rpd-hero__content { position: relative; z-index: 2; max-width: 850px; padding: 72px 60px 115px; color: var(--rpd-hero-text, #fff); }
.rpd-hero__main { font-size: 78px; line-height: .9; font-weight: 300; letter-spacing: -2px; margin-bottom: 18px; }
.rpd-hero__main em { font-style: italic; opacity: .85; }
.rpd-hero h1 { color: var(--rpd-hero-text, #fff); font-size: 38px; line-height: 1.1; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; margin: 0 0 18px; }
.rpd-hero__subtitle { font-size: 21px; line-height: 1.45; margin: 0 0 20px; }
.rpd-hero__points { list-style: none; margin: 0 0 24px; padding: 0; }
.rpd-hero__points li { font-size: 18px; line-height: 1.55; }
.rpd-hero__button { display: inline-block; background: var(--rpd-hero-button-bg, #fff); color: var(--rpd-hero-button-colour, var(--rpd-blue)); padding: 12px 26px; border-radius: 999px; font-weight: 800; text-decoration: none; margin-bottom: 22px; }
.rpd-hero__button:hover { filter: brightness(.96); }
.rpd-hero__disclaimer { font-size: 15px; font-weight: 800; text-transform: uppercase; margin: 0 0 10px; }
.rpd-hero__supporting { font-size: 14px; line-height: 1.55; max-width: 700px; opacity: .92; margin: 0; }

.rpd-site-content { width: 100%; }
.rpd-shop-wrap { display: flex; align-items: flex-start; gap: 30px; padding: 0 24px 48px; margin-top: -60px; position: relative; z-index: 5; }
.rpd-product-sidebar { width: 220px; flex: 0 0 220px; background: rgba(255,255,255,.96); border: 1px solid var(--rpd-border); border-radius: 14px; box-shadow: 0 6px 18px rgba(0,0,0,.06); padding: 18px; }
.rpd-product-sidebar h2 { color: var(--rpd-blue); font-size: 1.05rem; font-weight: 800; border-bottom: 1px solid var(--rpd-border); padding-bottom: 10px; margin: 0 0 14px; }
.rpd-product-sidebar ul { list-style: none; margin: 0; padding: 0; }
.rpd-product-sidebar li { margin-bottom: 6px; }
.rpd-product-sidebar a { display: block; padding: 9px 11px; border-radius: 8px; color: var(--rpd-text); text-decoration: none; transition: background-color .2s ease; }
.rpd-product-sidebar a:hover { background: var(--rpd-light); }
.rpd-product-sidebar li.is-active { border-left: 4px solid #3aa6c1; }
.rpd-product-sidebar li.is-active a { background: var(--rpd-blue); color: #fff; font-weight: 700; }

.rpd-product-area { flex: 1; min-width: 0; }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(220px, 320px)); justify-content: center; gap: 20px; margin: 0 !important; padding: 0 !important; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
.woocommerce ul.products li.product { width: 100% !important; max-width: 320px !important; margin: 0 !important; float: none !important; clear: none !important; display: flex !important; flex-direction: column; background: #fff; border: 1px solid var(--rpd-card-border); border-radius: 10px; padding: 12px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.03); }
.rpd-product-card__link { display: flex; flex-direction: column; flex: 1 1 auto; text-decoration: none; }
.rpd-product-card__image { position: relative; aspect-ratio: 1 / 1; overflow: hidden; }
.rpd-product-card__image img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; line-height: 1.3; min-height: 2.6em; margin: 8px 0; color: var(--rpd-text); }
.woocommerce ul.products li.product .price { margin-top: auto; margin-bottom: 8px; color: var(--rpd-text); }
.woocommerce ul.products li.product .button { align-self: center; width: auto; padding: 10px 22px; border-radius: 999px; background: var(--rpd-add-bg); color: var(--rpd-add-colour); text-decoration: none; font-weight: 700; }
.woocommerce ul.products li.product .button.rpd-button-state-read_more { background: var(--rpd-read-bg); color: var(--rpd-read-colour); }
.woocommerce ul.products li.product .button.rpd-button-state-outofstock { background: var(--rpd-oos-bg); color: var(--rpd-oos-colour); }
.woocommerce ul.products li.product .button.rpd-button-state-backorder { background: var(--rpd-backorder-bg); color: var(--rpd-backorder-colour); }
.rpd-backorder-message { font-size: 13px; line-height: 1.35; margin: 0 0 8px; color: var(--rpd-blue); font-weight: 700; }
.woocommerce span.onsale { position: absolute !important; top: 10px !important; left: 10px !important; z-index: 3; padding: 5px 10px !important; min-height: 0 !important; min-width: 0 !important; border-radius: 3px !important; border: 1px solid #888 !important; background: #e6e6e6 !important; color: #333 !important; font-size: 11px !important; line-height: 1 !important; font-weight: 700 !important; }

.rpd-sticky-cart { position: fixed; right: 20px; bottom: 20px; z-index: 9999; display: flex; align-items: center; gap: 8px; background: var(--rpd-blue); color: #fff; padding: 12px 18px; border-radius: 999px; font-weight: 700; text-decoration: none; text-transform: uppercase; letter-spacing: .8px; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.rpd-sticky-cart strong { background: rgba(255,255,255,.18); padding: 4px 8px; border-radius: 999px; }

.woocommerce-store-notice { position: fixed !important; top: 50% !important; left: 50% !important; bottom: auto !important; transform: translate(-50%, -50%) !important; width: min(90vw, 650px) !important; background: var(--rpd-blue) !important; color: #fff !important; padding: 28px 32px !important; border-radius: 16px !important; box-shadow: 0 15px 40px rgba(0,0,0,.35) !important; text-align: center !important; line-height: 1.6 !important; font-size: 16px !important; z-index: 999999 !important; }
.woocommerce-store-notice__dismiss-link { display: inline-block !important; margin-top: 20px !important; padding: 10px 18px !important; background: rgba(255,255,255,.15) !important; border: 2px solid rgba(255,255,255,.4) !important; border-radius: 8px !important; color: #fff !important; text-decoration: none !important; font-weight: 800 !important; font-size: 14px !important; letter-spacing: .8px !important; text-transform: uppercase !important; }

.rpd-site-footer { padding: 34px 24px; text-align: center; background: #f7fafb; border-top: 1px solid var(--rpd-border); }
.rpd-footer-menu ul { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; list-style: none; margin: 0 0 14px; padding: 0; }
.rpd-footer-menu a { text-decoration: none; }
.rpd-site-footer p { margin: 0; font-size: 13px; opacity: .8; }

#agl_form { text-align: center !important; }
#agl_form img { display: block !important; margin: 0 auto 20px auto !important; }
#agl_form p { max-width: 500px; margin-left: auto; margin-right: auto; }
.agl_buttons_wrap { margin-top: 20px; }

@media (max-width: 1099px) {
    .rpd-site-header { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; }
    .rpd-menu-toggle { display: block; }
    .rpd-main-menu { display: none; grid-column: 1 / -1; }
    .rpd-main-menu.is-open { display: block; }
    .rpd-main-menu ul { display: block; text-align: center; }
    .rpd-main-menu li { margin: 10px 0; }
    .rpd-logo { justify-self: center; }
    .rpd-logo img { height: 55px; }
    .rpd-shop-wrap { display: block; padding: 24px 12px 44px; margin-top: 0; background: #fff; }
    .rpd-product-sidebar { display: none; }
    .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .woocommerce ul.products li.product { max-width: none !important; padding: 10px; }
}

@media (max-width: 767px) {
    .rpd-hero { min-height: auto; }
    .rpd-hero__content { padding: 34px 18px 55px; }
    .rpd-hero__main { font-size: 42px; letter-spacing: -1px; }
    .rpd-hero__main br { display: block; }
    .rpd-hero h1 { font-size: 24px; letter-spacing: 1px; }
    .rpd-hero__subtitle { font-size: 16px; }
    .rpd-hero__points li { font-size: 14px; line-height: 1.45; }
    .rpd-hero__supporting { font-size: 12px; }
    .woocommerce ul.products { gap: 10px; }
    .woocommerce ul.products li.product { padding: 8px; }
    .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .9rem; }
    .woocommerce ul.products li.product .button { padding: 9px 12px; font-size: .85rem; }
    .rpd-sticky-cart { right: 12px; bottom: 12px; padding: 10px 14px; font-size: 14px; }
    .woocommerce-store-notice { width: calc(100vw - 30px) !important; padding: 22px 20px !important; font-size: 14px !important; }
}


/* =========================
   COMPLIANCE SYSTEM
   ========================= */

.rpd-compliance-warning {
    text-align: center;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
    padding: 9px 14px;
    letter-spacing: .4px;
}

.rpd-compliance-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.58);
    z-index: 999998;
}

.rpd-compliance-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.rpd-compliance-modal__inner {
    width: min(960px, 100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
    background: var(--rpd-compliance-bg, #fff);
    border-radius: 18px;
    box-shadow: 0 18px 60px rgba(0,0,0,.35);
    padding: 28px;
}

.rpd-compliance-modal h2 {
    margin: 0 0 18px;
    color: var(--rpd-compliance-accent, var(--rpd-blue));
    font-size: 28px;
    line-height: 1.15;
}

.rpd-compliance-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.rpd-compliance-box {
    border: 1px solid var(--rpd-border);
    border-radius: 12px;
    padding: 16px;
    background: #f7fafb;
}

.rpd-compliance-box h3 {
    margin: 0 0 8px;
    color: var(--rpd-compliance-accent, var(--rpd-blue));
    font-size: 16px;
}

.rpd-compliance-box p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
}

.rpd-compliance-check {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    border: 1px solid var(--rpd-border);
    border-radius: 12px;
    margin-bottom: 18px;
    font-weight: 700;
    line-height: 1.45;
}

.rpd-compliance-check input {
    margin-top: 4px;
    transform: scale(1.2);
}

.rpd-compliance-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.rpd-compliance-exit,
.rpd-compliance-continue {
    border: 0;
    border-radius: 999px;
    padding: 12px 20px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    font-size: 14px;
}

.rpd-compliance-exit {
    background: var(--rpd-compliance-exit-bg, #f4f8fa);
    color: var(--rpd-compliance-exit-colour, #1f2f36);
}

.rpd-compliance-continue {
    background: var(--rpd-compliance-continue-bg, var(--rpd-blue));
    color: var(--rpd-compliance-continue-colour, #fff);
}

.rpd-compliance-continue:disabled {
    opacity: .45;
    cursor: not-allowed;
}

body.rpd-compliance-lock {
    overflow: hidden;
}

.rpd-compliance-backdrop[hidden],
.rpd-compliance-modal[hidden],
.rpd-compliance-backdrop.is-hidden,
.rpd-compliance-modal.is-hidden {
    display: none !important;
}


@media (max-width: 767px) {
    .rpd-compliance-modal__inner { padding: 20px; }
    .rpd-compliance-grid { grid-template-columns: 1fr; }
    .rpd-compliance-modal h2 { font-size: 22px; }
    .rpd-compliance-actions { display: block; }
    .rpd-compliance-exit,
    .rpd-compliance-continue { display: block; width: 100%; text-align: center; margin-top: 10px; }
}

/* Single product button polish */
.single-product .single_add_to_cart_button {
    background: var(--rpd-add-bg, var(--rpd-blue)) !important;
    color: var(--rpd-add-colour, #fff) !important;
    border-radius: 999px !important;
    font-weight: 800 !important;
    padding: 12px 24px !important;
}

.single-product .rpd-backorder-message {
    margin: 12px 0;
    font-size: 15px;
}


/* Empty basket clean state */
.rpd-empty-cart {
    max-width: 720px;
    margin: 60px auto;
    padding: 40px 24px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--rpd-border);
    border-radius: 18px;
    box-shadow: var(--rpd-shadow);
}
.rpd-empty-cart h1 { margin: 0 0 10px; color: var(--rpd-blue); }
.rpd-empty-cart p { margin: 0 0 24px; }
.rpd-empty-cart__button {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 999px;
    background: var(--rpd-blue);
    color: #fff !important;
    text-decoration: none;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* Keep compliance modal compact enough for mobile review */
@media (max-width: 767px) {
    .rpd-compliance-modal { align-items: flex-start; padding-top: 10px; padding-bottom: 10px; }
    .rpd-compliance-modal__inner { max-height: calc(100vh - 20px); overflow: auto; padding: 16px; }
    .rpd-compliance-modal h2 { font-size: 19px; margin-bottom: 10px; }
    .rpd-compliance-grid { gap: 8px; margin-bottom: 10px; }
    .rpd-compliance-box { padding: 10px; border-radius: 10px; }
    .rpd-compliance-box h3 { font-size: 14px; margin-bottom: 4px; }
    .rpd-compliance-box p { font-size: 12px; line-height: 1.35; }
    .rpd-compliance-check { padding: 10px; margin-bottom: 10px; font-size: 12px; line-height: 1.35; }
    .rpd-compliance-exit, .rpd-compliance-continue { padding: 10px 14px; font-size: 12px; }
}


/* =========================
   DESKTOP HEADER TRUE-CENTRE FIX
   ========================= */

@media (min-width: 1100px) {
    .rpd-site-header {
        position: relative;
        display: block;
        min-height: 96px;
        padding: 0 24px;
        background: #fff;
    }

    .rpd-logo {
        position: absolute;
        left: 24px;
        top: 50%;
        transform: translateY(-50%);
        z-index: 3;
    }

    .rpd-logo img {
        height: 70px;
    }

    .rpd-main-menu {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        z-index: 2;
        width: auto;
        max-width: calc(100vw - 560px);
    }

    .rpd-main-menu ul {
        display: flex;
        justify-content: center;
        gap: 34px;
        white-space: nowrap;
    }

    .rpd-header-cart {
        position: absolute;
        right: 24px;
        top: 50%;
        transform: translateY(-50%);
        z-index: 3;
    }
}


/* v0.2.27 - extra compact compliance modal for phone screens */
@media (max-width: 600px) {
    .rpd-compliance-modal {
        align-items: flex-start !important;
        padding: 6px !important;
        overflow-y: auto !important;
    }

    .rpd-compliance-modal__inner {
        width: 100% !important;
        max-width: 100% !important;
        max-height: calc(100vh - 12px) !important;
        overflow-y: auto !important;
        padding: 10px !important;
        border-radius: 12px !important;
        box-sizing: border-box !important;
    }

    .rpd-compliance-modal h2 {
        font-size: 16px !important;
        line-height: 1.12 !important;
        margin: 0 0 6px !important;
    }

    .rpd-compliance-grid {
        display: block !important;
        margin: 0 0 6px !important;
    }

    .rpd-compliance-box {
        padding: 0 !important;
        margin: 0 0 5px !important;
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .rpd-compliance-box h3 {
        font-size: 12px !important;
        line-height: 1.15 !important;
        margin: 0 0 2px !important;
    }

    .rpd-compliance-box p,
    .rpd-compliance-box li,
    .rpd-compliance-check {
        font-size: 10.8px !important;
        line-height: 1.22 !important;
    }

    .rpd-compliance-box p {
        margin: 0 !important;
    }

    .rpd-compliance-box ul {
        margin: 2px 0 4px !important;
        padding-left: 15px !important;
    }

    .rpd-compliance-box li {
        margin-bottom: 1px !important;
    }

    .rpd-compliance-check {
        padding: 6px !important;
        margin: 5px 0 6px !important;
        border-radius: 8px !important;
    }

    .rpd-compliance-check input {
        transform: scale(0.9);
        margin-right: 5px !important;
    }

    .rpd-compliance-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 6px !important;
        margin-top: 6px !important;
    }

    .rpd-compliance-exit,
    .rpd-compliance-continue {
        width: 100% !important;
        margin: 0 !important;
        padding: 7px 6px !important;
        font-size: 10.5px !important;
        line-height: 1.15 !important;
        white-space: normal !important;
        min-height: 0 !important;
    }
}

@media (max-width: 380px) {
    .rpd-compliance-modal__inner {
        padding: 8px !important;
    }

    .rpd-compliance-modal h2 {
        font-size: 15px !important;
    }

    .rpd-compliance-box p,
    .rpd-compliance-box li,
    .rpd-compliance-check {
        font-size: 10.2px !important;
        line-height: 1.18 !important;
    }

    .rpd-compliance-exit,
    .rpd-compliance-continue {
        font-size: 10px !important;
        padding: 6px 5px !important;
    }
}


/* v0.2.29 - balanced mobile compliance modal: readable text, buttons visible */
@media (max-width: 600px) {
    .rpd-compliance-modal {
        align-items: flex-start !important;
        justify-content: flex-start !important;
        padding: 8px !important;
        min-height: 100dvh !important;
        overflow-y: auto !important;
    }

    .rpd-compliance-modal__inner {
        width: 100% !important;
        max-width: 100% !important;
        max-height: calc(100dvh - 16px) !important;
        padding: 12px !important;
        border-radius: 12px !important;
        box-sizing: border-box !important;
        overflow-y: auto !important;
    }

    .rpd-compliance-modal h2 {
        font-size: 18px !important;
        line-height: 1.15 !important;
        margin: 0 0 8px !important;
    }

    .rpd-compliance-grid {
        display: block !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
    }

    .rpd-compliance-box {
        padding: 0 !important;
        margin: 0 0 7px !important;
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .rpd-compliance-box h3 {
        font-size: 13px !important;
        line-height: 1.2 !important;
        margin: 0 0 3px !important;
    }

    .rpd-compliance-box p,
    .rpd-compliance-box li {
        font-size: 12px !important;
        line-height: 1.32 !important;
        margin-bottom: 3px !important;
    }

    .rpd-compliance-box p {
        margin-top: 0 !important;
    }

    .rpd-compliance-box ul,
    .rpd-compliance-box ol {
        margin: 3px 0 6px !important;
        padding-left: 16px !important;
    }

    .rpd-compliance-check {
        padding: 8px !important;
        margin: 7px 0 8px !important;
        font-size: 12px !important;
        line-height: 1.3 !important;
        border-radius: 8px !important;
    }

    .rpd-compliance-check input {
        transform: scale(0.95) !important;
        margin-right: 5px !important;
    }

    .rpd-compliance-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 7px !important;
        margin-top: 8px !important;
        padding: 0 !important;
    }

    .rpd-compliance-exit,
    .rpd-compliance-continue {
        width: 100% !important;
        padding: 9px 10px !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
        min-height: 0 !important;
    }
}

@media (max-width: 380px), (max-height: 690px) {
    .rpd-compliance-modal {
        padding: 6px !important;
    }

    .rpd-compliance-modal__inner {
        max-height: calc(100dvh - 12px) !important;
        padding: 10px !important;
    }

    .rpd-compliance-modal h2 {
        font-size: 16px !important;
        margin-bottom: 6px !important;
    }

    .rpd-compliance-box {
        margin-bottom: 5px !important;
    }

    .rpd-compliance-box h3 {
        font-size: 12px !important;
        margin-bottom: 2px !important;
    }

    .rpd-compliance-box p,
    .rpd-compliance-box li,
    .rpd-compliance-check {
        font-size: 11px !important;
        line-height: 1.24 !important;
    }

    .rpd-compliance-check {
        padding: 7px !important;
        margin: 5px 0 6px !important;
    }

    .rpd-compliance-actions {
        gap: 6px !important;
        margin-top: 6px !important;
    }

    .rpd-compliance-exit,
    .rpd-compliance-continue {
        padding: 8px 8px !important;
        font-size: 11px !important;
    }
}

/* =========================
   Inner page layout
   Keeps standard pages aligned with the header/logo, without affecting the shop/product templates.
   ========================= */

body:not(.home):not(.post-type-archive-product):not(.single-product) main,
body:not(.home):not(.post-type-archive-product):not(.single-product) .site-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 32px 32px !important;
    box-sizing: border-box !important;
}

body.page:not(.home):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content {
    max-width: 1200px !important;
    line-height: 1.65 !important;
}

body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content {
    max-width: 1200px !important;
}

@media (max-width: 768px) {
    body:not(.home):not(.post-type-archive-product):not(.single-product) main,
    body:not(.home):not(.post-type-archive-product):not(.single-product) .site-main {
        padding: 24px 16px !important;
    }
}

/* =========================
   Single product page polish
   ========================= */

.single-product .rpd-site-content {
    padding: 0;
}

.rpd-single-product {
    --rpd-product-max: 1280px;
    padding: 0 32px 60px;
    box-sizing: border-box;
}

.rpd-product-backlink {
    max-width: var(--rpd-product-max);
    margin: 0 auto;
    padding: 18px 0 14px;
    font-size: 14px;
}

.rpd-product-backlink a {
    color: #5f737b;
    text-decoration: none;
}

.rpd-product-backlink a:hover {
    color: var(--rpd-blue);
}

.rpd-product-trustbar {
    width: calc(100% + 64px);
    margin: 0 -32px 32px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--rpd-border);
    border-bottom: 1px solid var(--rpd-border);
    background: #eef7f9;
}

.rpd-product-trustbar span {
    padding: 13px 18px;
    text-align: center;
    border-right: 1px solid var(--rpd-border);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--rpd-blue);
}

.rpd-product-trustbar span:last-child {
    border-right: 0;
}

.rpd-single-product__grid {
    max-width: var(--rpd-product-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
    gap: 54px;
    align-items: start;
}

.rpd-single-product__media {
    position: relative;
    background: #f4fbfc;
    border: 1px solid var(--rpd-border);
    border-radius: 16px;
    padding: 16px;
}

.rpd-single-product__media .woocommerce-product-gallery {
    margin: 0 !important;
    width: 100% !important;
    float: none !important;
}

.rpd-single-product__media .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
}

.rpd-single-product__media .flex-control-thumbs {
    display: flex;
    gap: 10px;
    margin-top: 12px !important;
}

.rpd-single-product__media .flex-control-thumbs li {
    width: 72px !important;
    float: none !important;
}

.rpd-single-product__summary {
    padding-top: 8px;
}

.rpd-single-product__eyebrow,
.rpd-single-product__eyebrow a {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rpd-blue);
    text-decoration: none;
    margin-bottom: 12px;
}

.rpd-single-product__summary .product_title {
    font-size: clamp(36px, 4.4vw, 58px);
    line-height: .98;
    margin: 0 0 18px;
    letter-spacing: -0.04em;
}

.rpd-single-product__summary .price {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 800;
    color: #06131a;
    margin: 0 0 20px;
}

.rpd-single-product__summary .price del {
    opacity: .45;
    font-size: .7em;
}

.rpd-stock-pill {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 22px;
    font-weight: 800;
    color: #1f2f36;
}

.rpd-stock-pill span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #21a366;
    display: inline-block;
}

.rpd-stock-pill.is-backorder span { background: #d97706; }
.rpd-stock-pill.is-out-of-stock span { background: #6b7280; }

.rpd-single-product__short {
    background: #eef7f9;
    border-left: 4px solid var(--rpd-blue);
    padding: 16px 18px;
    margin: 0 0 22px;
    font-size: 16px;
    line-height: 1.55;
}

.rpd-single-product__short p:last-child {
    margin-bottom: 0;
}

.rpd-single-product__purchase {
    margin: 0 0 18px;
}

.single-product form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 0 !important;
}

.single-product form.cart .quantity input.qty {
    width: 82px;
    min-height: 48px;
    border-radius: 12px;
    border: 1px solid var(--rpd-border);
    text-align: center;
    font-weight: 700;
}

.single-product .single_add_to_cart_button {
    min-height: 48px;
    padding: 13px 28px !important;
}

.single-product table.variations {
    width: 100%;
    margin: 0 0 14px !important;
    border-collapse: collapse;
}

.single-product table.variations tr {
    display: grid;
    grid-template-columns: 86px 1fr;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}

.single-product table.variations th,
.single-product table.variations td {
    padding: 0 !important;
    display: block;
    border: 0;
}

.single-product table.variations th.label label {
    text-transform: capitalize;
    font-weight: 800;
    color: #1f2f36;
}

.single-product table.variations select {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--rpd-border);
    border-radius: 12px;
    padding: 0 12px;
    background: #fff;
    font-weight: 600;
}

.single-product .reset_variations {
    display: inline-block;
    margin-top: 8px;
    font-size: 13px;
}

.single-product .woocommerce-variation-price {
    margin: 0 0 12px;
}

.rpd-research-note {
    display: inline-block;
    border: 1px solid #c9e0e7;
    background: #f6fbfc;
    color: var(--rpd-blue);
    padding: 10px 14px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin: 2px 0 18px;
}

.rpd-single-product__unavailable {
    border: 1px solid #d8e6eb;
    background: #f7fafb;
    border-radius: 12px;
    padding: 14px 16px;
    margin: 0 0 18px;
}

.rpd-single-product__unavailable p {
    margin: 6px 0 0;
}

.rpd-single-product__summary .product_meta {
    font-size: 13px;
    color: #52656d;
    border-top: 1px solid var(--rpd-border);
    padding-top: 16px;
}

.rpd-single-product__details {
    max-width: var(--rpd-product-max);
    margin: 44px auto 0;
}

.rpd-single-product__details .woocommerce-tabs {
    border-top: 1px solid var(--rpd-border);
    padding-top: 24px;
}

.rpd-single-product__details .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 10px;
    border: 0;
    padding: 0 !important;
    margin: 0 0 22px !important;
    list-style: none;
}

.rpd-single-product__details .woocommerce-tabs ul.tabs::before,
.rpd-single-product__details .woocommerce-tabs ul.tabs::after {
    display: none !important;
}

.rpd-single-product__details .woocommerce-tabs ul.tabs li {
    border: 1px solid var(--rpd-border) !important;
    border-radius: 999px !important;
    background: #fff !important;
    padding: 0 !important;
    margin: 0 !important;
}

.rpd-single-product__details .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 11px 18px !important;
    color: #1f2f36 !important;
    text-decoration: none;
    font-weight: 800;
}

.rpd-single-product__details .woocommerce-tabs ul.tabs li.active {
    background: var(--rpd-blue) !important;
    border-color: var(--rpd-blue) !important;
}

.rpd-single-product__details .woocommerce-tabs ul.tabs li.active a {
    color: #fff !important;
}

.rpd-single-product__details .woocommerce-Tabs-panel {
    line-height: 1.65;
    max-width: 1000px;
}

@media (max-width: 980px) {
    .rpd-single-product {
        padding-left: 18px;
        padding-right: 18px;
    }

    .rpd-product-trustbar {
        width: calc(100% + 36px);
        margin-left: -18px;
        margin-right: -18px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rpd-product-trustbar span:nth-child(2) {
        border-right: 0;
    }

    .rpd-single-product__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .rpd-single-product__summary {
        padding-top: 0;
    }
}

@media (max-width: 600px) {
    .rpd-single-product {
        padding-left: 14px;
        padding-right: 14px;
        padding-bottom: 44px;
    }

    .rpd-product-backlink {
        padding-top: 14px;
    }

    .rpd-product-trustbar {
        width: calc(100% + 28px);
        margin-left: -14px;
        margin-right: -14px;
        grid-template-columns: 1fr 1fr;
        margin-bottom: 20px;
    }

    .rpd-product-trustbar span {
        padding: 10px 8px;
        font-size: 10px;
        letter-spacing: .08em;
    }

    .rpd-single-product__media {
        padding: 10px;
        border-radius: 12px;
    }

    .rpd-single-product__summary .product_title {
        font-size: 34px;
        letter-spacing: -0.035em;
    }

    .rpd-single-product__summary .price {
        font-size: 24px;
    }

    .rpd-single-product__short {
        font-size: 14px;
        padding: 13px 14px;
    }

    .single-product table.variations tr {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .single-product form.cart {
        display: block;
    }

    .single-product form.cart .quantity,
    .single-product form.cart .single_add_to_cart_button {
        width: 100%;
        margin: 0 0 10px !important;
    }

    .single-product form.cart .quantity input.qty {
        width: 100%;
    }

    .rpd-research-note {
        font-size: 10.5px;
        line-height: 1.35;
        letter-spacing: .07em;
    }

    .rpd-single-product__details .woocommerce-tabs ul.tabs {
        display: block;
    }

    .rpd-single-product__details .woocommerce-tabs ul.tabs li {
        margin-bottom: 8px !important;
        text-align: center;
    }
}

/* =========================
   PRODUCT PAGE REFINEMENTS v0.3.2
   ========================= */
.single-product table.variations tr {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    align-items: center !important;
}
.single-product table.variations th.label {
    display: flex !important;
    align-items: center !important;
    height: 46px !important;
}
.single-product table.variations th.label label {
    margin: 0 !important;
    line-height: 1 !important;
}
.single-product .reset_variations {
    display: none !important;
}
.single-product .woocommerce-variation-availability,
.single-product .stock {
    font-weight: 700;
    color: var(--rpd-blue);
}
.single-product .rpd-single-product__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 0 0 16px;
    font-size: 13px;
    color: #4b5563;
}
.single-product .rpd-single-product__meta a {
    color: var(--rpd-blue);
}
@media (max-width: 600px) {
    .single-product table.variations tr {
        grid-template-columns: 78px minmax(0, 1fr) !important;
        gap: 8px !important;
    }
}


/* v0.3.3 product page refinements */
.rpd-product-trustbar,
.single-product .product_meta,
.rpd-single-product__meta {
    display: none !important;
}

.single-product table.variations tr {
    grid-template-columns: 100px 1fr;
    align-items: center;
}

.single-product table.variations th.label label {
    display: block;
    padding-top: 0;
}

.single-product .reset_variations {
    display: none !important;
}

.single-product .stock,
.single-product .rpd-stock-pill {
    font-size: 15px;
}

/* Generic styling for common waitlist/back-in-stock plugins */
.single-product .cwginstock-subscribe-form,
.single-product .cwginstock-panel-body,
.single-product .back-in-stock-form,
.single-product .backinstock,
.single-product .wc_bis_form,
.single-product .stock-notifier-form,
.single-product .xoo-wl-wrap {
    max-width: 520px;
    background: #f6fbfc;
    border: 1px solid #d8e6eb;
    border-radius: 14px;
    padding: 18px;
    margin: 18px 0;
}

.single-product .cwginstock-subscribe-form h3,
.single-product .cwginstock-panel-heading,
.single-product .back-in-stock-form h3,
.single-product .wc_bis_form h3,
.single-product .stock-notifier-form h3 {
    display: block;
    margin: 0 0 12px !important;
    color: #0b5f73;
    font-size: 20px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    cursor: default !important;
}

.single-product .cwginstock-subscribe-form input[type="text"],
.single-product .cwginstock-subscribe-form input[type="email"],
.single-product .back-in-stock-form input[type="text"],
.single-product .back-in-stock-form input[type="email"],
.single-product .wc_bis_form input[type="text"],
.single-product .wc_bis_form input[type="email"],
.single-product .stock-notifier-form input[type="text"],
.single-product .stock-notifier-form input[type="email"],
.single-product .xoo-wl-wrap input[type="text"],
.single-product .xoo-wl-wrap input[type="email"] {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 46px;
    border: 1px solid var(--rpd-border);
    border-radius: 10px;
    padding: 0 12px;
    box-sizing: border-box;
}

.single-product .cwginstock-subscribe-form button,
.single-product .cwginstock-subscribe-form input[type="submit"],
.single-product .back-in-stock-form button,
.single-product .back-in-stock-form input[type="submit"],
.single-product .wc_bis_form button,
.single-product .wc_bis_form input[type="submit"],
.single-product .stock-notifier-form button,
.single-product .stock-notifier-form input[type="submit"],
.single-product .xoo-wl-wrap button,
.single-product .xoo-wl-wrap input[type="submit"] {
    background: var(--rpd-waitlist-bg) !important;
    color: var(--rpd-waitlist-colour) !important;
    border: 0 !important;
    border-radius: 999px !important;
    padding: 12px 22px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

@media (max-width: 768px) {
    .single-product table.variations tr {
        grid-template-columns: 1fr;
        gap: 6px;
    }
}

/* =========================
   PRODUCT PAGE / CHECKOUT FLOW POLISH v0.3.4
   ========================= */

/* Basket is kept behind the scenes; visible Basket links go to Checkout when non-empty via PHP. */

/* Hide customer-facing SKU/category meta permanently. */
.single-product .sku_wrapper,
.single-product .posted_in,
.single-product .tagged_as,
.single-product .product_meta,
.single-product .rpd-single-product__meta {
    display: none !important;
}

/* Remove duplicate WooCommerce tab/description headings when Description is the only useful tab. */
.rpd-single-product__details .woocommerce-tabs ul.tabs,
.rpd-single-product__details .woocommerce-Tabs-panel--description > h2,
.rpd-single-product__details #tab-description > h2 {
    display: none !important;
}

.rpd-single-product__details .woocommerce-tabs {
    border-top: 1px solid var(--rpd-border);
    padding-top: 28px;
}

.rpd-single-product__details .woocommerce-Tabs-panel,
.rpd-single-product__details #tab-description {
    max-width: 1000px;
    line-height: 1.7;
}

/* Stronger waitlist styling for common plugins. */
.single-product .cwginstock-subscribe-form,
.single-product .cwginstock-panel,
.single-product .cwginstock-panel-body,
.single-product .back-in-stock-form,
.single-product .backinstock,
.single-product .wc_bis_form,
.single-product .stock-notifier-form,
.single-product .xoo-wl-wrap {
    max-width: 560px !important;
    background: #f6fbfc !important;
    border: 1px solid #d8e6eb !important;
    border-radius: 16px !important;
    padding: 18px !important;
    margin: 18px 0 !important;
    box-sizing: border-box !important;
}

.single-product .cwginstock-subscribe-form h3,
.single-product .cwginstock-panel-heading,
.single-product .cwginstock-panel .panel-heading,
.single-product .cwginstock-panel-primary > .panel-heading,
.single-product .back-in-stock-form h3,
.single-product .wc_bis_form h3,
.single-product .stock-notifier-form h3,
.single-product .xoo-wl-wrap h3 {
    display: block !important;
    margin: 0 0 14px !important;
    padding: 12px 14px !important;
    background: var(--rpd-waitlist-heading-bg) !important;
    color: var(--rpd-waitlist-heading-colour) !important;
    border: 0 !important;
    border-radius: 10px !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    cursor: default !important;
    box-shadow: none !important;
}

.single-product .cwginstock-subscribe-form label,
.single-product .back-in-stock-form label,
.single-product .wc_bis_form label,
.single-product .stock-notifier-form label,
.single-product .xoo-wl-wrap label {
    font-weight: 700 !important;
    display: block !important;
    margin-bottom: 6px !important;
}

.single-product .cwginstock-subscribe-form input[type="text"],
.single-product .cwginstock-subscribe-form input[type="email"],
.single-product .back-in-stock-form input[type="text"],
.single-product .back-in-stock-form input[type="email"],
.single-product .wc_bis_form input[type="text"],
.single-product .wc_bis_form input[type="email"],
.single-product .stock-notifier-form input[type="text"],
.single-product .stock-notifier-form input[type="email"],
.single-product .xoo-wl-wrap input[type="text"],
.single-product .xoo-wl-wrap input[type="email"] {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 50px !important;
    border: 1px solid var(--rpd-border) !important;
    border-radius: 12px !important;
    padding: 0 14px !important;
    box-sizing: border-box !important;
    font-size: 16px !important;
    background: #fff !important;
}

.single-product .cwginstock-subscribe-form button,
.single-product .cwginstock-subscribe-form input[type="submit"],
.single-product .cwgstock_button,
.single-product button.cwgstock_button,
.single-product input.cwgstock_button,
.single-product .back-in-stock-form button,
.single-product .back-in-stock-form input[type="submit"],
.single-product .wc_bis_form button,
.single-product .wc_bis_form input[type="submit"],
.single-product .stock-notifier-form button,
.single-product .stock-notifier-form input[type="submit"],
.single-product .xoo-wl-wrap button,
.single-product .xoo-wl-wrap input[type="submit"] {
    background: var(--rpd-waitlist-bg) !important;
    background-color: var(--rpd-waitlist-bg) !important;
    color: var(--rpd-waitlist-colour) !important;
    border: 0 !important;
    border-radius: 999px !important;
    padding: 12px 24px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    cursor: pointer !important;
}

.single-product .cwginstock-subscribe-form button:hover,
.single-product .cwginstock-subscribe-form input[type="submit"]:hover,
.single-product .cwgstock_button:hover,
.single-product .back-in-stock-form button:hover,
.single-product .back-in-stock-form input[type="submit"]:hover,
.single-product .wc_bis_form button:hover,
.single-product .wc_bis_form input[type="submit"]:hover,
.single-product .stock-notifier-form button:hover,
.single-product .stock-notifier-form input[type="submit"]:hover,
.single-product .xoo-wl-wrap button:hover,
.single-product .xoo-wl-wrap input[type="submit"]:hover {
    filter: brightness(.94) !important;
}


/* Checkout: Edit Basket prompt */
.rpd-edit-basket-prompt {
    background: #f4f8fa;
    border: 1px solid var(--rpd-border);
    border-radius: 12px;
    padding: 14px 16px;
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 1.4;
}
.rpd-edit-basket-prompt p {
    margin: 0 0 10px;
    font-weight: 600;
    color: var(--rpd-text);
}
.rpd-edit-basket-prompt a {
    display: inline-block;
    background: var(--rpd-blue);
    color: #fff !important;
    text-decoration: none;
    border-radius: 999px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.rpd-edit-basket-prompt a:hover { filter: brightness(.95); }
@media (max-width: 768px) {
    .rpd-edit-basket-prompt { margin-bottom: 14px; padding: 12px; }
    .rpd-edit-basket-prompt a { width: 100%; text-align: center; }
}

@media (max-width:768px){.rpd-site-header{position:relative}.rpd-main-menu{position:absolute;top:100%;left:0;right:0;z-index:9999;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.08);display:none;padding:10px 0}.rpd-main-menu.is-open{display:block}.rpd-main-menu ul{flex-direction:column;gap:0;align-items:center}.rpd-main-menu li{width:100%;text-align:center}.rpd-main-menu a{display:block;padding:12px 20px}}

/* v0.3.17 Mobile compact hamburger dropdown */
@media (max-width:768px){
    .rpd-site-header{position:relative!important;}
    .rpd-main-menu{
        position:absolute!important;
        top:calc(100% - 6px)!important;
        left:14px!important;
        right:auto!important;
        width:235px!important;
        max-width:calc(100vw - 28px)!important;
        z-index:9999!important;
        background:#fff!important;
        border:1px solid #d9e7ee!important;
        border-radius:12px!important;
        box-shadow:0 10px 24px rgba(0,0,0,.14)!important;
        display:none!important;
        padding:8px 0!important;
    }
    .rpd-main-menu.is-open{display:block!important;}
    .rpd-main-menu ul{
        flex-direction:column!important;
        align-items:stretch!important;
        gap:0!important;
        margin:0!important;
        padding:0!important;
    }
    .rpd-main-menu li{width:100%!important;text-align:left!important;}
    .rpd-main-menu a{
        display:block!important;
        padding:12px 18px!important;
        text-align:left!important;
        white-space:normal!important;
    }
}


/* v0.3.18 Strong waitlist customizer overrides */
.single-product .cwginstock-subscribe-form .cwginstock-panel-heading,
.single-product .cwginstock-subscribe-form .panel-heading,
.single-product .cwginstock-panel-heading,
.single-product .cwginstock-panel .panel-heading,
.single-product .cwginstock-panel-primary > .panel-heading,
.single-product .back-in-stock-form h3,
.single-product .wc_bis_form h3,
.single-product .stock-notifier-form h3,
.single-product .xoo-wl-wrap h3,
.single-product .rpd-waitlist-heading {
    background: var(--rpd-waitlist-heading-bg) !important;
    background-color: var(--rpd-waitlist-heading-bg) !important;
    color: var(--rpd-waitlist-heading-colour) !important;
    border-radius: 10px !important;
    padding: 12px 14px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    text-decoration: none !important;
}
.single-product .cwginstock-subscribe-form button,
.single-product .cwginstock-subscribe-form input[type="submit"],
.single-product .cwginstock-subscribe-form .cwgstock_button,
.single-product .cwginstock-panel button,
.single-product .cwginstock-panel input[type="submit"],
.single-product .back-in-stock-form button,
.single-product .back-in-stock-form input[type="submit"],
.single-product .wc_bis_form button,
.single-product .wc_bis_form input[type="submit"],
.single-product .stock-notifier-form button,
.single-product .stock-notifier-form input[type="submit"],
.single-product .xoo-wl-wrap button,
.single-product .xoo-wl-wrap input[type="submit"] {
    background: var(--rpd-waitlist-bg) !important;
    background-color: var(--rpd-waitlist-bg) !important;
    color: var(--rpd-waitlist-colour) !important;
    border-color: var(--rpd-waitlist-bg) !important;
}


/* v0.3.20 Broad waitlist colour overrides */
.single-product .rpd-waitlist-heading,
.single-product .cwginstock-panel-heading,
.single-product .cwginstock-panel .panel-heading,
.single-product .cwginstock-panel-primary > .panel-heading,
.single-product .cwginstock-subscribe-form h3,
.single-product .back-in-stock-form h3,
.single-product .wc_bis_form h3,
.single-product .stock-notifier-form h3,
.single-product .xoo-wl-wrap h3,
.single-product .cwginstock-subscribe-form legend,
.single-product .back-in-stock-form legend {
    background: var(--rpd-waitlist-heading-bg) !important;
    background-color: var(--rpd-waitlist-heading-bg) !important;
    color: var(--rpd-waitlist-heading-colour) !important;
}
.single-product .cwginstock-subscribe-form button:not(.single_add_to_cart_button),
.single-product .cwginstock-subscribe-form input[type="submit"],
.single-product .cwginstock-subscribe-form .button:not(.single_add_to_cart_button),
.single-product .cwgstock_button,
.single-product .cwginstock-panel button,
.single-product .cwginstock-panel input[type="submit"],
.single-product .back-in-stock-form button,
.single-product .back-in-stock-form input[type="submit"],
.single-product .wc_bis_form button,
.single-product .wc_bis_form input[type="submit"],
.single-product .stock-notifier-form button,
.single-product .stock-notifier-form input[type="submit"],
.single-product .xoo-wl-wrap button,
.single-product .xoo-wl-wrap input[type="submit"] {
    background: var(--rpd-waitlist-bg) !important;
    background-color: var(--rpd-waitlist-bg) !important;
    border-color: var(--rpd-waitlist-bg) !important;
    color: var(--rpd-waitlist-colour) !important;
}

/* v0.3.21 Variable product size cards */
.single-product .rpd-variable-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 16px}
.single-product .rpd-variable-card{border:1px solid var(--rpd-border);background:#fff;border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;color:var(--rpd-text);box-shadow:none}
.single-product .rpd-variable-card:hover{border-color:var(--rpd-blue);box-shadow:0 5px 16px rgba(0,0,0,.06)}
.single-product .rpd-variable-card.is-selected{border-color:var(--rpd-blue);box-shadow:0 0 0 2px rgba(11,95,115,.12)}
.single-product .rpd-variable-card__top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:6px}
.single-product .rpd-variable-card__size{font-weight:800;font-size:15px}
.single-product .rpd-variable-card__price{font-weight:800;color:var(--rpd-blue);white-space:nowrap}
.single-product .rpd-variable-card__stock{font-size:13px;font-weight:700}
.single-product .rpd-variable-card.is-in-stock .rpd-variable-card__stock{color:#0f766e}
.single-product .rpd-variable-card.is-backorder .rpd-variable-card__stock{color:#b45309}
.single-product .rpd-variable-card.is-out-of-stock .rpd-variable-card__stock{color:#b91c1c}
.single-product form.variations_form table.variations select{position:absolute!important;left:-9999px!important}
.single-product form.variations_form table.variations td.value{display:block;width:100%}
.single-product .rpd-variable-product .rpd-stock-pill,.single-product .rpd-variable-product .rpd-backorder-message,.single-product .rpd-variable-product .rpd-single-product__summary>.stock{display:none!important}
.single-product .rpd-selected-variation-status{margin:10px 0 14px;font-weight:800;color:var(--rpd-blue)}
@media(max-width:600px){.single-product .rpd-variable-cards{grid-template-columns:1fr}}

/* v0.3.22 Hide waitlist unless selected variation is genuinely unavailable */
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-subscribe-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-panel,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-panel-body,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .back-in-stock-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .backinstock,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .wc_bis_form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .stock-notifier-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .xoo-wl-wrap {
    display: none !important;
}

/* v0.3.23 Variable-product stock/waitlist cleanup */
.single-product .rpd-variable-product .rpd-selected-variation-status,
.single-product .rpd-variable-product .woocommerce-variation-availability,
.single-product .rpd-variable-product .woocommerce-variation-availability .stock {
    display: none !important;
}

/* Hide orphan waitlist headings that were inserted outside the actual waitlist form. */
.single-product .rpd-single-product__purchase > .rpd-waitlist-heading,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .rpd-waitlist-heading {
    display: none !important;
}

/* For variable products, only show a waitlist form when the selected variation is genuinely out of stock. */
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-subscribe-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-panel,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-panel-body,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .back-in-stock-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .backinstock,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .wc_bis_form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .stock-notifier-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .xoo-wl-wrap {
    display: none !important;
}

/* v0.3.24 stock/variation cleanup */
.single-product .cwginstock-panel > .cwginstock-panel-heading,
.single-product .cwginstock-panel > .panel-heading,
.single-product .cwginstock-panel-primary > .panel-heading {
    display: none !important;
}

.single-product .rpd-variable-card.is-out-of-stock {
    opacity: .82;
}

.single-product .rpd-variable-product.rpd-selected-out-of-stock .single_add_to_cart_button {
    opacity: .55 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* v0.3.25 unavailable/out-of-stock clarity */
.single-product .rpd-selected-out-of-stock .single_add_to_cart_button,
.single-product .rpd-selected-out-of-stock button.single_add_to_cart_button.disabled {
    background: #6b7280 !important;
    color: #ffffff !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

.single-product .rpd-selected-out-of-stock .single_add_to_cart_button::before {
    content: "⊘ ";
    font-weight: 900;
}

/* On fully out-of-stock simple products, keep the main stock pill and hide the duplicate Woo stock line. */
.single-product:not(.product-type-variable) .rpd-single-product__summary > .stock.out-of-stock,
.single-product:not(.product-type-variable) .rpd-single-product__summary > p.stock.out-of-stock {
    display: none !important;
}

/* For variable products, WooCommerce's duplicated variation stock line is hidden; the cards carry stock state. */
.single-product .rpd-variable-product .woocommerce-variation-availability,
.single-product .rpd-variable-product .woocommerce-variation-availability .stock {
    display: none !important;
}

/* v0.3.26 out-of-stock and waitlist cleanup */

/* Keep the theme stock pill, hide duplicate WooCommerce stock lines on simple products. */
.single-product:not(.product-type-variable) .summary .stock.out-of-stock:not(.rpd-stock-pill),
.single-product:not(.product-type-variable) .rpd-single-product__summary .stock.out-of-stock:not(.rpd-stock-pill),
.single-product:not(.product-type-variable) .rpd-single-product__purchase .stock.out-of-stock {
    display: none !important;
}

/* Never show an orphan heading without an actual waitlist form. */
.single-product .rpd-single-product__purchase > .rpd-waitlist-heading,
.single-product form.variations_form > .rpd-waitlist-heading,
.single-product .woocommerce-variation-add-to-cart > .rpd-waitlist-heading {
    display: none !important;
}

/* If the selected variation is out of stock but no actual waitlist form exists, do not show a fake heading. */
.single-product .rpd-variable-product .woocommerce-variation-add-to-cart-disabled .rpd-waitlist-heading {
    display: none !important;
}

/* v0.3.28 waitlist heading restore + variable toggle */

/* Hide only outer duplicate panel headings, not the real form heading. */
.single-product .cwginstock-panel > .cwginstock-panel-heading,
.single-product .cwginstock-panel > .panel-heading,
.single-product .cwginstock-panel-primary > .panel-heading {
    display: none !important;
}

/* Ensure real form headings are visible and custom-coloured. */
.single-product .cwginstock-subscribe-form h3,
.single-product .cwginstock-panel-body h3,
.single-product .back-in-stock-form h3,
.single-product .wc_bis_form h3,
.single-product .stock-notifier-form h3,
.single-product .xoo-wl-wrap h3,
.single-product .rpd-waitlist-heading {
    display: block !important;
    background: var(--rpd-waitlist-heading-bg) !important;
    background-color: var(--rpd-waitlist-heading-bg) !important;
    color: var(--rpd-waitlist-heading-colour) !important;
}

/* Variable products: hide waitlist unless selected size is genuinely out of stock. */
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-subscribe-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-panel,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .cwginstock-panel-body,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .back-in-stock-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .backinstock,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .wc_bis_form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .stock-notifier-form,
.single-product .rpd-variable-product:not(.rpd-selected-out-of-stock) .xoo-wl-wrap {
    display: none !important;
}

.single-product .rpd-variable-product.rpd-selected-out-of-stock .cwginstock-subscribe-form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .cwginstock-panel,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .cwginstock-panel-body,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .back-in-stock-form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .backinstock,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .wc_bis_form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .stock-notifier-form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .xoo-wl-wrap {
    display: block !important;
}

/* v0.3.29 waitlist cleanup */

/* Hide duplicate outer headings only when an inner form heading exists. */
.single-product .cwginstock-panel:has(.cwginstock-panel-body h3) > .cwginstock-panel-heading,
.single-product .cwginstock-panel:has(.cwginstock-panel-body .rpd-waitlist-heading) > .cwginstock-panel-heading,
.single-product .cwginstock-panel:has(.cwginstock-panel-body h3) > .panel-heading,
.single-product .cwginstock-panel:has(.cwginstock-panel-body .rpd-waitlist-heading) > .panel-heading,
.single-product .cwginstock-panel-primary:has(.cwginstock-panel-body h3) > .panel-heading {
    display: none !important;
}

/* Ensure actual waitlist forms are visible when the selected variable option is out of stock. */
.single-product .rpd-variable-product.rpd-selected-out-of-stock .cwginstock-subscribe-form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .cwginstock-panel,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .cwginstock-panel-body,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .back-in-stock-form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .backinstock,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .wc_bis_form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .stock-notifier-form,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .xoo-wl-wrap {
    display: block !important;
}

/* Do not show orphan heading-only elements with no form fields. */
.single-product .rpd-single-product__purchase > .rpd-waitlist-heading,
.single-product form.variations_form > .rpd-waitlist-heading,
.single-product .woocommerce-variation-add-to-cart > .rpd-waitlist-heading {
    display: none !important;
}


/* v0.4.0 Native RPD waitlist */
.single-product .cwginstock-subscribe-form,
.single-product .cwginstock-panel,
.single-product .cwginstock-panel-body,
.single-product .back-in-stock-form,
.single-product .backinstock,
.single-product .wc_bis_form,
.single-product .stock-notifier-form,
.single-product .xoo-wl-wrap {
    display: none !important;
}

.rpd-native-waitlist {
    display: none;
    max-width: 560px;
    margin: 18px 0;
    padding: 18px;
    background: #f6fbfc;
    border: 1px solid var(--rpd-border);
    border-radius: 16px;
}

.rpd-native-waitlist.is-visible {
    display: block;
}

.rpd-native-waitlist__heading {
    background: var(--rpd-waitlist-heading-bg);
    color: var(--rpd-waitlist-heading-colour);
    border-radius: 10px;
    padding: 12px 14px;
    text-align: center;
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 16px;
}

.rpd-native-waitlist__form {
    display: grid;
    gap: 12px;
}

.rpd-native-waitlist input[type="text"],
.rpd-native-waitlist input[type="email"] {
    width: 100%;
    border: 1px solid var(--rpd-border);
    border-radius: 12px;
    padding: 13px 16px;
    font-size: 16px;
    text-align: center;
    background: #fff;
}

.rpd-native-waitlist button {
    width: 100%;
    border: 0;
    border-radius: 999px;
    padding: 13px 22px;
    background: var(--rpd-waitlist-bg);
    color: var(--rpd-waitlist-colour);
    font-weight: 800;
    cursor: pointer;
}

.rpd-native-waitlist__message {
    margin: 0;
    font-weight: 700;
    text-align: center;
    color: var(--rpd-blue);
}

.rpd-native-waitlist__message.is-error {
    color: #b91c1c;
}


/* v0.4.1 Native waitlist positioning and out-of-stock purchase cleanup */
.single-product .rpd-variable-product.rpd-selected-out-of-stock .quantity,
.single-product .rpd-variable-product.rpd-selected-out-of-stock .single_add_to_cart_button {
    display: none !important;
}

.single-product .rpd-variable-product.rpd-selected-out-of-stock .rpd-native-waitlist {
    display: block !important;
}

.single-product .rpd-native-waitlist {
    scroll-margin-top: 90px;
}

/* v0.4.2 tidy variable size/waitlist layout */
.single-product form.variations_form table.variations {
    display: block !important;
}

.single-product form.variations_form table.variations tbody,
.single-product form.variations_form table.variations tr,
.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td {
    display: block !important;
    width: 100% !important;
}

.single-product form.variations_form table.variations th.label {
    padding: 0 !important;
    margin: 0 0 8px !important;
}

.single-product form.variations_form table.variations th.label label {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
}

.single-product form.variations_form table.variations td.value {
    padding: 0 !important;
}

.single-product .rpd-variable-cards {
    margin-top: 0 !important;
}

.single-product .rpd-variable-cards + .rpd-native-waitlist {
    margin-top: 14px !important;
    margin-bottom: 22px !important;
}

/* v0.4.3 hide duplicate WooCommerce stock text on simple products */
.single-product.product-type-simple .rpd-single-product__purchase > p.stock,
.single-product.product-type-simple .rpd-single-product__summary > p.stock:not(.rpd-stock-pill),
.single-product.product-type-simple form.cart > p.stock,
.single-product.product-type-simple .stock.in-stock:not(.rpd-stock-pill),
.single-product.product-type-simple .stock.out-of-stock:not(.rpd-stock-pill),
.single-product.product-type-simple .stock.available-on-backorder:not(.rpd-stock-pill) {
    display: none !important;
}

/* v0.4.4 stronger duplicate stock hiding */
.single-product .rpd-single-product__purchase .stock,
.single-product .rpd-single-product__purchase p.stock,
.single-product .rpd-single-product__purchase div.stock,
.single-product .rpd-single-product__purchase span.stock,
.single-product .summary .cart + .stock,
.single-product .summary form.cart .stock,
.single-product .summary form.cart + p.stock,
.single-product .summary form.cart + div.stock,
.single-product .summary > p.stock:not(.rpd-stock-pill),
.single-product .summary > div.stock:not(.rpd-stock-pill),
.single-product .woocommerce-variation-availability,
.single-product .woocommerce-variation-availability .stock {
    display: none !important;
}

/* v0.4.5 duplicate stock fallback class */
.rpd-hide-duplicate-stock {
    display: none !important;
}


/* v0.4.6 cleaner shop-card availability text */
.woocommerce ul.products li.product .rpd-backorder-message,
.rpd-product-card .rpd-backorder-message {
    display: none !important;
}

.rpd-product-card .rpd-loop-availability {
    margin: 6px 0 0;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
    color: var(--rpd-blue);
}

.rpd-product-card .rpd-loop-availability--backorder {
    color: #b45309;
}

.rpd-product-card .rpd-loop-availability--out {
    color: #6b7280;
}


/* v0.4.7 cleaner archive cards: button already says Out of Stock */
.rpd-product-card .rpd-loop-availability--out {
    display: none !important;
}


/* v0.5.5 AJAX quick select panel */
.rpd-quick-select-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.46);
    z-index: 999997;
}
.rpd-quick-select-panel {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(440px, calc(100vw - 32px));
    max-height: calc(100vh - 40px);
    overflow: auto;
    background: #fff;
    border-radius: 18px;
    padding: 22px;
    z-index: 999998;
    box-shadow: 0 20px 60px rgba(0,0,0,.24);
}
.rpd-quick-select-close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: #f3f4f6;
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
}
.rpd-quick-select-title {
    margin: 0 38px 4px 0;
    color: var(--rpd-blue);
    font-size: 22px;
    line-height: 1.2;
}
.rpd-quick-select-subtitle {
    margin: 0 0 14px;
    font-weight: 800;
    color: #6b7280;
}
.rpd-quick-select-options {
    display: grid;
    gap: 10px;
}
.rpd-quick-select-option {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 12px;
    width: 100%;
    border: 1px solid var(--rpd-border);
    background: #fff;
    border-radius: 14px;
    padding: 13px 14px;
    cursor: pointer;
    text-align: left;
    color: var(--rpd-text);
    font: inherit;
}
.rpd-quick-select-option.is-selected {
    border-color: var(--rpd-blue);
    box-shadow: 0 0 0 2px rgba(11,95,115,.12);
    background: #f4fbfd;
}
.rpd-quick-select-option__label { font-weight: 900; }
.rpd-quick-select-option__price { font-weight: 900; color: var(--rpd-blue); white-space: nowrap; }
.rpd-quick-select-option__stock { grid-column: 1 / -1; font-size: 13px; font-weight: 800; }
.rpd-quick-select-option.is-in_stock .rpd-quick-select-option__stock { color: #0f766e; }
.rpd-quick-select-option.is-backorder .rpd-quick-select-option__stock { color: #b45309; }
.rpd-quick-select-option.is-out .rpd-quick-select-option__stock { color: #b91c1c; }
.rpd-quick-select-action {
    display: block;
    width: 100%;
    margin-top: 14px;
    text-align: center;
}


/* v0.5.6 quick select loading/error states */
.rpd-quick-select-loading,
.rpd-quick-select-error {
    margin: 10px 0;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f4f8fa;
    font-weight: 700;
    text-align: center;
}
.rpd-quick-select-error {
    color: #b91c1c;
}


/* v0.5.7 quick select hidden fallback */
.rpd-quick-select-panel [hidden] {
    display: none !important;
}


/* v0.6.9 debug marker */
.rpd-quick-select-debug-version {
    display: inline-block;
    margin-bottom: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff3cd;
    color: #7a4d00;
    font-size: 12px;
    font-weight: 900;
}
.rpd-quick-select-error {
    white-space: pre-wrap;
    text-align: left;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 12px;
}


/* v0.6.9 quick select tidy */
.rpd-variable-price-trigger {
    cursor: pointer;
}
.rpd-variable-price-trigger:hover {
    text-decoration: underline;
}
.rpd-quick-select-panel [hidden] {
    display: none !important;
}
.rpd-quick-select-error {
    white-space: normal;
    text-align: center;
}
.rpd-selected-out-of-stock .quantity,
.rpd-selected-out-of-stock .single_add_to_cart_button {
    display: none !important;
}


/* v0.7.2 mobile add-to-basket notice layout */
@media (max-width: 767px) {
    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding: 12px 14px !important;
        line-height: 1.35 !important;
        font-size: 13px !important;
    }

    .woocommerce-message::before,
    .woocommerce-info::before,
    .woocommerce-error::before {
        position: static !important;
        margin: 0 0 2px 0 !important;
        align-self: flex-start !important;
    }

    .woocommerce-message .button,
    .woocommerce-info .button,
    .woocommerce-error .button,
    .woocommerce-message .wc-forward,
    .woocommerce-info .wc-forward,
    .woocommerce-error .wc-forward {
        order: 2 !important;
        width: 100% !important;
        float: none !important;
        display: block !important;
        text-align: center !important;
        margin: 4px 0 0 !important;
        padding: 10px 14px !important;
        border-radius: 8px !important;
        font-size: 13px !important;
        white-space: normal !important;
    }
}


/* v0.7.3 remove WooCommerce AJAX "View basket" links under product cards */
.woocommerce ul.products li.product a.added_to_cart,
.woocommerce ul.products li.product a.added_to_cart.wc-forward,
.rpd-product-card a.added_to_cart,
.rpd-product-card a.added_to_cart.wc-forward {
    display: none !important;
}
