/* [OFFSIDE-FILE]
 * مسئولیت: یگانه مالک ظاهر کارت محصول در حلقه، خانه، مرتبط، شورت‌کد، بلوک و پیش‌نمایش مدیریت.
 * منبع حقیقت: varza_core_product_card_css_variables؛ انتخاب‌گرهای هم‌نقش فقط ساختارهای ووکامرس را به همان اجزای مشترک وصل می‌کنند.
 * ویژگی‌های ظاهر این مؤلفه بر inline style و utilityهای ووکامرس اولویت دارند؛ عرض درصد امتیاز و متغیرهای فرم دست‌نخورده‌اند.
 * هیچ فایل قالب یا مدیریت نباید ظاهر اجزای داخلی کارت را بازنویسی کند؛ فقط چیدمان فهرست بیرونی مجاز است.
 */

/* [OFFSIDE-CSS:card-owner-frame] قاب واحد و پنج خانه ثابت؛ نوع صفحه و وجود امتیاز/قیمت استایل جداگانه ندارند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) {

    --varza-card-title-slot: calc(var(--varza-product-title-size) * 2.7 + var(--varza-product-element-gap) / 2);
    --varza-card-rating-slot: calc(var(--varza-product-rating-size) * 1.2 + 8px);
    --varza-card-price-slot: calc(max(var(--varza-product-price-size), var(--varza-product-currency-size)) * 2.5 + var(--varza-product-price-gap) / 2 + 8px);
    position: relative !important;
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto var(--varza-card-title-slot) var(--varza-card-rating-slot) var(--varza-card-price-slot) var(--varza-product-button-height);
    align-content: start;
    align-self: stretch;
    width: auto !important;
    max-width: none;
    min-width: 0;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: var(--varza-product-card-padding) !important;
    float: none;
    list-style: none;
    border: 1px solid var(--varza-product-card-border) !important;
    border-radius: var(--varza-product-card-radius) !important;
    background: var(--varza-product-card-bg) !important;
    color: var(--varza-product-title-color) !important;
    font-family: "Vazirmatn FaNum", system-ui, sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    letter-spacing: normal !important;
    direction: rtl;
    text-align: right;
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

/* [OFFSIDE-CSS:card-owner-box] مدل جعبه در مدیریت و سایت یکسان است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) * {
    box-sizing: border-box;
}

/* [OFFSIDE-CSS:card-owner-hover] تعامل قاب در پیش‌نمایش و تمام محل‌های سایت یکسان است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product):hover {
    border-color: color-mix(in srgb, var(--varza-color-accent, #B8FF00) 55%, var(--varza-product-card-border));
    box-shadow: 0 14px 30px rgba(0, 0, 0, .2) !important;
    transform: translateY(-3px);
}

/* [OFFSIDE-CSS:card-owner-link-adapter] پیوند اصلی یک جعبه قابل فوکوس باقی می‌ماند و با subgrid همان خانه‌های شبکه مادر را مصرف می‌کند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) > :is(a.woocommerce-loop-product__link, a.wc-block-grid__product-link) {
    display: grid !important;
    grid-area: 1 / 1 / 5 / 2;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: subgrid;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    color: inherit !important;
    text-decoration: none !important;
}

/* [OFFSIDE-CSS:card-owner-legacy-link-span] پیوند بلوک قدیمی فقط دو خانه تصویر/عنوان را می‌پوشاند؛ ظاهر اجزا همان تعریف مشترک است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) > a.wc-block-grid__product-link { grid-row: 1 / span 2; }

/* [OFFSIDE-CSS:card-owner-image] قاب تصویر واحد با نسبت و برش قابل تنظیم. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.varza-loop-product-image, .wc-block-grid__product-image, .wp-block-woocommerce-product-image) {
    position: static !important;
    display: block !important;
    grid-area: 1 / 1;
    width: 100%;
    min-width: 0;
    height: auto !important;
    aspect-ratio: var(--varza-product-image-ratio) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: 0 !important;
    border-radius: var(--varza-product-image-radius) !important;
    background: var(--varza-color-bg, #080A0A) !important;
}

/* [OFFSIDE-CSS:card-owner-image-adapter] پیوند و قاب درونی بلوک، تصویر تازه یا اندازه مستقل ایجاد نمی‌کنند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.varza-loop-product-image, .wc-block-grid__product-image, .wp-block-woocommerce-product-image) :is(a, .wc-block-components-product-image__inner-container) {
    position: static !important;
    display: block !important;
    width: 100%;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: auto !important;
}

/* [OFFSIDE-CSS:card-owner-image-file] ابعاد و object-fit فایل در همه ساختارها مشترک‌اند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.varza-loop-product-image, .wc-block-grid__product-image, .wp-block-woocommerce-product-image) img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    aspect-ratio: auto !important;
    object-fit: var(--varza-product-image-fit) !important;
}

/* [OFFSIDE-CSS:card-owner-title] عنوان دوخطی فشرده با فاصله نصف تنظیم عمومی؛ ارتفاع مشترک حفظ می‌شود. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.woocommerce-loop-product__title, .wc-block-grid__product-title, .wp-block-post-title) {
    display: -webkit-box !important;
    grid-area: 2 / 1;
    align-self: end;
    width: auto;
    height: auto !important;
    min-height: 0 !important;
    max-height: 2.7em !important;
    margin: calc(var(--varza-product-element-gap) / 2) 0 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: var(--varza-product-title-color) !important;
    font-family: inherit !important;
    font-size: var(--varza-product-title-size) !important;
    font-weight: 700 !important;
    font-style: normal !important;
    line-height: 1.35 !important;
    letter-spacing: normal !important;
    text-align: right;
    text-decoration: none !important;
    text-transform: none !important;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* [OFFSIDE-CSS:card-owner-title-link] پیوند عنوان بلوک از ظاهر عنوان مشترک پیروی می‌کند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.woocommerce-loop-product__title, .wc-block-grid__product-title, .wp-block-post-title) a {
    color: inherit !important;
    font: inherit !important;
    text-decoration: none !important;
}

/* [OFFSIDE-CSS:card-owner-rating-slot] هر ساختار امتیاز فقط در خانه سوم و با چهار پیکسل فاصله بالا/پایین قرار می‌گیرد. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) > :is(.star-rating, .wc-block-grid__product-rating, .wp-block-woocommerce-product-rating),
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) > a.woocommerce-loop-product__link > .star-rating {
    grid-area: 3 / 1;
    align-self: center;
    min-width: 0;
    width: 100%;
    height: calc(var(--varza-product-rating-size) * 1.2) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: var(--varza-product-rating-size) !important;
    line-height: 1.2 !important;
}

/* [OFFSIDE-CSS:card-owner-stars] یک نشان ستاره با یک قلم و ارتفاع؛ متن دسترس‌پذیر و عرض امتیاز واقعی حفظ است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.star-rating, .wc-block-components-product-rating__stars) {
    position: relative !important;
    display: block !important;
    float: none;
    width: max-content !important;
    height: 1.2em !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: transparent !important;
    direction: ltr;
    font-family: Arial, sans-serif !important;
    font-size: var(--varza-product-rating-size) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: .06em !important;
    text-align: right;
    white-space: nowrap;
}

/* [OFFSIDE-CSS:card-owner-stars-empty] پنج ستاره خالی مشترک. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.star-rating, .wc-block-components-product-rating__stars)::before {
    position: static !important;
    inset: 0 0 auto auto;
    content: "\2605\2605\2605\2605\2605";
    color: var(--varza-color-border, #29322E) !important;
    font: inherit !important;
    letter-spacing: inherit !important;
}

/* [OFFSIDE-CSS:card-owner-stars-fill] درصد پرشدگی از داده ووکامرس باقی می‌ماند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.star-rating, .wc-block-components-product-rating__stars) > span {
    position: absolute !important;
    inset: 0 0 auto auto;
    display: block !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: transparent !important;
    font-size: 0 !important;
    line-height: inherit !important;
}

/* [OFFSIDE-CSS:card-owner-stars-fill-glyph] شکل ستاره پر نیز فقط یک تعریف دارد. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.star-rating, .wc-block-components-product-rating__stars) > span::before {
    position: absolute !important;
    inset: 0 0 auto auto;
    content: "\2605\2605\2605\2605\2605";
    color: var(--varza-color-accent, #B8FF00) !important;
    font: 400 var(--varza-product-rating-size)/1.2 Arial, sans-serif !important;
    letter-spacing: .06em !important;
}

/* [OFFSIDE-CSS:card-owner-price] مبلغ تک/دوگانه یا غایب فضای ثابت فشرده دارد و در مرکز عمودی آن قرار می‌گیرد. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.price, .wc-block-grid__product-price, .wp-block-woocommerce-product-price) {
    display: flex !important;
    grid-area: 4 / 1;
    flex-wrap: wrap;
    align-content: center;
    align-items: baseline;
    gap: calc(var(--varza-product-price-gap) / 2);
    width: 100%;
    height: var(--varza-card-price-slot) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: var(--varza-product-price-color) !important;
    font-family: inherit !important;
    font-size: var(--varza-product-price-size) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: right;
}

/* [OFFSIDE-CSS:card-owner-price-inner] قاب مبلغ بلوک از همان typography و gap استفاده می‌کند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) .wc-block-components-product-price {
    display: flex !important;
    flex-wrap: wrap;
    align-items: baseline;
    gap: calc(var(--varza-product-price-gap) / 2);
    margin: 0 !important;
    color: inherit !important;
    font: inherit !important;
}

/* [OFFSIDE-CSS:card-owner-old-price] قیمت قبلی در تمام کارت‌ها یکسان است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(del, .wc-block-components-product-price__regular) {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--varza-product-old-price-color) !important;
    opacity: 1;
    font: inherit !important;
    text-decoration: line-through !important;
}

/* [OFFSIDE-CSS:card-owner-current-price] قیمت فعلی بدون رنگ یا زیرخط مستقل است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(ins, .wc-block-components-product-price__value) {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--varza-product-price-color) !important;
    font: inherit !important;
    text-decoration: none !important;
}

/* [OFFSIDE-CSS:card-owner-amount] عدد و واحد روی یک خط و ترتیب ثابت باقی می‌مانند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) .woocommerce-Price-amount > bdi {
    position: relative !important;
    display: inline-flex !important;
    align-items: baseline;
    gap: .35em;
    direction: ltr;
    white-space: nowrap;
}

/* [OFFSIDE-CSS:card-owner-currency] اندازه و جای واحد پول فقط از همین قرارداد است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) .woocommerce-Price-currencySymbol {
    display: inline-block !important;
    order: -1;
    flex: none;
    margin: 0 !important;
    padding: 0 !important;
    font-size: var(--varza-product-currency-size) !important;
    white-space: nowrap;
}

/* [OFFSIDE-CSS:card-owner-old-strike] خط پیوسته روی مبلغ قبلی، در همه ساختارها. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) del .woocommerce-Price-amount > bdi::after {
    position: absolute !important;
    top: 50%;
    right: 0;
    left: 0;
    border-top: 1px solid currentColor;
    content: "";
    pointer-events: none;
}

/* [OFFSIDE-CSS:card-owner-action-slot] دکمه یا wrapper آن فقط خانه پنجم را مصرف می‌کند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) > :is(.button, .wc-block-grid__product-add-to-cart, .wp-block-woocommerce-product-button) {
    grid-area: 5 / 1;
    width: 100%;
    height: var(--varza-product-button-height) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* [OFFSIDE-CSS:card-owner-button] ظاهر و ابعاد تنها دکمه مشترک؛ handler خرید دست‌نخورده است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) > :is(a.button, button.button),
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.wc-block-grid__product-add-to-cart, .wp-block-woocommerce-product-button) :is(a.wp-block-button__link, button) {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: var(--varza-product-button-height) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 4px 10px !important;
    overflow: hidden;
    border: 1px solid var(--varza-product-button-bg) !important;
    border-radius: var(--varza-product-button-radius) !important;
    background: var(--varza-product-button-bg) !important;
    color: var(--varza-product-button-text) !important;
    font-family: inherit !important;
    font-size: var(--varza-product-button-size) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-align: center;
    text-decoration: none !important;
    text-transform: none !important;
    text-shadow: none !important;
    box-shadow: none !important;
    white-space: nowrap;
    cursor: pointer;
}

/* [OFFSIDE-CSS:card-owner-button-interaction] هاور دکمه استایل دیگری تولید نمی‌کند. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) > :is(a.button, button.button):is(:hover, :focus-visible),
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.wc-block-grid__product-add-to-cart, .wp-block-woocommerce-product-button) :is(a.wp-block-button__link, button):is(:hover, :focus-visible) {
    border-color: var(--varza-product-button-bg);
    background: var(--varza-product-button-bg) !important;
    color: var(--varza-product-button-text) !important;
}

/* [OFFSIDE-CSS:card-owner-focus] فوکوس قابل دیدن در همه کارت‌ها. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(a, button):focus-visible {
    outline: 2px solid var(--varza-color-accent, #B8FF00);
    outline-offset: 3px;
}

/* [OFFSIDE-CSS:card-owner-badge] نشان تخفیف در تمام ساختارها خارج از جریان و با یک استایل. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) :is(.onsale, .wc-block-grid__product-onsale, .wc-block-components-product-sale-badge) {
    position: absolute !important;
    z-index: 2;
    inset: var(--varza-product-card-padding) var(--varza-product-card-padding) auto auto;
    display: inline-flex !important;
    width: max-content;
    min-width: 42px;
    min-height: 28px !important;
    max-width: calc(100% - var(--varza-product-card-padding) * 2);
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 4px 10px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--varza-color-accent, #B8FF00) !important;
    color: var(--varza-color-accent-text, #101500) !important;
    font-family: inherit !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    white-space: nowrap;
}

/* [OFFSIDE-CSS:card-owner-accessible-text] متن کمکی ووکامرس در مدیریت هم دسترس‌پذیر و خارج از اندازه‌گیری بصری است. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0 !important;
}

/* [OFFSIDE-CSS:card-owner-rating-container] wrapper امتیاز بلوک اندازه و حاشیه مستقلی ندارد. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product) .wc-block-components-product-rating__container {
    display: block !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
}

/* [OFFSIDE-CSS:card-owner-main-link-focus] فوکوس پیوند اصلی در همه ساختارها روی قاب نیز دیده می‌شود. */
html :is(body, .woocommerce, .woocommerce-page, .varza-home, .varza-search-page, .varza-product-card-settings-page) :is(ul.products > li.product, .wc-block-grid__products > .wc-block-grid__product, .wc-block-product-template > .wc-block-product):has(> a.woocommerce-loop-product__link:focus-visible, > a.wc-block-grid__product-link:focus-visible) { outline: 2px solid var(--varza-color-accent, #B8FF00); outline-offset: 3px; }

/* Layout adapters below set list columns/gaps only; card appearance above has one definition per role. */
/* [OFFSIDE-CSS:card-list-preview] فقط چیدمان فهرست پیش‌نمایش، بدون تغییر خود کارت. */
.varza-card-preview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--varza-product-grid-gap);
    margin: 0;
    padding: 0;
    list-style: none;
}

