/* New Print Service Page CSS */
.new-print-page .nps_back_btn {
    border: 1px solid rgba(0, 0, 0, .125) !important;
}

.new-print-page .main-content-area {
    border: 1px solid rgba(0, 0, 0, .125);
    padding: 12px;
    border-radius: 8px;
}

.new-print-page .print-material-card {
    background: #F5FBF8;
    border: 1px solid #8FD4A9;
    border-radius: 4px;
    padding: 12px;
}

.print-material-card .change-wound-btn,
.print-material-card .change-coresize-btn,
.change-material-button {
    padding: 0;
    margin: 0;
    background: 0;
    border: 0;
    font-weight: 700;
    color: #006295;
}

.print-material-card .change-wound-btn:hover,
.print-material-card .change-coresize-btn:hover,
.change-material-button:hover {
    text-decoration: underline;
}

.new-print-roll-modal .new-print-modal-close {
    background: none;
    padding: 0;
    color: #333;
    width: 42px;
    height: 42px;
    opacity: 1;
}

.new-print-option-card {
    background-color: white;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    padding: 8px;
    transition: all ease .3s;
}

.new-print-option-card:hover {
    border: 1px solid #17a64d;
}

.new-print-roll-modal .modal-header {
    padding: 12px;
    padding-bottom: 0;
    border: 0;
}

.new-print-roll-modal .modal-body {
    padding: 12px;
}

#infoPopupModal.new-print-roll-modal .modal-dialog {
    max-width: 450px !important;
}

.printing-process-wrapper {
    gap: 48px;
}

.new-printing-process-inputs {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.printing-process-parent,
.print-process-child {
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    padding: 12px;
    transition: all ease .3s;
}

.printing-process-parent:hover,
.print-process-child:hover {
    border-color: #8FD4A9;
}

.print-process-child {
    flex: 1;
}

.printing-process-parent img {
    width: 70px;
    height: 70px;
}

.new-printing-process-card p {
    margin-bottom: 0;
}

.printing-process-parent.activated,
.print-process-child.activated {
    background-color: #F5FBF8 !important;
}

/* Sheet quality switch (Standard / Premium) — same pill style as the
   delivery section's mode switch, under its own class names so the
   delivery JS handlers don't pick these buttons up. */
.new-print-sheet-quality-switch {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 28px;
    background: #fff;
    width: fit-content;
}

.new-print-sheet-quality-mode {
    min-height: 42px;
    min-width: 150px;
    padding: 8px 16px;
    border: 0;
    border-radius: 24px;
    color: #1d2b3a;
    font: inherit;
    font-weight: 600;
    background: transparent;
    transition: all ease .3s;
}

.new-print-sheet-quality-mode.active {
    color: #fff;
    background: #333;
}

.new-print-sheet-quality-price {
    font-weight: 500;
}

@media (max-width: 767px) {
    .new-print-sheet-quality-switch {
        width: 100%;
    }

    .new-print-sheet-quality-mode {
        flex: 1;
        min-width: 0;
        padding-left: 12px;
        padding-right: 12px;
    }

    .new-print-sheet-standard-processes,
    .new-print-sheet-premium-processes {
        flex-direction: column;
        gap: 16px;
    }
}

.new-print-finishing-grid {
    --bs-gutter-x: 48px;
    --bs-gutter-y: 0;
    margin-left: -24px;
    margin-right: -24px;
    row-gap: 24px;
}

.new-print-finishing-grid>.has-finishes,
.new-print-finishing-grid>.new-print-label-application-card {
    width: 33.333333%;
    max-width: 33.333333%;
    flex: 0 0 33.333333%;
    padding-left: 24px;
    padding-right: 24px;
    margin-bottom: 0 !important;
}

.new-print-finishing-grid>.new-print-label-application-card {
    width: 50%;
    max-width: 50%;
    flex-basis: 50%;
}

.new-print-finish-card {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 8px 12px;
    text-align: left;
    color: #1d2b3a;
    font-size: 14px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    cursor: pointer;
    transition: all ease .3s;
}

button.new-print-finish-card {
    font: inherit;
}

.new-print-finish-card:hover {
    border-color: #8FD4A9;
}

.new-print-finish-card.active-green-bg,
.new-print-finish-card.activated {
    background-color: #F5FBF8 !important;
    border-color: #8FD4A9;
}

.new-print-finish-card img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    flex: 0 0 48px;
    border-radius: 4px;
}

.new-print-finish-copy {
    min-width: 0;
}

.new-print-finish-copy h6 {
    color: #1d2b3a;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.25;
}

.new-print-finish-price {
    color: #1d2b3a;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
}

.new-print-application-option:focus {
    border-color: #8FD4A9 !important;
}

.new-print-delivery-section {
    color: #1d2b3a;
    font-size: 14px;
}

.new-print-delivery-toolbar {
    display: flex;
    align-items: stretch;
    /* flex-direction: column; */
    gap: 12px;
    margin-bottom: 24px;
}

.review-order-delivery-service-container .new-print-delivery-toolbar {
    flex-direction: column;
    gap: 24px;
}

.new-print-delivery-toolbar-row {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.review-order-delivery-service-container .new-print-delivery-toolbar-row {
    flex-grow: 1;
    gap: 16px;
}

.new-print-delivery-mode-switch,
.new-print-delivery-courier-switch {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 28px;
    background: #fff;
    width: fit-content;
}

.new-print-delivery-mode,
.new-print-delivery-courier {
    min-height: 36px;
    min-width: 103px;
    padding: 8px 16px;
    border: 0;
    border-radius: 24px;
    color: #333;
    font: inherit;
    font-weight: 600;
    background: transparent;
    transition: all ease .3s;
}
.review-order-delivery-modal .new-print-delivery-mode, .review-order-delivery-modal .new-print-delivery-courier {
      min-width: 108px !important;
}

.review-order-delivery-modal .new-print-delivery-mode,
.review-order-delivery-modal .new-print-delivery-courier {
    min-height: 36px;
    padding: 6px 12px;
}

.new-print-delivery-mode.active,
.new-print-delivery-courier.active {
    color: #fff;
    background: #333;
}

.new-print-delivery-courier.is-disabled {
    color: #8c96a3;
    pointer-events: none;
}

.new-print-delivery-search {
    display: flex;
    align-items: center;
    gap: 12px;
}

.new-print-delivery-country,
.new-print-delivery-postcode,
.new-print-delivery-search-btn {
    min-height: 42px;
    padding: 10px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    color: #333;
    font: inherit;
    background-color: #fff;
}

.review-order-delivery-service-container .new-print-delivery-country {
    min-height: 42px;
}

.new-print-delivery-country {
    max-width: 152px;
    padding-right: 28px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='%231d2b3a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 5.75L8 10.25l4.5-4.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 4px center;
    background-size: 18px 18px;
}

.new-print-delivery-country::-ms-expand {
    display: none;
}

.new-print-delivery-postcode,
.new-print-delivery-search-btn {
    width: 100px;
}

.review-order-delivery-service-container .new-print-delivery-postcode,
.review-order-delivery-service-container .new-print-delivery-search-btn {
    width: 142px;
    border-radius: 4px;
    min-height: 42px;
}

.new-print-delivery-search-btn {
    font-weight: 600;
    color: #fff;
    background-color: #333;
    transition: all ease .1s;
}

.review-order-delivery-service-container .new-print-delivery-search-btn {
    color: #333;
    background-color: white;
    border: 1px solid rgba(0, 0, 0, .125) !important;
    border-radius: 4px;
    font-weight: 500;
    }

.review-order-delivery-service-container .new-print-delivery-search-btn:hover {
    background-color: #333;
    color: white;
}

.new-print-delivery-mainland-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 8px;
    border: none;
    background-color: #fff;
    color: #333;
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}

.new-print-delivery-mainland-btn::after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='%231d2b3a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 5.75L8 10.25l4.5-4.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}

.review-order-delivery-service-container .new-print-delivery-mainland-btn {
    min-height: 42px;
}

.new-print-delivery-mainland-btn .fa {
    display: none;
}

.new-print-delivery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 48px;
}

.new-print-delivery-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.new-print-delivery-card-select,
.new-print-delivery-card-collection,
.new-print-delivery-suboption {
    width: 100%;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    color: #333;
    font: inherit;
    text-align: left;
    background: #fff;
    transition: all ease .3s;
}

.new-print-delivery-card-select,
.new-print-delivery-card-collection {
    padding: 8px 12px;
}

.new-print-delivery-card-select:hover,
.new-print-delivery-card-select.is-active,
.new-print-delivery-card-select.has-active-child,
.new-print-delivery-card-collection:hover,
.new-print-delivery-card-collection.is-active,
.new-print-delivery-suboption:hover,
.new-print-delivery-suboption.is-active {
    border-color: #8FD4A9 !important;
    background-color: #F5FBF8 !important;
}

.new-print-delivery-card-select.is-disabled,
.new-print-delivery-card-collection.is-disabled,
.new-print-delivery-suboption.is-disabled {
    cursor: not-allowed;
}

.new-print-delivery-card-select.is-disabled:hover,
.new-print-delivery-card-collection.is-disabled:hover,
.new-print-delivery-suboption.is-disabled:hover {
    border-color: rgba(0, 0, 0, .125);
    background-color: #f8f9fb;
}

.new-print-delivery-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.new-print-delivery-suboption {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 52px;
}

.new-print-delivery-card-title {
    font-size: 16px;
    font-weight: 600;
}

.new-print-delivery-card-price {
    font-size: 15px;
    font-weight: 500;
}

.new-print-delivery-suboption-title,
.new-print-delivery-suboption-price {
    font-weight: 500;
}

.new-print-delivery-card-copy,
.new-print-delivery-card-subtitle {
    display: block;
    margin-top: 8px;
    line-height: 1.45;
}

.new-print-delivery-time-badge {
    display: inline-block;
    padding: 1px 5px;
    margin-right: 3px;
    border-radius: 3px;
    color: #fff;
    font-weight: 700;
    background: #1aa74f;
}

.new-print-delivery-suboptions {
    display: flex;
    gap: 8px;
}

.new-print-delivery-suboption {
    padding: 4px 10px;
}

