/* Consolidated production styles: shared values live in design-tokens.css. */

:root {
  --forest: var(--color-forest);
  --forest-dark: var(--color-forest-deep);
  --ink: var(--color-ink);
  --muted: var(--color-text-muted);
  --cream: var(--color-surface-cream);
  --paper: var(--color-surface-paper);
  --lav: var(--color-surface-lavender);
  --rose: var(--color-surface-coral);
  --max: 1180px;
  --sans: "Trebuchet MS","Segoe UI",ui-sans-serif,sans-serif;
  --serif: Georgia,"Times New Roman",serif;
  --coral: var(--color-border-coral-01);
  --lavender: var(--color-text-lavender-01);
  --sage: var(--color-surface-neutral-11);
  --line: var(--color-surface-neutral-12)
}
* {
  box-sizing: border-box
}
html {
  scroll-behavior: smooth
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 17px/1.65 var(--sans);
  -webkit-font-smoothing: antialiased
}
img,svg {
  display: block;
  max-width: 100%
}
a {
  color: inherit
}
button,input,select,textarea {
  font: inherit;
  color: inherit
}
.wrap {
  width: min(100% - 64px,var(--max));
  margin: auto
}
.skip {
  position: fixed;
  top: -90px;
  left: 16px;
  z-index: 1000;
  background: var(--color-on-dark);
  padding: 10px 14px;
  border: 2px solid var(--forest)
}
.skip:focus {
  top: 16px
}
:is(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--color-text-sage-01);
  outline-offset: 4px
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--color-overlay-1);
  border-bottom: 1px solid var(--line)
}
.header-inner {
  min-height: 84px;
  justify-content: space-between;
  gap: 26px;
  position: relative
}
.brand,.header-inner {
  display: flex;
  align-items: center
}
.brand {
  gap: 11px;
  text-decoration: none
}
.brand-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.04
}
.brand-copy strong {
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: -.02em
}
.brand-copy small {
  margin-top: 6px;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 800
}
.site-header nav {
  display: flex;
  align-items: center;
  gap: 22px
}
.site-header nav a {
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  padding: 9px 0;
  border-bottom: 2px solid transparent
}
.site-header nav a:hover,.site-header nav a[aria-current=page] {
  border-color: var(--forest)
}
.site-header nav .nav-appointment {
  background: var(--forest);
  color: var(--color-on-dark);
  border: 0;
  border-radius: 8px;
  padding: 12px 16px
}
.site-header nav .nav-appointment:hover,.site-header nav .nav-appointment[aria-current=page] {
  background: var(--forest-dark);
  border: 0
}
.menu-toggle {
  display: none;
  border: 0;
  background: var(--sage);
  padding: 10px 12px;
  border-radius: 9px;
  align-items: center;
  gap: 10px;
  cursor: pointer
}
.menu-icon {
  width: 19px;
  height: 14px;
  border-top: 2px solid;
  border-bottom: 2px solid;
  position: relative
}
.menu-icon:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 5px;
  border-top: 2px solid
}
.eyebrow {
  margin: 0 0 13px;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 800;
  color: var(--color-text-sage-02)
}
.eyebrow.light {
  color: var(--color-surface-neutral-01)
}
h1,h2,h3,p {
  margin-top: 0
}
h1,h2,h3 {
  line-height: 1.08;
  letter-spacing: -.035em
}
h1,h2 {
  font-family: var(--serif);
  font-weight: 600
}
h1 {
  font-size: calc(clamp(48px,5.6vw,74px));
  margin-bottom: 24px
}
h2 {
  font-size: calc(clamp(34px,3.8vw,50px));
  margin-bottom: 18px
}
h3 {
  font-size: 22px;
  margin-bottom: 10px
}
.light-link,.text-link {
  display: inline-block;
  text-decoration: none;
  font-weight: 800;
  border-bottom: 1px solid;
  padding-bottom: 3px
}
.button.primary,.light-link {
  color: var(--color-on-dark)
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 20px;
  border-radius: 8px;
  border: 1px solid transparent;
  text-decoration: none;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.3;
  cursor: pointer
}
.button.primary {
  background: var(--forest)
}
.button.primary:hover {
  background: var(--forest-dark)
}
.button.secondary {
  border-color: var(--forest);
  color: var(--forest);
  background: transparent
}
.button.secondary:hover {
  background: var(--sage)
}
.button.inverse {
  background: var(--color-on-dark);
  color: var(--forest-dark)
}
.button.full {
  width: 100%
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center
}
.hero-copy h1 {
  max-width: 690px
}
.hero-lede {
  font-size: 20px;
  line-height: 1.65;
  color: var(--color-text-sage-03);
  max-width: 620px;
  margin-bottom: 30px
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap
}
.hero-brand-art {
  margin: 0;
  flex-direction: column
}
.hero-brand-art,.mark-field {
  display: flex;
  align-items: center;
  justify-content: center
}
.mark-field {
  aspect-ratio: 1
}
.hero-brand-art figcaption {
  width: min(390px,100%);
  padding: 16px 4px 0
}
.hero-brand-art span,.hero-brand-art strong {
  display: block
}
.hero-brand-art strong {
  font-family: var(--serif)
}
.hero-brand-art span {
  color: var(--muted);
  margin-top: 4px
}
.home-fit-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 88px;
  align-items: start
}
.fit-list,.service-columns {
  border-top: 1px solid var(--forest)
}
.fit-list>div {
  border-bottom: 1px solid var(--line);
  display: grid
}
.fit-list p,.fit-list strong {
  font-size: 15px
}
.fit-list p {
  margin: 0;
  color: var(--color-text-sage-04)
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 34px
}
.section-heading h2 {
  margin-bottom: 0
}
.service-columns {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border-bottom: 1px solid var(--line)
}
.service-columns article {
  padding: 30px 28px 28px 0
}
.service-columns article+article {
  border-left: 1px solid var(--line);
  padding-left: 28px
}
.service-columns p {
  font-size: 15px;
  color: var(--color-text-sage-04);
  margin-bottom: 0
}
.about-preview {
  color: var(--color-on-dark)
}
.about-preview-grid {
  display: grid
}
.about-preview-grid h2 {
  margin-bottom: 0
}
.about-preview-grid>div:last-child p {
  color: var(--color-surface-neutral-02);
  max-width: 620px
}
.area-preview-grid {
  display: grid
}
.area-preview-grid>div:last-child p {
  color: var(--color-text-sage-04);
  font-size: 17px
}
.final-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px
}
.final-cta-inner h2 {
  font-size: 38px;
  margin-bottom: 10px
}
.final-cta-inner p:not(.eyebrow) {
  margin-bottom: 0;
  max-width: 670px
}
.final-cta .eyebrow.light {
  color: var(--color-text-sage-05)
}
.page-hero {
  padding: 68px 0 58px;
  border-bottom: 1px solid var(--line)
}
.page-hero.compact {
  padding-bottom: 48px
}
.page-lede {
  font-size: 20px;
  line-height: 1.65;
  color: var(--color-text-sage-04);
  max-width: 800px;
  margin-bottom: 0
}
.service-details {
  padding: 22px 0 70px
}
.service-row {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 80px;
  padding: 44px 0;
  border-bottom: 1px solid var(--line)
}
.service-row h2 {
  font-size: 37px
}
.service-row>div:first-child>p:not(.eyebrow) {
  font-size: 17px;
  color: var(--color-text-sage-04)
}
.service-row>div:last-child {
  padding-top: 8px
}
.service-row h3 {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--forest);
  margin: 0 0 6px
}
.service-row>div:last-child p {
  font-size: 15px;
  color: var(--color-text-neutral-02);
  margin: 0 0 20px
}
.medical-note {
  padding: 48px 0;
  background: var(--sage)
}
.medical-note-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 70px;
  align-items: center
}
.medical-note h2 {
  font-size: 32px;
  margin: 0
}
.medical-note p {
  margin: 0;
  color: var(--color-text-sage-06)
}
.about-page {
  padding: 66px 0 76px
}
.about-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 82px;
  align-items: center
}
.about-photo {
  margin: 0;
  max-width: 480px
}
.portrait-frame {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--lav);
  border: 12px solid var(--lav)
}
.portrait-frame img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 133.4%;
  height: auto;
  max-width: none;
  transform: translate(-50%,-50%) rotate(90deg)
}
.about-photo figcaption {
  font-size: 12px;
  color: var(--muted);
  padding-top: 10px
}
.about-copy h2 {
  font-size: 48px
}
.lead-copy {
  font-size: 20px;
  color: var(--forest);
  font-weight: 700
}
.about-copy>p:not(.eyebrow):not(.lead-copy),.area-grid>div>p:not(.eyebrow) {
  color: var(--color-text-sage-04)
}
.about-copy blockquote {
  margin: 28px 0 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--forest);
  font-family: var(--serif);
  font-size: 25px;
  line-height: 1.45
}
.area-page {
  padding: 66px 0
}
.area-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 78px;
  align-items: start
}
.area-grid h2 {
  font-size: 40px
}
.county-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--forest)
}
.county-list li {
  border-bottom: 1px solid var(--line);
  font-size: 17px
}
.area-question {
  padding: 0 0 64px
}
.area-question-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 30px 34px;
  background: var(--lav);
  border-radius: 12px
}
.area-question-inner h2 {
  font-size: 29px;
  margin-bottom: 6px
}
.area-question-inner p {
  margin-bottom: 0;
  color: var(--color-text-neutral-03)
}
.appointment-page {
  padding: 58px 0 70px
}
.appointment-grid {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 64px;
  align-items: start
}
.appointment-aside {
  position: sticky;
  top: 114px;
  padding: 28px;
  border-radius: 12px
}
.appointment-aside h2 {
  font-size: 30px
}
.appointment-aside p:not(.eyebrow) {
  font-size: 15px;
  color: var(--color-text-sage-04)
}
.mini-contact {
  border-top: 1px solid var(--color-border-neutral-01);
  margin-top: 24px;
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px
}
.mini-contact span {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 800;
  color: var(--muted)
}
.mini-contact a {
  font-weight: 800;
  text-decoration: none
}
.appointment-form {
  background: var(--color-on-dark);
  border: 1px solid var(--line);
  padding: 34px
}
.form-heading h2 {
  font-size: 32px;
  margin-bottom: 8px
}
.form-heading p {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 26px
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 18px
}
.appointment-form label {
  display: block;
  font-size: 13px;
  font-weight: 750;
  margin-bottom: 18px
}
.appointment-form label>span {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  font-weight: 700;
  margin-left: 5px
}
.appointment-form input,.appointment-form select,.appointment-form textarea {
  display: block;
  width: 100%;
  margin-top: 7px;
  border: 1px solid var(--color-border-neutral-02);
  background: var(--color-surface-neutral-03);
  border-radius: 7px;
  padding: 12px 13px;
  font-size: 16px
}
.appointment-form input,.appointment-form select {
  min-height: 49px
}
.appointment-form textarea {
  resize: vertical
}
.appointment-form input:focus,.appointment-form select:focus,.appointment-form textarea:focus {
  border-color: var(--forest);
  outline: none;
  box-shadow: 0 0 0 3px var(--color-overlay-2)
}
.privacy-note {
  font-size: 12px;
  color: var(--color-text-neutral-04);
  background: var(--sage);
  padding: 12px 14px;
  margin: 4px 0 18px;
  border-radius: 6px
}
.form-error,.form-status {
  font-size: 13px
}
.form-error:empty,.form-status:empty {
  display: none
}
.form-error {
  color: var(--color-text-coral-01)
}
.form-status {
  background: var(--sage);
  padding: 13px 14px;
  color: var(--forest-dark)
}
.form-help {
  font-size: 14px;
  color: var(--muted);
  margin: 12px 0 0;
  text-align: center
}
.hp {
  position: absolute!important;
  left: -1e4px!important;
  width: 1px!important;
  height: 1px!important;
  overflow: hidden!important
}
.contact-page {
  padding: 60px 0 68px
}
.contact-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 80px;
  align-items: start
}
.contact-lead h2 {
  font-size: 42px
}
.contact-lead>p:not(.eyebrow) {
  color: var(--color-text-sage-04)
}
.contact-methods,.visit-settings article {
  border-top: 1px solid var(--forest)
}
.contact-methods>div {
  border-bottom: 1px solid var(--line)
}
.contact-methods span {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 800;
  color: var(--muted);
  margin-bottom: 6px
}
.contact-methods>a,.contact-methods>div>a {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  text-decoration: none;
  overflow-wrap: anywhere
}
.contact-actions {
  display: flex;
  gap: 10px;
  margin-top: 14px
}
.contact-actions .button {
  font-family: var(--sans);
  font-size: 13px
}
.contact-appointment {
  padding: 0 0 64px
}
.contact-appointment-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 30px 34px;
  background: var(--lav);
  border-radius: 12px
}
.contact-appointment-inner h2 {
  font-size: 29px;
  margin-bottom: 6px
}
.contact-appointment-inner p {
  margin: 0;
  color: var(--color-text-neutral-05)
}
.visit-settings {
  padding: 62px 0
}
.visit-settings-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px
}
.faq-list details>div,.prose p,.visit-flow li span,.visit-settings p:not(.eyebrow) {
  color: var(--color-text-sage-04)
}
.visit-flow {
  padding: 0 0 68px
}
.visit-flow h2 {
  font-size: 38px
}
.visit-flow ol {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  border-top: 1px solid var(--forest)
}
.visit-flow li {
  grid-template-columns: 190px 1fr;
  border-bottom: 1px solid var(--line)
}
.visit-flow li span,.visit-flow li strong {
  font-size: 15px
}
.faq-page {
  padding: 58px 0 70px
}
.faq-list details {
  border-top: 1px solid var(--line)
}
.faq-list details:last-child {
  border-bottom: 1px solid var(--line)
}
.faq-list summary {
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 21px 0;
  font-family: var(--serif);
  font-weight: 600;
  cursor: pointer
}
.faq-list summary::-webkit-details-marker {
  display: none
}
.faq-list summary span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  background: var(--sage);
  border-radius: 50%;
  font-family: var(--sans);
  font-size: 17px;
  flex-shrink: 0
}
.faq-list details[open] summary span {
  transform: rotate(45deg)
}
.faq-list details>div {
  padding: 0 60px 20px 0
}
.privacy-page {
  padding: 58px 0 72px
}
.prose {
  max-width: 70ch
}
.prose h2 {
  font-size: 29px;
  margin-top: 34px
}
.prose h2:first-child {
  margin-top: 0
}
.prose a {
  font-weight: 800
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.25fr .8fr 1fr .95fr;
  gap: 46px;
  padding-bottom: 38px
}
.footer-branding img {
  margin-bottom: 13px
}
.footer-branding p {
  font-size: 13px;
  color: var(--color-border-neutral-03);
  max-width: 260px
}
.footer-grid h2 {
  font-family: var(--sans);
  text-transform: uppercase;
  margin-bottom: 14px
}
.footer-grid>div>a {
  display: block;
  text-decoration: none;
  color: var(--color-border-neutral-04);
  margin: 7px 0
}
.footer-bottom {
  border-top: 1px solid var(--color-overlay-3);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  font-size: 12px;
  color: var(--color-border-neutral-05)
}
@media(max-width:1050px) {
.wrap {
  width: min(100% - 48px,var(--max))
}
.site-header nav {
  gap: 14px
}
.site-header nav a {
  font-size: 12px
}
.about-grid,.about-preview-grid,.appointment-grid,.area-grid,.area-preview-grid,.contact-grid,.hero-grid,.home-fit-grid,.medical-note-grid,.service-row {
  gap: 48px
}
.footer-grid {
  gap: 28px
}
}
@media(max-width:880px) {
.header-inner {
  min-height: 78px
}
.menu-toggle {
  display: flex
}
.site-header nav {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: var(--paper);
  padding: 12px 22px 18px;
  box-shadow: 0 16px 28px var(--color-overlay-4);
  border-top: 1px solid var(--line);
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  z-index: 60
}
.site-header nav.is-open {
  display: flex
}
.site-header nav a {
  font-size: 15px;
  padding: 11px 2px;
  border-bottom: 1px solid var(--line)
}
.site-header nav .nav-appointment {
  order: 10;
  margin-top: 10px;
  text-align: center;
  padding: 12px
}
.about-grid,.about-preview-grid,.appointment-grid,.area-grid,.area-preview-grid,.contact-grid,.hero-grid,.home-fit-grid,.medical-note-grid,.service-columns,.service-row {
  grid-template-columns: 1fr
}
.hero-brand-art {
  max-width: 460px
}
.service-columns article {
  padding: 24px 0
}
.service-columns article+article {
  border-left: 0;
  border-top: 1px solid var(--line);
  padding-left: 0
}
.about-preview-grid,.area-preview-grid {
  gap: 24px
}
.appointment-aside {
  position: static
}
.footer-grid {
  grid-template-columns: 1fr 1fr
}
.visit-settings-grid {
  grid-template-columns: 1fr
}
.area-question-inner,.contact-appointment-inner,.final-cta-inner {
  align-items: flex-start;
  flex-direction: column
}
}
@media(max-width:640px) {
body {
  font-size: 16px
}
.wrap {
  width: calc(100% - 34px)
}
.brand-copy strong {
  font-size: 18px
}
.menu-toggle {
  padding: 10px 11px
}
.hero-grid {
  grid-template-columns: 1fr
}
.hero-copy h1 {
  line-height: 1.04
}
.hero-lede {
  font-size: 17px
}
.hero-actions {
  align-items: flex-start;
  gap: 16px
}
.hero-actions .button {
  width: 100%
}
.hero-brand-art figcaption,.mark-field {
  width: min(330px,100%)
}
.home-fit {
  padding: 54px 0
}
.home-fit-grid {
  gap: 18px
}
.about-preview h2,.area-preview h2,.home-fit h2,.section-heading h2 {
  font-size: 34px
}
.services-preview {
  padding-bottom: 56px
}
.section-heading {
  align-items: flex-start;
  flex-direction: column;
  gap: 12px
}
.service-columns article {
  padding: 21px 0
}
.about-preview {
  padding: 50px 0
}
.about-preview-grid>div:last-child p,.area-preview-grid>div:last-child p {
  font-size: 16px
}
.final-cta-inner {
  display: flex
}
.final-cta-inner h2 {
  font-size: 33px
}
.page-hero {
  padding: 44px 0 38px
}
.page-hero h1 {
  font-size: 40px
}
.page-lede {
  font-size: 17px
}
.service-details {
  padding-top: 10px
}
.service-row {
  padding: 32px 0;
  gap: 18px
}
.service-row h2 {
  font-size: 31px
}
.medical-note {
  padding: 38px 0
}
.medical-note h2 {
  font-size: 29px
}
.about-page {
  padding: 46px 0 54px
}
.about-photo {
  max-width: 400px
}
.portrait-frame {
  border-width: 9px
}
.about-copy h2 {
  font-size: 38px
}
.lead-copy {
  font-size: 18px
}
.area-page {
  padding: 46px 0
}
.area-grid h2 {
  font-size: 34px
}
.county-list li {
  font-size: 16px;
  padding: 14px 6px
}
.area-question {
  padding-bottom: 46px
}
.area-question-inner {
  padding: 24px
}
.appointment-page {
  padding: 42px 0 52px
}
.appointment-aside,.appointment-form {
  padding: 22px
}
.appointment-aside h2 {
  font-size: 28px
}
.footer-grid,.form-grid,.visit-flow li {
  grid-template-columns: 1fr
}
.contact-page {
  padding: 44px 0 52px
}
.contact-lead h2 {
  font-size: 34px
}
.contact-methods>div>a {
  font-size: 22px
}
.contact-appointment {
  padding-bottom: 46px
}
.contact-appointment-inner {
  padding: 24px
}
.visit-settings {
  padding: 44px 0
}
.visit-settings article {
  padding: 26px 0
}
.visit-flow {
  padding-bottom: 50px
}
.visit-flow h2 {
  font-size: 32px
}
.visit-flow li {
  gap: 4px;
  padding: 16px 0
}
.faq-page,.privacy-page {
  padding: 42px 0 54px
}
.faq-list summary {
  font-size: 19px
}
.faq-list details>div {
  padding-right: 0
}
.footer-grid {
  gap: 22px
}
.site-footer {
  padding-top: 36px
}
.footer-bottom {
  flex-direction: column;
  gap: 5px
}
.site-header nav {
  padding: 10px 17px 16px
}
.site-header nav a {
  font-size: 15px;
  padding: 10px 2px
}
}
@media(max-width:380px) {
.wrap {
  width: calc(100% - 28px)
}
.brand-copy strong {
  font-size: 17px
}
.hero-copy h1,.page-hero h1 {
  font-size: 37px
}
}
@media(prefers-reduced-motion:reduce) {
* {
  transition: none!important
}
}
.visit-pricing {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 54px;
  align-items: start;
  padding: 38px 40px;
  margin: 22px 0 52px;
  border-radius: 12px
}
.visit-pricing h2 {
  font-size: 30px;
  margin: 0 0 14px
}
.visit-pricing p {
  margin-top: 0
}
.visit-price {
  margin-bottom: 0;
  font-size: 60px;
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -2px;
  color: var(--forest)
}
.visit-price span {
  display: block;
  font-size: 16px;
  letter-spacing: 0;
  font-weight: 400;
  margin-top: 10px
}
.pricing-detail {
  font-size: 15px;
  color: var(--muted);
  margin-bottom: 0;
  max-width: 70ch
}
.service-menu-item {
  border-bottom: 1px solid var(--line)
}
.appointment-pricing,.service-menu-item:first-of-type {
  border-top: 1px solid var(--line)
}
.service-menu-item summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  cursor: pointer
}
.service-menu-item summary::-webkit-details-marker {
  display: none
}
.service-menu-item h3 {
  margin: 0 0 8px
}
.service-summary {
  display: block;
  color: var(--muted)
}
.service-toggle {
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-weight: 600
}
.service-menu-content ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 46px;
  row-gap: 8px;
  padding-left: 22px;
  margin: 0
}
.service-referral {
  margin: 20px 0 0;
  color: var(--muted);
  font-size: 15px;
  max-width: 70ch
}
.appointment-pricing {
  padding-top: 20px
}
.appointment-pricing a {
  display: inline-block;
  margin-top: 10px
}
@media(max-width:640px) {
.visit-pricing {
  grid-template-columns: 1fr;
  gap: 20px;
  padding: 26px 22px;
  margin: 10px 0 36px
}
.visit-pricing h2 {
  font-size: 27px
}
.visit-price {
  font-size: 50px
}
.visit-price span {
  display: inline-block;
  margin-left: 14px
}
.service-menu-item summary {
  gap: 16px
}
.service-menu-content ul {
  grid-template-columns: 1fr;
  row-gap: 9px
}
.brand-copy small {
  font-size: 11px
}
}
.visit-pricing>div:last-child {
  max-width: 70ch
}
@media(max-width:380px) {
.brand-copy small {
  font-size: 11px
}
}
.mark-field {
  background: transparent;
  border-radius: 0
}
.mark-field img {
  width: 94%;
  height: auto;
  object-fit: contain
}
.footer-branding img {
  height: auto
}
.service-toggle:before {
  content: "+";
  font-size: 23px;
  line-height: 1;
  display: block
}
.service-menu-item[open] .service-toggle:before {
  content: "−";
  font-size: 23px
}
.appointment-form input[type=date],.appointment-form input[type=time] {
  color-scheme: light;
  cursor: pointer
}
@media(max-width:640px) {
.mark-field img {
  width: 100%
}
}
.site-header nav .nav-appointment {
  order: 99
}
.service-toggle {
  position: relative;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  font-size: 0;
  background: var(--color-surface-neutral-07);
  border: 1px solid var(--color-surface-neutral-08);
  color: var(--forest);
  transition: background .18s,border-color .18s
}
.service-toggle:after {
  content: "+";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 22px;
  line-height: 1;
  transform: translateY(-1px)
}
.service-menu-item[open] .service-toggle {
  transform: none;
  background: var(--color-surface-neutral-09);
  border-color: var(--color-border-neutral-06)
}
.service-menu-item[open] .service-toggle:after {
  content: "−";
  font-size: 24px;
  transform: translateY(-2px)
}
.service-menu-item summary:hover .service-toggle {
  background: var(--color-surface-neutral-10);
  border-color: var(--color-border-sage-01)
}
.preferred-datetime,.preferred-datetime input[type=date],.preferred-datetime input[type=time],[aria-expanded]:not(:disabled),[role=button]:not([aria-disabled=true]),button:not(:disabled),details>summary,details>summary *,select:not(:disabled) {
  cursor: pointer
}
.footer-branding img {
  border-radius: 8px;
  background: transparent;
  padding: 8px
}
.brand-art {
  position: relative;
  overflow: hidden;
  width: 54px;
  height: 54px;
  flex: 0 0 54px
}
.brand-art img {
  position: absolute;
  max-width: none;
  width: 72px;
  height: 72px;
  left: -9px;
  top: -2px;
  object-fit: contain;
  clip-path: inset(0 0 25.5% 0)
}
@media(max-width:640px) {
.brand-art {
  width: 46px;
  height: 46px;
  flex-basis: 46px
}
.brand-art img {
  width: 61.33px;
  height: 61.33px;
  left: -7.67px;
  top: -1.7px
}
}
button:disabled,select:disabled {
  cursor: not-allowed
}
.site-footer {
  color: var(--forest-dark)
}
.footer-bottom,.footer-branding p,.footer-grid>div>a {
  color: var(--muted)
}
.footer-grid a:hover {
  color: var(--forest)
}
.footer-bottom {
  border-top-color: var(--line);
  flex-wrap: wrap
}
.site-header {
  box-shadow: 0 4px 24px var(--color-shadow-shadow-01);
  backdrop-filter: blur(12px)
}
.button,.nav-appointment {
  box-shadow: 0 6px 16px var(--color-shadow-shadow-02);
  transition: transform .2s,box-shadow .2s,background .2s
}
.button:hover,.nav-appointment:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px var(--color-shadow-shadow-03)
}
.home-hero {
  position: relative;
  overflow: hidden;
  background: radial-gradient(ellipse at 95% 12%,var(--color-surface-neutral-13) 0,transparent 46%),radial-gradient(ellipse at 10% 95%,var(--color-surface-neutral-14) 0,transparent 48%),var(--cream);
  padding: 86px 0 90px;
  border-bottom: 1px solid var(--color-surface-neutral-15)
}
.hero-grid {
  gap: 58px
}
.hero-copy h1 {
  font-size: calc(clamp(48px,5.4vw,72px))
}
.hero-copy:before {
  content: "CARE THAT COMES TO YOU";
  display: block;
  color: var(--lavender);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .17em;
  margin-bottom: 22px
}
.hero-brand-art {
  position: relative;
  background: var(--color-shadow-shadow-04);
  border: 1px solid var(--color-shadow-shadow-05);
  border-radius: 48% 48% 24px 24px;
  padding: 30px 22px 24px;
  box-shadow: 0 20px 60px var(--color-shadow-shadow-06)
}
.hero-brand-art:before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid var(--color-shadow-shadow-07);
  border-radius: 48% 48% 18px 18px;
  pointer-events: none
}
.mark-field {
  width: min(420px,100%)
}
.hero-brand-art figcaption {
  text-align: center;
  position: relative;
  padding-top: 20px
}
.hero-brand-art strong {
  font-size: 24px
}
.hero-brand-art span {
  font-size: 13px
}
.home-fit {
  padding: 78px 0;
  background: var(--paper)
}
.fit-list {
  border: 0;
  display: grid;
  gap: 14px
}
.fit-list>div {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 20px 22px;
  background: var(--color-surface-neutral-16);
  grid-template-columns: 150px 1fr;
  gap: 18px
}
.fit-list>div:nth-child(2) {
  border-left-color: var(--color-border-lavender-02);
  background: var(--color-surface-neutral-17)
}
.fit-list>div:nth-child(3) {
  border-left-color: var(--coral);
  background: var(--color-surface-cream-02)
}
.services-preview {
  background: linear-gradient(180deg,var(--paper),var(--color-surface-neutral-18));
  padding: 18px 0 82px
}
.service-columns {
  border: 0;
  gap: 22px
}
.service-columns article,.service-columns article+article {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
  padding: 30px;
  box-shadow: 0 8px 24px var(--color-shadow-shadow-08);
  transition: transform .2s,box-shadow .2s
}
.service-columns article:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px var(--color-shadow-shadow-09)
}
.service-columns article:before {
  content: "";
  display: block;
  width: 44px;
  height: 44px;
  margin-bottom: 24px;
  border-radius: 14px;
  background: #e3eadc url("assets/care-nails.svg") 50%/25px no-repeat
}
.service-columns article:nth-child(2):before {
  background-color: var(--color-surface-cream-03);
  background-image: url("assets/care-skin.svg")
}
.service-columns article:nth-child(3):before {
  background-color: var(--color-surface-neutral-19);
  background-image: url("assets/care-preventive.svg")
}
.service-columns h3 {
  font-family: var(--serif);
  font-size: 28px
}
.about-preview {
  background: radial-gradient(ellipse at top right,var(--color-text-sage-07),var(--forest-dark));
  padding: 78px 0
}
.about-preview-grid {
  grid-template-columns: .8fr 1.2fr;
  gap: 76px;
  align-items: center
}
.home-jamie {
  margin: 0
}
.home-jamie .portrait-frame {
  max-width: 330px;
  border: 9px solid var(--color-surface-sage-01);
  border-radius: 140px 140px 20px 20px;
  box-shadow: 18px 18px 0 var(--color-shadow-shadow-10)
}
.home-jamie figcaption {
  margin-top: 20px;
  color: var(--color-surface-neutral-20);
  font-size: 14px
}
.about-preview-grid>div:last-child p {
  font-size: 18px;
  line-height: 1.8
}
.about-preview .eyebrow {
  color: var(--color-border-lavender-03)
}
.about-preview .light-link {
  color: var(--color-surface-cream-04)
}
.area-preview-grid {
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 8px 30px var(--color-shadow-shadow-11)
}
.final-cta {
  background: var(--forest-dark);
  color: var(--paper);
  position: relative;
  padding: 66px 0
}
.final-cta-inner p:not(.eyebrow) {
  color: var(--color-surface-neutral-21)
}
.final-cta .button.inverse {
  background: var(--color-surface-cream-05);
  color: var(--forest-dark)
}
.page-hero {
  background: radial-gradient(ellipse at top right,var(--color-surface-neutral-22),transparent 55%),var(--cream)
}
.page-hero h1 {
  max-width: 960px
}
.visit-pricing {
  border: 1px solid var(--color-border-sage-03);
  box-shadow: 0 12px 30px var(--color-shadow-shadow-12);
  background: linear-gradient(120deg,var(--color-surface-sage-02),var(--color-surface-neutral-23))
}
.service-menu {
  display: grid;
  gap: 14px
}
.service-menu-item,.service-menu-item:first-of-type {
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--color-surface-paper)
}
.service-menu-item summary {
  padding: 24px 26px
}
.service-menu-item summary:hover {
  background: var(--color-surface-neutral-24)
}
.service-menu-item[open] {
  border-color: var(--color-border-sage-04);
  box-shadow: 0 8px 24px var(--color-shadow-shadow-12)
}
.service-menu-item[open] summary {
  background: var(--color-surface-neutral-25)
}
.service-menu-content {
  padding: 22px 28px 26px;
  max-width: none
}
.service-menu-item h3 {
  font-size: 26px
}
.faq-list {
  max-width: 900px;
  display: grid;
  gap: 12px
}
.faq-list details,.faq-list details:last-child {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--color-surface-paper);
  padding: 0 24px
}
.faq-list summary {
  font-size: 22px
}
.faq-list details[open] {
  background: var(--color-surface-neutral-26)
}
.faq-list details>div {
  padding-right: 40px
}
.portrait-frame {
  border-radius: 160px 160px 18px 18px
}
.county-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  border: 0
}
.county-list li {
  border: 1px solid var(--line);
  padding: 14px 20px;
  border-radius: 10px;
  background: var(--color-surface-neutral-24)
}
.appointment-form {
  box-shadow: 0 14px 40px var(--color-shadow-shadow-13);
  border-radius: 18px
}
.appointment-aside {
  background: linear-gradient(150deg,var(--color-surface-sage-03),var(--color-surface-neutral-27));
  border: 1px solid var(--color-surface-sage-04)
}
.contact-methods {
  border: 0;
  display: grid;
  gap: 14px
}
.contact-methods>div {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 24px;
  background: var(--color-surface-neutral-28)
}
.site-footer {
  background: var(--cream);
  border-top: 1px solid var(--color-surface-neutral-15);
  padding-top: 54px
}
.footer-grid h2 {
  color: var(--forest-dark)
}
.footer-grid>div>a {
  font-size: 14px
}
.footer-branding img {
  width: 190px
}
@media(max-width:880px) {
.about-preview-grid,.hero-grid {
  grid-template-columns: 1fr
}
.hero-brand-art {
  width: min(480px,100%);
  margin: auto
}
.about-preview-grid {
  gap: 44px
}
.home-jamie .portrait-frame {
  max-width: 300px
}
.service-columns {
  gap: 16px
}
}
@media(max-width:640px) {
.home-hero {
  padding: 46px 0 54px
}
.hero-copy h1 {
  font-size: 43px
}
.hero-copy:before {
  font-size: 10px;
  margin-bottom: 17px
}
.hero-grid {
  gap: 34px
}
.hero-brand-art {
  padding: 24px 18px 22px
}
.about-preview,.area-preview,.home-fit {
  padding: 52px 0
}
.fit-list>div {
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 18px
}
.services-preview {
  padding: 10px 0 52px
}
.service-columns article,.service-columns article+article {
  padding: 26px
}
.final-cta {
  padding: 48px 0
}
.service-menu-item summary {
  padding: 20px 18px
}
.service-menu-item h3 {
  font-size: 23px
}
.service-menu-content {
  padding: 18px
}
.faq-list details {
  padding: 0 18px
}
.county-list {
  grid-template-columns: 1fr
}
.footer-branding img {
  width: 170px
}
}
@media(prefers-reduced-motion:reduce) {
.button:hover,.nav-appointment:hover,.service-columns article:hover {
  transform: none
}
}
.heading-accent {
  color: var(--color-accent-lavender);
  font-style: italic
}
.hero-lede,.page-lede {
  padding-left: 22px;
  line-height: 1.75;
  max-width: 65ch;
  color: var(--color-text-sage-08)
}
.page-hero h1 {
  margin-bottom: 28px
}
.page-hero .wrap,.service-group,.visit-flow li {
  position: relative
}
.page-hero .wrap:before {
  content: "";
  display: block;
  width: 42px;
  height: 4px;
  background: var(--color-border-sage-05);
  border-radius: 4px;
  margin-bottom: 22px
}
.light-link,.text-link {
  font-size: 15px;
  letter-spacing: .01em
}
.light-link:after,.text-link:after {
  content: " →";
  display: inline-block;
  margin-left: 6px;
  transition: transform .2s
}
.light-link:hover:after,.text-link:hover:after {
  transform: translateX(3px)
}
.about-copy>p:not(.eyebrow):not(.lead-copy) {
  font-size: 18px;
  line-height: 1.85;
  max-width: 60ch
}
.about-copy .lead-copy {
  font-family: var(--serif);
  font-size: 25px;
  line-height: 1.5;
  padding-left: 20px
}
.contact-lead>p:first-of-type {
  display: inline-block;
  background: var(--color-surface-neutral-19);
  color: var(--color-text-lavender-02);
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 15px;
  font-weight: 700
}
.contact-lead>p:last-of-type {
  font-size: 18px;
  line-height: 1.8;
  max-width: 42ch
}
.visit-settings article {
  border: 1px solid var(--line);
  background: var(--color-surface-neutral-29);
  border-radius: 14px;
  padding: 30px
}
.visit-settings article+article {
  background: var(--color-surface-neutral-17);
  border-top-color: var(--color-border-lavender-02)
}
.visit-settings>.wrap+.wrap {
  margin-top: 24px
}
.visit-settings>.wrap+.wrap article {
  background: var(--color-surface-cream-06);
  border-top-color: var(--color-border-coral-02)
}
.visit-settings article p {
  max-width: 68ch;
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 0
}
.visit-settings h2 {
  font-size: 32px
}
.visit-flow ol {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 20px;
  border: 0;
  counter-reset: visit
}
.visit-flow li {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 28px;
  background: var(--color-surface-paper);
  counter-increment: visit
}
.visit-flow li:before {
  font-family: var(--serif);
  font-size: 38px;
  color: var(--color-accent-lavender);
  line-height: 1;
  margin-bottom: 10px
}
.visit-flow li strong {
  font-family: var(--serif);
  font-size: 25px;
  line-height: 1.2
}
.visit-flow li span {
  font-size: 16px;
  line-height: 1.75
}
.service-summary {
  font-size: 17px;
  line-height: 1.65;
  max-width: 65ch
}
.service-menu-content li {
  line-height: 1.8
}
.service-menu-content li::marker {
  color: var(--color-text-lavender-03)
}
.county-list li {
  font-weight: 700
}
.county-list li:before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  background: var(--color-border-lavender-02);
  border-radius: 50%;
  margin-right: 12px;
  vertical-align: middle
}
.faq-list details>div {
  font-size: 17px;
  line-height: 1.8;
  max-width: 74ch
}
.footer-grid h2 {
  letter-spacing: .16em;
  font-size: 12px
}
@media(max-width:880px) {
.visit-flow ol {
  grid-template-columns: 1fr
}
.visit-flow li {
  padding: 24px
}
.visit-flow li:before {
  font-size: 32px
}
.visit-settings article {
  padding: 26px
}
}
@media(max-width:640px) {
.hero-lede,.page-lede {
  padding-left: 16px
}
.about-copy>p:not(.eyebrow):not(.lead-copy),.visit-settings article p {
  font-size: 17px
}
.visit-settings h2 {
  font-size: 29px
}
.service-summary {
  font-size: 15px
}
.contact-lead>p:last-of-type {
  font-size: 17px
}
}
.area-preview {
  background: var(--cream);
  padding: 72px 0
}
.area-preview-grid {
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  padding: 44px 48px;
  background: linear-gradient(115deg,var(--color-surface-paper) 0,var(--color-surface-paper) 49%,var(--color-surface-neutral-30) 100%);
  align-items: center
}
.coverage-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: var(--color-surface-sage-05);
  border: 1px solid var(--color-surface-sage-06);
  padding: 12px 18px;
  border-radius: 14px;
  margin-bottom: 24px;
  color: var(--forest)
}
.coverage-badge strong {
  font-family: var(--serif);
  font-size: 46px;
  line-height: 1
}
.coverage-badge span {
  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em
}
.area-preview-intro h2 {
  font-size: calc(clamp(32px,3.1vw,44px));
  line-height: 1.14;
  margin-bottom: 18px
}
.area-preview-intro>p:not(.eyebrow) {
  font-size: 17px;
  color: var(--muted);
  max-width: 36ch
}
.area-preview-intro .button {
  gap: 16px;
  margin-top: 8px
}
.area-preview-counties {
  border-left: 1px solid var(--color-surface-sage-07);
  padding-left: 42px
}
.area-preview-counties ul {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 0;
  margin: 20px 0 26px
}
.area-preview-counties li {
  font-weight: 700;
  font-size: 16px;
  background: var(--color-surface-paper);
  border: 1px solid var(--color-surface-sage-08);
  border-radius: 10px;
  padding: 12px 15px;
  display: flex;
  align-items: center;
  gap: 10px
}
.area-preview-counties li:before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: var(--color-text-lavender-04)
}
.area-preview-grid>div:last-child .coverage-note {
  font-size: 15px;
  line-height: 1.75;
  max-width: 46ch;
  margin-bottom: 0
}
.coverage-note a {
  font-weight: 800;
  text-underline-offset: 4px
}
@media(max-width:880px) {
.area-preview-grid {
  grid-template-columns: 1fr;
  gap: 32px;
  padding: 32px
}
.area-preview-counties {
  border-left: 0;
  border-top: 1px solid var(--color-surface-sage-07);
  padding-left: 0;
  padding-top: 26px
}
}
@media(max-width:640px) {
.area-preview {
  padding: 48px 0
}
.area-preview-grid {
  padding: 26px 22px
}
.area-preview-intro h2 {
  font-size: 34px
}
.area-preview-counties ul {
  gap: 9px
}
.area-preview-counties li {
  font-size: 14px;
  padding: 11px 10px;
  gap: 7px
}
.area-preview-intro .button {
  width: 100%
}
}
@media(max-width:360px) {
.area-preview-counties ul {
  grid-template-columns: 1fr
}
}
.services-page .page-hero {
  padding: 54px 0 46px
}
.services-page .page-hero h1 {
  font-size: calc(clamp(40px,4.5vw,62px));
  max-width: 920px
}
.services-page .service-details {
  padding-top: 32px
}
.services-page .visit-pricing {
  grid-template-columns: 200px 1fr;
  padding: 0;
  background: var(--color-surface-neutral-31);
  overflow: hidden;
  gap: 32px;
  margin-top: 0;
  margin-bottom: 52px;
  align-items: stretch
}
.services-page .visit-pricing>div:first-child {
  color: var(--color-on-dark);
  padding: 30px
}
.services-page .visit-pricing>div:first-child .eyebrow {
  color: var(--color-surface-sage-09)
}
.services-page .visit-price {
  color: var(--color-on-dark);
  font-family: var(--serif);
  font-size: 66px
}
.services-page .visit-price span {
  color: var(--color-surface-sage-10);
  font-family: var(--sans);
  font-size: 14px
}
.services-page .visit-pricing>div:last-child {
  padding: 28px 32px 28px 0;
  max-width: 72ch
}
.services-page .visit-pricing h2 {
  font-size: 31px
}
.services-page .visit-pricing>div:last-child>p:first-of-type {
  font-size: 17px;
  line-height: 1.75
}
.service-menu-grouped {
  gap: 46px
}
.service-group-heading {
  display: flex;
  align-items: center;
  gap: 18px
}
.service-group-heading>img {
  box-sizing: content-box;
  width: 28px;
  height: 28px;
  padding: 15px;
  border-radius: 17px
}
.service-group:nth-child(2) .service-group-heading>img {
  background: var(--color-surface-neutral-32)
}
.service-group:nth-child(3) .service-group-heading>img {
  background: var(--color-surface-coral-01)
}
.service-group-heading h2 {
  margin: 0 0 7px
}
.service-group-heading p {
  font-size: 16px;
  color: var(--muted);
  margin: 0
}
.service-group-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: start
}
.services-page .service-menu-item {
  overflow-anchor: none
}
.service-group:nth-child(2) .service-menu-item {
  border-top-color: var(--color-border-lavender-04)
}
.service-group:nth-child(3) .service-menu-item {
  border-top-color: var(--color-border-coral-03)
}
.services-page .service-menu-item summary {
  align-items: center
}
.services-page .service-menu-item h3 {
  line-height: 1.25
}
.services-page .service-summary {
  font-size: 15px;
  line-height: 1.6
}
.services-page .service-toggle {
  flex-basis: 30px;
  width: 30px;
  height: 30px
}
.services-page .service-menu-content ul {
  grid-template-columns: 1fr;
  gap: 9px;
  font-size: 16px
}
.services-page .medical-note {
  background: linear-gradient(110deg,var(--color-surface-neutral-32),var(--color-surface-neutral-33));
  padding: 46px 0
}
.services-page .medical-note p {
  font-size: 17px;
  line-height: 1.8
}
.services-page .medical-note p+p {
  font-family: var(--serif);
  font-size: 23px;
  margin-top: 18px;
  color: var(--color-accent-lavender)
}
@media(max-width:640px) {
.services-page .page-hero {
  padding: 40px 0
}
.services-page .page-hero h1 {
  font-size: 40px
}
.services-page .visit-pricing {
  grid-template-columns: 1fr;
  gap: 0;
  margin-bottom: 38px
}
.services-page .visit-pricing>div:first-child {
  padding: 22px 24px
}
.services-page .visit-price {
  font-size: 52px
}
.services-page .visit-pricing>div:last-child {
  padding: 24px
}
.service-group-grid,.services-page .service-menu-item[open] .service-menu-content ul {
  grid-template-columns: 1fr
}
.service-group-heading {
  align-items: flex-start
}
.service-group-heading>img {
  padding: 12px;
  width: 24px;
  height: 24px
}
.services-page .service-menu-item summary {
  min-height: 0;
  padding: 21px 18px
}
.service-menu-grouped {
  gap: 36px
}
.services-page .service-menu-content {
  padding: 18px
}
}
.services-page .service-menu-item[open] .service-menu-content ul {
  grid-template-columns: 1fr
}
@media(max-width:640px) {
.services-page .service-menu-item[open] summary {
  min-height: 0
}
}
@media(min-width:641px) {
.services-page .visit-pricing>div:first-child {
  display: flex;
  flex-direction: column;
  justify-content: center
}
.services-page .visit-price {
  font-family: var(--sans);
  font-size: 60px;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -2px;
  font-variant-numeric: lining-nums tabular-nums
}
.services-page .visit-price span {
  display: block;
  margin-top: 12px;
  font-size: 14px;
  letter-spacing: 0;
  font-weight: 400;
  line-height: 1.4
}
}
.services-page .service-details {
  background: radial-gradient(ellipse at 0 20%,var(--color-shadow-shadow-14),transparent 38%),radial-gradient(ellipse at 100% 70%,var(--color-shadow-shadow-15),transparent 40%),var(--paper)
}
.service-group {
  --group-bg: var(--color-surface-neutral-34);
  --group-accent: var(--color-text-sage-09);
  --group-icon: url("assets/care-nails.svg");
  padding: 30px;
  border: 1px solid var(--color-surface-sage-12);
  border-radius: 24px;
  background: linear-gradient(130deg,var(--color-surface-neutral-35),var(--color-surface-neutral-36))
}
.service-group:nth-child(2) {
  --group-bg: var(--color-surface-neutral-37);
  --group-accent: var(--color-border-lavender-05);
  --group-icon: url("assets/care-preventive.svg");
  border-color: var(--color-surface-lavender-01);
  background: linear-gradient(130deg,var(--color-surface-neutral-38),var(--color-surface-neutral-39))
}
.service-group:nth-child(3) {
  --group-bg: var(--color-surface-cream-07);
  --group-accent: var(--color-border-coral-04);
  --group-icon: url("assets/care-skin.svg");
  border-color: var(--color-surface-coral-02);
  background: linear-gradient(130deg,var(--color-surface-cream-08),var(--color-surface-neutral-40))
}
.service-group-heading {
  margin-bottom: 26px
}
.service-group-heading h2 {
  font-size: 35px
}
.service-group-heading>img {
  background: var(--color-shadow-shadow-16);
  box-shadow: 0 5px 14px var(--color-shadow-shadow-13);
  border: 1px solid var(--color-on-dark)
}
.services-page .service-menu-item {
  background: var(--color-surface-paper);
  border: 1px solid var(--color-on-dark);
  border-top: 0;
  box-shadow: 0 5px 18px var(--color-shadow-shadow-17);
  transition: box-shadow .2s,border-color .2s
}
.services-page .service-menu-item:hover {
  box-shadow: 0 9px 24px var(--color-shadow-shadow-18);
  border-color: var(--group-accent)
}
.services-page .service-menu-item summary {
  position: relative;
  gap: 15px;
  padding: 25px 21px;
  min-height: 155px
}
.services-page .service-menu-item summary:before {
  content: "";
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 13px;
  background: var(--group-bg) var(--group-icon) center/23px no-repeat;
  align-self: flex-start;
  margin-top: 3px;
  border: 1px solid var(--color-shadow-shadow-12)
}
.services-page .service-menu-item summary>span:first-child {
  flex: 1;
  min-width: 0
}
.services-page .service-menu-item h3 {
  font-size: 23px;
  margin-bottom: 10px
}
.services-page .service-toggle {
  background: var(--group-bg);
  border: 1px solid var(--color-shadow-shadow-06);
  color: var(--forest);
  align-self: flex-start;
  margin-top: 6px
}
.services-page .service-menu-item summary:hover {
  background: var(--color-surface-paper)
}
.services-page .service-menu-item[open] {
  grid-column: auto;
  border-color: var(--group-accent);
  box-shadow: 0 9px 28px var(--color-shadow-shadow-19)
}
.services-page .service-menu-item[open] summary {
  background: var(--group-bg);
  min-height: 155px
}
.services-page .service-menu-content {
  border-top: 1px solid var(--color-shadow-shadow-20);
  margin: 0 22px;
  padding: 22px 0 25px
}
.services-page .service-menu-content li {
  padding-left: 3px
}
.services-page .visit-pricing {
  border-radius: 18px;
  box-shadow: 0 12px 32px var(--color-shadow-shadow-06)
}
.services-page .visit-pricing>div:first-child {
  background: radial-gradient(ellipse at bottom right,var(--color-text-sage-10),var(--forest-dark))
}
@media(max-width:1050px) {
.service-group {
  padding: 24px
}
.services-page .service-menu-item summary:before {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
  background-size: 20px
}
.services-page .service-menu-item summary {
  gap: 12px;
  padding: 23px 18px
}
.services-page .service-menu-item h3 {
  font-size: 22px
}
}
@media(max-width:640px) {
.service-group {
  padding: 20px 15px;
  border-radius: 18px
}
.service-group-heading {
  gap: 12px;
  margin-bottom: 20px
}
.service-group-heading h2 {
  font-size: 28px
}
.service-group-heading p {
  font-size: 15px
}
.services-page .service-menu-item summary,.services-page .service-menu-item[open] summary {
  min-height: 0;
  padding: 21px 15px
}
.services-page .service-menu-item h3 {
  font-size: 21px
}
.services-page .service-menu-item summary:before {
  width: 30px;
  height: 30px;
  flex-basis: 30px;
  border-radius: 10px;
  background-size: 18px
}
.services-page .service-toggle {
  width: 27px;
  height: 27px;
  flex-basis: 27px
}
.services-page .service-menu-content {
  margin: 0 18px
}
}
.about-photo .portrait-caption {
  padding: 22px 20px;
  text-align: center;
  background: var(--color-surface-neutral-41);
  border: 1px solid var(--color-surface-lavender-02);
  border-radius: 0 0 16px 16px;
  margin-top: -5px;
  position: relative
}
.portrait-caption strong {
  display: block;
  font-family: var(--serif);
  font-size: 27px;
  line-height: 1.25;
  color: var(--forest-dark);
  margin-bottom: 9px
}
.portrait-caption .portrait-credentials {
  display: block;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--color-accent-lavender);
  margin-bottom: 8px
}
.portrait-caption .portrait-role {
  display: block;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.5
}
.about-page .about-photo {
  background: var(--color-surface-neutral-41);
  border: 1px solid var(--color-surface-lavender-02);
  border-radius: 160px 160px 18px 18px;
  overflow: hidden;
  padding: 11px 11px 0;
  box-shadow: 0 12px 32px var(--color-shadow-shadow-12)
}
.about-page .about-photo .portrait-frame {
  border: 0;
  background: var(--color-surface-neutral-41);
  border-radius: 150px 150px 0 0;
  overflow: hidden
}
.about-page .about-photo .portrait-caption {
  background: transparent;
  border: 0;
  border-radius: 0;
  margin: 0;
  padding: 24px 12px 25px
}
@media(max-width:640px) {
.about-page .about-photo {
  padding: 8px 8px 0;
  border-radius: 140px 140px 16px 16px
}
.about-page .about-photo .portrait-frame {
  border-radius: 132px 132px 0 0
}
}
.hero-brand-art figcaption span {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
  color: var(--forest-dark);
  margin-top: 9px
}
@media(max-width:640px) {
.hero-brand-art figcaption span {
  font-size: 16px;
  max-width: 28ch;
  margin: 9px auto 0
}
}
.owner-login {
  margin-left: 16px;
  font-size: 12px;
  text-underline-offset: 3px
}
.visit-flow li:before {
  content: none;
  display: none
}
.portrait-frame img[data-owner-upload=true] {
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  transform: none
}
.site-header nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center
}
.contact-methods a,.coverage-note a,.footer-bottom a,.footer-grid>div>a,.light-link,.mini-contact a,.owner-login,.text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding-top: 9px;
  padding-bottom: 9px
}
.footer-grid>div>a {
  width: fit-content;
  max-width: 100%;
  overflow-wrap: anywhere
}
.faq-list summary {
  line-height: 1.45
}
.service-menu-item h3 {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.35
}
.portrait-caption .portrait-credentials,.portrait-caption .portrait-role {
  font-size: 16px;
  line-height: 1.5
}
.about-copy .lead-copy,.hero-lede,.page-lede {
  border-left: 0;
  padding-left: 0
}
.fit-list>div {
  border-left: 0
}
.visit-settings article {
  border-top-width: 1px
}
.footer-branding img,.hero-brand-art img {
  height: auto
}
::selection {
  background: var(--lav);
  color: var(--forest-dark)
}
input,textarea {
  caret-color: var(--forest)
}
.analytics-table {
  font-variant-numeric: tabular-nums
}
@media(prefers-reduced-motion:reduce) {
html {
  scroll-behavior: auto
}
.light-link:after,.text-link:after {
  transition: none;
  transform: none
}
.service-menu-item {
  transition: none
}
}