/* [OFFSIDE-CSS:card-collection-gap] فاصله کارت‌های مجموعه جدید از همان تنظیم مشترک است. */
.wc-block-product-template { gap: var(--varza-product-grid-gap); }
/* [OFFSIDE-CSS:card-legacy-grid-gap] حفظ تعداد ستون‌های بلوک قدیمی با فاصله قابل تنظیم، بدون جمع‌شدن درصد عرض و gap. */
.wc-block-grid .wc-block-grid__products { display: grid; grid-template-columns: repeat(var(--varza-block-columns, 3), minmax(0, 1fr)); gap: var(--varza-product-grid-gap); margin: 0; padding: 0; }
/* [OFFSIDE-CSS:card-legacy-column-count] تعداد ستون انتخاب‌شده در بلوک به شبکه منتقل می‌شود. */
.wc-block-grid.has-1-columns { --varza-block-columns: 1; }
/* [OFFSIDE-CSS:card-legacy-two-columns] دو ستون بلوک. */
.wc-block-grid.has-2-columns { --varza-block-columns: 2; }
/* [OFFSIDE-CSS:card-legacy-three-columns] سه ستون بلوک. */
.wc-block-grid.has-3-columns { --varza-block-columns: 3; }
/* [OFFSIDE-CSS:card-legacy-four-columns] چهار ستون بلوک. */
.wc-block-grid.has-4-columns { --varza-block-columns: 4; }
/* [OFFSIDE-CSS:card-legacy-five-columns] پنج ستون بلوک. */
.wc-block-grid.has-5-columns { --varza-block-columns: 5; }
/* [OFFSIDE-CSS:card-legacy-six-columns] شش ستون بلوک. */
.wc-block-grid.has-6-columns { --varza-block-columns: 6; }
/* [OFFSIDE-CSS:card-legacy-mobile-columns] بلوک قدیمی در موبایل بدون تحمیل عرض دسکتاپ. */
@media (max-width: 767px) { .wc-block-grid .wc-block-grid__products { grid-template-columns: repeat(min(2, var(--varza-block-columns, 3)), minmax(0, 1fr)); } }
/* [OFFSIDE-CSS:card-legacy-small-columns] نمای باریک بلوک قدیمی تک‌ستونه است. */
@media (max-width: 480px) { .wc-block-grid .wc-block-grid__products { grid-template-columns: minmax(0, 1fr); } }