.new-print-delivery-suboption.is-active {
    align-items: center;
    justify-content: center;
}

.new-print-delivery-status {
    margin-bottom: 16px;
    padding: 10px 12px;
    border-radius: 4px;
    background: #F5FBF8;
}

.new-print-delivery-help {
    line-height: 1.45;
}

/* .review-order-delivery-service-container .new-print-delivery-help {
    max-width: 572px;
} */

.new-print-delivery-section.is-loading .new-print-delivery-grid {
    min-height: 120px;
    opacity: .45;
    pointer-events: none;
}

.new-print-delivery-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 24px;
}

.new-print-delivery-action-cta-wrapper {
    display: none;
}

.review-order-delivery-service-container .new-print-delivery-action-cta-wrapper {
    display: flex;
    align-items: center;
    gap: 16px;
}

.review-order-delivery-service-container .new-print-deliery-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.new-print-delivery-action-cta {
    width: 156px;
    height: 42px;
    font-weight: 500 !important;
    transition: all ease .1s;
}

.new-print-delivery-action-cta-cancel {
    background: white;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 4px;
}

.new-print-delivery-action-cta-cancel:hover {
    background: #333;
    color: #fff;
}

.new-print-delivery-action-cta-save {
    background: #333;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 4px;
    color: #fff;
}

.new-print-delivery-action-cta-save:hover {
    background: #006EA1;
}

/* Review "Product Summary" delivery editor modal */
.review-order-delivery-modal .modal-dialog {
    max-width: 880 !important;
}

.review-order-delivery-modal .modal-header {
    align-items: center;
}

.review-order-delivery-modal .review-order-delivery-modal-close {
    font-size: 18px;
    line-height: 1;
}

/* The modal chrome already frames the editor — drop the inline box styling. */
.review-order-delivery-modal .review-order-delivery-service-container {
    border: 0;
    padding: 0;
}

/* Material selection modal — fade + disable while a price calc is in
   flight, mirroring the delivery section's loading state. */
.printing-material-selection-modal.is-loading .modal-body {
    opacity: .45;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.new-printing-cart {
    background-color: #F5FBF8 !important;
    border: 1px solid #8FD4A9;
    border-radius: 4px;
}

/* ------------------------------------------------------------------
 * New cart summary — unified typography
 * Everything inside .new-printing-cart renders at 15px / weight 400,
 * with Bootstrap's .fw-bold overridden so hierarchy comes from layout
 * and color, not weight.
 * ------------------------------------------------------------------ */
.new-printing-cart,
.new-printing-cart * {
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
}

/* Bold-out the price values in the right column of each line + the grand total. */
.new-printing-cart .details .row.g-0 .text-end .detail-text,
.new-printing-cart .new-cart-line-final,
.new-printing-cart .new-cart-total-value {
    font-weight: 700 !important;
}

.new-printing-cart .card-header {
    background-color: #DEF2E5;
    color: #1d2b3a;
    padding: 10px 14px;
    border: none;
    border-radius: 4px 6px 0 0;
}

.new-printing-cart .new-cart-title {
    margin-bottom: 0;
    line-height: 1.35;
}

/* ---- Unified vertical rhythm: 12px between major sections, 6px between line items. ---- */
.new-printing-cart .new-cart-qty-wrapper {
    margin: 0 0 16px;
    position: relative;
}

.new-printing-cart .details.rafat {
    margin: 0 0 12px !important;
}

.new-printing-cart .new-cart-cta-wrap {
    margin: 0 !important;
}

.new-printing-cart .new-cart-qty-input,
.plainsheet-input {
    height: 44px;
    border: 1px solid rgba(0, 0, 0, .15);
    background: #fff;
    color: #1d2b3a;
    padding: 8px 12px;
    font-size: 15px;
    border-radius: 0;
}

.new-printing-cart .new-cart-qty-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    min-height: 44px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .15);
}

/* Sheets/Labels toggle adds a fourth cell between the input and the Select
   pill. Same three-column shape everywhere else — only present on sheet pages
   where .has-sheet-unit-toggle is applied. */
.new-printing-cart .new-cart-qty-control.has-sheet-unit-toggle {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
}

.new-printing-cart .new-cart-qty-unit {
    padding: 0 10px;
    border-left: 1px solid rgba(0, 0, 0, .15);
    height: 42px;
    display: flex;
    align-items: center;
}

.new-printing-cart .new-cart-qty-unit-toggle {
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #1d2b3a;
    text-decoration: none;
    line-height: 1;
    white-space: nowrap;
    background: transparent;
    border: 0;
    padding: 0 4px;
}

.new-printing-cart .new-cart-qty-unit-toggle:hover,
.new-printing-cart .new-cart-qty-unit-toggle:focus {
    color: #0c86cc;
    text-decoration: none;
    outline: none;
}

.new-printing-cart .new-cart-qty-unit-toggle .caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 6px;
    border-top: 5px solid currentColor;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    vertical-align: middle;
}

.new-printing-cart .new-cart-qty-unit-menu {
    min-width: 130px;
    font-size: 14px;
}

.new-printing-cart .new-cart-qty-unit-menu .dropdown-item {
    padding: 6px 12px;
}

.new-printing-cart .new-cart-qty-unit-menu .dropdown-item.selected {
    background: #f5fbf8;
    color: #1d2b3a;
    font-weight: 600;
}

.new-printing-cart .new-cart-qty-control:focus-within {
    border-color: #8FD4A9;
    box-shadow: 0 0 0 0.15rem rgba(143, 212, 169, .25);
}

.new-printing-cart .new-cart-qty-control .new-cart-qty-input,
.new-printing-cart .new-cart-qty-control .new-cart-qty-input:focus {
    height: 42px;
    border: 0 !important;
    box-shadow: none;
}

.new-printing-cart .new-cart-qty-select {
    border: 0;
    background: transparent;
    white-space: nowrap;
    position: absolute;
    right: 45%;
    top: 29%;
    z-index: 99999;
    color: #0c86cc;
    text-decoration: underline;
    cursor: pointer;
}

.new-printing-cart .new-cart-qty-current-price {
    position: absolute;
    top: 33%;
    right: 3%;
    color: #333;
    white-space: nowrap;
}

.plainsheet-input:focus,
.new-printing-cart .new-cart-qty-input:focus {
    border-color: #8FD4A9 !important;
    box-shadow: 0 0 0 0.15rem rgba(143, 212, 169, .25);
}

.new-printing-cart .new-cart-qty-input:disabled {
    background: #eef1f3;
    color: #687481;
    cursor: not-allowed;
    opacity: 1;
}

.material-container .plainsheet-input:disabled {
    background: #eef1f3;
    color: #687481;
    cursor: not-allowed;
    opacity: 1;
}

.new-printing-cart .new-cart-qty-wrapper.is-loading .new-cart-qty-input {
    padding-right: 40px;
}

.new-printing-cart .new-cart-qty-wrapper.is-loading::after {
    content: "";
    position: absolute;
    top: 14px;
    right: 14px;
    width: 16px;
    height: 16px;
    border: 2px solid #d3d9de;
    border-top-color: #1d2b3a;
    border-radius: 50%;
    animation: new-cart-qty-spin .7s linear infinite;
}

.new-printing-cart .new-cart-qty-wrapper.breakpoints-sheet-loader.is-loading::after {
    right: 26% !important;
}

@keyframes new-cart-qty-spin {
    to {
        transform: rotate(360deg);
    }
}

.new-printing-cart .new-cart-qty-breaks {
    position: absolute;
    z-index: 1060;
    top: calc(100% + 4px);
    left: 0;
    width: 100%;
    max-height: 230px;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
    background: #fff;
    border: 1px solid #d8dde2;
    box-shadow: 0 8px 20px rgba(29, 43, 58, .14);
}

.new-printing-cart .new-cart-qty-breaks li+li {
    border-top: 1px solid #e5e8eb;
}

.new-printing-cart .new-cart-qty-break {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    width: 100%;
    padding: 12px 8px;
    border: 0;
    background: #fff;
    color: #333;
    text-align: left;
}

.new-printing-cart .new-cart-qty-break:hover,
.new-printing-cart .new-cart-qty-break:focus {
    background: #f3faf6;
    outline: 0;
}

.new-printing-cart .new-cart-qty-break-quantity,
.new-printing-cart .new-cart-qty-break-price {
    align-self: center;
    font-size: 13px;
}

.new-printing-cart .new-cart-qty-break-quantity {
    color: rgb(73, 80, 87);
}

.new-printing-cart .new-cart-qty-break-price,
.new-printing-cart .new-cart-qty-break-original {
    text-align: right;
}

.new-printing-cart .new-cart-qty-break-price {
    grid-column: 2;
    grid-row: 1;
    font-weight: 700;
}

.new-printing-cart .new-cart-qty-break-saving {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    padding: 4px 6px;
    border-radius: 3px;
    background: #2daf65;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.new-printing-cart .new-cart-qty-break-original {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    color: #333;
    font-size: 13px;
    text-decoration: line-through;
}

.new-printing-cart .new-cart-qty-input::-webkit-outer-spin-button,
.new-printing-cart .new-cart-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.new-printing-cart .new-cart-qty-input[type="number"] {
    -moz-appearance: textfield;
}

.printing-material-selection-modal .new-print-material-qty-wrapper {
    position: relative;
}

.printing-material-selection-modal .new-print-material-qty-wrapper .plainsheet-input {
    width: 100%;
}

.printing-material-selection-modal .new-print-material-qty-select {
    border: 0;
    background: transparent;
    white-space: nowrap;
    position: absolute;
    right: 45%;
    top: 50%;
    z-index: 1061;
    color: #0c86cc;
    text-decoration: underline;
    cursor: pointer;
    transform: translateY(-50%);
}

.printing-material-selection-modal .new-print-material-qty-current-price {
    position: absolute;
    top: 50%;
    right: 12px;
    z-index: 1061;
    color: #333;
    white-space: nowrap;
    transform: translateY(-50%);
}

.printing-material-selection-modal .new-print-material-qty-wrapper.has-sheet-unit-toggle .new-print-material-qty-select {
    right: 55%;
}

