/* Bilingual semantic text flow, additive to the frozen visual system.
   This file deliberately avoids site-wide text-align overrides on art-directed heroes. */
:where(html[lang="fa"][dir="rtl"], html[lang="en"][dir="ltr"]) {
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
:where(main article, main .article-shell, main .content-body, main .entry-content,
       main .service-description, main .panel) :where(p, li, dt, dd, blockquote) {
  text-align: start;
  overflow-wrap: anywhere;
  hyphens: manual;
}
:where(html[lang="fa"][dir="rtl"]) :where(main article, main .article-shell, main .content-body) {
  direction: rtl;
}
:where(html[lang="en"][dir="ltr"]) :where(main article, main .article-shell, main .content-body) {
  direction: ltr;
}
:where(main article, main .article-shell, main .content-body) :where(h1,h2,h3,h4,h5,h6) {
  overflow-wrap: break-word;
  text-wrap: balance;
  scroll-margin-block-start: 6rem;
}
:where(main article, main .article-shell, main .content-body) :where(p,li,blockquote) {
  text-wrap: pretty;
}
:where(main article, main .article-shell) :where(pre,code,kbd,samp,[dir="ltr"],[lang="en"]) {
  direction: ltr;
  unicode-bidi: isolate;
}
:where(main article, main .article-shell) :where([dir="rtl"],[lang="fa"]) {
  direction: rtl;
  unicode-bidi: isolate;
}
:where(main article, main .article-shell) :where(pre,table,.table-scroll) {
  max-width: 100%;
}
:where(main article, main .article-shell) pre {
  overflow-x: auto;
  white-space: pre;
}
:where(main article, main .article-shell) :where(img,video,svg,iframe) {
  max-width: 100%;
}
:where(main article, main .article-shell) :where(input,textarea,select) {
  max-width: 100%;
  box-sizing: border-box;
}
:where(main article, main .article-shell) :where(textarea,input:not([type="hidden"])) {
  text-align: start;
}
@media (max-width: 600px) {
  :where(main article, main .article-shell, main .content-body) :where(h1,h2,h3,h4,h5,h6) {
    max-width: 100%;
  }
}
/* Self-hosted Persian display used by lightweight standalone VIP pages, which
   intentionally do not download the site's 120KB general stylesheet. */
@font-face{
 font-family:"JR Persian Display";
 src:url("/assets/fonts/vazirmatn-variable-a501289a8559.woff2") format("woff2");
 font-weight:100 900;font-style:normal;font-display:swap;
 /* Full variable font aligns Persian and embedded Latin names in one heading. */
}
html[lang="fa"] :where(main) :is(h1,h2,h3,h4,h5,h6){
 font-family:"JR Persian Display","Vazirmatn","Noto Naskh Arabic",Tahoma,sans-serif!important;
 letter-spacing:normal!important;text-transform:none;
 text-wrap:balance;overflow-wrap:break-word;
}
html[lang="fa"] :where(main) h1{font-weight:780;line-height:1.48}
html[lang="fa"] :where(main) h2{font-weight:720;line-height:1.6}
html[lang="fa"] :where(main) :is(h3,h4,h5,h6){font-weight:650;line-height:1.7}

/* Lightweight Persian VIP services: layered gold focus, no extra resources. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 html[lang="fa"] .vip-choice-guide a:hover{
  color:#ffe5ae;text-decoration-thickness:2px;
 }
 html[lang="fa"] main .panel:hover{
  border-color:rgba(214,173,99,.48);
 }
}
html[lang="fa"] :is(.vip-choice-guide,.panel) :where(a,button,summary):focus-visible{
 outline:3px solid #f2d49b;outline-offset:3px;
}
