@import url('../fonts/vazir.css');

/* ============================================================
   پرتال عمومی دفتر املاک — portal.php
   ------------------------------------------------------------
   ⚠ این فایل عمدا جدا از style.css است: پرتال یک صفحه‌ی عمومی و
     بی‌احراز هویت است و نباید پوسته‌ی چندصدکیلوبایتی نرم‌افزار را
     بار کند. هرچه اینجا سبک‌تر بماند، LCP موبایل بهتر است.
   ⚠ چیدمان دو ستونی فقط از ۱۰۴۰px به بالا فعال می‌شود؛ زیر آن،
     ستون کناری همان پنل «درباره دفتر» است (یک DOM، دو نقش).
   ============================================================ */

:root {
    /* ══ ناحیه‌ی امن دستگاه ══ (شرح کامل در style.css)
       پرتال از داخل اپ اندروید و وب‌اپ آیفون هم باز می‌شود و نوار
       شناور پایین باید بالای نوار ناوبری سیستم بنشیند. */
    --sat: 0px; --sar: 0px; --sab: 0px; --sal: 0px;

    --navy: #0b1a30;
    --navy-2: #14294a;
    --blue: #2563eb;
    --blue-d: #1d4ed8;
    --blue-l: #3b78ff;
    --blue-soft: #eef4ff;
    --ink: #0f1e34;
    --muted: #5b6b82;
    --faint: #93a1b5;
    --line: #e6ebf4;
    --line-2: #cddcf7;
    --bg: #f5f8fd;
    --surface: #ffffff;
    --surface-2: #f2f6fc;
    --radius: 18px;
    --radius-sm: 12px;
    --shadow-sm: 0 4px 14px rgba(17, 34, 64, .05);
    --shadow: 0 14px 34px rgba(17, 34, 64, .10);
    --shadow-lg: 0 26px 60px rgba(9, 20, 42, .18);
    --maxw: 1180px;
    --nav-h: 58px;
}
@supports (padding-top: env(safe-area-inset-top)) {
    :root {
        --sat: env(safe-area-inset-top, 0px);
        --sar: env(safe-area-inset-right, 0px);
        --sab: min(env(safe-area-inset-bottom, 0px), 20px);
        --sal: env(safe-area-inset-left, 0px);
    }
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Vazir', Tahoma, sans-serif;
    background: var(--bg);
    color: var(--ink);
    direction: rtl;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
ul { list-style: none; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 6px; }

.ic {
    width: 1em; height: 1em; display: inline-block; vertical-align: -.13em;
    stroke: currentColor; fill: none; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0;
}
.pwrap {
    max-width: var(--maxw); margin-inline: auto;
    padding-inline: max(16px, var(--sar)) max(16px, var(--sal));
}
/* فقط برای صفحه‌خوان — عنوان بخش‌هایی که تیتر دیداری ندارند */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ═══════════════ ۱) سرصفحه ═══════════════ */
.phero { background: var(--surface); border-bottom: 1px solid var(--line); }
.phero-cover {
    position: relative; height: 158px; overflow: hidden;
    background:
        radial-gradient(120% 140% at 12% 0%, rgba(59,120,255,.55) 0%, rgba(59,120,255,0) 55%),
        linear-gradient(120deg, var(--navy) 0%, var(--navy-2) 52%, #1b4a8f 100%);
    padding-top: var(--sat);
}
/* بافت ظریف روی بنر — خطوط مورب کم‌رنگ، بدون هیچ تصویری */
.phero-cover::before {
    content: ''; position: absolute; inset: 0; opacity: .5;
    background: repeating-linear-gradient(115deg, rgba(255,255,255,.05) 0 1px, transparent 1px 13px);
}
.phero-cover::after {
    content: ''; position: absolute; inset-inline: -10%; bottom: -60%; height: 120%;
    background: radial-gradient(50% 50% at 50% 50%, rgba(255,255,255,.12), transparent 70%);
}

/* مسیر راهنما (breadcrumb) — هم برای کاربر هم برای خزنده */
.crumbs {
    position: relative; z-index: 2; padding-top: 14px;
    font-size: 12px; color: rgba(255,255,255,.72);
    display: flex; align-items: center; gap: 6px;
    /* ⚠ بنر ارتفاع ثابت و overflow:hidden دارد؛ اگر مسیر راهنما بشکند، خط
       دومش بریده می‌شود. پس تک‌خطی می‌ماند و آخرین حلقه «…» می‌خورد. */
    flex-wrap: nowrap; overflow: hidden; white-space: nowrap;
}
.crumbs > * { flex: 0 0 auto; }
.crumbs [aria-current] { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; }
.crumbs a { color: rgba(255,255,255,.86); }
.crumbs a:hover { color: #fff; text-decoration: underline; }
.crumbs .sep { opacity: .45; }
.crumbs [aria-current] { color: #fff; font-weight: 700; }

.phero-top {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 18px; flex-wrap: wrap;
}
/* ⚠ فقط **لوگو** روی بنر می‌افتد، نه کل بلوک هویت.
   با margin منفی روی خود ‎.phero-id، تیتر و شعار هم بالا کشیده می‌شدند و
   متن تیره روی بنر تیره می‌نشست — عملا ناخوانا. */
/* ⚠ z-index لازم است: ‎.phero-cover خودش position:relative است و بدون این،
   بنر روی لوگویی که با margin منفی رویش افتاده کشیده می‌شد. */
.phero-id { display: flex; align-items: flex-start; gap: 18px; min-width: 0; position: relative; z-index: 2; }
.phero-logo {
    margin-top: -58px;
    flex: 0 0 auto; width: 124px; height: 124px; padding: 12px; border-radius: 26px;
    background: var(--surface); border: 1px solid var(--line);
    box-shadow: var(--shadow); display: grid; place-items: center; overflow: hidden;
}
.phero-logo img { width: 100%; height: 100%; object-fit: contain; }
.phero-logo .ph {
    width: 100%; height: 100%; border-radius: 16px; display: grid; place-items: center;
    background: linear-gradient(135deg, var(--blue-soft), #dbe7ff); color: var(--blue-d);
    font-size: 40px; font-weight: 800;
}
.phero-titles { min-width: 0; padding-top: 12px; }
.phero-kicker {
    font-size: 11.5px; font-weight: 800; letter-spacing: .2px; color: var(--blue);
    background: var(--blue-soft); border-radius: 999px; padding: 3px 10px;
    display: inline-flex; align-items: center; gap: 5px; margin-bottom: 7px;
}
.phero-titles h1 {
    font-size: clamp(20px, 2.4vw, 27px); font-weight: 800; line-height: 1.45; letter-spacing: -.4px;
}
.phero-titles h1 .sub { color: var(--muted); font-weight: 700; font-size: .68em; }
.phero-slogan { color: var(--muted); font-size: 13.5px; margin-top: 2px; }
.phero-meta {
    display: flex; flex-wrap: wrap; gap: 6px 8px; margin-top: 10px;
    font-size: 12.5px; color: var(--muted);
}
.phero-meta li {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--surface-2); border: 1px solid var(--line);
    border-radius: 999px; padding: 4px 11px;
}
.phero-meta .ic { color: var(--faint); }
.phero-meta .tel { color: var(--blue-d); font-weight: 800; direction: ltr; }

.phero-acts { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 6px; }

.phero-stats { display: flex; gap: 10px; margin: 18px 0 20px; }
.pstat {
    flex: 1 1 0; min-width: 0; text-align: center; padding: 11px 8px;
    background: var(--surface-2); border: 1px solid var(--line); border-radius: 14px;
}
.pstat b { display: block; font-size: 19px; font-weight: 800; line-height: 1.35; letter-spacing: -.3px; }
.pstat span {
    display: block; font-size: 11.5px; color: var(--muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ═══════════════ ۲) نوار چسبان تب‌ها ═══════════════ */
.pnav {
    position: sticky; top: 0; z-index: 40;
    background: rgba(255,255,255,.88); backdrop-filter: blur(14px) saturate(1.4);
    border-bottom: 1px solid var(--line);
}
.pnav-in { display: flex; align-items: center; gap: 10px; min-height: var(--nav-h); }
/* هویت کوچک — فقط وقتی سرصفحه از دید رفته باشد */
.pnav-brand { display: none; align-items: center; gap: 9px; min-width: 0; }
body.is-stuck .pnav-brand { display: flex; animation: pfade .22s ease-out; }
@keyframes pfade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.pnav-brand img, .pnav-brand .ph {
    width: 32px; height: 32px; border-radius: 10px; object-fit: contain;
    background: var(--surface-2); border: 1px solid var(--line);
    display: grid; place-items: center; font-size: 14px; font-weight: 800; color: var(--blue);
}
.pnav-brand b {
    font-size: 13.5px; font-weight: 800; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis; max-width: 190px;
}
.pnav-tabs {
    display: flex; align-items: center; gap: 4px; overflow-x: auto;
    scrollbar-width: none; -ms-overflow-style: none; flex: 1 1 auto;
}
.pnav-tabs::-webkit-scrollbar { display: none; }
.ptab {
    appearance: none; border: none; background: none; cursor: pointer; font-family: inherit;
    display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
    font-size: 13.5px; font-weight: 700; color: var(--muted);
    padding: 8px 13px; border-radius: 11px; transition: background .15s, color .15s;
}
.ptab:hover { color: var(--ink); background: var(--surface-2); }
.ptab[aria-selected="true"] { color: var(--blue-d); background: var(--blue-soft); font-weight: 800; }
.ptab .n {
    font-size: 11px; font-weight: 800; padding: 1px 7px; border-radius: 999px;
    background: var(--surface-2); color: var(--muted); min-width: 22px; text-align: center;
}
.ptab[aria-selected="true"] .n { background: var(--blue); color: #fff; }
/* ⚠ با ‎.pnav ابتدای انتخابگر: ‎.pbtn پایین‌تر تعریف می‌شود و با وزن برابر،
   display:inline-flex آن بر display:none اینجا می‌چربید. */
.pnav .pnav-cta { display: none; }
@media (min-width: 1040px) { .pnav .pnav-cta { display: inline-flex; } }

/* ═══════════════ ۳) دکمه‌ها ═══════════════ */
.pbtn {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    font-family: inherit; font-size: 13px; font-weight: 800; line-height: 1;
    padding: 11px 16px; border-radius: 13px; cursor: pointer;
    border: 1.5px solid var(--line); background: var(--surface); color: var(--ink);
    transition: background .16s, border-color .16s, color .16s, transform .16s, box-shadow .16s;
}
.pbtn:hover { border-color: var(--line-2); background: var(--blue-soft); color: var(--blue-d); }
.pbtn:active { transform: scale(.98); }
.pbtn .ic { width: 15px; height: 15px; }
.pbtn.pri {
    background: var(--blue); border-color: var(--blue); color: #fff;
    box-shadow: 0 10px 22px rgba(37,99,235,.26);
}
.pbtn.pri:hover { background: var(--blue-d); border-color: var(--blue-d); color: #fff; }
.pbtn .num { direction: ltr; letter-spacing: .3px; }
.pbtn.insta {
    border: 0; color: #fff;
    background: linear-gradient(45deg, #f09433 0%, #dc2743 45%, #bc1888 100%);
    box-shadow: 0 10px 22px rgba(188,24,136,.22);
}
.pbtn.insta:hover { color: #fff; filter: brightness(1.06); }
.pbtn.block { width: 100%; }
.pbtn.sm { font-size: 12.5px; padding: 9px 13px; border-radius: 11px; }

/* ═══════════════ ۴) بدنه ═══════════════ */
/* ⚠ minmax(0,1fr) و min-width:0 هر دو لازم‌اند، وگرنه ستون به اندازه‌ی
   min-content فرزندانش باز می‌شود. متن‌های تک‌خطیِ کارت (‎.pc-title و
   ‎.pc-loc با white-space:nowrap) min-content بزرگی دارند و همین باعث
   می‌شد کل صفحه روی موبایل چند ده پیکسل از عرض نمایشگر پهن‌تر شود. */
.pmain { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; align-items: start; padding: 22px 0 40px; }
.pmain > * { min-width: 0; }
@media (min-width: 1040px) {
    .pmain { grid-template-columns: minmax(0, 1fr) 336px; gap: 26px; }
    #panel-files, #panel-team { grid-column: 1; }
    /* ستون کناری همیشه دیده می‌شود — «درباره» روی دسکتاپ تب نیست.
       ⚠ عمدا sticky نیست: این ستون از ارتفاع پنجره بلندتر می‌شود و sticky
         سرش را می‌چسباند و ته خودش (نقشه و اطلاعات) را از دسترس می‌برد. */
    #panel-about { grid-column: 2; grid-row: 1; }
    #panel-about[hidden] { display: block; }
    .ptab[data-tab="about"] { display: none; }
}
.ppanel[hidden] { display: none; }
.psec-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 12px; flex-wrap: wrap; margin-bottom: 12px;
}
.psec-head h2 { font-size: 17px; font-weight: 800; letter-spacing: -.3px; }
.psec-head .cnt { font-size: 12.5px; color: var(--muted); font-weight: 700; }
.psec-head a { font-size: 12.5px; font-weight: 700; color: var(--blue); }
.psec-head a:hover { text-decoration: underline; }
.pintro { font-size: 13px; color: var(--muted); line-height: 2; margin: -4px 0 14px; }

/* ── نوار جست‌وجو و فیلتر ── */
.pfilter {
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    padding: 13px; box-shadow: var(--shadow-sm); margin-bottom: 16px;
}
.pf-row { display: flex; gap: 9px; flex-wrap: wrap; }
.pf-search { position: relative; flex: 1 1 240px; min-width: 0; }
.pf-search .ic {
    position: absolute; inset-inline-start: 13px; top: 50%; transform: translateY(-50%);
    width: 17px; height: 17px; color: var(--faint); pointer-events: none;
}
.pfilter input, .pfilter select {
    width: 100%; font-family: inherit; font-size: 13.5px; color: var(--ink);
    background: var(--surface-2); border: 1.5px solid var(--line); border-radius: 13px;
    padding: 11px 14px; outline: none; transition: border-color .15s, background .15s;
}
.pfilter input { padding-inline-start: 40px; }
.pfilter input:focus, .pfilter select:focus { border-color: var(--blue); background: var(--surface); }
.pfilter select { flex: 0 1 168px; width: auto; min-width: 0; cursor: pointer; }
.pf-go { flex: 0 0 auto; }
@media (max-width: 519px) { .pf-go, .pfilter select { flex: 1 1 46%; } }
.pf-chips {
    display: flex; gap: 7px; margin-top: 11px; overflow-x: auto;
    scrollbar-width: none; padding-bottom: 2px;
}
.pf-chips::-webkit-scrollbar { display: none; }
.pchip {
    flex: 0 0 auto; font-size: 12.5px; font-weight: 700; white-space: nowrap;
    padding: 6px 13px; border-radius: 999px; color: var(--muted);
    background: var(--surface-2); border: 1px solid var(--line); transition: .15s;
}
.pchip:hover { color: var(--blue-d); border-color: var(--line-2); }
.pchip[aria-current="true"] { background: var(--blue); border-color: var(--blue); color: #fff; }

/* ── کارت فایل ──
   🔴 هندسه‌ی ثابت: ارتفاع هر بلوکِ متن ثابت است و هر متن تک‌خطی با «…»
      بریده می‌شود. اگر ردیفی اجازه‌ی شکستن بگیرد، کف کارت‌های یک ردیف
      دیگر هم‌تراز نمی‌ماند. */
.pgrid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
.pgrid > *, .pteam > * { min-width: 0; }
@media (min-width: 520px)  { .pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .pgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pcard {
    display: flex; flex-direction: column; overflow: hidden; color: inherit;
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    box-shadow: var(--shadow-sm); transition: transform .2s, box-shadow .2s, border-color .2s;
}
.pcard:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--line-2); }
.pcard:active { transform: scale(.995); }
.pc-shot {
    position: relative; aspect-ratio: 4 / 3; overflow: hidden;
    background: linear-gradient(135deg, var(--surface-2), #e8eefa); display: grid; place-items: center;
}
.pc-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.pcard:hover .pc-shot img { transform: scale(1.05); }
.pc-shot > .ic { width: 38px; height: 38px; color: var(--faint); }
.pc-deal {
    position: absolute; top: 9px; inset-inline-end: 9px; max-width: calc(100% - 18px);
    background: rgba(255,255,255,.94); color: var(--blue-d); backdrop-filter: blur(6px);
    font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 999px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    box-shadow: 0 2px 8px rgba(15,30,52,.14);
}
.pc-shots {
    position: absolute; bottom: 9px; inset-inline-start: 9px;
    background: rgba(11,26,48,.7); color: #fff; backdrop-filter: blur(4px);
    font-size: 10.5px; font-weight: 700; padding: 3px 8px; border-radius: 8px;
    display: inline-flex; align-items: center; gap: 4px;
}
.pc-shots .ic { width: 12px; height: 12px; }
.pc-body { flex: 1; min-width: 0; display: flex; flex-direction: column; padding: 12px 13px 13px; }
.pc-title {
    height: 23px; line-height: 23px; font-size: 14.5px; font-weight: 800;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pc-loc {
    height: 19px; line-height: 19px; margin-top: 1px; font-size: 12px; color: var(--muted);
    display: flex; align-items: center; gap: 4px;
}
.pc-loc .ic { width: 13px; height: 13px; color: var(--faint); }
.pc-loc span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-specs { display: flex; gap: 6px; margin-top: 9px; height: 25px; overflow: hidden; }
.pc-specs li {
    display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
    font-size: 11.5px; font-weight: 700; color: var(--muted);
    background: var(--surface-2); border-radius: 8px; padding: 3px 8px;
}
.pc-specs .ic { width: 13px; height: 13px; color: var(--faint); }
.pc-price { margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--line); }
.pc-plabel {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    height: 17px; font-size: 11px; font-weight: 700; color: var(--muted);
}
.pc-plabel .kind { color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-pval {
    height: 24px; line-height: 24px; font-size: 15.5px; font-weight: 800; letter-spacing: -.3px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pc-pval i { font-style: normal; font-size: 11px; font-weight: 700; color: var(--muted); margin-inline-start: 3px; }
.pc-pval.none { font-size: 13.5px; color: var(--faint); }

/* ── صفحه‌بندی ── */
.ppager { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 22px; flex-wrap: wrap; }
.ppager a, .ppager span {
    min-width: 38px; height: 38px; padding: 0 11px; border-radius: 11px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 700; border: 1.5px solid var(--line);
    background: var(--surface); color: var(--muted);
}
.ppager a:hover { border-color: var(--line-2); color: var(--blue-d); background: var(--blue-soft); }
.ppager [aria-current="page"] { background: var(--blue); border-color: var(--blue); color: #fff; }
.ppager .gap { border: 0; background: none; min-width: 16px; padding: 0; }

/* ── کارت مشاور ── */
.pteam { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .pteam { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pmember {
    display: flex; align-items: center; gap: 13px; padding: 13px;
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    box-shadow: var(--shadow-sm); transition: border-color .16s, box-shadow .16s;
}
.pmember:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.pm-ava {
    flex: 0 0 auto; width: 58px; height: 58px; border-radius: 18px; overflow: hidden;
    display: grid; place-items: center; font-size: 22px; font-weight: 800;
    background: linear-gradient(135deg, var(--blue-soft), #dbe7ff); color: var(--blue-d);
}
.pm-ava img { width: 100%; height: 100%; object-fit: cover; }
.pm-info { flex: 1; min-width: 0; }
.pm-name {
    font-size: 14.5px; font-weight: 800; display: flex; align-items: center; gap: 6px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pm-role {
    flex: 0 0 auto; font-size: 10.5px; font-weight: 800; padding: 1px 8px; border-radius: 7px;
    background: var(--blue-soft); color: var(--blue-d);
}
.pm-sub { display: flex; flex-wrap: wrap; gap: 2px 12px; margin-top: 2px; font-size: 12px; color: var(--muted); }
.pm-sub span { display: inline-flex; align-items: center; gap: 4px; }
.pm-sub .ic { width: 13px; height: 13px; color: var(--faint); }

/* ── جعبه‌های ستون کناری / درباره ── */
.pbox {
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    padding: 16px; box-shadow: var(--shadow-sm); margin-bottom: 14px;
}
.pbox > h2 {
    font-size: 14.5px; font-weight: 800; display: flex; align-items: center; gap: 8px; margin-bottom: 12px;
}
.pbox > h2 .ic { width: 17px; height: 17px; color: var(--blue); }
.pbox-text { font-size: 13.5px; line-height: 2.1; color: #35455c; white-space: pre-line; }
.pbox-text.dim { color: var(--faint); }
.pbox .pbtn + .pbtn { margin-top: 8px; }
.pcontact-addr {
    display: flex; gap: 8px; font-size: 13px; line-height: 1.95; color: #35455c;
    padding: 11px 0; border-bottom: 1px solid var(--line);
}
.pcontact-addr .ic { width: 15px; height: 15px; color: var(--faint); margin-top: 6px; }
.prow {
    display: flex; align-items: center; gap: 10px; font-size: 13px;
    padding: 9px 0; border-bottom: 1px solid var(--line);
}
.prow:last-child { border-bottom: none; }
.prow .l { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); }
.prow .l .ic { width: 15px; height: 15px; color: var(--faint); }
.prow .v { margin-inline-start: auto; font-weight: 700; text-align: end; min-width: 0; }
.prow .v a { color: var(--blue-d); }
.prow .v a:hover { text-decoration: underline; }
.prow .v .num { direction: ltr; display: inline-block; }
.pbox-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pbox-acts .pbtn { flex: 1 1 130px; }

/* ── نقشه ──
   ⚠ نسبت ثابت ۱۶:۹ روی قاب و width/height روی خود <img>: بدون این‌ها
     چیدمان هنگام لود می‌پرد (CLS) که سیگنال مستقیم رتبه است. */
.pmap {
    position: relative; aspect-ratio: 16 / 9; overflow: hidden; margin-top: 12px;
    border-radius: 14px; border: 1px solid var(--line); background: var(--surface-2);
}
.pmap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pmap-pin {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -100%);
    color: #dc2626; pointer-events: none; filter: drop-shadow(0 3px 4px rgba(0,0,0,.35));
}
.pmap-pin .ic { width: 32px; height: 32px; fill: #fff; }
.pmap-fallback { font-size: 12.5px; color: var(--muted); margin-top: 10px; }

/* ── حالت خالی ── */
.pempty {
    text-align: center; padding: 56px 20px; color: var(--muted);
    background: var(--surface); border: 1px dashed var(--line); border-radius: var(--radius);
}
.pempty > .ic { width: 40px; height: 40px; color: var(--faint); margin-bottom: 10px; }
.pempty h3 { font-size: 15.5px; font-weight: 800; color: var(--ink); margin-bottom: 4px; }
.pempty p { font-size: 13px; }
.pempty .pbtn { margin-top: 14px; }

/* ── پاورقی ── */
.pfoot {
    border-top: 1px solid var(--line); background: var(--surface);
    padding: 22px 0 calc(22px + var(--sab)); text-align: center;
    font-size: 12.5px; color: var(--muted); line-height: 2.1;
}
.pfoot b { color: var(--ink); }
.pfoot a { color: var(--blue-d); }
.pfoot a:hover { text-decoration: underline; }

/* ═══════════════ ۵) نوار شناور تماس (موبایل) ═══════════════ */
.pcta {
    position: fixed; inset-inline: 0; bottom: 0; z-index: 60; display: flex; gap: 8px;
    padding: 9px max(12px, var(--sar)) calc(9px + var(--sab)) max(12px, var(--sal));
    background: rgba(255,255,255,.93); backdrop-filter: blur(14px) saturate(1.4);
    border-top: 1px solid var(--line); box-shadow: 0 -8px 26px rgba(17,34,64,.08);
}
.pcta .pbtn { flex: 1 1 0; min-width: 0; }
body.has-cta { padding-bottom: 74px; }
@media (min-width: 1040px) { .pcta { display: none; } body.has-cta { padding-bottom: 0; } }

/* ═══════════════ ۶) موبایل ═══════════════ */
@media (max-width: 767px) {
    .phero-cover { height: 124px; }
    .phero-top { display: block; }
    .phero-id { flex-direction: column; align-items: center; text-align: center; gap: 10px; }
    .phero-logo { margin-top: -48px; width: 96px; height: 96px; border-radius: 22px; padding: 9px; }
    .phero-logo .ph { font-size: 32px; }
    .phero-titles { padding-top: 2px; width: 100%; }
    .phero-titles h1 { font-size: 20px; }
    .phero-titles h1 .sub { display: block; font-size: 13px; margin-top: 1px; }
    .phero-meta { justify-content: center; }
    .phero-acts { margin-top: 14px; flex-wrap: nowrap; }
    .phero-acts .pbtn { flex: 1 1 0; min-width: 0; font-size: 12.5px; padding: 10px 8px; }
    /* ⚠ روی موبایل دکمه‌ی تماسِ سرصفحه حذف می‌شود — نه چون کم‌اهمیت است، بلکه
       چون نوار شناور پایین همیشه همان دکمه را جلوی چشم دارد و تکرارش فقط
       سرصفحه را چهارطبقه می‌کرد. شماره‌ی تلفن در تراشه‌های بالا هم هست. */
    body.has-cta .phero-acts .pbtn.pri { display: none; }
    .phero-stats { margin: 16px 0 18px; gap: 8px; }
    .pstat { padding: 9px 6px; border-radius: 12px; }
    .pstat b { font-size: 17px; }
    .pmain { padding: 18px 0 30px; gap: 18px; }
    .psec-head h2 { font-size: 16px; }
    .pbox { padding: 14px; }
}
@media (max-width: 400px) {
    .phero-meta li { padding: 3px 9px; font-size: 11.5px; }
    .pc-title { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
    html { scroll-behavior: auto; }
    .pcard:hover { transform: none; }
    .pcard:hover .pc-shot img { transform: none; }
}

@media print {
    .pnav, .pcta, .pfilter, .ppager, .phero-acts { display: none !important; }
    body { background: #fff; }
    .ppanel[hidden] { display: block !important; }
}