.printing-material-selection-modal .new-print-material-qty-wrapper.has-sheet-unit-toggle .new-print-material-qty-current-price {
    right: 26%;
}

.printing-material-selection-modal .new-print-material-qty-wrapper.is-loading .plainsheet-input {
    padding-right: 40px;
}

.printing-material-selection-modal .new-print-material-qty-wrapper.is-loading::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 14px;
    z-index: 1063;
    width: 16px;
    height: 16px;
    margin-top: -8px;
    border: 2px solid #d3d9de;
    border-top-color: #1d2b3a;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 4px #fff;
    animation: new-cart-qty-spin .7s linear infinite;
    pointer-events: none;
}

/* has-sheet-unit-toggle mode: input takes the left portion, then the
   Sheets/Labels dropdown on the right takes ~28-30%. Park the spinner just
   inside the input area so it doesn't sit under the dropdown border. */
.printing-material-selection-modal .new-print-material-qty-wrapper.has-sheet-unit-toggle.is-loading::after {
    right: calc(30% + 12px);
}

.printing-material-selection-modal .new-print-material-qty-breaks {
    position: absolute;
    z-index: 1060;
    top: calc(100% + 4px);
    left: 0;
    width: 100%;
    max-height: 230px;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
    background: #fff;
    border: 1px solid #d8dde2;
    box-shadow: 0 8px 20px rgba(29, 43, 58, .14);
}

.printing-material-selection-modal .new-print-material-qty-breaks li+li {
    border-top: 1px solid #e5e8eb;
}

.printing-material-selection-modal .new-print-material-qty-break {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    width: 100%;
    padding: 12px 8px;
    border: 0;
    background: #fff;
    color: #333;
    text-align: left;
}

.printing-material-selection-modal .new-print-material-qty-break:hover,
.printing-material-selection-modal .new-print-material-qty-break:focus {
    background: #f3faf6;
    outline: 0;
}

.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-quantity,
.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-price {
    align-self: center;
    font-size: 13px;
}

.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-quantity {
    color: rgb(73, 80, 87);
}

.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-price,
.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-original {
    text-align: right;
}

.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-price {
    font-weight: 700;
}

.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-saving {
    justify-self: start;
    padding: 4px 6px;
    border-radius: 3px;
    background: #2daf65;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.printing-material-selection-modal .new-print-material-qty-break .new-cart-qty-break-original {
    align-self: center;
    color: #333;
    font-size: 13px;
    text-decoration: line-through;
}

.new-printing-cart .details .row.g-0 {
    align-items: baseline;
    margin-bottom: 16px;
}

.new-printing-cart .details>.row.g-0:last-child {
    margin-bottom: 0;
}

.new-printing-cart .details .detail-text {
    color: #1d2b3a;
}

.new-cart-total-row {
    padding: 0;
    margin: 0 0 16px;
    gap: 16px;
}

.new-cart-total-title {
    color: #1d2b3a;
    font-size: 22px;
    line-height: 1.5;
}

.new-cart-total-delivery {
    color: #5a6573;
    margin-top: 2px;
}

.new-cart-total-value {
    color: #1d2b3a;
}

.new-cart-total-altvat {
    margin-top: 6px;
    font-size: 12px;
}

.new-cart-design-btn,
.new-cart-save-btn,
.new-review-order-btn {
    border-radius: 4px;
    padding: 12px 16px;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.new-cart-design-btn:not(.d-none) {
    display: flex !important;
}

.new-cart-design-btn.disabled,
.new-cart-design-btn:disabled {
    opacity: .55;
}

/* The legacy "edit qty" form is replaced by the always-visible .new-cart-qty-input.
   Force-hide it so other flows (e.g. artwork edit) can't re-display the duplicate
   inputs / "Lowest Price" banner / Save button inside the new cart layout. Its
   hidden inputs are still in the DOM so the existing JS continues to read from them. */
.new-printing-cart .save-qty-form {
    display: none !important;
}

/* Merged qty + labels-price row: "750 Printed Labels   20% Off  £116.01  £92.81" */
.new-cart-labels-row {
    margin-bottom: 16px !important;
}

.new-cart-labels-qty .detail-text {
    color: #1d2b3a;
}

.new-cart-discount-badge {
    color: #e0152d;
    text-transform: uppercase;
    letter-spacing: .2px;
}

.new-cart-line-final {
    color: #1d2b3a;
}

/* Promise pill: make the chevron rotate cleanly when expanded */
.new-printing-cart .promise-tag {
    transition: background .2s ease;
}

.new-printing-cart .promise-arrow {
    transition: transform .25s ease;
}

.new-printing-cart .promise-arrow.rotated_arrow {
    transform: rotate(-90deg);
}

.new-printing-cart .card-body-pallet {
    padding: 16px 12px 12px;
}

.new-cart-total-value {
    font-size: 28px;
}

.new-printing-cart .promise-wrapper {
    background: #fed7ad;
    border: 1px solid #fe9d35;
    border-radius: 14px;
    margin: 16px 0;
    padding: 4px 10px;
    text-align: center;
}

.new-printing-cart .promise-tag {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-right: 7px;
    font-size: 14px;
}

.new-printing-cart .promise-tag,
.new-printing-cart .promise-tag * {
    font-size: 14px;
}

.new-printing-cart .left-promise {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #333;
    user-select: none;
}

.new-printing-cart .promise-arrow {
    transform: rotate(90deg);
    transition: transform 0.3s ease;
    user-select: none;
}

.new-printing-cart .promise-arrow.rotated_arrow {
    transform: rotate(-90deg);
}

.new-printing-cart .promise-desc {
    display: none;
    margin: 4px 0 0;
    text-align: justify;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 400;
}

.activated {
    background-color: #F5FBF8 !important;
    border-color: #8FD4A9 !important;
}

.new-print-page-emb-modal .modal-header h2 {
    font-size: 20px;
    color: #2d3648;
}

.new-cancel-btn,
.new-apply-btn {
    min-width: 130px;
    height: 38px;
    font-size: 16px;
    font-weight: 400;
    transition: all ease .2s;
    border-radius: 4px;
}

.new-apply-btn {
    background-color: #333 !important;
    color: white;
}

.new-apply-btn:hover {
    background-color: #006EA1 !important;
    color: white;
}

.new-cancel-btn {
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 4px;;
}

.new-cancel-btn:hover {
    background-color: #333;
    color: white;
}

.new-print-page-emb-modal .modal-content {
    border: 2px solid #2d3648;
    border-radius: 10px;
    max-height: calc(100dvh - 110px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.new-print-page-emb-modal.modal {
    overflow: hidden !important;
}

.new-print-page-emb-modal.modal .modal-dialog {
    max-width: 960px;
}

.new-print-page-emb-modal .modal-header {
    position: sticky;
    top: 0;
    z-index: 5;
    background-color: #fff;
    transition: box-shadow .2s ease;
    border-bottom: 1px solid rgba(0, 0, 0, .125) !important;
    padding-left: 24px;
    padding-right: 24px;
}

.new-print-page-emb-modal .modal-header.is-stuck {
    box-shadow: 0 8px 18px rgba(45, 54, 72, .14);
}

.new-print-page-emb-modal .modal-body {
    overflow-y: auto;
    padding: 24px;
    padding-top: 16px !important;
    scrollbar-width: thin;
    scrollbar-color: #b7c0ce transparent;
}

.new-print-page-emb-modal .modal-body::-webkit-scrollbar {
    width: 6px;
}

.new-print-page-emb-modal .modal-body::-webkit-scrollbar-track {
    background: transparent;
}

.new-print-page-emb-modal .modal-body::-webkit-scrollbar-thumb {
    background-color: #b7c0ce;
    border-radius: 999px;
}

.new-print-page-emb-modal .modal-body > .row {
    row-gap: 24px;
}

.new-print-page-emb-modal .modal-body > .row > [class*="col-"] {
    margin-bottom: 0;
}

.new-print-page-emb-modal .new-emb-option + .new-emb-option {
    margin-top: 12px;
}

.printing-design-selection-modal .modal-dialog {
    margin: 0 0 0 auto;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    transform: translateX(100%);
    transition: transform 500ms ease-in-out;
}

.printing-design-selection-modal.show .modal-dialog {
    transform: translateX(0);
}

.printing-design-selection-modal .modal-content {
    height: 100vh;
    border: 0;
    border-radius: 0;
    position: relative;
}

.printing-material-selection-modal .modal-content {
    position: relative;
}

.printing-design-selection-modal .modal-body {
    overflow-y: auto;
    padding: 0px 24px 24px;
}

.printing-design-selection-modal .modal-header {
    padding: 24px 24px 0px;
}

.printing-design-selection-modal {
    padding-right: 0 !important;
}

.close-design-modal {
    font-size: 42px;
    line-height: 1;
}

.close-material-modal {
    font-size: 42px;
    line-height: 1;
}

.printing-design-selction-modal-heading {
    color: #2d3648;
    font-family: Open Sans;
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    text-align: left;
}

.new-print-design-help-wrap {
    position: relative;
}

.printing-design-selection-modal .adddesignquestion {
    display: flex;
    align-items: center;
    gap: 8px;
}

.printing-design-selection-modal .design-question-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    min-width: 24px;
    padding: 0;
    border: 1px solid #333;
    border-radius: 50%;
    background: transparent;
    color: #333;
    cursor: pointer;
    font-size: 16px;
    line-height: 22px;
}

.printing-design-selection-modal .new-print-design-info-popup {
    display: none;
    position: absolute;
    top: calc(-10% + 8px);
    left: 242px;
    width: min(560px, 100%);
    padding: 15px;
    border: 1px solid #ddd;
    background-color: #fff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, .2);
    z-index: 1065;
}

.printing-design-selection-modal .new-print-design-info-popup .popup-content {
    position: relative;
    padding-right: 20px;
}

.printing-design-selection-modal .new-print-design-info-popup h3 {
    margin-top: 0;
}

.printing-design-selection-modal .new-print-design-info-popup p {
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.5;
}

.printing-design-selection-modal .new-print-design-info-close {
    position: absolute;
    top: -10px;
    right: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #333;
    cursor: pointer;
    font-size: 31px;
    line-height: 1;
}

/* "About your design" modal — tabs + cart-summary layout.
   Don't set align-items: flex-start here — that would collapse the right
   column to the cart's height and the sticky cart would have nowhere to
   slide. Letting the row stretch (default) makes the right column match
   the tall left column, giving the sticky cart room to follow the scroll. */
.printing-design-selection-modal .new-print-design-modal-left {
    min-height: 60vh;
}

.printing-design-selection-modal .new-print-design-modal-right {
    align-self: stretch;
}

.printing-design-selection-modal .new-print-design-modal-right .new-print-design-cart-slot {
    position: sticky;
    top: 24px;
}

.printing-design-selection-modal .new-print-design-modal-right .new-print-design-cart-slot:empty::before {
    content: "";
    display: block;
    min-height: 200px;
    border: 1px dashed rgba(0, 0, 0, .15);
    border-radius: 4px;
}

/* When a child modal (e.g. login form, user-approved-design overlay) opens
   on top of the design-selection modal, dim its content so the layered
   modal stands out against the otherwise all-white background. */
.printing-design-selection-modal.has-child-modal .modal-content::before,
.printing-material-selection-modal.has-child-modal .modal-content::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .5);
    z-index: 100000;
    pointer-events: none;
}

