/* Citywide product summary card ("buy box")
   Loads after so-css-electro (declared dependency); !important is used only
   where the SiteOrigin file uses it on the same property. */

.single-product .summary.entry-summary {
    --cwsc-ink: #101828;
    --cwsc-secondary: #5A6575;
    --cwsc-faint: #8A93A3;
    --cwsc-hairline: #EDF0F4;
    --cwsc-control-border: #D8DEE7;
    --cwsc-accent: #1E5ADB;
    --cwsc-accent-tint: rgba(30, 90, 219, 0.06);
    --cwsc-success: #0E8A4C;
    --cwsc-star: #F0A400;
    --cwsc-cta: #151E2C;
    --cwsc-cta-hover: #0C141F;

    display: flex;
    flex-direction: column;
    align-items: stretch;
    border: 1px solid #E4E8EF;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 16px 40px -16px rgba(16, 24, 40, 0.12);
    padding: 28px 28px 22px;
    color: var(--cwsc-ink);
    font-family: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
}

/* Anything not explicitly placed (short description, stock, plugin output)
   sits between the meta row and the price cluster. */
.single-product .summary.entry-summary > * {
    order: 45;
}

/* Legacy elements replaced by the card */
.single-product .summary.entry-summary .fomo-cart-badge-container,
.single-product .summary.entry-summary .wcs-shipping-banner,
.single-product .summary.entry-summary .brand,
.single-product .summary.entry-summary .single-product-title-divider {
    display: none !important;
}

/* 1. Eyebrow */
.single-product .summary.entry-summary .loop-product-categories {
    order: 10;
    margin: 0;
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cwsc-faint);
    line-height: 1.4;
}

.single-product .summary.entry-summary .loop-product-categories a {
    display: inline;
    padding: 0;
    border-radius: 0;
    background: none;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-decoration: none;
}

.single-product .summary.entry-summary .loop-product-categories a:hover,
.single-product .summary.entry-summary .loop-product-categories a:focus {
    color: var(--cwsc-accent);
}

/* 2. Title */
.single-product .summary.entry-summary .product_title {
    order: 20;
    margin: 10px 0 0;
    color: var(--cwsc-ink);
    font-family: inherit;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.015em;
    text-wrap: pretty;
}

/* 3. Meta row */
.single-product .summary.entry-summary .cw-meta-row {
    order: 30;
    margin-top: 12px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 14px;
    color: var(--cwsc-secondary);
    line-height: 1.4;
}

.single-product .summary.entry-summary .cw-meta-stars {
    position: relative;
    display: inline-flex;
    line-height: 0;
}

.single-product .summary.entry-summary .cw-meta-stars-bg,
.single-product .summary.entry-summary .cw-meta-stars-fill {
    display: inline-flex;
    gap: 2px;
    white-space: nowrap;
}

.single-product .summary.entry-summary .cw-meta-stars-bg {
    color: #DDE3EB;
}

.single-product .summary.entry-summary .cw-meta-stars-fill {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    color: var(--cwsc-star);
}

.single-product .summary.entry-summary .cw-meta-stars-fill svg {
    flex: none;
}

.single-product .summary.entry-summary .cw-meta-rating {
    font-weight: 600;
    color: var(--cwsc-ink);
}

.single-product .summary.entry-summary .cw-meta-reviews {
    color: var(--cwsc-secondary);
    font-weight: 400;
    text-decoration: underline;
    text-decoration-color: #C9CFDA;
    text-underline-offset: 3px;
}

.single-product .summary.entry-summary .cw-meta-reviews:hover,
.single-product .summary.entry-summary .cw-meta-reviews:focus {
    color: var(--cwsc-accent);
}

.single-product .summary.entry-summary .cw-meta-dot,
.single-product .summary.entry-summary .cw-fulfillment-dot {
    color: #C9CFDA;
}

.single-product .summary.entry-summary .cw-meta-carts {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.single-product .summary.entry-summary .cw-meta-carts-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--cwsc-accent);
    flex: none;
}

/* 4. Price cluster (hairline above) */
.single-product .summary.entry-summary p.price {
    order: 50;
    margin: 20px 0 0 !important;
    padding: 20px 0 0;
    border-top: 1px solid var(--cwsc-hairline);
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px;
    color: var(--cwsc-ink);
    line-height: 1.15;
}

/* The old SiteOrigin free-shipping pseudo-element; the fulfillment line owns this now. */
.single-product .summary.entry-summary p.price::after {
    content: none !important;
}

