@font-face {
  font-family:Inter;
  src:url('assets/inter-regular.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap
}

@font-face {
  font-family:Inter;
  src:url('assets/inter-semibold.ttf') format('truetype');
  font-weight:600 800;
  font-style:normal;
  font-display:swap
}

:root {
  --navy:#183452;
  --dark:#162d4a;
  --blue:#255d98;
  --muted:#47627e;
  --sky:#abd6f6;
  --paper:#f3f8fc;
  --line:#d3e2ee;
  --white:#fff
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:24px
}

body {
  margin:0;
  background:#fff;
  color:var(--dark);
  font:400 17px/1.6 Inter,Arial,sans-serif
}

a {
  color:var(--blue);
  text-underline-offset:4px
}

button,input {
  font:inherit
}

button,a,input {
  -webkit-tap-highlight-color:transparent
}

a,button {
  touch-action:manipulation
}

a:hover {
  text-decoration-thickness:2px
}

button {
  cursor:pointer
}

button:disabled {
  cursor:wait;
  opacity:.7
}

[hidden] {
  display:none!important
}

h1,h2,h3,p,figure {
  margin:0
}

h1,h2,h3 {
  font-weight:600;
  line-height:1.18;
  letter-spacing:-.025em
}

h1 {
  font-size:clamp(42px,4.7vw,66px)
}

h2 {
  font-size:clamp(30px,3vw,42px)
}

h3 {
  font-size:24px
}

p+p {
  margin-top:18px
}

img {
  max-width:100%;
  height:auto;
  display:block
}

address {
  font-style:normal
}

.container {
  width:min(1280px,calc(100% - 96px));
  margin-inline:auto
}

.section {
  padding-block:84px
}

section[id],[id=contact],[id=location] {
  scroll-margin-top:24px
}

a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible {
  outline:3px solid #a66b0f;
  box-shadow:0 0 0 7px #fff!important;
  outline-offset:5px
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  z-index:10;
  background:#fff;
  padding:12px 20px;
  transform:translateY(-160%)
}

.skip-link:focus {
  transform:none
}

.icon {
  width:24px;
  height:24px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round
}

.svg-defs {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}

.eyebrow {
  text-transform:uppercase;
  letter-spacing:.035em;
  font-size:13px;
  font-weight:600;
  line-height:1.5;
  color:var(--muted)
}

.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  min-height:56px;
  padding:14px 22px;
  border:1px solid transparent;
  border-radius:5px;
  text-decoration:none;
  line-height:1.3;
  font-size:16px;
  font-weight:600
}

.button:hover {
  text-decoration:none;
  box-shadow:0 0 0 2px currentColor
}

.button>span[aria-hidden] {
  font-size:25px;
  line-height:1;
  margin-left:3px
}

.text-link {
  font-weight:600;
  text-decoration:none
}

.small {
  font-size:15px;
  line-height:1.55
}

.site-header {
  background:#fff;
  border-bottom:1px solid #edf2f6
}

.header-inner {
  display:flex;
  align-items:center;
  gap:38px;
  min-height:114px
}

.brand {
  width:190px;
  flex-shrink:0
}

.brand img {
  width:100%
}

#primary-nav {
  display:flex;
  gap:32px;
  align-items:center;
  margin-left:auto
}

#primary-nav a {
  padding-block:14px;
  color:var(--navy);
  font-size:16px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap
}

#primary-nav a:hover {
  text-decoration:underline
}

.header-call {
  background:#edf5fb;
  color:var(--blue);
  white-space:nowrap;
  padding-inline:20px
}

.menu-toggle {
  border:0;
  background:#fff;
  color:var(--navy);
  min-height:48px;
  padding:10px;
  align-items:center;
  gap:14px;
  font-size:16px;
  font-weight:600
}

.menu-toggle svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6
}

.hero {
  background:linear-gradient(145deg,#0e2540 0%,#1a3d65 40%,#1e5280 100%);
  color:#fff;
  position:relative;
  isolation:isolate;
  overflow:hidden
}

.hero-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:64px;
  padding-block:42px 150px;
  align-items:center
}

.hero .eyebrow {
  color:#b9d8ef
}

.hero-copy>.eyebrow {
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom:24px
}

.hero-copy>.eyebrow:before {
  content:'';
  width:24px;
  height:2px;
  background:#67b4e8
}

