/* Physician-independent styles. Palette and font faces are generated from data/site.yml. */
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:auto;
}
body {
  margin:0;
  color:var(--ink);
  background:var(--background);
  font-family:var(--font-en);
  font-size:1rem;
  line-height:1.75;
}
html[lang=fa] body {
  font-family:var(--font-fa);
  line-height:1.95;
}
h1,h2,h3,p,figure {
  margin:0;
}
h1,h2,h3 {
  font-weight:650;
  line-height:1.4;
  text-wrap:balance;
}
h1 {
  font-size:clamp(2rem,3.4vw,3rem);
  letter-spacing:-.025em;
}
html[lang=fa] h1 {
  letter-spacing:0;
  font-size:clamp(2rem,3.2vw,2.75rem);
  line-height:1.65;
}
h2 {
  font-size:clamp(1.5rem,2.3vw,2rem);
}
h3 {
  font-size:1.125rem;
}
p {
  max-width:68ch;
}
p+p {
  margin-block-start:1rem;
}
a {
  color:var(--primary);
  text-underline-offset:.22em;
}
a:hover {
  text-decoration-thickness:2px;
}
a,button {
  touch-action:manipulation;
}
button {
  font:inherit;
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:5px;
  border-radius:2px;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
svg.icon {
  width:1.25rem;
  height:1.25rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:none;
  vertical-align:middle;
}
bdi,[dir=ltr] {
  unicode-bidi:isolate;
}
bdi {
  display:inline;
}
a,bdi {
  overflow-wrap:anywhere;
}
.wrap {
  width:min(100% - 3rem,1160px);
  margin-inline:auto;
}
.muted {
  color:var(--muted);
}
.eyebrow {
  font-size:.875rem;
  color:var(--primary);
  font-weight:650;
  margin-block-end:.8rem;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}
.skip-link {
  position:fixed;
  top:-10rem;
  inset-inline-start:1rem;
  background:var(--navy);
  color:white;
  padding:.75rem 1rem;
  z-index:20;
}
.skip-link:focus {
  top:1rem;
}
.topbar {
  background:var(--navy);
  color:var(--on-dark);
  font-size:.875rem;
}
.topbar-inner {
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.topbar a {
  color:inherit;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:38px;
}
.topbar-contact {
  display:flex;
  gap:1.5rem;
  align-items:center;
}
.site-header {
  background:var(--background);
  border-block-end:1px solid var(--line);
}
.header-inner {
  display:flex;
  align-items:center;
  gap:2rem;
  min-height:100px;
  flex-wrap:wrap;
}
.brand {
  display:flex;
  align-items:center;
  gap:.8rem;
  text-decoration:none;
  color:var(--ink);
  flex:1;
  min-width:0;
}
.brand img {
  width:43px;
  height:43px;
  flex:none;
}
.brand strong {
  display:block;
  font-size:1.05rem;
  font-weight:650;
}
.brand small {
  display:block;
  font-size:.875rem;
  color:var(--muted);
}
.primary-nav {
  display:flex;
  align-items:center;
  gap:1.7rem;
}
.primary-nav a {
  font-size:.9375rem;
  text-decoration:none;
  color:var(--ink);
  padding-block:.6rem;
  white-space:nowrap;
}
.primary-nav a[aria-current=page] {
  color:var(--primary);
  box-shadow:inset 0 -2px var(--primary);
}
.header-actions {
  display:flex;
  align-items:center;
  gap:1rem;
}
.language-link {
  font-size:.875rem;
  font-weight:550;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  min-height:44px;
  text-decoration:none;
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  min-height:48px;
  padding:.65rem 1.2rem;
  background:var(--primary);
  border:1px solid var(--primary);
  color:var(--on-dark);
  border-radius:5px;
  text-decoration:none;
  font-weight:600;
  font-size:.9375rem;
  line-height:1.65;
  max-width:100%;
  text-align:center;
}
.btn:hover {
  background:var(--primary-hover);
  border-color:var(--primary-hover);
  text-decoration:none;
}
.btn-secondary {
  background:transparent;
  color:var(--primary);
  border-color:var(--line);
}
.btn-secondary:hover {
  background:var(--surface);
  color:var(--primary);
  border-color:var(--primary);
}
.menu-toggle {
  display:none;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  border-radius:4px;
  min-width:48px;
  min-height:46px;
}
.hero {
  background:var(--surface);
  padding-block:4.5rem 4rem;
}
.hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  align-items:center;
  gap:5rem;
}
.hero .identity-latin {
  margin-block:.2rem 1rem;
  font-size:1.05rem;
  color:var(--muted);
}
.hero-title {
  font-size:1.375rem;
  color:var(--primary);
  font-weight:600;
  margin-block:1.15rem .7rem;
}
.hero-description {
  font-size:1.125rem;
  max-width:47ch;
}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-block-start:1.6rem;
}
.hero-meta {
  display:flex;
  flex-wrap:wrap;
  gap:.65rem 1.5rem;
  font-size:.875rem;
  margin-block-start:1.75rem;
  color:var(--muted);
}
.hero-meta span {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.portrait {
  position:relative;
}
.portrait img {
  width:100%;
  max-height:440px;
  object-fit:cover;
  border-radius:5px;
  aspect-ratio:4/5;
  object-position:center 20%;
}
.portrait figcaption {
  font-size:.875rem;
  margin-block-start:.6rem;
  color:var(--muted);
}
.identity-panel {
  background:var(--navy);
  color:var(--on-dark);
  padding:2.25rem;
  border-radius:5px;
  border-block-start:5px solid var(--primary);
}
.identity-panel .eyebrow {
  color:var(--on-dark);
  opacity:.85;
}
.identity-panel h2 {
  font-size:1.5rem;
  margin-block:1rem .75rem;
}
.identity-panel p {
  font-size:1rem;
  line-height:1.9;
}
.identity-panel .panel-rule {
  border-block-start:1px solid rgba(255,255,255,.25);
  margin-block-start:1.8rem;
  padding-block-start:1.3rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  font-size:.875rem;
}
.identity-panel .panel-rule bdi {
  font-size:1.5rem;
  letter-spacing:.08em;
}
.section {
  padding-block:4rem;
}
.section-head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:2rem;
  margin-block-end:2rem;
}
.section-head p {
  margin-block-start:.65rem;
  color:var(--muted);
  max-width:54ch;
}
.section-head>a {
  white-space:nowrap;
  font-size:.9375rem;
}
.intro-grid {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:5rem;
}
.intro-grid p {
  font-size:1.0625rem;
}
.inline-link {
  display:inline-block;
  font-weight:550;
  margin-block-start:1rem;
}
.service-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2rem;
}
.service-preview {
  border-block-start:2px solid var(--primary);
  padding-block-start:1.25rem;
}
.service-preview h3 {
  margin-block:.75rem .6rem;
}
.service-preview p {
  color:var(--muted);
  font-size:.9375rem;
}
.service-preview .icon {
  color:var(--primary);
  width:1.7rem;
  height:1.7rem;
}
.surface {
  background:var(--surface);
}
.credentials {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2rem;
  margin-block-start:2rem;
}
.credential {
  padding-inline-start:1rem;
  border-inline-start:2px solid var(--line);
}
.credential p {
  color:var(--muted);
  font-size:.9375rem;
  margin-block-start:.5rem;
}
.credential .date {
  display:block;
  margin-block-start:.6rem;
  font-size:.875rem;
  color:var(--primary);
}
.clinic-strip {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:4rem;
  align-items:center;
}
.clinic-strip h2 {
  margin-block-end:.8rem;
}
.clinic-strip .contact-links {
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-block-start:1rem;
}
.cta-band {
  padding:2.25rem;
  background:var(--navy);
  color:var(--on-dark);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  border-radius:5px;
}
.cta-band h2 {
  font-size:1.5rem;
}
.cta-band p {
  font-size:.9375rem;
  margin-block-start:.4rem;
}
.cta-band .btn {
  border-color:var(--on-dark);
  background:var(--on-dark);
  color:var(--navy);
  flex-shrink:0;
}
.cta-band .btn:hover {
  background:var(--surface);
}
.page-head {
  padding-block:3rem;
  background:var(--surface);
  border-block-end:1px solid var(--line);
}
.page-head p {
  margin-block-start:1rem;
  font-size:1.0625rem;
  color:var(--muted);
  max-width:65ch;
}
.about-lead {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);
  gap:4rem;
  align-items:start;
}
.about-lead.no-photo {
  grid-template-columns:.8fr 1.2fr;
}
.about-label h2 {
  margin-block-end:.5rem;
}
.about-label .identity-latin {
  font-size:1rem;
  color:var(--muted);
  margin-block-end:1rem;
}
.about-label .registration {
  font-size:.9375rem;
  border-block-start:1px solid var(--line);
  padding-block-start:1rem;
}
.about-copy h3 {
  margin-block:1.5rem .5rem;
}
.timeline {
  list-style:none;
  padding:0;
  margin:2rem 0 0;
  display:grid;
  gap:0;
}
.timeline li {
  position:relative;
  padding-block:0 2rem;
  padding-inline-start:2rem;
  border-inline-start:1px solid var(--line);
  margin-inline-start:.35rem;
}
.timeline li:last-child {
  padding-block-end:0;
}
.timeline li:before {
  content:"";
  width:11px;
  height:11px;
  background:var(--background);
  border:2px solid var(--primary);
  border-radius:50%;
  position:absolute;
  inset-inline-start:-6px;
  top:.45rem;
}
.timeline p {
  color:var(--muted);
  margin-block-start:.25rem;
}
.timeline time {
  display:block;
  color:var(--primary);
  font-size:.875rem;
  margin-block-end:.35rem;
}
.service-group {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:4rem;
  padding-block:2.5rem;
  border-block-start:1px solid var(--line);
}
.service-group:first-child {
  padding-block-start:0;
  border:0;
}
.service-group>div>p {
  color:var(--muted);
  margin-block-start:.7rem;
}
.service-items {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
}
.service-item {
  border-inline-start:2px solid var(--line);
  padding-inline-start:1.1rem;
}
.service-item p {
  font-size:.9375rem;
  color:var(--muted);
  margin-block-start:.55rem;
}
.contact-layout {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:4rem;
  align-items:start;
}
.contact-rows {
  margin:0;
}
.contact-row {
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:1rem;
  padding-block:1.25rem;
  border-block-end:1px solid var(--line);
}
.contact-row:first-child {
  padding-block-start:0;
}
.contact-row .icon {
  color:var(--primary);
  margin-block-start:.35rem;
}
.contact-row dt {
  font-size:.875rem;
  font-weight:600;
  color:var(--muted);
  margin-block-end:.35rem;
}
.contact-row dd {
  margin:0;
  min-width:0;
}
.contact-row address {
  font-style:normal;
}
.contact-aside {
  padding:2rem;
  background:var(--surface);
  border-block-start:3px solid var(--primary);
}
.contact-aside h2 {
  font-size:1.4rem;
}
.contact-aside p {
  margin-block-start:1rem;
}
.contact-aside .btn {
  margin-block-start:1.5rem;
}
.directions {
  margin-block-start:2.5rem;
}
.directions h2 {
  font-size:1.4rem;
  margin-block-end:.75rem;
}
.social-links {
  display:flex;
  gap:1.2rem;
  flex-wrap:wrap;
  margin-block-start:1.5rem;
  font-size:.9375rem;
}
.publication-list {
  padding-inline-start:1.3rem;
}
.publication-list li {
  padding-block:1rem;
  border-block-end:1px solid var(--line);
}
.publication-list p {
  font-size:.9375rem;
  color:var(--muted);
}
.site-footer {
  background:var(--surface);
  border-block-start:1px solid var(--line);
  padding-block:2.5rem 1.25rem;
}
.footer-grid {
  display:grid;
  grid-template-columns:1fr 1.35fr .7fr;
  gap:2.5rem;
}
.footer-grid h2 {
  font-size:1.1rem;
  margin-block-end:.6rem;
}
.footer-grid p,.footer-grid address {
  font-size:.875rem;
  color:var(--muted);
  font-style:normal;
}
.footer-grid a {
  font-size:.875rem;
}
.footer-contact {
  display:flex;
  flex-wrap:wrap;
  gap:.35rem 1.5rem;
  margin-block-start:.6rem;
}
.footer-nav {
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
  border-block-start:1px solid var(--line);
  margin-block-start:2rem;
  padding-block-start:1rem;
}
.footer-bottom p {
  font-size:.8125rem;
  color:var(--muted);
}
.footer-bottom [lang=en] {
  font-family:var(--font-en);
}
.language-entry {
  min-height:70vh;
  display:grid;
  place-content:center;
  text-align:center;
  gap:1rem;
}
.language-entry .actions {
  justify-content:center;
}
.review-note {
  border-inline-start:3px solid var(--primary);
  padding-inline-start:1rem;
  margin-block-start:2rem;
  font-size:.9375rem;
}
.narrow {
  max-width:780px;
}
@media(min-width:100rem) {
  .hero {
    padding-block:5.5rem;
  }
}
@media(max-width:70rem) {
  .header-inner {
    gap:1.1rem;
  }
  .primary-nav {
    gap:1rem;
  }
  .hero-grid {
    gap:3rem;
  }
  .header-actions {
    gap:.65rem;
  }
  .brand strong {
    font-size:.95rem;
  }
  .header-actions .btn {
    padding-inline:.85rem;
  }
}
@media(max-width:63.999rem) {
  .header-inner {
    padding-block:1rem;
    gap:1rem;
    min-height:90px;
  }
  .brand {
    flex-basis:50%;
  }
  .header-actions {
    margin-inline-start:auto;
  }
  .header-actions>.btn {
    display:none;
  }
  .enhanced .menu-toggle {
    display:inline-flex;
    padding-inline:.7rem;
  }
  .primary-nav {
    order:3;
    flex-basis:100%;
    display:flex;
    flex-wrap:wrap;
    border-block-start:1px solid var(--line);
    padding-block-start:.8rem;
  }
  .enhanced .primary-nav {
    display:none;
  }
  .enhanced.menu-open .primary-nav {
    display:flex;
  }
  .primary-nav a {
    padding:.65rem;
  }
  .hero {
    padding-block:3rem;
  }
  .hero-grid {
    gap:2rem;
    grid-template-columns:1.2fr 1fr;
  }
  .identity-panel {
    padding:1.5rem;
  }
  .hero-description {
    font-size:1rem;
  }
  .intro-grid,.clinic-strip {
    gap:2.5rem;
  }
  .service-summary {
    gap:1.5rem;
  }
  .contact-layout {
    gap:2.5rem;
  }
  .footer-grid {
    grid-template-columns:1fr 1.4fr;
  }
  .footer-nav {
    grid-column:1/-1;
    flex-direction:row;
    flex-wrap:wrap;
    gap:1.5rem;
  }
  .about-lead,.about-lead.no-photo,.service-group {
    gap:2.5rem;
  }
  .section {
    padding-block:3rem;
  }
  .cta-band {
    align-items:start;
  }
}
@media(max-width:47.999rem) {
  .wrap {
    width:min(100% - 2rem,1160px);
  }
  .topbar-contact {
    gap:.8rem;
  }
  .topbar .top-location {
    display:none;
  }
  .brand {
    flex-basis:auto;
  }
  .brand img {
    width:35px;
    height:35px;
  }
  .brand strong {
    font-size:.9rem;
  }
  .brand small {
    font-size:.8125rem;
  }
  .header-inner {
    gap:.5rem;
  }
  .header-actions {
    gap:.65rem;
  }
  .menu-toggle .menu-label {
    display:none;
  }
  .language-link {
    font-size:.875rem;
  }
  .hero-grid {
    grid-template-columns:1fr;
    gap:2rem;
  }
  .hero {
    padding-block:2.5rem;
  }
  .hero h1 {
    font-size:2rem;
  }
  .hero-description {
    font-size:1.0625rem;
  }
  .hero-title {
    font-size:1.25rem;
  }
  .identity-panel {
    padding:1.5rem;
  }
  .identity-panel h2 {
    font-size:1.3rem;
  }
  .identity-panel .panel-rule {
    margin-block-start:1rem;
    padding-block-start:1rem;
  }
  .portrait {
    max-width:350px;
    width:100%;
    margin-inline:auto;
  }
  .portrait img {
    max-height:380px;
  }
  .intro-grid,.clinic-strip,.about-lead,.about-lead.no-photo,.contact-layout,.service-group {
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  .section-head {
    align-items:start;
    flex-direction:column;
    gap:.8rem;
  }
  .service-summary {
    grid-template-columns:1fr;
    gap:1.75rem;
  }
  .service-preview {
    display:grid;
    grid-template-columns:35px 1fr;
    column-gap:.75rem;
    padding-block-start:1rem;
  }
  .service-preview>.icon {
    grid-row:1/3;
    margin-block-start:.75rem;
  }
  .service-preview h3 {
    margin-block:.5rem;
  }
  .service-preview p {
    grid-column:2;
  }
  .credentials {
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  .cta-band {
    flex-direction:column;
    gap:1rem;
    padding:1.5rem;
  }
  .cta-band .btn {
    width:auto;
  }
  .page-head {
    padding-block:2rem;
  }
  .page-head h1 {
    font-size:2rem;
  }
  .service-items {
    gap:1.5rem;
    grid-template-columns:1fr;
  }
  .service-group {
    padding-block:2rem;
  }
  .footer-grid {
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  .footer-nav {
    grid-column:auto;
  }
  .footer-bottom {
    gap:.5rem;
  }
  .footer-bottom p {
    max-width:100%;
  }
  .section {
    padding-block:2.5rem;
  }
  .about-label .registration {
    margin-block-start:1rem;
  }
  .contact-aside {
    padding:1.5rem;
  }
  .topbar-inner {
    gap:.5rem;
  }
  .topbar a {
    font-size:.8125rem;
  }
  .topbar .icon {
    width:1rem;
    height:1rem;
  }
  .topbar-contact>a {
    gap:.35rem;
  }
}
@media(max-width:22rem) {
  .wrap {
    width:calc(100% - 1.5rem);
  }
  .brand img {
    display:none;
  }
  .header-actions {
    gap:.5rem;
  }
  .hero h1,html[lang=fa] .hero h1 {
    font-size:1.75rem;
  }
  .hero .actions {
    flex-direction:column;
    align-items:stretch;
  }
  .topbar-contact {
    gap:.5rem;
  }
  .identity-panel {
    padding:1.2rem;
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important;
  }
}
@media print {
  .topbar,.header-actions,.primary-nav,.site-footer,.actions,.cta-band,.skip-link {
    display:none!important;
  }
  .site-header {
    border:0;
  }
  .section,.hero,.page-head {
    padding-block:1rem;
    background:white;
  }
  .wrap {
    width:100%;
  }
  body {
    font-size:11pt;
  }
  .hero-grid {
    grid-template-columns:1fr;
  }
  .identity-panel {
    background:white;
    color:black;
    border:1px solid #bbb;
  }
  a {
    color:inherit;
  }
  .service-group,.contact-layout {
    break-inside:avoid;
  }
}
.identity-panel a {
  color:var(--on-dark);
}
.timeline .date {
  color:var(--primary);
  font-size:.875rem;
}
html[lang=fa] .identity-latin {
  direction:ltr;
  text-align:right;
  unicode-bidi:isolate;
}
.footer-appointment {
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
/* Compact header keeps the appointment action and intact number visible. */
.topbar a,.topbar bdi {
  white-space:nowrap;
}
@media(max-width:47.999rem) {
  .header-inner {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
  }
  .primary-nav {
    grid-column:1/-1;
  }
  .topbar a {
    font-size:.875rem;
  }
  .topbar .top-appointment>.icon {
    display:none;
  }
  .topbar-contact {
    gap:.8rem;
  }
}
@media(max-width:22rem) {
  .topbar-contact {
    gap:.55rem;
  }
  .topbar-contact .icon {
    display:none;
  }
}
bdi[lang=en],.identity-latin {
  font-family:var(--font-en);
}
bdi[lang=fa] {
  font-family:var(--font-fa);
}
.topbar-inner,.topbar-contact {
  flex-wrap:wrap;
}
.contact-row {
  display:block;
}
.contact-row dt {
  display:flex;
  gap:1rem;
  align-items:center;
}
.contact-row .icon {
  margin:0;
}
.contact-row dd {
  padding-inline-start:2.25rem;
}
.contact-layout>*,.hero-grid>*,.service-group>*,.about-lead>* {
  min-width:0;
}
.btn span {
  min-width:0;
  overflow-wrap:anywhere;
}
