.ps-price-methods-host.ps-price-grid--empty {
    display: none;
}

.ps-product-info {
    margin: 1.25rem 0 0;
}

.ps-product-info .ps-product-info__heading,
.elementor-widget-shortcode .ps-product-info__heading {
    background: #f3f4f6 !important;
    border: 0 !important;
    color: #374151 !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.3 !important;
    margin: 0.9rem 0 0.55rem !important;
    padding: 0.7rem 1rem !important;
    text-transform: uppercase !important;
}

.ps-product-info__heading:first-child {
    margin-top: 0;
}

.ps-product-info__copy {
    color: #4b5563;
    font-size: 14px;
    line-height: 1.7;
    margin: 0 0 0.75rem;
}

.ps-product-info__copy p {
    margin: 0 0 0.75rem;
}

.ps-product-info__copy p:last-child {
    margin-bottom: 0;
}

.ps-product-info__specs {
    display: grid;
    gap: 0;
    margin: 0;
}

.ps-product-info__spec {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(140px, 38%) 1fr;
    padding: 0.55rem 0.15rem;
}

.ps-product-info__spec dt,
.ps-product-info__spec dd {
    color: #4b5563;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

.ps-product-info__spec dt {
    font-weight: 400;
}

.ps-product-info__locations {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0.35rem 0 0;
}

.ps-product-info__location {
    margin: 0;
    text-align: center;
}

.ps-product-info__diagram {
    display: block;
    height: auto;
    margin: 0 auto;
    max-width: 220px;
    width: 100%;
}

.ps-product-info__location figcaption {
    color: #6b7280;
    font-size: 13px;
    margin-top: 0.35rem;
}

body.single-product:has(.ps-product-info) .woocommerce-tabs .description_tab,
body.single-product:has(.ps-product-info) #tab-description {
    display: none !important;
}

@media (max-width: 720px) {
    .ps-product-info__spec {
        gap: 0.35rem;
        grid-template-columns: 1fr;
    }

}

.ps-price-methods {
    margin: 0.5rem 0 1.25rem;
}

.ps-price-methods__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1.25rem;
}

.elementor-widget-shortcode .ps-price-methods button.ps-price-methods__chip,
.ps-price-methods button.ps-price-methods__chip,
.ps-price-methods .ps-price-methods__chip {
    appearance: none !important;
    -webkit-appearance: none !important;
    align-items: center;
    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    color: #1e3a64 !important;
    cursor: pointer;
    display: inline-flex !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    height: auto !important;
    justify-content: center;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    min-height: 38px !important;
    outline: none !important;
    padding: 0.5rem 1.1rem !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    text-decoration: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    width: auto !important;
}

/* Same navy / grey as the numbered step bars: selected method is filled. */
.ps-price-methods button.ps-price-methods__chip:hover,
.ps-price-methods .ps-price-methods__chip:hover {
    background: #eef2f7 !important;
    background-color: #eef2f7 !important;
    border-color: #1e3a64 !important;
    box-shadow: none !important;
    color: #1e3a64 !important;
}

.ps-price-methods button.ps-price-methods__chip.is-active,
.ps-price-methods button.ps-price-methods__chip.is-active:hover,
.ps-price-methods .ps-price-methods__chip.is-active,
.ps-price-methods .ps-price-methods__chip.is-active:hover {
    background: #1e3a64 !important;
    background-color: #1e3a64 !important;
    border-color: #1e3a64 !important;
    box-shadow: none !important;
    color: #ffffff !important;
}

.ps-price-methods button.ps-price-methods__chip:focus-visible,
.ps-price-methods .ps-price-methods__chip:focus-visible {
    outline: 2px solid #2b8cff !important;
    outline-offset: 2px;
}

.ps-price-methods__panel[hidden] {
    display: none !important;
}

.ps-price-methods__panel.is-active {
    display: block;
}

.ps-config__table {
    border-collapse: collapse;
    margin: 0 0 1rem;
    width: 100%;
}

.ps-config__table th,
.ps-config__table td {
    border-bottom: 1px solid #e8eef5;
    font-size: 14px;
    padding: 0.65rem 0.75rem;
    text-align: center;
}

.ps-config__table thead th {
    background: #eaf5ff;
    color: #1f3552;
    font-weight: 500;
}

.ps-config__table thead th:first-child,
.ps-config__table tbody th {
    background: #fff;
    color: #6b7280;
    font-weight: 400;
    text-align: left;
}

.ps-config__table .ps-price-grid__qty.is-active,
.ps-config__table .ps-price-grid__price.is-active {
    background: #eaf5ff;
    color: #1f3552;
    font-weight: 600;
}

.ps-price-methods .ps-price-grid__qty::after,
.ps-config__table .ps-price-grid__qty::after {
    content: none !important;
}

.ps-config__color-block {
    margin: 0 0 1.15rem;
}

.ps-config__color-label {
    color: #374151;
    display: block;
    font-size: 14px;
    margin: 0 0 0.45rem;
}

.ps-config__required {
    color: #e11d48;
}