.inhouse-design.new-print-creative-design-modal {
    z-index: 100110;
}

.printing-material-selection-modal.has-child-modal .material-container .price-col {
    z-index: 1 !important;
}

/* "About your design" modal — design lines (above the tabs).
   Two states per row, controlled by the existing .upload-design-section
   class added by the save handler:
     .upload-row                            → Open  (editing form)
     .upload-row.upload-design-section      → Saved (compact summary)
*/

.new-print-design-lines {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin: 0 0 24px;
}

.new-print-design-lines:empty {
    margin: 0;
}

.new-print-design-line {
    position: relative;
    width: 100%;
    padding: 18px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    background: #fff;
    transition: border-color .2s ease, background-color .2s ease;
}

.new-print-design-line .file-uploader {
    width: 100%;
}

.new-print-design-line.upload-design-section,
.new-print-design-line.is-saved {
    border-color: #8FD4A9;
    background-color: #F5FBF8;
}

/* Show/hide saved vs open child views based on the row state class. */
.new-print-design-line .new-print-design-line__saved { display: none; }
.new-print-design-line .new-print-design-line__open  { display: flex; }

.new-print-design-line.upload-design-section .new-print-design-line__saved,
.new-print-design-line.is-saved .new-print-design-line__saved { display: flex; }
.new-print-design-line.upload-design-section .new-print-design-line__open,
.new-print-design-line.is-saved .new-print-design-line__open  { display: none; }

/* ---- Saved view ------------------------------------------------- */
.new-print-design-line__saved {
    align-items: center;
    gap: 12px;
}

.new-print-design-line__saved .new-print-design-line__thumb {
    position: relative;
    flex: 0 0 152px;
    width: 100%;
    height: 62px;
    overflow: hidden;
    border-radius: 4px;
}

.new-print-design-thumb-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    height: 100%;
    min-height: 56px;
    padding: 6px 10px;
    border: 2px dashed rgba(0, 0, 0, .15);
    border-radius: 4px;
    background: transparent;
    color: #1d2b3a;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
}

.thumb-min-height {
    min-height: 118px;
}

.new-print-design-line__saved .new-img-artwork {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.new-print-design-line__saved .new-file-extention,
.new-print-design-file-preview .new-file-extention {
    position: absolute;
    top: 0;
    left: 0;
    padding: 2px 6px;
    border-radius: 3px;
    background: #2d3648;
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.3;
}

.new-print-design-file-preview {
    position: relative;
    width: 100%;
}

.new-print-line-file-upload {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 118px;
    min-height: 96px;
    padding: 12px;
    border: 2px dashed rgba(0, 0, 0, .15);
    border-radius: 4px;
    background: transparent;
    color: #d9534f;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
}

.new-print-design-line--sheet .new-print-line-file-upload {
    height: 130px;
}

.new-print-line-file-upload img {
    width: 34px;
    height: auto;
}

.new-print-design-line__summary {
    flex: 1 1 auto;
    color: #1d2b3a;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.45;
    min-width: 0;
    word-break: break-word;
}

/* ---- Actions column (used by both saved + open) ----------------- */
.new-print-design-line__open .new-print-design-line__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex: 0 0 210px;
    height: stretch;
    padding-left: 28px;
}

.new-print-design-line__saved .new-print-design-line__actions {
    display: flex;
    align-items: center;
    gap: 24px;
}

.new-print-design-save {
    width: 100%;
    height: 46px;
    border: 1px solid #2D3647;
    border-radius: 4px;
}

.new-print-design-save:hover,
.new-print-design-save:hover {
    background-color: #333;
    color: white;
    border-radius: 4px;
}

.new-print-design-line__actions img {
    height: 28px;
}

.new-print-design-line__actions .edit-file-new {
    padding: 0;
    border: 0;
    background: transparent;
    color: #006295;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.new-print-design-line__actions .edit-file-new:hover {
    text-decoration: underline;
}

.new-print-design-line__actions .artwork-comment:hover img,
.new-print-design-line__actions .delete-file:hover img {
    opacity: 1;
}

/* ---- Open view -------------------------------------------------- */
.new-print-design-line__open {
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
}

.new-print-design-line__open .new-print-design-line__thumb {
    flex: 0 0 152px;
    width: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.new-print-design-line__open .img-artwork {
    width: 100%;
    height: 96px !important;
    object-fit: cover;
    border-radius: 4px;
    max-width: none !important;
}

.new-print-design-line__open .img-after-remove,
.new-print-design-line__open .img-remove {
    color: #1d2b3a;
    font-size: 12px;
    text-decoration: underline;
    cursor: pointer;
}

.new-print-design-line__form {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: stretch;
    gap: 18px;
}

/* Field grid — 2 columns on roomy screens, stack on narrow */
.new-print-design-line__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.new-print-design-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
}

.new-print-design-field__label {
    color: #5a6573;
    font-size: 12px;
    font-weight: 500;
}

.new-print-design-field .form-control {
    height: 46px;
    padding: 14px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    font-size: 14px;
}

.new-print-design-field .form-control:focus {
    border-color: #8FD4A9;
    box-shadow: 0 0 0 .15rem rgba(143, 212, 169, .25);
    outline: 0;
}

/* Float-label pattern: input first, label after, label drifts up when the
   field has focus OR has content (uses placeholder=" " for the :placeholder-shown
   trick — empty placeholder still counts as "shown" while the value is empty). */
.new-print-design-field.has-float-label {
    position: relative;
    gap: 0;
}

.new-print-design-field.has-float-label > .form-control {
    width: 100%;
}

.new-print-design-field.has-float-label .new-print-design-field__label {
    position: absolute;
    top: 50%;
    left: 12px;
    transform: translateY(-50%);
    padding: 0 4px;
    background: #fff;
    color: #5a6573;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    pointer-events: none;
    transition: top .15s ease, font-size .15s ease, color .15s ease;
}

.new-print-design-field.has-float-label > .form-control:focus + .new-print-design-field__label,
.new-print-design-field.has-float-label > .form-control:not(:placeholder-shown) + .new-print-design-field__label {
    top: 0;
    font-size: 11px;
    font-weight: 600;
    color: #1d2b3a;
}

.new-print-artwork-alert {
    display: none;
    position: absolute !important;
    top: -32px !important;
    left: 0px !important;
    z-index: 100 !important;
    padding: 8px 10px !important;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
    white-space: nowrap;
}

.new-print-artwork-alert::before {
    content: "";
    position: absolute;
    bottom: -6px;
    right: 12px;
    width: 10px;
    height: 10px;
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    background: #fff;
    transform: rotate(45deg);
}

.new-print-artwork-alert .tooltip-arrow {
    display: none;
}

@media screen and (max-width: 767px) {
    .new-print-artwork-alert {
        top: -40px !important;
        left: 0 !important;
    }
}

/* Disabled fields keep the floated label so the value stays readable. */
.new-print-design-field.has-float-label > .form-control:disabled {
    background: #fff;
    color: #1d2b3a;
}

.new-print-design-labels-field .form-control {
    padding-right: 42px;
}

.new-print-design-calc-spinner {
    position: absolute;
    top: 50% !important;
    right: 14px;
    left: auto !important;
    width: 16px;
    height: 16px;
    display: none;
    border: 2px solid #d7dce2;
    border-top-color: #1d2b3a;
    border-radius: 50%;
    transform: translateY(-50%);
    animation: new-print-design-spin .6s linear infinite;
    pointer-events: none;
}

@keyframes new-print-design-spin {
    to {
        transform: translateY(-50%) rotate(360deg);
    }
}

.new-print-design-field.has-inline-action .form-control {
    padding-right: 74px;
}

.new-print-design-lpr-action {
    position: absolute;
    top: 50%;
    right: 12px;
    z-index: 2;
    padding: 2px 0;
    border: 0;
    background: transparent;
    color: #0073ae;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    text-decoration: underline;
    transform: translateY(-50%);
    cursor: pointer;
}

.new-print-design-lpr-field.is-editing .form-control {
    border-color: #8FD4A9;
    box-shadow: 0 0 0 .15rem rgba(143, 212, 169, .25);
}

/* ---- Select Print Orientation modal --------------------------------
   Layout: title + Cancel/Apply in the header, 2x2 card grid in the body,
   "Use same orientation" checkbox at the bottom-left. */
.new-orientation-modal .modal-content {
    border: 2px solid #333;
    border-radius: 10px;
}

.new-orientation-modal .modal-header {
    display: flex;
    justify-content: space-between;
    padding: 18px 20px;
    border-bottom: 0;
}

.new-orientation-modal .modal-header .custom_h6 {
    font-size: 18px;
    font-weight: 700;
    color: #1d2b3a;
}

.new-orientation-modal .modal-body {
    padding: 4px 20px 20px;
    background-color: white !important;
}

.new-orientation-modal .new-orientation-grid {
    margin: 0 -8px;
}

.new-orientation-modal .new-orientation-grid > [class*="col-"] {
    padding: 8px;
}