h1 span {
  color:var(--sky)
}

.hero-lead {
  font-size:22px;
  line-height:1.5;
  margin-top:24px
}

.tagline {
  margin-top:20px;
  color:#d4e4f2;
  font-size:18px
}

.hero-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:32px
}

.button-white {
  background:#fff;
  color:var(--navy)
}

.button-outline {
  border-color:#a2bdd1;
  color:#fff;
  background:#173450
}

.open-note {
  font-size:14px;
  color:#d4e4f2;
  margin-top:16px;
  display:flex;
  align-items:center;
  gap:8px
}

.status-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#abd6f6
}

.essentials {
  background:var(--paper);
  border-bottom:1px solid var(--line)
}

.essentials-grid {
  display:grid;
  grid-template-columns:1.05fr 1.1fr 1fr;
  padding-block:25px;
  gap:32px
}

.essentials-grid>div {
  display:flex;
  align-items:center;
  gap:18px
}

.essentials-grid>div+div {
  border-left:1px solid var(--line);
  padding-left:32px
}

.essentials .icon {
  color:var(--blue);
  width:28px;
  height:28px
}

.essentials strong {
  font-size:14px;
  display:block;
  color:#284e73
}

.essentials p>span,.essentials p>a {
  display:block
}

.essentials .small,.essentials .text-link {
  font-size:14px;
  color:var(--muted)
}

.section-heading {
  max-width:680px;
  margin-bottom:38px
}

.section-heading h2 {
  margin-top:10px
}

.section-heading>p:last-child {
  margin-top:18px;
  color:var(--muted);
  font-size:18px
}

.services-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}

.service {
  border:1px solid var(--line);
  border-radius:8px;
  padding:28px
}

.service-number {
  display:block;
  color:var(--blue);
  font-size:14px;
  font-weight:600;
  margin-bottom:22px
}

.service h3 {
  font-size:22px
}

.service p {
  margin-top:15px;
  color:var(--muted);
  font-size:16px
}

.service-note {
  margin-top:28px;
  font-size:16px;
  color:var(--muted)
}

.doctor-section {
  background:var(--paper);
  padding-block:72px;
  border-block:1px solid var(--line)
}

.doctor-grid {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:90px
}

.doctor-grid h2 {
  margin-top:12px
}

.doctor-grid h3 {
  font-size:27px;
  margin-bottom:22px
}

.doctor-grid p {
  color:var(--muted)
}

.doctor-grid .text-link {
  display:inline-block;
  padding-block:14px;
  margin-top:8px
}