.ps-config__color {
    appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 0.9rem center;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    color: #111827;
    font-size: 14px;
    max-width: 420px;
    padding: 0.7rem 2.2rem 0.7rem 0.9rem;
    width: 100%;
}

.ps-config__color:invalid {
    border-color: #f59e0b;
}

body:has(.ps-config__color) form.cart .variations,
body:has(.ps-config__color) .woo-variation-swatches,
body:has(.ps-config__color) .variable-items-wrapper,
body:has(.ps-config__color) .woo-variation-items-wrapper,
body:has(.ps-config__sizes) form.cart .variations,
body:has(.ps-config__sizes) .woo-variation-swatches,
body:has(.ps-config__sizes) .variable-items-wrapper,
body:has(.ps-config__sizes) .woo-variation-items-wrapper {
    display: none !important;
}

.ps-config__qty-block {
    background: #f7fbff;
    border-radius: 8px;
    margin: 0 0 1.25rem;
    padding: 1rem 1.1rem 1.15rem;
}

.ps-config__qty-label {
    color: #374151;
    font-size: 14px;
    margin: 0 0 0.7rem;
}

.ps-config__qty-row {
    display: flex;
    max-width: 420px;
}

.ps-config__sizes {
    display: grid;
    gap: 0.85rem 0.55rem;
    grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
}

.ps-config__size {
    align-items: center;
    color: #4b5563;
    display: flex;
    flex-direction: column;
    font-size: 13px;
    gap: 0.4rem;
    line-height: 1.25;
    text-align: center;
}

.ps-config__size-qty {
    appearance: textfield;
    background: #fff;
    border: 1px solid #2b8cff;
    border-radius: 999px;
    color: #111827;
    font-size: 14px;
    height: 36px;
    padding: 0;
    text-align: center;
    width: 52px;
}

.ps-config__size-qty::-webkit-outer-spin-button,
.ps-config__size-qty::-webkit-inner-spin-button {
    appearance: none;
    margin: 0;
}

.ps-config__qty {
    background: #fff;
    border: 1px solid #2b8cff;
    border-radius: 6px 0 0 6px;
    flex: 1 1 auto;
    font-size: 16px;
    min-width: 0;
    padding: 0.7rem 0.85rem;
}

.ps-config__qty-price {
    align-items: center;
    background: #2b8cff;
    border-radius: 0 6px 6px 0;
    color: #fff;
    display: inline-flex;
    font-size: 14px;
    padding: 0 1rem;
    white-space: nowrap;
}

.ps-config__section-title {
    background: #f3f4f6;
    color: #374151;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin: 0 0 0.9rem;
    padding: 0.7rem 1rem;
    text-transform: uppercase;
}

.ps-config__imprint-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin: 0 0 0.85rem;
    padding: 0 0.25rem;
}

.ps-config__imprint-label {
    color: #4b5563;
    font-size: 14px;
    min-width: 140px;
}

.ps-config__check {
    align-items: center;
    color: #111827;
    display: inline-flex;
    font-size: 14px;
    gap: 0.4rem;
}

.ps-config__zip-block {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin: 0 0 1.25rem;
}

.ps-config__zip-block[hidden],
.ps-config__imprint[hidden],
.ps-config__artwork[hidden],
.ps-config__setup-row[hidden],
.ps-config__shipping-row[hidden],
.ps-config__zip-error[hidden],
.ps-config__moq-error[hidden],
.ps-config__moq-hint[hidden] {
    display: none !important;
}

.ps-config__moq-hint {
    color: #6b7280;
    font-size: 13px;
    margin: 0.7rem 0 0;
}

.ps-config__moq-error {
    color: #b45309;
    font-size: 13px;
    margin: 0.55rem 0 0;
}

.ps-config__zip-label {
    color: #374151;
    font-size: 14px;
}

.ps-config__zip {
    border: 1px solid #d1d5db;
    border-radius: 8px;
    flex: 1 1 280px;
    font-size: 14px;
    min-width: 0;
    padding: 0.7rem 0.9rem;
}

.ps-config__mid {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
    margin: 0.25rem 0 1.35rem;
}

.ps-config__totals {
    min-width: 0;
    padding-top: 0.35rem;
}

.ps-config__total-row {
    color: #4b5563;
    display: flex;
    font-size: 14px;
    gap: 1.5rem;
    justify-content: space-between;
    padding: 0.28rem 0;
}

.ps-config__total-row--sum {
    color: #111827;
    font-weight: 700;
    margin-top: 0.35rem;
}

.ps-config__zip-error {
    color: #e11d48;
    font-size: 13px;
    margin: 0.15rem 0 0;
    text-align: right;
}

.ps-config__artwork-banner {
    align-items: center;
    background: #eaf5ff;
    border-radius: 8px;
    color: #3d8fd9;
    display: flex;
    font-size: 14px;
    gap: 0.55rem;
    margin: 0 0 0.85rem;
    padding: 0.7rem 0.9rem;
}