.single-product .summary.entry-summary .price .electro-price {
    display: contents;
}

.single-product .summary.entry-summary .price ins {
    text-decoration: none;
    background: none;
}

.single-product .summary.entry-summary .price .amount {
    color: var(--cwsc-ink);
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

/* Sale state: was-price beside it at ~half size, muted strikethrough, never red. */
.single-product .summary.entry-summary .price del {
    text-decoration: none;
    opacity: 1;
}

.single-product .summary.entry-summary .price del .amount {
    color: var(--cwsc-faint);
    font-size: 17px;
    font-weight: 500;
    text-decoration: line-through;
    text-decoration-color: #B7BFCC;
}

.single-product .summary.entry-summary .cw-price-savings {
    font-size: 13px;
    font-weight: 700;
    color: var(--cwsc-success);
}

.single-product .summary.entry-summary .cw-price-savings .amount {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    letter-spacing: 0;
}

/* 5. Fulfillment line */
.single-product .summary.entry-summary .cw-fulfillment {
    order: 55;
    margin-top: 8px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    font-size: 14px;
    color: var(--cwsc-ink);
}

.single-product .summary.entry-summary .cw-fulfillment-check {
    color: var(--cwsc-success);
    flex: none;
}

.single-product .summary.entry-summary .cw-fulfillment-free {
    font-weight: 600;
}

.single-product .summary.entry-summary .cw-fulfillment-eta {
    color: var(--cwsc-secondary);
    border-bottom: 1px dotted #B7BFCC;
    cursor: help;
}

/* 6. Financing (PayPal Pay Later message) */
.single-product .summary.entry-summary .wc-ppcp-paylater-msg__container {
    order: 60;
    margin: 7px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.single-product .summary.entry-summary iframe[title^="PayPal Message"] {
    margin-top: 0 !important;
}

/* Stock line (only prints for low/out-of-stock states) */
.single-product .summary.entry-summary .cw-stock-under-paypal {
    order: 66;
    margin-top: 10px;
    font-size: 13.5px;
}

.single-product .summary.entry-summary .cw-stock-under-paypal p.stock {
    margin: 0;
    font-size: inherit;
}

.single-product .summary.entry-summary .cw-stock-under-paypal .in-stock {
    color: var(--cwsc-success);
}

.single-product .summary.entry-summary .cw-stock-under-paypal .out-of-stock {
    color: #B42318;
}

/* 7. Promo — the one tinted row */
.single-product .summary.entry-summary .promotional-message {
    order: 65;
    margin: 18px 0 0;
    padding: 12px 14px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 0;
    border-radius: 10px;
    background: var(--cwsc-accent-tint);
    font-size: 14px;
    line-height: 1.45;
    color: #3D4A61;
    align-self: stretch;
}

.single-product .summary.entry-summary .promotional-message::before {
    content: "";
    flex: none;
    width: 17px;
    height: 17px;
    margin-top: 2px;
    background-color: var(--cwsc-accent);
    -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.6 2.6A2 2 0 0 0 11.2 2H4a2 2 0 0 0-2 2v7.2a2 2 0 0 0 0.6 1.4l8.7 8.7a2.4 2.4 0 0 0 3.4 0l6.6-6.6a2.4 2.4 0 0 0 0-3.4z"/><circle cx="7.5" cy="7.5" r="0.6" fill="black" stroke="none"/></svg>') no-repeat center / contain;
    mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.6 2.6A2 2 0 0 0 11.2 2H4a2 2 0 0 0-2 2v7.2a2 2 0 0 0 0.6 1.4l8.7 8.7a2.4 2.4 0 0 0 3.4 0l6.6-6.6a2.4 2.4 0 0 0 0-3.4z"/><circle cx="7.5" cy="7.5" r="0.6" fill="black" stroke="none"/></svg>') no-repeat center / contain;
}

.single-product .summary.entry-summary .promo-badge {
    display: none;
}

.single-product .summary.entry-summary .promo-text {
    color: inherit;
    font-size: inherit;
    font-weight: 600;
    width: auto;
}

/* 8. CTA row: stepper + Add to cart, one row, same height */
.single-product .summary.entry-summary form.cart:not(.variations_form):not(.grouped_form) {
    order: 70;
    margin: 18px 0 0;
    padding: 0 !important;
    border: 0;
    border-radius: 0;
    background: transparent;
    display: flex !important;
    align-items: stretch !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.single-product .summary.entry-summary form.cart .quantity {
    flex: none;
    display: flex !important;
    align-items: stretch !important;
    height: 52px;
    margin: 0 !important;
    border: 1px solid var(--cwsc-control-border);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.single-product .summary.entry-summary form.cart .quantity.hidden {
    display: none !important;
}

.single-product .summary.entry-summary .cw-qty-step {
    width: 44px;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--cwsc-secondary);
    font-family: inherit;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.single-product .summary.entry-summary .cw-qty-step:hover,
.single-product .summary.entry-summary .cw-qty-step:focus-visible {
    background: #F4F6F9;
    color: var(--cwsc-ink);
    outline: none;
}

.single-product .summary.entry-summary form.cart .qty {
    width: 40px !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--cwsc-ink);
    line-height: normal !important;
    -moz-appearance: textfield;
    appearance: textfield;
    box-shadow: none;
}

.single-product .summary.entry-summary form.cart .qty::-webkit-outer-spin-button,
.single-product .summary.entry-summary form.cart .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.single-product .summary.entry-summary form.cart .qty:focus {
    outline: none;
    box-shadow: none;
    border: 0 !important;
}

.single-product .summary.entry-summary .single_add_to_cart_button.button.alt {
    flex: 1 1 200px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 52px !important;
    min-height: 52px !important;
    line-height: 52px !important;
    margin: 0 !important;
    padding: 0 24px !important;
    border: 0 !important;
    border-radius: 12px;
    background: var(--cwsc-cta);
    color: #fff;
    box-shadow: none;
    font-family: inherit;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em;
    text-transform: none;
    transition: background-color 0.15s ease;
    box-sizing: border-box !important;
    cursor: pointer;
}

.single-product .summary.entry-summary .single_add_to_cart_button.button.alt::before {
    content: none;
    display: none;
}

.single-product .summary.entry-summary .single_add_to_cart_button.button.alt:hover,
.single-product .summary.entry-summary .single_add_to_cart_button.button.alt:focus-visible {
    background: var(--cwsc-cta-hover);
    color: #fff;
    transform: none;
    box-shadow: none;
}

.single-product .summary.entry-summary .single_add_to_cart_button.button.alt:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.92), 0 0 0 5px rgba(21, 30, 44, 0.35);
}

.single-product .summary.entry-summary .single_add_to_cart_button.button.alt.loading,
.single-product .summary.entry-summary .single_add_to_cart_button.button.alt:disabled,
.single-product .summary.entry-summary .single_add_to_cart_button.button.alt.disabled {
    background: #7d8796;
    box-shadow: none;
    cursor: not-allowed;
    opacity: 0.82;
}

.single-product .summary.entry-summary form.cart .wc-ppcp-product-payments__container {
    margin: 0 !important;
    padding: 0 !important;
}

/* Variable products: variations stack above a matching purchase row */
.single-product .summary.entry-summary form.cart.variations_form {
    order: 70;
    margin: 18px 0 0;
    padding: 0 !important;
    border: 0;
    background: transparent;
}

.single-product .summary.entry-summary .woocommerce-variation-add-to-cart {
    display: flex;
    align-items: stretch;
    gap: 10px;
}

.single-product .summary.entry-summary .woocommerce-variation-add-to-cart .quantity input,
.single-product .summary.entry-summary .woocommerce-variation-add-to-cart button {
    height: 52px;
}

/* Final-sale notice printed after the cart form */
.single-product .summary.entry-summary .cw-nr-badge {
    order: 71;
    margin-top: 10px;
    font-size: 13px;
    color: var(--cwsc-secondary);
}

/* 9. Secondary actions: ghost text buttons behind a hairline */
.single-product .summary.entry-summary .action-buttons {
    order: 80;
    margin: 20px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--cwsc-hairline);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.single-product .summary.entry-summary .action-buttons > div,
.single-product .summary.entry-summary .action-buttons > a {
    margin-right: 0 !important;
    padding-top: 0 !important;
}

.single-product .summary.entry-summary .action-buttons .yith-wcwl-add-to-wishlist,
.single-product .summary.entry-summary .action-buttons .yith-wcwl-add-button {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.single-product .summary.entry-summary .action-buttons .add_to_wishlist,
.single-product .summary.entry-summary .action-buttons a.compare.link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    padding: 8px 12px !important;
    height: auto;
    min-height: 0;
    color: var(--cwsc-secondary);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.single-product .summary.entry-summary .action-buttons .add_to_wishlist:hover,
.single-product .summary.entry-summary .action-buttons a.compare.link:hover {
    background: #F4F6F9;
    border-color: transparent;
    color: var(--cwsc-ink);
}

.single-product .summary.entry-summary .action-buttons .yith-wcwl-icon-svg {
    width: 16px;
    height: 16px;
}

/* 10. Highlights (only renders when the product has them)
   Indented to the action-buttons geometry above: the ghost buttons have
   12px side padding, a 16px icon, and an 8px icon-text gap — so the label
   sits at 12px, each dot centers under the heart (x = 20px), and the item
   text lines up with the "Add to Wishlist" text (x = 36px). */
.single-product .summary.entry-summary .cw-highlights {
    order: 85;
    margin-top: 16px;
    padding-top: 16px;
    padding-left: 12px;
    border-top: 1px solid var(--cwsc-hairline);
}

.single-product .summary.entry-summary .cw-highlights-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cwsc-faint);
}