.new-orientation-modal .new-orientation-card {
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 8px;
    /* background: #eef0f5; */
    padding: 14px;
    transition: border-color .2s ease, background-color .2s ease;
    cursor: pointer;
    overflow: hidden;
    list-style: none;
}

.new-orientation-modal .new-orientation-card:hover {
    border-color: #8FD4A9;
}

/* Active card — driven purely by :has(input:checked) so the visual always
   tracks the radio. The radios share name="checkbox_orientation", so the
   browser auto-unchecks the previous pick when a new one is selected and
   the green highlight follows. Don't add .is-selected here — it would stay
   stuck on the server-rendered card after the user picks a different one. */
.new-orientation-modal .new-orientation-card:has(input:checked) {
    border-color: #8FD4A9;
    background-color: #F5FBF8;
}

.new-orientation-modal .new-orientation-card .orientation-img {
    display: block;
    text-align: center;
}

.new-orientation-modal .new-orientation-card .orientation-img img {
    max-width: 100%;
    height: auto;
}

.new-orientation-modal .new-orientation-label {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 10px;
    padding-left: 0;
    gap: 8px;
}

.new-orientation-modal .new-orientation-label .form-check-label {
    color: #1d2b3a;
    font-size: 15px;
    font-weight: 700;
    margin: 0;
    cursor: pointer;
}

/* Radio is purely a state holder — visually hide it, keep it focusable.
   !important needed to beat Bootstrap / theme rules on input[type=radio]
   that ship with higher source-order. */
.new-orientation-modal .new-orientation-card input[type="radio"],
.new-orientation-modal .new-orientation-label .form-check-input,
.new-orientation-modal .new-orientation-label input[type="radio"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

/* core.css draws a custom radio "box" via .custom_radio [type=radio]+label:before/:after
   — kill those pseudo-elements inside our orientation cards so only the
   text label remains. */
.new-orientation-modal .new-orientation-card .custom_radio [type="radio"] + label:before,
.new-orientation-modal .new-orientation-card .custom_radio [type="radio"] + label:after,
.new-orientation-modal .new-orientation-label label:before,
.new-orientation-modal .new-orientation-label label:after {
    display: none !important;
    content: none !important;
}

.new-orientation-modal .new-orientation-label label {
    padding-left: 0 !important;
}

.new-orientation-modal .orientation_checkbox {
    padding: 12px 4px 0;
}

.new-orientation-modal .orientation_checkbox .checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #1d2b3a;
    font-size: 14px;
    cursor: pointer;
}

/* No. of Rolls field — spinner pinned to the right edge of the field. */
.new-print-design-field.has-spinner {
    position: relative !important;
}

.new-print-design-field.has-spinner > .form-control {
    padding-right: 32px !important;
}

.new-print-design-field.has-spinner > .spinner-buttons {
    position: absolute !important;
    top: 33% !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 1px !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 2;
    pointer-events: auto;
}

.new-print-design-field.has-spinner > .spinner-buttons > .btn-qty {
    display: block;
    width: 18px;
    height: 14px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #5a6573;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
}

.new-print-design-field.has-spinner > .spinner-buttons > .btn-qty:hover {
    color: #1d2b3a;
}

.roll_labels_input:focus {
    border-radius: 4px;
    border-color: rgba(0, 0, 0, .125);
}
/* Suppress the native number-input spinners since we provide our own. */
.new-print-design-field input[type="number"]::-webkit-outer-spin-button,
.new-print-design-field input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.new-print-design-field input[type="number"] {
    -moz-appearance: textfield;
}

.new-print-design-line__hint {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    color: #5a6573;
    font-size: 12px;
    min-height: 14px;
}

.new-print-design-line__hint .additional-cost {
    color: #333;
    font-size: 14px;
    font-weight: 600;
}

.new-print-design-line.is-open:not(.has-labels) .new-print-design-line__extra-field {
    display: none !important;
}

/* ---- Add-ons row: orientation + pills + save -------------------- */
.new-print-design-line__addons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}

.new-print-design-line--sheet .new-print-design-line__addons {
    gap: 24px;
}

.new-print-design-orientation .btn-orientation {
    height: 70px;
    padding: 0 16px;
    border: 1px solid #ff8181 ;
    border-radius: 4px;
    background: #EEF0F5;
    color: #ff8181 ;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    width: 100%;
}

.new-print-design-orientation {
    width: 100%;
}
.new-print-design-orientation .selected-orientation {
    display: none;
}
.new-print-design-orientation .btn-orientation  {
    display: inline-flex;
    align-items: center;
}
.new-print-design-orientation.has-orientation .selected-orientation {
    display: inline-flex;
}
.new-print-design-orientation.has-orientation .btn-orientation {
    display: none;
}

.new-print-design-orientation .selected-orientation {
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 4px;
    border-color: #8FD4A9 !important;
    background-color: #F5FBF8;
    text-decoration: none;
    cursor: pointer;
    height: 70px;
    width: 100%;
}

.new-print-design-orientation .selected-orientation .orientation-img {
    width: 110px;
    object-fit: contain;
}

.selected-orientation {
    display: flex;
    align-items: center;
    justify-content: center;
}

.new-print-design-orientation .orientation-edit {
    font-size: 12px;
    color: #006295;
}

.new-print-design-pill {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    height: 46px;
    padding: 0 16px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 4px;
    background: #fff;
    color: #1d2b3a;
    font-size: 14px;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
    margin: 0;
}

.new-print-design-pill:hover {
    border-color: #8FD4A9;
}

.new-print-design-pill.is-selected {
    border-color: #8FD4A9;
    background-color: #F5FBF8;
    font-weight: 600;
}

.new-print-design-pill__text {
    line-height: 1;
}

.new-print-design-pill__price {
    /* color: #1d2b3a; */
    /* font-weight: 600; */
    line-height: 1;
}

/* Save button sits at the right end of the add-ons row */
.new-print-design-line__addons .save-btn {
    margin-left: auto;
    height: 38px;
    padding: 0 22px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 4px;
    background: #fff;
    color: #1d2b3a;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.new-print-design-line__addons .save-btn:hover {
    background: #2d3648;
    color: #fff;
    border-color: #2d3648;
}

/* ---- Disabled state --------------------------------------------- */
.new-print-design-line.is-disabled,
.new-print-design-line.disabled {
    opacity: .65;
    pointer-events: none;
}

/* ---- Responsive ------------------------------------------------- */
@media screen and (max-width: 767px) {
    .new-print-design-line__open {
        flex-direction: column;
    }

    .new-print-design-line__open .new-print-design-line__thumb {
        flex-direction: row;
        width: 100%;
        flex-basis: auto;
    }

    .new-print-design-line__fields {
        grid-template-columns: 1fr;
    }

    .new-print-design-line__addons .save-btn {
        margin-left: 0;
        width: 100%;
    }
}

/* Upload-Designs tab — dropzone.
   Mirrors the artwork-proceed / OPC tab-2 dropzone visual structure but
   re-styled against the new-print-service green palette (bg #F5FBF8, border
   #8FD4A9) since fast-selection-checkout.css isn't loaded on this page.
   The class names .drop-design-wrapper / .drop-desgin-container / .drag-text
   etc. are kept so existing JS handlers (.artwork-file-new change,
   #upload-design click) can be wired in the next step without HTML changes. */
.new-print-upload-dropzone {
    width: 100%;
}

.new-print-upload-dropzone .drop-design-wrapper {
    display: block;
    padding: 28px 20px;
    margin: 0;
    border: 2px dashed #626262 !important;
    border-radius: 8px;
    /* background-color: #F5FBF8; */
    text-align: center;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}

.new-print-upload-dropzone .drop-design-wrapper:hover,
.new-print-upload-dropzone .drop-design-wrapper.is-dragover {
    border-color: #1aa74f;
    background-color: #F5FBF8;
}

.new-print-upload-dropzone .drop-desgin-container {
    text-align: center;
    cursor: pointer;
}

.new-print-upload-dropzone .drop-desgin-container h6 {
    margin: 0 0 4px;
    color: #1d2b3a;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}

.new-print-upload-dropzone .drop-desgin-container p {
    margin: 0 0 16px;
    color: #5a6573;
    font-size: 12px;
    line-height: 1.45;
}

.new-print-upload-dropzone .drag_drop-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
}

.new-print-upload-dropzone .drag-text {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 4px;
    background: #fff;
    color: #1d2b3a;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.new-print-upload-dropzone .drag-text img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    transition: filter .2s ease;
}

.new-print-upload-dropzone .drop-design-wrapper:hover .drag-text {
    background-color: #F5FBF8;
    /* color: #fff;
    border-color: #333; */
}

.new-print-upload-dropzone .drop-design-wrapper:hover .drag-text img {
    /* filter: invert(1); */
}

/* Pill-style tab nav — all four pills share one row. */
.printing-design-selection-modal .new-print-design-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 12px;
    padding: 0;
    margin: 0;
    list-style: none;
    border: 0;
}