.contact-section {
  background:linear-gradient(105deg,var(--navy),#225d89);
  color:#fff;
  padding-block:64px 70px
}

.contact-section .eyebrow {
  color:#b9d8ef
}

.contact-heading {
  margin-bottom:42px
}

.contact-heading h2 {
  margin-top:14px
}

.contact-grid {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:48px;
  align-items:start
}

.location h3 {
  font-size:25px;
  margin-bottom:20px
}

.entrance-note {
  display:flex;
  gap:18px;
  align-items:center;
  border-radius:6px;
  background:#e3f2fc;
  color:#204972;
  padding:18px 20px
}

.entrance-note strong {
  font-size:21px;
  font-weight:600
}

.entrance-note p {
  font-size:16px
}

.entrance-note .icon {
  width:28px;
  height:28px
}

.location address {
  margin-block:22px 28px;
  color:#e0ebf3;
  font-size:17px
}

.entrance-photos {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}

.entrance-photos figure {
  border-radius:6px;
  overflow:hidden;
  background:#fff;
  color:var(--navy)
}

.entrance-photos img {
  width:100%;
  aspect-ratio:1.85;
  object-fit:cover
}

.entrance-photos figcaption {
  padding:17px 16px;
  line-height:1.5;
  font-size:16px
}

.hours {
  position:relative;
  padding-left:36px;
  margin-top:26px;
  color:#e0ebf3;
  font-size:17px
}

.hours .icon {
  position:absolute;
  left:0;
  top:3px
}

.hours span {
  font-size:15px
}

.map-link {
  display:inline-flex;
  align-items:center;
  gap:18px;
  color:#fff;
  font-weight:600;
  text-decoration:none;
  padding-block:14px
}

.map-link>span[aria-hidden] {
  font-size:25px
}

.map-link:hover {
  text-decoration:underline
}

.map-note {
  font-size:15px;
  color:#d7e7f3;
  max-width:560px
}

.contact-card {
  background:#fff;
  color:var(--dark);
  border-radius:12px;
  padding:30px
}

.contact-card .eyebrow {
  color:var(--muted);
  font-size:12px
}

.contact-card h3 {
  font-size:27px;
  margin-top:10px
}

.contact-card>p:not(.eyebrow) {
  margin-top:16px;
  color:var(--muted)
}

.contact-call {
  width:100%;
  margin-top:24px;
  background:#edf6fc;
  color:var(--blue);
  font-size:23px
}

.divider {
  display:flex;
  align-items:center;
  gap:16px;
  color:var(--muted);
  font-size:14px;
  margin-block:24px 20px;
  white-space:nowrap
}

.divider:before,.divider:after {
  content:'';
  height:1px;
  background:var(--line);
  flex:1
}

.form-guidance {
  font-size:15px;
  color:var(--muted);
  margin-bottom:20px
}

.field {
  margin-top:16px
}

.field label {
  display:block;
  font-size:16px;
  font-weight:600;
  margin-bottom:6px;
  color:#274b6e
}

.field input {
  width:100%;
  min-height:50px;
  border:1px solid #7e9bb7;
  border-radius:5px;
  padding:12px 14px;
  color:var(--dark);
  background:#fff;
  font-size:16px
}

.field input::placeholder {
  color:#546d86
}

.field .small {
  margin-top:7px;
  color:var(--muted)
}

form>.small {
  margin-block:16px;
  color:var(--muted)
}

.button-blue {
  background:var(--blue);
  color:#fff
}

form .button {
  width:100%
}

.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}

#form-status {
  margin-top:18px;
  padding:16px;
  background:#e9f4fc;
  border:1px solid #a9c9de;
  border-radius:5px;
  font-size:16px;
  color:var(--dark)
}

#form-status.error {
  background:#fff5ec;
  border-color:#ac6729
}

.request-note {
  border-top:1px solid var(--line);
  padding-top:18px
}

.general-email a {
  overflow-wrap:anywhere
}

.notice {
  background:var(--paper);
  padding:16px;
  border-radius:5px
}

.careers {
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:80px;
  align-items:center
}

.careers h2 {
  margin-block:12px 20px
}

.careers p {
  color:var(--muted)
}

.careers-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.career-email {
  color:var(--blue);
  border-color:var(--line);
  background:#fff;
}

.careers .small {
  margin-top:18px;
  overflow-wrap:anywhere
}

footer {
  background:var(--paper);
  border-top:1px solid var(--line);
  padding-block:40px 24px;
  font-size:16px;
  color:var(--muted)
}

.footer-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px
}

.footer-grid img {
  width:200px;
  margin-bottom:18px
}

.footer-grid p+p {
  margin-top:12px
}

.copyright {
  font-size:14px;
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:28px
}

.mobile-actions {
  display:none
}

@media(max-width:1150px) {
  .container {
    width:calc(100% - 64px)
  }
  .header-inner {
    gap:24px
  }
  #primary-nav {
    gap:20px
  }
  .brand {
    width:160px
  }
  .header-call {
    padding-inline:14px;
    font-size:14px
  }
  .hero-grid {
    gap:36px
  }
  .hero-actions {
    gap:10px
  }
  .hero-actions .button {
    padding-inline:15px;
    font-size:15px
  }
  .essentials-grid {
    gap:22px
  }
  .essentials-grid>div+div {
    padding-left:22px
  }
  .essentials span {
    font-size:15px
  }
  .contact-grid {
    gap:32px
  }
  .contact-card {
    padding:26px
  }
}