.single-product .summary.entry-summary .cw-highlights-list {
    margin: 11px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Resets on the li guard against the injected global list styles */
.single-product .summary.entry-summary .cw-highlights-list li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    display: flex;
    align-items: flex-start;
    gap: 13px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--cwsc-ink);
}

.single-product .summary.entry-summary .cw-highlights-list li::marker {
    content: none;
}

.single-product .summary.entry-summary .cw-highlight-dot {
    flex: none;
    width: 6px;
    height: 6px;
    margin-left: 5px;
    margin-top: 7px;
    border-radius: 50%;
    background: var(--cwsc-accent);
}

/* Meta chips (SKU / category) keep their tab styling but breathe inside the card */
.single-product .summary.entry-summary .product_meta {
    order: 90;
}

/* ---------- Tablet ---------- */

@media (max-width: 991px) {
    .single-product .summary.entry-summary {
        padding: 24px 20px 18px;
    }
}

/* ---------- Mobile (≤430px): tightened scale + pinned purchase bar ---------- */

@media (max-width: 430px) {
    .single-product .summary.entry-summary {
        padding: 22px 18px 18px;
        border-radius: 20px;
    }

    .single-product .summary.entry-summary .loop-product-categories {
        font-size: 10.5px;
    }

    .single-product .summary.entry-summary .product_title {
        margin-top: 8px;
        font-size: 22px;
        line-height: 1.28;
        letter-spacing: -0.01em;
    }

    .single-product .summary.entry-summary .cw-meta-row {
        margin-top: 10px;
        gap: 7px;
        font-size: 13.5px;
    }

    .single-product .summary.entry-summary .cw-meta-carts-dot {
        width: 5px;
        height: 5px;
    }

    .single-product .summary.entry-summary .cw-meta-carts-long {
        display: none;
    }

    .single-product .summary.entry-summary p.price {
        margin-top: 18px !important;
        padding-top: 18px;
        gap: 8px;
    }

    .single-product .summary.entry-summary .price .amount {
        font-size: 30px;
    }

    .single-product .summary.entry-summary .price del .amount {
        font-size: 15px;
    }

    .single-product .summary.entry-summary .cw-price-savings {
        font-size: 12px;
    }

    .single-product .summary.entry-summary .cw-price-savings .amount {
        font-size: inherit;
    }

    .single-product .summary.entry-summary .cw-fulfillment {
        margin-top: 7px;
        gap: 6px;
        font-size: 13.5px;
    }

    .single-product .summary.entry-summary .promotional-message {
        margin-top: 16px;
        padding: 11px 12px;
        font-size: 13.5px;
    }

    .single-product .summary.entry-summary form.cart .quantity,
    .single-product .summary.entry-summary .woocommerce-variation-add-to-cart .quantity input {
        height: 48px;
    }

    .single-product .summary.entry-summary form.cart .qty {
        width: 34px !important;
        font-size: 14px;
    }

    .single-product .summary.entry-summary .single_add_to_cart_button.button.alt,
    .single-product .summary.entry-summary .woocommerce-variation-add-to-cart button {
        height: 48px !important;
        min-height: 48px !important;
        line-height: 48px !important;
    }

    /* Secondary actions leave the buy box on mobile */
    .single-product .summary.entry-summary .action-buttons {
        display: none;
    }
}
