/* ============================================================
   Spectrum custom widgets — Buy Row + Promo Card
   Production styles. Mobile-first, accessible, modern.
   ============================================================ */

/* ---------- Spectrum Buy Row ---------- */
.spectrum-buy-row-wrap { width: 100%; }

.spectrum-buy-row {
    display: grid;
    grid-template-columns: minmax(120px, auto) minmax(90px, auto) minmax(90px, auto);
    grid-template-areas:
        "qty price total"
        "cta cta cta";
    gap: 16px 18px;
    align-items: end;
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    padding: 18px;
    margin: 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.spectrum-buy-row .sb-qty   { grid-area: qty; }
.spectrum-buy-row .sb-price { grid-area: price; }
.spectrum-buy-row .sb-total { grid-area: total; }
.spectrum-buy-row .sb-cta   { grid-area: cta; }

.spectrum-buy-row .sb-cell { min-width: 0; }

.spectrum-buy-row label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 6px;
    font-weight: 600;
    line-height: 1.2;
}

.spectrum-buy-row .sb-qty-stepper {
    display: inline-flex;
    border: 1px solid #D1D5DB;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
}
.spectrum-buy-row .sb-qty-stepper button {
    width: 38px;
    height: 42px;
    border: 0;
    background: #ffffff;
    font-size: 18px;
    cursor: pointer;
    color: #0b1320;
    font-weight: 700;
    transition: background 0.15s ease;
}
.spectrum-buy-row .sb-qty-stepper button:hover { background: #F3F4F6; }
.spectrum-buy-row .sb-qty-stepper button:focus-visible { outline: 2px solid #FF6B00; outline-offset: -2px; }

.spectrum-buy-row .sb-qty-stepper input {
    width: 64px;
    height: 42px;
    border: 0;
    border-left: 1px solid #D1D5DB;
    border-right: 1px solid #D1D5DB;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    color: #0b1320;
    outline: 0;
    -moz-appearance: textfield;
    appearance: textfield;
}
.spectrum-buy-row .sb-qty-stepper input::-webkit-outer-spin-button,
.spectrum-buy-row .sb-qty-stepper input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.spectrum-buy-row .sb-price-value,
.spectrum-buy-row .sb-total-value {
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    padding-bottom: 4px;
    white-space: nowrap;
}
.spectrum-buy-row .sb-cur {
    font-size: 16px;
    margin-left: 2px;
    color: #6B7280;
    font-weight: 600;
}

.spectrum-buy-row .sb-cta {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: stretch;
    justify-self: stretch;
    margin-top: 4px;
}
.spectrum-buy-row .sb-cta .sb-buy-now { flex: 2 1 60%; }
.spectrum-buy-row .sb-cta .sb-add-cart { flex: 1 1 40%; }
.spectrum-buy-row .sb-buy-now {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 14px 28px;
    background: linear-gradient(90deg, var(--sb-grad-a, #E8470A) 0%, var(--sb-grad-b, #FBC35D) 100%);
    color: #ffffff !important;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 15px;
    letter-spacing: 0.04em;
    box-shadow: 0 8px 20px rgba(233, 89, 0, 0.30);
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
    white-space: nowrap;
}
.spectrum-buy-row .sb-buy-now:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(233, 89, 0, 0.38);
    filter: brightness(1.04);
}
.spectrum-buy-row .sb-buy-now:focus-visible { outline: 3px solid #0b1320; outline-offset: 2px; }
.spectrum-buy-row .sb-buy-now:active { transform: translateY(0); }

.spectrum-buy-row .sb-add-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 22px;
    background: #ffffff;
    color: #0b1320 !important;
    border: 1px solid #D1D5DB;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.spectrum-buy-row .sb-add-cart:hover { background: #F9FAFB; border-color: #9CA3AF; }
.spectrum-buy-row .sb-add-cart:focus-visible { outline: 2px solid #0b1320; outline-offset: 2px; }

.spectrum-buy-row-wrap .sb-tier-note {
    font-size: 13px;
    color: #6B7280;
    margin: 8px 0 0;
    line-height: 1.6;
}
.spectrum-buy-row-wrap .sb-tier-note strong { color: #0b1320; font-weight: 700; }
.spectrum-buy-row-wrap .sb-tier-note .sb-discount {
    display: inline-block;
    margin-left: 2px;
    padding: 1px 7px;
    background: #FEF3C7;
    color: #92400E;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    vertical-align: 2px;
}

/* Anything below 1024px: stack qty/price/total as 2-col + cta row (avoid cramped 3-col) */
@media (max-width: 1024px) {
    .spectrum-buy-row {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "qty   qty"
            "price total"
            "cta   cta";
        gap: 14px 14px;
        padding: 16px;
    }
    .spectrum-buy-row .sb-qty-stepper { width: 100%; max-width: 240px; }
    .spectrum-buy-row .sb-qty-stepper input { flex: 1; width: auto; min-width: 0; }
    .spectrum-buy-row .sb-cta { flex-direction: row; gap: 10px; }
    .spectrum-buy-row .sb-buy-now { padding: 13px 18px; font-size: 14px; }
    .spectrum-buy-row .sb-price-value,
    .spectrum-buy-row .sb-total-value { font-size: 20px; }
}

/* True mobile portrait: full-width stacked CTAs */
@media (max-width: 600px) {
    .spectrum-buy-row { padding: 14px; }
    .spectrum-buy-row .sb-cta { flex-direction: column; gap: 8px; }
}

/* ---------- Spectrum Promo Card ---------- */
.spectrum-promo-card {
    display: flex !important;
    align-items: flex-start;
    gap: 14px;
    padding: 22px;
    border-radius: 14px;
    color: var(--spc-fg, #ffffff) !important;
    background-color: var(--spc-bg-color, #0b1320) !important;
    background-image: var(--spc-bg-image, none) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    height: 100%;
}
.spectrum-promo-card .spc-emoji {
    font-size: 32px;
    line-height: 1;
    flex-shrink: 0;
}
.spectrum-promo-card .spc-body { flex: 1; min-width: 0; }
.spectrum-promo-card .spc-title {
    margin: 0 0 6px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em;
    color: var(--spc-fg, #ffffff) !important;
}
.spectrum-promo-card .spc-text {
    margin: 0 0 12px !important;
    font-size: 14px !important;
    line-height: 1.5;
    opacity: 0.95;
    color: var(--spc-fg, #ffffff) !important;
}
.spectrum-promo-card .spc-text strong { color: inherit !important; font-weight: 700; }
.spectrum-promo-card .spc-cta {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--spc-cta-fg, #0b1320) !important;
    background: var(--spc-cta-bg, #ffffff) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.spectrum-promo-card .spc-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}
.spectrum-promo-card .spc-cta:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

@media (max-width: 768px) {
    .spectrum-promo-card { padding: 18px; gap: 12px; }
    .spectrum-promo-card .spc-emoji { font-size: 28px; }
    .spectrum-promo-card .spc-title { font-size: 16px !important; }
}

/* ============================================================
   Spectrum Product Tabs (native WC Description + Reviews)
   ============================================================ */
.spectrum-product-tabs .wc-tabs,
.elementor-widget-woocommerce-product-data-tabs .wc-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 1px solid #E5E7EB;
    padding: 0;
    margin: 0 0 24px;
    list-style: none;
}
.elementor-widget-woocommerce-product-data-tabs .wc-tabs li {
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
}
.elementor-widget-woocommerce-product-data-tabs .wc-tabs li::before,
.elementor-widget-woocommerce-product-data-tabs .wc-tabs li::after { display: none !important; }
.elementor-widget-woocommerce-product-data-tabs .wc-tabs li a {
    display: inline-block;
    padding: 12px 18px !important;
    color: #6B7280 !important;
    text-decoration: none !important;
    border-bottom: 3px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease;
}
.elementor-widget-woocommerce-product-data-tabs .wc-tabs li.active a,
.elementor-widget-woocommerce-product-data-tabs .wc-tabs li a:hover {
    color: #E8470A !important;
    border-bottom-color: #E8470A !important;
}

.elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel {
    padding: 8px 4px 24px;
    color: #374151;
    line-height: 1.6;
}
.elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel h2 {
    margin: 0 0 14px;
    font-size: 18px;
    font-weight: 700;
    color: #0b1320;
}
.elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel p { margin: 0 0 10px; }

/* ----- Reviews + comment form (Site Reviews integration) ----- */
.elementor-widget-woocommerce-product-data-tabs #reviews { padding-top: 4px; }
.elementor-widget-woocommerce-product-data-tabs .glsr {
    --glsr-color-primary: #E8470A;
    --glsr-color-primary-hover: #d04f00;
    --glsr-stars-color-primary: #E8470A;
}
.elementor-widget-woocommerce-product-data-tabs .glsr-star {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23E5E7EB'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");
}
.elementor-widget-woocommerce-product-data-tabs .glsr-star-full,
.elementor-widget-woocommerce-product-data-tabs .glsr-star-half-full {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23E95900'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");
}

/* Review submission form */
.elementor-widget-woocommerce-product-data-tabs form.glsr-form,
.elementor-widget-woocommerce-product-data-tabs #commentform {
    background: #FAFAFA;
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    padding: 20px;
    margin: 18px 0 0;
}
.elementor-widget-woocommerce-product-data-tabs .glsr-form label,
.elementor-widget-woocommerce-product-data-tabs .glsr-form .glsr-field-label,
.elementor-widget-woocommerce-product-data-tabs #commentform label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #0b1320;
    margin: 0 0 6px;
}
.elementor-widget-woocommerce-product-data-tabs .glsr-form input[type="text"],
.elementor-widget-woocommerce-product-data-tabs .glsr-form input[type="email"],
.elementor-widget-woocommerce-product-data-tabs .glsr-form select,
.elementor-widget-woocommerce-product-data-tabs .glsr-form textarea,
.elementor-widget-woocommerce-product-data-tabs #commentform input[type="text"],
.elementor-widget-woocommerce-product-data-tabs #commentform input[type="email"],
.elementor-widget-woocommerce-product-data-tabs #commentform textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    font-size: 15px;
    background: #ffffff;
    color: #0b1320;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.elementor-widget-woocommerce-product-data-tabs .glsr-form input:focus,
.elementor-widget-woocommerce-product-data-tabs .glsr-form textarea:focus,
.elementor-widget-woocommerce-product-data-tabs .glsr-form select:focus,
.elementor-widget-woocommerce-product-data-tabs #commentform input:focus,
.elementor-widget-woocommerce-product-data-tabs #commentform textarea:focus {
    outline: 0;
    border-color: #E8470A;
    box-shadow: 0 0 0 3px rgba(233, 89, 0, 0.12);
}
.elementor-widget-woocommerce-product-data-tabs .glsr-form button[type="submit"],
.elementor-widget-woocommerce-product-data-tabs .glsr-form .glsr-button,
.elementor-widget-woocommerce-product-data-tabs #commentform input[type="submit"],
.elementor-widget-woocommerce-product-data-tabs #commentform button[type="submit"] {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 12px 26px !important;
    background-color: #E8470A !important;
    background-image: linear-gradient(90deg, #E8470A 0%, #FBC35D 100%) !important;
    color: #ffffff !important;
    border: 0 !important;
    border-radius: 50px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    box-shadow: 0 6px 16px rgba(233, 89, 0, 0.30) !important;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
.elementor-widget-woocommerce-product-data-tabs .glsr-form button[type="submit"]:hover,
.elementor-widget-woocommerce-product-data-tabs .glsr-form .glsr-button:hover,
.elementor-widget-woocommerce-product-data-tabs #commentform input[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(233, 89, 0, 0.36) !important;
    filter: brightness(1.04);
}

/* ----- Product rating widget (under the H1) ----- */
.elementor-widget-woocommerce-product-rating .woocommerce-product-rating { margin: 0 0 4px; }
.elementor-widget-woocommerce-product-rating .glsr-summary-stars,
.elementor-widget-woocommerce-product-rating .star-rating { margin-right: 6px; }
.elementor-widget-woocommerce-product-rating .glsr-summary-text,
.elementor-widget-woocommerce-product-rating .woocommerce-review-link {
    color: #6B7280 !important;
    font-size: 13px !important;
    text-decoration: none;
}
.elementor-widget-woocommerce-product-rating .glsr-summary-text:hover,
.elementor-widget-woocommerce-product-rating .woocommerce-review-link:hover { color: #E8470A !important; }

/* ============================================================
   Spectrum trash icon (cart line removal in popup)
   ============================================================ */
.spectrum-cart-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin: 0 8px 0 0;
    padding: 0;
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cline x1='10' y1='11' x2='10' y2='17'/%3E%3Cline x1='14' y1='11' x2='14' y2='17'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
    cursor: pointer;
    vertical-align: middle;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease, background-image 0.15s ease;
}
.spectrum-cart-remove:hover {
    background-color: #FEF2F2;
    border-color: #FECACA;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DC2626' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cline x1='10' y1='11' x2='10' y2='17'/%3E%3Cline x1='14' y1='11' x2='14' y2='17'/%3E%3C/svg%3E");
    transform: scale(1.05);
}
.spectrum-cart-remove:focus-visible {
    outline: 2px solid #DC2626;
    outline-offset: 2px;
}
.spectrum-cart-remove.is-loading {
    opacity: 0.5;
    pointer-events: none;
    animation: spectrum-pulse 0.8s ease-in-out infinite;
}
@keyframes spectrum-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(0.92); }
}

/* ============================================================
   Spectrum toast notification
   ============================================================ */
#spectrum-toast-container {
    position: fixed;
    top: 60px;
    right: 24px;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}
.spectrum-toast {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    min-width: 240px;
    max-width: 380px;
    background: #ffffff;
    color: #0b1320;
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(11, 19, 32, 0.18), 0 2px 6px rgba(11, 19, 32, 0.08);
    border-left: 4px solid #16A34A;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: auto;
}
.spectrum-toast.is-visible {
    opacity: 1;
    transform: translateX(0);
}
.spectrum-toast--success { border-left-color: #16A34A; }
.spectrum-toast--success svg { color: #16A34A; }
.spectrum-toast--error { border-left-color: #DC2626; }
.spectrum-toast--error svg { color: #DC2626; }
.spectrum-toast__msg { flex: 1; min-width: 0; }
@media (max-width: 600px) {
    #spectrum-toast-container {
        top: auto;
        bottom: 16px;
        right: 16px;
        left: 16px;
    }
    .spectrum-toast { min-width: 0; max-width: 100%; }
}

/* ============================================================
   Spectrum in-popup thank-you state
   ============================================================ */
.spectrum-thankyou {
    text-align: center;
    padding: 16px 8px 8px;
    max-width: 560px;
    margin: 0 auto;
    color: #0b1320;
    animation: spectrum-fade-up 0.4s ease both;
}
@keyframes spectrum-fade-up {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}
.spectrum-thankyou .sk-icon {
    color: #16A34A;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #ECFDF5;
    border: 4px solid #DCFCE7;
}
.spectrum-thankyou .sk-title {
    margin: 0 0 8px !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    color: #0b1320 !important;
    line-height: 1.2 !important;
}
.spectrum-thankyou .sk-lede {
    margin: 0 0 22px;
    font-size: 15px;
    color: #4B5563;
    line-height: 1.55;
}
.spectrum-thankyou .sk-summary {
    background: #FAFAFA;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 18px 20px;
    margin: 0 0 18px;
    text-align: left;
}
.spectrum-thankyou .sk-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    font-size: 14px;
}
.spectrum-thankyou .sk-row span { color: #6B7280; }
.spectrum-thankyou .sk-row strong { color: #0b1320; font-weight: 700; }
.spectrum-thankyou .sk-items {
    list-style: none;
    padding: 12px 0;
    margin: 8px 0;
    border-top: 1px solid #E5E7EB;
    border-bottom: 1px solid #E5E7EB;
}
.spectrum-thankyou .sk-items li {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 14px;
}
.spectrum-thankyou .sk-items .sk-item-name { color: #0b1320; flex: 1; min-width: 0; }
.spectrum-thankyou .sk-items .sk-item-total { color: #0b1320; font-weight: 600; margin-left: 14px; }
.spectrum-thankyou .sk-total { font-size: 17px; padding-top: 8px; }
.spectrum-thankyou .sk-total strong { color: #E8470A; font-size: 18px; }
.spectrum-thankyou .sk-instructions {
    margin: 0 0 14px;
    padding: 14px 18px;
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    border-radius: 10px;
    color: #9A3412;
    font-size: 14px;
    text-align: left;
}
.spectrum-thankyou .sk-share {
    margin: 0 0 22px;
    padding: 14px 18px;
    background: #ECFDF5;
    border-radius: 10px;
    color: #065F46;
    font-size: 14px;
    line-height: 1.5;
}
.spectrum-thankyou .sk-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 32px;
    background-color: #E8470A;
    background-image: linear-gradient(90deg, #E8470A 0%, #FBC35D 100%);
    color: #ffffff;
    border: 0;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(233, 89, 0, 0.30);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.spectrum-thankyou .sk-close:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(233, 89, 0, 0.36);
}

/* ============================================================
   Spectrum Discount CTA — floating pill (re-opens welcome popup)
   ============================================================ */
.spectrum-discount-cta {
    position: fixed !important;
    z-index: 9998;
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    background-color: #E8470A !important;
    background-image: linear-gradient(90deg, #E8470A 0%, #F59E0B 100%) !important;
    color: #FFFFFF !important;
    text-decoration: none !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    font-size: 15px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 0 12px 30px rgba(11, 19, 32, 0.22),
                0 4px 10px rgba(11, 19, 32, 0.12);
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    cursor: pointer;
    line-height: 1;
    animation: spectrum-cta-pop 0.5s ease both;
}
.spectrum-discount-cta--bottom-left  { left: 22px;  bottom: 22px; }
.spectrum-discount-cta--bottom-right { right: 22px; bottom: 22px; }
.spectrum-discount-cta:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 18px 38px rgba(11, 19, 32, 0.30),
                0 6px 14px rgba(11, 19, 32, 0.16);
    filter: brightness(1.05);
}
.spectrum-discount-cta:active { transform: translateY(0); }
.spectrum-discount-cta:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}
.spectrum-discount-cta .scta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    color: currentColor;
}
.spectrum-discount-cta .scta-label {
    color: inherit;
    white-space: nowrap;
}
@keyframes spectrum-cta-pop {
    0%   { opacity: 0; transform: translateY(20px) scale(0.92); }
    60%  { opacity: 1; transform: translateY(-4px) scale(1.04); }
    100% { opacity: 1; transform: translateY(0)    scale(1); }
}
@media (max-width: 600px) {
    .spectrum-discount-cta {
        padding: 12px 18px;
        font-size: 13px;
    }
    .spectrum-discount-cta--bottom-left,
    .spectrum-discount-cta--bottom-right {
        left: 14px;
        right: 14px;
        bottom: 14px;
        justify-content: center;
    }
}

/* ============================================================
   Welcome Discount Popup overrides (inside dialog-message wrapper)
   ============================================================ */
.spectrum-welcome-popup .dialog-message {
    overflow: hidden !important;
    border-radius: 18px !important;
    box-shadow: 0 28px 60px rgba(11, 19, 32, 0.28), 0 8px 20px rgba(11, 19, 32, 0.12) !important;
}

/* Spacing between email field and submit button */
.spectrum-welcome-popup .elementor-form .elementor-field-group {
    margin-bottom: 18px !important;
}
.spectrum-welcome-popup .elementor-form .elementor-field-group:last-child,
.spectrum-welcome-popup .elementor-form .elementor-field-type-submit {
    margin-bottom: 0 !important;
    margin-top: 6px !important;
}

/* Email input — refined focus state */
.spectrum-welcome-popup .elementor-form input.elementor-field {
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease !important;
}
.spectrum-welcome-popup .elementor-form input.elementor-field:focus {
    border-color: #E8470A !important;
    box-shadow: 0 0 0 4px rgba(233, 89, 0, 0.12) !important;
    background: #FFFFFF !important;
    outline: none !important;
}

/* Submit button — brand orange gradient
   Specificity boost: prefix with body and use #spectrum-welcome-form
   to outweigh Elementor's element-ID-scoped rules. */
body .spectrum-welcome-popup #spectrum-welcome-form .elementor-form button[type="submit"],
body .spectrum-welcome-popup #spectrum-welcome-form .elementor-form button.elementor-button,
body .spectrum-welcome-popup .elementor-form button.elementor-button[type="submit"] {
    background-color: #E8470A !important;
    background-image: linear-gradient(90deg, #E8470A 0%, #F59E0B 100%) !important;
    color: #FFFFFF !important;
    border: none !important;
    box-shadow: 0 10px 24px rgba(233, 89, 0, 0.28), 0 3px 8px rgba(233, 89, 0, 0.18) !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease !important;
    position: relative;
    overflow: hidden;
}
body .spectrum-welcome-popup #spectrum-welcome-form .elementor-form button[type="submit"]:hover,
body .spectrum-welcome-popup .elementor-form button.elementor-button[type="submit"]:hover {
    background-image: linear-gradient(90deg, #D24E00 0%, #E78906 100%) !important;
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(233, 89, 0, 0.36), 0 5px 12px rgba(233, 89, 0, 0.22) !important;
    filter: none !important;
}
body .spectrum-welcome-popup .elementor-form button.elementor-button[type="submit"]:active {
    transform: translateY(0);
}
/* Trailing arrow (mirrors BUY NOW button) */
body .spectrum-welcome-popup .elementor-form button[type="submit"] .elementor-button-text::after {
    content: " →";
    font-weight: 700;
    margin-left: 4px;
}

/* Branded close button — orange circle with refined X */
.spectrum-welcome-popup .dialog-close-button {
    width: 38px !important;
    height: 38px !important;
    border-radius: 50% !important;
    background: #FFFFFF !important;
    color: #0B1320 !important;
    box-shadow: 0 4px 12px rgba(11, 19, 32, 0.18), 0 1px 3px rgba(11, 19, 32, 0.08) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    top: 14px !important;
    right: 14px !important;
    opacity: 1 !important;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
    z-index: 5 !important;
    border: 1px solid rgba(11, 19, 32, 0.06) !important;
}
.spectrum-welcome-popup .dialog-close-button:hover {
    background: linear-gradient(135deg, #E8470A 0%, #F59E0B 100%) !important;
    color: #FFFFFF !important;
    transform: rotate(90deg) scale(1.06);
    box-shadow: 0 6px 16px rgba(233, 89, 0, 0.36) !important;
}
/* Hide Elementor's default X glyph — we render our own clean mask */
.spectrum-welcome-popup .dialog-close-button > i,
.spectrum-welcome-popup .dialog-close-button > svg,
.spectrum-welcome-popup .dialog-close-button .eicon-close {
    display: none !important;
}
.spectrum-welcome-popup .dialog-close-button::before {
    content: "";
    width: 14px;
    height: 14px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M18.3 5.71 12 12.01l-6.29-6.3-1.42 1.42 6.3 6.29-6.3 6.29 1.42 1.42 6.29-6.3 6.29 6.3 1.42-1.42-6.3-6.29 6.3-6.29z'/></svg>") center/contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M18.3 5.71 12 12.01l-6.29-6.3-1.42 1.42 6.3 6.29-6.3 6.29 1.42 1.42 6.29-6.3 6.29 6.3 1.42-1.42-6.3-6.29 6.3-6.29z'/></svg>") center/contain no-repeat;
}

/* Left image column — ensure background image actually renders + nice radius edges */
.spectrum-welcome-popup .e-con > .e-con:first-child {
    min-height: 480px;
}

.spectrum-welcome-popup .elementor-message-success {
    background: #FFF7ED !important;
    border: 1px solid #FDBA74 !important;
    color: #9A3412 !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    font-weight: 600;
    text-align: center;
    margin-top: 14px !important;
}
.spectrum-welcome-popup sup {
    font-size: 0.55em;
    vertical-align: super;
    color: #E8470A;
    font-weight: 700;
}

/* ----- Short description widget ----- */
.elementor-widget-woocommerce-product-short-description {
    color: #374151;
}
.elementor-widget-woocommerce-product-short-description p {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
}

/* ============================================================
   PROMO BANNER (blue tinted info pill)
   ============================================================ */
.spectrum-promo-banner {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    background: #EFF6FF;
    border: 1px solid #DBEAFE;
    border-radius: 14px;
    color: #1E40AF;
    font-size: 15px;
    line-height: 1.55;
}
.spectrum-promo-banner .spbn-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #2563EB;
}
.spectrum-promo-banner .spbn-body { flex: 1; color: #1E40AF; }
.spectrum-promo-banner .spbn-body p { margin: 0; color: inherit; }
.spectrum-promo-banner .spbn-body strong { color: #1E3A8A; }
.spectrum-promo-banner .spbn-close {
    flex-shrink: 0;
    width: 28px; height: 28px;
    border: 0; background: transparent; color: #3B82F6; cursor: pointer;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background 0.18s ease, color 0.18s ease;
}
.spectrum-promo-banner .spbn-close:hover {
    background: #DBEAFE;
    color: #1E40AF;
}

/* ============================================================
   TIER PRICE TABLE
   ============================================================ */
.spectrum-tier-table {
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    overflow: hidden;
    background: #FFFFFF;
}
.spectrum-tier-table table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}
.spectrum-tier-table th {
    background: #F9FAFB;
    color: #6B7280;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
    text-align: left;
    padding: 14px 20px;
    border-bottom: 1px solid #E5E7EB;
}
.spectrum-tier-table td {
    padding: 16px 20px;
    border-bottom: 1px solid #F3F4F6;
    color: #0B1320;
    font-weight: 600;
    font-size: 15px;
    background: #FFFFFF;
    transition: background 0.18s ease;
}
.spectrum-tier-table tbody tr:last-child td { border-bottom: 0; }
.spectrum-tier-table .sptt-qty { font-weight: 700; }
.spectrum-tier-table .sptt-price { color: #0B1320; }
.spectrum-tier-table tbody tr.is-active td {
    background: #ECFDF5;
    box-shadow: inset 0 0 0 2px #16A34A;
    position: relative;
}
.spectrum-tier-table tbody tr.is-active td:first-child {
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
}
.spectrum-tier-table tbody tr.is-active td:last-child {
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
}

/* ============================================================
   BUY BLOCK (total price + VAT toggle + qty + add-to-cart + stock)
   ============================================================ */
.spectrum-buy-block {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
}
.spbb-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}
.spbb-price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    line-height: 1;
}
.spbb-price .spbb-amount {
    font-size: 32px;
    font-weight: 800;
    color: #0B1320;
    letter-spacing: -0.01em;
}
.spbb-price .spbb-vat-label {
    font-size: 14px;
    color: #6B7280;
    font-weight: 500;
}

.spbb-vat-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    color: #4B5563;
    font-size: 14px;
    user-select: none;
}
.spbb-vat-toggle .spbb-toggle {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}
.spbb-vat-toggle .spbb-vat-input {
    opacity: 0;
    width: 0; height: 0;
    position: absolute;
}
.spbb-vat-toggle .spbb-toggle-track {
    position: absolute;
    inset: 0;
    background: #D1D5DB;
    border-radius: 999px;
    transition: background 0.18s ease;
}
.spbb-vat-toggle .spbb-toggle-track::after {
    content: "";
    position: absolute;
    top: 3px; left: 3px;
    width: 18px; height: 18px;
    background: #FFFFFF;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.15);
    transition: transform 0.18s ease;
}
.spbb-vat-toggle .spbb-vat-input:checked + .spbb-toggle-track {
    background: #16A34A;
}
.spbb-vat-toggle .spbb-vat-input:checked + .spbb-toggle-track::after {
    transform: translateX(20px);
}
.spbb-vat-toggle .spbb-vat-input:focus-visible + .spbb-toggle-track {
    outline: 3px solid rgba(22,163,74,0.3);
    outline-offset: 2px;
}

.spbb-buy-row {
    display: grid;
    grid-template-columns: 110px 1fr;
    border: 1px solid #0B1320;
    border-radius: 14px;
    overflow: hidden;
    min-height: 60px;
    background: #FFFFFF;
}
.spbb-buy-row .spbb-qty {
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    color: #0B1320;
    padding: 0;
    outline: none;
    border-right: 1px solid #E5E7EB;
}
.spbb-buy-row .spbb-qty:focus { background: #FFFBEB; }
/* Hide native number input spinners */
.spbb-buy-row .spbb-qty::-webkit-outer-spin-button,
.spbb-buy-row .spbb-qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.spbb-buy-row .spbb-qty[type="number"] { -moz-appearance: textfield; }

.spbb-buy-row .spbb-add-btn {
    border: 0;
    background: linear-gradient(90deg, #F59E0B 0%, #F59E0B 100%);
    background-color: #F59E0B;
    color: #0B1320;
    font-weight: 700;
    font-size: 17px;
    letter-spacing: 0.01em;
    cursor: pointer;
    padding: 0 24px;
    transition: background 0.18s ease, filter 0.18s ease;
    line-height: 1;
}
.spbb-buy-row .spbb-add-btn:hover { filter: brightness(0.95); }
.spbb-buy-row .spbb-add-btn:active { filter: brightness(0.88); }
.spbb-buy-row .spbb-add-btn.is-loading {
    opacity: 0.7;
    cursor: progress;
}
.spbb-buy-row .spbb-add-btn:disabled { cursor: not-allowed; }

/* Stock indicator */
.spbb-stock {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: #16A34A;
    font-weight: 600;
}
.spbb-stock-dot {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 50%;
    background: #16A34A;
}
.spbb-stock-dot.is-low { background: #DC2626; }
.spbb-stock .spbb-stock-text { color: inherit; }
.spbb-stock-dot.is-low ~ .spbb-stock-text,
.spbb-stock:has(.is-low) .spbb-stock-text { color: #DC2626; }

/* Over-stock warning */
.spbb-warn {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #B91C1C;
    border-radius: 12px;
    padding: 16px 18px;
    font-size: 14px;
    line-height: 1.55;
}

/* Toast */
.spbb-toast {
    position: fixed;
    top: 24px;
    right: 24px;
    background: #0B1320;
    color: #FFFFFF;
    padding: 12px 18px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 12px 30px rgba(0,0,0,0.25);
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    pointer-events: none;
    z-index: 100000;
}
.spbb-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.spbb-toast.is-success { background: #16A34A; }
.spbb-toast.is-error { background: #DC2626; }

/* ============================================================
   SPECS TABLE
   ============================================================ */
.spectrum-specs-table {
    width: 100%;
    border-collapse: collapse;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    overflow: hidden;
}
.spectrum-specs-table tr {
    border-bottom: 1px solid #E5E7EB;
}
.spectrum-specs-table tr:last-child { border-bottom: 0; }
.spectrum-specs-table tr:nth-child(even) {
    background: #F9FAFB;
}
.spectrum-specs-table th,
.spectrum-specs-table td {
    padding: 14px 20px;
    text-align: left;
    vertical-align: top;
    font-size: 15px;
    color: #0B1320;
}
.spectrum-specs-table th {
    font-weight: 700;
    width: 40%;
    color: #0B1320;
}
.spectrum-specs-table td {
    color: #374151;
    font-weight: 500;
}

/* ============================================================
   DYNAMIC ACCORDION (FAQs + Delivery)
   ============================================================ */
.spectrum-accordion {
    display: flex;
    flex-direction: column;
    border-top: 1px solid #E5E7EB;
}
.spectrum-acc-item {
    border-bottom: 1px solid #E5E7EB;
}
.spectrum-acc-q {
    width: 100%;
    background: transparent;
    border: 0;
    padding: 20px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
    color: #0B1320;
    text-align: left;
    line-height: 1.4;
}
.spectrum-acc-q:hover { color: #E8470A; }
.spectrum-acc-q-icon {
    flex-shrink: 0;
    width: 24px; height: 24px;
    position: relative;
}
.spectrum-acc-q-icon::before,
.spectrum-acc-q-icon::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    background: currentColor;
    border-radius: 2px;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.spectrum-acc-q-icon::before { width: 14px; height: 2px; }
.spectrum-acc-q-icon::after  { width: 2px; height: 14px; }
.spectrum-acc-item.is-open .spectrum-acc-q-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
    opacity: 0;
}
.spectrum-acc-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
}
.spectrum-acc-item.is-open .spectrum-acc-a {
    max-height: 4000px;
}
.spectrum-acc-a-inner {
    padding: 0 0 24px 0;
    font-size: 15px;
    line-height: 1.6;
    color: #374151;
}
.spectrum-acc-a-inner p { margin: 0 0 12px; }
.spectrum-acc-a-inner p:last-child { margin-bottom: 0; }
.spectrum-acc-a-inner ul { padding-left: 20px; margin: 8px 0; }
.spectrum-acc-a-inner li { margin: 4px 0; }
.spectrum-acc-a-inner strong { color: #0B1320; }

/* ============================================================
   PRODUCT GALLERY POLISH — applies to native WC gallery on product page
   ============================================================ */
.woocommerce-product-gallery,
.elementor-widget-woocommerce-product-images {
    position: relative;
}
.woocommerce-product-gallery .flex-active-slide img,
.woocommerce-product-gallery__image img {
    border: 1px solid #E5E7EB;
    border-radius: 14px;
}
.woocommerce-product-gallery .flex-control-thumbs li {
    margin-right: 8px;
    margin-top: 12px;
}
.woocommerce-product-gallery .flex-control-thumbs img {
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    opacity: 1;
    transition: border-color 0.18s ease, transform 0.18s ease;
}
.woocommerce-product-gallery .flex-control-thumbs img:hover {
    border-color: #F59E0B;
    transform: translateY(-1px);
}
.woocommerce-product-gallery .flex-control-thumbs .flex-active {
    border-color: #E8470A !important;
    box-shadow: 0 0 0 2px rgba(233,89,0,0.18);
}
/* FlexSlider prev/next buttons (matches reference) */
.woocommerce-product-gallery .flex-direction-nav a {
    width: 44px !important;
    height: 44px !important;
    background: #FFFFFF !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 14px rgba(11,19,32,0.12), 0 1px 3px rgba(11,19,32,0.06) !important;
    color: #0B1320 !important;
    opacity: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.18s ease, transform 0.18s ease;
    border: 1px solid #E5E7EB !important;
}
.woocommerce-product-gallery .flex-direction-nav a:hover {
    background: #FFF7ED !important;
    transform: translateY(-50%) scale(1.06);
    color: #E8470A !important;
    border-color: #FDBA74 !important;
}
.woocommerce-product-gallery .flex-direction-nav a::before {
    color: inherit !important;
    font-size: 18px !important;
    text-shadow: none !important;
}

/* ============================================================
   PRODUCT PAGE LAYOUT helpers
   ============================================================ */
.spectrum-product-rating {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    color: #0B1320;
}
.spectrum-product-rating .stars { color: #F59E0B; font-size: 18px; letter-spacing: 2px; }
.spectrum-product-sku {
    color: #6B7280;
    font-size: 14px;
    font-weight: 500;
}

/* Empty state */
.spectrum-empty {
    padding: 16px;
    background: #F9FAFB;
    border: 1px dashed #D1D5DB;
    border-radius: 10px;
    color: #6B7280;
    font-size: 14px;
    text-align: center;
}

/* ============================================================
   SPECTRUM PRODUCT PAGE — Sobres-España-style layout
   (Used by spectrum-product-page.php mu-plugin rendering.)
   ============================================================ */
/* Summary column container (right) */
.spectrum-product-summary {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.spectrum-product-title {
    font-size: 30px;
    font-weight: 800;
    color: #0B1320;
    line-height: 1.18;
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.spectrum-product-summary .spectrum-product-meta-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin: 0 0 4px;
}
.spectrum-rating-count {
    color: #6B7280;
    font-weight: 500;
    font-size: 14px;
}

/* Quote CTA box (dashed) */
.spectrum-quote-cta {
    display: block;
    padding: 14px 18px;
    border: 2px dashed #93C5FD;
    border-radius: 12px;
    color: #1E40AF;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.4;
    text-align: center;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.spectrum-quote-cta:hover {
    background: #EFF6FF;
    border-color: #3B82F6;
    text-decoration: underline;
}
.spectrum-quote-cta strong { color: #1E40AF; font-weight: 700; }

/* Share row */
.spectrum-share-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: 4px;
}
.spectrum-share-label {
    color: #6B7280;
    font-size: 14px;
    font-weight: 600;
}
.spectrum-share-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #0B1320;
    color: #FFFFFF;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: background 0.18s ease, transform 0.18s ease;
}
.spectrum-share-link:hover {
    background: #E8470A;
    transform: translateY(-1px);
}

/* Below-fold container (full width under summary) */
.spectrum-product-below {
    width: 100%;
    margin: 32px 0 64px;
    clear: both;
}
.spectrum-product-below .spectrum-accordion {
    margin: 0 0 4px;
}
.spectrum-faq-heading {
    font-size: 22px;
    font-weight: 800;
    color: #0B1320;
    margin: 28px 0 12px;
    line-height: 1.3;
}

/* Astra renders gallery + summary as block siblings — force a clean
   2-column grid layout matching the Sobres España reference. Skip the
   grid when an Elementor Single Product template is taking over (it
   shares the .ast-article-single class but its own flex containers
   handle layout). */
.single-product .ast-article-single:not(.elementor) {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}
.single-product .ast-article-single:not(.elementor) > .woocommerce-product-gallery,
.single-product .ast-article-single:not(.elementor) > .summary.entry-summary,
.single-product .ast-article-single:not(.elementor) > .spectrum-product-below {
    min-width: 0;  /* critical: grid items default to min-content width; this constrains them to the column */
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
/* Constrain swiper to its container — without this, Swiper sometimes expands its
   slide track to content width on mobile, which combined with aspect-ratio:1/1
   produces an overflow loop. */
.spectrum-product-gallery,
.spectrum-product-gallery .spg-main,
.spectrum-product-gallery .swiper,
.spectrum-product-gallery .swiper-wrapper,
.spectrum-product-gallery .swiper-slide {
    max-width: 100%;
    min-width: 0;
}
.spectrum-product-gallery .swiper-slide img {
    max-width: 100%;
    height: auto;
}
.single-product .ast-article-single:not(.elementor) > .spectrum-product-below {
    grid-column: 1 / -1;
}
.single-product .ast-woocommerce-container {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px;
}
@media (max-width: 920px) {
    .single-product .ast-article-single:not(.elementor) {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* ============================================================
   SPECTRUM PRODUCT GALLERY — Swiper-based, brand-accented
   ============================================================ */
.spectrum-product-gallery {
    --spg-brand: #E8470A;
    --spg-brand-2: #F59E0B;
    --spg-ink: #0B1320;
    --spg-line: #E5E7EB;
    --spg-bg: #F9FAFB;
    width: 100%;
}
.spectrum-product-gallery .spg-main {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    background: var(--spg-bg);
    border: 1px solid var(--spg-line);
    box-shadow: 0 4px 16px rgba(11, 19, 32, 0.04);
    margin-bottom: 14px;
}
.spectrum-product-gallery .spg-main-swiper {
    aspect-ratio: 1 / 1;
}
.spectrum-product-gallery .spg-main-swiper .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.spectrum-product-gallery .spg-main-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 20px;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
    cursor: zoom-in;
}
.spectrum-product-gallery .spg-main-swiper .swiper-slide:hover img {
    transform: scale(1.04);
}
.spectrum-product-gallery .spg-zoom-link {
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}
/* Prev / Next buttons — circular, brand orange on hover */
/* Override Astra default button:hover blue background */
.spectrum-product-gallery .spg-nav,
.spectrum-product-gallery .spg-nav:hover,
.spectrum-product-gallery .spg-nav:focus,
.spbn-close,
.spbn-close:hover,
.spbb-vat-toggle .spbb-toggle-track {
    box-shadow: none;
}
.spectrum-product-gallery .spg-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--spg-line);
    border-radius: 50%;
    color: var(--spg-ink);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    box-shadow: 0 4px 14px rgba(11, 19, 32, 0.08), 0 1px 3px rgba(11, 19, 32, 0.04);
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.spectrum-product-gallery .spg-prev { left: 16px; }
.spectrum-product-gallery .spg-next { right: 16px; }
.spectrum-product-gallery .spg-nav:hover {
    background: linear-gradient(135deg, var(--spg-brand) 0%, var(--spg-brand-2) 100%);
    color: #FFFFFF;
    border-color: transparent;
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 10px 24px rgba(233, 89, 0, 0.32), 0 3px 8px rgba(233, 89, 0, 0.16);
}
.spectrum-product-gallery .spg-nav:active {
    transform: translateY(-50%) scale(1.0);
}
.spectrum-product-gallery .spg-nav:focus-visible {
    outline: 3px solid rgba(233, 89, 0, 0.4);
    outline-offset: 3px;
}
.spectrum-product-gallery .spg-nav.swiper-button-disabled {
    opacity: 0.4;
    pointer-events: none;
}
/* Astra resets button widths; force chevron SVG sizing */
.spectrum-product-gallery .spg-nav svg {
    width: 22px !important;
    height: 22px !important;
    display: block !important;
    flex: none;
}
.spectrum-product-gallery .spg-nav svg polyline {
    stroke: currentColor;
}
/* Slide counter pill */
.spectrum-product-gallery .spg-counter {
    position: absolute;
    bottom: 16px;
    right: 16px;
    background: rgba(11, 19, 32, 0.78);
    color: #FFFFFF;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    pointer-events: none;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 5;
}
/* Thumbs */
.spectrum-product-gallery .spg-thumbs { width: 100%; }
.spectrum-product-gallery .spg-thumb-swiper .swiper-slide {
    cursor: pointer;
    border-radius: 12px;
    overflow: hidden;
    background: var(--spg-bg);
    border: 2px solid var(--spg-line);
    aspect-ratio: 1 / 1;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    opacity: 0.7;
}
.spectrum-product-gallery .spg-thumb-swiper .swiper-slide:hover {
    border-color: #FDBA74;
    opacity: 1;
    transform: translateY(-2px);
}
.spectrum-product-gallery .spg-thumb-swiper .swiper-slide-thumb-active {
    border-color: var(--spg-brand);
    opacity: 1;
    box-shadow: 0 0 0 3px rgba(233, 89, 0, 0.16);
}
.spectrum-product-gallery .spg-thumb-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6px;
}
.spectrum-gallery-empty {
    aspect-ratio: 1/1;
    background: var(--spg-bg);
    border: 1px dashed var(--spg-line);
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6B7280;
    font-size: 14px;
}

/* ============================================================
   ACCORDION — brand-orange active state, premium feel
   ============================================================ */
.spectrum-product-below {
    width: 100%;
    margin: 40px 0 64px;
    clear: both;
    border-top: 1px solid #E5E7EB;
    padding-top: 8px;
}
.spectrum-accordion {
    display: flex;
    flex-direction: column;
    border-top: none;
}
.spectrum-acc-item {
    border-bottom: 1px solid #E5E7EB;
    transition: background 0.25s ease;
}
.spectrum-acc-item.is-open {
    background: linear-gradient(180deg, rgba(255, 247, 237, 0.6) 0%, rgba(255, 247, 237, 0) 100%);
}
/* Override Astra's `button:hover { background: var(--ast-global-color-1) }` (blue) */
.spectrum-acc-q,
.spectrum-acc-q:hover,
.spectrum-acc-q:focus,
.spectrum-acc-q:active {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}
.spectrum-acc-q {
    width: 100%;
    background: transparent;
    border: 0;
    padding: 22px 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
    color: #0B1320;
    text-align: left;
    line-height: 1.35;
    transition: color 0.18s ease;
    -webkit-tap-highlight-color: transparent;
}
.spectrum-acc-q:hover { color: #E8470A; }
.spectrum-acc-q:focus-visible {
    outline: 3px solid rgba(233, 89, 0, 0.25);
    outline-offset: 4px;
    border-radius: 6px;
}
.spectrum-acc-item.is-open .spectrum-acc-q { color: #E8470A; }

/* Circular icon with + / − that animates between states */
.spectrum-acc-q-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid #E5E7EB;
    background: #FFFFFF;
    position: relative;
    transition: background 0.22s ease, border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
}
.spectrum-acc-q:hover .spectrum-acc-q-icon {
    border-color: #FDBA74;
    background: #FFF7ED;
}
.spectrum-acc-item.is-open .spectrum-acc-q-icon {
    border-color: transparent;
    background: linear-gradient(135deg, #E8470A 0%, #F59E0B 100%);
    box-shadow: 0 4px 12px rgba(233, 89, 0, 0.28);
    transform: rotate(180deg);
}
.spectrum-acc-q-icon::before,
.spectrum-acc-q-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: currentColor;
    border-radius: 2px;
    transition: opacity 0.22s ease, background 0.22s ease;
}
.spectrum-acc-q-icon::before { width: 14px; height: 2px; }
.spectrum-acc-q-icon::after  { width: 2px;  height: 14px; }
.spectrum-acc-item.is-open .spectrum-acc-q-icon::before,
.spectrum-acc-item.is-open .spectrum-acc-q-icon::after {
    background: #FFFFFF;
}
.spectrum-acc-item.is-open .spectrum-acc-q-icon::after {
    opacity: 0;
}

/* Answer body */
.spectrum-acc-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.spectrum-acc-item.is-open .spectrum-acc-a {
    max-height: 4000px;
}
.spectrum-acc-a-inner {
    padding: 0 4px 28px 4px;
    font-size: 15px;
    line-height: 1.65;
    color: #374151;
}
.spectrum-acc-a-inner p { margin: 0 0 12px; color: #374151; }
.spectrum-acc-a-inner p:last-child { margin-bottom: 0; }
.spectrum-acc-a-inner ul { padding-left: 22px; margin: 10px 0; }
.spectrum-acc-a-inner li { margin: 6px 0; color: #374151; }
.spectrum-acc-a-inner strong { color: #0B1320; }
.spectrum-acc-a-inner a {
    color: #E8470A;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1.5px;
}
.spectrum-acc-a-inner a:hover { color: #D24E00; }

/* When accordion answer contains a specs table, give it room */
.spectrum-acc-a-inner .spectrum-specs-table {
    margin-top: 4px;
}

/* FAQ heading */
.spectrum-faq-heading {
    font-size: 24px;
    font-weight: 800;
    color: #0B1320;
    margin: 36px 0 4px;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

/* Mobile */
@media (max-width: 768px) {
    .single-product .summary.entry-summary { padding-left: 0; }
    .spectrum-product-title { font-size: 24px; }
    .spbb-price .spbb-amount { font-size: 26px; }
    .spbb-buy-row { grid-template-columns: 90px 1fr; }
    .spbb-buy-row .spbb-add-btn { font-size: 15px; padding: 0 16px; }
    .spectrum-tier-table th, .spectrum-tier-table td { padding: 12px 14px; }
    .spectrum-specs-table th, .spectrum-specs-table td { padding: 12px 14px; font-size: 14px; }
    .spectrum-acc-q { padding: 18px 0; font-size: 15px; gap: 12px; }
    .spectrum-acc-q-icon { width: 30px; height: 30px; }
    .spectrum-product-gallery .spg-nav { width: 40px; height: 40px; }
    .spectrum-product-gallery .spg-prev { left: 10px; }
    .spectrum-product-gallery .spg-next { right: 10px; }
}

/* ============================================================
   PRODUCT PAGE v2 — SEUR badge, share buttons, stock pill, promo banners
   Spec ref: PDF §5 SEUR · §6 Share · §7 Promo banners · §4.3 Stock
   ============================================================ */

/* Stock pill inline with rating */
.spectrum-product-meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin: 0 0 4px;
}
.spectrum-product-rating { text-decoration: none; }
.spectrum-product-rating:hover .spectrum-rating-count { color: #E8470A; }
.spectrum-stock-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 12px 4px 10px;
    background: #ECFDF5;
    color: #047857;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
}
.spectrum-stock-pill .spectrum-stock-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #10B981;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.18);
}
.spectrum-stock-pill.is-out {
    background: #FEF2F2;
    color: #B91C1C;
}
.spectrum-stock-pill.is-out::before {
    content: "";
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #DC2626;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.18);
    display: inline-block;
}

/* Unit-price helper inside buy block */
.spbb-price .spbb-unit {
    font-size: 13px;
    color: #6B7280;
    font-weight: 500;
    margin-left: 2px;
    white-space: nowrap;
}

/* SEUR delivery badge */
.spectrum-seur-badge {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 2px 0;
    color: #444444;
    font-size: 15px;
    line-height: 1.4;
}
.spectrum-seur-badge .spectrum-seur-icon {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #FFF7ED;
    color: #E8470A;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.spectrum-seur-badge strong { color: #1F2937; }

/* Social share row — thin-orange-circle buttons (spec: image style ref). */
.spectrum-share-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 6px;
}
.spectrum-share-row .spectrum-share-label {
    color: #6B7280;
    font-size: 14px;
    font-weight: 600;
    margin-right: 4px;
}
.spectrum-share-row .spectrum-share-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1.5px solid #E8470A;
    border-radius: 50%;
    background: #FFFFFF;
    color: #E8470A;
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.spectrum-share-row .spectrum-share-link svg {
    width: 18px;
    height: 18px;
    display: block;
}
.spectrum-share-row .spectrum-share-link:hover {
    background: #E8470A;
    color: #FFFFFF;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(232, 71, 10, 0.28);
}
/* Hidden until client confirms X/TikTok inclusion (PDF §6 — pending) */
.spectrum-share-row .spectrum-share-link--pending { display: none; }

/* Promo banner row — two cards side-by-side (PDF §7) */
.spectrum-promo-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0 12px;
    grid-column: 1 / -1;  /* full width inside parent grid */
}
/* Scope these to .spectrum-promo-row to outweigh the legacy
   Spectrum_Promo_Card_Widget styles that also use `.spectrum-promo-card`
   with a dark default background. */
.spectrum-promo-row .spectrum-promo-card {
    display: flex !important;
    align-items: center;
    gap: 18px;
    padding: 24px 26px !important;
    border-radius: 16px !important;
    text-decoration: none !important;
    color: inherit !important;
    background-color: #FED7AA !important;
    background-image: linear-gradient(135deg, #FFF7ED 0%, #FED7AA 100%) !important;
    border: 1px solid #FDBA74 !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
    overflow: hidden;
    min-height: 110px;
}
.spectrum-promo-row .spectrum-promo-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(232, 71, 10, 0.14);
}
.spectrum-promo-row .spectrum-promo-card__icon {
    flex-shrink: 0;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #FFFFFF;
    color: #E8470A;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(232, 71, 10, 0.12);
}
.spectrum-promo-row .spectrum-promo-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.spectrum-promo-row .spectrum-promo-card__eyebrow {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #9A3412;
    text-transform: uppercase;
}
.spectrum-promo-row .spectrum-promo-card__title {
    font-size: 19px;
    font-weight: 800;
    color: #0B1320;
    line-height: 1.2;
}
.spectrum-promo-row .spectrum-promo-card__sub {
    font-size: 13px;
    line-height: 1.45;
    color: #57534E;
}
.spectrum-promo-row .spectrum-promo-card__cta {
    flex-shrink: 0;
    align-self: flex-end;
    font-size: 13px;
    font-weight: 700;
    color: #E8470A;
}
/* Win-Win variant: cooler teal/green palette */
.spectrum-promo-row .spectrum-promo-card--winwin {
    background-color: #A5F3FC !important;
    background-image: linear-gradient(135deg, #ECFEFF 0%, #A5F3FC 100%) !important;
    border-color: #67E8F9 !important;
}
.spectrum-promo-row .spectrum-promo-card--winwin .spectrum-promo-card__icon {
    color: #0E7490;
    box-shadow: 0 4px 10px rgba(14, 116, 144, 0.16);
}
.spectrum-promo-row .spectrum-promo-card--winwin .spectrum-promo-card__eyebrow { color: #0E7490; }
.spectrum-promo-row .spectrum-promo-card--winwin .spectrum-promo-card__cta { color: #0E7490; }
.spectrum-promo-row .spectrum-promo-card--winwin:hover {
    box-shadow: 0 16px 32px rgba(14, 116, 144, 0.14);
}

@media (max-width: 768px) {
    .spectrum-promo-row { grid-template-columns: 1fr; gap: 14px; }
    .spectrum-promo-row .spectrum-promo-card { padding: 18px 20px !important; min-height: 0; }
}

/* Tab 1: description body */
.spectrum-acc-a-inner--desc {
    font-size: 15px;
    line-height: 1.7;
}
.spectrum-acc-a-inner--desc p { margin: 0 0 14px; }
.spectrum-acc-a-inner--desc ul, .spectrum-acc-a-inner--desc ol { padding-left: 22px; margin: 0 0 14px; }
.spectrum-acc-a-inner--desc li { margin: 6px 0; }

/* Optional accordion icon LEADING (description tab uses it for visual weight) */
.spectrum-acc-q-icon-leading {
    flex-shrink: 0;
    color: #6B7280;
    margin-right: 4px;
    display: inline-flex;
    transition: color 0.2s ease;
}
.spectrum-acc-q:hover .spectrum-acc-q-icon-leading,
.spectrum-acc-item.is-open .spectrum-acc-q-icon-leading { color: #E8470A; }
.spectrum-acc-q-text { flex: 1; }

/* ============================================================
   RESPONSIVE — full mobile audit
   ============================================================ */

/* Tablet — collapse the 2-column hero to single column at 920 */
@media (max-width: 920px) {
    .single-product .ast-article-single:not(.elementor) {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-product .summary.entry-summary {
        padding-left: 0;
    }
    .spectrum-product-title { font-size: 26px; }
}

/* Mobile — tighter spacing, stack share + larger taps */
@media (max-width: 600px) {
    .single-product .ast-woocommerce-container { padding: 0 14px; }

    /* Gallery: smaller nav, hide counter */
    .spectrum-product-gallery .spg-nav { width: 36px; height: 36px; }
    .spectrum-product-gallery .spg-prev { left: 8px; }
    .spectrum-product-gallery .spg-next { right: 8px; }
    .spectrum-product-gallery .spg-counter { font-size: 11px; padding: 5px 10px; bottom: 10px; right: 10px; }
    .spectrum-product-gallery .spg-main-swiper .swiper-slide img { padding: 12px; }
    .spectrum-product-gallery .spg-thumb-swiper .swiper-slide { border-width: 1.5px; }

    /* Summary: tighter type + meta wrap nicely */
    .spectrum-product-title { font-size: 22px; line-height: 1.2; }
    .spectrum-product-meta-row { gap: 8px 12px; }
    .spectrum-stock-pill { font-size: 12px; padding: 3px 10px 3px 9px; }
    .spectrum-rating-count { font-size: 13px; }

    /* Promo banner: single-line stack */
    .spectrum-promo-banner { padding: 12px 14px; gap: 10px; font-size: 14px; }
    .spectrum-promo-banner .spbn-icon { width: 24px; height: 24px; }

    /* Tier table: tighter padding */
    .spectrum-tier-table th, .spectrum-tier-table td { padding: 11px 12px; }
    .spectrum-tier-table th { font-size: 10px; }
    .spectrum-tier-table td { font-size: 14px; }

    /* Quote CTA: smaller */
    .spectrum-quote-cta { padding: 12px 14px; font-size: 13px; }

    /* Buy block: stack qty above button on very narrow screens */
    .spbb-price-row { flex-direction: column; align-items: flex-start; gap: 8px; }
    .spbb-vat-toggle { align-self: flex-end; }
    .spbb-price .spbb-amount { font-size: 24px; }
    .spbb-price .spbb-unit { font-size: 12px; }
    .spbb-buy-row { grid-template-columns: 86px 1fr; min-height: 54px; }
    .spbb-buy-row .spbb-qty { font-size: 16px; }
    .spbb-buy-row .spbb-add-btn { font-size: 14px; padding: 0 14px; letter-spacing: 0; }

    /* SEUR + share */
    .spectrum-seur-badge { font-size: 14px; }
    .spectrum-seur-badge .spectrum-seur-icon { width: 34px; height: 34px; }
    .spectrum-share-row { gap: 10px; }
    .spectrum-share-row .spectrum-share-link { width: 38px; height: 38px; }
    .spectrum-share-row .spectrum-share-link svg { width: 17px; height: 17px; }

    /* Promo cards: stack and reduce */
    .spectrum-promo-row { grid-template-columns: 1fr !important; gap: 12px; margin: 28px 0 8px; }
    .spectrum-promo-row .spectrum-promo-card { padding: 16px 18px !important; min-height: 0; gap: 14px; }
    .spectrum-promo-row .spectrum-promo-card__icon { width: 44px; height: 44px; }
    .spectrum-promo-row .spectrum-promo-card__title { font-size: 17px; }
    .spectrum-promo-row .spectrum-promo-card__sub { font-size: 12.5px; }

    /* Accordions: tighter */
    .spectrum-acc-q { padding: 16px 0; font-size: 15px; gap: 12px; line-height: 1.35; }
    .spectrum-acc-q-icon { width: 28px; height: 28px; }
    .spectrum-acc-q-icon::before { width: 12px; }
    .spectrum-acc-q-icon::after  { height: 12px; }
    .spectrum-acc-a-inner { padding: 0 0 22px; font-size: 14px; }
    .spectrum-faq-heading { font-size: 20px; margin: 28px 0 4px; }

    /* Specs table: card-style on mobile (label above value) */
    .spectrum-specs-table th, .spectrum-specs-table td {
        display: block;
        width: 100%;
        padding: 6px 14px;
        font-size: 14px;
    }
    .spectrum-specs-table th { padding-top: 14px; color: #6B7280; font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; }
    .spectrum-specs-table td { padding-bottom: 14px; }
    .spectrum-specs-table tr { display: block; border-bottom: 1px solid #E5E7EB; }

    /* SEUR & summary stack */
    .spectrum-product-summary { gap: 14px; }
}

/* Extra small (≤380px) */
@media (max-width: 380px) {
    .spectrum-product-title { font-size: 20px; }
    .spbb-price .spbb-amount { font-size: 22px; }
    .spbb-buy-row .spbb-add-btn { font-size: 13px; padding: 0 10px; }
    .spectrum-share-row .spectrum-share-label { display: none; }
}

/* ============================================================
   Brand override for Elementor native share-buttons widget.
   Pixel-perfect: outer pill carries the look (orange border default,
   gradient on hover); inner icon span is flat (no bg, no border) so
   per-platform colors (Facebook blue, Gmail red, etc.) can't bleed
   through. Square pill ensures icons stay centered identically across
   FB / Twitter / WhatsApp / Email regardless of icon-glyph metrics.
   ============================================================ */

/* OUTER pill — only this element carries border + background */
.elementor-widget-share-buttons .elementor-share-btn {
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #FFFFFF !important;
    background-image: none !important;
    background-color: #FFFFFF !important;
    border: 1.5px solid #E8470A !important;
    border-radius: 50% !important;
    color: #E8470A !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden;
    transition: background-color 220ms ease, background-image 220ms ease, color 220ms ease, transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease !important;
}

/* INNER icon span — flatten (no bg, no border) so platform default
   colors can't leak through. Center the glyph perfectly. */
.elementor-widget-share-buttons .elementor-share-btn__icon,
.elementor-widget-share-buttons .elementor-share-btn .elementor-share-btn__icon,
.elementor-widget-share-buttons .elementor-share-btn__text {
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    color: inherit !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

/* Icon glyph — consistent size, inherit color from outer */
.elementor-widget-share-buttons .elementor-share-btn svg,
.elementor-widget-share-buttons .elementor-share-btn i {
    width: 16px !important;
    height: 16px !important;
    font-size: 16px !important;
    line-height: 1 !important;
    color: #E8470A !important;
    fill: #E8470A !important;
    display: inline-block !important;
    transition: color 220ms ease, fill 220ms ease !important;
}

/* Hover / focus — gradient pill, white icon, no border */
.elementor-widget-share-buttons .elementor-share-btn:hover,
.elementor-widget-share-buttons .elementor-share-btn:focus-visible {
    background: linear-gradient(90deg, #E8470A 0%, #FBC35D 100%) !important;
    background-image: linear-gradient(90deg, #E8470A 0%, #FBC35D 100%) !important;
    background-color: transparent !important;
    border-color: transparent !important;
    color: #FFFFFF !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 8px 18px rgba(232, 71, 10, 0.32) !important;
}
.elementor-widget-share-buttons .elementor-share-btn:hover svg,
.elementor-widget-share-buttons .elementor-share-btn:hover i,
.elementor-widget-share-buttons .elementor-share-btn:focus-visible svg,
.elementor-widget-share-buttons .elementor-share-btn:focus-visible i {
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
}
.elementor-widget-share-buttons .elementor-share-btn:active {
    transform: translateY(0) !important;
}
.elementor-widget-share-buttons .elementor-share-btn:focus-visible {
    outline: 2px solid rgba(232, 71, 10, 0.45) !important;
    outline-offset: 2px !important;
}

/* Spacing between buttons — even gap, no per-button shifting */
.elementor-widget-share-buttons .elementor-grid {
    gap: 12px !important;
}

/* ============================================================
   Tier price table — trim trailing whitespace inside the wrapper.
   The wrapper sometimes shows an empty horizontal strip below the
   last row when `border-collapse: separate` leaves a gap; collapse
   it and tighten paddings so the table hugs the wrapper edges.
   ============================================================ */
.spectrum-tier-table {
    padding: 0 !important;
    margin: 0 !important;
}
.spectrum-tier-table table {
    border-collapse: collapse !important;
    margin: 0 !important;
    border-spacing: 0 !important;
}
.spectrum-tier-table tbody { display: table-row-group; }
.spectrum-tier-table tbody tr:last-child td { border-bottom: 0 !important; padding-bottom: 14px !important; }
.spectrum-tier-table table tfoot,
.spectrum-tier-table table caption { display: none !important; }

/* ============================================================
   Mobile section padding — 20px breathing room from viewport
   edges on phones (≤767px, below the tablet breakpoint).
   Targets the top-level Elementor product-template containers
   (the hero row + below-fold row) and the legacy PHP product
   layout wrappers, so the same rule applies whether the page
   is rendered by the Elementor template or the PHP fallback.
   ============================================================ */
@media (max-width: 767px) {
    /* Elementor Theme-Builder single-product containers */
    .elementor-location-single > .elementor-element.e-con-boxed,
    .elementor-location-single > .elementor-element.e-con {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    /* Legacy/PHP layout — the article + below-fold wrappers */
    .single-product .ast-article-single,
    .single-product .spectrum-product-below,
    .single-product .spectrum-product-summary,
    .single-product .woocommerce-product-gallery,
    .single-product .spectrum-promo-row {
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box;
    }
    /* Promo row collapses to single column; keep the cards from
       hugging the viewport edges. */
    .spectrum-promo-row {
        gap: 16px !important;
    }
    /* Reviews popup + checkout popup inner content — phones need
       the same edge breathing room. */
    body #elementor-popup-modal-13989 .dialog-message,
    body #elementor-popup-modal-13939 .dialog-message {
        padding-left: 4px;
        padding-right: 4px;
    }
}

/* ============================================================
   FINAL POLISH — issue-by-issue fixes (production)
   ============================================================ */

/* 1. Truck icon (Entrega rápida) — proper vertical centering with the
      title + description, consistent gap, no orphaned stock dot above. */
.elementor-widget-icon-box .elementor-icon-box-wrapper {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    text-align: left !important;
}
.elementor-widget-icon-box .elementor-icon-box-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: linear-gradient(135deg, #FFF7ED 0%, #FFE4CC 100%);
    border-radius: 10px;
}
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon i,
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon svg {
    color: #E8470A !important;
    font-size: 20px !important;
    width: 20px !important;
    height: 20px !important;
    line-height: 1 !important;
    margin: 0 !important;
}
.elementor-widget-icon-box .elementor-icon-box-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    margin: 0 !important;
    text-align: left !important;
}
.elementor-widget-icon-box .elementor-icon-box-title {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
}
.elementor-widget-icon-box .elementor-icon-box-description {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.5 !important;
}

/* 2. Hide any orphaned spectrum-stock-pill / dot left over from the
      removed Spectrum_Product_Meta_Row_Widget (the green dot floating
      above the truck icon was this). */
.elementor-location-single .spectrum-stock-pill,
.elementor-location-single .spectrum-stock-dot,
.elementor-location-single .spectrum-product-rating:not(.spbb-rating) {
    display: none !important;
}
/* But keep stock display inside the buy-block (spbb has its own classes) */
.elementor-location-single .spbb-stock-pill,
.elementor-location-single .spbb-stock-dot {
    display: inherit !important;
}

/* 3. Share icon hover — kill border completely (was `transparent` which
      still took 1.5px space, creating the layered-border glitch). */
.elementor-widget-share-buttons .elementor-share-btn {
    box-sizing: border-box !important;
}
.elementor-widget-share-buttons .elementor-share-btn:hover,
.elementor-widget-share-buttons .elementor-share-btn:focus-visible {
    border: none !important;
    border-width: 0 !important;
    /* Compensate so the gradient pill stays the same outer size: pad +1.5px
       on all sides since we removed the border. */
    padding: 1.5px !important;
}

/* 4. Review-trigger button gradient hover — same fix, no border width
      on hover so it doesn't peek through the gradient. */
.spectrum-reviews-trigger:hover,
.spectrum-reviews-trigger:focus-visible {
    border: none !important;
    border-width: 0 !important;
    padding: 11.5px 19.5px !important; /* compensate for removed 1.5px border */
}

/* 5. Checkout form: never let WC's blockUI hide the form entirely.
      Form fields must remain visible+interactive even during AJAX,
      so users can always see the checkout when the popup opens. */
body #elementor-popup-modal-13939 form.checkout,
body #elementor-popup-modal-13939 form.woocommerce-checkout {
    position: static !important;
    overflow: visible !important;
    height: auto !important;
    min-height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
}
body #elementor-popup-modal-13939 form.checkout > div,
body #elementor-popup-modal-13939 form.woocommerce-checkout > div {
    position: relative;
}
/* WC's blockUI overlay — make it semi-transparent so form stays readable */
body #elementor-popup-modal-13939 .blockUI.blockOverlay {
    background: rgba(255, 255, 255, 0.55) !important;
    opacity: 0.55 !important;
    z-index: 10 !important;
}
/* Hide the bare-text "Please wait..." that blockUI adds — we use our own */
body #elementor-popup-modal-13939 .blockUI.blockMsg {
    display: none !important;
}
