/* =========================================================
   کلینیک دیدار نوین / DidarNovin Clinic — Design System
   ========================================================= */

:root{
  --bg:        #F6F2EA;
  --surface:   #FFFFFF;
  --ink:       #1C2E1C;
  --ink-soft:  #48594A;
  --primary:   #228B22;
  --primary-2: #176B17;
  --primary-tint: #E6F3E6;
  --sage:      #5FA85F;
  --sage-tint: #EDF6ED;
  --sand:      #E9E4D8;
  --line:      #DDE6DD;
  --danger:    #B5533F;

  --radius-lg: 28px;
  --radius-md: 20px;
  --radius-sm: 12px;

  --shadow: 0 10px 30px -12px rgba(20,50,20,0.18);
  --shadow-sm: 0 4px 14px -6px rgba(20,50,20,0.14);

  --container: 1180px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; }
ul{ list-style:none; }

body{
  background:var(--bg);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Local fonts (self-hosted, no external CDN) ---------- */
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/vazirmatn-v16-arabic_latin-regular.woff2") format("woff2");
}
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/vazirmatn-v16-arabic_latin-500.woff2") format("woff2");
}
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/vazirmatn-v16-arabic_latin-600.woff2") format("woff2");
}
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/vazirmatn-v16-arabic_latin-700.woff2") format("woff2");
}
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:800; font-display:swap;
  src:url("fonts/vazirmatn-v16-arabic_latin-800.woff2") format("woff2");
}
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/inter-v20-latin-regular.woff2") format("woff2");
}
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/inter-v20-latin-500.woff2") format("woff2");
}
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/inter-v20-latin-600.woff2") format("woff2");
}
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/inter-v20-latin-700.woff2") format("woff2");
}
@font-face{
  font-family:"Newsreader"; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/newsreader-v26-latin-500.woff2") format("woff2");
}
@font-face{
  font-family:"Newsreader"; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/newsreader-v26-latin-600.woff2") format("woff2");
}

/* ---------- Language-specific typography ---------- */
html[lang="fa"] body{
  font-family:"Vazirmatn", "Tahoma", sans-serif;
}
html[lang="fa"] h1, html[lang="fa"] h2, html[lang="fa"] h3, html[lang="fa"] .display{
  font-family:"Vazirmatn", "Tahoma", sans-serif;
  font-weight:700;
}
html[lang="ar"] body{
  font-family:"Vazirmatn", "Tahoma", sans-serif;
}
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] .display{
  font-family:"Vazirmatn", "Tahoma", sans-serif;
  font-weight:700;
}
html[lang="en"] body{
  font-family:"Inter", -apple-system, sans-serif;
}
html[lang="en"] h1, html[lang="en"] h2, html[lang="en"] h3, html[lang="en"] .display{
  font-family:"Newsreader", Georgia, serif;
  font-weight:500;
}

h1{ font-size:clamp(2.1rem, 4vw, 3.4rem); line-height:1.25; letter-spacing:-0.01em; }
h2{ font-size:clamp(1.6rem, 2.6vw, 2.3rem); line-height:1.3; }
h3{ font-size:clamp(1.05rem, 1.4vw, 1.3rem); line-height:1.4; }
p{ color:var(--ink-soft); }

/* توضیح ریز مشترک (fine print) — یک‌جا تعریف می‌شود، به‌جای تکرار style درون‌خطی هرجا لازم بود */
.fine-print{ font-size:.82rem; color:var(--ink-soft); }
.article-body p, .lead, .card p, .about-grid p, .service-block p, .doctor-hero p, .quote-card p{
  text-align:justify;
  text-justify:inter-word;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-size:.8rem;
  letter-spacing:.08em;
  color:var(--sage);
  font-weight:600;
  margin-bottom:.9rem;
}
html[lang="en"] .eyebrow{ text-transform:uppercase; }
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--sage);
  display:inline-block;
}

.container{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:16px;
}
@media (min-width:480px){ .container{ padding-inline:24px; } }

section{ padding:52px 0; }
@media (max-width:720px){ section{ padding:36px 0; } }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background: var(--primary);
  border-bottom: 1px solid var(--primary-2);
}
.site-header .logo{ color:#fff; }
.site-header .main-nav a{ color:rgba(255,255,255,.88); }
.site-header .main-nav a:hover{ color:#fff; }
.site-header .lang-switch{ border-color:rgba(255,255,255,.45); color:rgba(255,255,255,.9); }
.site-header .lang-switch:hover{ border-color:#fff; color:#fff; }
.site-header .btn-primary{ background:#fff; color:var(--primary-2); white-space:nowrap; }
.site-header .btn-primary:hover{ background:var(--sand); }
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:16px;
  gap:14px;
}
@media (min-width:640px){ .header-inner{ gap:24px; } }
.logo{
  display:flex; align-items:center; gap:.4rem;
  font-weight:800; font-size:1.22rem; line-height:1;
  letter-spacing:-0.035em;
  white-space:nowrap; overflow:visible;
  color:var(--primary-2);
}
@media (min-width:480px){ .logo{ font-size:1.4rem; letter-spacing:-0.02em; } }
@media (min-width:640px){ .logo{ font-size:1.6rem; letter-spacing:normal; } }
.logo-mark{
  width:30px; height:30px;
  object-fit:contain;
  flex:none;
  display:block;
}
@media (min-width:480px){ .logo-mark{ width:36px; height:36px; } }
.site-footer .logo-mark{
  width:34px; height:34px;
}

.main-nav{ display:flex; gap:28px; }
.main-nav a{
  font-size:.95rem; color:var(--ink-soft);
  transition:color .2s;
}
.main-nav a:hover{ color:var(--primary); }

.header-actions{ display:flex; align-items:center; gap:6px; }
@media (min-width:480px){ .header-actions{ gap:10px; } }
.btn-icon-circle{
  width:32px; height:32px; flex:none; border-radius:50%;
  background:#fff; color:var(--primary);
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, transform .2s;
}
@media (min-width:480px){ .btn-icon-circle{ width:38px; height:38px; } }
.btn-icon-circle:hover{ background:var(--sand); transform:translateY(-1px); }
.btn-icon-circle svg{ width:16px; height:16px; }
@media (min-width:480px){ .btn-icon-circle svg{ width:19px; height:19px; } }
.lang-switch-group{ display:flex; flex-wrap:nowrap; align-items:center; gap:6px; flex:none; }
.lang-switch{
  width:32px; height:32px; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-size:.72rem; border:1px solid var(--line);
  border-radius:50%;
  color:var(--ink-soft); white-space:nowrap;
}
@media (min-width:480px){
  .lang-switch-group{ gap:8px; }
  .lang-switch{ width:38px; height:38px; font-size:.8rem; }
}
.lang-switch:hover{ border-color:var(--sage); color:var(--primary); }
.lang-switch-disabled{
  opacity:.35; cursor:not-allowed; pointer-events:none;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 22px; border-radius:999px;
  font-size:.92rem; font-weight:600;
  transition:transform .2s, box-shadow .2s, background .2s;
}
.btn-primary{
  background:var(--primary); color:#fff;
  box-shadow:var(--shadow-sm);
}
.btn-primary:hover{ background:var(--primary-2); transform:translateY(-1px); }
.btn-ghost{
  border:1px solid var(--line); color:var(--ink);
}
.btn-ghost:hover{ border-color:var(--sage); }

.nav-toggle{
  display:none; flex:none; align-items:center; justify-content:center;
  width:32px; height:32px; border:1px solid rgba(255,255,255,.4);
  border-radius:9px; background:transparent; cursor:pointer;
  position:relative;
}
@media (min-width:480px){ .nav-toggle{ width:38px; height:38px; border-radius:10px; } }
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after{
  display:block; width:18px; height:2px; background:#fff; border-radius:2px;
}
.nav-toggle span{ position:relative; transition:background .2s; }
.nav-toggle span::before,
.nav-toggle span::after{
  content:""; position:absolute; inset-inline-start:0;
  transition:transform .25s, top .25s, opacity .2s;
}
.nav-toggle span::before{ top:-6px; }
.nav-toggle span::after{ top:6px; }
.site-header.nav-open .nav-toggle span{ background:transparent; }
.site-header.nav-open .nav-toggle span::before{ top:0; transform:rotate(45deg); }
.site-header.nav-open .nav-toggle span::after{ top:0; transform:rotate(-45deg); }

@media (max-width:900px){
  .main-nav{ display:none; }
  .nav-toggle{ display:flex; }
  .site-header.nav-open .main-nav{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; inset-inline:0;
    background:var(--primary); padding:6px 24px 22px;
    box-shadow:0 16px 30px -10px rgba(0,0,0,.28);
  }
  .site-header.nav-open .main-nav a{
    padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.15);
    font-size:1rem;
  }
  .site-header.nav-open .main-nav a:last-child{ border-bottom:none; }
}

/* ---------- Hero ---------- */
.hero{
  padding-top:36px; padding-bottom:20px;
  position:relative; overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1fr;
  gap:56px; align-items:center;
}

.hero p.lead{
  font-size:1.12rem; max-width:46ch; margin-top:18px;
}
.hero-cta{ display:flex; gap:14px; margin-top:20px; flex-wrap:wrap; }
.hero .btn-primary, .hero-cta-section .btn-primary{
  padding:14px 30px; font-size:.98rem;
  box-shadow:0 12px 28px -10px rgba(23,107,23,.45);
}
.hero h1 .accent{ color:var(--primary); }
/* طبق دستور تازه کارفرما («هر تغییری باید خودکار روی هر سه زبان اجرا
   شود» — بند ۱۳ راهنمای توسعه): این تیتر که قبلاً فقط برای fa (۳pt) و
   جداگانه ar (۵pt) کوچک شده بود، حالا برای هر سه زبان یکسان و برابر با
   مقدار تأییدشده فارسی است. */
.hero h1{ font-size:clamp(1.85rem, 3.5vw, 3.15rem); }

.trust-row{
  display:flex; gap:12px; margin-top:26px; flex-wrap:wrap;
}
.trust-item{
  font-size:.85rem; color:var(--ink-soft); display:flex; align-items:center; gap:.5rem;
  background:var(--surface); border:1px solid var(--line);
  padding:9px 16px; border-radius:999px; box-shadow:var(--shadow-sm);
}
.trust-item::before{
  content:"✓"; color:#fff; background:var(--primary);
  width:16px; height:16px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-size:.65rem; font-weight:700;
}
.trust-item strong{ color:var(--primary-2); font-size:1rem; }

/* شش شمارنده انیمیشنی — جایگزین سه شاخص قبلی، همان زبان بصری (surface/line/shadow-sm) */
.counter-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:26px;
}
@media (min-width:640px){ .counter-grid{ grid-template-columns:repeat(3,1fr); } }
.counter-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:12px 8px; text-align:center; box-shadow:var(--shadow-sm);
}
.counter-card .counter-number{
  display:block; font-size:1.3rem; font-weight:800; color:var(--primary-2);
  line-height:1.15; font-variant-numeric:tabular-nums;
}
.counter-card .counter-label{
  display:block; font-size:.78rem; color:var(--ink-soft); margin-top:3px;
}

