.home { padding-block: clamp(1rem, 3vw, 2.25rem) clamp(3rem, 8vw, 6rem); }
.home h1, .home h2 { font-family: Georgia, serif; font-weight: 400; letter-spacing: -.04em; }
.home h2 { font-size: clamp(2rem, 5vw, 3.25rem); margin: 0 0 1.25rem; }
.home h3 { font-size: clamp(1.12rem, 2vw, 1.35rem); margin: 0; }
.home p { max-width: 65ch; overflow-wrap: anywhere; }
.clinic-landing {
  --landing-deep: #123a32;
  --landing-gold: #ead19e;
  --landing-wash: #edf0e7;
}
main:has(> .clinic-landing) { width: 100%; }
.clinic-landing { padding-block: 0; }
.clinic-landing > .home-section, .clinic-landing > .home-visit {
  width: min(100% - 2rem, 74rem);
  margin-inline: auto;
}

.home-hero { position: relative; isolation: isolate; display: grid; background: var(--landing-deep); color: white; }
.home-hero-frame { position: absolute; z-index: -1; inset: 0; overflow: hidden; }
.home-hero-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(8 31 27 / .91), rgb(8 31 27 / .67) 56%, rgb(8 31 27 / .35)),
    linear-gradient(0deg, rgb(8 31 27 / .78), transparent 45%);
}
.home-hero-art { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 53%; }
.home-hero-inner { display: grid; grid-template-rows: 1fr auto; min-height: clamp(32rem, 78svh, 48rem); }
.home-hero-copy { align-self: center; padding-block: 3.25rem; }
.home-hero h1 { font-size: clamp(3rem, 8vw, 7rem); line-height: .98; margin: 0; max-width: 12ch; }
.home-hero p { font-size: clamp(1rem, 2vw, 1.12rem); color: #f1f6f3; max-width: 42ch; margin: 1rem 0 1.5rem; }
.home-hero .home-hero-brand { margin: 0 0 .9rem; color: var(--landing-gold); font-size: .9rem; font-weight: 650; }
.home-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem 1.15rem; }
.home .button, .home-text-link { font-weight: 650; }
.home-hero .button {
  display: inline-flex;
  align-items: center;
  gap: 1.25rem;
  padding: .9rem 1.1rem;
  border-radius: 0;
  background: #faf7ed;
  color: var(--landing-deep);
}
.home-hero .button:hover { background: var(--landing-gold); }
.home-hero :focus-visible { outline-color: var(--landing-gold); }
.home-text-link { display: inline-flex; align-items: center; min-height: 2.75rem; color: inherit; text-underline-offset: .23em; }
.hero-link-arrow { display: inline-block; margin-inline-start: .45rem; text-decoration: none; }
.home-hero-actions .home-text-link:is(:hover, :focus-visible) { color: var(--landing-gold); }
.home-hero-location { padding-block: .85rem; border-top: 1px solid rgb(255 255 255 / .45); color: white; text-underline-offset: .2em; }
.home-section, .home-visit { margin-top: clamp(2.5rem, 6.5vw, 5.5rem); scroll-margin-top: 1.25rem; }
.treatment-list { border-top: 1px solid var(--site-line); }
.treatment {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: .85rem clamp(1rem, 4vw, 3.75rem);
  padding-block: 1.1rem;
  border-bottom: 1px solid var(--site-line);
}
.treatment-with-image { grid-template-columns: minmax(7rem, 14rem) minmax(0, 1fr); }
.treatment-image { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: .35rem; background: var(--landing-wash); }
.treatment-copy { min-width: 0; overflow-wrap: anywhere; }
.treatment h3 { font-family: Georgia, serif; font-size: clamp(1.35rem, 3vw, 2.15rem); font-weight: 400; }
.treatment p, .update-full-copy p, .update-excerpt { margin: .55rem 0 0; color: var(--site-moss); }
.home-empty { margin: 0; padding-block: .9rem; border-top: 1px solid var(--site-line); color: var(--site-moss); }
.home-visit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  align-items: start;
  gap: 1.5rem clamp(2rem, 6vw, 5rem);
  padding: clamp(1.5rem, 5vw, 3.75rem);
  background: var(--landing-wash);
  border-block: 1px solid var(--site-line);
}
.home-visit h2 { margin-bottom: .5rem; }
.home-visit p { color: var(--site-moss); margin: 0 0 1.2rem; }
.visit-steps { margin: 0; padding-left: 1.6rem; }
.visit-steps li {
  padding: .8rem 0 .8rem .25rem;
  border-bottom: 1px solid var(--site-line);
}
.visit-steps li:first-child { padding-top: 0; }
.visit-steps li::marker { color: var(--site-pine); font-weight: 700; }
.visit-steps span { display: block; color: var(--site-moss); }
.home-update {
  display: flex;
  align-items: flex-start;
  gap: clamp(.75rem, 3vw, 1.5rem);
  border-top: 1px solid var(--site-line);
  padding-block: 1rem;
}
.update-copy { min-width: 0; overflow-wrap: anywhere; }
.update-meta { margin: 0 0 .35rem; color: var(--site-moss); font-size: .85rem; font-weight: 650; }
.update-meta time { margin-inline-start: .5rem; font-weight: 400; }
.update-preview { flex: 0 0 clamp(5.5rem, 20vw, 11rem); }
.gallery-page .home-section, .updates-page .home-section { margin-top: 0; }
.gallery-page h1, .updates-page h1 { margin: 0 0 1.25rem; }
.updates-page .update-title { margin: 0; font: 700 clamp(1.12rem, 2vw, 1.35rem)/1.15 system-ui, sans-serif; letter-spacing: normal; }
.home-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 13rem)); gap: .75rem; }
.media-preview {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--site-line);
  border-radius: .55rem;
  background: var(--site-mint);
}
.media-preview img { display: block; width: 100%; height: 100%; object-fit: cover; }
.update-preview img { object-position: center 25%; }
.media-detail-trigger {
  padding: .4rem 0;
  min-height: 2.75rem;
  background: transparent;
  color: var(--site-pine);
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.media-detail-trigger[hidden] { display: none; }
.media-detail {
  width: min(38rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--site-line);
  border-radius: .8rem;
  color: var(--site-ink);
  background: white;
}
.media-detail[open] { display: flex; flex-direction: column; }
.media-detail::backdrop { background: rgb(12 30 25 / .65); }
html:has(.media-detail[open]) { overflow: hidden; }
.media-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--site-line);
  overflow-wrap: anywhere;
}
.media-detail-content { overflow: auto; overscroll-behavior: contain; padding: 1rem; }
.media-detail-content img { display: block; max-width: 100%; height: auto; margin: .75rem auto 0; border-radius: .35rem; }
.home-questions {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
  grid-template-areas: "intro list" "photo list";
  grid-template-rows: auto 1fr;
  gap: 1.5rem clamp(2.5rem, 6vw, 5rem);
  align-items: start;
}
.questions-intro { grid-area: intro; }
.home .questions-intro h2 { margin: 0 0 .85rem; line-height: 1.12; }
.questions-intro p { margin: 0; color: var(--site-moss); line-height: 1.65; max-width: 32ch; }
.questions-photo { grid-area: photo; margin: 0; overflow: hidden; align-self: stretch; }
.questions-photo img { display: block; width: 100%; height: 100%; min-height: 14rem; max-height: 21rem; object-fit: cover; object-position: center 58%; }
.questions-list { grid-area: list; padding: clamp(1rem, 2.6vw, 2rem); background: var(--landing-wash); }
.home-questions details { border-bottom: 1px solid #c1d0c3; }
.home-questions details:first-child { border-top: 1px solid #c1d0c3; }
.home-questions summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.5rem; padding: .85rem 0; font-weight: 650; line-height: 1.4; cursor: pointer; list-style: none; }
.home-questions summary::-webkit-details-marker { display: none; }
.home-questions summary:hover { color: var(--site-moss); }
.home-questions details p { max-width: 52ch; margin: 0 3rem 1.2rem 0; color: var(--site-moss); line-height: 1.65; }
.questions-toggle { position: relative; flex: 0 0 2.25rem; width: 2.25rem; height: 2.25rem; border: 1px solid #9bb5a5; border-radius: 50%; }
.questions-toggle::before, .questions-toggle::after { content: ""; position: absolute; top: 50%; left: 50%; width: .8rem; height: 1px; background: currentColor; transform: translate(-50%, -50%); }
.questions-toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.home-questions details[open] .questions-toggle::after { transform: translate(-50%, -50%) rotate(0); }
.questions-contact { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .3rem 1.5rem; padding-top: 1.5rem; }
.questions-contact p { margin: 0; color: var(--site-moss); }
.questions-contact a { display: inline-flex; align-items: center; gap: .7rem; min-height: 2.75rem; color: var(--site-ink); font-weight: 650; text-underline-offset: .25em; }
.questions-contact a:hover { color: var(--site-moss); }
@media (prefers-reduced-motion: no-preference) {
  .questions-toggle::after { transition: transform 200ms ease; }
}

@media (max-width: 42rem) {
  .home-visit { grid-template-columns: minmax(0, 1fr); }
  .home-questions { grid-template-columns: minmax(0, 1fr); grid-template-areas: "intro" "list" "photo"; gap: 1.25rem; }
  .questions-photo img { height: auto; max-height: none; aspect-ratio: 16 / 8; object-position: center top; }
  .home-hero h1 { font-size: clamp(2.65rem, 11.5vw, 4.75rem); }
  .home-hero-art { object-position: 54% center; }
  .treatment-with-image { grid-template-columns: minmax(0, 36%) minmax(0, 1fr); }
  .home-hero-actions { gap: .35rem .8rem; }
}

.home-feedback {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  padding: clamp(1.25rem, 4vw, 2.75rem);
  background: var(--landing-wash);
  border-block: 1px solid var(--site-line);
}
.home-feedback h2, .home-location h2 { margin-bottom: .65rem; }
.home-feedback p { margin: 0; color: var(--site-moss); }
.clinic-landing > .home-location {
  width: 100%;
  padding: clamp(5rem, 8.4vw, 7.5rem) clamp(1.25rem, 3.35vw, 3rem);
  background: var(--landing-wash);
  border: 0;
}
.home-location-inner { max-width: 84rem; margin-inline: auto; }
.home-location-copy {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem 4rem;
  margin-bottom: clamp(3rem, 6vw, 5.5rem);
}
.home-location .home-location-eyebrow {
  margin: 0 0 1.5rem;
  font-size: .75rem;
  font-weight: 650;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.home-location h2 { max-width: 16ch; margin: 0; font-size: clamp(2.5rem, 4.5vw, 4.25rem); line-height: 1.08; }
.home-location-details { display: grid; justify-items: start; gap: .6rem; max-width: 24rem; }
.home-location address { color: var(--site-moss); font-style: normal; margin-bottom: .5rem; }
.home-location-phone, .home-location-directions { text-decoration: none; border-bottom: 1px solid var(--site-line); padding-block: .2rem; }
.home-location-directions::after { content: " ↗"; }
.home-location-map-frame { overflow: hidden; }
.home-location-map { display: block; width: 100%; height: clamp(21rem, 38vw, 34rem); border: 0; }
@media (max-width: 51rem) {
  .home-location-copy { flex-direction: column; align-items: stretch; gap: 2rem; }
  .home-location-details { align-self: flex-end; width: min(100%, 24rem); }
}

@media (max-width: 42rem) {
  .home-location-copy { grid-template-columns: minmax(0, 1fr); }
  .home-hero-art { --hero-zoom: 1.035; }
}

@media (max-width: 24rem) {
}


.home-location-panels { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: 1.25rem; align-items: stretch; }
.home-location-panel-frame { overflow: hidden; min-width: 0; }
.home-location-panels .home-location-map { height: 100%; min-height: 36rem; }
.home-landmark { height: 100%; background: var(--landing-deep); color: #fff; }
.home-landmark img { display: block; width: 100%; height: 15rem; object-fit: cover; object-position: center 32%; }
.home-landmark-copy { padding: 1.5rem; }
.home-landmark h3, .home-hours h3 { font: 400 clamp(1.6rem, 2.5vw, 2.2rem)/1.15 Georgia, serif; letter-spacing: -.03em; }
.home-landmark-copy p:not(.home-location-eyebrow) { font-size: .9rem; line-height: 1.7; margin: 1.25rem 0; }
.home-landmark-copy a { display: inline-block; color: inherit; padding-block: .5rem; text-underline-offset: .4em; }
.home-hours { height: 100%; padding: 1.75rem 1.5rem; background: #fafaf7; }
.home-hours table { width: 100%; border-collapse: collapse; margin-top: 1.5rem; font-size: .85rem; }
.home-hours th, .home-hours td { padding: 1.1rem 0; border-bottom: 1px solid var(--site-line); font-weight: 400; }
.home-hours th { text-align: start; }
.home-hours td { text-align: end; white-space: nowrap; }
.home-hours p { font-size: .8rem; line-height: 1.6; color: var(--site-moss); margin: 1.5rem 0 0; }
@media (prefers-reduced-motion: no-preference) and (min-width: 51rem) {
  .home-landmark.visit-entering { animation-delay: .12s; }
  .home-hours.visit-entering { animation-delay: .24s; }
}
@media (max-width: 64rem) {
  .home-location-panels { grid-template-columns: 1fr 1fr; }
  .home-location-map-frame { grid-column: 1 / -1; }
  .home-location-panels .home-location-map { height: 24rem; min-height: 0; }
}
@media (max-width: 40rem) {
  .home-location-panels { grid-template-columns: minmax(0, 1fr); }
  .home-landmark img { height: auto; max-height: 27rem; object-fit: cover; }
}


/* Bluebird hero and visit motion, scoped to the clinic landing page. */
.home-hero { overflow: clip; }
.home-hero-photo-motion { position: absolute; inset: 0; }
.home-hero-word { display: inline-block; }
.home-location-panel-frame, .home-location-map-frame { overflow: clip; overflow-clip-margin: 4px; }
@media (prefers-reduced-motion: no-preference) {
  .home-hero-photo-motion { transform: scale(var(--hero-image-scale, 1)); }
  .home-hero-copy { transform: scale(var(--hero-copy-scale, 1)); }
  .home-hero-word { animation: clinic-word-reveal 2s calc(var(--word-index) * 50ms + 50ms) cubic-bezier(.22,1,.36,1) both; }
  .home-hero-brand { animation: clinic-arrive 600ms 150ms cubic-bezier(.22,1,.36,1) both; }
  .home-hero-actions, .home-hero-location { animation: clinic-arrive 600ms 800ms cubic-bezier(.44,0,.56,1) both; }
  .home-hero:focus-within .home-hero-copy { transform: none; }
  .home-hero:focus-within .home-hero-actions { animation: none; }
  @keyframes clinic-arrive { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
  @keyframes clinic-word-reveal {
    0% { opacity: .001; filter: blur(10px); transform: scale(1.5); }
    70% { opacity: 1; filter: blur(0); transform: scale(.99); }
    100% { opacity: 1; filter: blur(0); transform: scale(1); }
  }
}
@media (min-width: 810px) and (prefers-reduced-motion: no-preference) {
  .home-hero-art { animation: clinic-hero-photo 3s cubic-bezier(.22,1,.36,1) both; }
  @keyframes clinic-hero-photo {
    0% { opacity: .5; transform: translateY(200px) scale(1.2) rotateX(20deg); }
    55% { opacity: 1; transform: translateY(-3px) scale(.997) rotateX(-.3deg); }
    80% { opacity: 1; transform: translateY(-1px) scale(.999) rotateX(-.1deg); }
    100% { opacity: 1; transform: none; }
  }
  .visit-motion-ready [data-visit-frame] > * {
    opacity: .7; transform: translateY(400px) scale(.7);
    transition: transform 700ms cubic-bezier(.22,1,.36,1), opacity 700ms cubic-bezier(.22,1,.36,1);
  }
  .visit-motion-ready [data-visit-frame] > .home-landmark { transform: translateY(400px) scale(.8); }
  .visit-motion-ready [data-visit-frame]:is([data-motion-state="visible"], :focus-within) > * { opacity: 1; transform: none; }
  .visit-motion-ready [data-visit-frame]:focus-within > * { transition: none; }
}

.service-gallery-controls { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.service-gallery-controls[hidden] { display: none; }
.service-gallery-controls > p { margin: 0; font: 1.35rem Georgia, serif; }
.service-gallery-controls > div { display: flex; gap: .5rem; }
.service-gallery-controls button { min-width: 44px; min-height: 44px; border: 1px solid var(--site-line); border-radius: 0; color: var(--site-ink); background: transparent; }
.service-gallery-controls button:hover { background: var(--site-pine); color: white; }
.service-viewport { display: flex; gap: 1.25rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding: .5rem .25rem 1rem; scrollbar-width: thin; scrollbar-color: var(--site-moss) transparent; }
.service-card { flex: 0 0 clamp(18rem, 36vw, 26rem); display: flex; flex-direction: column; scroll-snap-align: start; background: var(--landing-wash); min-width: 0; }
.service-card-image, .service-card-placeholder { width: 100%; height: 18.75rem; object-fit: cover; }
.service-card-placeholder { display: grid; align-content: center; justify-items: center; gap: 1rem; background: var(--site-pine); color: var(--landing-gold); font: 2.5rem Georgia, serif; }
.service-card-placeholder span { font: .75rem system-ui; letter-spacing: .25em; }
.service-card-copy { flex: 1; padding: 1.75rem; display: flex; flex-direction: column; align-items: start; }
.home .service-card h3 { font: 400 clamp(1.6rem, 2.6vw, 2rem)/1.15 Georgia, serif; letter-spacing: -.025em; }
.service-card-copy p { color: var(--site-moss); font-size: .95rem; margin: 1rem 0 1.5rem; }
.service-card-copy .home-text-link { margin-top: auto; font-size: .85rem; }
@media (max-width: 40rem) {
  .service-gallery-controls { align-items: start; flex-direction: column; }
  .service-card { flex-basis: min(21.25rem, calc(100vw - 4.25rem)); }
  .service-card-image, .service-card-placeholder { height: 16.25rem; }
  .service-card-copy { padding: 1.5rem; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .service-card-image { transition: opacity .4s; }
  .service-card:hover .service-card-image { opacity: .85; }
}

.treatment-introduction { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: end; gap: 2rem 5rem; margin-bottom: clamp(2rem, 5vw, 4rem); }
.treatment-introduction .treatment-eyebrow { font-size: .75rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 1.25rem; }
.home .treatment-introduction h2 { max-width: 19ch; font-size: clamp(2.25rem, 4.5vw, 4rem); line-height: 1.08; margin: 0; }
.treatment-introduction-copy p { margin: 0; color: var(--site-moss); line-height: 1.7; }
.treatment-introduction-copy > p + p { margin-top: 1rem; }
.treatment-introduction-copy .treatment-introduction-note { font-size: .8rem; margin-top: 1rem; }
@media (max-width: 51rem) {
  .treatment-introduction { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}

.clinic-landing > .home-reviews { width: 100%; padding: clamp(2rem, 5vw, 4rem) 0; background: var(--landing-wash); }
.reviews-heading, .reviews-footer { width: min(100% - 2rem, 74rem); margin-inline: auto; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; }
.reviews-heading { margin-bottom: 2.5rem; }
.reviews-heading .treatment-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 650; }
.reviews-heading p { color: var(--site-moss); }
.reviews-swipe-hint { display: none; }
.reviews-window { overflow: hidden; }
.review-row { margin-bottom: 1rem; }
.review-group { display: flex; gap: 1rem; }
.review-track { display: flex; width: max-content; }
.review-card { display: flex; flex-direction: column; flex: 0 0 clamp(20rem, 32vw, 28rem); width: clamp(20rem, 32vw, 28rem); min-height: 18rem; padding: 1.75rem; background: #faf9f4; }
.review-summary { margin: 0 0 2rem; font-size: 1.05rem; line-height: 1.65; }
.review-card footer { margin-top: auto; border-top: 1px solid var(--site-line); padding-top: 1rem; }
.home .review-card h3 { font: 400 1.45rem Georgia, serif; overflow-wrap: anywhere; }
.review-card a { display: inline-block; padding-block: .5rem; font-size: .75rem; text-underline-offset: .25em; color: var(--site-moss); }
.reviews-footer { margin-top: 2rem; }
.reviews-footer p { font-size: .8rem; color: var(--site-moss); max-width: 65ch; }
.home-reviews:not(.reviews-animated) .review-track, .home-reviews:not(.reviews-animated) .review-group { width: auto; }
.home-reviews:not(.reviews-animated) .review-group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(100% - 2rem, 74rem); margin: auto; }
.home-reviews:not(.reviews-animated) .review-card { width: auto; min-width: 0; }
.review-group[aria-hidden="true"] { display: none; }
@media (min-width: 810px) and (prefers-reduced-motion: no-preference) {
  .reviews-animated .reviews-window { mask-image: linear-gradient(90deg, transparent, black 4%, black 96%, transparent); }
  .reviews-animated .review-group { padding-right: 1rem; }
  .reviews-animated .review-group[aria-hidden="true"] { display: flex; }
  .reviews-animated .review-track { animation: reviews-ticker 50s linear infinite; }
  .reviews-animated .review-row:nth-child(2) .review-track { animation-direction: reverse; }
  .reviews-animated:focus-within .reviews-window { mask-image: none; }
  @keyframes reviews-ticker { to { transform: translateX(-50%); } }
}
@media (max-width: 809px) {
  .reviews-heading { margin-bottom: 1.5rem; }
  .reviews-swipe-hint { display: block; margin: 1rem 0 0; font-size: .8rem; }
  .home-reviews .reviews-window {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding: 0 1rem 1rem;
    scroll-padding-inline: 1rem;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--site-moss) transparent;
  }
  .home-reviews .review-row,
  .home-reviews .review-track,
  .home-reviews .review-group:not([aria-hidden="true"]) { display: contents; }
  .home-reviews .review-card {
    flex: 0 0 min(82vw, 24rem);
    width: auto;
    min-width: 0;
    min-height: 17rem;
    padding: 1.5rem;
    scroll-snap-align: start;
  }
  .reviews-heading, .reviews-footer { align-items: start; flex-direction: column; }
}
.home-reviews:not(.reviews-animated) .review-group[aria-hidden="true"] { display: none; }

/* Photo-led visit support section. */
.home-story {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: 38rem;
  margin-top: clamp(2.5rem, 6.5vw, 5.5rem);
  padding-block: clamp(5rem, 9vw, 8rem);
  overflow: clip;
  background: #123a32;
  color: #f7f8f2;
  scroll-margin-top: 1.25rem;
}
.home-story::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgb(8 35 28 / .94), rgb(8 35 28 / .82) 52%, rgb(8 35 28 / .72));
}
.home-story-backdrop { position: absolute; z-index: -2; inset: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; overflow: hidden; }
.home-story-backdrop img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.home-story-backdrop img:first-child { object-position: center 40%; }
.home-story-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(3rem, 7vw, 6rem); }
.home-story .home-story-eyebrow { margin: 0 0 1.25rem; color: #ead19e; font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.home .home-story h2 { max-width: 14ch; margin: 0; font-size: clamp(2.7rem, 5vw, 4.5rem); line-height: 1.08; }
.home-story h2 em { color: #ead19e; font-weight: 400; }
.home-story-content > p { margin: 0 0 1.5rem; line-height: 1.7; }
.home-story-links { list-style: none; margin: 0 0 2rem; padding: 0; }
.home-story-links li { border-bottom: 1px solid rgb(255 255 255 / .35); }
.home-story-links a { display: flex; align-items: baseline; gap: .8rem; min-height: 3rem; padding-block: .85rem; color: inherit; text-decoration: none; }
.home-story-links a:is(:hover, :focus-visible) { color: #ead19e; }
.home-story-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 3rem; padding: .8rem 1rem; background: #faf7ed; color: #123a32; font-size: .9rem; font-weight: 650; text-decoration: none; }
.home-story-cta:hover { background: #ead19e; }
.home-story :focus-visible { outline-color: #ead19e; }
@media (prefers-reduced-motion: no-preference) {
  html:has(.clinic-landing) { scroll-behavior: smooth; }
  .home-hero-actions .home-text-link { transition: color 250ms ease; }
  .hero-link-arrow { transition: transform 250ms cubic-bezier(.22, 1, .36, 1); }
  .home-hero-actions .home-text-link:is(:hover, :focus-visible) .hero-link-arrow { transform: translate(.25rem, -.25rem); }
  .home-story-links a { transition: color 250ms ease, background-color 250ms ease, padding-inline-start 250ms cubic-bezier(.22, 1, .36, 1); }
  .home-story-links a > span { transition: transform 250ms cubic-bezier(.22, 1, .36, 1); }
  .home-story-links a:is(:hover, :focus-visible) { padding-inline-start: .55rem; background-color: rgb(255 255 255 / .06); }
  .home-story-links a:is(:hover, :focus-visible) > span { transform: translate(.2rem, -.2rem); }
  .home-story[data-story-state] .story-reveal { transition: transform 700ms cubic-bezier(.22, 1, .36, 1), opacity 700ms cubic-bezier(.22, 1, .36, 1); }
  .home-story[data-story-state] .home-story-backdrop img { transition: transform 900ms cubic-bezier(.22, 1, .36, 1); }
  .home-story[data-story-state="pending"] .story-reveal { transform: translateY(4rem); opacity: .8; }
  .home-story[data-story-state="pending"] .home-story-backdrop img { transform: translateY(1rem) scale(1.05); }
  .home-story:focus-within .story-reveal, .home-story:focus-within .home-story-backdrop img { transform: none; opacity: 1; transition: none; }
}
@media (max-width: 50.6rem) {
  .home-story { min-height: 0; padding-block: calc(clamp(15rem, 70vw, 21rem) + 1rem) 4.5rem; }
  .home-story-backdrop { inset: 0 0 auto; height: clamp(15rem, 70vw, 21rem); gap: .25rem; }
  .home-story::before { background: linear-gradient(180deg, rgb(8 35 28 / .12), rgb(8 35 28 / .45) 11rem, #123a32 clamp(15rem, 70vw, 21rem)); }
  .home-story-inner { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .home .home-story h2 { max-width: 18ch; font-size: clamp(2.6rem, 9vw, 4rem); }
}

.home-intro-ribbon { display: flex; justify-content: center; align-items: center; gap: clamp(1rem, 4vw, 4rem); padding: 1.6rem 1.25rem; background: #e0e7df; color: var(--landing-deep); font: 500 clamp(.95rem, 1.6vw, 1.3rem)/1.5 Georgia, serif; text-align: center; }
.ribbon-star { color: #94773e; flex: none; font-size: 1rem; }
@media (max-width: 40rem) {
  .home-intro-ribbon { gap: .6rem; padding: 1.2rem .75rem; font-size: .9rem; }
  .home-intro-ribbon > span:not(.ribbon-star) { flex: 1; min-width: 0; }
  .ribbon-star { font-size: .7rem; }
}