.footer-grid>div>a{display:flex}

/* Category icons identify groups; individual service cards lead with their titles. */
.services-page .service-menu-item summary:before{content:none;display:none}

/* Give the italic f room beside the upright heading text. */
.services-page .page-hero h1 .heading-accent{padding-left:.12em}

/* Final shared rhythm and readable service summaries. */
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.page-hero h1{line-height:1.16;margin-bottom:24px}
.page-lede,.hero-lede{line-height:1.75}
.service-group-grid{align-items:start}
.services-page .service-menu-item summary,.services-page .service-menu-item[open] summary{min-height:128px;padding:22px;align-items:flex-start;gap:18px}
.services-page .service-menu-item h3{margin:0 0 10px;line-height:1.35}
.services-page .service-summary{font-size:16px;line-height:1.65}
.services-page .service-toggle{margin-top:2px;flex-shrink:0}
.fit-list p,.service-columns p,.appointment-aside p:not(.eyebrow){font-size:16px;line-height:1.75}
.footer-grid>div>a{font-size:15px;margin:0;line-height:1.65}
.footer-grid h2{margin-bottom:8px;line-height:1.5}
.footer-bottom{font-size:14px;line-height:1.6}
.owner-login{font-size:14px}
@media(max-width:640px){
.services-page .service-menu-item summary,.services-page .service-menu-item[open] summary{min-height:0;padding:21px 18px;gap:14px}
.site-footer{padding-top:34px}
.footer-grid{gap:20px;padding-bottom:24px}
.footer-branding img{width:150px;margin-bottom:0}
.footer-bottom{gap:8px;padding:16px 0}
.page-hero{padding:42px 0 38px}
.services-page .page-hero{padding:42px 0 38px}
}

