/* فونت و پایه */
.cr-checkout-wrapper,
.cr-checkout-wrapper * {
    font-family: Vazirmatn, sans-serif !important;
    font-weight: 500;
    box-sizing: border-box;
}

.cr-checkout-wrapper {
    max-width: 1100px;
    margin: 6px auto;
}

.cr-page-title {
    text-align: right;
    direction: rtl;
    color: #111;
    font-size: 23px;
    margin-bottom: 10px;
}

.cr-order-number {
    font-size: 15px;
    color: #777;
    font-weight: 500;
    margin-right: 6px;
}

/* چیدمان تک‌ستونه و تمام‌عرض - هر بخش یک ردیف کامل، بدون هیچ جفت‌شدنی با بخش دیگر */
.cr-checkout-stack {
    display: flex;
    flex-direction: column;
    gap: 6px;
    direction: rtl;
}

/* کارت‌ها */
.cr-checkout-card {
    background: #f7f7f7;
    border: 1px solid #d8d8d8;
    border-radius: 16px;
    padding: 16px 20px;
    transition: box-shadow .2s ease, border-color .2s ease;
    animation: crFadeIn .35s ease both;
}

.cr-checkout-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.06);
    border-color: #c8c8c8;
}

.cr-cart-card {
    padding: 10px;
}

.cr-card-title {
    text-align: center;
    color: #ab0000 !important;
    font-size: 18px;
    margin: 0 0 10px 0;
    font-weight: bold;
}

.cr-area-important .cr-card-title,
.cr-area-optional .cr-card-title {
    text-align: right;
}

.cr-title-center {
    text-align: center !important;
}

/* فیلدهای آدرس */
.cr-field-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 8px;
}

.cr-field-row.cr-field-3 {
    grid-template-columns: repeat(3, 1fr);
}

.cr-field-row.cr-field-4 {
    grid-template-columns: repeat(4, 1fr);
}

.cr-field-row.cr-field-6 {
    grid-template-columns: repeat(6, 1fr);
}

.cr-field label {
    display: block;
    font-size: 14px;
    color: #ab0000 !important;
    margin-bottom: 6px;
    font-weight: bold;
}

.cr-field input {
    width: 100%;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #bbb;
    background: #fff;
    font-size: 15px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cr-field input:focus {
    outline: none;
    border-color: #ffd400;
    box-shadow: 0 0 0 3px rgba(255,212,0,.35);
}

/* روش ارسال */
.cr-shipping-options {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    justify-content: center;
}

.cr-radio {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 17px;
    color: #222;
    user-select: none;
}

.cr-radio input {
    display: none;
}

.cr-radio-dot {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid #999;
    display: inline-block;
    position: relative;
    transition: border-color .2s ease;
}

.cr-radio-dot::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: #ffd400;
    transform: scale(0);
    transition: transform .15s ease;
}

.cr-radio input:checked + .cr-radio-dot {
    border-color: #ffd400;
}

.cr-radio input:checked + .cr-radio-dot::after {
    transform: scale(1);
}

.cr-radio:hover .cr-radio-dot {
    border-color: #d4ae00;
}

.cr-shipping-logo {
    width: 26px;
    height: 26px;
    object-fit: contain;
    border-radius: 3px;
}

.cr-shipping-card {
    padding-top: 10px;
}

.cr-shipping-note-wrap {
    text-align: center;
    margin: 8px 0 0 0;
}

.cr-shipping-guide-btn {
    background: none;
    border: none;
    padding: 0;
    color: #ab0000 !important;
    font-size: 13px;
    font-weight: bold;
    text-decoration: underline;
    cursor: pointer;
}

/* پاپ‌آپ راهنمای روش ارسال: اندازه متوسط، لبه مشکی با نوار طلایی بالا */
.cr-guide-modal-box {
    border: 2px solid #111 !important;
    border-top: 6px solid #ffd400 !important;
    max-width: 440px;
}

.cr-guide-modal-text {
    font-size: 15px;
    line-height: 2;
    color: #333;
    text-align: right;
    padding-top: 6px;
}

.cr-payment-options {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    justify-content: center;
}

.cr-payment-note {
    text-align: center;
    color: #555;
    font-size: 13px;
    margin: 10px 0 0 0;
    line-height: 1.8;
}

.cr-payment-note strong {
    color: #ab0000;
}

/* توضیحات (مهم / اختیاری) */
.cr-description-text {
    font-size: 14px;
    color: #444;
    line-height: 1.9;
}

.cr-description-text p {
    margin: 0 0 8px 0;
}

.cr-customer-note {
    width: 100%;
    height: 66px;
    min-height: 0;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid #bbb;
    background: #fff;
    font-size: 14px;
    resize: vertical;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cr-customer-note:focus {
    outline: none;
    border-color: #ffd400;
    box-shadow: 0 0 0 3px rgba(255,212,0,.35);
}

/* جدول سبد خرید */
.cr-cart-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
    table-layout: fixed;
}

.cr-cart-table th,
.cr-cart-table td {
    border: 1px solid #ddd;
    padding: 10px;
    text-align: center;
}

.cr-cart-table th {
    background: #eee;
    font-weight: bold;
    color: #ab0000 !important;
}

.cr-cart-table .cr-col-sum {
    width: 130px;
    white-space: nowrap;
}

.cr-product-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
}

.cr-product-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.cr-qty {
    color: #777;
    font-size: 13px;
}

/* عکس جزئیات محصول - در اندازه اصلی خودش نمایش داده می‌شود (بدون تغییر سایز)، فقط قابل‌کلیک است */
.cr-detail-icon-img {
    cursor: pointer;
    max-width: 100%;
    height: auto;
    display: inline-block;
    flex-shrink: 0;
}

/* دسکتاپ: کنار عنوان محصول */
.cr-detail-icon-mobile {
    display: none;
}

