@font-face {
  font-family:"Bricolage Grotesque";
  src:url("assets/bricolage-grotesque.ttf") format("truetype");
  font-style:normal;
  font-weight:200 800;
  font-display:swap}

:root {
  --ink:#243f36;
  --ink-soft:#506158;
  --paper:#fafbf7;
  --sage:#e8eee4;
  --peach:#f4c49e;
  --yellow:#f5d77f;
  --white:#fff;
  --line:#ccd5ca;
  --display:"Bricolage Grotesque",Arial,sans-serif;
  --max-width:1184px}

* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:112px}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure,dl {
  margin:0}
h1,h2,h3 {
  font-family:var(--display);
  font-weight:600;
  text-wrap:balance}
h1,h2 {
  letter-spacing:-.035em}
h2 {
  font-size:clamp(2.1rem,3.3vw,3.2rem);
  line-height:1.1}
h3 {
  font-size:1.4rem;
  line-height:1.3}
a {
  color:inherit;
  text-underline-offset:5px;
  text-decoration-thickness:1px}
a:hover {
  text-decoration-thickness:2px}
button {
  font:inherit}
a,button,summary {
  -webkit-tap-highlight-color:transparent}
button,summary {
  cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid #aa4c21;
  outline-offset:5px;
  border-radius:3px}
img {
  max-width:100%;
  height:auto;
  display:block}
svg {
  display:block}
.container {
  width:min(var(--max-width),calc(100% - 96px));
  margin-inline:auto}
.section {
  padding-block:108px}
.section-label {
  font-size:.87rem;
  font-weight:600;
  margin-bottom:23px}
.section-intro>p:not(.section-label) {
  max-width:330px;
  color:var(--ink-soft);
  margin-top:26px}
.section-intro>.text-link {
  margin-top:25px;
  display:inline-flex}
.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:12px;
  left:12px;
  z-index:100;
  background:var(--yellow);
  padding:12px 22px;
  transform:translateY(-150%)}
.skip-link:focus {
  transform:none}

.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:var(--paper);
  border-bottom:1px solid var(--line)}
.header-inner {
  min-height:103px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  flex-shrink:0}
.brand strong {
  font-family:var(--display);
  display:block;
  font-size:1.8rem;
  line-height:1.1;
  letter-spacing:-.035em;
  font-weight:700}
.brand small {
  display:block;
  font-size:.75rem;
  letter-spacing:.025em;
  margin-top:6px}
.brand-dot {
  color:#967126}
.header-inner nav {
  display:flex;
  align-items:center;
  gap:27px;
  font-size:.86rem;
  font-weight:600}
.header-inner nav>a {
  text-decoration:none;
  padding-block:12px}
.header-inner nav>a:hover {
  text-decoration:underline}
.header-phone {
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap}
.header-phone svg {
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:1.7;
  fill:none}
.menu-toggle {
  display:none;
  border:1px solid var(--line);
  background:transparent;
  padding:8px 12px;
  border-radius:8px;
  align-items:center;
  gap:12px}
.menu-toggle[hidden] {
  display:none}

.hero {
  background:var(--sage);
  padding-top:56px}
.hero-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:44px;
  align-items:center}
.hero-copy {
  padding-bottom:15px}
.hero h1 {
  font-size:clamp(3.2rem,6.1vw,5.5rem);
  line-height:1.02;
  font-weight:600;
  letter-spacing:-.04em}
.highlight {
  position:relative;
  z-index:0;
  white-space:nowrap}
.highlight:after {
  content:"";
  position:absolute;
  inset:77% -2% -2%;
  background:var(--yellow);
  border-radius:70% 15% 60% 20%;
  z-index:-1;
  transform:rotate(-1deg)}
.hero-description {
  max-width:420px;
  font-size:1.05rem;
  line-height:1.7;
  margin:29px 0 28px}
.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:32px;
  min-height:55px;
  background:var(--ink);
  color:var(--white);
  font-size:.91rem;
  font-weight:600;
  text-decoration:none;
  padding:14px 22px;
  border-radius:8px;
  transition:background-color .2s}
.button:hover {
  background:#395a4b;
  text-decoration:none}
.hero-note {
  font-size:.76rem;
  color:var(--ink-soft);
  margin-top:17px}
.hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px 24px;
}
.hero-actions>.text-link {
  font-size:.8rem;
}
.hours-strip {
  display:grid;
  grid-template-columns:1.25fr 1fr .9fr 1.05fr;
  gap:26px;
  border-top:1px solid #bac8b6;
  margin-top:52px;
  padding-block:28px 30px;
  align-items:start}
.hours-intro h2 {
  font-size:1.18rem;
  letter-spacing:-.015em;
  line-height:1.4}
.hours-intro p {
  font-size:.81rem;
  margin-top:6px;
  color:var(--ink-soft)}
.hours-group {
  font-size:.83rem;
  line-height:1.6;
  padding-left:26px;
  border-left:1px solid #bac8b6}
.hours-group dt {
  font-weight:700;
  margin-bottom:5px}
.hours-group dd {
  margin:0;
  color:var(--ink-soft);
  font-variant-numeric:tabular-nums}

.acute-note {
  display:flex;
  gap:17px;
  align-items:center;
  padding-block:25px;
  border-bottom:1px solid var(--line);
  font-size:.82rem}
.note-symbol {
  display:grid;
  place-items:center;
  background:var(--yellow);
  width:35px;
  height:35px;
  border-radius:50%;
  flex-shrink:0;
  line-height:1}
.acute-note p {
  max-width:650px;
  line-height:1.6}
.acute-note strong {
  margin-right:5px}
.acute-note>a {
  margin-left:auto;
  max-width:220px;
  flex-shrink:0;
  font-size:.78rem;
  line-height:1.5}

.services,.faq-section {
  display:grid;
  grid-template-columns:.9fr 1.3fr;
  gap:100px}
.service-row {
  display:grid;
  grid-template-columns:50px 1fr;
  gap:22px;
  padding:27px 0;
  border-bottom:1px solid var(--line)}
.service-row:first-child {
  padding-top:0}
.service-row p {
  font-size:.94rem;
  line-height:1.7;
  color:var(--ink-soft);
  margin-top:10px;
  max-width:450px}
.service-symbol {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%}
.symbol-growth {
  background:var(--sage)}
.symbol-health {
  background:var(--peach)}
.symbol-care {
  background:var(--yellow)}
details {
  border-bottom:1px solid var(--line)}
summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  list-style:none;
  padding-block:23px;
  font-size:1rem;
  font-weight:600;
  line-height:1.5}
summary::-webkit-details-marker {
  display:none}
summary>span {
  font-size:1.5rem;
  font-weight:400;
  flex-shrink:0;
  transition:transform .2s}
details[open]>summary>span {
  transform:rotate(45deg)}
summary:hover {
  color:#50715c}
.detail-body {
  padding:0 34px 24px 0;
  font-size:.94rem;
  color:var(--ink-soft);
  line-height:1.75}
.detail-body p+p {
  margin-top:13px}
.detail-body>a {
  display:inline-flex;
  margin-top:14px}
.service-details summary {
  font-size:.88rem}
.service-details .detail-body {
  padding-left:72px}
.text-link {
  font-weight:600;
  font-size:.9rem;
  display:inline-flex;
  gap:18px;
  align-items:center}

.practice {
  background:#f1f0e8;
  padding-block:87px}
.practice-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center}
.practice-copy h2 {
  font-size:clamp(2.1rem,3.1vw,3rem)}
.practice-copy>p:not(.section-label):not(.signature) {
  margin-top:23px;
  font-size:.98rem;
  color:var(--ink-soft)}
.practice-copy .signature {
  font-family:var(--display);
  font-size:1.1rem;
  font-weight:600;
  margin-top:24px}
.practice-copy .text-link {
  margin-top:25px}
.faq-list {
  border-top:1px solid var(--line)}
.faq-list summary {
  padding-block:24px}
.faq-list .detail-body {
  max-width:600px}

.contact {
  background:var(--ink);
  color:var(--paper);
  padding-block:72px 30px}
