/* ==========================================================================
   parstohid.css — تم اختصاصی پارس توحید ایرانیان
   بعد از neff-homepage.css و neff-pages.css لود می شود و روی آن ها می نشیند.
   ساختار صفحات داخلی از همان فایل های پایه می آید — اینجا فقط رنگ و
   کامپوننت های اختصاصی صفحه اول، هدر و فوتر تعریف شده.
   ========================================================================== */

/* --------------------------------------------------------------------------
   ۱. توکن ها — صفحات داخلی کاملا توکنی هستند، پس با همین بلوک سبز می شوند
   -------------------------------------------------------------------------- */
:root {
    --pt-green:       #1F7A3D;
    --pt-green-dark:  #14532B;
    --pt-green-soft:  #E8F3EC;
    --pt-green-line:  #BFDCCB;
    --pt-gold:        #D89B2C;
    --pt-gold-dark:   #A9741A;
    --pt-gold-soft:   #FBF3E2;
    --pt-ink:         #1B2A22;
    --pt-body:        #3A4A41;
    --pt-muted:       #6B7C72;
    --pt-paper:       #F4F7F4;
    --pt-line:        #E2EAE4;
    --pt-white:       #FFFFFF;
    --pt-radius:      14px;
    --pt-radius-sm:   10px;
    --pt-shadow:      0 6px 22px rgba(20, 83, 43, .08);
    --pt-shadow-lg:   0 14px 40px rgba(20, 83, 43, .13);
    --pt-container:   1200px;

    /* بازنویسی توکن های پایه — صفحات داخلی از این ها استفاده می کنند */
    --neff-accent:        #1F7A3D;
    --neff-accent-dark:   #14532B;
    --neff-accent-light:  #E8F3EC;
    --neff-accent-border: #BFDCCB;
    --neff-text:          #1B2A22;
    --neff-text-light:    #3A4A41;
    --neff-text-muted:    #6B7C72;
    --neff-bg-light:      #F4F7F4;
    --neff-border:        #E2EAE4;
    --neff-radius:        10px;
    --neff-radius-lg:     14px;
    --neff-shadow:        0 6px 22px rgba(20, 83, 43, .08);
    --neff-lh-body:       1.9;
    --neff-scroll-offset: calc(84px + 1rem);
}

body {
    color: var(--pt-body);
    line-height: 1.9;
    background: var(--pt-white);
}

/* تایپوگرافی فارسی: letter-spacing روی خط متصل فارسی ممنوع */
h1, h2, h3, h4, h5, .page-h1, .section-title, .pt-sec-title {
    letter-spacing: normal;
}
.page-h1 { letter-spacing: normal; }

.pt-container,
.container { max-width: var(--pt-container); margin: 0 auto; padding: 0 20px; }

/* --------------------------------------------------------------------------
   ۲. اجزای مشترک با صفحات داخلی که رنگ ثابت داشتند
   -------------------------------------------------------------------------- */
.btn-primary,
.btn.btn-primary {
    background: var(--pt-green);
    color: #fff;
    border-color: var(--pt-green);
}
.btn-primary:hover, .btn.btn-primary:hover { background: var(--pt-green-dark); }