/* بخش‌های مستقل صفحه اصلی (اسلایدر ← شمارنده‌ها ← دکمه‌ها ← معرفی) */
.hero-slider-section{ padding-top:16px; padding-bottom:8px; }
.hero-slider-section .hero-slider{ margin-inline:auto; }
.counters-section{ padding-block:12px 8px; }
.hero-cta-section{ padding-block:8px 28px; }
.hero-cta.center{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ---------- اسلایدر بزرگ صفحه اصلی (۶ آخرین مطلب) ---------- */
.hero-slider{
  position:relative; overflow:hidden; border-radius:var(--radius-lg);
  box-shadow:var(--shadow); aspect-ratio:16/9; max-height:420px;
}
.hero-slider-track{ display:flex; height:100%; will-change:transform; }
.hero-slide{
  position:relative; flex:0 0 100%; height:100%; display:block; color:#fff;
  background:var(--primary-2);
}
.hero-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-slide-fallback{
  width:100%; height:100%;
  background:linear-gradient(135deg, var(--primary), var(--primary-2));
}
.hero-slide-caption{
  position:absolute; inset-inline:0; bottom:0;
  padding:22px 26px 20px;
  background:linear-gradient(to top, rgba(15,30,15,.85), rgba(15,30,15,0));
}
.hero-slide-caption h3{
  color:#fff; font-size:1.08rem; margin:0; font-weight:700;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; text-overflow:ellipsis; line-height:1.5;
}
.hero-slider-dots{
  position:absolute; bottom:16px; inset-inline-end:22px;
  display:flex; gap:6px; z-index:2;
}
.hero-slider-dot{
  width:8px; height:8px; border-radius:50%; border:none; padding:0;
  background:rgba(255,255,255,.5); cursor:pointer; transition:width .2s, border-radius .2s;
}
.hero-slider-dot.active{ background:#fff; width:20px; border-radius:999px; }
.hero-slider-prev, .hero-slider-next{
  position:absolute; top:50%; transform:translateY(-50%);
  width:38px; height:38px; border-radius:50%; border:none;
  background:rgba(255,255,255,.9); color:var(--primary-2);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:2; font-size:1.2rem; box-shadow:var(--shadow-sm);
}
.hero-slider-prev{ inset-inline-start:16px; }
.hero-slider-next{ inset-inline-end:16px; }
.hero-slider-prev:hover, .hero-slider-next:hover{ background:#fff; }
@media (max-width:640px){
  .hero-slider{ aspect-ratio:4/3.4; max-height:340px; border-radius:var(--radius-md); }
  .hero-slider-prev, .hero-slider-next{ display:none; }
  .hero-slide-caption h3{ font-size:.96rem; }
}

/* ---------- Section header ---------- */
.section-head{
  max-width:640px; margin-bottom:24px;
}
.section-head.center{ margin-inline:auto; text-align:center; }

/* ---------- About ---------- */
.about-grid{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center;
}
@media (max-width:860px){ .about-grid{ grid-template-columns:1fr; } }
/* نسخه تک‌ستونه بخش «درباره کلینیک» در صفحه اصلی — از v1.136.0، بعد از
   جدا شدن سه آمار به بخش مستقل خودشان (stats-section پایین‌تر)، دیگر
   کنار آن‌ها نیستند و نیازی به گرید دوستونه ندارند. */
.about-solo{ max-width:640px; }
.about-card{
  background:var(--surface); border-radius:var(--radius-lg);
  padding:32px; box-shadow:var(--shadow-sm); border:1px solid var(--line);
}
.stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px; }
.stat{ }
.stat b{ display:block; font-size:1.6rem; color:var(--primary-2); }
.stat span{ font-size:.82rem; color:var(--ink-soft); }

/* نسخه بازطراحی‌شده سه کادر آماری — طبق دستور تازه کارفرما (بند ۱۳:
   همگام‌سازی خودکار سه زبان)، برای هر سه زبان یکسان اعمال می‌شود، نه
   فقط فارسی. index-en.php و index-ar.php هم به همین نشانه‌گذاری تازه
   (بدون .about-card) به‌روزرسانی شدند. */
.stat-grid{ gap:10px; }
@media (min-width:480px){ .stat-grid{ gap:14px; } }
@media (min-width:640px){ .stat-grid{ gap:18px; } }
.stat{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  text-align:center; border-radius:var(--radius-md);
  padding:18px 8px; border:1px solid var(--line); box-shadow:var(--shadow-sm);
}
@media (min-width:480px){ .stat{ padding:22px 12px; gap:10px; } }
.stat-icon{
  width:34px; height:34px; border-radius:50%; background:var(--surface);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.stat-icon svg{ width:17px; height:17px; }
@media (min-width:480px){ .stat-icon{ width:40px; height:40px; } .stat-icon svg{ width:19px; height:19px; } }
.stat-a{ background:var(--primary-tint); }
.stat-a .stat-icon{ color:var(--primary-2); }
.stat-b{ background:var(--sage-tint); }
.stat-b .stat-icon{ color:var(--sage); }
.stat-c{ background:var(--sand); }
.stat-c .stat-icon{ color:var(--primary-2); }
.stat b{ font-size:1.3rem; line-height:1; }
@media (min-width:480px){ .stat b{ font-size:1.6rem; } }
.stat span:not(.stat-icon){ font-size:.74rem; line-height:1.4; }
@media (min-width:480px){ .stat span:not(.stat-icon){ font-size:.82rem; } }

/* ---------- تبلیغ ورودی به بازی‌ها و لیگ شناختی (v1.134.0) ---------- */
.games-promo-section{ padding-block:44px 40px; }
.games-promo-card{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--primary-2), var(--primary) 65%, var(--sage));
  border-radius:var(--radius-lg); box-shadow:var(--shadow);
  padding:38px clamp(22px,5vw,52px);
}
.games-promo-card::before{
  content:""; position:absolute; inset-inline-end:-60px; top:-60px;
  width:220px; height:220px; border-radius:50%;
  background:rgba(255,255,255,.08); pointer-events:none;
}
.games-promo-card::after{
  content:""; position:absolute; inset-inline-start:-40px; bottom:-70px;
  width:180px; height:180px; border-radius:50%;
  background:rgba(255,255,255,.06); pointer-events:none;
}
.games-promo-text{ position:relative; z-index:1; max-width:640px; }
.games-promo-badge{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,.16); color:#fff;
  font-size:.78rem; font-weight:700; padding:6px 14px;
  border-radius:999px; margin-bottom:14px;
  animation:games-promo-pulse 2.4s ease-in-out infinite;
}
@keyframes games-promo-pulse{
  0%, 100%{ box-shadow:0 0 0 0 rgba(255,255,255,.35); }
  50%{ box-shadow:0 0 0 6px rgba(255,255,255,0); }
}
.games-promo-card h2{
  color:#fff; font-size:clamp(1.3rem, 2.6vw, 1.8rem); line-height:1.5; margin-bottom:12px;
}
.games-promo-card p{ color:rgba(255,255,255,.92); font-size:.98rem; line-height:1.85; }
.games-promo-points{
  list-style:none; margin:18px 0 26px; padding:0;
  display:flex; flex-direction:column; gap:8px;
}
.games-promo-points li{
  color:#fff; font-size:.9rem; background:rgba(255,255,255,.12);
  border-radius:var(--radius-sm); padding:9px 14px;
}
.games-promo-btn{
  background:#fff; color:var(--primary-2); border:none;
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 28px; font-size:.98rem; font-weight:700;
  box-shadow:0 12px 28px -10px rgba(0,0,0,.35);
  transition:transform .18s ease, box-shadow .18s ease;
}
.games-promo-btn:hover{ transform:translateY(-2px); box-shadow:0 16px 32px -10px rgba(0,0,0,.4); background:#fff; }
.games-promo-btn span{ font-size:1.1rem; line-height:1; transform:scaleX(-1); }
[dir="rtl"] .games-promo-btn span{ transform:none; }
.games-promo-footnote{
  text-align:center; font-size:.85rem; color:var(--ink-soft);
  margin-top:16px; max-width:640px; margin-inline:auto;
}
/* کارت تبلیغاتی دوم (دستیار هوش مصنوعی) — گرادیان کمی متفاوت برای
   تمایز بصری از کارت بازی‌های تشخیصی (v1.135.0) */
.promo-card-ai{
  background:linear-gradient(135deg, var(--sage), var(--primary-2) 65%, var(--primary));
}
@media (max-width:640px){
  .games-promo-card{ padding:28px 20px; }
  .games-promo-points{ gap:6px; }
}

/* بخش مستقل سه آمار کلینیک، جدا از «درباره کلینیک» — v1.136.0 (ترتیب
   تازه صفحه اصلی: تبلیغ بازی‌ها ← درباره کلینیک ← تبلیغ مشاور هوش
   مصنوعی ← این سه آمار ← ادامه صفحه) */
.stats-section{ padding-block:8px 44px; }

/* ---------- Cards / grids ---------- */
.grid{ display:grid; gap:22px; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .grid-3,.grid-4{ grid-template-columns:1fr; } }

.card{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:26px;
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-sm); border-color:var(--sage); }
.card-icon{
  width:44px; height:44px; border-radius:12px;
  background:var(--sage-tint); color:var(--primary-2);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:16px; font-size:1.2rem;
}
.card h3{ margin-bottom:8px; }
/* عکس سرویس‌ها (جایگزین ایموجی) — همان نسبت ۱۶:۹ کارت تست‌ها،
   لبه‌به‌لبه تا بالای کارت با گوشه‌های گرد هماهنگ با خودِ کارت.
   عمداً کلاس جدا از .card-icon تا آیکون‌های دیگر (تماس، مزایا و...)
   که همچنان از .card-icon استفاده می‌کنند دست‌نخورده بمانند. */