.ps-price-methods__sample-icon {
    align-items: center;
    background: #3d8fd9;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 18px;
    font-size: 11px;
    font-style: italic;
    font-weight: 700;
    height: 18px;
    justify-content: center;
    width: 18px;
}

.ps-config__artwork {
    clear: both;
    margin: 0 0 0.75rem;
    overflow: visible;
}

.ps-config__actions {
    align-items: center;
    display: grid;
    gap: 1.25rem 1.5rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 0 0 1.5rem;
}

.ps-config__actions:has(.ps-config__upload[hidden]) {
    display: flex;
    justify-content: flex-end;
}

.ps-config__quote-slot {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    justify-content: flex-end;
    min-width: 180px;
}

/* WooCommerce often injects a “View cart” link after Store API add. */
.ps-config__quote-slot .added_to_cart,
.ps-config__quote-slot a.wc-forward,
.ps-config__actions a.added_to_cart {
    display: none !important;
}

body:has(.ps-config__add-cart) .cqe-add-to-quote,
body:has(.ps-config__add-quote) .cqe-add-to-quote,
body:has(.ps-config__add-cart) .cqe-btn.cqe-btn-primary,
body:has(.ps-config__add-quote) .cqe-btn.cqe-btn-primary,
body:has(.ps-config__add-cart) .cqe-quote-wrap,
body:has(.ps-config__add-quote) .cqe-quote-wrap,
body:has(.ps-config__add-cart) .elementor-widget-shortcode:has(.cqe-add-to-quote):not(:has(.ps-config)),
body:has(.ps-config__add-quote) .elementor-widget-shortcode:has(.cqe-add-to-quote):not(:has(.ps-config)),
body:has(.ps-config__add-cart) .elementor-widget:has(> .elementor-widget-container .cqe-add-to-quote):not(:has(.ps-config__add-cart)),
body:has(.ps-config__add-quote) .elementor-widget:has(> .elementor-widget-container .cqe-add-to-quote):not(:has(.ps-config__add-quote)) {
    display: none !important;
}

.ps-config__add-cart,
.ps-config__add-quote {
    appearance: none !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    cursor: pointer;
    display: inline-flex !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    justify-content: center;
    min-height: 48px;
    min-width: 168px;
    padding: 0.8rem 1.6rem !important;
    white-space: nowrap;
    width: 100%;
}

.ps-config__add-cart {
    background: #2b8cff !important;
    border: 0 !important;
    color: #fff !important;
}

.ps-config__add-cart:hover {
    background: #1f73e0 !important;
    color: #fff !important;
}

.ps-config__add-quote {
    background: #fff !important;
    border: 1px solid #111827 !important;
    color: #111827 !important;
}

.ps-config__add-quote:hover {
    background: #f9fafb !important;
    color: #111827 !important;
}

.ps-config__add-cart:disabled,
.ps-config__add-cart.is-disabled,
.ps-config__add-cart.is-loading,
.ps-config__add-quote:disabled,
.ps-config__add-quote.is-disabled,
.ps-config__add-quote.is-loading,
.ps-config__add-cart:disabled:hover,
.ps-config__add-cart.is-disabled:hover,
.ps-config__add-cart.is-loading:hover,
.ps-config__add-quote:disabled:hover,
.ps-config__add-quote.is-disabled:hover,
.ps-config__add-quote.is-loading:hover {
    background: #9ca3af !important;
    border-color: #9ca3af !important;
    color: #fff !important;
    cursor: not-allowed;
    opacity: 0.75;
}

.ps-config__artwork-label {
    color: #6b7280;
    font-size: 13px;
    margin: 0 0 0.7rem;
}

.ps-config__upload {
    align-items: center;
    background: #f8fbff;
    border: 1px dashed #2b8cff;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    justify-content: center;
    min-height: 140px;
    padding: 1.4rem 1rem;
    text-align: center;
    width: 100%;
}

.ps-config__upload[hidden] {
    display: none !important;
}

.ps-config__upload input {
    display: none;
}

.ps-config__upload strong {
    color: #111827;
    font-size: 16px;
    font-weight: 600;
}

.ps-config__upload small,
.ps-config__file-name {
    color: #6b7280;
    font-size: 13px;
}

.ps-config__file-name:empty {
    display: none;
}

body:has(.ps-price-methods) .elementor-widget-woocommerce-product-price,
body:has(.ps-price-methods) form.cart .single_variation,
body:has(.ps-price-methods) form.cart .reset_variations,
body:has(.ps-price-methods) form.cart .quantity,
body:has(.ps-price-methods) .elementor-add-to-cart .quantity {
    display: none !important;
}

.ps-price-grid {
    margin: 1.5rem 0;
}

.ps-price-methods .ps-price-grid {
    margin: 0;
}

.ps-price-grid--dynamic.ps-price-grid--empty {
    display: none;
}

.ps-price-grid__headline {
    margin: 0 0 0.75rem;
    font-size: 1.1rem;
    font-weight: 600;
}

.ps-price-grid__headline-label {
    margin-right: 0.35rem;
}

.ps-price-grid__badge {
    display: inline-block;
    margin-bottom: 0;
    padding: 0.45rem 1.25rem;
    background: #2f6fad;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ps-price-grid__table {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #2f6fad;
}