.printing-design-selection-modal .new-print-design-tab-link {
    flex: 1 1 0;
    min-width: 0;
    padding: 10px 14px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 999px;
    background: #fff;
    color: #1d2b3a;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}

.printing-design-selection-modal .new-print-design-tab-link:hover {
    border-color: #8FD4A9;
}

.printing-design-selection-modal .new-print-design-tab-link.is-active,
.printing-design-selection-modal .new-print-design-tab-link.is-active:focus,
.printing-design-selection-modal .new-print-design-tab-link.active {
    border-color: #8FD4A9 !important;
    background-color: #F5FBF8;
    color: #1d2b3a;
    font-weight: 600;
}

.printing-design-selection-modal .new-print-design-tab-link:focus {
    outline: 0;
    box-shadow: 0 0 0 .15rem rgba(143, 212, 169, .35);
}

.printing-design-selection-modal .new-print-design-tab-panel[hidden] {
    display: none !important;
}

/* When a cart-summary is teleported in, neutralise the page's col-* width
   AND the .new-print-page .cart-summary.stickysection { width:31% } override
   so the cart fills the modal's right column. Selector intentionally repeats
   the .cart-summary.stickysection compound to beat that rule's specificity. */
.printing-design-selection-modal .new-print-design-cart-slot > .cart-summary,
.printing-design-selection-modal .new-print-design-cart-slot > .cart-summary.stickysection {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

@media screen and (max-width: 991px) {
    .printing-design-selection-modal .new-print-design-modal-right .new-print-design-cart-slot {
        position: static;
    }
}

.new-emb-card {
    padding: 10px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    transition: all ease .3s;
    cursor: pointer;
}

.new-emb-card:hover {
    border-color: #8FD4A9;
}

.new-emb-card.activated {
    border-color: #8FD4A9;
    background-color: #F5FBF8;
}

.new-emb-option .printing-box {
    margin-top: 22px;
}

.new-emb-card img {
    height: 48px;
    width: 48px;
    border-radius: 4px;
}

.new-emb-card .new-emb-title {
    font-size: 16px;
    font-weight: 500;
}

.new-emb-card .new-emb-price {
    font-size: 14px;
    font-weight: 500;
}

.new-print-emb-media-images {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

.new-print-emb-media-img {
    flex: 1 1 calc(33.333% - 8px);
    max-width: calc(33.333%);
}

.new-print-emb-media-img img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    display: block;
}

.new-print-emb-media-heading {
    font-size: 16px;
    color: #2d3648;
}

.new-print-emb-media-desc {
    color: #5a6573;
    line-height: 1.45;
}

.new-print-emb-media-video .video-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    background: #000;
    border-radius: 4px;
}

.new-print-emb-media-video .video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

@media screen and (max-width: 767px) {
    .new-print-page-emb-modal .modal-dialog {
        margin: 12px;
    }

    .new-print-page-emb-modal .modal-content {
        max-height: calc(100dvh - 24px);
    }

    .new-print-page-emb-modal .modal-header {
        align-items: flex-start;
        gap: 12px;
    }

    .new-print-page-emb-modal .modal-header h2 {
        width: 100%;
        font-size: 18px;
    }

    .new-print-page-emb-modal .modal-header .gap-2 {
        width: 100%;
        justify-content: space-between !important;
    }

    .new-cancel-btn,
    .new-apply-btn {
        min-width: 0;
        flex: 1 1 0;
        font-size: 14px;
    }

    .new-print-page-emb-modal .modal-body {
        padding: 14px;
    }

    .new-print-page-emb-modal .modal-body > .row {
        row-gap: 24px;
    }

    .new-emb-card {
        align-items: flex-start !important;
    }

    .new-emb-card .new-emb-title {
        font-size: 14px;
    }
}

@media screen and (min-width: 991px) {
    .printing-design-selection-modal .modal-dialog {
        width: 90vw !important;
        max-width: 90vw !important;
    }

    .new-print-page .main-content-area {
        width: 69% !important;
    }

    .new-print-page .cart-summary.stickysection {
        width: 31% !important;
        padding-right: 0;
    }
}

@media screen and (max-width: 991px) {

    .new-print-finishing-grid>.has-finishes,
    .new-print-finishing-grid>.new-print-label-application-card {
        width: 50%;
        max-width: 50%;
        flex-basis: 50%;
    }

    .new-print-delivery-toolbar-row,
    .new-print-delivery-search {
        align-items: stretch;
        flex-direction: column;
    }

    .new-print-delivery-search {
        width: 100%;
        margin-right: 0;
    }

    .new-print-delivery-country,
    .new-print-delivery-postcode,
    .new-print-delivery-search-btn {
        width: 100%;
    }

    .new-print-delivery-grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 575px) {

    .new-print-finishing-grid>.has-finishes,
    .new-print-finishing-grid>.new-print-label-application-card {
        width: 100%;
        max-width: 100%;
        flex-basis: 100%;
    }

    .new-print-delivery-mode-switch,
    .new-print-delivery-courier-switch {
        width: 100%;
    }

    .new-print-delivery-mode,
    .new-print-delivery-courier {
        flex: 1;
        padding-left: 12px;
        padding-right: 12px;
    }

    .new-print-delivery-suboptions {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Category-source core size & wound option custom dropdowns
   (printing_process.php → .category_source_core_wound_wrapper).
   No Bootstrap dropdown, no Tippy: a fixed image preview pinned to the left,
   the dropdown on the right. The whole component runs at 14px.
   ========================================================================== */
.category_source_core_wound_wrapper .cs-field {
    font-size: 14px;
    color: #1f2937;
    position: relative;
}

/* Preview is an absolutely-positioned popover anchored to the LEFT of the
   field, top-aligned with the toggle. Hidden by default, only revealed
   while the user is hovering an option in the menu. */
.category_source_core_wound_wrapper .cs-preview {
    position: absolute;
    top: 0;
    right: calc(100% + 10px);
    width: 166px;
    height: 198px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 4px;
    display: none;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    z-index: 30;
    pointer-events: none;
}

.category_source_core_wound_wrapper .cs-field.is-previewing .cs-preview {
    display: flex;
}

.category_source_core_wound_wrapper .cs-preview-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.category_source_core_wound_wrapper .cs-preview-img[src=""],
.category_source_core_wound_wrapper .cs-preview-img:not([src]) {
    display: none;
}

.category_source_core_wound_wrapper .cs-dropdown {
    position: relative;
    width: 100%;
    min-width: 0;
}

.category_source_core_wound_wrapper .cs-toggle {
    width: 100%;
    min-height: 44px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    padding: 10px 38px 10px 14px;
    font-size: 14px;
    font-weight: 500;
    color: #1f2937;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    line-height: 1.2;
    transition: border-color 0.15s ease;
    position: relative;
}

.category_source_core_wound_wrapper .cs-toggle:focus,
.category_source_core_wound_wrapper .cs-toggle:focus-visible {
    outline: none;
    border-color: rgba(0, 0, 0, .125);
}

.category_source_core_wound_wrapper .cs-field.is-open .cs-toggle {
    border-color: rgba(0, 0, 0, .125);
}

.category_source_core_wound_wrapper .cs-toggle-label {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Pure-CSS single down chevron — rotated border square. */
.category_source_core_wound_wrapper .cs-chevron {
    position: absolute;
    right: 16px;
    top: 50%;
    width: 9px;
    height: 9px;
    margin-top: -7px;
    border-right: 2px solid #333;
    border-bottom: 2px solid #333;
    transform: rotate(45deg);
    transform-origin: center;
    pointer-events: none;
    transition: transform 0.15s ease, margin-top 0.15s ease;
}

.category_source_core_wound_wrapper .cs-field.is-open .cs-chevron {
    transform: rotate(-135deg);
    margin-top: -2px;
}

.category_source_core_wound_wrapper .cs-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #d0d3d8;
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    z-index: 20;
    max-height: 280px;
    overflow-y: auto;
    display: none;
}

.category_source_core_wound_wrapper .cs-field.is-open .cs-menu {
    display: block;
}

.category_source_core_wound_wrapper .cs-option {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    color: #1f2937;
    cursor: pointer;
    line-height: 1.3;
    transition: background-color 0.1s ease;
}

.category_source_core_wound_wrapper .cs-option:hover {
    background-color: #F5FBF8;
}

/* Match the toggle exactly — no bold, no recoloured row. The hover
   background is the only thing that distinguishes the currently-active
   option in the menu (it persists via .is-active). */
.category_source_core_wound_wrapper .cs-option.is-active {
    background-color: #F5FBF8;
}

.category_source_core_wound_wrapper .cs-option-inch,
.category_source_core_wound_wrapper .cs-option-size,
.category_source_core_wound_wrapper .cs-option-label {
    color: inherit;
    font-weight: inherit;
}

.category_source_core_wound_wrapper .cs-option-price {
    margin-left: auto;
    color: inherit;
    font-weight: inherit;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .category_source_core_wound_wrapper .cs-preview {
        width: 160px;
        height: 180px;
        right: auto;
        left: 0;
        top: calc(100% + 4px);
    }
}

.printing-material-selection-modal .new-print-material-preview {
    margin-top: 12px;
}

.printing-material-selection-modal .new-print-material-preview-card {
    border-top: 1px solid #e5e7eb;
    padding-top: 12px;
    font-size: 14px;
    color: #111827;
}

.printing-material-selection-modal .new-print-material-preview-title {
    font-weight: 700;
    margin-bottom: 8px;
}

.printing-material-selection-modal .new-print-material-preview .details {
    margin: 0 !important;
}

.printing-material-selection-modal .new-print-material-preview .row {
    margin: 0 0 6px;
}

.printing-material-selection-modal .new-print-material-preview .detail-text,
.printing-material-selection-modal .new-print-material-preview .new-cart-line-final,
.printing-material-selection-modal .new-print-material-preview .new-cart-total-title,
.printing-material-selection-modal .new-print-material-preview .new-cart-total-value,
.printing-material-selection-modal .new-print-material-preview .new-cart-total-altvat {
    font-size: 14px;
}

.printing-material-selection-modal .new-print-material-preview .new-cart-labels-row {
    padding-bottom: 6px;
}

.printing-material-selection-modal .new-print-material-preview .new-cart-discount-badge {
    font-size: 12px;
}

.printing-material-selection-modal .new-print-material-preview-total {
    border-top: 1px solid #e5e7eb;
    margin-top: 8px;
    padding-top: 8px;
}

.printing-material-selection-modal .new-print-material-preview-loading,
.printing-material-selection-modal .new-print-material-preview-error {
    border-top: 1px solid #e5e7eb;
    margin-top: 12px;
    padding-top: 12px;
    font-size: 13px;
    color: #64748b;
}

.design-to-follow-quantity-wrapper {
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 8px;
    padding: 32px 16px;
}

.qty-wrapper {
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 50%;
    background-color: #F5FBF8;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    cursor: pointer;
    font-size: 30px;
    line-height: 1;
    letter-spacing: -3px;
    padding: 0;
    margin: 0;
    /* No text selection on rapid clicks. */
    user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.qty-wrapper > * {
    /* Inner span shouldn't intercept the click — wrapper handles it. */
    pointer-events: none;
}

.qty-wrapper .decrement-qty {
    padding-bottom: 6px;
    padding-right: 2px;
}
.artwork_to_follow_proceed {
    padding: 8px 22px;
    border-radius: 4px;
    font-size: 16px;
    width: 110px;
    height: 42px;
}

.new-print-design-follow-qty {
    height: 42px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    font-size: 16px;
    width: 132px;
}

.design-alert-bottom {
    width: 100%;
    height: auto;
    padding: 4px 8px;
    border-radius: 28px;
    border: 1px solid #ffd43a;
    background: #ffedad;
    vertical-align: middle;
}

.new-print-design-follow-add {
    width: 132px;
    height: 42px;
    border-radius: 4px;
}

.design-alert-bottom p {
    font-family: Open Sans;
    font-size: 14px;
    font-weight: 400;
    line-height: 18px;
    letter-spacing: 0;
    text-align: left;
}

.creative-panel {
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    padding: 12px;
}

.design-panel-content-wrapper {
    width: 100%;
    height: max-content;
    padding: 0;
    border-radius: 4px;
    cursor: pointer;
    /* background-image: url(https://www.aalabels.com/theme/site/webimages/icons/Perfume-Labels-Image.webp); */
    background-color: #F5FBF8;
    background-size: cover;
    background-repeat: no-repeat;
}

.design-panel-content-wrapper .creative-tab-image {
    max-width: 360px;
}

.design-panel-content-wrapper .main-content-wrapper {
    padding: 24px 42px 24px 52px;
    flex: 1;
}

.design-panel-content-wrapper .action-wrapper {
    padding-right: 42px;
}

.heading-4 {
    color: #2d3648;
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    text-align: left;
}

.heading-6 {
    margin-bottom: 4px !important;
    font-family: Open Sans;
    font-size: 18px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: 0;
    text-align: left;
    color: #2d3648;
}

.creative-para {
    margin: 0;
    font-family: Open Sans;
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    letter-spacing: -0.01em;
    text-align: left;
    color: #333;
    /* max-width: 350px; */
}

.creative-design-btn {
    width: 100%;
    height: 46px;
    background-color: #333;
    color: white;
    font-size: 20px;
    font-weight: 700;
}

.creative-design-btn:hover {
    background-color: #006ea1;
    color: white;
    border: none;
    outline: none;
}

.creative-panel.has-creative-designs .action-wrapper {
    min-width: 232px;
    align-items: stretch !important;
}

.creative-design-selection-summary {
    width: 100%;
    text-align: right;
}

.creative-design-selection-summary p {
    margin: 0 0 8px;
    color: #2d3648;
    font-size: 14px;
    line-height: 1.35;
    white-space: nowrap;
}

.creative-design-selection-summary p:last-child {
    margin-bottom: 10px;
}

.creative-design-selection-summary strong {
    font-weight: 700;
}

.creative-panel.has-creative-designs .creative-design-btn {
    width: 100%;
}

.printing-design-selection-modal .new-print-design-icon,
.printing-design-selection-modal .new-print-design-remove-file {
    padding: 0;
    border: 0;
    background: transparent;
    color: #1d2b3a;
    cursor: pointer;
}

.new-print-design-icon img {
    opacity: 0.85;
}

.printing-design-selection-modal .new-print-design-remove-file {
    font-size: 12px;
    margin-top: 4px;
}

.printing-design-selection-modal .new-print-design-remove-file:hover {
    text-decoration: underline;
}

.printing-design-selection-modal .new-print-design-option-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.printing-design-selection-modal .new-print-design-line__saved .new-print-design-edit {
    padding: 0;
    border: 0;
    background: transparent;
    color: #006295;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
}

.printing-design-selection-modal .new-print-design-line__saved .new-print-design-edit:hover {
    text-decoration: underline;
}

.printing-design-selection-modal .new-print-design-additional-cost {
    margin-left: auto;
    color: #333;
    font-size: 14px;
    font-weight: 600;
}

.printing-design-selection-modal .new-print-creative-service {
    display: grid;
    gap: 20px;
    padding: 20px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 4px;
}

.printing-design-selection-modal .new-print-creative-intro {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    align-items: center;
    gap: 20px;
}

.printing-design-selection-modal .new-print-creative-intro > img {
    width: 120px;
    height: 100px;
    object-fit: cover;
    border-radius: 4px;
}

.printing-design-selection-modal .new-print-creative-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.printing-design-selection-modal .new-print-creative-counter,
.printing-design-selection-modal .new-print-creative-brief {
    display: grid;
    gap: 8px;
    margin: 0;
    color: #1d2b3a;
    font-size: 14px;
    font-weight: 600;
}

.printing-design-selection-modal .new-print-design-stepper {
    display: grid;
    grid-template-columns: 42px minmax(60px, 1fr) 42px;
    height: 42px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 4px;
    overflow: hidden;
}

.printing-design-selection-modal .new-print-design-stepper button,
.printing-design-selection-modal .new-print-design-stepper input {
    min-width: 0;
    border: 0;
    background: #fff;
    color: #1d2b3a;
    text-align: center;
}

.printing-design-selection-modal .new-print-design-stepper button {
    font-size: 20px;
}

.printing-design-selection-modal .new-print-design-stepper input {
    border-right: 1px solid rgba(0, 0, 0, .15);
    border-left: 1px solid rgba(0, 0, 0, .15);
    font-size: 14px;
}

.printing-design-selection-modal .new-print-creative-brief-input {
    resize: vertical;
    min-height: 92px;
    font-size: 14px;
}

.new-print-design-option-modal {
    z-index: 100100;
}

.new-print-design-option-modal .modal-dialog {
    width: calc(100% - 40px);
    max-width: 920px;
    margin: 20px auto;
}

.new-print-design-option-modal .modal-content {
    max-height: calc(100dvh - 40px);
    border: 0;
    border-radius: 4px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .2);
}

.new-print-design-option-modal .modal-body {
    overflow-y: auto;
    padding: 0 22px 22px;
}

.new-print-design-option-modal .new-print-design-option-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px;
    border: 0;
}

.new-print-design-option-modal .new-print-design-option-header h3 {
    margin: 0;
    color: #2d3648;
    font-size: 22px;
}

.new-print-design-option-modal .new-print-design-option-actions {
    display: flex;
    gap: 8px;
}

.new-print-design-option-modal .new-print-design-option-content {
    display: flex;
    align-items: flex-start;
    gap: 24px;
}

.new-print-design-option-modal .new-print-design-option-image {
    flex: 0 0 42%;
    width: 42%;
    height: 232px;
    object-fit: cover;
    border-radius: 4px;
}

.new-print-design-option-modal .new-print-design-option-copy {
    flex: 1 1 auto;
    color: #333;
    font-size: 14px;
    line-height: 1.5;
    text-align: justify;
}

.new-print-design-option-actions .btn-disabled{
    /* background-color: #edf0f7 !important; */
    border: 1px solid #2D3647 !important;
    color: black;
    width: 138px;
}

.new-print-design-option-actions .btn-disabled:hover{
    background-color: #2d3648 !important;
    color: white;
}

.new-print-design-option-actions .dark-bg-theme{
    background-color: #2d3648 !important;
    color: white;
    width: 138px;
}

.new-print-design-option-actions .dark-bg-theme:hover{
    background-color: #006ea1 !important;
}

@media screen and (max-width: 767px) {
    .printing-design-selection-modal .new-print-design-line__open > .new-print-design-line__actions {
        position: absolute;
        top: 12px;
        right: 12px;
    }

    .printing-design-selection-modal .new-print-creative-intro,
    .printing-design-selection-modal .new-print-creative-controls {
        grid-template-columns: 1fr;
    }

    .new-print-design-option-modal .new-print-design-option-content {
        flex-direction: column;
    }

    .printing-design-selection-modal .new-print-creative-intro > img {
        width: 100%;
        height: 150px;
    }

    .new-print-design-option-modal .modal-dialog {
        width: calc(100% - 24px);
        margin: 12px auto;
    }

    .new-print-design-option-modal .new-print-design-option-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px;
    }

    .new-print-design-option-modal .modal-body {
        padding: 0 16px 16px;
    }

    .new-print-design-option-modal .new-print-design-option-actions {
        width: 100%;
    }

    .new-print-design-option-modal .new-print-design-option-actions .btn {
        flex: 1 1 0;
    }

    .new-print-design-option-modal .new-print-design-option-image {
        width: 100%;
    }
}

.orientation_modal {
    width: 100% !important;
}

.new-orientation-modal .modal-content {
    box-shadow: 0 0 0 !important;
}

.new-orientation-modal .modal-body {
    border-radius: 10px;
}

.artwork-comments.inner-modal {
    width: 100%;
}

.btn-default-opc {
  height: 52px;
  color: white;
  padding: 12px 20px 12px 20px;
  border-radius: 4px;
  background: #333;
  font-family: Open Sans;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  text-align: center;
}

.btn-default-opc:hover {
  height: 52px;
  color: white;
  padding: 12px 20px 12px 20px;
  border-radius: 4px;
  background: #006ea1;
  font-family: Open Sans;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  text-align: center;
}

.quote-content .row-parent[data-process="custom_Q"] .backdrop {
  display: none !important;
}

.quote-content .row-parent[data-process="custom_Q"] .popup {
  display: block !important;
  position: static !important;
  opacity: 1 !important;
  transform: none !important;
  width: 100% !important;
  max-height: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: left;
}

.custom-quote-modal .popup {
    height: auto !important;
}

.custom-quote-modal .modal-content {
    border: 2px solid #2d3648;
    border-radius: 10px;
}

.custom-quote-modal #apply-btn-closure {
    width: 138px;
    color: white;
    background-color: #333;
    border: 1px solid #333;
    border-radius: 4px;
}