@media(max-width:900px) {
  .container {
    width:calc(100% - 48px)
  }
  .header-inner {
    min-height:98px;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:0;
    padding-block:10px
  }
  .brand {
    width:164px
  }
  .menu-toggle:not([hidden]) {
    display:flex
  }
  .header-call {
    display:none
  }
  #primary-nav {
    width:100%;
    margin:10px 0 0;
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid var(--line);
    gap:0
  }
  #primary-nav a {
    padding:14px 8px
  }
  .hero-grid {
    grid-template-columns:1fr;
    padding-block:30px 44px
  }
  .hero-copy {
    max-width:620px
  }
  h1 {
    font-size:52px
  }
  .hero-lead {
    font-size:20px
  }
  .hero-actions .button {
    font-size:16px;
    padding-inline:20px
  }
  .essentials-grid {
    grid-template-columns:1fr;
    padding-block:24px;
    gap:18px
  }
  .essentials-grid>div+div {
    border:0;
    padding:0
  }
  .essentials-grid>div:last-child {
    padding-left:46px
  }
  .essentials span {
    font-size:16px
  }
  .essentials strong {
    font-size:14px
  }
  .services-grid {
    grid-template-columns:1fr 1fr
  }
  .section {
    padding-block:60px
  }
  .doctor-grid {
    gap:40px
  }
  .doctor-grid h3 {
    font-size:24px
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .location {
    max-width:680px
  }
  .contact-card {
    max-width:680px
  }
  .careers {
    gap:32px
  }
  .footer-grid {
    gap:32px
  }
}

