:root {
  --color-primary: #e30a17;
  --color-primary-dark: #b70812;
  --color-primary-soft: #fdeced;
  --color-on-primary: #ffffff;
  --color-text: #111111;
  --color-muted: #555b61;
  --color-bg: #ffffff;
  --color-bg-alt: #f7f7f7;
  --color-border: #e6e6e6;
  --color-dark: #111111;
  --color-on-dark: #ffffff;
  --color-on-dark-muted: #c9c9c9;
  --radius: 8px;
  --radius-lg: 12px;
  --shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 6px 18px rgba(0, 0, 0, .06);
  --header-h: 72px;
}
.topbar { background: var(--color-primary); color: #fff; }
.topbar-inner { min-height: 38px; padding-top: 6px; padding-bottom: 6px; }
.topbar-item { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.topbar-address { text-align: right; }
.brand-text { position: relative; display: flex; flex-direction: column; gap: 3px; padding-left: 14px; line-height: 1.1; }
.brand-text::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 4px; border-radius: 2px; background: var(--color-primary); }
.brand-top { font-size: .68rem; font-weight: 600; letter-spacing: .08em; color: var(--color-muted); }
.brand-main { font-size: 1.12rem; font-weight: 800; letter-spacing: .01em; color: var(--color-text); }
.nav-link { font-weight: 500; }
.nav-item.is-active > .nav-link { color: var(--color-primary); }
.nav-cta .icon { width: 1em; height: 1em; }
.page-header { background: var(--color-bg); }
.page-title::after { content: ""; display: block; width: 48px; height: 3px; margin-top: 16px; background: var(--color-primary); border-radius: 2px; }
.section-head .section-title::after { content: ""; display: block; width: 40px; height: 3px; margin: 14px auto 0; background: var(--color-primary); border-radius: 2px; }
.eyebrow { margin-bottom: 14px; color: var(--color-primary); font-size: .85rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.center { text-align: center; }
.muted { color: var(--color-muted); }
.link-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.hero-wide { background: var(--color-bg-alt); }
.hero-wide img { width: 100%; height: clamp(220px, 38vw, 560px); object-fit: cover; object-position: center 40%; }
.intro { padding: clamp(40px, 6vw, 72px) 0; border-bottom: 1px solid var(--color-border); text-align: center; }
.intro-inner { max-width: calc(860px + var(--gutter) * 2); }
.intro-title { font-size: clamp(2rem, 4.4vw, 3rem); letter-spacing: -.02em; margin-bottom: .5em; }
.intro-title::after { content: ""; display: block; width: 48px; height: 3px; margin: 18px auto 0; background: var(--color-primary); border-radius: 2px; }
.intro p:not(.eyebrow) { color: #2b2f33; font-size: 1.08rem; }
.intro-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 28px; }
.info-card { padding: 28px; border: 1px solid var(--color-border); border-top: 3px solid var(--color-primary); border-radius: var(--radius); }
.info-icon { width: 28px; height: 28px; margin-bottom: 14px; color: var(--color-primary); }
.info-title { margin-bottom: 8px; font-size: .95rem; font-weight: 600; color: var(--color-muted); text-transform: uppercase; letter-spacing: .04em; }
.info-big { margin-bottom: 4px; font-size: 1.35rem; font-weight: 700; color: var(--color-text); }
.info-big a { color: var(--color-primary); }
.info-card p:last-child { margin: 0; color: var(--color-muted); }
.units { margin-bottom: 28px; }
.unit { padding: 28px; background: var(--color-bg); border: 1px solid var(--color-border); border-left: 4px solid var(--color-primary); border-radius: var(--radius); }
.unit-label { margin-bottom: 6px; color: var(--color-primary); font-size: .8rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.unit-doctor { margin-bottom: 14px; font-size: 1.35rem; }
.unit-nurse { margin: 0; padding-top: 14px; border-top: 1px solid var(--color-border); }
.unit-nurse span { display: block; color: var(--color-muted); font-size: .85rem; }
.prose .units { margin-top: 8px; }
.people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 !important; list-style: none; }
.people li { margin: 0; padding: 16px 18px; border: 1px solid var(--color-border); border-radius: var(--radius); font-weight: 600; }
.people-role { display: block; color: var(--color-muted); font-size: .85rem; font-weight: 400; }
.service-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; max-width: 980px; margin: 0 auto; padding: 0 !important; list-style: none; counter-reset: service; }
.service-list li { position: relative; margin: 0; padding: 14px 0 14px 52px; border-bottom: 1px solid var(--color-border); counter-increment: service; }
.service-list li::before {
  content: counter(service); position: absolute; left: 0; top: 12px; display: grid; place-items: center;
  width: 34px; height: 34px; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); font-weight: 700; font-size: .9rem;
}
.service-list-single { grid-template-columns: 1fr; }
.tour { display: grid; grid-template-columns: 1fr auto; gap: clamp(32px, 6vw, 80px); align-items: center; }
.tour-text .contact-list { margin: 24px 0 28px; }
.tour-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.video-tour { width: min(320px, 100%); }
.video-tour video { width: 100%; height: auto; aspect-ratio: 480 / 854; background: #000; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
.hours-table { max-width: 620px; margin: 0 0 10px !important; }
.hours-table thead th { color: var(--color-muted); font-size: .85rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.hours-table tbody th { font-weight: 600; }
.hours-table tr.is-closed td, .hours-table tr.is-closed th { color: var(--color-muted); }
.highlight { margin: 0 0 1.2em; padding: 20px 24px; background: var(--color-primary-soft); border-left: 4px solid var(--color-primary); border-radius: var(--radius); }
.highlight p { margin: 0; }
.highlight-big { margin-bottom: 4px !important; font-weight: 700; font-size: 1.15rem; }
.signs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.signs figure { margin: 0; }
.signs img { margin: 0 !important; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border: 1px solid var(--color-border); }
.signs figcaption { margin-top: 8px; color: var(--color-muted); font-size: .85rem; }
.widget-hours .widget-big { margin-bottom: 4px; font-size: 1.15rem; font-weight: 700; }
.widget-hours p { font-size: .95rem; }
.widget-cta { background: var(--color-bg-alt); }
.contact-grid { grid-template-columns: 1fr auto; align-items: start; }
.contact-info .contact-list { margin-bottom: 24px; }
.related { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--color-border); }
.related h2 { font-size: 1.05rem; margin-bottom: .4em; }
.related p { color: var(--color-muted); }
.map-section { margin-top: 56px; padding-top: 48px; border-top: 1px solid var(--color-border); }
.map-section .map { margin-top: 0; }
.map-section iframe { height: 460px; }
.site-footer { background: var(--color-bg-alt); color: var(--color-muted); border-top: 3px solid var(--color-primary); }
.site-footer a { color: var(--color-text); }
.site-footer a:hover { color: var(--color-primary); }
.footer-title { color: var(--color-text); }
.footer-brand .brand-text { color: var(--color-text); }
.site-footer .contact-list .icon { color: var(--color-primary); }
.site-footer .contact-label { color: var(--color-muted); opacity: 1; }
.footer-bottom { border-top-color: var(--color-border); }
@media (max-width: 960px) {
  .tour, .contact-grid { grid-template-columns: 1fr; }
  .video-tour { margin: 0 auto; }
  .signs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .topbar-inner { justify-content: center; font-size: .82rem; }
  .topbar-address { display: none; }
  .header-inner { gap: 12px; }
  .brand { min-width: 0; }
  .brand-top { font-size: .56rem; }
  .brand-main { font-size: .84rem; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .map-section iframe { height: 340px; }
  .service-list, .people { grid-template-columns: 1fr; }
  .intro-actions .btn { flex: 1 1 100%; }
  .signs { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  .brand-main { font-size: .76rem; }
  .brand-top { font-size: .52rem; }
}