.custom-quote-cta-design:hover,
.custom-quote-modal #apply-btn-closure:hover {
    background: #006ea1;
    color: white;
}

.custom-quote-cta-design {
    background-color: #333;
    font-size: 16px;
    color: white;
    border: 1px solid #333;
    border-radius: 4px;
    height: 46px;
}

.custom-quote-modal .popup-button-selection .action-btn {
    text-align: right;
}

.new-print-page-card {
    padding-top: 0;
}

.custom-quote-modal .product-section {
    text-align: right;
}

.custom-quote-modal #quote_recaptcha {
    margin-top: 35px;
}

.custom-quote-modal .quote-submit-btn {
    height: 46px;
    margin-bottom: 0 !important;
}

.custom-quote-modal .form-floating .custom_select_label {
    left: 0 !important;
}

.custom-quote-modal #custom_material_list + .custom_select_label,
.custom-quote-modal #printing_required + .custom_select_label {
    left: 8px !important;
}

.custom-quote-modal textarea + span {
    left: 18px !important;
}

.custom-quote-modal .row {
    --bs-gutter-x: 16px !important;
}

.custom-quote-modal label.radio i {
    top: 0 !important;
}

.custom-quote-modal .has-float-label textarea:placeholder-shown:not(:focus):not(.error) + span {
    left: 18px !important;
}