/* Keep supporting visit information as readable as the main copy. */
.area-preview-grid>div:last-child .coverage-note,.pricing-detail,.service-referral,.contact-lead>p:first-of-type,.form-help,.appointment-form-intro,.appointment-next{font-size:16px;line-height:1.7}

.area-preview-counties li,.service-group-heading p,.appointment-form p{font-size:16px;line-height:1.7}

/* Jamie's story: a personal introduction, purpose, and life beyond nursing. */
.jamie-story .story-intro{padding:64px 0 72px}
.jamie-story .about-grid{align-items:center;gap:72px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.jamie-story .about-copy h2{font-size:clamp(32px,3vw,42px);margin-bottom:22px}
.jamie-story .about-copy .lead-copy{font-size:23px;line-height:1.55;font-weight:600;margin-bottom:24px;max-width:44ch}
.jamie-story .about-copy>p:not(.lead-copy){font-size:18px;line-height:1.8;max-width:60ch;margin-bottom:20px}
.story-purpose{padding:70px 0;border-top:1px solid var(--line)}
.story-split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px;align-items:start}
.story-split h2{font-size:clamp(32px,3.2vw,46px);line-height:1.2;max-width:15ch;margin:0}
.story-prose p{font-size:18px;line-height:1.8;max-width:65ch;margin-bottom:22px;color:var(--muted)}
.story-prose p:last-child{margin-bottom:0}.story-prose strong{color:var(--forest-dark);font-weight:700}
.story-belief{padding:60px 0;background:var(--sage)}
.story-belief blockquote{font-family:var(--serif);font-size:clamp(28px,3vw,42px);line-height:1.4;letter-spacing:-.02em;max-width:36ch;margin:0 auto 22px;text-align:center;color:var(--forest-dark);text-wrap:balance}
.story-belief p{text-align:center;font-size:16px;color:var(--muted);margin:0}
.story-personal{padding:72px 0;background:var(--cream)}
.story-personal-note{font-size:17px;line-height:1.7;color:var(--muted);margin:24px 0 0;max-width:26ch}
.story-closing{padding:52px 0 58px}
.story-closing p{font-family:var(--serif);font-size:clamp(25px,2.5vw,34px);line-height:1.5;max-width:48ch;text-align:center;margin:0 auto;color:var(--forest-dark);text-wrap:balance}
@media(max-width:880px){.jamie-story .about-grid,.story-split{grid-template-columns:1fr;gap:36px}.jamie-story .about-photo{width:min(420px,100%);margin:auto}.story-split h2{max-width:24ch}.jamie-story .about-copy .lead-copy{max-width:54ch}}
@media(max-width:640px){.jamie-story .story-intro{padding:38px 0 44px}.jamie-story .about-grid{gap:34px}.jamie-story .about-copy .lead-copy{font-size:21px;line-height:1.6}.jamie-story .about-copy>p:not(.lead-copy),.story-prose p{font-size:17px;line-height:1.8}.story-purpose,.story-personal{padding:44px 0}.story-split{gap:24px}.story-belief{padding:42px 0}.story-belief blockquote{font-size:28px;line-height:1.45}.story-personal-note{margin-top:16px}.story-closing{padding:38px 0 44px}.story-closing p{font-size:25px}}