.ps-price-grid__table th,
.ps-price-grid__table td {
    border-bottom: 1px solid #2f6fad;
    padding: 0.65rem 0.85rem;
    text-align: center;
    vertical-align: middle;
}

.ps-price-grid__table thead th {
    background: #f3f6fa;
    color: #1f3552;
    font-weight: 700;
}

.ps-price-grid--blank .ps-price-grid__table thead th {
    background: #c0392b;
    color: #fff;
}

.ps-price-grid--blank .ps-price-grid__table th,
.ps-price-grid--blank .ps-price-grid__table td {
    border-color: #ddd;
}

.ps-price-grid__table tbody th,
.ps-price-grid__table tbody td {
    background: #fff;
}

.ps-price-grid__row-label,
.ps-price-grid__qty-label {
    text-align: left;
    font-weight: 600;
    white-space: normal;
}

.ps-price-grid__footnote {
    margin: 0.5rem 0 0;
    color: #5c6773;
    font-size: 0.85rem;
    font-style: italic;
}

.ps-price-grid--blank .ps-price-grid__table thead .ps-price-grid__row-label {
    background: #c0392b;
}

.ps-price-grid__table th.ps-price-grid__qty.is-active,
.ps-price-grid__table td.ps-price-grid__price.is-active {
    background: #2f6fad !important;
    color: #fff !important;
    font-weight: 700 !important;
}

.ps-price-grid--blank .ps-price-grid__table th.ps-price-grid__qty.is-active,
.ps-price-grid--blank .ps-price-grid__table td.ps-price-grid__price.is-active {
    background: #c0392b !important;
    color: #fff !important;
}

.ps-price-grid--sample {
    margin-top: 0;
}

@media (max-width: 720px) {
    .ps-config__table {
        display: block;
        overflow-x: auto;
    }

    .ps-config__mid {
        grid-template-columns: 1fr;
    }

    .ps-config__actions {
        grid-template-columns: 1fr;
    }

    .ps-config__quote-slot {
        justify-content: flex-start;
    }

    .ps-imprint-entry {
        flex-direction: column;
        align-items: stretch;
    }

    .ps-imprint-entry__cta {
        width: 100%;
        justify-content: center;
    }
}

/* Apparel SanMar-style imprint customization */
.ps-imprint-entry {
    align-items: center;
    background: #eef2f6;
    border-radius: 4px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
}

