/* ============================================================
   Customverse V25 — Dedicated, compact product page
   ============================================================ */

.single-product .woocommerce-breadcrumb,
.single-product .product_meta,
.single-product .woocommerce-tabs { display:none !important; }

/* One dedicated product canvas: image/gallery + buying/customisation panel. */
.single-product div.product.cv-dedicated-product {
    width:min(1240px, calc(100% - 64px)) !important;
    margin:42px auto 55px !important;
    display:block !important;
    float:none !important;
}

.single-product .cv-dedicated-product__main {
    display:grid !important;
    grid-template-columns:minmax(0, 1.04fr) minmax(420px, .96fr) !important;
    gap:52px !important;
    align-items:start !important;
}

.single-product .cv-dedicated-product__gallery {
    min-width:0;
}

.single-product .cv-dedicated-product__gallery .woocommerce-product-gallery {
    width:100% !important;
    float:none !important;
    margin:0 !important;
}

.single-product .cv-dedicated-product__gallery .woocommerce-product-gallery__wrapper {
    margin:0 !important;
}

.single-product .cv-dedicated-product__gallery .woocommerce-product-gallery__image {
    background:#f6f6f4;
    border-radius:18px;
    overflow:hidden;
}

.single-product .cv-dedicated-product__gallery .woocommerce-product-gallery__image img {
    width:100% !important;
    height:auto !important;
    max-height:650px !important;
    object-fit:contain !important;
    display:block !important;
}

.single-product .cv-dedicated-product__summary {
    min-width:0;
    width:100% !important;
    float:none !important;
    margin:0 !important;
    padding:4px 0 0 !important;
    text-align:left !important;
}

.single-product .cv-dedicated-product__summary .product_title {
    margin:0 0 12px !important;
    max-width:700px;
    font-size:clamp(32px, 3.5vw, 48px) !important;
    line-height:1.08 !important;
    font-weight:700 !important;
    letter-spacing:-.025em !important;
    color:#111827 !important;
}

.single-product .cv-dedicated-product__summary .woocommerce-product-details__short-description {
    max-width:700px;
    margin:0 0 17px !important;
    font-size:16px !important;
    line-height:1.58 !important;
    color:#59616b !important;
}

.single-product .cv-dedicated-product__summary .woocommerce-product-details__short-description p { margin:0 !important; }

.single-product .cv-dedicated-product__summary .price {
    margin:0 0 13px !important;
    font-size:29px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
    color:#111827 !important;
}

.single-product .cv-dedicated-product__summary .price del { opacity:.45; font-size:20px; }

.single-product .cv-dedicated-product__summary .stock {
    display:inline-flex !important;
    align-items:center;
    gap:7px;
    margin:0 0 18px !important;
    padding:7px 13px !important;
    border-radius:999px;
    font-size:13px !important;
    font-weight:700 !important;
}