.btn-success, .btn.btn-success { background: var(--pt-gold); border-color: var(--pt-gold); color: #241a04; }
.btn-success:hover { background: var(--pt-gold-dark); color: #fff; }

.btn-outline, .btn.btn-outline { border: 2px solid var(--pt-green); color: var(--pt-green); background: transparent; }
.btn-outline:hover { background: var(--pt-green); color: #fff; }

.breadcrumb { background: var(--pt-green-soft); border-bottom: 1px solid var(--pt-green-line); }
.breadcrumb a { color: var(--pt-green); }
.breadcrumb a:hover { color: var(--pt-green-dark); }

.section-content a { color: var(--pt-green); text-decoration: underline; text-underline-offset: 3px; }
.section-content a:hover { color: var(--pt-gold-dark); }
.section-content strong { font-weight: 600; }

/* --------------------------------------------------------------------------
   ۳. هدر
   -------------------------------------------------------------------------- */
.pt-topbar {
    background: var(--pt-green-dark);
    color: #d9e9de;
    font-size: 13px;
}
.pt-topbar .pt-container {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px; min-height: 40px; flex-wrap: wrap;
}
.pt-topbar a { color: #eaf4ee; display: inline-flex; align-items: center; gap: 6px; }
.pt-topbar a:hover { color: var(--pt-gold); }
.pt-topbar-phones { display: flex; gap: 18px; flex-wrap: wrap; }
.pt-topbar-phones b { direction: ltr; letter-spacing: .02em; font-weight: 600; }

.pt-header {
    position: sticky; top: 0; z-index: 900;
    background: #fff;
    /* backdrop-filter اینجا نباشد:
       هر ancestor با filter یا backdrop-filter برای فرزندهای position:fixed
       نقش containing block می گیرد. دقیقا همین باعث شده بود کشوی منوی موبایل
       به جای کل صفحه، داخل کادر ۷۲ پیکسلی هدر محبوس شود. */
    border-bottom: 1px solid var(--pt-line);
    transition: box-shadow .25s;
}
.pt-header.scrolled { box-shadow: 0 6px 20px rgba(0, 0, 0, .07); }
.pt-header-wrap {
    display: flex; align-items: center; gap: 18px;
    min-height: 72px;
}
.pt-logo { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.pt-logo img { height: 62px; width: auto; }
.pt-logo-text { font-size: 19px; font-weight: 700; color: var(--pt-green-dark); }

.pt-nav { display: flex; align-items: center; gap: 4px; margin-inline-start: auto; }
.pt-nav > a,
.pt-nav .pt-nav-item > a {
    padding: 10px 13px; border-radius: 9px; font-size: 15px;
    color: var(--pt-ink); display: inline-flex; align-items: center; gap: 6px;
    transition: background .2s, color .2s;
}
.pt-nav > a:hover,
.pt-nav .pt-nav-item > a:hover { background: var(--pt-green-soft); color: var(--pt-green-dark); }
.pt-nav-item { position: relative; }
.pt-nav-item > a::after {
    content: ''; width: 7px; height: 7px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg); margin-top: -3px; opacity: .6;
}
.pt-nav-item:not(.has-children) > a::after { display: none; }
.pt-dropdown {
    position: absolute; top: 100%; inset-inline-start: 0; min-width: 230px;
    background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-sm);
    box-shadow: var(--pt-shadow-lg); padding: 8px; display: none; z-index: 20;
}
.pt-dropdown a {
    display: block; padding: 10px 12px; border-radius: 8px;
    font-size: 14.5px; color: var(--pt-body);
}
.pt-dropdown a:hover { background: var(--pt-green-soft); color: var(--pt-green-dark); }
.pt-header-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.pt-icon-btn {
    width: 40px; height: 40px; border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--pt-green-dark); background: var(--pt-green-soft); font-size: 16px;
}
.pt-icon-btn:hover { background: var(--pt-green); color: #fff; }
.pt-cta-btn {
    background: var(--pt-gold); color: #241a04; font-weight: 700;
    padding: 11px 18px; border-radius: 10px; font-size: 14.5px;
    display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
}
.pt-cta-btn:hover { background: var(--pt-gold-dark); color: #fff; }
.pt-menu-toggle { display: none; font-size: 22px; color: var(--pt-green-dark); padding: 6px 10px; }
.pt-nav-close { display: none; }
.pt-nav-backdrop {
    position: fixed; inset: 0; z-index: 940;
    background: rgba(12, 32, 20, .5);
    opacity: 0; visibility: hidden;
    transition: opacity .25s, visibility .25s;
}
body.pt-nav-open .pt-nav-backdrop { opacity: 1; visibility: visible; }
body.pt-nav-open { overflow: hidden; }

@media (hover: hover) {
    .pt-nav-item.has-children:hover > .pt-dropdown { display: block; }
}
@media (max-width: 992px) {
    .pt-menu-toggle { display: inline-flex; }

    /* کشوی منو — هر خاصیت جدا نوشته شده، نه با شورتهند inset،
       تا روی مرورگرهای قدیمی تر هم درست بنشیند */
    .pt-nav {
        position: fixed;
        top: 0;
        right: 0;
        left: auto;
        bottom: 0;
        height: 100vh;
        height: 100dvh;
        width: 86vw;
        max-width: 340px;
        box-sizing: border-box;
        background: #fff;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        margin: 0;
        padding: 62px 14px calc(24px + env(safe-area-inset-bottom));
        gap: 2px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        transform: translate3d(100%, 0, 0);
        visibility: hidden;
        transition: transform .28s ease, visibility .28s;
        box-shadow: -10px 0 40px rgba(0, 0, 0, .18);
        z-index: 950;
    }
    .pt-nav.open { transform: translate3d(0, 0, 0); visibility: visible; }

    .pt-nav-close {
        display: block;
        position: absolute;
        top: 10px;
        inset-inline-start: 12px;
        width: 40px; height: 40px;
        border: 0; background: var(--pt-green-soft); color: var(--pt-green-dark);
        border-radius: 10px; font-size: 26px; line-height: 1; cursor: pointer;
    }

    .pt-nav > a,
    .pt-nav .pt-nav-item > a {
        padding: 12px 12px;
        min-height: 46px;
        border-radius: 10px;
        justify-content: space-between;
    }
    .pt-nav > a + a { border-top: 1px solid var(--pt-line); border-radius: 0; }

    .pt-dropdown {
        position: static; display: none; box-shadow: none; border: 0;
        border-inline-start: 3px solid var(--pt-green-line);
        border-radius: 0; margin: 2px 10px 8px; padding: 2px 0; min-width: 0;
    }
    .pt-nav-item.open > .pt-dropdown { display: block; }
    .pt-nav-item.open > a::after { transform: rotate(-135deg); margin-top: 3px; }
    .pt-dropdown a { min-height: 44px; display: flex; align-items: center; }

    .pt-cta-btn span.pt-cta-label { display: none; }
    .pt-cta-btn { padding: 11px 14px; }
}
@media (max-width: 600px) {
    .pt-logo img { height: 50px; }
    .pt-topbar-phones { gap: 12px; }
}

/* --------------------------------------------------------------------------
   ۴. اسلایدر صفحه اول
   -------------------------------------------------------------------------- */
.pt-slider { background: var(--pt-paper); }
.pt-slider .swiper-slide { position: relative; }
/* اسلاید: عرض کامل، ارتفاع خودکار.
   نه aspect-ratio نه object-fit — تصویر با نسبت واقعی خودش نمایش داده
   می شود و هیچ قسمتی بریده نمی شود. */
.pt-slide-img {
    width: 100%;
    height: auto;
    display: block;
    max-width: 100%;
}
.pt-slide-cap {
    position: absolute; inset-block-end: 22px; inset-inline-start: 22px;
    background: rgba(20, 83, 43, .92); color: #fff;
    padding: 14px 20px; border-radius: var(--pt-radius-sm); max-width: min(90%, 460px);
}
.pt-slide-cap h2 { font-size: 20px; margin: 0 0 4px; }
.pt-slide-cap p { font-size: 14px; margin: 0; opacity: .92; }
.pt-slider .swiper-pagination-bullet-active { background: var(--pt-gold); }
@media (max-width: 700px) {
    .pt-slide-cap { inset-inline: 12px; inset-block-end: 12px; max-width: none; padding: 11px 14px; }
    .pt-slide-cap h2 { font-size: 16px; }
}

/* --------------------------------------------------------------------------
   ۵. تیتر بخش ها
   -------------------------------------------------------------------------- */
.pt-section { padding: 60px 0; }
.pt-section.alt { background: var(--pt-paper); }
.pt-sec-head { text-align: center; margin-bottom: 34px; }
.pt-sec-title {
    font-size: clamp(1.3rem, 1.05rem + 1.1vw, 1.85rem);
    color: var(--pt-ink); font-weight: 700; margin: 0 0 12px; line-height: 1.5;
}
.pt-sec-title::after {
    content: ''; display: block; width: 62px; height: 4px; border-radius: 4px;
    background: linear-gradient(90deg, var(--pt-green), var(--pt-gold));
    margin: 12px auto 0;
}
.pt-sec-sub { color: var(--pt-muted); font-size: 15px; margin: 0; }

/* --------------------------------------------------------------------------
   ۶. معرفی کوتاه + فهرست محصولات (بلوک بالای صفحه اول)
   -------------------------------------------------------------------------- */
.pt-intro-grid {
    display: grid; grid-template-columns: 1fr 1.05fr; gap: 36px; align-items: center;
}
.pt-intro-text h1 {
    font-size: clamp(1.45rem, 1.1rem + 1.6vw, 2.1rem);
    color: var(--pt-green-dark); margin: 0 0 14px; line-height: 1.6;
}
.pt-intro-text .pt-lead { font-size: 16px; color: var(--pt-body); margin: 0 0 20px; }
.pt-intro-list { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 9px; }
.pt-intro-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.pt-intro-list i { color: var(--pt-green); margin-top: 7px; font-size: 12px; }
.pt-intro-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.pt-btn {
    display: inline-flex; align-items: center; gap: 9px; padding: 13px 24px;
    border-radius: 11px; font-size: 15px; font-weight: 700; min-height: 46px;
}
.pt-btn-green { background: var(--pt-green); color: #fff; }
.pt-btn-green:hover { background: var(--pt-green-dark); }
.pt-btn-gold { background: var(--pt-gold); color: #241a04; }
.pt-btn-gold:hover { background: var(--pt-gold-dark); color: #fff; }
.pt-btn-ghost { border: 2px solid var(--pt-green-line); color: var(--pt-green-dark); }
.pt-btn-ghost:hover { background: var(--pt-green-soft); }
/* تصویر بالای صفحه اصلی — بدون قاب و بدون پس زمینه.
   خود تصویر زمینه سفید دارد، پس هر پس زمینه رنگی زیرش باعث می شود تصویر
   مثل یک کارت جدا دیده شود نه بخشی از خود صفحه. */
.pt-intro-art {
    background: transparent;
    border-radius: 0;
    padding: 0;
    min-height: 0;
    display: flex; align-items: center; justify-content: center;
}
.pt-intro-art img {
    width: 100%;
    height: auto;
    max-height: none;
    max-width: 620px;
    border-radius: 0;
}
@media (max-width: 900px) {
    .pt-intro-grid { grid-template-columns: 1fr; gap: 22px; }
    .pt-intro-art { order: -1; min-height: 0; padding: 0; }
    .pt-intro-art img { max-width: 100%; }
}

/* --------------------------------------------------------------------------
   ۷. کارت محصول + کروسل
   -------------------------------------------------------------------------- */
/* پدینگ مشترک سر جای خودش برگشت — برداشتنش روی کروسل مقالات هم اثر
   می گذاشت. صفر شدن پدینگ فقط برای کروسل محصولات و فقط روی دسکتاپ. */
.pt-carousel { position: relative; padding: 0 6px; }
.pt-carousel .swiper { overflow: hidden; padding: 6px 2px 4px; }
.pt-carousel .swiper-slide { height: auto; display: flex; }
.pt-carousel .swiper-slide > * { width: 100%; }

/* دکمه های جهت — chevron با border کشیده شده، چون « و ‹ در RTL برعکس می شوند */
.pt-nav-btn {
    width: 42px; height: 42px; border-radius: 50%;
    background: #fff; border: 1px solid var(--pt-line);
    box-shadow: 0 4px 14px rgba(20, 83, 43, .12);
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer; z-index: 5; transition: background .2s, border-color .2s;
}
.pt-nav-btn:hover { background: var(--pt-green); border-color: var(--pt-green); }
.pt-nav-btn:hover .pt-chev { border-color: #fff; }
.pt-nav-btn.swiper-button-disabled { opacity: .35; pointer-events: none; }
.pt-chev {
    width: 10px; height: 10px;
    border-top: 2px solid var(--pt-green-dark);
    border-right: 2px solid var(--pt-green-dark);
}
.pt-chev-l { transform: rotate(-135deg); margin-inline-start: 4px; }
.pt-chev-r { transform: rotate(45deg);   margin-inline-end: 4px; }

.pt-prod-carousel .pt-nav-btn {
    position: absolute; top: 38%; transform: translateY(-50%);
}
.pt-prod-carousel .pt-nav-prev { inset-inline-end: -18px; }
.pt-prod-carousel .pt-nav-next { inset-inline-start: -18px; }
.pt-prod-carousel .pt-nav-btn.swiper-button-lock { display: none; }

.pt-dots { display: flex; justify-content: center; gap: 6px; margin-top: 16px; }
.pt-dots.swiper-pagination-lock { display: none; }
.pt-dots .swiper-pagination-bullet {
    width: 8px; height: 8px; background: var(--pt-green-line); opacity: 1;
}
.pt-dots .swiper-pagination-bullet-active { background: var(--pt-green); }

@media (max-width: 700px) {
    .pt-prod-carousel .pt-nav-btn { display: none; }   /* روی موبایل با انگشت کشیده می شود */
    .pt-carousel { padding: 0; }
}

.pt-cards {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 20px;
}
.pt-card {
    background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius);
    overflow: hidden; display: flex; flex-direction: column;
    transition: transform .22s, box-shadow .22s, border-color .22s;
}
.pt-card-media {
    /* کمی پهن تر از مربع و با فاصله داخلی کمتر، تا کیسه بزرگ تر دیده شود */
    aspect-ratio: 5 / 4; background: #fff; border-bottom: 1px solid var(--pt-line);
    display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 6px;
}
.pt-card-media img { width: 100%; height: 100%; object-fit: contain; }
.pt-card-media .pt-noimg { color: var(--pt-green-line); font-size: 40px; }
.pt-card-body { padding: 15px 15px 17px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.pt-card-title {
    font-size: 15.5px; font-weight: 700; color: var(--pt-ink); margin: 0; line-height: 1.7;
    min-height: calc(2 * 1.7em);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pt-card-desc { font-size: 13.5px; color: var(--pt-muted); margin: 0; }
.pt-card-more {
    margin-top: auto; padding-top: 8px; font-size: 13.5px; font-weight: 700;
    color: var(--pt-green); display: inline-flex; align-items: center; gap: 7px;
}
.pt-card-more .pt-arrow {
    width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor;
    transform: rotate(-135deg);
}
@media (hover: hover) {
    .pt-card:hover { transform: translateY(-4px); box-shadow: var(--pt-shadow-lg); border-color: var(--pt-green-line); }
}
@media (hover: none) { .pt-card:active { transform: scale(.99); } }

/* --------------------------------------------------------------------------
   ۸. درباره ما با تصویر کارخانه
   -------------------------------------------------------------------------- */
.pt-about-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 40px; align-items: center; }
.pt-about-media { position: relative; }
.pt-about-media img { width: 100%; border-radius: 20px; display: block; }
.pt-about-media::after {
    content: ''; position: absolute; inset-block-end: -14px; inset-inline-end: -14px;
    width: 110px; height: 110px; border-radius: 20px; z-index: -1;
    background: var(--pt-gold-soft);
}
.pt-about-text h2 { font-size: clamp(1.25rem, 1rem + 1vw, 1.7rem); color: var(--pt-ink); margin: 0 0 8px; }
.pt-about-kicker { color: var(--pt-gold-dark); font-size: 14px; font-weight: 700; margin: 0 0 6px; }
.pt-about-body { color: var(--pt-body); font-size: 15.3px; }
.pt-about-body p { margin: 0 0 12px; }
.pt-about-body p:last-child { margin-bottom: 0; }
@media (max-width: 900px) { .pt-about-grid { grid-template-columns: 1fr; gap: 26px; } }

/* --------------------------------------------------------------------------
   ۹. نوار اعتماد
   -------------------------------------------------------------------------- */
.pt-trust {
    position: relative;
    background: linear-gradient(160deg, var(--pt-green-dark) 0%, #196333 55%, var(--pt-green-dark) 100%);
    color: #eaf4ee;
    padding: 46px 0 52px;
    /* overflow: hidden نباید باشد، وگرنه مثلث لبه بالایی بریده می شود.
       بافت داخلی خودش با inset:0 محدود است و بیرون نمی زند. */
}
/* بافت مزرعه — خطوط علف کم رنگ، با gradient ساخته شده نه با عکس */
.pt-trust-field {
    position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background:
        repeating-linear-gradient(78deg, rgba(255,255,255,.05) 0 2px, transparent 2px 26px),
        radial-gradient(circle at 82% 12%, rgba(216,155,44,.18), transparent 46%);
}
.pt-trust .pt-container { position: relative; z-index: 1; }
.pt-trust-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px;
}
.pt-trust-item {
    display: flex; gap: 14px; align-items: flex-start;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--pt-radius);
    padding: 18px 16px;
    transition: background .22s, transform .22s, border-color .22s;
}
.pt-trust-badge {
    flex: 0 0 auto; width: 46px; height: 46px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 19px; color: #22331f;
    background: linear-gradient(145deg, var(--pt-gold) 0%, #EFC067 100%);
    /* شش ضلعی ملایم — کمی متفاوت از دایره های همیشگی */
    border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
}
.pt-trust-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pt-trust-title { font-size: 15px; font-weight: 700; color: #fff; line-height: 1.75; }
.pt-trust-desc  { font-size: 13.2px; color: #c4dccd; line-height: 1.8; }
@media (hover: hover) {
    .pt-trust-item:hover {
        background: rgba(255, 255, 255, .12);
        border-color: rgba(216, 155, 44, .5);
        transform: translateY(-3px);
    }
}
@media (max-width: 600px) {
    .pt-trust { padding: 34px 0 38px; }
    .pt-trust-item { padding: 14px 13px; gap: 11px; }
    .pt-trust-badge { width: 40px; height: 40px; font-size: 16px; }
}

/* --------------------------------------------------------------------------
   ۲۱. دشت بالای فوتر
   -------------------------------------------------------------------------- */
.pt-scene {
    --pt-scene-sky: #EAF3EC;
    --pt-scene-hill-back: #BFDCCB;
    --pt-scene-hill-front: #1F7A3D;
    --pt-scene-leaf: #3E8F58;
    --pt-scene-grass: #16632F;
    line-height: 0;
    margin-top: 40px;
}
.pt-scene svg { display: block; width: 100%; height: clamp(110px, 13.5vw, 190px); }
/* بالای صحنه سفید تمام می شود تا مرزش با بخش بالایی دیده نشود */
.pt-scene { background: #fff; }

/* همه گروه های متحرک نسبت به کادر خودشان می چرخند، نه نسبت به کل بوم SVG.
   بدون این خط، مرکز چرخش گوشه بوم می شود و حرکت به جای تاب خوردن،
   جابجایی بزرگ می دهد. */
.pt-cow, .pt-sheep-a, .pt-sheep-b, .pt-grass {
    transform-box: fill-box;
}

.pt-cloud-1 { animation: pt-cross 52s linear infinite; }
.pt-cloud-2 { animation: pt-cross 74s linear infinite -30s; }
.pt-birds   { animation: pt-fly 38s linear infinite; }

.pt-grass   { transform-origin: 50% 100%; animation: pt-sway 5s ease-in-out infinite; }
.pt-cow     { transform-origin: 50% 100%; animation: pt-graze 7s ease-in-out infinite; }
.pt-sheep-a { transform-origin: 50% 100%; animation: pt-graze 5.4s ease-in-out infinite .9s; }
.pt-sheep-b { transform-origin: 50% 100%; animation: pt-wander 9s ease-in-out infinite 1.8s; }

/* ابرها کل عرض صحنه را رد می کنند و دوباره از سمت راست وارد می شوند.
   قبلا فقط ۱۳۰۰ واحد به چپ می رفتند و بیشتر مدت اصلا داخل کادر نبودند،
   برای همین به نظر می رسید ابرها اصلا حرکت نمی کنند. */
@keyframes pt-cross {
    from { transform: translateX(1050px); }
    to   { transform: translateX(-1250px); }
}
@keyframes pt-fly {
    from { transform: translate(-180px, 6px); }
    to   { transform: translate(1240px, -10px); }
}
@keyframes pt-sway {
    0%, 100% { transform: skewX(0deg); }
    50%      { transform: skewX(6deg); }
}
/* تاب ملایم دور نقطه ای نزدیک سم ها — مثل وقتی دام سرش را پایین می آورد */
@keyframes pt-graze {
    0%, 100% { transform: rotate(0deg)    translateY(0); }
    35%      { transform: rotate(-2.2deg) translateY(-1px); }
    70%      { transform: rotate(1.4deg)  translateY(-2px); }
}
/* بره کوچک علاوه بر تاب، آرام روی چمن جابجا می شود */
@keyframes pt-wander {
    0%, 100% { transform: translateX(0)    rotate(0deg); }
    25%      { transform: translateX(9px)  rotate(-2.6deg); }
    50%      { transform: translateX(16px) rotate(0deg); }
    75%      { transform: translateX(7px)  rotate(2.2deg); }
}

/* اگر کاربر «کاهش حرکت» را روشن کرده باشد، صحنه ثابت می ماند */
@media (prefers-reduced-motion: reduce) {
    .pt-cloud-1, .pt-cloud-2, .pt-birds, .pt-grass,
    .pt-cow, .pt-sheep-a, .pt-sheep-b {
        animation: none;
    }
}
/* موبایل: به جای کوچک شدن کل صحنه، کادر روی گاو و گوسفندها بسته می شود.
   با slice و ارتفاع ثابت، مرکز بوم نمایش داده می شود که دقیقا همان جایی
   است که حیوانات ایستاده اند. */
@media (max-width: 620px) {
    .pt-scene { margin-top: 24px; }
    .pt-scene svg { height: 130px; }
    .pt-trees, .pt-birds, .pt-cow-line { display: none; }
}
@media (max-width: 380px) {
    .pt-scene svg { height: 118px; }
}

/* --------------------------------------------------------------------------
   ۱۰. مقالات صفحه اصلی — کارت پهن افقی، عمدا متفاوت از کارت محصول
   -------------------------------------------------------------------------- */
.pt-posts-section { background: linear-gradient(180deg, #fff 0%, var(--pt-paper) 100%); }

.pt-sec-head-row {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 18px; text-align: start; margin-bottom: 26px;
}
.pt-sec-head-row .pt-sec-title::after { margin-inline: 0 auto; }
.pt-head-nav { display: flex; gap: 8px; flex-shrink: 0; }
.pt-head-nav .pt-nav-btn.swiper-button-lock { display: none; }
@media (max-width: 600px) {
    .pt-sec-head-row { flex-direction: column; align-items: stretch; }
    .pt-head-nav { justify-content: flex-end; }
}

.pt-wide-post {
    display: grid;
    grid-template-columns: 132px 1fr;
    gap: 14px;
    background: #fff;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius);
    padding: 12px;
    height: 100%;
    align-items: stretch;
    transition: box-shadow .22s, border-color .22s, transform .22s;
}
.pt-wide-media {
    border-radius: 10px; overflow: hidden; background: var(--pt-paper);
    display: flex; align-items: center; justify-content: center; min-height: 118px;
}
.pt-wide-media img { width: 100%; height: 100%; object-fit: cover; }
.pt-wide-media.is-empty {
    background: linear-gradient(135deg, var(--pt-green-soft), #DCEBE1 60%, var(--pt-gold-soft));
}
.pt-wide-media.is-empty i { font-size: 30px; color: var(--pt-green); opacity: .55; }
.pt-wide-body { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.pt-wide-date { font-size: 12.5px; color: var(--pt-muted); display: inline-flex; align-items: center; gap: 6px; }
.pt-wide-title {
    font-size: 15.5px; font-weight: 700; margin: 0; color: var(--pt-ink); line-height: 1.75;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pt-wide-excerpt {
    font-size: 13.5px; color: var(--pt-muted); margin: 0; line-height: 1.85;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pt-wide-post .pt-card-more { margin-top: auto; padding-top: 4px; }
@media (hover: hover) {
    .pt-wide-post:hover { box-shadow: var(--pt-shadow-lg); border-color: var(--pt-green-line); transform: translateY(-3px); }
    .pt-wide-post:hover .pt-wide-title { color: var(--pt-green-dark); }
}
@media (max-width: 420px) {
    .pt-wide-post { grid-template-columns: 100px 1fr; gap: 11px; }
    .pt-wide-media { min-height: 100px; }
}

/* نوار پیشرفت به جای نقطه — تفاوت بصری با بخش محصولات */
.pt-progress { margin-top: 20px; padding: 0 4px; }
.pt-progress .swiper-scrollbar {
    position: static; height: 4px; border-radius: 4px;
    background: var(--pt-green-line); opacity: 1;
}
.pt-progress .swiper-scrollbar.swiper-scrollbar-lock { display: none; }
.pt-progress .swiper-scrollbar-drag { background: var(--pt-green); border-radius: 4px; }

/* --------------------------------------------------------------------------
   ۱۰ب. کارت مقاله عمودی (در جاهای دیگر استفاده می شود)
   -------------------------------------------------------------------------- */
.pt-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 22px; }
.pt-post {
    background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius);
    overflow: hidden; display: flex; flex-direction: column;
    transition: box-shadow .22s, transform .22s;
}
.pt-post-media { aspect-ratio: 16 / 10; background: var(--pt-paper); overflow: hidden; }
.pt-post-media img { width: 100%; height: 100%; object-fit: cover; }
.pt-post-body { padding: 15px 16px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pt-post-date { font-size: 12.5px; color: var(--pt-muted); }
.pt-post-title { font-size: 15.5px; font-weight: 700; color: var(--pt-ink); margin: 0; line-height: 1.75; }
.pt-post-desc { font-size: 13.5px; color: var(--pt-muted); margin: 0; }
@media (hover: hover) { .pt-post:hover { transform: translateY(-4px); box-shadow: var(--pt-shadow-lg); } }

/* --------------------------------------------------------------------------
   ۱۱. سوالات متداول
   -------------------------------------------------------------------------- */
.pt-faq { max-width: 860px; margin: 0 auto; display: grid; gap: 12px; }
.pt-faq details {
    background: #fff; border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius-sm); overflow: hidden;
}
.pt-faq summary {
    padding: 15px 18px; cursor: pointer; font-weight: 700; font-size: 15px;
    color: var(--pt-ink); display: flex; justify-content: space-between; gap: 14px;
    list-style: none; min-height: 48px; align-items: center;
}
.pt-faq summary::-webkit-details-marker { display: none; }
.pt-faq summary::after {
    content: ''; flex: 0 0 auto; width: 9px; height: 9px;
    border-right: 2px solid var(--pt-green); border-bottom: 2px solid var(--pt-green);
    transform: rotate(45deg); transition: transform .2s;
}
.pt-faq details[open] summary::after { transform: rotate(-135deg); }
.pt-faq .pt-faq-a { padding: 0 18px 16px; color: var(--pt-body); font-size: 14.5px; }

/* --------------------------------------------------------------------------
   ۱۲. فرم تماس صفحه اول
   -------------------------------------------------------------------------- */
.pt-formband { background: var(--pt-green); color: #fff; padding: 52px 0; }
.pt-formband .pt-sec-title { color: #fff; }
.pt-formband .pt-sec-title::after { background: var(--pt-gold); }
.pt-formband .pt-sec-sub { color: #d9ecdf; }
.pt-form {
    max-width: 720px; margin: 0 auto; background: #fff; border-radius: var(--pt-radius);
    padding: 22px; display: grid; gap: 14px; box-shadow: var(--pt-shadow-lg);
}
.pt-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pt-form-row > * { min-width: 0; }
.pt-form label { display: block; font-size: 13.5px; color: var(--pt-muted); margin-bottom: 6px; }
.pt-form input, .pt-form select, .pt-form textarea {
    width: 100%; padding: 12px 14px; border: 1.5px solid var(--pt-line);
    border-radius: 10px; font-family: inherit; font-size: 14.5px; color: var(--pt-ink);
    background: #fff; min-height: 46px;
}
.pt-form input:focus, .pt-form select:focus, .pt-form textarea:focus {
    outline: none; border-color: var(--pt-green); box-shadow: 0 0 0 3px var(--pt-green-soft);
}
.pt-form input[name="phone"] { direction: ltr; text-align: left; letter-spacing: .04em; }
.pt-form-submit {
    background: var(--pt-gold); color: #241a04; font-weight: 700; font-size: 15.5px;
    padding: 14px; border-radius: 11px; min-height: 50px; font-family: inherit; border: 0; cursor: pointer;
}
.pt-form-submit:hover { background: var(--pt-gold-dark); color: #fff; }
.pt-form-msg { display: none; font-size: 14px; padding: 11px 14px; border-radius: 9px; }
.pt-form-msg.ok  { display: block; background: var(--pt-green-soft); color: var(--pt-green-dark); }
.pt-form-msg.err { display: block; background: #fdecec; color: #a52020; }
.pt-form-or { text-align: center; margin-top: 16px; color: #d9ecdf; font-size: 14px; }
.pt-form-call {
    display: inline-flex; gap: 10px; align-items: center; justify-content: center;
    margin: 10px auto 0; background: #fff; color: var(--pt-green-dark);
    padding: 13px 26px; border-radius: 11px; font-weight: 700; direction: ltr;
}
@media (max-width: 620px) { .pt-form-row { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   ۱۳. فوتر
   -------------------------------------------------------------------------- */
.pt-footer { background: var(--pt-ink); color: #c9d6cd; padding: 46px 0 0; font-size: 14.3px; }
.pt-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr; gap: 34px; }
.pt-footer h4 {
    color: #fff; font-size: 16px; margin: 0 0 16px; padding-bottom: 9px;
    border-bottom: 2px solid rgba(216, 155, 44, .5); display: inline-block;
}
.pt-footer a { color: #c9d6cd; }
.pt-footer a:hover { color: var(--pt-gold); }
.pt-footer-logo img { height: 74px; margin-bottom: 14px; }
.pt-footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.pt-footer-links a { display: inline-flex; gap: 8px; align-items: center; min-height: 26px; }
.pt-footer-contact { display: grid; gap: 11px; margin-top: 4px; }
.pt-footer-contact div, .pt-footer-contact a { display: flex; gap: 10px; align-items: flex-start; }
.pt-footer-contact i { color: var(--pt-gold); margin-top: 6px; }
.pt-footer-contact b { direction: ltr; font-weight: 600; }
.pt-social { display: flex; gap: 10px; margin-top: 16px; }
.pt-social a {
    width: 40px; height: 40px; border-radius: 11px; background: rgba(255, 255, 255, .08);
    display: inline-flex; align-items: center; justify-content: center; font-size: 17px;
}
.pt-social a:hover { background: var(--pt-gold); color: #241a04; }
.pt-footer-bottom {
    margin-top: 34px; border-top: 1px solid rgba(255, 255, 255, .1);
    padding: 16px 0; text-align: center; font-size: 13px; color: #93a69a;
}
@media (max-width: 860px) { .pt-footer-grid { grid-template-columns: 1fr; gap: 26px; } }

/* --------------------------------------------------------------------------
   ۱۴. دکمه های شناور و نوار موبایل — رنگ ها با تم هماهنگ می شود
   -------------------------------------------------------------------------- */
.floating-call { background: var(--pt-green) !important; }
.floating-call-pulse { background: var(--pt-green) !important; }
.mobile-bottom-bar { border-top: 1px solid var(--pt-line); padding-bottom: env(safe-area-inset-bottom); }
.mobile-bottom-bar .mb-item { color: var(--pt-green-dark); }

@media (max-width: 768px) {
    body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
    .pt-section { padding: 44px 0; }
}

/* --------------------------------------------------------------------------
   ۱۵. اورراید نهایی — این بلوک باید آخر فایل بماند
   قاعده هایی که در استایل پایه با انتخابگر سنگین تر نوشته شده اند
   -------------------------------------------------------------------------- */
body .neff-header { display: none; }          /* هدر قدیمی نف کامل جایگزین شده */
body .neff-footer { display: none; }          /* فوتر قدیمی نف کامل جایگزین شده */
body .page-h1 { color: var(--pt-ink); }
body .section-title { color: var(--pt-green-dark); }
body .section-faq2 .faq2-q { color: var(--pt-ink); }
body .section-table table th { background: var(--pt-green-soft); color: var(--pt-green-dark); }
body .section-table table td, body .section-table table th { border-color: var(--pt-line); }

/* لیست زیرصفحه ها وقتی بالای صفحه دسته می آید — فاصله کمتر و پس زمینه سبز روشن */
body .page-header + .children-section {
    margin-top: 18px;
    padding: 34px 0;
    background: var(--pt-green-soft);
    border-radius: var(--pt-radius);
}

/* --------------------------------------------------------------------------
   ۱۶. کارت محصول در صفحات دسته
   تصویر کیسه ها باید کامل دیده شود، پس contain نه cover. کادر تصویر
   نسبت ثابت دارد و متن خلاصه حذف شده تا ارتفاع همه کارت ها یکی باشد.
   -------------------------------------------------------------------------- */
body .pt-prod-grid {
    grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
    gap: 18px;
    align-items: stretch;
}
body .pt-prod-card {
    background: #fff;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius);
    box-shadow: 0 2px 10px rgba(20, 83, 43, .05);
    height: 100%;
}
body .pt-prod-media {
    background: #fff;
    border-bottom: 1px solid var(--pt-line);
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    overflow: hidden;
}
body .pt-prod-card .child-card-img {
    aspect-ratio: auto;          /* قاعده 16/9 استایل پایه خنثی می شود */
    object-fit: contain;         /* کیسه کراپ نمی شود */
    width: 100%;
    height: 100%;
    max-height: 100%;
}
body .pt-prod-card .child-card-body {
    padding: 13px 14px 15px;
    gap: 8px;
    justify-content: space-between;
}
body .pt-prod-card .child-card-title {
    font-size: 15px;
    line-height: 1.75;
    color: var(--pt-ink);
    min-height: calc(2 * 1.75em);   /* دو خط — همه کارت ها هم قد می شوند */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
body .pt-prod-card:hover .child-card-title { color: var(--pt-green-dark); }
body .pt-prod-more {
    font-size: 13px;
    font-weight: 700;
    color: var(--pt-green);
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
@media (hover: hover) {
    body .pt-prod-card:hover { border-color: var(--pt-green-line); box-shadow: var(--pt-shadow-lg); }
}
@media (hover: none) {
    body .pt-prod-card:hover { transform: none; box-shadow: 0 2px 10px rgba(20, 83, 43, .05); }
}
@media (max-width: 480px) {
    body .pt-prod-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    body .pt-prod-card .child-card-title { font-size: 13.5px; }
    body .pt-prod-media { padding: 8px; }
}

/* --------------------------------------------------------------------------
   ۱۷. کارت مقاله در صفحه وبلاگ
   -------------------------------------------------------------------------- */
.pt-blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));
    gap: 22px;
    max-width: var(--pt-container);
    margin: 0 auto;
    padding: 0 20px;
}
.pt-blog-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius);
    overflow: hidden;
    color: var(--pt-ink);
    height: 100%;
    transition: transform .22s, box-shadow .22s, border-color .22s;
}
.pt-blog-media {
    aspect-ratio: 16 / 10;
    background: var(--pt-paper);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pt-blog-media img { width: 100%; height: 100%; object-fit: cover; }
.pt-blog-media.is-empty {
    background: linear-gradient(135deg, var(--pt-green-soft), #DCEBE1 60%, var(--pt-gold-soft));
}
.pt-blog-media.is-empty i { font-size: 38px; color: var(--pt-green); opacity: .55; }
.pt-blog-body {
    padding: 15px 16px 17px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    flex: 1;
}
.pt-blog-date {
    font-size: 12.5px;
    color: var(--pt-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.pt-blog-title {
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.75;
    margin: 0;
    color: var(--pt-ink);
    min-height: calc(2 * 1.75em);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pt-blog-excerpt {
    font-size: 13.5px;
    color: var(--pt-muted);
    line-height: 1.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pt-blog-more {
    margin-top: auto;
    padding-top: 6px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--pt-green);
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
@media (hover: hover) {
    .pt-blog-card:hover {
        transform: translateY(-4px);
        box-shadow: var(--pt-shadow-lg);
        border-color: var(--pt-green-line);
    }
    .pt-blog-card:hover .pt-blog-title { color: var(--pt-green-dark); }
}
@media (hover: none) { .pt-blog-card:active { transform: scale(.995); } }
@media (max-width: 520px) {
    .pt-blog-grid { grid-template-columns: 1fr; gap: 16px; }
}

/* --------------------------------------------------------------------------
   ۱۸. باقی مانده های رنگ قرمز استایل پایه
   این قاعده ها در neff-homepage.css رنگ ثابت #e74c3c دارند و توکنی نیستند،
   پس تک تک اینجا بازنویسی می شوند.
   -------------------------------------------------------------------------- */
body .page-header::after { background: var(--pt-green); }
body .page-content a { color: var(--pt-green); border-bottom-color: var(--pt-green-line); }
body .page-content a:hover { color: var(--pt-gold-dark); border-bottom-color: var(--pt-gold); }
body .page-content blockquote { border-right-color: var(--pt-green); background: var(--pt-green-soft); }
body .page-content th { background: var(--pt-green); color: #fff; }
body .related-item-icon { background: linear-gradient(135deg, var(--pt-green), var(--pt-green-dark)); }
body .section-head h2::after { background: var(--pt-green); }
body .section-head .section-sub a { color: var(--pt-green); }
body .faq-answer a { color: var(--pt-green); }
body .faq-item summary i { color: var(--pt-green); }
body .breadcrumb a { color: var(--pt-green); }
body .breadcrumb a:hover { color: var(--pt-gold-dark); }

/* --------------------------------------------------------------------------
   ۱۹. خط اعتبار طراح در فوتر
   -------------------------------------------------------------------------- */
.pt-footer-bottom .pt-container {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; flex-wrap: wrap;
}
.pt-footer-bottom .pt-credit { color: #a9bcaf; }
.pt-footer-bottom .pt-credit a { color: var(--pt-gold); }
@media (max-width: 640px) {
    .pt-footer-bottom .pt-container { flex-direction: column; gap: 6px; text-align: center; }
}

/* --------------------------------------------------------------------------
   ۲۰. صفحه ارتباط با ما
   -------------------------------------------------------------------------- */
.pt-contact { margin: 34px 0 10px; }
.pt-contact-h {
    font-size: clamp(1.15rem, 1rem + .7vw, 1.5rem);
    color: var(--pt-ink); margin: 0 0 20px; text-align: center;
}
.pt-contact-h::after {
    content: ''; display: block; width: 56px; height: 4px; border-radius: 4px;
    background: linear-gradient(90deg, var(--pt-green), var(--pt-gold));
    margin: 12px auto 0;
}

.pt-contact-cards {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 14px; margin-bottom: 20px;
}
.pt-cc {
    display: flex; gap: 13px; align-items: flex-start;
    min-width: 0; overflow: hidden;
    background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius);
    padding: 15px 16px; color: var(--pt-ink); min-height: 74px;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
a.pt-cc:hover { border-color: var(--pt-green-line); box-shadow: var(--pt-shadow); transform: translateY(-2px); }
.pt-cc-wide { grid-column: span 2; }
.pt-cc-icon {
    flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px;
    background: var(--pt-green-soft); color: var(--pt-green-dark);
    display: inline-flex; align-items: center; justify-content: center; font-size: 17px;
}
.pt-cc-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pt-cc-label { font-size: 12.5px; color: var(--pt-muted); }
.pt-cc-value {
    font-size: 14.5px; font-weight: 600; line-height: 1.8;
    white-space: normal;
    overflow-wrap: anywhere;   /* آدرس بلند و ایمیل داخل کادر بشکنند */
    min-width: 0;
}
@media (max-width: 620px) { .pt-cc-wide { grid-column: span 1; } }

.pt-contact-social {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    background: var(--pt-green-soft); border-radius: var(--pt-radius);
    padding: 13px 16px; margin-bottom: 22px; font-size: 14px; color: var(--pt-green-dark);
}
.pt-cs {
    display: inline-flex; align-items: center; gap: 7px;
    background: #fff; border: 1px solid var(--pt-green-line);
    padding: 9px 15px; border-radius: 10px; font-size: 13.5px;
    color: var(--pt-ink); min-height: 40px;
}
.pt-cs:hover { background: var(--pt-green); color: #fff; border-color: var(--pt-green); }
.pt-cs-wa:hover { background: #22a45d; border-color: #22a45d; }
.pt-cs-tg:hover { background: #2aa3d5; border-color: #2aa3d5; }
.pt-cs-ig:hover { background: #c93b8f; border-color: #c93b8f; }

.pt-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
@media (max-width: 900px) { .pt-contact-grid { grid-template-columns: 1fr; } }

.pt-contact-mapwrap {
    background: #fff; border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius); overflow: hidden;
}
.pt-contact-map { display: block; width: 100%; height: 340px; border: 0; }
.pt-map-empty {
    display: flex; align-items: center; justify-content: center;
    background: var(--pt-paper); color: var(--pt-green-line); font-size: 44px;
}
.pt-contact-dirs { display: flex; gap: 10px; padding: 12px; flex-wrap: wrap; border-top: 1px solid var(--pt-line); }
.pt-contact-dirs a {
    display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px;
    background: var(--pt-green-soft); color: var(--pt-green-dark);
    padding: 9px 14px; border-radius: 9px; min-height: 40px;
}
.pt-contact-dirs a:hover { background: var(--pt-green); color: #fff; }

.pt-contact-form {
    background: #fff; border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius); padding: 20px; display: grid; gap: 14px;
}
.pt-contact-form h2 { margin: 0; font-size: 16px; color: var(--pt-green-dark); line-height: 1.7; }
.pt-cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pt-cf-row > * { min-width: 0; }
.pt-contact-form label { display: block; font-size: 13px; color: var(--pt-muted); margin-bottom: 6px; }
.pt-contact-form input, .pt-contact-form select, .pt-contact-form textarea {
    width: 100%; box-sizing: border-box; padding: 11px 13px;
    border: 1.5px solid var(--pt-line); border-radius: 10px;
    font-family: inherit; font-size: 14.5px; color: var(--pt-ink); background: #fff; min-height: 46px;
}
.pt-contact-form textarea { min-height: 96px; resize: vertical; }
.pt-contact-form input:focus, .pt-contact-form select:focus, .pt-contact-form textarea:focus {
    outline: none; border-color: var(--pt-green); box-shadow: 0 0 0 3px var(--pt-green-soft);
}
.pt-contact-form input[name="phone"] { direction: ltr; text-align: left; letter-spacing: .04em; }
.pt-cf-submit {
    background: var(--pt-green); color: #fff; font-weight: 700; font-size: 15px;
    padding: 13px; border-radius: 11px; min-height: 50px; border: 0; cursor: pointer; font-family: inherit;
}
.pt-cf-submit:hover { background: var(--pt-green-dark); }
.pt-cf-msg { display: none; font-size: 14px; padding: 11px 14px; border-radius: 9px; }
.pt-cf-msg.ok  { display: block; background: var(--pt-green-soft); color: var(--pt-green-dark); }
.pt-cf-msg.err { display: block; background: #fdecec; color: #a52020; }
@media (max-width: 620px) { .pt-cf-row { grid-template-columns: 1fr; } }

/* ==========================================================================
   ۲۲. اصلاحات دور دوم — هدر موبایل، بلوک معرفی، مرز بخش ها، رنگ های بی ربط
   ========================================================================== */

/* --------------------------------------------------------------------------
   ۲۲/۱. پرده منوی موبایل روی خود منو می افتاد
   علت: .pt-header با z-index یک stacking context می سازد و کشوی منو داخل
   آن است. پس z-index کشو (۹۵۰) فقط داخل هدر معنی دارد و پرده که خواهر
   هدر است با ۹۴۰ روی کل هدر — از جمله منو — می نشیند و آن را تیره و
   غیرفعال نشان می دهد. راه حل: وقتی منو باز است خود هدر بالاتر از پرده برود.
   -------------------------------------------------------------------------- */
body.pt-nav-open .pt-header { z-index: 970; }
.pt-nav-backdrop { background: rgba(10, 28, 17, .55); }

/* --------------------------------------------------------------------------
   ۲۲/۲. هدر موبایل
   قبلا جستجو و اینستاگرام و دکمه تماس و همبرگر همه کنار هم بودند و شلوغ
   می شد. روی موبایل فقط لوگو و یک دکمه تماس و منو می ماند؛ جستجو و
   شبکه های اجتماعی داخل خود کشوی منو می آیند.
   -------------------------------------------------------------------------- */
.pt-nav-extra { display: none; }

@media (max-width: 992px) {
    .pt-topbar { font-size: 12px; }
    .pt-topbar .pt-container { min-height: 34px; gap: 8px; }
    .pt-topbar-phones { gap: 12px; }
    .pt-topbar a { gap: 5px; }

    .pt-header-wrap { min-height: 62px; gap: 10px; }
    .pt-logo img { height: 46px; }

    /* جستجو و اینستاگرام از نوار بالای هدر برداشته می شوند */
    .pt-header-actions .pt-icon-btn { display: none; }
    .pt-cta-btn { padding: 10px 13px; border-radius: 12px; }

    /* و داخل کشوی منو نمایش داده می شوند */
    .pt-nav-extra {
        display: flex;
        gap: 8px;
        margin-top: 14px;
        padding-top: 14px;
        border-top: 1px solid var(--pt-line);
    }
    .pt-nav-extra a {
        flex: 1 1 0;
        min-height: 46px;
        border-radius: 11px;
        background: var(--pt-green-soft);
        color: var(--pt-green-dark);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        font-size: 14px;
        font-weight: 700;
    }
    .pt-nav-extra a:hover { background: var(--pt-green); color: #fff; }
}
@media (max-width: 420px) {
    .pt-topbar-phones a:nth-child(2) { display: none; }  /* فقط یک شماره روی صفحه کوچک */
    .pt-logo img { height: 42px; }
}

/* --------------------------------------------------------------------------
   ۲۲/۳. فهرست دسته ها زیر تیتر صفحه اصلی — دو ستونه و کارتی
   -------------------------------------------------------------------------- */
.pt-intro-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.pt-intro-list li { display: block; }
.pt-intro-list a {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 46px;
    padding: 10px 13px;
    border: 1px solid var(--pt-line);
    border-radius: 11px;
    background: #fff;
    color: var(--pt-ink);
    font-size: 14.2px;
    line-height: 1.6;
    transition: border-color .2s, background .2s, transform .2s;
}
.pt-intro-list a i {
    flex: 0 0 auto;
    width: 26px; height: 26px;
    border-radius: 8px;
    background: var(--pt-green-soft);
    color: var(--pt-green-dark);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 12px;
    margin: 0;
}
@media (hover: hover) {
    .pt-intro-list a:hover {
        border-color: var(--pt-green-line);
        background: var(--pt-green-soft);
        transform: translateY(-2px);
    }
    .pt-intro-list a:hover i { background: var(--pt-green); color: #fff; }
}
@media (max-width: 420px) {
    .pt-intro-list { grid-template-columns: 1fr; gap: 7px; }
    .pt-intro-list a { font-size: 13.5px; min-height: 44px; }
}

/* --------------------------------------------------------------------------
   ۲۲/۴. سه دکمه زیر آن — هم اندازه و مرتب
   قبلا flex-wrap بود و دکمه ها با عرض متن خودشان می شکستند و نامرتب
   می افتادند. حالا شبکه است: هر دکمه دقیقا یک خانه.
   -------------------------------------------------------------------------- */
.pt-intro-btns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.pt-intro-btns .pt-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 13px 12px;
    min-height: 52px;
    font-size: 14.2px;
    line-height: 1.5;
}
@media (max-width: 900px) {
    .pt-intro-btns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pt-intro-btns .pt-btn:last-child { grid-column: 1 / -1; }
}
@media (max-width: 430px) {
    .pt-intro-btns { grid-template-columns: 1fr; }
    .pt-intro-btns .pt-btn:last-child { grid-column: auto; }
}

/* --------------------------------------------------------------------------
   ۲۲/۵. مرز بخش ها
   به جای خط صاف، لبه بالای بخش های رنگی موج علفزار می گیرد و بخش سبز
   تیره لبه اریب. شکل ها با clip-path و SVG درون CSS ساخته می شوند، پس
   هیچ فایل و درخواست اضافه ای ندارند.
   -------------------------------------------------------------------------- */
.pt-section.alt {
    position: relative;
    padding-top: 76px;
    overflow: hidden;              /* تا دایره تزئینی اسکرول افقی نسازد */
}
/* لبه علف بالای بخش روشن.
   نوار بالایی به رنگ بخش قبلی (سفید) است و علف ها با رنگ خود این بخش
   رویش کشیده می شوند. اگر برعکس عمل می کردیم یعنی نوار را با رنگ خود
   بخش پر می کردیم، چون پس زمینه بخش هم همان رنگ است چیزی دیده نمی شد. */
.pt-section.alt::before {
    content: '';
    position: absolute;
    inset-inline: 0;
    top: 0;
    height: 26px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26' preserveAspectRatio='none'%3E%3Cpath d='M0 26 L0 23 Q 2.1 15.0 3.5 6.0 Q 4.9 15.0 7.0 23.0 Q 8.5 19.9 9.5 15.0 Q 10.5 19.9 12.0 23.0 Q 14.4 12.8 16.0 2.0 Q 17.6 12.8 20.0 23.0 Q 21.5 18.3 22.5 12.0 Q 23.5 18.3 25.0 23.0 Q 27.1 16.1 28.5 8.0 Q 29.9 16.1 32.0 23.0 Q 33.2 21.1 34.0 17.0 Q 34.8 21.1 36.0 23.0 Q 38.4 13.9 40.0 4.0 Q 41.6 13.9 44.0 23.0 Q 45.5 18.9 46.5 13.0 Q 47.5 18.9 49.0 23.0 Q 51.1 16.6 52.5 9.0 Q 53.9 16.6 56.0 23.0 Q 57.2 20.5 58.0 16.0 Q 58.8 20.5 60.0 23.0 Q 62.1 14.4 63.5 5.0 Q 64.9 14.4 67.0 23.0 Q 68.5 19.4 69.5 14.0 Q 70.5 19.4 72.0 23.0 Q 74.1 15.5 75.5 7.0 Q 76.9 15.5 79.0 23.0 Q 80.5 17.8 81.5 11.0 Q 82.5 17.8 84.0 23.0 Q 86.4 13.3 88.0 3.0 Q 89.6 13.3 92.0 23.0 Q 93.2 19.9 94.0 15.0 Q 94.8 19.9 96.0 23.0 Q 98.1 15.0 99.5 6.0 Q 100.9 15.0 103.0 23.0 Q 104.5 19.9 105.5 15.0 Q 106.5 19.9 108.0 23.0 Q 110.4 12.8 112.0 2.0 Q 113.6 12.8 116.0 23.0 Q 117.2 18.3 118.0 12.0 Q 118.8 18.3 120.0 23.0 L120 26 Z' fill='%23F4F7F4'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-position: bottom center;
    background-size: 160px 26px;
    pointer-events: none;
    z-index: 0;
}
/* دایره محو برای شکستن یکنواختی */
.pt-section.alt::after {
    content: '';
    position: absolute;
    inset-inline-end: -60px;
    top: 50px;
    width: 260px; height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(31,122,61,.08) 0%, rgba(31,122,61,0) 70%);
    pointer-events: none;
    z-index: 0;
}
.pt-section.alt > .pt-container { position: relative; z-index: 1; }

/* لبه اریب برای نوار سبز تیره و نوار فرم — قسمت بریده شده، پس زمینه
   سفید بخش قبلی را نشان می دهد و مرز به جای خط صاف، کج می شود */
/* لبه اریب نوارهای سبز.
   قبلا با clip-path روی خود نوار زده می شد؛ یعنی گوشه بریده می شد و
   پس زمینه صفحه (سفید) از زیرش پیدا می شد. اگر بخش بالایی سفید نبود —
   مثلا بخش مقالات که کرم است — یک مثلث سفید بی ربط وسط دو بخش می افتاد.
   حالا مثلث با رنگ خود نوار سبز، بیرون و بالای نوار کشیده می شود. پس هر
   رنگی هم که بالایش باشد، از بقیه مثلث پیدا می شود و هیچ وقت رنگ سومی
   وسط نمی افتد. */
.pt-trust, .pt-formband { position: relative; }
.pt-trust::before,
.pt-formband::before {
    content: '';
    position: absolute;
    inset-inline: 0;
    top: -22px;
    height: 22px;
    clip-path: polygon(0 100%, 100% 0, 100% 100%);
    pointer-events: none;
}
.pt-trust::before    { background: var(--pt-green-dark); }
.pt-formband::before { background: var(--pt-green); }

@media (max-width: 700px) {
    .pt-trust::before, .pt-formband::before { top: -12px; height: 12px; }
    .pt-section.alt { padding-top: 56px; }
    .pt-section.alt::after { display: none; }
    .pt-section.alt::before { height: 18px; background-size: 110px 18px; }
}

/* --------------------------------------------------------------------------
   ۲۲/۶. رنگ های بی ربط استایل پایه
   استایل پایه از پالت آبی خاکستری (#2c3e50 و #7f8c8d) و خاکستری سرد
   (#f8f9fa) ساخته شده که هیچ ربطی به دام و طیور ندارد. اینجا به پالت
   سبز و کرم برند برگردانده می شود.
   -------------------------------------------------------------------------- */
:root {
    --tbl-accent:        #1F7A3D;
    --tbl-accent-dark:   #14532B;
    --tbl-accent-light:  #E8F3EC;
    --tbl-accent-border: #BFDCCB;
    --tbl-border:        #E2EAE4;
    --tbl-text:          #1B2A22;
    --tbl-zebra:         #F6FAF7;
    --tbl-hover:         #EEF6F0;
}
body .page-h1,
body .page-content,
body .page-content h1, body .page-content h2,
body .page-content h3, body .page-content h4,
body .section-head h2,
body .comments-section h2,
body .children-section h2,
body .faq-item summary,
body .related-item a,
body .breadcrumb span { color: var(--pt-ink); }

body .page-meta,
body .breadcrumb li,
body .section-head p,
body .section-head .section-sub,
body .section-cta p,
body .related-item-body p,
body .faq-answer p { color: var(--pt-muted); }

body .children-section,
body .neff-faq,
body .page-content blockquote,
body .page-content tr:hover,
body .faq-item summary:hover { background: var(--pt-paper); }

body .page-content code { background: var(--pt-green-soft); color: var(--pt-green-dark); }
body .page-content pre  { background: var(--pt-ink); }
body .page-content th, body .page-content td { border-bottom-color: var(--pt-line); }
body .page-header { border-bottom-color: var(--pt-line); }
body a.content-banner:hover { background: linear-gradient(90deg, #ffffff 0%, var(--pt-green-soft) 100%); }

/* ==========================================================================
   ۲۳. اصلاحات دور سوم — هدر، منوی موبایل، جستجو، لوگو، شماره ها
   ========================================================================== */

/* لوگو ۲۰ درصد بزرگ تر از نسخه قبل.
   قاعده موبایل دور قبل (۴۶ پیکسل) عملا بزرگ شدن لوگو را خنثی کرده بود. */
.pt-logo img { height: 74px; }
.pt-footer-logo img { height: 84px; }

/* زیرمنو فقط با کلیک باز شود.
   شرط hover قبلی روی بعضی مرورگرهای اندروید که pointer را «hover-capable»
   گزارش می کنند هم اجرا می شد و زیرمنو با لمس باز و بسته می پرید.
   حالا علاوه بر hover، عرض دسکتاپ هم شرط است. */
@media (max-width: 992px) {
    .pt-nav-item.has-children:hover > .pt-dropdown { display: none; }
    .pt-nav-item.has-children.open > .pt-dropdown  { display: block; }
}

@media (max-width: 992px) {
    /* همبرگر باید بچسبد به لبه چپ هدر.
       .pt-nav روی موبایل fixed است، پس margin-inline-start: auto آن دیگر
       فاصله نمی سازد و دکمه ها می چسبیدند به لوگو. */
    .pt-header-actions { margin-inline-start: auto; }
    .pt-menu-toggle {
        order: 10;
        width: 44px; height: 44px;
        border-radius: 12px;
        background: var(--pt-green-soft);
        display: inline-flex; align-items: center; justify-content: center;
        padding: 0;
    }
    .pt-header-actions .pt-icon-btn { display: inline-flex; }   /* ذره بین بماند */
    .pt-header-actions > .pt-icon-btn:not(#ptSearchToggle) { display: none; }
    .pt-logo img { height: 56px; }
}
@media (max-width: 420px) {
    .pt-logo img { height: 50px; }
    .pt-cta-btn { padding: 10px 12px; }
}

/* وقتی منوی موبایل باز است، دکمه های شناور و نوار پایین نباید رویش بیفتند */
body.pt-nav-open .floating-call,
body.pt-nav-open .floating-whatsapp,
body.pt-nav-open .floating-call-pulse,
body.pt-nav-open .mobile-bottom-bar {
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s, visibility .2s;
}

/* کشو تا پایین صفحه ادامه دارد، پس فضای نوار پایین هم آزاد می شود */
@media (max-width: 992px) {
    .pt-nav { padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
    .pt-nav-extra { flex-wrap: wrap; }
    .pt-nav-extra a,
    .pt-nav-extra button {
        flex: 1 1 45%;
        min-height: 46px;
        border: 0;
        cursor: pointer;
        font-family: inherit;
        border-radius: 11px;
        background: var(--pt-green-soft);
        color: var(--pt-green-dark);
        display: inline-flex; align-items: center; justify-content: center;
        gap: 8px; font-size: 14px; font-weight: 700;
    }
    .pt-nav-extra a:hover, .pt-nav-extra button:hover { background: var(--pt-green); color: #fff; }
}

/* --------------------------------------------------------------------------
   جستجو — overlay روی صفحه، نه نواری که محتوا را هل بدهد
   -------------------------------------------------------------------------- */
.pt-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;                 /* بالاتر از هدر و کشوی منو */
    background: rgba(10, 28, 17, .55);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s ease, visibility .22s ease;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(70px, 14vh, 150px) 18px 18px;
    overflow-y: auto;
}
.pt-search-overlay.open { opacity: 1; visibility: visible; }
body.pt-search-open { overflow: hidden; }

.pt-search-panel {
    width: 100%;
    max-width: 720px;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
    padding: 22px;
    transform: translateY(-14px);
    transition: transform .26s ease;
}
.pt-search-overlay.open .pt-search-panel { transform: translateY(0); }

.pt-search-form {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 2px solid var(--pt-green-line);
    border-radius: 14px;
    padding: 6px 6px 6px 6px;
    padding-inline-start: 14px;
    transition: border-color .2s, box-shadow .2s;
}
.pt-search-form:focus-within {
    border-color: var(--pt-green);
    box-shadow: 0 0 0 4px var(--pt-green-soft);
}
.pt-search-form > i { color: var(--pt-green); font-size: 17px; flex: 0 0 auto; }
.pt-search-form input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 52px;
    border: 0;
    outline: none;
    background: transparent;
    font-family: inherit;
    font-size: 16px;
    color: var(--pt-ink);
}
.pt-search-form input::placeholder { color: #9AABA0; }
.pt-search-form input::-webkit-search-cancel-button { -webkit-appearance: none; }
.pt-search-form button[type="submit"] {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 0 26px;
    border: 0;
    cursor: pointer;
    border-radius: 11px;
    background: var(--pt-green);
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
}
.pt-search-form button[type="submit"]:hover { background: var(--pt-green-dark); }

.pt-search-quick {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    font-size: 13.5px;
    color: var(--pt-muted);
}
.pt-search-quick a {
    background: var(--pt-green-soft);
    color: var(--pt-green-dark);
    padding: 8px 14px;
    border-radius: 20px;
    font-size: 13.5px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
}
.pt-search-quick a:hover { background: var(--pt-green); color: #fff; }

.pt-search-close {
    position: absolute;
    top: 18px;
    inset-inline-start: 18px;
    width: 46px; height: 46px;
    border: 0; cursor: pointer;
    border-radius: 50%;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    font-size: 30px; line-height: 1;
}
.pt-search-close:hover { background: rgba(255, 255, 255, .3); }

@media (max-width: 560px) {
    .pt-search-overlay { padding-top: 74px; }
    .pt-search-panel { padding: 16px; border-radius: 15px; }
    .pt-search-form { padding-inline-start: 11px; gap: 7px; }
    .pt-search-form input { font-size: 15.5px; min-height: 48px; }
    .pt-search-form button[type="submit"] { padding: 0 16px; font-size: 14px; min-height: 44px; }
    .pt-search-close { top: 12px; inset-inline-start: 12px; width: 42px; height: 42px; }
}

/* شماره ها: رقم فارسی با فاصله استاندارد — فاصله ها نباید بشکنند */
/* فقط شماره ها نباید وسطشان بشکنند.
   قبلا این قاعده روی .pt-cc-value بود که کلاس مشترک همه مقادیر کارت تماس
   است — یعنی آدرس دفتر و کارخانه و ایمیل هم nowrap می شدند و از کادر
   می زدند بیرون. حالا فقط عناصری که کلاس pt-num دارند شامل می شوند. */
.pt-topbar-phones b,
.pt-footer-contact b,
.pt-num,
.pt-form-call span { white-space: nowrap; letter-spacing: .01em; }

/* ==========================================================================
   ۲۴. بلوک درخواست مشاوره و سفارش (CTA زمینه دار)
   ========================================================================== */
.pt-cta {
    margin: 34px 0;
    border: 1px solid var(--pt-green-line);
    border-radius: var(--pt-radius);
    background:
        radial-gradient(circle at 92% 8%, rgba(216,155,44,.10), transparent 42%),
        linear-gradient(180deg, var(--pt-green-soft) 0%, #FFFFFF 78%);
    overflow: hidden;
}
.pt-cta-inner {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 26px;
    padding: 24px;
    align-items: center;
}
.pt-cta-title {
    font-size: clamp(1.05rem, .95rem + .5vw, 1.3rem);
    color: var(--pt-green-dark);
    margin: 0 0 8px;
    line-height: 1.7;
}
.pt-cta-text { font-size: 14.5px; color: var(--pt-body); margin: 0 0 16px; line-height: 1.9; }

.pt-cta-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.pt-cta-call {
    display: inline-flex; align-items: center; gap: 11px;
    background: var(--pt-green); color: #fff;
    padding: 11px 20px; border-radius: 12px; min-height: 54px;
}
.pt-cta-call:hover { background: var(--pt-green-dark); }
.pt-cta-call i { font-size: 18px; }
.pt-cta-call span { display: flex; flex-direction: column; line-height: 1.5; }
.pt-cta-call b  { font-size: 14.5px; font-weight: 700; }
.pt-cta-call em { font-style: normal; font-size: 13px; opacity: .9; letter-spacing: .02em; }
.pt-cta-wa {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; color: #1a7a45;
    border: 1.5px solid #cfe7d8;
    padding: 11px 18px; border-radius: 12px; min-height: 54px; font-size: 14.5px; font-weight: 700;
}
.pt-cta-wa:hover { background: #22a45d; border-color: #22a45d; color: #fff; }
.pt-cta-trust { font-size: 12.8px; color: var(--pt-muted); margin: 14px 0 0; }

.pt-cta-form {
    background: #fff;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius-sm);
    padding: 16px;
    box-shadow: 0 6px 18px rgba(20, 83, 43, .07);
}
.pt-cta-form label { display: block; font-size: 12.8px; color: var(--pt-muted); margin: 0 0 5px; }
.pt-cta-form label + input { margin-bottom: 11px; }
.pt-cta-form input {
    width: 100%; box-sizing: border-box;
    min-height: 46px; padding: 10px 13px;
    border: 1.5px solid var(--pt-line); border-radius: 10px;
    font-family: inherit; font-size: 14.5px; color: var(--pt-ink); background: #fff;
}
.pt-cta-form input[name="phone"] { direction: ltr; text-align: left; letter-spacing: .04em; }
.pt-cta-form input:focus { outline: none; border-color: var(--pt-green); box-shadow: 0 0 0 3px var(--pt-green-soft); }
.pt-cta-form button {
    width: 100%; min-height: 48px; margin-top: 4px;
    border: 0; cursor: pointer; border-radius: 11px;
    background: var(--pt-gold); color: #241a04;
    font-family: inherit; font-size: 15px; font-weight: 700;
}
.pt-cta-form button:hover { background: var(--pt-gold-dark); color: #fff; }
.pt-cta-form button[disabled] { opacity: .6; cursor: default; }
.pt-cta-msg { display: none; font-size: 13.5px; padding: 9px 12px; border-radius: 9px; margin-top: 10px; }
.pt-cta-msg.ok  { display: block; background: var(--pt-green-soft); color: var(--pt-green-dark); }
.pt-cta-msg.err { display: block; background: #fdecec; color: #a52020; }

/* روی صفحات دسته کمی جمع تر، چون بین لیست محصولات و متن می نشیند */
.pt-cta-category .pt-cta-inner { padding: 20px; gap: 20px; }

@media (max-width: 860px) {
    .pt-cta-inner { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
    .pt-cta-actions .pt-cta-call,
    .pt-cta-actions .pt-cta-wa { flex: 1 1 100%; justify-content: center; }
}

/* وقتی CTA درون صفحه جلوی چشم است، دکمه های شناور محو می شوند تا
   سه درخواست تماس همزمان روی یک صفحه کوچک نباشد */
body.pt-cta-visible .floating-call,
body.pt-cta-visible .floating-whatsapp,
body.pt-cta-visible .floating-call-pulse {
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s, visibility .25s;
}

/* ==========================================================================
   ۲۵. قالب بالای صفحه محصول
   ========================================================================== */
.pt-phero {
    display: grid;
    grid-template-columns: 420px 1fr;   /* راست: تصویر ، چپ: اطلاعات */
    gap: 30px;
    align-items: start;
    margin: 6px 0 30px;
}
.pt-phero-media {
    background: #fff;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius);
    padding: 18px;
    display: flex; align-items: center; justify-content: center;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.pt-phero-media img { width: 100%; height: 100%; object-fit: contain; }

.pt-phero-title {
    font-size: clamp(1.3rem, 1.05rem + 1.1vw, 1.85rem);
    margin: 0 0 12px;
    line-height: 1.65;
}
.pt-phero-desc {
    font-size: 15px; color: var(--pt-body); line-height: 1.95;
    margin: 0 0 18px;
}

.pt-phero-specs {
    margin: 0 0 20px;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-radius-sm);
    overflow: hidden;
    background: #fff;
}
.pt-phero-spec {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 0;
    border-bottom: 1px solid var(--pt-line);
}
.pt-phero-spec:last-child { border-bottom: 0; }
.pt-phero-spec dt {
    background: var(--pt-green-soft);
    color: var(--pt-green-dark);
    font-size: 13.5px; font-weight: 700;
    padding: 11px 13px;
    display: flex; align-items: center;
}
.pt-phero-spec dd {
    margin: 0; padding: 11px 13px;
    font-size: 14px; color: var(--pt-body); line-height: 1.85;
}

.pt-phero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.pt-phero-call, .pt-phero-quote, .pt-phero-wa {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    min-height: 52px; padding: 12px 22px; border-radius: 12px;
    font-size: 14.5px; font-weight: 700;
}
.pt-phero-call  { background: var(--pt-green); color: #fff; }
.pt-phero-call:hover { background: var(--pt-green-dark); }
.pt-phero-quote { background: var(--pt-gold); color: #241a04; }
.pt-phero-quote:hover { background: var(--pt-gold-dark); color: #fff; }
.pt-phero-wa {
    background: #fff; color: #1a7a45; border: 1.5px solid #cfe7d8;
    width: 52px; padding: 0; font-size: 20px;
}
.pt-phero-wa:hover { background: #22a45d; border-color: #22a45d; color: #fff; }

@media (max-width: 900px) {
    .pt-phero { grid-template-columns: 1fr; gap: 18px; margin-bottom: 22px; }
    .pt-phero-media { aspect-ratio: 4 / 3; padding: 12px; }
    .pt-phero-spec { grid-template-columns: 128px 1fr; }
}
@media (max-width: 480px) {
    .pt-phero-actions .pt-phero-call,
    .pt-phero-actions .pt-phero-quote { flex: 1 1 100%; }
    .pt-phero-actions .pt-phero-wa { flex: 1 1 100%; width: auto; }
    .pt-phero-spec { grid-template-columns: 1fr; }
    .pt-phero-spec dt { padding-bottom: 4px; }
    .pt-phero-spec dd { padding-top: 4px; }
}

/* تیترهای فوتر از h4 به h2 تغییر کردند تا سطح تیترها پرش نداشته باشد
   (صفحه از h2 مستقیم به h4 می رفت). ظاهر همان قبلی می ماند. */
.pt-footer .pt-footer-h {
    color: #fff;
    font-size: 16px;
    margin: 0 0 16px;
    padding-bottom: 9px;
    border-bottom: 2px solid rgba(216, 155, 44, .5);
    display: inline-block;
    font-weight: 700;
    line-height: 1.7;
}

/* ==========================================================================
   ۲۶. حالت اضطراری کروسل
   اگر به هر دلیلی Swiper اجرا نشود (فایل لود نشده باشد، خطای جاوااسکریپت،
   یا مرورگر قدیمی)، اسلایدها باید باز هم دیده شوند. بدون این قاعده،
   کانتینر ارتفاع صفر می گیرد و کاربر یک کادر خالی می بیند.
   Swiper بعد از اجرا کلاس swiper-initialized را اضافه می کند، پس این
   قاعده فقط تا قبل از آن فعال است.
   ========================================================================== */
.pt-carousel .swiper:not(.swiper-initialized) { overflow: visible; }

/* شبکه جایگزین. اندازه ستون باید متناسب با نوع کارت باشد:
   نسخه قبلی یک عدد واحد (۲۱۰ پیکسل) برای هر دو کروسل داشت — برای کارت
   عمودی محصول درست بود ولی کارت پهن مقاله (تصویر ۱۳۲ پیکسلی کنار متن)
   را در ستون ۲۱۰ پیکسلی له می کرد و متن حرف به حرف می شکست. */
.pt-carousel .swiper:not(.swiper-initialized) .swiper-wrapper {
    display: grid;
    gap: 18px;
    transform: none !important;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.pt-prod-carousel .swiper:not(.swiper-initialized) .swiper-wrapper {
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}
.pt-post-carousel .swiper:not(.swiper-initialized) .swiper-wrapper {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
@media (max-width: 560px) {
    .pt-carousel .swiper:not(.swiper-initialized) .swiper-wrapper { grid-template-columns: 1fr; }
}
.pt-carousel .swiper:not(.swiper-initialized) .swiper-slide {
    width: auto !important;
    height: auto;
    flex-shrink: 1;
}
.pt-carousel .swiper:not(.swiper-initialized) ~ .pt-nav-btn,
.pt-carousel .swiper:not(.swiper-initialized) ~ .pt-dots,
.pt-carousel .swiper:not(.swiper-initialized) ~ .pt-progress { display: none; }

/* همین برای اسلایدر بالای صفحه اصلی: تا قبل از اجرا فقط اسلاید اول دیده شود */
.pt-slider .swiper:not(.swiper-initialized) { overflow: hidden; }
.pt-slider .swiper:not(.swiper-initialized) .swiper-wrapper { transform: none !important; }
.pt-slider .swiper:not(.swiper-initialized) .swiper-slide:not(:first-child) { display: none; }


/* ==========================================================================
   ۲۷. کروسل محصولات — دسکتاپ تمام عرض، موبایل با تجربه کاربری درست
   ========================================================================== */

/* دسکتاپ: چهار کارت دقیقا عرض کانتینر را پر می کنند و فلش ها بیرون
   از لبه می نشینند، پس از عرض مفید کم نمی کنند. */
@media (min-width: 1024px) {
    .pt-prod-carousel { padding-inline: 0; }
    .pt-prod-carousel .swiper { padding-inline: 0; }
    .pt-prod-carousel .pt-nav-btn { width: 44px; height: 44px; }
}
/* کارت ها روی صفحه های خیلی پهن بیش از حد بزرگ نشوند */
@media (min-width: 1400px) {
    .pt-prod-carousel .pt-card-media { aspect-ratio: 4 / 3; }
}

/* موبایل */
@media (max-width: 700px) {
    /* «peek» از خود slidesPerView کسری می آید، پس overflow دست نمی خورد */
    .pt-prod-carousel { padding-inline: 2px; }

    /* نقطه ها بزرگ تر و قابل لمس */
    .pt-dots { margin-top: 14px; gap: 7px; }
    .pt-dots .swiper-pagination-bullet { width: 9px; height: 9px; }
    .pt-dots .swiper-pagination-bullet-active { width: 22px; border-radius: 5px; }

    /* کارت جمع تر تا در یک نگاه کامل دیده شود */
    .pt-prod-carousel .pt-card-body { padding: 12px 12px 14px; }
    .pt-prod-carousel .pt-card-title { font-size: 14px; }
    .pt-prod-carousel .pt-card-more { font-size: 12.5px; }
}

