/**
 * Sharif typography system — local Vazir 16.1.0
 * Layout-specific product-card rules intentionally live in their own scoped
 * component stylesheets; this file owns typography and single-product reading.
 */

:root {
    --sharif-font: 'Vazir', Tahoma, Arial, sans-serif;
    --sharif-accent: #64a39a;
    --sharif-accent-dark: #4f8b84;
    --sharif-accent-soft: #eef7f5;
    --sharif-text: #172033;
    --sharif-text-soft: #667085;
    --sharif-border: rgba(23, 32, 51, .10);
}

html,
body,
button,
input,
select,
textarea,
.ast-button,
.ast-custom-button,
.woocommerce,
.woocommerce-page,
.site-header,
.site-footer,
.main-header-menu,
.ast-builder-menu,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.elementor-button,
.elementor-nav-menu,
.wp-block-button__link,
.wp-element-button {
    font-family: var(--sharif-font) !important;
    letter-spacing: 0;
}

/*
 * Elementor بعضی خانواده‌های قبلی را با selector اختصاصی داخل CSS هر صفحه
 * می‌نویسد. همه عناصر متنی با Vazir یکسان می‌شوند، ولی i و کلاس‌های آیکن عمداً
 * خارج هستند تا Font Awesome و آیکن‌های Elementor آسیب نبینند.
 */
body :where(
    p,
    a,
    span:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.eicon),
    strong,
    b,
    em,
    small,
    label,
    li,
    dt,
    dd,
    td,
    th,
    blockquote,
    figcaption,
    summary,
    button,
    input,
    select,
    textarea
) {
    font-family: var(--sharif-font) !important;
    letter-spacing: 0 !important;
}

body {
    color: var(--sharif-text);
    font-weight: 400;
    line-height: 1.8;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6,
.entry-title,
.widget-title,
.woocommerce-loop-product__title,
.woocommerce div.product .product_title {
    font-family: var(--sharif-font) !important;
    letter-spacing: 0 !important;
}

h1 { font-weight: 700; line-height: 1.5; }
h2 { font-weight: 700; line-height: 1.58; }
h3 { font-weight: 700; line-height: 1.65; }
h4,
h5,
h6 { font-weight: 500; line-height: 1.72; }

button,
input[type='button'],
input[type='submit'],
input[type='reset'],
.ast-button,
.ast-custom-button,
.elementor-button,
.wp-block-button__link,
.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    font-family: var(--sharif-font) !important;
    font-weight: 700;
    letter-spacing: 0 !important;
    line-height: 1.5 !important;
    text-rendering: optimizeLegibility;
}

input,
select,
textarea {
    font-family: var(--sharif-font) !important;
    font-weight: 400;
    line-height: 1.7;
}

input::placeholder,
textarea::placeholder {
    color: #a3adba;
    font-family: var(--sharif-font) !important;
    font-weight: 300;
    opacity: 1;
}

/* ---------- Single product readability ---------- */
body.single-product div.product .product_title {
    margin-bottom: 14px !important;
    color: var(--sharif-text) !important;
    font-size: clamp(25px, 2.3vw, 34px) !important;
    font-weight: 700 !important;
    line-height: 1.6 !important;
}

body.single-product div.product .woocommerce-product-details__short-description,
body.single-product div.product .woocommerce-product-details__short-description p {
    color: #465569 !important;
    font-size: 15.5px !important;
    font-weight: 400 !important;
    line-height: 2 !important;
}

body.single-product div.product p.price,
body.single-product div.product span.price {
    color: var(--sharif-text) !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.8 !important;
}

body.single-product div.product p.price .amount,
body.single-product div.product span.price .amount,
body.single-product div.product p.price bdi,
body.single-product div.product span.price bdi {
    direction: rtl;
    unicode-bidi: isolate;
    white-space: nowrap;
}

body.single-product div.product form.cart,
body.single-product div.product .variations,
body.single-product div.product .product_meta {
    font-size: 14px !important;
    line-height: 1.9 !important;
}

body.single-product div.product form.cart .variations select,
body.single-product div.product form.cart .quantity input.qty {
    min-height: 46px;
    border: 1px solid rgba(23, 32, 51, .12);
    border-radius: 9px;
    background: #fff;
    color: var(--sharif-text);
    font-family: var(--sharif-font) !important;
}

body.single-product div.product .single_add_to_cart_button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 46px !important;
    padding-inline: 24px !important;
    border: 1px solid var(--sharif-accent) !important;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #6fafa6 0%, var(--sharif-accent) 100%) !important;
    color: #fff !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    box-shadow: 0 6px 15px rgba(79, 139, 132, .17) !important;
    transition: transform .14s ease, box-shadow .16s ease, background .16s ease !important;
}

body.single-product div.product .single_add_to_cart_button:hover {
    border-color: var(--sharif-accent-dark) !important;
    background: var(--sharif-accent-dark) !important;
    box-shadow: 0 8px 18px rgba(79, 139, 132, .24) !important;
    transform: translateY(-1px);
}

body.single-product .woocommerce-tabs .wc-tabs li a {
    font-size: 14px !important;
    font-weight: 700 !important;
}

body.single-product .woocommerce-Tabs-panel,
body.single-product .woocommerce-Tabs-panel p,
body.single-product .woocommerce-product-attributes,
body.single-product .woocommerce-product-attributes th,
body.single-product .woocommerce-product-attributes td {
    font-size: 15px !important;
    line-height: 2 !important;
}

/* Hide meaningless empty/unknown SKU rows while keeping real metadata intact. */
body.single-product .product_meta .sku_wrapper:has(.sku:empty) {
    display: none !important;
}

/* ---------- WooCommerce notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border: 1px solid rgba(23, 32, 51, .10) !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: #445267 !important;
    font-family: var(--sharif-font) !important;
    font-size: 13.5px !important;
    line-height: 1.9 !important;
    box-shadow: 0 4px 16px rgba(23, 32, 51, .045) !important;
}

.woocommerce-message::before,
.woocommerce-info::before {
    color: var(--sharif-accent-dark) !important;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
    min-height: 40px !important;
    padding: 7px 15px !important;
    border: 1px solid var(--sharif-accent) !important;
    border-radius: 9px !important;
    background: var(--sharif-accent) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

@media (max-width: 767px) {
    body { font-size: 15px; }

    body.single-product div.product .product_title {
        font-size: 24px !important;
    }

    body.single-product div.product .woocommerce-product-details__short-description,
    body.single-product div.product .woocommerce-product-details__short-description p,
    body.single-product .woocommerce-Tabs-panel,
    body.single-product .woocommerce-Tabs-panel p {
        font-size: 14.5px !important;
        line-height: 2 !important;
    }

    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error {
        font-size: 12.5px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.single-product div.product .single_add_to_cart_button {
        transition: none !important;
    }
}