.service-card-photo{
  aspect-ratio:16/9; overflow:hidden; background:var(--sage-tint);
  margin:-26px -26px 18px -26px; border-radius:var(--radius-md) var(--radius-md) 0 0;
}
.service-card-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* پیام‌های اعلانی صفحات عمومی (مثل نتیجه پرداخت ناموفق) — نسخه عمومی
   همان الگوی .admin-flash که فقط در پنل مدیریت (admin.css) موجود است */
.page-notice{
  border-radius:var(--radius-sm); padding:14px 18px; font-size:.9rem;
}
.page-notice-error{ background:#FBEAEA; color:var(--danger); border:1px solid #F0C9C3; }

/* کارت تست تخصصی روان‌سنجی (psych-tests-fa.php) */
.psych-test-desc{ color:var(--ink-soft); font-size:.88rem; margin-bottom:14px; }
.psych-test-icon{ width:56px; height:56px; font-size:1.8rem; border-radius:16px; }
.psych-test-icon-graphic{ width:72px; height:72px; border-radius:16px; object-fit:cover; margin-bottom:16px; display:block; }
.psych-test-meta{ display:flex; gap:14px; font-size:.8rem; color:var(--ink-soft); margin-bottom:14px; }
.psych-test-price{ display:flex; align-items:baseline; gap:10px; margin-bottom:16px; }
.psych-test-price-old{ text-decoration:line-through; color:var(--ink-soft); font-size:.85rem; }
.psych-test-price-final{ font-weight:700; font-size:1.1rem; color:var(--primary-2); }

/* کارت تست — نسبت ۱۶:۹، هاله سبز سازمانی روی یک‌سوم پایینی، همه متن‌ها + دکمه روی همان هاله */
.psych-test-card-compact{
  padding:0; overflow:hidden; display:block; text-decoration:none; color:inherit;
}
.psych-test-visual{
  position:relative; aspect-ratio:16/9; background:var(--sage-tint); overflow:hidden;
}
.psych-test-visual-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
}
.psych-test-visual-emoji{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:3.4rem;
}
.psych-test-visual::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(23,107,23,.94) 0%, rgba(34,139,34,.82) 38%, rgba(34,139,34,0) 72%);
}
.psych-test-overlay-zone{
  position:absolute; left:0; right:0; bottom:0; padding:10px 14px 12px; z-index:1;
  display:flex; flex-direction:column; gap:4px;
}
.psych-test-overlay-title{
  margin:0; color:#fff; font-weight:800; font-size:1.28rem; line-height:1.28;
  text-shadow:0 1px 4px rgba(0,0,0,.25);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.psych-test-overlay-meta{
  display:flex; align-items:center; gap:10px; font-size:.78rem; color:rgba(255,255,255,.88); font-weight:600;
}
.psych-test-overlay-meta .dot-sep{ opacity:.6; }
.psych-test-overlay-btn{
  align-self:flex-start; margin-top:4px;
  background:#fff; color:var(--primary-2); border:none;
  font-size:.84rem; font-weight:800; padding:7px 18px; border-radius:999px; cursor:pointer;
}
/* دکمه‌های «شروع تست» + «شرح تست» کنار هم (۱۴۰۵/۰۷/۰۲) */
.psych-test-overlay-actions{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:4px;
}
.psych-test-overlay-actions .psych-test-overlay-btn{ margin-top:0; }
a.psych-test-overlay-btn{ display:inline-block; text-decoration:none; line-height:1.35; }
.psych-test-overlay-btn-secondary{
  background:rgba(255,255,255,.14); color:#fff;
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.psych-test-overlay-btn-secondary:hover{ background:rgba(255,255,255,.26); }
.card p{ font-size:.92rem; }
.card a.more{ display:inline-block; margin-top:14px; font-size:.85rem; color:var(--primary); font-weight:600; }

/* Doctors */
.doctor-card{
  text-align:start; display:flex; flex-direction:column;
}
.doctor-photo{
  width:88px; height:88px; aspect-ratio:1/1; border-radius:var(--radius-md);
  background:linear-gradient(160deg,var(--primary-tint),var(--sand));
  margin-bottom:14px;
  position:relative; overflow:hidden; flex:none;
}
.doctor-photo::after{
  content:"👤"; position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:1.9rem; opacity:.3; filter:grayscale(1);
}
.doctor-card h3{ margin-bottom:2px; }
.doctor-role{ font-size:.85rem; color:var(--sage); font-weight:600; margin-bottom:6px; }
.doctor-card .rating-row{
  display:flex; align-items:center; gap:6px; font-size:.82rem;
  color:var(--ink-soft); margin-bottom:14px;
}
.doctor-card .rating-row .stars{ color:#F0A93A; letter-spacing:1px; }
.doctor-card p:not(.doctor-role){ font-size:.88rem; margin-bottom:16px; }
.doctor-card a.more{
  display:flex; align-items:center; justify-content:center; gap:6px;
  margin-top:auto; padding:12px 18px;
  background:var(--primary); color:#fff !important;
  border-radius:var(--radius-sm); font-weight:700; font-size:.88rem;
  transition:background .2s;
}
.doctor-card a.more:hover{ background:var(--primary-2); }

/* Articles */
.article-card{ display:flex; flex-direction:column; }
.article-thumb{
  aspect-ratio:16/9; border-radius:var(--radius-md);
  background:linear-gradient(150deg,var(--sage-tint),var(--primary-tint));
  margin-bottom:16px;
  position:relative; overflow:hidden;
}
.article-thumb::after{
  content:"✎"; position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:1.8rem; color:var(--primary-2); opacity:.22;
}
.article-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.article-thumb.has-thumb::after{ display:none; }
.article-thumb-link{ display:block; }
.article-card h3 a, .card h3 a{ display:block; }

/* صفحه‌بندی آرشیو مقالات */
.pagination{
  display:flex; gap:8px; justify-content:center; align-items:center;
  margin-top:36px; flex-wrap:wrap;
}
.pagination-btn{
  min-width:40px; height:40px; padding:0 4px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:var(--radius-sm); border:none; background:transparent;
  font-size:.92rem; font-weight:600; color:var(--ink); cursor:pointer;
  transition:background .2s, color .2s;
}
.pagination-btn:hover:not(.active){ background:var(--sand); }
.pagination-btn.active{ background:var(--primary); color:#fff; }
.pagination-btn.pagination-arrow{ font-size:1.1rem; font-weight:700; color:var(--ink-soft); }
.article-meta{ font-size:.78rem; color:var(--ink-soft); margin-bottom:8px; }
.article-meta span + span::before{ content:"·"; margin-inline:.5em; }

/* Tests */
.test-card{ border-color:var(--line); }
.test-thumb{
  aspect-ratio:16/10; border-radius:var(--radius-md);
  margin-bottom:14px; position:relative; overflow:hidden;
}
.test-thumb::before{ content:""; position:absolute; inset:0; opacity:.85; }
.test-card:nth-of-type(4n+1) .test-thumb::before{ background:linear-gradient(155deg,#1B3A2E,#4A7856 60%,#8FAF7A); }
.test-card:nth-of-type(4n+2) .test-thumb::before{ background:linear-gradient(155deg,#2C3A52,#4E6B8C 60%,#8FB0C9); }
.test-card:nth-of-type(4n+3) .test-thumb::before{ background:linear-gradient(155deg,#3A2E4A,#6B537D 60%,#AB92B8); }
.test-card:nth-of-type(4n+4) .test-thumb::before{ background:linear-gradient(155deg,#4A3324,#8C6B4E 60%,#C9A98F); }
.test-tag{
  display:inline-block; font-size:.72rem; padding:4px 10px;
  border-radius:999px; background:var(--sand); color:var(--primary-2);
  margin-bottom:12px; font-weight:600;
}

/* Specialties strip */
.chip-row{ display:flex; flex-wrap:wrap; gap:12px; }
.chip{
  padding:10px 18px; border-radius:999px; border:1px solid var(--line);
  font-size:.88rem; background:var(--surface);
}
.chip:hover{ border-color:var(--sage); color:var(--primary); }

/* Article archive — search/filter bar, card tags, empty state */
.article-card-tags{ display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 0; }
.article-card-tags .chip{ padding:4px 11px; font-size:.72rem; }
.article-archive-empty{
  display:none; text-align:center; padding:48px 16px; color:var(--ink-soft);
}

/* FAQ */
.faq-item{
  border-bottom:1px solid var(--line); padding:20px 0;
}
.faq-q{
  display:flex; justify-content:space-between; align-items:center;
  cursor:pointer; font-weight:600; gap:16px;
  transition:color .2s;
}
.faq-q:hover{ color:var(--primary); }
.faq-q .plus{ font-size:1.3rem; color:var(--sage); flex:none; transition:transform .25s; }
.faq-item.open .plus{ transform:rotate(45deg); }
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .3s ease;
  font-size:.92rem; color:var(--ink-soft);
}
.faq-item.open .faq-a{ padding-top:12px; }

/* FAQ — دسته‌بندی ۴ گروهی (۱۴۰۵/۰۷/۱۱) */
.faq-category{ margin-bottom:40px; }
.faq-category:last-child{ margin-bottom:0; }
.faq-category-head{
  display:flex; align-items:center; gap:12px; margin-bottom:6px;
}
.faq-category-icon{
  width:40px; height:40px; flex:none; border-radius:50%;
  background:var(--primary-tint); color:var(--primary);
  display:flex; align-items:center; justify-content:center;
}
.faq-category-icon svg{ width:21px; height:21px; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.faq-category-head h2{ font-size:1.08rem; margin:0; }
.faq-category .faq-list{ margin-top:4px; }

/* Testimonials */
.quote-card{
  background:var(--primary-tint); border-radius:var(--radius-lg);
  padding:32px;
}
.quote-card p{ color:var(--ink); font-size:1.02rem; }
.quote-by{ margin-top:16px; font-size:.85rem; color:var(--ink-soft); }

/* Contact / CTA band */
.cta-band{
  background:var(--primary); color:#fff; border-radius:var(--radius-lg);
  padding:52px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cta-band h2, .cta-band p{ color:#fff; }
.cta-band p{ color:rgba(255,255,255,.8); }
.cta-band .btn-primary{ background:#fff; color:var(--primary-2); }
.cta-band .btn-primary:hover{ background:var(--sand); }

.crisis-note{
  border-inline-start:3px solid var(--danger);
  background:#FBF1EE; padding:14px 18px; border-radius:var(--radius-sm);
  font-size:.85rem; color:#7A3B2C; margin-top:18px;
}

/* ---------- Breadcrumb ---------- */
.breadcrumb{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:.82rem; color:var(--ink-soft);
  padding-top:22px;
}
.breadcrumb a{ color:var(--ink-soft); }
.breadcrumb a:hover{ color:var(--primary); }
.breadcrumb .sep{ color:var(--line); }
.breadcrumb .current{ color:var(--primary-2); font-weight:600; }

/* ---------- Inner page hero ---------- */
.page-hero{
  padding-top:32px; padding-bottom:16px;
}
.page-hero h1{ margin-top:10px; max-width:22ch; }
/* طبق دستور تازه کارفرما (بند ۱۳ — همگام‌سازی خودکار سه زبان): این
   تیتر (تست‌ها، ثبت‌نام پزشک، تک‌مقاله و...) قبلاً fa و ar مقادیر
   جدا داشتند؛ حالا هر سه زبان یکسان‌اند. */
.page-hero h1{ font-size:clamp(1.85rem, 3.5vw, 3.15rem); }
.page-hero p.lead{ max-width:60ch; margin-top:14px; }

/* ---------- Detailed service block ---------- */
.service-block{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:44px; align-items:start;
  padding-block:48px; border-top:1px solid var(--line);
}
.service-block:first-of-type{ border-top:none; }
@media (max-width:820px){ .service-block{ grid-template-columns:1fr; } }
.service-block .card-icon{ margin-bottom:18px; }
.service-block ul{ margin-top:16px; }
.service-block ul li{
  position:relative; padding-inline-start:22px; margin-bottom:10px;
  font-size:.94rem; color:var(--ink-soft);
}
html[dir="rtl"] .service-block ul li{ padding-inline-start:22px; padding-right:22px; padding-left:0; }
.service-block ul li::before{
  content:"✓"; position:absolute; inset-inline-start:0; color:var(--sage); font-weight:700;
}

/* ---------- Forms ---------- */
.form-card{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:36px;
  box-shadow:var(--shadow-sm);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:640px){ .form-row{ grid-template-columns:1fr; } }
.field{ margin-bottom:18px; }
.field label{
  display:block; font-size:.85rem; font-weight:600; color:var(--ink);
  margin-bottom:8px;
}
.field input, .field select, .field textarea{
  width:100%; padding:12px 14px; border-radius:var(--radius-sm);
  border:1px solid var(--line); background:var(--bg);
  font:inherit; color:var(--ink); font-size:.92rem;
  transition:border-color .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--sage);
  box-shadow:0 0 0 4px var(--sage-tint);
}
.field textarea{ resize:vertical; min-height:110px; }
.consent-note{
  font-size:.78rem; color:var(--ink-soft); margin-top:4px; line-height:1.6;
}
.field-check{ display:flex; align-items:flex-start; gap:10px; margin-bottom:20px; }
.field-check input{ width:auto; margin-top:4px; }
.field-check label{ font-size:.85rem; color:var(--ink-soft); font-weight:400; }

/* Contact info list */
.contact-info-list{ display:flex; flex-direction:column; gap:20px; }
.contact-info-item{ display:flex; gap:14px; align-items:flex-start; }
.contact-info-item .card-icon{ margin-bottom:0; flex:none; }
.contact-info-item h3{ font-size:1rem; margin-bottom:4px; }
.contact-info-item p{ font-size:.9rem; }
.map-embed-wrap{
  aspect-ratio:16/9; border-radius:var(--radius-md); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
}
.map-embed-wrap iframe{ width:100%; height:100%; border:0; display:block; }
.map-directions-btn{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:12px; width:100%; padding:12px 20px;
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-sm); font-weight:600; font-size:.9rem;
  color:var(--primary-2); transition:border-color .2s, background .2s;
}
.map-directions-btn:hover{ border-color:var(--sage); background:var(--sage-tint); }

/* Working hours table */
.hours-table{ width:100%; border-collapse:collapse; font-size:.9rem; }
.hours-table td{ padding:9px 0; border-bottom:1px solid var(--line); color:var(--ink-soft); }
.hours-table td:last-child{ text-align:end; color:var(--ink); font-weight:600; }

/* ---------- کارت نظرات بیماران (تجربه مراجعان) ---------- */
.reviews-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; margin-top:20px;
}
@media (max-width:720px){ .reviews-grid{ grid-template-columns:1fr; } }
.review-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-md);
  padding:20px; box-shadow:var(--shadow-sm);
}
.review-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.rating-stars{ color:#E8A33D; font-size:1rem; letter-spacing:1px; }
.review-date{ font-size:.78rem; color:var(--ink-soft); }
.treatment-badge{
  display:inline-block; background:var(--sage-tint); color:var(--primary-2);
  font-size:.76rem; font-weight:600; padding:4px 12px; border-radius:999px; margin-bottom:12px;
}
.review-text{ font-size:.92rem; color:var(--ink); line-height:1.9; margin-bottom:14px; }
.reviewer-footer{ border-top:1px solid var(--line); padding-top:10px; }
.verified-tag{ font-size:.76rem; color:var(--primary-2); font-weight:600; }

/* ---------- 404 ---------- */
.error-page{
  min-height:64vh; display:flex; align-items:center; justify-content:center; text-align:center;
}
.error-code{
  font-size:clamp(4rem,12vw,7rem); font-weight:800; color:var(--primary-tint);
  -webkit-text-stroke:2px var(--sage);
  line-height:1;
}
.error-page h1{ margin-top:8px; }
.error-page p{ max-width:44ch; margin-inline:auto; margin-top:12px; }
.error-actions{ display:flex; gap:14px; justify-content:center; margin-top:28px; flex-wrap:wrap; }

/* ---------- Doctors list page ---------- */
.filter-bar{
  display:flex; gap:12px; flex-wrap:wrap; margin-bottom:32px;
}
.filter-bar select{
  padding:10px 16px; border-radius:999px; border:1px solid var(--line);
  background:var(--surface); font-size:.88rem; color:var(--ink);
}

/* ---------- Doctor profile page ---------- */
.doctor-hero{
  display:grid; grid-template-columns:264px 1fr; gap:40px; align-items:start;
}
@media (max-width:760px){ .doctor-hero{ grid-template-columns:1fr; } }
.doctor-hero .doctor-photo{ margin-bottom:0; width:264px; max-width:100%; height:auto; aspect-ratio:4/5; border-radius:var(--radius-lg); }
/* v1.162.5: وقتی عکس واقعی هست، آیکن سایهٔ 👤 (placeholder) نباید روی چهره بیفتد */
.doctor-photo.has-photo::after{ display:none; }
.doctor-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block; }
/* گالری مطب (اسلایدر مثل صفحهٔ اصلی) */
.doctor-gallery-slider{ aspect-ratio:16/10; max-height:none; }
@media (max-width:640px){ .doctor-gallery-slider{ aspect-ratio:16/10; max-height:none; } }
.doctor-hero-info h1{ margin-bottom:4px; }
.doctor-hero-role{ color:var(--sage); font-weight:600; margin-bottom:14px; }
.doctor-license{
  font-size:.8rem; color:var(--ink-soft); background:var(--sand);
  display:inline-block; padding:5px 12px; border-radius:999px; margin-bottom:16px;
}
.profile-section{
  padding-block:40px; border-top:1px solid var(--line);
}
.profile-section:first-of-type{ border-top:none; }
.profile-section h2{ margin-bottom:16px; }
.credential-list{ display:flex; flex-direction:column; gap:12px; }
.credential-item{
  display:flex; gap:12px; align-items:flex-start; font-size:.92rem; color:var(--ink-soft);
}
.credential-item .dot{
  width:8px; height:8px; border-radius:50%; background:var(--sage);
  margin-top:8px; flex:none;
}
.reviewed-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-size:.78rem; background:var(--sage-tint); color:var(--primary-2);
  padding:5px 12px; border-radius:999px; font-weight:600;
}

/* ---------- Article meta / detail page ---------- */
.article-meta-row{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  font-size:.82rem; color:var(--ink-soft); margin-top:18px;
}
.article-meta-row span + span::before{ content:"·"; margin-inline-end:14px; }
.article-meta-row span:first-child::before{ content:none; }
.article-layout{
  display:grid; grid-template-columns:220px 1fr; gap:48px; align-items:start;
}
.toc{
  position:sticky; top:96px;
  border-inline-start:2px solid var(--line);
  padding-inline-start:18px;
}
@media (max-width:860px){
  .article-layout{ grid-template-columns:1fr; }
  /* در موبایل چیدمان تک‌ستونه می‌شود؛ فهرست مطالب دیگر کنار متن نیست،
     بلکه بالای آن قرار می‌گیرد — پس نباید sticky بماند، وگرنه روی متن
     مقاله حین اسکرول می‌افتد و قابل‌خواندن نیست.
     این override باید از نظر ترتیب در فایل، بعد از قانون پایه‌ی .toc
     بیاید — وگرنه با وجود specificity برابر، قانون بعدی (پایه) در کد
     برنده می‌شود و override موبایل عملاً بی‌اثر می‌ماند (همین باگ واقعی
     رخ داده بود). */
  .toc{ position:static; top:auto; }
}
html[dir="rtl"] .toc{ border-inline-start:none; border-inline-end:2px solid var(--line); padding-inline-start:0; padding-inline-end:18px; }
.toc h4{ font-size:.8rem; color:var(--ink-soft); margin-bottom:12px; letter-spacing:.04em; }
.toc a{
  display:block; font-size:.86rem; color:var(--ink-soft);
  padding:6px 0; transition:color .2s;
}
.toc a:hover{ color:var(--primary); }
.toc a.toc-level-3{ font-size:.78rem; padding-inline-start:14px; opacity:.85; }
html[dir="rtl"] .toc a.toc-level-3{ padding-inline-start:0; padding-inline-end:14px; }
.toc .toc-top-link{
  margin-top:10px; padding-top:10px; border-top:1px solid var(--line);
  font-weight:600; color:var(--primary-2);
}
.article-body h2{ margin-top:36px; margin-bottom:14px; }
.article-body h3{ margin-top:24px; margin-bottom:10px; }
.article-body p{ margin-bottom:16px; font-size:1rem; }
.article-body ul, .article-body ol{ margin:0 0 16px; padding-inline-start:24px; }
html[dir="rtl"] .article-body ul, html[dir="rtl"] .article-body ol{ padding-inline-start:0; padding-inline-end:24px; }
.article-body li{ margin-bottom:8px; color:var(--ink-soft); }
/* باکس «نکته کلیدی» — بخشی از پروتکل تازه تولید محتوا (۱۴۰۵/۰۶/۱۶، ۹۰۰-۱۲۰۰ کلمه) */
.article-body .key-takeaway{
  background:var(--primary-tint); border-inline-start:4px solid var(--primary);
  border-radius:var(--radius-sm); padding:14px 18px; margin:22px 0; font-size:.95rem;
}
.article-body .key-takeaway strong{ color:var(--primary-2); }
/* رفع باگ: مقالاتی که تصویرشان بدون style="width:100%" داخلی ذخیره شده
   بود (مثلاً محتوای قدیمی‌تر)، در اندازه اصلی پیکسلی خودشان (معمولاً
   ۱۲۸۰px) رندر می‌شدند و از عرض صفحه موبایل بیرون می‌زدند و کل محتوای
   کناری را هم می‌بردند. این قانون سراسری، صرف‌نظر از وجود یا نبود style
   داخلی خودِ تگ img، همیشه تصویر را به عرض واقعی ستون مقاله محدود می‌کند. */
.article-body img{ max-width:100%; height:auto; display:block; border-radius:var(--radius-md); margin:26px 0; }
/* لینک‌های داخلی درون متن مقاله (مثلاً «مقاله X را بخوانید») باید از بقیه
   متن قابل‌تشخیص باشند — قانون سراسری a{color:inherit; text-decoration:none}
   باعث می‌شد این لینک‌ها کاملاً نامرئی و غیرقابل‌تشخیص از متن معمولی باشند. */
.article-body p a, .article-body li a{
  color:var(--primary-2); text-decoration:underline;
  text-decoration-color:var(--sage); text-decoration-thickness:1px;
  text-underline-offset:3px; font-weight:600;
  transition:color .2s, text-decoration-color .2s;
}
.article-body p a:hover, .article-body li a:hover{
  color:var(--primary); text-decoration-color:var(--primary);
}

.reviewer-box{
  display:flex; align-items:center; gap:14px;
  background:var(--sage-tint); border-radius:var(--radius-md);
  padding:18px 20px; margin:28px 0;
}
.reviewer-box .avatar{
  width:44px; height:44px; border-radius:50%; flex:none;
  background:linear-gradient(160deg,var(--primary-tint),var(--sand));
}
.reviewer-box p{ margin:0; font-size:.85rem; color:var(--ink-soft); }
.reviewer-box a{ color:var(--primary-2); font-weight:600; }

.sources-list{ list-style:none; margin-top:12px; }
.sources-list li{
  font-size:.85rem; color:var(--ink-soft); padding:8px 0;
  border-top:1px solid var(--line);
}
.sources-list li:first-child{ border-top:none; }

.tag-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.tag-row .chip{ font-size:.8rem; padding:6px 14px; }

.share-row{ display:flex; gap:10px; margin-top:20px; }
.share-row button{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-size:.9rem;
  color:var(--ink-soft); transition:border-color .2s, color .2s;
}
.share-row button:hover{ border-color:var(--sage); color:var(--primary); }

/* ---------- Article search / filter ---------- */
.search-bar{
  display:flex; gap:12px; margin-bottom:24px; flex-wrap:wrap;
}
.search-bar input[type="search"]{
  flex:1; min-width:220px; padding:12px 16px; border-radius:999px;
  border:1px solid var(--line); background:var(--surface); font:inherit; font-size:.9rem;
}
.search-bar input[type="search"]:focus{ outline:none; border-color:var(--sage); box-shadow:0 0 0 4px var(--sage-tint); }

/* ---------- Psychology test page ---------- */
.consent-screen{
  background:var(--sage-tint); border:1px solid var(--sage);
  border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow-sm);
}
.consent-screen h3{ margin-bottom:14px; color:var(--primary-2); }
.consent-screen ul{ margin:14px 0; padding-inline-start:22px; }
html[dir="rtl"] .consent-screen ul{ padding-inline-start:0; padding-inline-end:22px; }
.consent-screen li{ font-size:.92rem; color:var(--ink-soft); margin-bottom:8px; }

.test-question{
  padding:24px 0; border-bottom:1px solid var(--line);
}
.test-question:last-of-type{ border-bottom:none; }
.test-question .q-num{
  font-size:.78rem; color:var(--sage); font-weight:700; margin-bottom:6px; display:block;
}
.test-question p.q-text{ color:var(--ink); font-weight:600; margin-bottom:14px; font-size:1rem; }
.option-list{ display:flex; flex-direction:column; gap:10px; }
.option-item{
  display:flex; align-items:center; gap:12px;
  border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:12px 16px; cursor:pointer; transition:border-color .2s, background .2s;
}
.option-item:hover{ border-color:var(--sage); background:var(--sage-tint); }
.option-item input{ accent-color: var(--primary); width:16px; height:16px; flex:none; }
.option-item label{ font-size:.92rem; color:var(--ink); cursor:pointer; flex:1; }

.test-progress{
  height:6px; background:var(--line); border-radius:999px; overflow:hidden; margin-bottom:28px;
}
.test-progress-bar{ height:100%; background:var(--sage); width:0%; transition:width .3s; }

.result-panel{
  display:none;
  background:var(--sage-tint); border-radius:var(--radius-lg);
  padding:36px; text-align:center;
}
.result-panel.show{ display:block; }
.result-score{ font-size:2.6rem; font-weight:800; color:var(--primary-2); margin-bottom:6px; }
.result-category{
  display:inline-block; padding:6px 18px; border-radius:999px;
  background:var(--surface); font-weight:600; font-size:.9rem; color:var(--primary-2); margin-bottom:18px;
}
.result-text{ max-width:52ch; margin-inline:auto; color:var(--ink-soft); }

.test-form-wrap.hide{ display:none; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--primary-2); color:#EAF0EE; padding:32px 0 18px; }
.site-footer h4{ font-size:.95rem; margin-bottom:10px; color:#fff; }
.site-footer a{ font-size:.88rem; color:#CFE0DA; }
.site-footer a:hover{ color:#fff; }
.disclaimer-strip{
  font-size:.78rem; color:#9FB4B0; max-width:640px; margin:10px auto 0; text-align:center;
}

/* Brand block: logo + about paragraph, centered */
.footer-brand{ text-align:center; }
.footer-logo{
  display:inline-flex; align-items:center; gap:10px;
  color:#fff !important; font-weight:800; font-size:1.3rem;
  margin-bottom:12px;
}
.footer-logo .logo-mark{ width:38px; height:38px; }
.footer-about{
  max-width:620px; margin:0 auto; text-align:justify; text-align-last:center;
  color:#D9E6E1; font-size:.88rem; line-height:1.7;
}

/* Rounded divider before the columns, echoing the reference layout's soft arc */
.footer-divider{
  max-width:900px; margin:18px auto 0; height:1px;
  background:rgba(255,255,255,.18); border-radius:999px;
}

/* Two centered link columns — always side by side, even on narrow screens */
.footer-columns{
  display:flex; justify-content:center; align-items:flex-start;
  gap:28px; flex-wrap:nowrap;
  padding:16px 0 2px; text-align:center;
}
.footer-col{ flex:1 1 0; min-width:0; max-width:220px; }
/* ⚠️ رفع باگ (۱۴۰۵/۰۷/۰۴): چون هر ستون فوتر مستقل و بدون اطلاع از ارتفاع
   واقعی سطرهای ستون مقابل چیده می‌شود، اگر متن یک آیتم (مثل «زوج‌درمانی و
   خانواده‌درمانی») به‌خاطر تنگی max-width دو خط شود، همان یک سطر بلندتر
   می‌شود و از همان‌جا به بعد، خط جداکننده هر سطر با سطر مقابلش در ستون
   دیگر هم‌تراز نمی‌ماند. راه‌حل بدون نیاز به تغییر ساختار HTML در همه
   صفحات: یک min-height ثابت و مشترک برای *همه* سطرهای هر دو ستون — به
   اندازه‌ای که حتی طولانی‌ترین آیتم (دو خط) هم در آن جا شود؛ سطرهای
   کوتاه‌تر با flex در وسط همان ارتفاع ثابت قرار می‌گیرند. این‌طور همه
   سطرها، صرف‌نظر از طول متن‌شان، دقیقاً هم‌ارتفاع و روبه‌روی هم می‌مانند.
*/
.footer-col a{
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:2.9em; line-height:1.35; box-sizing:border-box;
  padding:7px 0; font-size:.82rem;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-col > *:last-child{ border-bottom:none; }
/* «داروها | مقالات» در یک سطر (۱۴۰۵/۰۷/۰۳) — تا شمار سطرهای دو ستون فوتر برابر بماند */
.footer-links-row{
  display:flex; justify-content:center; align-items:center; gap:8px; flex-wrap:wrap;
  min-height:2.9em; line-height:1.35; box-sizing:border-box;
  padding:7px 0; font-size:.82rem;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-links-row a{ display:inline; padding:0; min-height:0; border-bottom:none; }
.footer-links-sep{ opacity:.45; }
@media (max-width:480px){
  .footer-columns{ gap:10px; }
  .footer-col h4{ font-size:.82rem; }
  .footer-col a{ font-size:.74rem; padding:6px 0; min-height:2.7em; }
  .footer-links-row{ font-size:.74rem; padding:6px 0; min-height:2.7em; }
}

/* Legal / contact row */
.footer-legal-row{
  display:flex; justify-content:center; flex-wrap:wrap; gap:6px 18px;
  margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.12);
}
.footer-legal-row a{ font-size:.8rem; color:#B9CBC7; }
.footer-legal-row a:hover{ color:#fff; }

/* Circular social icons, centered in one row */
.footer-social{
  display:flex; justify-content:center; align-items:center; gap:12px;
  margin:16px 0 4px;
}
.social-circle{
  width:38px; height:38px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2);
  color:#fff; transition:background .2s ease, transform .2s ease;
}
.social-circle:hover{ background:rgba(255,255,255,.2); transform:translateY(-2px); }
.social-circle svg{ width:17px; height:17px; }

.footer-bottom{
  margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.12);
  text-align:center; font-size:.8rem; color:#9FB4B0;
}
/* لینک «دستاوران» در کپی‌رایت (۱۴۰۵/۰۷/۰۲) — هم‌اندازه متن کنارش، نه .88rem عمومی فوتر */
.footer-bottom a{ font-size:inherit; text-decoration:underline; text-underline-offset:3px; }

/* ---------- Article share row + in-body image placeholders ---------- */
.share-row{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin:24px 0; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.share-row .share-label{ font-size:.86rem; color:var(--ink-soft); margin-inline-end:4px; }
.share-row .social-circle{
  background:var(--sage-tint); border:1px solid var(--line); color:var(--primary-2);
  width:38px; height:38px; cursor:pointer;
}
.share-row .social-circle:hover{ background:var(--primary-tint); }
.share-row button.social-circle{ padding:0; }

.article-hashtag-row{
  display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 8px;
}
.article-hashtag-row a{
  font-size:.82rem; color:var(--primary-2); background:var(--sage-tint);
  padding:5px 12px; border-radius:999px;
}
.article-hashtag-row a:hover{ background:var(--primary-tint); }

.article-keywords-row{
  margin:14px 0 8px; font-size:.8rem; color:var(--ink-soft); line-height:1.9;
}
.article-keywords-row strong{ color:var(--ink); margin-inline-end:6px; }

.article-image-placeholder{
  margin:26px 0; padding:36px 16px; border-radius:var(--radius-md);
  border:2px dashed var(--line); background:var(--sage-tint);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  color:var(--ink-soft); font-size:.9rem; font-weight:600; min-height:160px; gap:8px;
}
.article-image-placeholder small{ font-weight:400; font-size:.78rem; color:var(--ink-soft); max-width:520px; }

/* ---------- Doctor collaboration / registration flow ---------- */
.step-indicator{
  display:flex; align-items:center; gap:10px; margin-bottom:32px; flex-wrap:wrap;
}
.step-indicator .step{
  display:flex; align-items:center; gap:8px;
  font-size:.85rem; color:var(--ink-soft);
}
.step-indicator .step .num{
  width:28px; height:28px; border-radius:50%;
  background:var(--line); color:var(--ink-soft);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:.8rem; flex:none;
}
.step-indicator .step.active .num{ background:var(--primary); color:#fff; }
.step-indicator .step.done .num{ background:var(--sage); color:#fff; }
.step-indicator .sep{ width:24px; height:1px; background:var(--line); }

.upload-box{
  border:2px dashed var(--line); border-radius:var(--radius-md);
  padding:22px; text-align:center; cursor:pointer;
  transition:border-color .2s, background .2s;
  background:var(--bg);
}
.upload-box:hover{ border-color:var(--sage); background:var(--sage-tint); }
.upload-box .icon{ font-size:1.6rem; margin-bottom:8px; }
.upload-box .label{ font-size:.88rem; font-weight:600; color:var(--ink); }
.upload-box .hint{ font-size:.78rem; color:var(--ink-soft); margin-top:4px; }

.otp-boxes{ display:flex; gap:10px; justify-content:center; margin:18px 0; direction:ltr; }
.otp-boxes input{
  width:46px; height:54px; text-align:center; font-size:1.3rem; font-weight:700;
  border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--bg); color:var(--ink);
}
.otp-boxes input:focus{ outline:none; border-color:var(--primary); }

.benefit-list{ display:flex; flex-direction:column; gap:16px; margin-top:24px; }
.benefit-item{ display:flex; gap:14px; align-items:flex-start; }
.benefit-item .card-icon{ margin-bottom:0; flex:none; }
.benefit-item h3{ font-size:1rem; margin-bottom:3px; }
.benefit-item p{ font-size:.9rem; }

/* ---------- Doctor profile stage-2 form ---------- */
.weekday-row{
  display:grid; grid-template-columns:auto 1fr 1fr; gap:12px; align-items:center;
  padding:10px 0; border-bottom:1px solid var(--line);
}
.weekday-row:last-child{ border-bottom:none; }
.weekday-row label.day-label{
  display:flex; align-items:center; gap:8px; font-size:.9rem; font-weight:600; color:var(--ink);
  min-width:110px;
}
.weekday-row input[type="time"]{
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:8px 10px;
  background:var(--bg); font-family:inherit; width:100%;
}
.weekday-row.disabled input[type="time"]{ opacity:.4; pointer-events:none; }

.specialty-check-list{ display:flex; flex-wrap:wrap; gap:10px; }
.specialty-check-item{
  display:flex; align-items:center; gap:6px;
  border:1px solid var(--line); border-radius:999px; padding:8px 16px;
  font-size:.85rem; cursor:pointer; transition:border-color .2s, background .2s;
}
.specialty-check-item:hover{ border-color:var(--sage); background:var(--sage-tint); }
.specialty-check-item input:checked ~ span{ color:var(--primary); font-weight:700; }

.photo-upload-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px,1fr)); gap:12px; }
.photo-upload-box{
  aspect-ratio:1; border:2px dashed var(--line); border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  cursor:pointer; color:var(--ink-soft); font-size:.78rem; text-align:center; padding:8px;
}
.photo-upload-box:hover{ border-color:var(--sage); background:var(--sage-tint); }

.map-coord-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* ---------- Star rating (patient survey) ---------- */
.star-rating{
  display:flex; flex-direction:row-reverse; justify-content:center; gap:6px;
  margin:14px 0 6px;
}
.star-rating input{ display:none; }
.star-rating label{
  font-size:2.4rem; line-height:1; color:var(--line); cursor:pointer;
  transition:color .15s;
}
.star-rating input:checked ~ label{ color:#F0A93A; }
.star-rating label:hover, .star-rating label:hover ~ label{ color:#F0A93A; }

/* ---------- Page loader (appears only if a page takes longer than 2s to fully load) ---------- */
.page-loader{
  position:fixed; inset:0; z-index:9999;
  background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .5s ease;
}
.page-loader.is-visible{ opacity:1; visibility:visible; pointer-events:auto; }
.page-loader.is-hiding{ opacity:0; }
.page-loader-inner{ text-align:center; }
.page-loader-text{
  font-family:'Newsreader', serif; font-size:1.05rem; letter-spacing:.03em;
  color:var(--primary-2); margin:0 0 26px; font-style:italic;
  animation:loader-fade 1.9s ease-in-out infinite;
}
.page-loader-mark-wrap{ position:relative; width:70px; height:70px; margin:0 auto; }
.page-loader-ring{
  position:absolute; inset:0; border-radius:50%;
  background:radial-gradient(circle, var(--sage-tint) 0%, transparent 72%);
  animation:loader-ring 1.9s ease-in-out infinite;
}
.page-loader-mark{
  position:absolute; inset:13px; width:44px; height:44px;
  animation:loader-breathe 1.9s ease-in-out infinite;
}
@keyframes loader-breathe{
  0%,100%{ transform:scale(.9); opacity:.7; }
  50%{ transform:scale(1.07); opacity:1; }
}
@keyframes loader-ring{
  0%,100%{ transform:scale(.75); opacity:.3; }
  50%{ transform:scale(1.2); opacity:.65; }
}
@keyframes loader-fade{
  0%,100%{ opacity:.5; }
  50%{ opacity:1; }
}
@media (prefers-reduced-motion:reduce){
  .page-loader-mark, .page-loader-ring, .page-loader-text{ animation:none; }
}


/* =====================================================================
   نوار پایین ثابت — ۴ دکمه متقارن + لوگوی برجسته وسط (۱۴۰۵/۰۷/۰۲)
   ترتیب در DOM: رزرو نوبت، تماس، [لوگو]، تست‌ها، خدمات — در RTL از
   راست و در LTR از چپ چیده می‌شود (grid خودش جهت را رعایت می‌کند).
   لینک‌ها مطلق از ریشه (/...) هستند تا در هر عمق URL (از جمله آدرس‌های
   تمیز /fa/articles/... و صفحه ۴۰۴) درست کار کنند.
   ===================================================================== */
.sticky-bottom-bar{
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 500;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) 84px minmax(0,1fr) minmax(0,1fr);
  align-items: stretch;
  background: transparent; /* رنگ سبز روی ::before است، تا بریدگی دور لوگو ممکن شود */
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
/* زمینه سبز سازمانی نوار، با یک بریدگی دایره‌ای شفاف دور لوگو (۱۴۰۵/۰۷/۰۲).
   mask فقط روی این لایه است، نه خود نوار — وگرنه دایره لوگو و دکمه‌ها
   هم بریده می‌شدند. مرکز بریدگی = مرکز دایره لوگو (۲۴px بالاتر از لبه
   نوار + نصف قطر ۶۴px = ۸px پایین‌تر از لبه)؛ شعاع = ۳۲ + فاصله شفاف ۷. */
.sticky-bottom-bar::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, var(--primary), var(--primary-2));
  border-top: 1px solid rgba(255,255,255,.18);
  -webkit-mask: radial-gradient(circle at 50% 8px, transparent 39px, #000 39.5px);
          mask: radial-gradient(circle at 50% 8px, transparent 39px, #000 39.5px);
}
.sticky-bottom-bar a{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 58px;
  padding: 8px 2px 7px;
  color: #fff;
  text-decoration: none;
  font-size: .74rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  transition: background .15s ease;
  -webkit-tap-highlight-color: transparent;
}
.sticky-bottom-bar a span{ overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.sticky-bottom-bar a:not(.sbb-home):active{ background: rgba(255,255,255,.12); }
.sticky-bottom-bar a:focus-visible{ outline: 2px solid #fff; outline-offset: -3px; border-radius: var(--radius-sm); }
.sticky-bottom-bar svg{
  width: 23px;
  height: 23px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* رزرو نوبت دیگر پس‌زمینه متفاوت ندارد — دقیقاً هم‌رنگ سایر دکمه‌های نوار (۱۴۰۵/۰۷/۱۱) */
.sticky-bottom-bar .sbb-primary{ background: transparent; }
/* صفحه فعلی: خط سفید بالای دکمه */
.sticky-bottom-bar a[aria-current="page"]:not(.sbb-home){ box-shadow: inset 0 3px 0 #fff; }

/* لوگوی وسط — دایره برجسته در بریدگی شفاف نوار (بدون حلقه رنگی دورش) */
.sticky-bottom-bar .sbb-home{
  position: relative;
  padding: 0;
}
.sticky-bottom-bar .sbb-home-circle{
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(150deg, var(--sage) 0%, var(--primary) 55%, var(--primary-2) 100%);
  box-shadow: 0 6px 16px -4px rgba(20,50,20,.45);
  transition: transform .15s ease;
}
.sticky-bottom-bar .sbb-home-circle img{
  width: 36px;
  height: 36px;
  display: block;
}
.sticky-bottom-bar .sbb-home:active .sbb-home-circle{ transform: translateX(-50%) scale(.94); }
.sticky-bottom-bar .sbb-home:focus-visible{ outline: none; }
.sticky-bottom-bar .sbb-home:focus-visible .sbb-home-circle{ outline: 2px solid var(--primary-2); outline-offset: 3px; }

/* فضای خالی ته صفحه تا نوار ثابت (و دایره برجسته)، محتوای فوتر را نپوشاند */
body{ padding-bottom: 84px; }
@supports (padding: max(0px)){
  body{ padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 900px){
  /* در دسکتاپ نواری که برای اپ موبایل طراحی شده لازم نیست و جای مفیدی می‌گیرد */
  .sticky-bottom-bar{ display: none; }
  body{ padding-bottom: 0; }
}

/* عکس سرویس در صفحه جزئیات خدمات (services-fa/en/ar.html) — جایگزین
   ایموجی .card-icon قبلی؛ برخلاف .service-card-photo (که داخل .card
   لبه‌به‌لبه است)، این نسخه داخل .service-block با گوشه گرد معمولی
   نمایش داده می‌شود، چون service-block کارت نیست. */
.service-block-photo{
  width:100%; aspect-ratio:16/9; overflow:hidden;
  border-radius:var(--radius-md); margin-bottom:18px; background:var(--sage-tint);
}
.service-block-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* =====================================================================
   ورود و پنل بیمار (۱۴۰۵/۰۷/۰۳، v1.119.0)
   ===================================================================== */
.patient-auth-title{ font-size:1.5rem; margin-bottom:10px; }
.patient-auth-lead{ color:var(--ink-soft); margin-bottom:18px; line-height:1.9; }
.patient-auth-secondary{ margin-top:16px; text-align:center; }
.patient-auth-secondary summary{ cursor:pointer; color:var(--primary-2); font-size:.9rem; margin-bottom:12px; }
.patient-link-btn{ background:none; border:none; color:var(--primary-2); font:inherit; font-size:.9rem; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.patient-alert{ padding:12px 14px; border-radius:var(--radius-sm); margin-bottom:16px; font-size:.92rem; }
.patient-alert-error{ background:#FBEDEA; color:var(--danger); border:1px solid #F0CFC7; }
.patient-alert-ok{ background:var(--primary-tint); color:var(--primary-2); border:1px solid var(--line); }
.patient-profile-list{ display:grid; gap:10px; }
.patient-profile-btn{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:14px 16px; border-radius:var(--radius-sm); border:1px solid var(--line);
  background:var(--surface); font:inherit; cursor:pointer; text-align:start;
  transition:border-color .15s ease, background .15s ease;
}
.patient-profile-btn:hover, .patient-profile-btn:focus-visible{ border-color:var(--sage); background:var(--sage-tint); }
.patient-profile-name{ font-weight:700; color:var(--ink); }
.patient-profile-meta{ font-size:.82rem; color:var(--ink-soft); }
.patient-create-form{ text-align:start; }
.patient-panel-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.patient-panel-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.patient-card{ margin-bottom:16px; }
.patient-card h2{ font-size:1.12rem; margin-bottom:12px; }
.patient-dl{ display:grid; grid-template-columns:max-content 1fr; gap:8px 18px; margin:0; }
.patient-dl dt{ color:var(--ink-soft); }
.patient-dl dd{ margin:0; font-weight:600; }
.patient-note{ color:var(--ink-soft); font-size:.9rem; margin-top:12px; }
.patient-list{ list-style:none; margin:0; padding:0; }
.patient-list li{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; padding:12px 0; border-bottom:1px solid var(--line); }
.patient-list li:last-child{ border-bottom:none; }
.patient-list-title{ font-weight:600; flex:1 1 220px; }
.patient-list-meta{ font-size:.85rem; color:var(--ink-soft); }
.patient-list-btn{ padding:6px 14px; font-size:.85rem; }

/* دستیار حمایتی هوش مصنوعی (v1.125.0) */
.ai-support-disclaimer{ background:#FFF3CD; border:1px solid #F0AD4E; border-radius:var(--radius-sm); padding:12px 14px; font-size:.85rem; margin-bottom:16px; line-height:1.8; }
.ai-support-disclaimer a{ font-weight:600; }
.ai-support-card{ display:flex; flex-direction:column; }
.ai-support-log{ display:flex; flex-direction:column; gap:10px; max-height:460px; overflow-y:auto; padding:6px 2px; margin-bottom:14px; }
.ai-support-msg{ padding:10px 14px; border-radius:14px; font-size:.92rem; line-height:1.8; max-width:85%; white-space:pre-wrap; }
.ai-support-msg-user{ align-self:flex-end; background:var(--primary); color:#fff; border-bottom-left-radius:4px; }
.ai-support-msg-assistant{ align-self:flex-start; background:var(--sand); color:var(--ink); border-bottom-right-radius:4px; }
.ai-support-msg-pending{ opacity:.6; font-style:italic; }
.ai-support-input-row{ display:flex; gap:10px; align-items:flex-end; }
.ai-support-input-row textarea{ flex:1; padding:10px 12px; border-radius:var(--radius-sm); border:1px solid var(--line); font-family:inherit; font-size:.92rem; resize:vertical; }

/* v1.162.6: حوزه‌های تخصصی گروه‌بندی‌شده */
.area-group{ border:1px solid var(--line); border-radius:var(--radius-md); padding:10px 14px 14px; margin:0 0 14px; background:var(--surface); }
.area-group legend{ padding:0 8px; font-weight:700; color:var(--primary-2); font-size:.95rem; }
.profile-edit-warning{ background:#FFF6E0; border:1px solid #E0A800; color:#6b4b00; border-radius:var(--radius-md); padding:12px 16px; margin:0 0 18px; font-weight:600; font-size:.92rem; line-height:1.9; }
.profile-edit-section{ margin-top:26px; padding-top:18px; border-top:1px solid var(--line); }
.profile-edit-section h3{ margin-bottom:12px; }