.contact-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:90px}
.contact .section-label {
  color:#c9d8c4}
.contact h2 {
  font-size:clamp(2.6rem,4.1vw,4rem);
  line-height:1.08}
.contact-number {
  font-family:var(--display);
  font-size:clamp(2rem,3.3vw,3.2rem);
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:25px;
  line-height:1.1;
  margin:32px 0 17px;
  text-decoration:none;
  letter-spacing:-.03em}
.contact-number:hover {
  text-decoration:underline}
.contact-main>p:not(.section-label) {
  font-size:.88rem;
  color:#d4ded0}
.contact-hours {
  display:inline-block;
  font-size:.82rem;
  margin-top:11px}
.address-panel {
  padding-left:45px;
  border-left:1px solid #5a7164}
.address-panel h3 {
  font-size:1.6rem}
.address-panel address {
  font-style:normal;
  font-size:.91rem;
  line-height:1.7;
  margin-top:19px}
.address-panel>p {
  font-size:.84rem;
  color:#d4ded0;
  margin:20px 0 25px}
.button-light {
  background:var(--sage);
  color:var(--ink);
  font-size:.83rem;
  min-height:49px;
  padding:12px 18px}
.button-light:hover {
  background:var(--yellow)}
.contact-secondary {
  border-top:1px solid #5a7164;
  display:flex;
  justify-content:space-between;
  gap:25px;
  margin-top:47px;
  padding-top:23px;
  font-size:.75rem;
  color:#d4ded0}
.contact a:focus-visible {
  outline-color:var(--yellow)}
.emergency {
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr;
  gap:45px;
  padding-block:44px}
.emergency h2 {
  font-size:1.4rem;
  line-height:1.3;
  letter-spacing:-.025em}
.emergency>div>a:not(.emergency-number) {
  font-size:.75rem;
  display:inline-block;
  margin-top:13px}
.emergency-number {
  font-family:var(--display);
  display:inline-flex;
  gap:25px;
  align-items:center;
  font-size:1.8rem;
  text-decoration:none;
  line-height:1.2}
.emergency-number:hover {
  text-decoration:underline}
.emergency p {
  font-size:.78rem;
  color:var(--ink-soft);
  line-height:1.6;
  margin-top:9px}

.site-footer {
  border-top:1px solid var(--line)}
.footer-top {
  display:flex;
  align-items:center;
  gap:30px;
  padding-block:29px}
.footer-brand strong {
  font-size:1.45rem}
.footer-top>p {
  font-size:.78rem;
  color:var(--ink-soft)}
.footer-top nav {
  display:flex;
  gap:24px;
  margin-left:auto;
  font-size:.75rem}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-block:0 25px;
  font-size:.75rem;
  color:var(--ink-soft)}
.mobile-call {
  display:none}

.legal-header {
  padding-block:30px;
  border-bottom:1px solid var(--line)}
.legal-content {
  max-width:750px;
  padding-block:70px 100px;
  min-height:70vh}
.legal-content h1 {
  font-size:clamp(2.5rem,5vw,4rem);
  line-height:1.1;
  margin-block:24px}
.legal-content h2 {
  font-size:1.65rem;
  line-height:1.3;
  margin-top:38px;
  margin-bottom:16px}
.legal-content p+p {
  margin-top:18px}
.legal-content ul {
  padding-left:23px}
.legal-content .text-link {
  margin-top:24px}
.legal-page {
  padding-bottom:0;
}
.legal-content {
  overflow-wrap:break-word;
}
.legal-content li+li {
  margin-top:10px;
}
.legal-toc {
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  margin-block:28px;
  padding-block:12px;
  border-block:1px solid var(--line);
}
.legal-toc a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.legal-meta {
  margin-top:32px;
  color:var(--ink-soft);
}



.icon {
  width:24px;
  height:24px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.note-symbol .icon { width:20px; height:20px; }
summary>span { display:grid; place-items:center; }
.hero-portrait { align-self:end; padding-top:20px; }
.portrait-field { position:relative; background:var(--peach); border-radius:48% 48% 16px 16px; isolation:isolate; height:520px; }
.doctor-photo { position:absolute; height:540px; width:auto; max-width:105%; object-fit:contain; bottom:0; left:50%; transform:translateX(-50%); z-index:1; }
.portrait-sun { position:absolute; width:100px; top:-6px; right:-27px; transform:rotate(8deg); z-index:2; }
.portrait-sun svg { fill:var(--yellow); stroke:var(--ink); stroke-width:2; stroke-linecap:round; }
.portrait-label { position:absolute; z-index:3; bottom:31px; left:-29px; background:var(--paper); padding:13px 20px; transform:rotate(-5deg); font-family:var(--display); font-size:1rem; font-weight:600; border-radius:6px; }
.hero-portrait figcaption { display:flex; justify-content:space-between; gap:12px; font-size:.75rem; margin-top:14px; }
.hero-portrait figcaption>span { color:var(--ink-soft); }
.team-photo { --team-frame-offset:clamp(12px,1.4vw,20px); width:min(100%,356px); justify-self:center; }
.team-photo-frame { position:relative; isolation:isolate; }
.team-photo-frame::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:var(--team-frame-offset) calc(-1 * var(--team-frame-offset)) calc(-1 * var(--team-frame-offset)) var(--team-frame-offset);
  background:var(--peach);
  border-radius:16px;
  pointer-events:none;
}
.team-photo img { width:100%; border-radius:16px; }
.team-photo figcaption { font-size:.78rem; color:var(--ink-soft); margin-top:calc(14px + var(--team-frame-offset)); }
.team-intro { margin-top:30px; padding-top:27px; border-top:1px solid var(--line); }
.team-intro h3 { font-size:1.3rem; }
.team-intro p { margin-top:13px; font-size:.98rem; color:var(--ink-soft); }

@media(min-width:1500px) {
  .portrait-field { height:550px; }
  .doctor-photo { height:565px; }
  .hero {
  padding-top:65px}
.hero-grid {
  gap:65px}
.hero h1 {
  font-size:5.5rem}
}

@media(max-width:1150px) {
  .portrait-field { height:470px; }
  .doctor-photo { height:490px; }
  .portrait-sun { right:-16px; width:80px; }
  .hero-portrait figcaption { flex-direction:column; gap:0; }
  .container {
  width:calc(100% - 64px)}
.header-inner nav {
  gap:19px;
  font-size:.8rem}
.header-phone svg {
  display:none}
.brand strong {
  font-size:1.6rem}
.hero-grid {
  gap:32px}
.services,.faq-section {
  gap:60px}
.practice-grid {
  gap:65px}
.contact-grid {
  gap:55px}
.contact-secondary {
  font-size:.75rem}
.hours-strip {
  gap:17px}
.hours-group {
  padding-left:17px}
.acute-note>a {
  max-width:180px}
.hero h1 {
  font-size:6.15vw}
}

@media(max-width:900px) {
  .portrait-field { height:400px; }
  .doctor-photo { height:420px; }
  .portrait-label { font-size:.8rem; padding:10px 13px; left:-14px; bottom:22px; }
  html {
  scroll-padding-top:100px}
.header-inner {
  flex-wrap:wrap;
  gap:0;
  min-height:85px;
  padding-block:16px}
.header-inner nav {
  flex-basis:100%;
  justify-content:space-between;
  gap:12px;
  padding-top:13px}
.menu-toggle:not([hidden]) {
  display:inline-flex;
  margin-left:auto}
.js-nav .header-inner nav {
  display:none}
.js-nav .header-inner nav.is-open {
  display:flex;
  flex-wrap:wrap}
.js-nav .header-inner nav a {
  padding:12px 5px}
.hero {
  padding-top:40px}
.hero-grid {
  gap:24px}
.hero h1 {
  font-size:6.5vw}
.hero-description {
  font-size:.94rem;
  margin-block:24px}
.button {
  font-size:.8rem;
  padding-inline:18px;
  gap:20px}
.hours-strip {
  grid-template-columns:1fr 1fr 1.15fr;
  margin-top:38px;
  gap:22px}
.hours-intro {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  align-items:center}
.hours-intro p {
  margin:0}
.hours-group {
  border:0;
  padding:0}
.acute-note {
  flex-wrap:wrap;
  gap:10px 14px}
.acute-note p {
  flex:1}
.acute-note>a {
  max-width:none;
  flex-basis:calc(100% - 49px);
  margin-left:49px}
.section {
  padding-block:78px}
.services,.faq-section {
  gap:45px;
  grid-template-columns:.9fr 1.2fr}
.section-intro h2 {
  font-size:2.4rem}
.section-intro>p:not(.section-label) {
  font-size:.95rem}
.service-row {
  grid-template-columns:40px 1fr;
  gap:15px}
.service-symbol {
  width:39px;
  height:39px;
  font-size:1.6rem}
.service-row h3 {
  font-size:1.25rem}
.service-row p {
  font-size:.87rem}
.service-details .detail-body {
  padding-left:0}
.practice-grid {
  gap:40px}
.practice-copy h2 {
  font-size:2.2rem}
.practice {
  padding-block:65px}
.practice-copy>p:not(.section-label):not(.signature) {
  font-size:.9rem}
.contact-grid {
  gap:30px;
  grid-template-columns:1.1fr 1fr}
.address-panel {
  padding-left:28px}
.contact h2 {
  font-size:2.6rem}
.contact-number {
  font-size:2.3rem;
  gap:15px}
.contact-secondary {
  flex-direction:column;
  gap:6px}
.emergency {
  gap:25px;
  grid-template-columns:1fr 1fr}
.emergency>div:first-child {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px}
.emergency>div>a:not(.emergency-number) {
  margin:0}
.footer-top {
  flex-wrap:wrap;
  gap:15px}
.footer-top>p {
  flex:1}
.footer-top nav {
  width:100%;
  margin:0}
.footer-bottom {
  flex-direction:column;
  gap:8px}
}

@media(max-width:640px) {
  .hero-portrait { width:min(100% - 22px,360px); justify-self:center; padding-top:0; margin-top:40px; }
  .portrait-field { height:360px; }
  .doctor-photo { height:378px; max-width:110%; }
  .portrait-sun { width:72px; right:-20px; top:5px; }
  .portrait-label { bottom:25px; left:-20px; font-size:.84rem; padding:10px 15px; }
  .hero-portrait figcaption { flex-direction:row; gap:8px; }
  .team-photo { align-self:center; }
  .team-intro p { font-size:.97rem; }
  html {
  scroll-padding-top:96px}
.container {
  width:calc(100% - 48px)}
body {
  font-size:16px;
  padding-bottom:72px}
.header-inner {
  min-height:83px}
.brand strong {
  font-size:1.55rem}
.brand small {
  font-size:.75rem}
.brand {
  gap:10px}
.menu-toggle {
  font-size:.77rem;
  padding:8px 10px;
  min-height:42px}
.header-inner nav {
  justify-content:flex-start;
  gap:0 23px;
  font-size:.84rem}
.header-inner nav .header-phone {
  flex-basis:100%;
  border-top:1px solid var(--line);
  padding-top:15px}
.hero {
  padding-top:30px}
.hero-grid {
  grid-template-columns:1fr;
  gap:0}
.hero-copy {
  padding-bottom:0}
.hero h1 {
  font-size:clamp(2.6rem,10.7vw,4.1rem);
  line-height:1.06;
  letter-spacing:-.035em}
.hero-description {
  font-size:1rem;
  max-width:380px;
  margin-top:23px;
  margin-bottom:23px;
  line-height:1.65}
.hero .button {
  font-size:.88rem;
  gap:32px;
  min-height:54px}
.hero-note {
  margin-top:13px;
  font-size:.75rem}
.hours-strip {
  grid-template-columns:1fr;
  gap:0;
  margin-top:28px;
  padding-block:22px}
.hours-intro {
  display:block;
  margin-bottom:17px}
.hours-intro h2 {
  font-size:1.2rem}
.hours-intro p {
  font-size:.8rem;
  margin-top:5px}
.hours-group {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:14px;
  padding-block:11px;
  border-top:1px solid #ccd5ca;
  font-size:.85rem}
.hours-group dt {
  margin:0}
.acute-note {
  padding-block:22px;
  gap:9px 12px;
  align-items:flex-start;
  font-size:.83rem}
.note-symbol {
  width:29px;
  height:29px;
  margin-top:4px}
.acute-note strong {
  display:block}
.acute-note>a {
  flex-basis:calc(100% - 41px);
  margin-left:41px;
  font-size:.75rem}
.section {
  padding-block:64px}
.services,.faq-section {
  grid-template-columns:1fr;
  gap:36px}
.section-label {
  font-size:.78rem;
  margin-bottom:18px}
.section-intro h2 {
  font-size:2.5rem}
.section-intro>p:not(.section-label) {
  max-width:100%;
  margin-top:20px;
  font-size:1rem}
.service-row {
  grid-template-columns:45px 1fr;
  gap:18px;
  padding-block:23px}
.service-symbol {
  width:43px;
  height:43px;
  font-size:1.7rem}
.service-row h3 {
  font-size:1.3rem}
.service-row p {
  font-size:.94rem;
  margin-top:9px}
.service-details summary {
  font-size:.84rem}
.detail-body {
  font-size:.94rem;
  padding-right:14px}
.practice {
  padding-block:58px}
.practice-grid {
  display:flex;
  flex-direction:column-reverse;
  gap:37px}
.practice-copy h2 {
  font-size:2.5rem}
.practice-copy>p:not(.section-label):not(.signature) {
  font-size:.97rem;
  margin-top:20px}
.practice-copy .signature {
  font-size:1rem;
  margin-top:19px}
.faq-section {
  gap:28px}
.faq-list summary {
  font-size:.96rem;
  padding-block:22px;
  gap:20px}
.section-intro>.text-link {
  margin-top:18px}
.contact {
  padding-top:55px}
.contact-grid {
  grid-template-columns:1fr;
  gap:38px}
.contact h2 {
  font-size:2.7rem}
.contact-number {
  font-size:2.5rem;
  gap:25px;
  margin-top:26px}
.contact-main>p:not(.section-label) {
  font-size:.81rem}
.address-panel {
  border-left:0;
  border-top:1px solid #5a7164;
  padding:29px 0 0}
.address-panel h3 {
  font-size:1.6rem}
.address-panel address {
  margin-top:16px}
.address-panel>p {
  font-size:.85rem}
.contact-secondary {
  margin-top:30px;
  font-size:.75rem;
  gap:12px}
.emergency {
  padding-block:34px;
  gap:27px 17px;
  grid-template-columns:1fr 1fr}
.emergency>div:first-child {
  display:block}
.emergency h2 {
  font-size:1.35rem}
.emergency>div>a:not(.emergency-number) {
  margin-top:10px}
.emergency p {
  font-size:.75rem}
.emergency-number {
  font-size:1.7rem;
  gap:20px}
.footer-top {
  padding-block:25px;
  gap:20px}
.footer-top>p {
  flex-basis:100%;
  order:2;
  font-size:.75rem}
.footer-top nav {
  width:auto;
  margin-left:auto;
  font-size:.75rem;
  gap:15px}
.footer-brand strong {
  font-size:1.2rem}
.footer-bottom {
  font-size:.75rem;
  gap:10px;
  padding-bottom:30px}
.mobile-call {
  display:flex;
  position:fixed;
  z-index:25;
  bottom:0;
  left:0;
  right:0;
  min-height:65px;
  padding:15px 24px max(15px,env(safe-area-inset-bottom));
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:var(--ink);
  color:var(--white);
  text-decoration:none;
  font-size:.86rem;
  font-weight:600;
  border-top:1px solid #637469}
.mobile-call span {
  color:var(--yellow);
  white-space:nowrap}
.mobile-call:focus-visible {
  outline-offset:-6px;
  outline-color:var(--yellow)}
.legal-content {
  padding-block:45px 70px}
.legal-content h1 {
  font-size:2.7rem;
  overflow-wrap:anywhere}
}

@media(max-width:359px) {
  .portrait-field { height:305px; }
  .doctor-photo { height:325px; }
  .portrait-label { font-size:.75rem; }
  .hero-portrait figcaption { flex-direction:column; }
  .container {
  width:calc(100% - 36px)}
.brand small {
  font-size:.75rem}
.brand strong {
  font-size:1.3rem}
.contact-number {
  font-size:2.2rem}
.mobile-call {
  padding-inline:18px;
  font-size:.76rem}
.section-intro h2,.practice-copy h2 {
  font-size:2.2rem}
}

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

@media print {
  .team-photo { --team-frame-offset:0px; }
  .team-photo-frame::before { display:none; }
  .portrait-field { height:300px; }
  .doctor-photo { height:310px; }
  .portrait-sun,.portrait-label { display:none; }
  .site-header,.mobile-call,.menu-toggle {
  display:none}
body {
  padding:0;
  color:#000;
  background:#fff;
  font-size:11pt}
.container {
  width:100%}
.hero,.contact,.practice {
  background:#fff;
  color:#000;
  padding-block:20px}
.section {
  padding-block:24px}
.hero h1 {
  font-size:36pt}
.button {
  background:#fff;
  color:#000;
  border:1px solid #000}
.hours-strip {
  margin-top:20px}
.contact p,.contact .section-label,.contact-secondary {
  color:#000}
.detail-body {
  display:block}
.contact,.emergency,.hours-strip {
  break-inside:avoid}
.footer-bottom {
  display:none}
}