.ps-imprint-entry__links {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.ps-imprint-entry__link {
    align-items: center;
    color: #1d6fd8;
    display: inline-flex;
    font-size: 14px;
    gap: 0.45rem;
    text-decoration: underline;
}

.ps-imprint-entry__icon {
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    display: inline-block;
    flex: 0 0 auto;
    height: 18px;
    width: 18px;
}

.ps-imprint-entry__icon--shapes {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='2' width='20' height='20' fill='none' stroke='%2399a' stroke-dasharray='2 2'/%3E%3Ccircle cx='8' cy='10' r='3' fill='%232e7d32'/%3E%3Cpath d='M12 7l5 8H7z' fill='%23ef6c00'/%3E%3Cpath d='M15 13l3 2.5L15 18l-3-2.5z' fill='%232b5ea8'/%3E%3C/svg%3E");
}

.ps-imprint-entry__icon--bulb {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%231d6fd8' stroke-width='1.5'/%3E%3Cpath d='M12 7a3.5 3.5 0 0 1 2 6.3V16h-4v-2.7A3.5 3.5 0 0 1 12 7z' fill='%23f9a825'/%3E%3C/svg%3E");
}

.ps-imprint-entry__cta {
    align-items: center !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background: #163a66 !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    color: #fff !important;
    cursor: pointer;
    display: inline-flex !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    gap: 0.5rem;
    justify-content: center !important;
    line-height: 1.2 !important;
    padding: 0.85rem 1.2rem !important;
    text-decoration: none !important;
    white-space: nowrap;
}

.ps-imprint-entry__cta:hover,
.ps-imprint-entry__cta:focus,
.ps-imprint-entry__cta:active {
    background: #0f2c4f !important;
    color: #fff !important;
}

.ps-imprint-entry__cta:disabled,
.ps-imprint-entry__cta.is-disabled,
.ps-imprint-entry__cta[aria-disabled="true"],
.ps-imprint-entry__cta:disabled:hover,
.ps-imprint-entry__cta.is-disabled:hover,
.ps-imprint-entry__cta[aria-disabled="true"]:hover {
    background: #9ca3af !important;
    color: #fff !important;
    cursor: not-allowed !important;
    opacity: 0.75;
}

.ps-config__color.is-invalid {
    border-color: #ea580c !important;
    box-shadow: 0 0 0 1px #ea580c !important;
}

.ps-imprint-entry__cta-label,
.ps-imprint-entry__cta-arrow {
    color: #fff !important;
}

.ps-imprint-entry__cta-arrow {
    display: inline-flex;
    line-height: 0;
}

.ps-imprint-entry__cta-arrow svg {
    display: block;
    fill: currentColor;
}

.ps-imprint-summary {
    background: #fff;
    border: 1px solid #dbe3ec;
    border-radius: 8px;
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
}

.ps-imprint-summary__row {
    color: #374151;
    display: grid;
    font-size: 14px;
    gap: 1rem;
    grid-template-columns: 160px 1fr;
    padding: 0.25rem 0;
}

.ps-imprint-summary__amount,
.ps-config__extra-amount,
.ps-config__color-charge-amount {
    color: #1d6fd8 !important;
    font-weight: 600;
    justify-self: start;
}

.ps-imprint-summary__label,
.ps-config__extra-label {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
}

.ps-config__color-charge-row[hidden] {
    display: none !important;
}

.ps-config .ps-imprint-tip,
.ps-imprint-summary .ps-imprint-tip,
.ps-imprint-modal .ps-imprint-tip {
    align-items: center;
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: inherit !important;
    cursor: help;
    display: inline-flex !important;
    flex: 0 0 auto;
    height: 14px !important;
    line-height: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    text-decoration: none !important;
    vertical-align: middle;
    width: 14px !important;
}

.ps-config .ps-imprint-tip svg,
.ps-imprint-summary .ps-imprint-tip svg,
.ps-imprint-modal .ps-imprint-tip svg {
    display: block;
    height: 14px;
    overflow: visible;
    width: 14px;
}

.ps-imprint-tip--light svg circle {
    fill: #ffffff;
}

.ps-imprint-tip--light svg text {
    fill: #163a66;
}

.ps-imprint-modal[hidden] {
    display: none !important;
}

.ps-imprint-modal {
    inset: 0;
    position: fixed;
    z-index: 100000;
}

.ps-imprint-modal__backdrop {
    background: rgba(17, 24, 39, 0.45);
    inset: 0;
    position: absolute;
}

.ps-imprint-modal__dialog {
    background: #eef2f6;
    border-radius: 8px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
    left: 50%;
    max-height: min(90vh, 820px);
    overflow: auto;
    padding: 0 0 1rem;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(640px, calc(100vw - 1.5rem));
}

.ps-imprint-modal__header {
    align-items: center !important;
    background: #163a66 !important;
    box-sizing: border-box !important;
    color: #fff !important;
    display: flex !important;
    gap: 0.45rem !important;
    min-height: 0 !important;
    padding: 0.65rem 0.9rem !important;
}

.ps-imprint-modal__header h3,
.ps-imprint-modal__header #ps-imprint-modal-title {
    color: #fff !important;
    flex: 1 1 auto !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    text-transform: none !important;
}

.ps-imprint-modal__header .ps-imprint-tip,
.ps-imprint-modal .ps-imprint-modal__header .ps-imprint-tip {
    flex: 0 0 auto !important;
    height: 18px !important;
    margin: 0 !important;
    width: 18px !important;
}

.ps-imprint-modal__header .ps-imprint-tip svg,
.ps-imprint-modal .ps-imprint-modal__header .ps-imprint-tip svg {
    height: 18px !important;
    width: 18px !important;
}

.ps-imprint-modal__header .ps-imprint-tip--light svg circle {
    fill: #ffffff !important;
}

.ps-imprint-modal__header .ps-imprint-tip--light svg text {
    fill: #163a66 !important;
    font-size: 11px !important;
}

.ps-imprint-modal__header .ps-imprint-modal__close,
.ps-imprint-modal button.ps-imprint-modal__close {
    appearance: none !important;
    -webkit-appearance: none !important;
    align-items: center !important;
    background: #fff !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    color: #163a66 !important;
    cursor: pointer;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    height: 18px !important;
    justify-content: center !important;
    line-height: 1 !important;
    margin: 0 !important;
    min-height: 18px !important;
    min-width: 18px !important;
    padding: 0 !important;
    text-decoration: none !important;
    width: 18px !important;
}

.ps-imprint-modal__body {
    display: grid;
    gap: 0.85rem;
    padding: 0.85rem 1rem 0.5rem;
}

.ps-imprint-location {
    background: #fff;
    border-radius: 8px;
    padding: 0.95rem 1rem 1rem;
}

.ps-imprint-location__head {
    align-items: center;
    background: #f3f4f6;
    border-radius: 6px;
    display: flex;
    justify-content: space-between;
    margin: -0.95rem -1rem 0.85rem;
    padding: 0.55rem 1rem;
}

.ps-imprint-field {
    display: grid;
    gap: 0.4rem;
    margin: 0 0 0.85rem;
}

.ps-imprint-field > span {
    color: #374151;
    font-size: 14px;
}

.ps-imprint-method__select,
.ps-imprint-location__select,
.ps-imprint-color__select {
    border: 1px solid #cfd8e3;
    border-radius: 4px;
    font-size: 14px;
    padding: 0.55rem 0.65rem;
    width: 100%;
}

.ps-imprint-colors {
    display: grid;
    gap: 0.55rem;
    margin: 0 0 0.55rem;
}