label.has-float-label:has(#phoneNumber) {
    margin-bottom: 0 !important;
}

.custom-quote-modal .row.d-flex-end:has(label.radio) {
    margin-bottom: 24px !important;
}

.w-45 {
    width: 45% !important;
}

.w-65 {
    width: 65% !important;
}

/* ============================================================
   Review Order summary — rendered inside .review-order-content-area
   Mock: product image + code/qty header + description + line rows +
   green delivery card + total row (ex VAT + inc VAT sub).
   ============================================================ */
.review-order-container .review-order-content h2 {
    color: #000;
}

.review-order-body {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    border: 1px solid rgba(0, 0, 0, 0.125);
    padding: 16px;
    border-radius: 4px;
}

.review-order-thumb {
    flex: 0 0 auto;
    width: 160px;
    max-width: 30%;
}

.review-order-thumb img {
    width: 100%;
    height: auto;
    display: block;
}

.review-order-info {
    min-width: 0;
    flex: 1 1 auto;
}

.review-order-title {
    font-size: 15px;
    line-height: 1.35;
    color: #111;
}

.review-order-title strong {
    color: #111;
    font-weight: 700;
}

.review-order-title .text-muted {
    color: #6b7280 !important;
}

.review-order-desc {
    font-size: 13px;
    line-height: 1.4;
    max-width: 640px;
}

.review-order-price {
    white-space: nowrap;
    font-size: 15px;
}

.review-order-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.review-order-line {
    font-size: 14px;
}

.review-order-delivery-selected-container {
    padding: 16px;
    background: #f5fbf8;
    border: 1px solid #8FD4A9;
    border-radius: 4px;
}

.review-order-delivery-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    background: #ffffff;
    border: 1.5px solid #1a9d5a;
    border-radius: 10px;
    padding: 12px 16px;
}

.review-order-delivery-title {
    font-weight: 700;
    color: #333;
    font-size: 16px;
    margin-bottom: 4px;
}

.review-order-delivery-sub {
    color: #333;
    font-size: 13px;
}

.time_tag, .time_tag1 {
    background-color: #1a9d5a;
    color: #ffff;
    font-weight: 700;
    padding: 0px 4px;
    font-size: 14px;
    margin-right: 5px;
    border-radius: 4px;
}

.review-order-delivery-price {
    white-space: nowrap;
    font-size: 18px;
}

.review-order-delivery-price .review-order-edit-delivery {
    color: #555;
}

.review-order-edit-delivery {
    color: #333;
    font-size: 18px;
    line-height: 1;
    text-decoration: none;
}

.review-order-delivery-service-container {
    padding: 16px;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 4px;
}

.review-order-delivery-editor-header h3 {
    font-size: 16px;
    font-weight: 700;
}

.review-order-delivery-service-slot .new-print-delivery-section {
    margin: 0;
}

.review-order-total {
    padding: 16px;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 4px;
}

.review-order-total-amount {
    font-size: 22px !important;
    font-weight: 700;
}

.review-order-container .action-btns .btn {
    min-width: 272px;
    padding: 12px 18px;
    border-color: rgba(0, 0, 0, 0.125) !important;
    border-radius: 4px;
    height: 46px;
    font-weight: 700;
    line-height: 1;
}

.review-order-container .review-order-back-btn {
    color: #111;
}

@media (max-width: 767.98px) {
    .review-order-body {
        flex-direction: column;
        gap: 12px;
    }
    .review-order-thumb {
        width: 60%;
        max-width: 220px;
        margin: 0 auto;
    }
    .review-order-title-row {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 8px !important;
    }
    .review-order-price {
        text-align: left !important;
    }
    .review-order-delivery-inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .review-order-delivery-price {
        align-self: flex-end;
    }
    .review-order-delivery-selected-container {
        align-items: flex-start !important;
        flex-direction: column;
    }
    .review-order-container .action-btns {
        flex-direction: column;
        align-items: stretch !important;
        gap: 12px !important;
    }
    .review-order-container .action-btns .btn {
        width: 100%;
        min-width: 0;
    }
}

.lami-varnish-modal .new-emb-card img {
    display: none;
}

.lami-varnish-modal .new-emb-option .printing-box {
    margin-top: 11px;
}

.lamination-vide {
    border-radius: 4px;
}

.red-border {
    border-color: red;
}

.printing-placeholder{
    display:flex;
    gap:20px;
    margin-top: 20px;
    margin-bottom: 20px;
}

.ph-left{
    flex:1;
}

.ph-right{
    width:320px;
}

.ph-card{
    display:flex;
    gap:20px;
    margin-bottom:20px;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 10px;
}

.ph-image{
    width:100px;
    height:140px;
    border-radius:6px;
}

.ph-content{
    flex:1;
}

.ph-title{
    height:20px;
    width:60%;
    margin-bottom:15px;
}

.ph-line{
    height:12px;
    margin-bottom:10px;
    width:100%;
}

.ph-line.long{
    width:95%;
}

.ph-line.short{
    width:70%;
}

.ph-row{
    display:flex;
    gap:15px;
    margin-bottom:20px;
}

.ph-select{
    flex:1;
    height:42px;
    border-radius:5px;
}

.ph-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:15px;
    margin-bottom:25px;
}

.ph-option{
    height:72px;
    border-radius:6px;
}

.ph-heading{
    width:260px;
    height:18px;
    margin:25px 0 15px;
}

.ph-toggle{
    width:160px;
    height:36px;
    border-radius:25px;
}

.ph-delivery{
    height:95px;
    border-radius:6px;
}

.ph-summary{
    padding:15px;
    border:1px solid #ddd;
    border-radius:6px;
}

.ph-section {
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 10px;
}

.ph-input{
    height:42px;
    margin:20px 0;
    border-radius:5px;
}

.ph-price-row{
    display:flex;
    justify-content:space-between;
    margin-bottom:15px;
}

.ph-price-text{
    width:140px;
    height:14px;
}

.ph-price-value{
    width:60px;
    height:14px;
}

.ph-button{
    width:100%;
    height:40px;
    margin:20px 0;
    border-radius:20px;
}

.ph-total{
    width:160px;
    height:28px;
    margin:20px auto;
}

.ph-button.large{
    height:46px;
}

/* Skeleton Animation */

.skeleton{
    background:linear-gradient(
        90deg,
        #eeeeee 25%,
        #f8f8f8 37%,
        #eeeeee 63%
    );
    background-size:400% 100%;
    animation:skeleton-loading 1.4s ease infinite;
}

@keyframes skeleton-loading{
    0%{
        background-position:100% 50%;
    }
    100%{
        background-position:0 50%;
    }
}

.new-print-process-price {
    text-wrap: nowrap;
}

/* French CSS */
.fr_body .print-process-child {
    font-weight: 600;
    font-size: 12px;
}

.fr_body .new-print-design-orientation .selected-orientation {
    position: relative;
    justify-content: flex-start;
    padding: 6px;
}

.fr_body .new-print-design-orientation .selected-orientation .orientation-edit {
    position: absolute;
    bottom: 6px;
    right: 6px;
}

.new-print-page > .container {
    padding-left: 4px;
}

.page-new_print_service .breadcrumbs-container {
    padding-left: 0;
}

.page-new_print_service .breadcrumbs-container .col-md-12 {
    padding-left: 8px;
}

.new-apply-btn .selected {
    background-color: #333;
}

.normal-material-filter-row {
    gap: 24px;
}

.search_by_label_use h6 {
    line-height: 1;
}

.normal-material-code-selected-tag {
    max-width: none !important;
}

.roll-cart-action .btn-proceed:hover,
.roll-cart-action .btn-recalculate:hover {
    background-color: #006da2 !important;
}

.new-cart-title {
    font-size: 14.5px;
}

.discount-badge-red {
    color: #e0152d;
}

.printed-roll-cart-price-card .row.g-2.mt-0 {
    display: none;
}

.cart-header-label {
    margin-bottom: 0 !important;
}

.printed-roll-cart-price-card tr td hr{
    margin-top: 8px !important;
    margin-bottom: 12px !important;
}

.new-print-process-price {
    font-weight: 500;
}

.new-emb-price .text-decoration-line-through {
    text-decoration-line: line-through !important;
    text-decoration-color: #FF0000 !important;
}

.printing-design-selection-modal .custom-quote-wrapper {
    display: none;
}

.custom-quote-wrapper {
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
    padding: 0;
    padding-bottom: 12px;
}

.custom-quote-wrapper .px-3 {
    padding-left: 12px !important;
    padding-right: 12px !important;
}

@media screen and (min-width: 992px) {
    .new-print-page .cart-summary {
        align-self: stretch;
    }

    .new-print-page .cart-summary #cart-summery,
    .new-print-page .cart-summary .sidebar-section {
        height: 100%;
    }

    .new-print-page .cart-summary .sidebar-item.sticky-top {
        z-index: 3;
    }

    .new-print-page .cart-summary .custom-quote-wrapper {
        position: sticky;
        top: var(--new-print-custom-quote-sticky-top, 404px);
        z-index: 1;
    }
}

.printing-material-selection-modal .modal-header {
    padding-right: 32px !important;
    padding-top: 18px !important;
}

.sheet-product-content-col {
    padding-right: 16px !important;
}

.select-material-description {
    line-height: 2;
    margin-bottom: 28px;
}

.printed-material-modal-btn {
    border-radius: 4px;
}

.material-selection-btn-container {
    padding: 10px;
}

.review-order-delivery-prompt {
    padding: 16px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 4px;
}