@media(max-width:600px) {
  h1 span:after {
    content:"";
    display:block
  }
  body {
    font-size:16px;
    padding-bottom:calc(60px + env(safe-area-inset-bottom))
  }
  .container {
    width:calc(100% - 40px)
  }
  h1 {
    font-size:44px;
    line-height:1.12
  }
  h2 {
    font-size:32px
  }
  .hero-copy>.eyebrow {
    font-size:11px;
    margin-bottom:22px;
    letter-spacing:.02em;
    gap:10px
  }
  .hero-lead {
    font-size:18px;
    margin-top:22px
  }
  .tagline {
    font-size:16px;
    margin-top:22px;
    max-width:300px
  }
  .hero-actions {
    display:grid;
    gap:12px;
    margin-top:28px
  }
  .hero-actions .button {
    width:100%;
    min-height:55px;
    padding-inline:12px
  }
  .hero-grid {
    padding-bottom:150px
  }
  .open-note {
    font-size:13px;
    margin-top:15px
  }
  .essentials-grid {
    padding-block:22px;
    gap:16px
  }
  .essentials strong {
    font-size:13px
  }
  .essentials p>span,.essentials .text-link {
    font-size:15px
  }
  .essentials-grid>div {
    gap:14px
  }
  .essentials-grid>div:last-child {
    padding-left:42px
  }
  .section-heading {
    margin-bottom:28px
  }
  .section-heading>p:last-child {
    font-size:17px
  }
  .services-grid {
    grid-template-columns:1fr;
    gap:14px
  }
  .service {
    padding:24px
  }
  .service-number {
    margin-bottom:14px
  }
  .service p {
    font-size:16px
  }
  .doctor-section {
    padding-block:50px
  }
  .doctor-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .doctor-grid h2 br {
    display:none
  }
  .contact-section {
    padding-block:48px
  }
  .contact-heading {
    margin-bottom:30px
  }
  .contact-heading h2 {
    font-size:31px
  }
  .location h3 {
    font-size:23px
  }
  .entrance-note {
    padding:16px;
    gap:12px;
    align-items:flex-start
  }
  .entrance-note strong {
    font-size:18px
  }
  .entrance-note p {
    font-size:15px;
    margin-top:4px
  }
  .location address {
    font-size:16px
  }
  .entrance-photos {
    gap:12px
  }
  .entrance-photos figcaption {
    font-size:14px;
    padding:13px 12px
  }
  .entrance-photos img {
    aspect-ratio:1.5
  }
  .hours {
    font-size:16px
  }
  .map-note {
    font-size:14px
  }
  .contact-card {
    padding:24px 20px;
    border-radius:10px
  }
  .contact-card h3 {
    font-size:26px
  }
  .contact-call {
    font-size:21px
  }
  .general-email {
    font-size:14px
  }
  .careers {
    grid-template-columns:1fr;
    gap:24px
  }
  .careers .button {
    width:100%
  }
  .footer-grid {
    grid-template-columns:1fr;
    gap:24px
  }
  .footer-grid img {
    width:180px
  }
  .mobile-actions {
    display:flex;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    background:#fff;
    border-top:1px solid var(--line);
    padding:8px 0 calc(8px + env(safe-area-inset-bottom));
    z-index:5;
    box-shadow:0 -3px 16px #1834520a
  }
  .mobile-actions a {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    flex:1;
    min-height:44px;
    color:var(--blue);
    font-size:16px;
    font-weight:600;
    text-decoration:none
  }
  .mobile-actions a+a {
    border-left:1px solid var(--line)
  }
  .mobile-actions a:hover {
    text-decoration:underline
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}

/* Original EMP identity within the responsive call-first layout. */
.hero:before{content:"";position:absolute;width:680px;height:680px;border:1px solid rgba(93,168,229,.18);border-radius:50%;top:-280px;right:-180px;pointer-events:none;z-index:-1}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(61,143,209,.18),transparent 60%);pointer-events:none;z-index:-1}
.hero-copy{max-width:860px;text-align:center;justify-self:center}
.hero-copy>.eyebrow{justify-content:center}
#hero-title{font-weight:400}
#hero-title span{font-style:italic}
#hero-title strong{display:block;font-weight:600}
.hero-actions{justify-content:center}
.open-note{justify-content:center}
.tagline{font-style:italic}
.ecg-monitor{position:absolute;bottom:0;left:0;right:0;height:130px;overflow:hidden;pointer-events:none}
#ecgCanvas,.ecg-fallback{position:absolute;inset:0;width:100%;height:100%}
.ecg-fallback{fill:none;stroke:#5da8e5;stroke-width:2;opacity:.6}
.canvas-ready .ecg-fallback{display:none}
.ecg-toggle{position:absolute;bottom:10px;right:20px;display:grid;place-items:center;min-height:44px;min-width:44px;border:1px solid #89b7d8;border-radius:5px;background:#183452;color:#fff;padding:10px}
.ecg-toggle svg{width:18px;height:18px;fill:currentColor}
.ecg-toggle:hover{background:#23496e}
.mission-band{background:#1e4070;color:#fff;text-align:center;padding:54px 0}
.mission-band p{font-size:clamp(19px,2vw,25px);line-height:1.7;font-style:italic;max-width:980px;margin:auto}
.mission-band strong{font-style:normal;font-weight:600}
.mission-band span{display:block;color:#d4e4f2;text-transform:uppercase;font-size:12px;letter-spacing:.1em;margin-top:22px}
.practice-story{margin-top:22px}
.practice-values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}
.practice-values article{padding:24px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:0 5px 5px 0}
.practice-values h3{font-size:18px;letter-spacing:0;margin-bottom:14px}
.practice-values p{color:var(--muted);font-size:16px}
@media(max-width:900px){.hero-copy{max-width:700px}.practice-values{grid-template-columns:1fr}}
@media(max-width:600px){.hero-copy{text-align:left;width:100%}.hero-copy>.eyebrow,.open-note{justify-content:flex-start}.tagline{max-width:none}.mission-band{padding:40px 0}.mission-band p{font-size:19px}.ecg-toggle{right:12px}.practice-values article{padding:22px}}

.hero-grid{padding-bottom:150px}

@media(max-width:600px){.hero-actions{justify-content:stretch}}

/* EMP blue range and restrained amber, with distinct section rhythms. */
:root{--amber:#f2bd62;--warm:#fff3df;--ice:#eaf4fc}
.button-white{background:#f2bd62;border-color:#f2bd62;color:#162d4a}
.button-outline{background:#214a72;border-color:#99c9ed}
.open-note{width:fit-content;margin-inline:auto;padding:6px 14px;border:1px solid #6b9fc4;border-radius:40px;background:#183452}
.essentials{background:#eaf4fc}
.mission-band{background:#fff3df;color:#183452;border-block:1px solid #edd5aa}
.mission-band span{color:#255d98}
.mission-band strong{color:#255d98}
.services-section{background:linear-gradient(135deg,#183452,#255d98);color:#fff}
.services-section .eyebrow{color:#f2bd62}
.services-section .section-heading>p:last-child{color:#d7e7f3}
.services-section .service{background:#214c77;border:1px solid #6587ab;box-shadow:0 5px 15px #112d4e22}
.services-section .service-number{color:#f2bd62;font-size:18px;border-bottom:1px solid #6587ab;padding-bottom:12px;margin-bottom:18px}
.services-section .service p{color:#e0ebf3}
.services-section .service-note{color:#e0ebf3}
.services-section .service-note a{color:#fff}
.doctor-section{background:#edf6fc}
.doctor-grid h2 em{font-weight:400;color:#255d98}
.practice-values article:nth-child(2){border-left-color:#be801a;background:#fff7e9}
.practice-values article:nth-child(3){border-left-color:#398cc4;background:#e2f0fa}
.entrance-note{background:#fff0d8;color:#183452;border-left:4px solid #f2bd62}
.contact-call{background:#e1f1fc;border:1px solid #c6dfef}
.careers{border-top:4px solid #f2bd62}
footer{background:#183452;color:#d7e7f3;border-top:0}
footer a{color:#abd6f6}
.footer-grid img{padding:10px;background:#fff;border-radius:5px;box-sizing:content-box}
.copyright{border-color:#496b8a}
@media(max-width:600px){.open-note{margin-inline:0;font-size:13px}.footer-grid img{width:160px}}

/* Source-grounded Careers culture and resilient text enlargement. */
.careers-culture{margin:22px 0 0;padding-left:22px;color:#47627e}
.careers-culture li{padding-left:5px;margin-top:8px}
.careers-culture li::marker{color:#be801a}
.header-inner{flex-wrap:wrap;padding-block:12px}
#primary-nav{flex-wrap:wrap}
#primary-nav a{white-space:normal}
h1,h2,h3,figcaption{overflow-wrap:anywhere}
@media(max-width:600px){#primary-nav{grid-template-columns:1fr}.header-inner{padding-block:10px}}

/* Compact desktop composition; all sections grow naturally with their copy. */
html{scroll-padding-top:calc(var(--header-offset,0px) + 24px);scroll-padding-bottom:calc(var(--mobile-offset,0px) + 24px)}
section[id],[id=contact],[id=location]{scroll-margin-top:0}
.site-header{position:sticky;top:0;z-index:8;box-shadow:0 2px 12px #1834520a}
.site-header.header-expanded{position:relative}
.header-inner{min-height:90px;padding-block:8px;gap:22px}
.brand{width:165px}
#primary-nav{gap:22px}
.header-call{min-height:48px;padding:12px 16px}
.hero-grid{padding-block:24px 134px}
#hero-title{line-height:1.08}
.hero-copy>.eyebrow{margin-bottom:12px}
.hero-lead{font-size:20px;line-height:1.4;margin-top:14px}
.tagline{margin-top:12px}
.hero-actions{margin-top:22px}
.open-note{margin-top:10px}
.services-section>.section{padding-block:64px}
.services-section .section-heading{margin-bottom:28px}
.services-section .service{padding:24px;background:#f3f8fc;border-color:#c9dfef;color:#183452}
.service-heading{display:flex;align-items:baseline;gap:12px}
.services-section .service-number{flex-shrink:0;display:inline;color:#946014;font-size:15px;border:0;padding:0;margin:0}
.services-section .service h3{font-size:22px}
.services-section .service p{color:#47627e;font-size:17px;margin-top:12px}
.divider{white-space:normal}
.header-call{white-space:normal}
@media(max-width:1150px){#primary-nav{gap:16px}.header-inner{gap:18px}.brand{width:150px}}
@media(max-width:900px){.site-header{position:relative}.header-inner{min-height:90px}.hero-grid{padding-block:30px 140px}.doctor-grid{grid-template-columns:1fr;gap:28px}}
@media(max-width:600px){
 body{padding-bottom:calc(var(--mobile-offset,60px) + 24px)}
 .hero-grid{padding-block:30px 145px}
 .hero-lead{font-size:18px;margin-top:22px}
 .tagline{margin-top:22px}.hero-actions{margin-top:28px}
 .services-section>.section{padding-block:50px}
 .mobile-actions a{min-width:0;overflow-wrap:anywhere}
 .button{min-width:0;overflow-wrap:anywhere}
 .entrance-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
 .contact-card{min-width:0}.contact-call{flex-wrap:wrap}
}

/* Source-verified text-only provider introductions. */
.provider-intro{max-width:1180px}
.provider-intro h2{margin-top:12px}
.provider-intro .practice-story{max-width:850px;margin-top:20px;color:var(--muted)}
.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:32px}
.provider-card{min-width:0;padding:28px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:5px;box-shadow:0 7px 20px #18345205}
.provider-card h3{font-size:25px;line-height:1.25;margin:10px 0 18px}
.provider-card>p:not(.provider-role){color:var(--muted);font-size:17px}
.provider-role{font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#255d98}
.provider-contact{margin-top:24px}
.provider-contact .text-link{display:inline-block;padding-block:10px}
@media(max-width:700px){.provider-grid{grid-template-columns:1fr;gap:20px}.provider-card{padding:24px}.provider-card h3{font-size:24px}}


/* October 21 Open House. Uses the existing EMP amber/navy palette. */
.open-house-banner{background:var(--amber);color:var(--navy);border-bottom:1px solid #b78335}
.open-house-inner{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:24px;align-items:center;padding-block:18px}
.open-house-copy{min-width:0}
.open-house-copy h2{font-size:22px;line-height:1.25;letter-spacing:-.025em;font-weight:600;color:var(--navy)}
.open-house-copy p{font-size:15px;line-height:1.5;margin:5px 0 0;color:var(--navy)}
.open-house-time{white-space:nowrap}
.open-house-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 18px;background:var(--navy);color:#fff;border:1px solid var(--navy);border-radius:5px;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none}
.open-house-link:hover{background:#244a71;border-color:#244a71;text-decoration:none}
.open-house-link>span:last-child{font-size:22px;line-height:1}
.open-house-pdf{font-size:10px;letter-spacing:.04em;padding:3px 4px;border:1px solid #90aac2;border-radius:3px}
.open-house-dismiss{display:grid;place-items:center;width:44px;min-height:44px;padding:11px;border:1px solid transparent;background:transparent;color:var(--navy);border-radius:5px}
.open-house-dismiss:hover{background:#ffffff38;border-color:#936326}
.open-house-dismiss svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.open-house-banner--enter .open-house-inner{animation:open-house-enter 420ms ease-out 1 both}
@keyframes open-house-enter{from{opacity:.78}to{opacity:1}}
@media(max-width:900px){.open-house-inner{gap:16px}.open-house-copy h2{font-size:20px}.open-house-copy p{font-size:14px}.open-house-link{font-size:14px;padding-inline:14px}}
@media(max-width:600px){
 .open-house-inner{grid-template-columns:minmax(0,1fr) 44px;gap:12px 8px;padding-block:15px}
 .open-house-copy{grid-column:1;grid-row:1}
 .open-house-copy h2{font-size:20px;line-height:1.3}
 .open-house-copy p{font-size:13px;line-height:1.55;margin-top:7px}
 .open-house-separator{display:none}
 .open-house-time{display:block}
 .open-house-link{grid-column:1;grid-row:2;justify-self:start;gap:11px;font-size:14px;min-height:44px;max-width:100%;padding:11px 14px}
 .open-house-dismiss{grid-column:2;grid-row:1;align-self:start;margin-top:-4px}
}
@media(prefers-reduced-motion:reduce){.open-house-banner--enter .open-house-inner{animation:none}}


/* The announcement and navigation remain together as a measured sticky stack. */
.has-open-house .open-house-banner{position:sticky;top:0;z-index:9}
.has-open-house .site-header{position:sticky;top:var(--open-house-height,0px);z-index:8}
.has-open-house.open-house-flow .open-house-banner,
.has-open-house.open-house-flow .site-header{position:relative;top:auto}
.open-house-inner{display:flex;justify-content:center;align-items:center;gap:28px;text-align:center;position:relative;padding-inline:60px}
.open-house-copy{flex:0 1 auto}
.open-house-link{flex:0 0 auto}
.open-house-dismiss{position:absolute;right:0;top:50%;transform:translateY(-50%);margin:0}
@media(max-width:900px){
 .has-open-house #primary-nav{max-height:max(88px,calc(100dvh - var(--open-house-height,0px) - var(--navigation-row-height,90px) - var(--navigation-gap,0px) - var(--mobile-offset,0px) - 96px));overflow-y:auto;overscroll-behavior:contain}
 .open-house-inner{gap:20px}
}
@media(max-width:600px){
 .open-house-inner{flex-direction:column;align-items:center;gap:12px;padding-inline:0}
 .open-house-copy{width:100%;padding-inline:44px}
 .open-house-link{align-self:center;max-width:100%;gap:10px;font-size:14px}
 .open-house-dismiss{right:0;top:11px;transform:none}
}