.ps-imprint-color-row {
    align-items: center;
    display: grid;
    gap: 0.55rem;
    grid-template-columns: 28px 1fr auto;
}

.ps-imprint-color__swatch {
    border: 1px solid #cfd8e3;
    border-radius: 3px;
    display: inline-block;
    height: 28px;
    width: 28px;
}

.ps-imprint-color__remove {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #111 !important;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 0.25rem !important;
}

.ps-imprint-modal button.ps-imprint-link,
.ps-imprint-modal .ps-imprint-link,
.ps-imprint-modal label.ps-imprint-link {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #1d6fd8 !important;
    cursor: pointer;
    display: inline-flex !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    letter-spacing: normal !important;
    line-height: 1.4 !important;
    margin: 0.15rem 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    outline: none !important;
    padding: 0 !important;
    text-align: left !important;
    text-decoration: underline !important;
    text-transform: none !important;
    width: auto !important;
}

.ps-imprint-modal button.ps-imprint-link:hover,
.ps-imprint-modal button.ps-imprint-link:focus,
.ps-imprint-modal button.ps-imprint-link:active,
.ps-imprint-modal .ps-imprint-link:hover,
.ps-imprint-modal .ps-imprint-link:focus {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #0b4ea2 !important;
    text-decoration: underline !important;
}

.ps-imprint-modal .ps-imprint-add-location {
    margin: 0.15rem 0 0 !important;
}

.ps-imprint-artwork {
    border-top: 1px solid #e5e7eb;
    margin-top: 0.85rem;
    padding-top: 0.75rem;
}

.ps-imprint-upload {
    align-items: center;
    display: inline-flex !important;
    gap: 0.4rem;
}

.ps-imprint-upload__name {
    color: #6b7280 !important;
    text-decoration: none !important;
}

.ps-imprint-modal__footer {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    justify-content: space-between;
    padding: 0.35rem 1rem 0.85rem;
}

.ps-imprint-modal__footer-actions {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}

.ps-imprint-modal button.ps-imprint-modal__done,
.ps-imprint-modal .ps-imprint-modal__done {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: #163a66 !important;
    background-color: #163a66 !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    color: #fff !important;
    cursor: pointer;
    display: inline-flex !important;
    flex: 0 0 auto;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
    line-height: 1.2 !important;
    margin: 0 0 0 auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    outline: none !important;
    padding: 0.7rem 1.25rem !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: none !important;
    white-space: nowrap;
}

.ps-imprint-modal button.ps-imprint-modal__done:hover,
.ps-imprint-modal button.ps-imprint-modal__done:focus,
.ps-imprint-modal button.ps-imprint-modal__done:active {
    background: #0f2c4f !important;
    background-color: #0f2c4f !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #fff !important;
}

body.ps-imprint-modal-open {
    overflow: hidden;
}

/* Pricing Summary heading: same look as the other section headings. */
.ps-config__totals .ps-config__summary-title {
    background: #f3f4f6 !important;
    border: 0 !important;
    color: #374151 !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.3 !important;
    margin: 0 0 0.55rem !important;
    padding: 0.7rem 1rem !important;
    text-transform: uppercase !important;
}

/* ===== Imprint colour picker with swatches (client request) ===== */
.ps-imprint-color-row {
    grid-template-columns: 1fr auto;
}
.ps-imprint-color-row .ps-imprint-color__swatch,
.ps-imprint-color-row .ps-imprint-color__select--native {
    display: none !important;
}
.ps-cpick {
    position: relative;
    width: 100%;
}
.ps-cpick__button {
    align-items: center;
    background: #fff;
    border: 1px solid #cfd8e3;
    border-radius: 4px;
    color: #1f2937;
    cursor: pointer;
    display: flex;
    font-size: 14px;
    gap: 0.6rem;
    padding: 0.55rem 2rem 0.55rem 0.65rem;
    position: relative;
    text-align: left;
    width: 100%;
}
.ps-cpick__button::after {
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #374151;
    content: "";
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
}
.ps-cpick__button:hover,
.ps-cpick__button:focus {
    background: #fff;
    border-color: #2563eb;
    color: #1f2937;
}
.ps-cpick__text--placeholder {
    color: #6b7280;
}
.ps-cpick__dot {
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 3px;
    display: inline-block;
    flex: 0 0 auto;
    height: 20px;
    width: 20px;
}
.ps-cpick__list {
    background: #fff;
    border: 1px solid #cfd8e3;
    border-radius: 6px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.15);
    left: 0;
    list-style: none;
    margin: 4px 0 0;
    max-height: 280px;
    overflow-y: auto;
    padding: 4px;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 50;
}
.ps-cpick__list[hidden] {
    display: none;
}
.ps-cpick__option {
    align-items: center;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    font-size: 14px;
    gap: 0.6rem;
    margin: 0;
    padding: 0.4rem 0.5rem;
}
.ps-cpick__option:hover,
.ps-cpick__option.is-selected {
    background: #eff6ff;
}