/* The moment Jamie's business began. */
.story-prose .story-born{font-family:var(--serif);font-size:clamp(27px,2.6vw,36px);font-weight:600;line-height:1.4;letter-spacing:-.02em;color:var(--forest-dark);margin:30px 0}
.story-born span{color:var(--color-accent-lavender);font-style:italic}
@media(max-width:640px){.story-prose .story-born{font-size:28px;line-height:1.45;margin:26px 0}}

.story-prose .story-born .story-footprint{display:inline-block;width:auto;height:1.15em;max-width:none;vertical-align:-.16em;margin-left:.16em;transform:rotate(12deg)}

.events-section{padding:54px 0 76px;background:var(--paper)}.public-events-list{display:grid;gap:24px}.public-event{display:grid;grid-template-columns:90px minmax(0,1fr);gap:28px;padding:30px;border:1px solid var(--line);border-radius:18px;background:var(--cream)}.event-date-badge{align-self:start;text-align:center;border-radius:12px;background:#eee6f1;padding:14px 8px;color:#614076}.event-date-badge span{display:block;font-size:16px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.event-date-badge strong{font-size:38px;line-height:1.2}.event-content h2{margin:0 0 12px;font-size:30px}.event-when{font-weight:700;color:var(--forest)}.event-location{font-weight:700}.event-description{white-space:pre-line;overflow-wrap:anywhere}.events-empty{max-width:680px;padding:34px;background:var(--cream);border:1px solid var(--line);border-radius:18px}.events-empty h2{font-size:30px}.event-content .button,.events-empty .button{margin-top:10px}@media(max-width:640px){.events-section{padding:32px 0 50px}.public-event{grid-template-columns:64px minmax(0,1fr);gap:16px;padding:20px 16px}.event-date-badge{padding:10px 4px}.event-date-badge strong{font-size:30px}.event-date-badge span{font-size:14px}.event-content h2{font-size:25px}.event-content .button{white-space:normal}.events-empty{padding:24px}}

.event-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.event-actions .button{margin-top:0}