/* موبایل: زیر مبلغ، نه کنار عنوان محصول */
@media (max-width: 900px) {
    .cr-detail-icon-desktop {
        display: none;
    }

    .cr-detail-icon-mobile {
        display: inline-block;
        margin-top: 4px;
    }
}

/* کد معرف / کد تخفیف - جمع‌شونده */
.cr-codes-card {
    padding: 14px 20px;
}

.cr-codes-toggle-text {
    background: none;
    border: none;
    padding: 0;
    color: #ab0000;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    text-decoration: underline;
    display: block;
}

.cr-codes-toggle-text:hover {
    color: #8a0000;
}

.cr-codes-inner {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.cr-code-group {
    flex: 1;
    min-width: 240px;
}

.cr-code-row {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 0;
}

.cr-code-row input {
    flex: 1;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #bbb;
    background: #fff;
    font-size: 15px;
    text-align: center;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cr-code-row input:focus {
    outline: none;
    border-color: #ffd400;
    box-shadow: 0 0 0 3px rgba(255,212,0,.35);
}

.cr-code-apply {
    background: #ffd400 !important;
    color: #111 !important;
    border: 1px solid #ffd400 !important;
    border-radius: 20px;
    padding: 9px 22px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    transition: background .2s ease, transform .1s ease;
    white-space: nowrap;
}

.cr-code-apply:hover {
    background: #e9c400 !important;
    border-color: #e9c400 !important;
}

.cr-code-apply:active {
    transform: scale(.96);
}

.cr-code-apply.cr-loading {
    opacity: .6;
    pointer-events: none;
}

.cr-code-message {
    font-size: 13px;
    margin: 4px 2px 0 2px;
    min-height: 16px;
}

.cr-code-message.cr-success {
    color: #1a8c1a;
}

.cr-code-message.cr-error {
    color: #d31414;
}

/* جدول جمع کل */
.cr-totals-card {
    padding: 0;
    overflow: hidden;
}

.cr-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 18px;
    border-bottom: 1px solid #ddd;
    background: #fff;
}

.cr-total-row:last-child {
    border-bottom: none;
}

.cr-total-label {
    color: #333;
    font-size: 15px;
    font-weight: bold;
}

.cr-total-value {
    color: #333;
    font-size: 15px;
    transition: color .2s ease;
}

.cr-total-payable {
    background: #fbf3d0;
}

.cr-total-payable .cr-total-value,
.cr-total-payable .cr-total-label {
    color: #7a5c00;
    font-size: 16px;
    font-weight: bold;
}

/* پیام خطای فرم */
.cr-form-error {
    color: #d31414;
    font-size: 14px;
    text-align: center;
    min-height: 0;
    margin: 0 0 4px 0;
}

.cr-form-error:empty {
    margin: 0;
}

/* دکمه پرداخت */
.cr-pay-btn-wrap {
    text-align: center;
}

.cr-checkout-pay-btn {
    display: inline-block;
    width: auto;
    min-width: 220px;
    padding: 12px 40px;
    background: #ab0000 !important;
    color: #fff !important;
    border: none;
    border-radius: 12px;
    font-size: 17px;
    font-weight: bold;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: background .2s ease, transform .1s ease, box-shadow .2s ease;
}

.cr-checkout-pay-btn:hover {
    background: #8a0000 !important;
    box-shadow: 0 4px 14px rgba(226,28,28,.4);
}

.cr-checkout-pay-btn:active {
    transform: scale(.98);
}

.cr-checkout-pay-btn.cr-loading {
    opacity: .65;
    pointer-events: none;
}

/* سبد خالی */
.cr-empty-cart {
    text-align: center;
    padding: 40px 20px;
    direction: rtl;
}

/* پاپ‌آپ جزئیات محصول */
.cr-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.cr-modal-overlay.cr-modal-open {
    display: flex;
}

.cr-modal-box {
    background: #fff;
    border-radius: 16px;
    padding: 22px;
    max-width: 380px;
    width: 100%;
    direction: rtl;
    position: relative;
    animation: crFadeIn .2s ease both;
    overflow: visible;
}

.cr-modal-scroll {
    max-height: 80vh;
    overflow-y: auto;
}

.cr-modal-close {
    position: absolute;
    top: -10px;
    left: -10px;
    background: #ab0000;
    border: 2px solid #fff;
    color: #fff;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    font-size: 17px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,.25);
    transition: background .2s ease, transform .1s ease;
}

.cr-modal-close:hover {
    background: #8a0000;
    transform: scale(1.08);
}

.cr-modal-image {
    display: block;
    width: 100%;
    max-height: 180px;
    object-fit: contain;
    border-radius: 10px;
    margin-bottom: 8px;
    background: #f4f4f4;
}

.cr-modal-title {
    text-align: center;
    margin: 0 0 14px 0;
    font-size: 17px;
    color: #111;
}

.cr-modal-details {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.cr-modal-details th,
.cr-modal-details td {
    padding: 7px 4px;
    border-bottom: 1px solid #eee;
    text-align: right;
}

.cr-modal-details th {
    color: #777;
    font-weight: 500;
    width: 40%;
}

.cr-modal-details td {
    color: #444;
}

.cr-modal-price {
    color: #ab0000 !important;
    font-weight: bold;
}

.cr-modal-meta {
    color: #444;
    line-height: 1.8;
}

/* انیمیشن ورود کارت‌ها */
@keyframes crFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* حالت موبایل */
@media (max-width: 900px) {
    .cr-checkout-wrapper {
        padding: 0 10px;
    }

    .cr-field-row.cr-field-3,
    .cr-field-row.cr-field-4,
    .cr-field-row.cr-field-6 {
        grid-template-columns: 1fr;
    }

    .cr-cart-table th {
        white-space: normal;
        line-height: 1.5;
        word-break: break-word;
    }

    .cr-codes-toggle-text {
        text-align: center;
    }

    .cr-product-cell {
        align-items: flex-start;
    }

    .cr-product-name {
        max-width: 100%;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        line-height: 1.4;
    }

    .cr-customer-note {
        font-size: 12px;
    }
}

/* انتخاب روش پرداخت مشتری */
.cr-customer-payment-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.cr-payment-method-choice { margin:0; cursor:pointer; }
.cr-payment-method-choice>input { position:absolute; opacity:0; pointer-events:none; }
.cr-payment-method-card { position:relative; min-height:72px; display:flex; align-items:center; gap:12px; padding:12px 44px 12px 14px; border:1px solid #d8d8d8; border-radius:12px; background:#fff; transition:.2s ease; }
.cr-payment-method-card:hover { border-color:#c00; transform:translateY(-1px); }
.cr-payment-method-choice>input:checked + .cr-payment-method-card { border-color:#ab0000; box-shadow:0 0 0 2px rgba(171,0,0,.08); background:#fffafa; }
.cr-payment-method-card img { width:46px; height:46px; object-fit:contain; flex:0 0 46px; }
.cr-payment-method-copy { display:flex; flex-direction:column; gap:4px; text-align:right; }
.cr-payment-method-copy strong { color:#222; font-size:15px; }
.cr-payment-method-copy small { color:#777; font-size:12px; }
.cr-payment-method-check { position:absolute; right:14px; width:17px; height:17px; border:2px solid #aaa; border-radius:50%; }
.cr-payment-method-choice>input:checked + .cr-payment-method-card .cr-payment-method-check { border-color:#ab0000; box-shadow:inset 0 0 0 4px #fff; background:#ab0000; }
.cr-bank-payment-panel { margin-top:10px; padding-top:10px; border-top:1px dashed #ccc; }
.cr-bank-payment-title { text-align:center; color:#ab0000; font-weight:700; font-size:16px; margin-bottom:5px; }
.cr-bank-payment-help { text-align:center; color:#777; font-size:12px; margin:0 0 14px; }
.cr-bank-accounts-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.cr-bank-account-card { border:1px solid #ddd; border-radius:14px; padding:12px; background:#fff; overflow:hidden; }
.cr-bank-account-top { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.cr-bank-logo { width:42px; height:42px; object-fit:contain; border-radius:8px; background:#f7f7f7; }
.cr-bank-account-top>div { display:flex; flex-direction:column; gap:3px; }
.cr-bank-account-top strong { font-size:14px; }
.cr-bank-account-top span { color:#777; font-size:12px; }
.cr-bank-card-graphic { position:relative; width:100%; aspect-ratio:1.586; background-size:cover; background-position:center; border-radius:12px; overflow:hidden; margin-bottom:12px; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.cr-bank-card-graphic-logo { position:absolute; top:10%; right:7%; width:15%; height:auto; max-height:22%; object-fit:contain; }
.cr-bank-card-graphic-number { position:absolute; left:7%; right:7%; bottom:28%; text-align:center; font-weight:700; font-size:clamp(14px,2.1vw,24px); letter-spacing:1px; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.8); direction:ltr; }
.cr-bank-card-graphic-owner { position:absolute; right:7%; bottom:10%; font-size:clamp(10px,1.4vw,15px); color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.8); }
.cr-bank-copy-list { display:flex; flex-direction:column; gap:7px; }
.cr-copy-row { display:flex; align-items:center; gap:8px; padding:8px 9px; border:1px solid #eee; border-radius:9px; background:#fafafa; }
.cr-copy-row span { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; text-align:right; }
.cr-copy-row b { font-size:11px; color:#777; }
.cr-copy-row em { font-style:normal; font-size:13px; color:#222; direction:ltr; text-align:right; overflow-wrap:anywhere; }
.cr-copy-btn { border:0; border-radius:7px; background:#ab0000; color:#fff; padding:6px 10px; cursor:pointer; font-family:inherit; font-size:12px; transition:.2s; }
.cr-copy-btn:hover,.cr-copy-btn.cr-copied { background:#16833b; }
@media(max-width:900px){
 .cr-customer-payment-options,.cr-bank-accounts-list { grid-template-columns:1fr; }
 .cr-bank-card-graphic-number { font-size:clamp(13px,4vw,20px); }
}

/* ==========================
   پرداخت جدید و نمایش گرافیکی حساب‌ها
   ========================== */
.cr-payment-methods-card {
    overflow: visible;
}

.cr-payment-selector-help {
    text-align: center;
    color: #777;
    font-size: 13px;
    margin: -2px 0 16px;
}

.cr-payment-exact-amount {
    text-align: center;
    color: #333;
    font-size: 14px;
    font-weight: 600;
    margin: -6px 0 14px;
}

.cr-payment-exact-amount strong {
    color: #ab0000;
    font-weight: 700;
}

.cr-payment-method-fallback-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f3f3f3;
    color: #ab0000;
    font-weight: 800;
    font-size: 21px;
    flex: 0 0 46px;
}

.cr-bank-payment-panel {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px dashed #d2d2d2;
}

.cr-bank-payment-title {
    text-align: center;
    color: #ab0000;
    font-weight: 800;
    font-size: 17px;
    margin-bottom: 5px;
}

.cr-bank-payment-help {
    text-align: center;
    color: #777;
    font-size: 12px;
    margin: 0 0 15px;
}

.cr-bank-stack-shell {
    width: min(100%, 760px);
    margin: 0 auto;
    position: relative;
    padding: 12px 42px 22px;
}

.cr-bank-stack {
    position: relative;
    width: 100%;
    min-height: 160px;
    overflow: visible;
}

.cr-bank-stack-item {
    position: absolute;
    inset: 0;
    width: 100%;
    opacity: 0;
    pointer-events: none;
    transform-origin: 50% 50%;
    transition: transform .42s cubic-bezier(.2,.75,.25,1), opacity .3s ease, filter .42s ease;
}

.cr-bank-stack-item.is-active {
    z-index: 30;
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0,0,0) rotate(0deg) scale(1);
    filter: none;
}

.cr-bank-stack-item.is-next {
    z-index: 20;
    opacity: .92;
    pointer-events: auto;
    transform: translate3d(24px,18px,0) rotate(3.2deg) scale(.975);
    filter: saturate(.92);
}

.cr-bank-stack-item.is-next-2 {
    z-index: 10;
    opacity: .7;
    pointer-events: auto;
    transform: translate3d(43px,32px,0) rotate(5.5deg) scale(.95);
    filter: saturate(.82);
}

.cr-bank-stack-item.is-hidden {
    z-index: 1;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(55px,42px,0) rotate(7deg) scale(.92);
}

.cr-bank-stack-item.cr-card-leave-left {
    transform: translate3d(-34px,10px,0) rotate(-5deg) scale(.97) !important;
    opacity: .8 !important;
}

.cr-bank-stack-item.cr-card-leave-right {
    transform: translate3d(48px,20px,0) rotate(6deg) scale(.96) !important;
    opacity: .8 !important;
}

.cr-bank-stack-item.cr-card-bring-front {
    z-index: 40 !important;
    transform: translate3d(0,0,0) rotate(0deg) scale(1) !important;
    opacity: 1 !important;
}

.cr-bank-card-select {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: right;
}

.cr-bank-stack-item:not(.is-active) .cr-bank-card-select {
    cursor: pointer;
}

.cr-bank-visual {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 12px 28px rgba(0,0,0,.17);
    background: linear-gradient(135deg,#1c79b6,#0a4d7d);
    isolation: isolate;
}

.cr-bank-visual > img:first-child {
    display: block;
    width: 100%;
    height: auto;
    min-height: 130px;
    object-fit: cover;
}

.cr-bank-visual.no-template {
    min-height: 190px;
}

.cr-bank-visual-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0) 42%, rgba(0,25,50,.20) 100%);
    z-index: 1;
    pointer-events: none;
}

.cr-bank-card-logo {
    position: absolute;
    top: 9%;
    right: 5%;
    width: 58px !important;
    height: 58px !important;
    min-height: 0 !important;
    object-fit: contain !important;
    z-index: 3;
    border-radius: 10px;
    background: rgba(255,255,255,.88);
    padding: 5px;
    box-shadow: 0 3px 10px rgba(0,0,0,.1);
}

.cr-bank-card-number {
    position: absolute;
    z-index: 3;
    left: 7%;
    right: 7%;
    bottom: 22%;
    text-align: center;
    color: #063e70;
    font-size: clamp(16px,2.3vw,26px);
    font-weight: 800;
    letter-spacing: 1.3px;
    direction: ltr;
    text-shadow: 0 1px 0 rgba(255,255,255,.7);
    white-space: nowrap;
}

.cr-bank-card-owner {
    position: absolute;
    z-index: 3;
    right: 6%;
    bottom: 8%;
    color: #063e70;
    font-size: clamp(11px,1.45vw,16px);
    font-weight: 700;
    text-shadow: 0 1px 0 rgba(255,255,255,.7);
}

.cr-bank-card-bank-name {
    position: absolute;
    z-index: 3;
    left: 6%;
    bottom: 8%;
    color: #063e70;
    font-size: clamp(11px,1.45vw,16px);
    font-weight: 700;
    text-shadow: 0 1px 0 rgba(255,255,255,.7);
}

.cr-bank-nav {
    position: absolute;
    top: 50%;
    z-index: 60;
    width: 36px;
    height: 36px;
    margin-top: -18px;
    border: 1px solid #d5d5d5;
    border-radius: 50%;
    background: #fff;
    color: #ab0000;
    font-size: 27px;
    line-height: 30px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,.1);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cr-bank-nav:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 15px rgba(0,0,0,.15);
}

.cr-bank-prev { right: 0; }
.cr-bank-next { left: 0; }

.cr-bank-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 7px;
    margin: 2px 0 16px;
}

.cr-bank-dot {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #c9c9c9;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}

.cr-bank-dot.is-active {
    background: #ab0000;
    transform: scale(1.3);
}

.cr-bank-selected-info {
    width: min(100%, 700px);
    margin: 0 auto;
}

.cr-bank-info-panel {
    display: none;
    animation: crBankInfoIn .28s ease both;
}

.cr-bank-info-panel.is-active {
    display: block;
}

@keyframes crBankInfoIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

.cr-bank-info-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
    color: #222;
    font-size: 14px;
    font-weight: 800;
}

.cr-bank-info-heading span {
    color: #777;
    font-size: 12px;
    font-weight: 500;
}

.cr-bank-copy-list {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.cr-copy-row {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 9px;
    border: 1px solid #e7e7e7;
    border-radius: 10px;
    background: #fff;
}

.cr-copy-row > span {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: right;
}

.cr-copy-row b {
    color: #777;
    font-size: 11px;
    font-weight: 500;
}

.cr-copy-row em {
    font-style: normal;
    color: #222;
    font-size: 13px;
    direction: ltr;
    text-align: right;
    overflow-wrap: anywhere;
}

.cr-copy-btn {
    flex: 0 0 auto;
    border: 0;
    border-radius: 7px;
    background: #ab0000;
    color: #fff;
    padding: 6px 10px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    transition: background .2s ease, transform .15s ease;
}

.cr-copy-btn:hover {
    transform: translateY(-1px);
    background: #8e0000;
}

.cr-copy-btn.cr-copied {
    background: #16833b;
}

.cr-bank-empty {
    border: 1px dashed #d4d4d4;
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    color: #777;
    font-size: 13px;
    background: #fff;
}

@media (max-width: 900px) {
    .cr-payment-methods-card {
        overflow: visible;
    }

    .cr-bank-stack-shell {
        padding-left: 34px;
        padding-right: 34px;
    }

    .cr-bank-stack {
        min-height: 115px;
    }

    .cr-bank-visual {
        border-radius: 12px;
    }

    .cr-bank-visual > img:first-child {
        min-height: 0;
    }

    .cr-bank-card-logo {
        width: 42px !important;
        height: 42px !important;
        padding: 4px;
    }

    .cr-bank-card-number {
        font-size: clamp(13px,3.7vw,20px);
        letter-spacing: .7px;
        bottom: 22%;
    }

    .cr-bank-card-owner,
    .cr-bank-card-bank-name {
        font-size: 10px;
    }

    .cr-bank-nav {
        width: 32px;
        height: 32px;
        font-size: 23px;
        line-height: 27px;
        margin-top: -16px;
    }

    .cr-bank-info-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .cr-copy-row em {
        font-size: 12px;
    }
}

/* =========================================================
   کارت‌به‌کارت ساده و حرفه‌ای - بدون تصویر کارت و انیمیشن
   ========================================================= */
.cr-bank-payment-panel {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px dashed #d6d6d6;
}

.cr-bank-payment-title {
    text-align: center;
    color: #ab0000;
    font-weight: 800;
    font-size: 17px;
    margin-bottom: 6px;
}

.cr-bank-payment-help {
    text-align: center;
    color: #777;
    font-size: 12px;
    margin: 0 0 16px;
}

.cr-bank-account-options {
    width: min(100%, 760px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cr-bank-account-option {
    border: 1px solid #dedede;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.cr-bank-account-option:hover {
    border-color: #c8c8c8;
}

.cr-bank-account-option.is-selected {
    border-color: #b40000;
    box-shadow: 0 0 0 2px rgba(180,0,0,.06);
    background: #fffdfd;
}

.cr-bank-account-select {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 7px 12px;
    margin: 0;
    cursor: pointer;
    border-bottom: 1px solid #eeeeee;
}

.cr-bank-account-select input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.cr-bank-radio {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    border: 2px solid #aaa;
    border-radius: 50%;
    position: relative;
}

.cr-bank-account-select input:checked + .cr-bank-radio {
    border-color: #ab0000;
}

.cr-bank-account-select input:checked + .cr-bank-radio::after {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: #ab0000;
}

.cr-bank-account-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    font-size: 15px;
    color: #222;
}

.cr-bank-account-title img {
    width: 38px;
    height: 38px;
    object-fit: contain;
    border-radius: 8px;
    background: #f7f7f7;
    border: 1px solid #eee;
}

.cr-bank-details-table {
    width: 100%;
    background: #fff;
}

.cr-bank-detail-row {
    display: grid;
    grid-template-columns: 125px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 6px 14px;
    border-bottom: 1px solid #eeeeee;
}

.cr-bank-detail-row:last-child {
    border-bottom: 0;
}

.cr-bank-detail-label {
    color: #777;
    font-size: 12px;
    font-weight: 600;
    text-align: right;
}

.cr-bank-detail-value {
    color: #222;
    font-size: 19px;
    font-weight: 800;
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
}

.cr-bank-owner-value {
    direction: rtl;
    justify-self: stretch;
    text-align: right;
}

.cr-bank-detail-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-width: 0;
    direction: rtl;
}

.cr-bank-number-value {
    text-align: left;
    letter-spacing: .8px;
    font-family: inherit;
    direction: ltr;
    unicode-bidi: plaintext;
    white-space: nowrap;
}

.cr-bank-detail-row:nth-child(2) .cr-bank-detail-value {
    font-size: 21px;
    letter-spacing: 1.2px;
}

.cr-bank-detail-row:nth-child(3) .cr-bank-detail-value {
    font-size: 15px;
    letter-spacing: .7px;
}

.cr-copy-btn {
    min-width: 48px;
    height: 32px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    background: #ab0000;
    color: #fff;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    transition: background .18s ease, transform .15s ease;
    justify-self: end;
}

.cr-copy-btn:hover {
    background: #8f0000;
    transform: translateY(-1px);
}

.cr-copy-btn.cr-copied {
    background: #16833b;
}

.cr-order-success {
    text-align: center;
    padding: 26px 18px;
}

.cr-order-success-text {
    font-size: 14px;
    line-height: 2;
    color: #222;
    margin: 0 0 18px;
}

.cr-order-success-headline {
    font-size: 13px;
    white-space: nowrap;
}

.cr-order-success-actions {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}

.cr-success-btn {
    display: inline-block;
    min-width: 150px;
    padding: 12px 22px;
    border-radius: 10px;
    border: 2px solid #000;
    background: #ffd400;
    color: #000;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    cursor: pointer;
    transition: background .18s ease, color .18s ease;
}

.cr-success-btn:hover {
    background: #000;
    color: #ffd400;
    text-decoration: none;
}

.cr-success-btn:focus,
.cr-success-btn:active {
    outline: none !important;
    text-decoration: none !important;
}

.cr-success-btn:focus-visible {
    box-shadow: 0 0 0 3px rgba(171, 0, 0, .25);
}

.cr-payment-receipt-box {
    width: min(100%, 760px);
    margin: 8px auto 0;
    padding: 10px 12px;
    border: 1px solid #e1e1e1;
    border-radius: 12px;
    background: #fafafa;
}

.cr-payment-receipt-heading {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-bottom: 7px;
}

.cr-payment-receipt-icon {
    display: none;
}

.cr-payment-receipt-heading div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cr-payment-receipt-heading strong {
    font-size: 14px;
    color: #222;
}

.cr-payment-receipt-heading small {
    font-size: 10px;
    color: #777;
}

.cr-payment-receipt-input {
    display: none !important;
}

.cr-payment-receipt-upload {
    display: flex;
    width: fit-content;
    min-width: 180px;
    margin: 0 auto;
    padding: 10px 18px;
    border: 0;
    border-radius: 8px;
    background: #ab0000;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    align-items: center;
    justify-content: center;
}

.cr-payment-receipt-input:focus + .cr-payment-receipt-upload {
    box-shadow: 0 0 0 3px rgba(171, 0, 0, .25);
}

.cr-payment-receipt-preview {
    display: none;
    width: min(100%, 460px);
    margin: 7px auto 0;
    padding: 5px;
    border: 1px solid #ddd;
    border-radius: 9px;
    background: #fff;
    text-align: center;
}

.cr-payment-receipt-preview.is-visible {
    display: block;
}

.cr-payment-receipt-preview img {
    display: block;
    width: 100%;
    max-height: 280px;
    object-fit: contain;
    border-radius: 6px;
}

.cr-payment-receipt-preview.is-pdf {
    padding: 12px;
    color: #555;
    font-size: 12px;
}

.cr-payment-receipt-note {
    margin: 5px 2px 0;
    color: #999;
    font-size: 10px;
    text-align: center;
}

@media (max-width: 600px) {
    .cr-bank-detail-row {
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 5px;
        min-height: 42px;
        padding: 5px 9px;
    }

    .cr-bank-detail-label {
        font-size: 10px;
    }

    .cr-bank-detail-value {
        font-size: 16px;
    }

    .cr-bank-detail-row:nth-child(2) .cr-bank-detail-value {
        font-size: clamp(11px, 3.4vw, 14px);
        letter-spacing: .2px;
    }

    .cr-bank-detail-row:nth-child(3) .cr-bank-detail-value {
        font-size: clamp(10px, 2.8vw, 12px);
        letter-spacing: .1px;
    }

    .cr-copy-btn {
        min-width: 42px;
        height: 28px;
        padding: 0 7px;
        font-size: 11px;
    }

    .cr-payment-receipt-box {
        margin-top: 6px;
        padding: 8px 9px;
    }

    .cr-payment-receipt-upload {
        min-width: 165px;
        padding: 9px 15px;
    }

    .cr-order-success-headline {
        font-size: clamp(11px, 3.5vw, 13px);
    }
}

/* محصول و خدمات + کنترل‌های محصول — نسخه نهایی */
.cr-cart-table th:nth-child(2),
.cr-cart-table td:nth-child(2) {
    text-align: center;
}

.cr-product-cell {
    position: relative;
    width: 100%;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 5px 72px 5px 82px;
}

.cr-desktop-product-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    direction: ltr;
}

.cr-desktop-product-main .cr-product-name {
    direction: rtl;
}

.cr-product-name {
    display: inline-block;
    text-align: center;
}

.cr-cart-item-actions {
    width: 100%;
    margin-top: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    direction: rtl;
    gap: 6px;
}

.cr-product-details-btn,
.cr-product-remove-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: 34px;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid #111;
    border-radius: 7px;
    background: #fff;
    color: #111;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
    cursor: pointer;
    transition: none !important;
    box-shadow: none !important;
}

/* جزئیات: بدون هاور */
.cr-product-details-btn:hover,
.cr-product-details-btn:focus,
.cr-product-details-btn:active {
    background: #fff !important;
    border-color: #111 !important;
    color: #111 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* حذف: قرمز ثابت، بدون هاور */
.cr-product-remove-btn {
    background: #ed0000 !important;
    border-color: #ed0000 !important;
    color: #fff !important;
}

.cr-product-remove-btn:hover,
.cr-product-remove-btn:focus,
.cr-product-remove-btn:active {
    background: #ed0000 !important;
    border-color: #ed0000 !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

.cr-mobile-actions {
    display: none;
}

.cr-desktop-details {
    flex: 0 0 auto;
}

.cr-desktop-remove {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
}

.cr-product-remove-btn.cr-loading {
    opacity: .65;
    cursor: wait;
}

.cr-detail-icon-img,
.cr-detail-icon-mobile,
.cr-detail-icon-desktop {
    display: none !important;
}

.cr-order-success-image-wrap {
    width: 128px;
    height: 128px;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 18px;
}

.cr-order-success-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cr-order-success-headline {
    white-space: normal !important;
}

@media (max-width: 900px) {
    .cr-cart-table .cr-col-sum {
        width: 42%;
        white-space: normal;
        vertical-align: middle;
    }

    .cr-cart-price {
        line-height: 1.8;
        white-space: nowrap;
    }

    .cr-mobile-actions {
        display: flex;
        justify-content: center;
        margin-top: 7px;
        gap: 6px;
    }

    .cr-desktop-product-main {
        display: block !important;
        width: 100%;
        text-align: center;
    }

    .cr-desktop-details,
    .cr-desktop-remove {
        display: none !important;
    }

    .cr-product-cell {
        min-height: 0;
        padding: 5px 6px;
        display: block;
    }

    .cr-product-name {
        display: inline-block;
        text-align: center;
    }

    .cr-product-details-btn,
    .cr-product-remove-btn {
        position: static;
        transform: none;
        height: 32px;
        min-height: 32px;
        padding: 6px 10px;
        font-size: 11px;
    }

    .cr-order-success {
        padding: 20px 12px;
    }

    .cr-order-success-image-wrap {
        width: 105px;
        height: 105px;
        margin-bottom: 12px;
    }
}


/* Mobile typography cache-safe reinforcement only */
@media (max-width: 900px) {
    .cr-checkout-wrapper,
    .cr-checkout-wrapper * {
        font-family: Vazirmatn, sans-serif !important;
    }
}


/* Mobile-only typography: exactly 1px smaller; no layout/logic changes */
@media (max-width: 900px) {
    .cr-page-title { font-size: 22px !important; }
    .cr-order-number { font-size: 14px !important; }
    .cr-card-title { font-size: 17px !important; }
    .cr-field label { font-size: 13px !important; }
    .cr-field input { font-size: 14px !important; }
    .cr-radio { font-size: 16px !important; }
    .cr-shipping-guide-btn { font-size: 12px !important; }
    .cr-guide-modal-text { font-size: 14px !important; }
    .cr-payment-note { font-size: 12px !important; }
    .cr-description-text { font-size: 13px !important; }
    .cr-customer-note { font-size: 13px !important; }
    .cr-cart-table { font-size: 14px !important; }
    .cr-qty { font-size: 12px !important; }
    .cr-codes-toggle-text { font-size: 14px !important; }
    .cr-code-row input { font-size: 14px !important; }
    .cr-code-apply { font-size: 13px !important; }
    .cr-code-message { font-size: 12px !important; }
    .cr-total-label { font-size: 14px !important; }
    .cr-total-value { font-size: 14px !important; }
    .cr-total-payable .cr-total-value,
.cr-total-payable .cr-total-label { font-size: 15px !important; }
    .cr-form-error { font-size: 13px !important; }
    .cr-checkout-pay-btn { font-size: 16px !important; }
    .cr-modal-close { font-size: 16px !important; }
    .cr-modal-title { font-size: 16px !important; }
    .cr-modal-details { font-size: 13px !important; }
    .cr-payment-method-copy strong { font-size: 14px !important; }
    .cr-payment-method-copy small { font-size: 11px !important; }
    .cr-bank-account-top strong { font-size: 13px !important; }
    .cr-bank-account-top span { font-size: 11px !important; }
    .cr-bank-card-graphic-number { font-size: calc((clamp(14px,2.1vw,24px)) - 1px) !important; }
    .cr-bank-card-graphic-owner { font-size: calc((clamp(10px,1.4vw,15px)) - 1px) !important; }
    .cr-payment-selector-help { font-size: 12px !important; }
    .cr-payment-method-fallback-icon { font-size: 20px !important; }
    .cr-bank-card-number { font-size: calc((clamp(16px,2.3vw,26px)) - 1px) !important; }
    .cr-bank-card-owner { font-size: calc((clamp(11px,1.45vw,16px)) - 1px) !important; }
    .cr-bank-card-bank-name { font-size: calc((clamp(11px,1.45vw,16px)) - 1px) !important; }
    .cr-bank-nav { font-size: 26px !important; }
    .cr-bank-info-heading { font-size: 13px !important; }
    .cr-bank-info-heading span { font-size: 11px !important; }
    .cr-copy-row b { font-size: 10px !important; }
    .cr-copy-row em { font-size: 12px !important; }
    .cr-bank-empty { font-size: 12px !important; }
    .cr-bank-payment-title { font-size: 16px !important; }
    .cr-bank-payment-help { font-size: 11px !important; }
    .cr-bank-account-title { font-size: 14px !important; }
    .cr-bank-detail-label { font-size: 11px !important; }
    .cr-bank-detail-value { font-size: 18px !important; }
    .cr-bank-detail-row:nth-child(2) .cr-bank-detail-value { font-size: 20px !important; }
    .cr-bank-detail-row:nth-child(3) .cr-bank-detail-value { font-size: 14px !important; }
    .cr-copy-btn { font-size: 11px !important; }
    .cr-order-success-text { font-size: 13px !important; }
    .cr-order-success-headline { font-size: 12px !important; }
    .cr-success-btn { font-size: 14px !important; }
    .cr-payment-receipt-heading strong { font-size: 13px !important; }
    .cr-payment-receipt-heading small { font-size: 9px !important; }
    .cr-payment-receipt-upload { font-size: 12px !important; }
    .cr-payment-receipt-preview.is-pdf { font-size: 11px !important; }
    .cr-payment-receipt-note { font-size: 9px !important; }
    .cr-product-details-btn,
.cr-product-remove-btn { font-size: 11px !important; }
}
@media (max-width: 900px) {
    .cr-customer-note { font-size: 11px !important; }
}
@media (max-width:900px) {
    .cr-bank-card-graphic-number { font-size: calc((clamp(13px,4vw,20px)) - 1px) !important; }
}
@media (max-width: 900px) {
    .cr-bank-card-number { font-size: calc((clamp(13px,3.7vw,20px)) - 1px) !important; }
    .cr-bank-card-owner,
    .cr-bank-card-bank-name { font-size: 9px !important; }
    .cr-bank-nav { font-size: 22px !important; }
    .cr-copy-row em { font-size: 11px !important; }
}
@media (max-width: 600px) {
    .cr-bank-detail-label { font-size: 9px !important; }
    .cr-bank-detail-value { font-size: 15px !important; }
    .cr-bank-detail-row:nth-child(2) .cr-bank-detail-value { font-size: calc((clamp(11px, 3.4vw, 14px)) - 1px) !important; }
    .cr-bank-detail-row:nth-child(3) .cr-bank-detail-value { font-size: calc((clamp(10px, 2.8vw, 12px)) - 1px) !important; }
    .cr-copy-btn { font-size: 10px !important; }
    .cr-order-success-headline { font-size: calc((clamp(11px, 3.5vw, 13px)) - 1px) !important; }
}
@media (max-width: 900px) {
    .cr-product-details-btn,
    .cr-product-remove-btn { font-size: 10px !important; }
}

/* v2.9.9 — mobile-only bank/payment refinements */
@media (max-width: 900px) {
    /* Keep account owner name immediately next to its label on mobile. */
    .cr-bank-detail-row:first-child {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 4px !important;
    }

    .cr-bank-detail-row:first-child .cr-bank-detail-label,
    .cr-bank-detail-row:first-child .cr-bank-owner-value {
        flex: 0 0 auto !important;
        width: auto !important;
        justify-self: auto !important;
    }

    /* +2px compared with the current mobile sizes. */
    .cr-bank-detail-row:nth-child(2) .cr-bank-detail-value {
        font-size: 22px !important;
    }

    .cr-bank-detail-row:nth-child(3) .cr-bank-detail-value {
        font-size: 16px !important;
    }
}

@media (max-width: 600px) {
    /* Preserve the responsive scale, but make both values exactly 2px larger than before. */
    .cr-bank-detail-row:nth-child(2) .cr-bank-detail-value {
        font-size: calc(clamp(11px, 3.4vw, 14px) + 1px) !important;
    }

    .cr-bank-detail-row:nth-child(3) .cr-bank-detail-value {
        font-size: calc(clamp(10px, 2.8vw, 12px) + 1px) !important;
    }
}

/* اصلاح نمایش جزئیات انتخاب‌شده در پاپ‌آپ محصول - دسکتاپ و موبایل */
.cr-modal-meta dl.variation {
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr);
    column-gap: 8px;
    row-gap: 7px;
    align-items: start;
}

.cr-modal-meta dl.variation dt,
.cr-modal-meta dl.variation dd {
    float: none !important;
    clear: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    line-height: 1.8;
}

.cr-modal-meta dl.variation dt {
    font-weight: 600;
    white-space: nowrap;
}

.cr-modal-meta dl.variation dd {
    min-width: 0;
    overflow-wrap: anywhere;
}

.cr-modal-meta dl.variation dd p {
    margin: 0 !important;
    padding: 0 !important;
}

/* مبلغ‌های داخل جزئیات انتخاب‌شده */
.cr-modal-meta .amount,
.cr-modal-meta .woocommerce-Price-amount,
.cr-modal-meta .woocommerce-Price-amount bdi,
.cr-modal-meta bdi {
    color: #ab0000 !important;
}

@media (max-width: 900px) {
    .cr-modal-meta dl.variation {
        grid-template-columns: max-content minmax(0, 1fr);
        column-gap: 6px;
        row-gap: 6px;
    }
}

/* ===== 2.9.15: تصویر آپلودشده داخل پاپ‌آپ جزئیات محصول ===== */
.cr-modal-meta dl.variation dt.cr-upload-label {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    margin: 2px 0 0 !important;
    text-align: right !important;
}

.cr-modal-meta dl.variation dd.cr-upload-value {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: -2px 0 7px !important;
    padding: 0 !important;
    text-align: right !important;
    overflow: hidden !important;
}

.cr-modal-meta dl.variation dd.cr-upload-value p {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: right !important;
}

.cr-modal-meta .cr-upload-value a {
    display: block !important;
    width: max-content !important;
    max-width: 100% !important;
    margin: 4px 0 0 auto !important;
    padding: 0 !important;
    text-align: right !important;
}

.cr-modal-meta .cr-upload-value img,
.cr-modal-meta .cr-upload-preview-image {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 150px !important;
    max-height: 190px !important;
    margin: 4px 0 0 auto !important;
    padding: 0 !important;
    object-fit: contain !important;
    border: 1px solid #e1e1e1 !important;
    border-radius: 7px !important;
    box-sizing: border-box !important;
    cursor: zoom-in !important;
}

.cr-upload-lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1000005 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
    background: rgba(0, 0, 0, .88) !important;
    box-sizing: border-box !important;
}

.cr-upload-lightbox.cr-upload-lightbox-open {
    display: flex !important;
}

.cr-upload-lightbox-image {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 94vw !important;
    max-height: 88vh !important;
    object-fit: contain !important;
    border-radius: 8px !important;
    background: #fff !important;
}

.cr-upload-lightbox-close {
    position: fixed !important;
    top: 14px !important;
    right: 16px !important;
    z-index: 1000006 !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.18) !important;
    color: #fff !important;
    font-size: 30px !important;
    line-height: 42px !important;
    text-align: center !important;
    cursor: pointer !important;
}

body.cr-upload-lightbox-lock {
    overflow: hidden !important;
}

@media (max-width: 600px) {
    .cr-modal-meta .cr-upload-value img,
    .cr-modal-meta .cr-upload-preview-image {
        max-width: 125px !important;
        max-height: 165px !important;
    }
}


/* ===== 2.9.23: مرتب‌سازی روش‌های ارسال در موبایل ===== */
@media (max-width: 600px) {
    .cr-shipping-options {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        justify-content: stretch !important;
    }

    .cr-shipping-options .cr-radio {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        min-width: 0 !important;
        min-height: 52px !important;
        margin: 0 !important;
        padding: 7px 27px 7px 7px !important;
        box-sizing: border-box !important;
        border: 1px solid #e1e1e1 !important;
        border-radius: 10px !important;
        background: #fff !important;
        font-size: 14px !important;
        line-height: 1.35 !important;
        text-align: center !important;
    }

    .cr-shipping-options .cr-radio:has(input:checked) {
        border-color: #ffd400 !important;
        box-shadow: 0 0 0 1px #ffd400 inset !important;
        background: #fffdf4 !important;
    }

    .cr-shipping-options .cr-radio-dot {
        position: absolute !important;
        right: 7px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 17px !important;
        height: 17px !important;
        flex: 0 0 17px !important;
        box-sizing: border-box !important;
    }

    .cr-shipping-options .cr-shipping-logo {
        width: 22px !important;
        height: 22px !important;
        flex: 0 0 22px !important;
        object-fit: contain !important;
    }

    .cr-shipping-options .cr-radio > span:last-child {
        min-width: 0 !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        text-align: center !important;
    }
}