/* DTF = always full colour */
.ps-imprint-dtf-note__value {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #cfd8e3;
    border-radius: 4px;
    color: #1f2937;
    display: flex;
    font-size: 14px;
    gap: 0.6rem;
    padding: 0.55rem 0.65rem;
}
.ps-imprint-dtf-note__swatch {
    background: conic-gradient(#ef4444, #f59e0b, #eab308, #22c55e, #06b6d4, #3b82f6, #8b5cf6, #ec4899, #ef4444);
    border-radius: 50%;
    display: inline-block;
    height: 20px;
    width: 20px;
}

/* Colour picker button: override theme/Elementor button styles (pink border/text, padding, width). */
.ps-imprint-modal .ps-cpick,
.ps-config .ps-cpick {
    display: block !important;
    width: 100% !important;
}
.ps-imprint-modal .ps-cpick button.ps-cpick__button,
.ps-imprint-modal .ps-cpick button.ps-cpick__button:hover,
.ps-imprint-modal .ps-cpick button.ps-cpick__button:focus,
.ps-imprint-modal .ps-cpick button.ps-cpick__button:active,
.ps-imprint-modal .ps-cpick button.ps-cpick__button[aria-expanded="true"] {
    align-items: center !important;
    background: #ffffff !important;
    border: 1px solid #cfd8e3 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    color: #1f2937 !important;
    display: flex !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    gap: 10px !important;
    justify-content: flex-start !important;
    letter-spacing: normal !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    min-height: 42px !important;
    padding: 8px 36px 8px 10px !important;
    text-align: left !important;
    text-decoration: none !important;
    text-transform: none !important;
    width: 100% !important;
}
.ps-imprint-modal .ps-cpick button.ps-cpick__button:hover,
.ps-imprint-modal .ps-cpick button.ps-cpick__button:focus,
.ps-imprint-modal .ps-cpick button.ps-cpick__button[aria-expanded="true"] {
    border-color: #2563eb !important;
    outline: none !important;
}
.ps-imprint-modal .ps-cpick button.ps-cpick__button::after {
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #374151;
    content: "" !important;
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
}
.ps-imprint-modal .ps-cpick button.ps-cpick__button[aria-expanded="true"]::after {
    transform: translateY(-50%) rotate(180deg);
}
.ps-imprint-modal .ps-cpick .ps-cpick__text {
    color: #1f2937 !important;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ps-imprint-modal .ps-cpick .ps-cpick__text--placeholder {
    color: #6b7280 !important;
}
.ps-imprint-modal .ps-cpick .ps-cpick__dot {
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    flex: 0 0 22px;
    height: 22px;
    width: 22px;
}
.ps-imprint-modal .ps-cpick__option {
    color: #1f2937;
}

/* ===== Add Personalization (embroidery names/titles) ===== */
.ps-personalize {
    border-top: 1px solid #e5e7eb;
    margin-top: 12px;
    padding-top: 12px;
}
.ps-personalize[hidden],
.ps-personalize__panel[hidden],
.ps-fonts-modal[hidden] {
    display: none !important;
}
.ps-personalize__toggle {
    align-items: center;
    cursor: pointer;
    display: flex;
    font-size: 15px;
    font-weight: 600;
    gap: 8px;
}
.ps-personalize__price {
    color: #6b7280;
    font-size: 13px;
    font-weight: 400;
}
.ps-personalize__panel {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    margin-top: 10px;
    padding: 14px 16px;
}
.ps-personalize__title {
    color: #1e3a5f;
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 12px;
}
.ps-personalize__field {
    display: block;
    margin: 0 0 12px;
}
.ps-personalize__label {
    color: #111827;
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
}
.ps-personalize__label em {
    color: #dc2626;
    font-style: normal;
}
.ps-personalize__font {
    background: #fff;
    border: 1px solid #cfd8e3;
    border-radius: 4px;
    font-size: 14px;
    padding: 8px 10px;
    width: 100%;
}
.ps-personalize__hint,
.ps-personalize__note {
    color: #4b5563;
    font-size: 13px;
    margin: -6px 0 12px;
}
.ps-personalize__note {
    margin: 0 0 8px;
}
.ps-personalize__fonts-link {
    color: #2563eb;
    text-decoration: underline;
}
.ps-personalize__colors {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ps-personalize__color {
    align-items: center;
    background: #fff;
    border: 1px solid #cfd8e3;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    font-size: 14px;
    gap: 8px;
    padding: 6px 12px 6px 8px;
}
.ps-personalize__color input {
    margin: 0;
}
.ps-personalize__color:has(input:checked) {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}
.ps-personalize__swatch {
    border: 1px solid rgba(0, 0, 0, 0.25);
    border-radius: 4px;
    display: inline-block;
    height: 20px;
    width: 20px;
}
.ps-personalize__upload {
    cursor: pointer;
}
.ps-personalize__file-name,
.ps-imprint-upload__name {
    color: #374151;
    font-size: 13px;
}

/* Fonts preview modal */
.ps-fonts-modal {
    inset: 0;
    position: fixed;
    z-index: 2147483641;
}
.ps-fonts-modal__backdrop {
    background: rgba(15, 23, 42, 0.55);
    inset: 0;
    position: absolute;
}
.ps-fonts-modal__dialog {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.3);
    left: 50%;
    max-height: 90vh;
    max-width: min(960px, calc(100vw - 32px));
    overflow: auto;
    padding: 18px 20px 20px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
}
.ps-fonts-modal__header {
    align-items: center;
    display: flex;
    justify-content: space-between;
}
.ps-fonts-modal__header h3 {
    color: #1e3a5f;
    font-size: 20px;
    margin: 0;
}
.ps-fonts-modal .ps-fonts-modal__close,
.ps-fonts-modal .ps-fonts-modal__close:hover {
    background: transparent !important;
    border: 0 !important;
    color: #374151 !important;
    cursor: pointer;
    font-size: 26px !important;
    line-height: 1 !important;
    padding: 0 4px !important;
}
.ps-fonts-modal__intro {
    color: #4b5563;
    font-size: 14px;
    margin: 6px 0 14px;
}
.ps-fonts-modal__img {
    display: block;
    height: auto;
    width: 100%;
}

/* Personalization: override theme heading/link sizes */
.ps-config .ps-personalize h4.ps-personalize__title,
.ps-personalize h4.ps-personalize__title {
    color: #1e3a5f !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
    line-height: 1.3 !important;
    margin: 0 0 12px !important;
    text-transform: none !important;
}
.ps-personalize .ps-personalize__hint,
.ps-personalize .ps-personalize__hint a.ps-personalize__fonts-link {
    font-size: 13px !important;
    line-height: 1.4 !important;
}
.ps-personalize .ps-personalize__upload,
.ps-personalize .ps-personalize__upload span {
    font-size: 14px !important;
}
.ps-personalize .ps-personalize__upload {
    color: #2563eb !important;
    text-decoration: underline;
}

/* Personalization title = same look as "PRICING SUMMARY" header */
.ps-config .ps-personalize h4.ps-personalize__title,
.ps-personalize h4.ps-personalize__title {
    background: #f3f4f6 !important;
    border: 0 !important;
    border-radius: 8px 8px 0 0 !important;
    color: #374151 !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.3 !important;
    margin: -14px -16px 14px !important;
    padding: 0.7rem 1rem !important;
    text-transform: uppercase !important;
}
.ps-personalize .ps-personalize__panel {
    background: #ffffff;
    overflow: hidden;
}

/* Fallback list when the embroidery fonts image is not present on the server. */
.ps-fonts-modal__list {
    columns: 2;
    font-size: 14px;
    line-height: 1.8;
    margin: 0.5rem 0 0;
    padding-left: 1.2rem;
}

/* "Download Template" link below "Attach File" (same look). */
.ps-personalize .ps-personalize__template,
.ps-personalize .ps-personalize__template span {
    font-size: 14px !important;
}
.ps-personalize .ps-personalize__template {
    color: #2563eb !important;
    display: table;
    margin-top: 0.5rem;
    text-decoration: underline;
}

/* Numbered step bars on apparel product pages (1 Select Color, 2 Select Quantity, ...). */
.ps-config .ps-step {
    align-items: center;
    background: #e5e7eb;
    border-radius: 4px;
    display: flex;
    gap: 0.6rem;
    margin: 0 0 0.85rem;
    min-height: 38px;
    overflow: hidden;
}
.ps-config .ps-step__num {
    align-items: center;
    align-self: stretch;
    background: #1e3a64;
    color: #ffffff;
    display: flex;
    flex: 0 0 38px;
    font-size: 15px;
    font-weight: 700;
    justify-content: center;
    line-height: 1;
}
.ps-config .ps-step__label {
    color: #1e3a64;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    padding: 0.5rem 0.75rem 0.5rem 0;
}

.ps-config__size-upcharge {
    color: #4b5563;
    font-size: 13px;
    margin: 0.5rem 0 1rem;
}

.ps-config__size-upcharge[hidden] {
    display: none;
}

.ps-config__size-group {
    color: #6b7280;
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-top: 2px;
}

/* Option of the selected printing way (colours / stitches / positions). */
.ps-config__variant {
    margin: 0 0 1.1rem;
}

.ps-config__variant[hidden] {
    display: none;
}

.ps-config__variant-label {
    color: #374151;
    display: block;
    font-size: 14px;
    margin: 0 0 0.35rem;
}

.ps-config__variant-select {
    border: 1px solid #d1d5db;
    border-radius: 6px;
    max-width: 420px;
    padding: 0.6rem 0.9rem;
    width: 100%;
}

/* Auto-numbered steps (non-apparel): hidden steps, e.g. the imprint step on "Blank", are skipped. */
.ps-config {
    counter-reset: ps-step;
}
.ps-config .ps-step--auto {
    counter-increment: ps-step;
}
.ps-config .ps-step--auto .ps-step__num::before {
    content: counter(ps-step);
}
.ps-config .ps-config__imprint[hidden] {
    display: none;
}
.ps-config .ps-config__imprint-row {
    margin-bottom: 0.85rem;
}