.single-product .cv-dedicated-product__summary .stock.in-stock { background:#eaf8ef; color:#18733a; }
.single-product .cv-dedicated-product__summary .stock.out-of-stock { background:#fff0f0; color:#c62828; }
.single-product .cv-dedicated-product__summary .stock.available-on-backorder { background:#fff7e5; color:#9a6700; }

/* Keep quantity + Add to Cart immediately together. */
.single-product .cv-dedicated-product__summary form.cart {
    width:100% !important;
    max-width:610px !important;
    margin:4px 0 17px !important;
    display:flex !important;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    flex-wrap:nowrap;
}

.single-product .cv-dedicated-product__summary form.cart .quantity { margin:0 !important; }
.single-product .cv-dedicated-product__summary form.cart .quantity .qty {
    width:76px !important;
    height:52px !important;
    border:1px solid #d5d9df !important;
    border-radius:10px !important;
    text-align:center !important;
    font-size:16px !important;
}

.single-product .cv-dedicated-product__summary form.cart .single_add_to_cart_button {
    flex:1 1 auto;
    min-height:52px !important;
    padding:0 25px !important;
    border:0 !important;
    border-radius:999px !important;
    background:#111 !important;
    color:#fff !important;
    font-size:14px !important;
    font-weight:800 !important;
    letter-spacing:.04em;
    box-shadow:0 8px 22px rgba(0,0,0,.12);
    transition:transform .18s ease, opacity .18s ease;
}

.single-product .cv-dedicated-product__summary form.cart .single_add_to_cart_button::before {
    content:"\1F6D2";
    margin-right:8px;
}
.single-product .cv-dedicated-product__summary form.cart .single_add_to_cart_button:hover { transform:translateY(-1px); opacity:.92; }

/* Product benefits: small, useful and visually quiet. */
.cv-product-highlights {
    width:100%;
    max-width:700px;
    margin:4px 0 20px;
    padding:13px 0;
    border-top:1px solid #ececec;
    border-bottom:1px solid #ececec;
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    color:#3f4650;
    font-size:12px;
    line-height:1.4;
}
.cv-product-highlights span { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.cv-product-highlights b { color:#111; font-weight:800; }

/* The customisation form lives directly under the buying controls. */
.single-product .cv-product-customise {
    width:100% !important;
    max-width:700px !important;
    margin:18px 0 0 !important;
    padding:22px !important;
    background:#f7f7f5 !important;
    border:1px solid #e3e3df !important;
    border-radius:16px !important;
    box-shadow:none !important;
    box-sizing:border-box !important;
}

.cv-product-customise__intro { margin-bottom:16px !important; }
.cv-product-customise__eyebrow { margin-bottom:6px !important; font-size:10px !important; letter-spacing:.17em !important; }
.cv-product-customise h2 { margin:0 0 6px !important; font-size:22px !important; line-height:1.15 !important; }
.cv-product-customise__intro p { margin:0 !important; font-size:13px !important; line-height:1.5 !important; }

.cv-customise-grid { grid-template-columns:1fr 1fr !important; gap:11px !important; }
.cv-field > span { margin-bottom:5px !important; font-size:12px !important; }
.cv-field input, .cv-field select, .cv-field textarea { padding:10px 11px !important; border-radius:8px !important; font-size:13px !important; }
.cv-field input, .cv-field select { height:43px !important; }
.cv-field textarea { min-height:80px !important; }

.cv-upload { margin-top:12px !important; padding:11px !important; border-radius:10px !important; gap:10px !important; }
.cv-upload__icon { width:34px !important; height:34px !important; flex-basis:34px !important; font-size:17px !important; }
.cv-upload__copy strong { font-size:13px !important; }
.cv-upload__copy small { font-size:11px !important; }
.cv-upload__button { min-height:34px !important; padding:0 12px !important; font-size:11px !important; }
.cv-upload__filename { margin:5px 2px 0 !important; font-size:11px !important; min-height:15px !important; }

.cv-product-customise__actions { margin-top:12px !important; gap:8px !important; }
.cv-customise-submit, .cv-customise-whatsapp { min-height:44px !important; padding:0 15px !important; font-size:12px !important; }
.cv-product-customise__fineprint { margin-top:8px !important; font-size:10px !important; }
.cv-customise-notice { margin-bottom:12px !important; padding:10px 12px !important; font-size:12px !important; }

/* Remove redundant meta/category output even if another plugin prints it. */
.single-product .cv-dedicated-product__summary .product_meta,
.single-product .cv-dedicated-product__summary .sku_wrapper,
.single-product .cv-dedicated-product__summary .posted_in,
.single-product .cv-dedicated-product__summary .tagged_as { display:none !important; }

/* Compact related products strip at the bottom. */
.single-product .related.products,
.single-product .upsells.products {
    width:min(1240px, calc(100% - 64px)) !important;
    margin:28px auto 58px !important;
    padding:28px 0 0 !important;
    border-top:1px solid #ededed;
    clear:both !important;
}

.single-product .related.products > h2,
.single-product .upsells.products > h2 {
    margin:0 0 20px !important;
    padding:0 !important;
    text-align:left !important;
    font-size:25px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
}

.single-product .related.products ul.products,
.single-product .upsells.products ul.products {
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
    gap:18px !important;
    list-style:none !important;
}

.single-product .related.products ul.products li.product,
.single-product .upsells.products ul.products li.product {
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 0 13px !important;
    float:none !important;
    display:flex !important;
    flex-direction:column !important;
    text-align:left !important;
    overflow:hidden !important;
    border:1px solid #e8e8e8 !important;
    border-radius:12px !important;
    background:#fff !important;
    box-shadow:none !important;
}

.single-product .related.products ul.products li.product img,
.single-product .upsells.products ul.products li.product img {
    display:block !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:1 / 1 !important;
    object-fit:cover !important;
    margin:0 !important;
    padding:0 !important;
    background:#f6f6f4 !important;
}

.single-product .related.products ul.products li.product .woocommerce-loop-product__title,
.single-product .upsells.products ul.products li.product .woocommerce-loop-product__title {
    min-height:0 !important;
    margin:11px 12px 4px !important;
    padding:0 !important;
    font-size:14px !important;
    line-height:1.3 !important;
    font-weight:700 !important;
}
.single-product .related.products ul.products li.product .price,
.single-product .upsells.products ul.products li.product .price {
    margin:0 12px !important;
    font-size:14px !important;
    font-weight:600 !important;
}
.single-product .related.products ul.products li.product .button,
.single-product .upsells.products ul.products li.product .button { display:none !important; }
.single-product .related.products ul.products li.product .star-rating,
.single-product .upsells.products ul.products li.product .star-rating { margin:5px 12px 0 !important; }

/* Mobile: stack image then product controls, without giant whitespace. */
@media (max-width: 900px) {
    .single-product div.product.cv-dedicated-product { width:calc(100% - 32px) !important; margin:28px auto 42px !important; }
    .single-product .cv-dedicated-product__main { grid-template-columns:1fr !important; gap:25px !important; }
    .single-product .cv-dedicated-product__summary { padding:0 !important; }
    .single-product .cv-dedicated-product__summary .product_title { font-size:34px !important; }
    .single-product .cv-dedicated-product__summary .woocommerce-product-details__short-description { font-size:15px !important; }
    .single-product .related.products,
    .single-product .upsells.products { width:calc(100% - 32px) !important; }
}

@media (max-width: 600px) {
    .single-product div.product.cv-dedicated-product { width:calc(100% - 24px) !important; margin-top:20px !important; }
    .single-product .cv-dedicated-product__main { gap:20px !important; }
    .single-product .cv-dedicated-product__gallery .woocommerce-product-gallery__image { border-radius:13px; }
    .single-product .cv-dedicated-product__summary .product_title { font-size:30px !important; }
    .single-product .cv-dedicated-product__summary .price { font-size:26px !important; }
    .single-product .cv-dedicated-product__summary form.cart { max-width:none !important; }
    .single-product .cv-dedicated-product__summary form.cart .quantity .qty { width:70px !important; }
    .single-product .cv-dedicated-product__summary form.cart .single_add_to_cart_button { min-width:0 !important; padding:0 14px !important; }
    .cv-product-highlights { gap:7px 12px; font-size:11px; }
    .single-product .cv-product-customise { padding:18px !important; }
    .cv-customise-grid { grid-template-columns:1fr !important; }
    .cv-field--wide { grid-column:auto !important; }
    .cv-product-customise__actions { flex-direction:column !important; }
    .cv-customise-submit, .cv-customise-whatsapp { width:100% !important; }
    .single-product .related.products,
    .single-product .upsells.products { width:calc(100% - 24px) !important; margin-top:20px !important; padding-top:22px !important; }
    .single-product .related.products > h2,
    .single-product .upsells.products > h2 { font-size:22px !important; }
    .single-product .related.products ul.products,
    .single-product .upsells.products ul.products { grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:12px !important; }
}

/* ============================================================
   Customverse V26 — Universal WooCommerce variation + review UI
   ============================================================ */
.single-product .cv-dedicated-product__summary .variations_form {
    width:100% !important;
    max-width:700px !important;
    margin:8px 0 16px !important;
    padding:16px 0 4px !important;
    border-top:1px solid #ececec !important;
}
.single-product .cv-dedicated-product__summary .variations_form .variations {
    width:100% !important;
    margin:0 !important;
    border:0 !important;
    background:transparent !important;
}
.single-product .cv-dedicated-product__summary .variations_form .variations tr,
.single-product .cv-dedicated-product__summary .variations_form .variations td,
.single-product .cv-dedicated-product__summary .variations_form .variations th {
    display:block !important;
    width:100% !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
}
.single-product .cv-dedicated-product__summary .variations_form .variations tr + tr { margin-top:16px !important; }
.single-product .cv-dedicated-product__summary .variations_form .label { margin:0 0 7px !important; }
.single-product .cv-dedicated-product__summary .variations_form .label label,
.cv-variation-label {
    display:block !important;
    margin:0 0 7px !important;
    color:#111827 !important;
    font-size:11px !important;
    font-weight:800 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
}
.single-product .cv-dedicated-product__summary .variations_form .value select {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}
.cv-variation-buttons {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.cv-variation-button {
    min-height:40px !important;
    padding:8px 15px !important;
    border:1px solid #d9dce1 !important;
    border-radius:999px !important;
    background:#fff !important;
    color:#111827 !important;
    font-size:13px !important;
    font-weight:650 !important;
    cursor:pointer !important;
    box-shadow:none !important;
    transition:all .16s ease !important;
}
.cv-variation-button:hover:not(:disabled) { border-color:#111 !important; transform:translateY(-1px); }
.cv-variation-button.is-selected { background:#111 !important; color:#fff !important; border-color:#111 !important; }
.cv-variation-button:disabled { opacity:.32 !important; cursor:not-allowed !important; text-decoration:line-through; }
.single-product .cv-dedicated-product__summary .reset_variations { display:none !important; }

.cv-selected-configuration {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 14px;
    padding:11px 13px;
    border:1px solid #dceee2;
    border-radius:10px;
    background:#f2faf5;
    color:#1f6a3a;
}
.cv-selected-configuration__label { font-size:9px; font-weight:800; letter-spacing:.14em; }
.cv-selected-configuration strong { font-size:12px; text-align:right; }


/* Round colour palette for WooCommerce colour/colour attributes. */
.cv-colour-swatches {
    align-items:center;
    gap:10px !important;
}
.cv-colour-swatch {
    position:relative !important;
    width:43px !important;
    height:43px !important;
    min-height:43px !important;
    padding:0 !important;
    border-radius:50% !important;
    border:2px solid #fff !important;
    background:var(--cv-swatch,#e8e8e8) !important;
    box-shadow:0 0 0 1px #d4d7dc !important;
    color:transparent !important;
    font-size:0 !important;
    flex:0 0 43px;
}
.cv-colour-swatch:hover:not(:disabled) { transform:translateY(-1px) scale(1.04) !important; }
.cv-colour-swatch.is-selected {
    background:var(--cv-swatch,#e8e8e8) !important;
    color:transparent !important;
    border-color:#fff !important;
    box-shadow:0 0 0 2px #111 !important;
}
.cv-colour-swatch.is-selected::after {
    content:'✓';
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:17px;
    font-weight:900;
    text-shadow:0 1px 2px rgba(0,0,0,.45);
}
.cv-colour-swatch[title="White"].is-selected::after,
.cv-colour-swatch[title="white"].is-selected::after { color:#111; text-shadow:none; }
.cv-colour-swatch:disabled { opacity:.3 !important; cursor:not-allowed !important; box-shadow:0 0 0 1px #ddd !important; }
.cv-colour-swatch.is-disabled { opacity:.3 !important; }
.cv-colour-control .cv-variation-label::after { content:' '; }

/* Placement choices are displayed as compact selectable pills while WooCommerce keeps the real select as source of truth. */
.cv-placement-buttons { display:flex; flex-wrap:wrap; gap:7px; margin-top:7px; }
.cv-placement-button { min-height:38px; padding:7px 12px; border:1px solid #d9dce1; border-radius:999px; background:#fff; color:#111827; font-size:12px; font-weight:650; cursor:pointer; }
.cv-placement-button.is-selected { background:#111; border-color:#111; color:#fff; }
.cv-placement-select { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; }

/* Customer artwork preview. */
.cv-customise-review {
    margin-top:16px;
    padding:16px;
    border:1px solid #e3e3df;
    border-radius:14px;
    background:#fff;
}
.cv-customise-review__head { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:12px; }
.cv-customise-review__head h3 { margin:2px 0 0 !important; font-size:18px !important; line-height:1.15 !important; }
.cv-preview-badge { display:inline-flex; align-items:center; min-height:27px; padding:0 10px; border-radius:999px; background:#f1f2f4; color:#626a73; font-size:10px; font-weight:800; white-space:nowrap; }
.cv-preview-badge.is-ready { background:#eaf8ef; color:#18733a; }
.cv-preview-stage { display:grid; grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr); gap:15px; align-items:center; }
.cv-preview-product { position:relative; min-height:230px; display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:11px; background:#f5f5f3; }
.cv-preview-product__base { display:block; width:100%; height:100%; max-height:300px; object-fit:contain; }
.cv-preview-artwork { position:absolute; z-index:2; width:52px; height:52px; display:flex; align-items:center; justify-content:center; border-radius:6px; overflow:hidden; background:rgba(255,255,255,.08); box-shadow:0 1px 4px rgba(0,0,0,.15); transform:translate(-50%,-50%); }
.cv-preview-artwork img { width:100%; height:100%; object-fit:contain; display:block; }
.cv-preview-artwork.is-front { left:50%; top:50%; width:75px; height:75px; }
.cv-preview-artwork.is-left-chest { left:42%; top:39%; width:38px; height:38px; }
.cv-preview-artwork.is-right-chest { left:58%; top:39%; width:38px; height:38px; }
.cv-preview-artwork.is-back { left:50%; top:50%; width:90px; height:90px; }
.cv-preview-artwork.is-sleeve { left:27%; top:48%; width:35px; height:35px; }
.cv-preview-artwork.is-multiple { left:50%; top:48%; width:65px; height:65px; }
.cv-preview-placement { position:absolute; left:10px; bottom:10px; z-index:3; padding:5px 8px; border-radius:999px; background:rgba(17,17,17,.88); color:#fff; font-size:9px; font-weight:800; letter-spacing:.04em; }
.cv-preview-copy { display:flex; flex-direction:column; gap:7px; color:#59616b; font-size:12px; line-height:1.45; }
.cv-preview-copy strong { color:#111827; font-size:15px; }
.cv-preview-copy span:nth-child(3) { color:#111827; font-weight:700; }
.cv-preview-copy span:last-child { padding-top:5px; font-size:10px; color:#7a8088; }

.cv-approval { display:flex; align-items:flex-start; gap:9px; margin-top:13px; padding:11px 12px; border:1px solid #dcdfe4; border-radius:10px; background:#fff; cursor:pointer; }
.cv-approval input { margin-top:2px; accent-color:#111; }
.cv-approval span { font-size:11px; line-height:1.45; color:#4c545d; }
.cv-approval strong { color:#111827; }

@media (max-width: 600px) {
    .cv-selected-configuration { align-items:flex-start; flex-direction:column; gap:4px; }
    .cv-selected-configuration strong { text-align:left; }
    .cv-preview-stage { grid-template-columns:1fr; }
    .cv-preview-product { min-height:260px; }
    .cv-customise-review__head { align-items:flex-start; }
    .cv-customise-review__head h3 { font-size:17px !important; }
    .cv-preview-badge { font-size:9px; }
    .cv-variation-button { min-height:38px !important; padding:7px 12px !important; }
}


/* ============================================================
   Customverse V38 — Force-hide Woo/Astra category + availability
   These are presentation-only; the data remains available in WooCommerce.
   ============================================================ */
.single-product .cv-dedicated-product__summary .single-product-category,
.single-product .cv-dedicated-product__summary .ast-woo-product-category,
.single-product .cv-dedicated-product__summary .woocommerce-product-category,
.single-product .cv-dedicated-product__summary .product_meta .posted_in,
.single-product .cv-dedicated-product__summary .posted_in,
.single-product .cv-dedicated-product__summary .stock,
.single-product .cv-dedicated-product__summary .woocommerce-variation-availability,
.single-product .cv-dedicated-product__summary .availability,
.single-product .cv-dedicated-product__summary .availability_html {
    display:none !important;
}

/* V39 FINAL: remove Astra availability wrapper and hidden honeypot from visual flow. */
.single-product .cv-dedicated-product__summary .ast-stock-detail,
.single-product .cv-dedicated-product__summary .ast-stock-avail,
.single-product .cv-dedicated-product__summary .ast-woo-product-stock,
.single-product .cv-dedicated-product__summary .woocommerce-product-details__availability,
.single-product .cv-dedicated-product__summary .cv-honeypot,
.single-product .cv-dedicated-product__summary input.cv-honeypot {
    display:none !important;
    width:0 !important;
    height:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
}
/* Keep the customisation panel immediately after the short description. */
.single-product .cv-dedicated-product__summary .cv-product-customise {
    margin-top:10px !important;
}


/* ============================================================
   Customverse V56 — Coffee Mug customisation card
   ============================================================ */
.single-product .cv-mug-customise-v56 { margin-top:10px !important; }
.single-product .cv-mug-customise-v56 .cv-v56-mug-options { margin-top:2px; }
.cv-v56-option-title {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    margin:0 0 8px; color:#111827; font-size:10px; font-weight:800;
    letter-spacing:.15em; text-transform:uppercase;
}
#cv-mug-current-colour { letter-spacing:0; text-transform:none; font-size:12px; font-weight:800; }
.cv-v56-colour-row { display:flex; flex-wrap:nowrap; gap:10px; align-items:center; margin-bottom:17px; overflow-x:auto; overflow-y:hidden; width:100%; padding:2px 2px 5px; scrollbar-width:thin; }
.cv-v56-colour {
    flex:0 0 42px !important;
    width:42px !important; height:42px !important; min-height:42px !important;
    padding:0 !important; border:2px solid #fff !important; border-radius:50% !important;
    background:transparent !important; box-shadow:0 0 0 1px #d4d7dc !important;
    cursor:pointer !important; transition:transform .16s ease, box-shadow .16s ease !important;
}
.cv-v56-colour:hover { transform:translateY(-1px) scale(1.04) !important; }
.cv-v56-colour.is-selected { box-shadow:0 0 0 2px #111 !important; }
.cv-v56-swatch { display:block; width:100%; height:100%; border-radius:50%; background:var(--cv-mug-swatch,#eee); }
.cv-v56-colour.is-selected .cv-v56-swatch::after {
    content:'✓'; display:flex; align-items:center; justify-content:center; width:100%; height:100%;
    color:#fff; font-size:15px; font-weight:900; text-shadow:0 1px 2px rgba(0,0,0,.45);
}
.cv-v56-colour[title="White"].is-selected .cv-v56-swatch::after { color:#111; text-shadow:none; }
.cv-v56-variants-title { margin-top:2px; }
.cv-v56-variant-buttons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.cv-v56-variant {
    min-height:40px !important; padding:8px 12px !important; border:1px solid #d7dbe1 !important;
    border-radius:10px !important; background:#fff !important; color:#111827 !important;
    font-size:12px !important; font-weight:700 !important; cursor:pointer !important;
    box-shadow:none !important; transition:all .16s ease !important;
}
.cv-v56-variant:hover { border-color:#111 !important; transform:translateY(-1px); }
.cv-v56-variant.is-selected { background:#111 !important; border-color:#111 !important; color:#fff !important; }
.cv-v56-selection {
    margin-top:16px; padding:12px 13px; border:1px solid #dceee2; border-radius:10px; background:#f2faf5;
}
.cv-v56-selection-line { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cv-v56-selection-line strong { color:#1f6a3a; font-size:9px; letter-spacing:.14em; }
.cv-v56-selection-line span { color:#1f6a3a; font-size:12px; font-weight:800; text-align:right; }
.cv-v56-quote { margin-top:5px; color:#65736a; font-size:11px; font-style:italic; }
.cv-v56-confirm {
    width:100% !important; min-height:45px !important; margin-top:12px !important; padding:0 15px !important;
    border:0 !important; border-radius:10px !important; background:#111 !important; color:#fff !important;
    font-size:12px !important; font-weight:800 !important; cursor:pointer !important;
}
.cv-v56-details { margin-top:14px; padding-top:14px; border-top:1px solid #e2e3df; }
@media (max-width:600px){
    .cv-v56-variant-buttons { grid-template-columns:1fr; }
    .cv-v56-colour-row { gap:9px; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; padding-bottom:6px; }
    .cv-v56-colour { flex:0 0 40px !important; width:40px !important; height:40px !important; min-height:40px !important; }
    .cv-v56-selection-line { align-items:flex-start; flex-direction:column; gap:4px; }
    .cv-v56-selection-line span { text-align:left; }
}


/* V57 — Mug customisation choices: only the three approved options. */
.cv-mug-customisation-choices { margin-top: 4px; }
.cv-mug-customisation-choices > span { display:block; margin-bottom:8px; }
.cv-mug-choice-list { display:grid; grid-template-columns:1fr; gap:8px; }
.cv-mug-choice { display:flex; align-items:center; gap:10px; min-height:42px; padding:9px 12px; border:1px solid #d7dbe1; border-radius:10px; background:#fff; cursor:pointer; font-size:12px; font-weight:700; color:#111827; transition:all .16s ease; }
.cv-mug-choice:hover { border-color:#111; transform:translateY(-1px); }
.cv-mug-choice input { width:17px; height:17px; margin:0; accent-color:#111; flex:0 0 auto; }
.cv-mug-choice input:checked + span { font-weight:800; }
.cv-mug-choice:has(input:checked) { border-color:#111; background:#f7f7f7; box-shadow:0 0 0 1px #111 inset; }
@media (min-width:700px){ .cv-mug-choice-list { grid-template-columns:1fr 1fr; } .cv-mug-choice:last-child { grid-column:1 / -1; } }

/* The mug uses the dedicated V56 customisation card instead of duplicate Woo variation controls. */
.single-product.postid-17 .cv-dedicated-product__summary .variations_form { display:none !important; }

/* V59 — Mug customisation choices shown directly in the enquiry form */
.cv-v59-mug-custom-options { margin:16px 0 14px; padding-top:2px; }
.cv-v59-options-title { font-size:10px; font-weight:800; letter-spacing:.14em; color:#111; margin-bottom:8px; }
.cv-v59-choice-list { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.cv-v59-choice { display:flex; align-items:center; gap:9px; min-height:42px; padding:9px 12px; border:1px solid #d7dbe1; border-radius:10px; background:#fff; cursor:pointer; font-size:12px; font-weight:700; color:#111827; transition:all .16s ease; }
.cv-v59-choice:hover { border-color:#111; transform:translateY(-1px); }
.cv-v59-choice input { width:17px; height:17px; margin:0; accent-color:#111; flex:0 0 auto; }
.cv-v59-choice input:checked + span { font-weight:800; }
.cv-v59-choice input:checked { outline:2px solid #111; outline-offset:1px; }
.cv-v59-choice:has(input:checked) { border-color:#111; background:#f7f7f7; box-shadow:0 0 0 1px #111 inset; }
@media (max-width:699px){ .cv-v59-choice-list { grid-template-columns:1fr; } }


/* ============================================================
   Customverse V61 — Water bottle / sipper customisation
   Existing WooCommerce colour palette and variant/finish controls remain unchanged.
   ============================================================ */
.single-product .cv-water-bottle-customise-v61 { margin-top:10px !important; }
.cv-v61-bottle-custom-options { margin:2px 0 14px; }
.cv-v61-options-title { font-size:10px; font-weight:800; letter-spacing:.15em; color:#111; margin-bottom:4px; }
.cv-v61-options-help { margin:0 0 9px !important; color:#4e5964; font-size:11px !important; line-height:1.4 !important; }
.cv-v61-choice-list { display:grid; grid-template-columns:1fr; gap:8px; }
.cv-v61-choice { position:relative; display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 12px; border:1px solid #d7dbe1; border-radius:10px; background:#fff; cursor:pointer; color:#111827; transition:all .16s ease; }
.cv-v61-choice:hover { border-color:#111; transform:translateY(-1px); }
.cv-v61-choice input { position:absolute; opacity:0; pointer-events:none; }
.cv-v61-choice-mark { width:18px; height:18px; flex:0 0 18px; border:2px solid #aeb4bb; border-radius:50%; background:#fff; box-sizing:border-box; }
.cv-v61-choice-text { font-size:12px; line-height:1.35; font-weight:700; }
.cv-v61-choice.is-selected { border-color:#111; background:#f7f7f7; box-shadow:0 0 0 1px #111 inset; }
.cv-v61-choice.is-selected .cv-v61-choice-mark { border-color:#111; box-shadow:inset 0 0 0 4px #fff; background:#111; }
.cv-v61-choice.is-selected .cv-v61-choice-text { font-weight:800; }
.cv-v61-selection { margin-top:14px; padding:12px 13px; border:1px solid #dceee2; border-radius:10px; background:#f2faf5; }
.cv-v61-selection-line { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cv-v61-selection-line strong { color:#1f6a3a; font-size:9px; letter-spacing:.14em; }
.cv-v61-selection-line span { color:#1f6a3a; font-size:12px; font-weight:800; text-align:right; }
.cv-v61-quote { margin-top:5px; color:#65736a; font-size:11px; font-style:italic; }
.cv-v61-confirm { width:100% !important; min-height:45px !important; margin-top:12px !important; padding:0 15px !important; border:0 !important; border-radius:10px !important; background:#111 !important; color:#fff !important; font-size:12px !important; font-weight:800 !important; cursor:pointer !important; }
.cv-v61-details { margin-top:14px; padding-top:14px; border-top:1px solid #e2e3df; }
@media (max-width:600px){
    .cv-v61-selection-line { align-items:flex-start; flex-direction:column; gap:4px; }
    .cv-v61-selection-line span { text-align:left; }
}

/* ============================================================
   Customverse V64 — Water bottle colour retained in customisation
   The swatches are cloned from the existing WooCommerce colour palette,
   so no new or different colours are introduced.
   ============================================================ */
.cv-water-bottle-customise-v61 .cv-v61-bottle-colour-choice { margin:0 0 14px; }
.cv-water-bottle-customise-v61 .cv-v61-options-title { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cv-water-bottle-customise-v61 #cv-bottle-current-colour { font-size:12px; font-weight:800; letter-spacing:0; text-transform:none; }
.cv-v61-colour-row { display:flex; flex-wrap:nowrap; gap:10px; align-items:center; width:100%; overflow-x:auto; overflow-y:hidden; padding:3px 2px 6px; scrollbar-width:thin; }
.cv-v61-colour { width:40px !important; height:40px !important; min-width:40px !important; min-height:40px !important; flex:0 0 40px; padding:0 !important; border:2px solid #fff !important; border-radius:50% !important; background:var(--cv-swatch,#e8e8e8) !important; box-shadow:0 0 0 1px #d5d8dc !important; cursor:pointer !important; position:relative; }
.cv-v61-colour:hover { transform:translateY(-1px) scale(1.04); }
.cv-v61-colour.is-selected { box-shadow:0 0 0 2px #111 !important; }
.cv-v61-colour.is-selected::after { content:'✓'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px; font-weight:900; text-shadow:0 1px 2px rgba(0,0,0,.5); }
@media (max-width:600px){
    .cv-water-bottle-customise-v61 .cv-v61-options-title { align-items:flex-start; flex-direction:column; gap:3px; }
    .cv-v61-colour-row { gap:9px; }
}


/* V63: make the bottle customisation colour selector unmistakable and visible. */
.cv-water-bottle-customise-v61 .cv-v61-bottle-colour-choice {
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    margin:0 0 18px !important;
}
.cv-water-bottle-customise-v61 .cv-v61-colour-row {
    min-height:46px !important;
    margin-top:8px !important;
    display:flex !important;
    visibility:visible !important;
}
.cv-water-bottle-customise-v61 .cv-v61-colour {
    display:block !important;
}
.cv-water-bottle-customise-v61 .cv-v61-bottle-custom-options {
    display:block !important;
    margin-top:4px !important;
}
.cv-water-bottle-customise-v61 .cv-v61-options-title {
    font-size:10px !important;
    font-weight:800 !important;
    letter-spacing:.15em !important;
}


/* ============================================================
   Customverse V65 — Keychain customisation and live selection summary
   Existing colour palette + Variants & Finishes stay untouched.
   ============================================================ */
.single-product .cv-keychain-customise-v65 { margin-top:10px !important; }
.cv-keychain-custom-options { margin:2px 0 14px; }
.cv-keychain-options-title { font-size:10px; font-weight:800; letter-spacing:.14em; color:#111; margin-bottom:8px; }
.cv-keychain-choice-list { display:grid; grid-template-columns:1fr; gap:8px; }
.cv-keychain-choice { position:relative; display:flex; align-items:center; gap:10px; min-height:42px; padding:9px 12px; border:1px solid #d7dbe1; border-radius:10px; background:#fff; cursor:pointer; color:#111827; font-size:12px; font-weight:700; transition:all .16s ease; }
.cv-keychain-choice:hover { border-color:#111; transform:translateY(-1px); }
.cv-keychain-choice input { position:absolute; opacity:0; pointer-events:none; }
.cv-keychain-choice-mark { width:18px; height:18px; flex:0 0 18px; border:2px solid #aeb4bb; border-radius:50%; background:#fff; box-sizing:border-box; }
.cv-keychain-choice.is-selected { border-color:#111; background:#f7f7f7; box-shadow:0 0 0 1px #111 inset; }
.cv-keychain-choice.is-selected .cv-keychain-choice-mark { border-color:#111; box-shadow:inset 0 0 0 4px #fff; background:#111; }
.cv-keychain-choice.is-selected span:last-child { font-weight:800; }
.cv-keychain-selection { margin-top:16px; padding:13px 14px; border:1px solid #dceee2; border-radius:10px; background:#f2faf5; }
.cv-keychain-selection-heading { color:#1f6a3a; font-size:9px; font-weight:800; letter-spacing:.14em; margin-bottom:7px; }
.cv-keychain-selection-row { display:grid; grid-template-columns:145px 1fr; align-items:center; gap:10px; padding:6px 0; border-top:1px solid rgba(31,106,58,.10); }
.cv-keychain-selection-row strong { color:#1f6a3a; font-size:11px; font-weight:800; }
.cv-keychain-selection-row span { color:#1f6a3a; font-size:12px; font-weight:700; text-align:right; }
.cv-keychain-quote { margin-top:5px; color:#65736a; font-size:11px; font-style:italic; }
.cv-keychain-confirm { width:100% !important; min-height:45px !important; margin-top:12px !important; padding:0 15px !important; border:0 !important; border-radius:10px !important; background:#111 !important; color:#fff !important; font-size:12px !important; font-weight:800 !important; cursor:pointer !important; }
.cv-keychain-details { margin-top:14px; padding-top:14px; border-top:1px solid #e2e3df; }
@media (min-width:700px){ .cv-keychain-choice-list { grid-template-columns:1fr 1fr; } .cv-keychain-choice:last-child { grid-column:1 / -1; } }
@media (max-width:600px){ .cv-keychain-selection-row { grid-template-columns:1fr; gap:2px; } .cv-keychain-selection-row span { text-align:left; } }

/* V71 — Keychain: three independent selection sources inside the enquiry card. */
.cv-keychain-source-selections { margin:2px 0 14px; display:grid; gap:14px; }
.cv-keychain-source-group { margin:0; }
.cv-keychain-source-title { font-size:10px; font-weight:800; letter-spacing:.14em; color:#24527a; margin-bottom:8px; }
.cv-keychain-source-controls { display:flex; flex-wrap:wrap; gap:8px; }
.cv-keychain-source-colour { position:relative; width:42px !important; height:42px !important; min-width:42px !important; min-height:42px !important; padding:0 !important; border:2px solid #fff !important; border-radius:50% !important; background:var(--cv-source-swatch,#e8e8e8) !important; box-shadow:0 0 0 1px #d4d7dc !important; cursor:pointer !important; }
.cv-keychain-source-colour:hover { transform:translateY(-1px) scale(1.04); }
.cv-keychain-source-colour.is-selected { box-shadow:0 0 0 2px #111 !important; }
.cv-keychain-source-colour.is-selected::after { content:'✓'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px; font-weight:900; text-shadow:0 1px 2px rgba(0,0,0,.45); }
.cv-keychain-source-colour[aria-label="Clear Acrylic"].is-selected::after,
.cv-keychain-source-colour[aria-label="White"].is-selected::after { color:#111; text-shadow:none; }
.cv-keychain-source-variant { min-height:40px !important; padding:8px 15px !important; border:1px solid #d9dce1 !important; border-radius:999px !important; background:#fff !important; color:#24527a !important; font-size:12px !important; font-weight:700 !important; cursor:pointer !important; }
.cv-keychain-source-variant:hover { border-color:#111 !important; transform:translateY(-1px); }
.cv-keychain-source-variant.is-selected { background:#111 !important; border-color:#111 !important; color:#fff !important; }
@media (max-width:600px){ .cv-keychain-source-controls { gap:7px; } .cv-keychain-source-variant { padding:8px 12px !important; } }

/* V74 — Keychain selection summary: keep the selected colour accent, but
   automatically switch the summary panel to a contrasting background/text so
   light colours such as Grey, Beige and Clear Acrylic never disappear. */
.cv-keychain-selection {
    --cv-keychain-accent:#2f9e44;
    --cv-keychain-selection-bg:#f2faf5;
    --cv-keychain-selection-text:var(--cv-keychain-accent);
    margin-top:16px;
    padding:13px 14px;
    border:1px solid rgba(31,106,58,.18);
    border-radius:10px;
    background:var(--cv-keychain-selection-bg) !important;
    color:var(--cv-keychain-selection-text);
    transition:background-color .18s ease, color .18s ease, border-color .18s ease;
}
.cv-keychain-selection .cv-keychain-selection-heading,
.cv-keychain-selection .cv-keychain-selection-row strong,
.cv-keychain-selection .cv-keychain-selection-row span {
    color:var(--cv-keychain-selection-text) !important;
}
.cv-keychain-selection .cv-keychain-selection-row {
    border-top-color:currentColor !important;
    border-top-color:rgba(31,106,58,.14) !important;
}
.cv-keychain-selection .cv-keychain-quote { color:var(--cv-keychain-selection-text) !important; opacity:.78; }
/* JS adds .is-light-selection when the chosen palette colour is light. */
.cv-keychain-selection.is-light-selection {
    --cv-keychain-selection-bg:#202832;
    --cv-keychain-selection-text:#ffffff;
    border-color:#202832;
}
.cv-keychain-selection.is-light-selection .cv-keychain-selection-row {
    border-top-color:rgba(255,255,255,.18) !important;
}
.cv-keychain-selection.is-dark-selection {
    --cv-keychain-selection-bg:#f4f7fa;
    --cv-keychain-selection-text:var(--cv-keychain-accent);
}

/* V84 — Hoodie customisation examples. Only adds the three requested choices; existing hoodie layout remains unchanged. */
.cv-hoodie-customisation-examples{margin-top:18px!important}
.cv-hoodie-customisation-examples .cv-keychain-choice{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #d8dee6;border-radius:10px;background:#fff;cursor:pointer;font-weight:500;line-height:1.45}
.cv-hoodie-customisation-examples .cv-keychain-choice input{position:absolute;opacity:0;pointer-events:none}
.cv-hoodie-customisation-examples .cv-keychain-choice__radio{width:18px;height:18px;min-width:18px;border:2px solid #aeb7c2;border-radius:50%;margin-top:2px;position:relative}
.cv-hoodie-customisation-examples .cv-keychain-choice input:checked + .cv-keychain-choice__radio{border-color:#111}
.cv-hoodie-customisation-examples .cv-keychain-choice input:checked + .cv-keychain-choice__radio:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#111}
.cv-hoodie-customisation-examples .cv-keychain-choice:has(input:checked){border-color:#111}
.cv-hoodie-choice-list{margin-top:8px}
