/* Inner pages keep their heading and content together on one shared island. */
body:not(.home):not(.error404) #main-content {width: var(--island-width); margin: var(--island-gap) auto; padding-block: var(--island-padding); border-radius: var(--island-radius); background: var(--white);}
body:not(.home):not(.error404) #main-content > .container {width: 100%; padding-inline: var(--island-padding);}
.page-hero {padding: 0 0 clamp(2rem, calc(1rem + 2vw), 3.25rem); background: transparent;}
.page-breadcrumbs {display: flex; align-items: center; gap: 0.625rem; flex-wrap: wrap; margin: 0 0 2.25rem; color: var(--muted); font-size: 0.75rem;}
.page-breadcrumbs a {text-decoration: none;}
.page-breadcrumbs a:hover {color: var(--green); text-decoration: underline;}
.page-breadcrumbs span[aria-current] {color: var(--ink);}
.page-hero h1 {max-width: 60rem; margin: 0; font-size: clamp(2.375rem, calc(1rem + 4vw), 4.125rem); font-weight: 500; line-height: 1.13; letter-spacing: -.035em;}
.page-hero .page-intro {max-width: 44.375rem; margin: 1.5rem 0 0; color: var(--muted); font-size: 1.0625rem; line-height: 1.8;}
.page-content {padding-bottom: 0;}
.catalog-tools {display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; align-items: stretch;}
.catalog-tools > * {min-width: 0;}
.catalog-tools .catalog-search input {height: 100%;}
.catalog-direction {position: relative; display: grid; align-content: center; gap: 0.125rem; min-height: 3.75rem; padding: 0.625rem 2.75rem 0.625rem 1rem; border: 1px solid var(--line); border-radius: 0.5rem; background: var(--white);}
.catalog-direction label {font-size: 0.6875rem; line-height: 1.4; color: var(--muted);}
.catalog-direction-value {font-size: 0.875rem; line-height: 1.5; color: var(--ink); overflow-wrap: anywhere;}
.catalog-direction > .icon {position: absolute; right: 1rem; top: 50%; width: 1.125rem; height: 1.125rem; transform: translateY(-50%); pointer-events: none; color: var(--green);}
/* The native picker handles touch and keyboard; its visible value can wrap. */
.catalog-direction select {position: absolute; inset: 0; width: 100%; height: 100%; min-width: 0; opacity: 0; cursor: pointer; font: inherit; font-size: 1rem;}
.catalog-direction:focus-within {border-color: var(--green); outline: 3px solid oklch(57.513% 0.100339 73.8936); outline-offset: 3px;}
.catalog-search {position: relative; display: flex; align-items: center; width: 100%;}
.catalog-search > svg {position: absolute; left: 1.25rem; width: 1.25rem; height: 1.25rem; color: var(--green); pointer-events: none;}
.catalog-search input {width: 100%; min-height: 3.75rem; padding: 1.0625rem 1.25rem 1.0625rem 3.375rem; border: 1px solid var(--line); border-radius: 0.5rem; outline: none; background: oklch(100% 0 0); color: var(--ink); font: inherit; font-size: 0.875rem;}
.catalog-search input:focus {border-color: var(--green); box-shadow: 0 0 0 3px oklch(38.1087% 0.06204748 250.00000 / 0.09);}
.catalog-search input::placeholder {color: var(--muted); opacity: 1;}
.catalog-search.has-clear-control input {padding-right: 3.875rem;}
.catalog-search.has-clear-control input::-webkit-search-cancel-button {-webkit-appearance: none; appearance: none;}
.catalog-search-clear {position: absolute; right: 0.375rem; top: 50%; transform: translateY(-50%);}
.catalog-search-clear[hidden] {display: none;}
.catalog-meta {display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; margin: 1.125rem 0 1.75rem; color: var(--muted); font-size: 0.75rem; line-height: 1.65;}
.catalog-meta p {margin: 0;}
.catalog-summary {display: flex; align-items: center; flex-wrap: wrap; gap: .25rem 1rem; min-width: 0; min-height: 2.75rem;}
.catalog-summary .catalog-reset-all {min-height: 2.75rem; max-width: 100%; padding: .375rem .625rem; font-size: .875rem; line-height: 1.5; text-wrap: balance;}
.catalog-return {position: fixed; right: max(var(--island-gutter), env(safe-area-inset-right)); bottom: max(var(--island-gutter), env(safe-area-inset-bottom)); z-index: 44; max-width: calc(100% - 2 * var(--island-gutter)); min-height: 2.75rem; padding: .625rem .875rem; gap: .5rem; background: var(--white); font-size: .875rem; line-height: 1.5; box-shadow: 0 4px 20px oklch(32.9047% 0.03857062 251.65585 / .1);}
.catalog-return[hidden] {display: none;}
.catalog-return .icon {transform: rotate(-90deg);}
.has-dialog .catalog-return {visibility: hidden;}
@media (max-width: 47.5em) {
  .catalog-return {bottom: calc(var(--mobile-booking-height, 3.875rem) + max(var(--island-gutter), env(safe-area-inset-bottom)) + .75rem);}
}
.catalog-meta .catalog-date {max-width: 32.5rem; text-align: right;}
.catalog-layout {display: grid; grid-template-columns: 15.75rem minmax(0, 1fr); gap: 2.5rem; align-items: start;}
.catalog-sidebar {position: sticky; top: 6.875rem;}
.catalog-nav {display: grid; gap: 0.375rem; padding: 0.625rem; border: 1px solid var(--line); border-radius: 0.75rem; background: oklch(100% 0 0);}
.catalog-filter {display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; padding: 0.9375rem 0.875rem; border: 0; border-radius: 0.4375rem; background: transparent; color: var(--ink); font: inherit; font-size: 0.8125rem; text-align: left; line-height: 1.55; cursor: pointer; transition: background .2s, color .2s;}
.catalog-filter:hover {background: var(--cream);}
.catalog-filter.is-active {background: var(--green); color: oklch(100% 0 0);}
.catalog-filter-count {font-size: 0.6875rem; opacity: .75; flex-shrink: 0;}
.catalog-help {padding: 1.5625rem 1.25rem; margin-top: 1.125rem; border-radius: 0.75rem; background: var(--sage);}
.catalog-help p {font-size: 0.75rem; line-height: 1.8; margin: 0.625rem 0 0.9375rem; color: var(--muted);}
.catalog-help strong {font-size: 0.875rem; font-weight: 600;}
.catalog-help a {font-size: 0.875rem; font-weight: 650; text-decoration: none;}
.price-group {margin-bottom: 2rem;}
.price-group-heading {display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; column-gap: 1.25rem; row-gap: .375rem; padding: 0 0 1.125rem;}
.price-group-title {min-width: 0;}
.price-group-heading h2 {margin: 0; font-size: 1.6875rem; font-weight: 500; letter-spacing: -.02em;}
.price-group-date {display: block; margin-top: .375rem; color: var(--muted); font-size: 0.6875rem; white-space: nowrap;}
.price-group-heading .price-group-link {min-height: 2.75rem; max-width: 100%; min-width: 0; padding-block: .375rem; gap: .625rem; font-size: .875rem; line-height: 1.5;}
.price-group-link > span {min-width: 0;}
.price-table {width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: 0.625rem; overflow: hidden; background: oklch(100% 0 0); text-align: left;}
.price-table thead {background: var(--cream);}
.price-table th {padding: 0.875rem 1.375rem; font-size: 0.6875rem; font-weight: 550; color: var(--muted);}
.price-table th:last-child {text-align: right;}
.price-table td {padding: 1.1875rem 1.375rem; border-top: 1px solid var(--line); font-size: 0.8125rem; line-height: 1.7; vertical-align: top;}
.price-table td:last-child {width: 7.1875rem; text-align: right; white-space: nowrap; font-weight: 650; color: var(--green);}
.price-table small {display: block; color: var(--muted); font-size: 0.625rem; line-height: 1.6; margin-top: 0.1875rem;}
.price-table .price-on-request {display: inline-block; max-width: 7.1875rem; white-space: normal; font-size: 0.6875rem; line-height: 1.5; font-weight: 500;}
.price-table td.price-inquiry-cell {width: auto; text-align: left; white-space: normal; font-weight: 400; color: var(--ink);}
.price-inquiry-layout {display: grid; grid-template-columns: minmax(0, 1fr) 7.1875rem; align-items: start; gap: 1.5rem;}
.price-inquiry-action {min-width: 0; text-align: right;}
.price-table .price-inquiry {width: 100%; max-width: 100%; min-width: 0; min-height: 2.75rem; padding: .375rem .125rem; font-size: .8125rem; line-height: 1.5; white-space: normal; text-align: center;}
.price-inquiry > span {min-width: 0;}
@media (max-width: 50em) {
  .price-inquiry-layout {grid-template-columns: minmax(0, 1fr) 5rem;}
  .price-table .price-inquiry {font-size: .875rem;}
}
@media (max-width: 47.5em) {
  .price-inquiry, .price-group-link, .catalog-reset-all, #service-search, #doctor-search, #doctor-specialty {scroll-margin-bottom: calc(var(--mobile-booking-height, 3.875rem) + var(--island-gutter) + var(--island-gap));}
}
@media (max-width: 23.125em) {
  .price-inquiry-layout {gap: 1rem;}
}
@media (max-width: 19em) {
  .price-inquiry-layout {grid-template-columns: minmax(0, 1fr); gap: .625rem;}
  .price-inquiry-action {text-align: left;}
  .price-table .price-inquiry {width: auto; padding-inline: .5rem;}
}
.price-originals.document-actions {display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); margin-top: 1rem;}
@media (max-width: 19em) {
  .price-originals .price-download {flex-direction: column;}
}
.catalog-empty {padding: 3.125rem 1.5625rem; border: 1px dashed var(--line); border-radius: 0.75rem; text-align: center; background: var(--cream);}
.catalog-empty h2 {font-size: 1.6875rem; margin: 0 0 0.75rem;}
.catalog-empty p {max-width: 26.25rem; margin: 0 auto 1.375rem; color: var(--muted); font-size: 0.875rem; line-height: 1.75;}
.catalog-empty-actions {display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem;}
@media (max-width: 40em) {
    .catalog-empty-actions .button {width: 100%;}
}
.page-note {margin-top: 1.75rem; color: var(--muted); font-size: 0.75rem; line-height: 1.85;}
.doctors-tools {max-width: 60rem; margin-bottom: 2.1875rem;}
.doctors-tools .catalog-meta {margin-bottom: 0;}
.doctors-grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.375rem;}
.doctor-card {display: flex; flex-direction: column; align-items: flex-start; padding: 1.875rem; border: 1px solid var(--line); border-radius: 0.75rem; background: oklch(100% 0 0);}
.doctor-avatar {display: flex; align-items: center; justify-content: center; width: 4.75rem; height: 4.75rem; margin-bottom: 1.625rem; border-radius: 50%; background: var(--sage); color: var(--green); font-family: 'Lora', Georgia, serif; font-size: 1.5625rem;}
.doctor-card:nth-child(3n + 2) .doctor-avatar {background: oklch(94.4499% 0.0131823 82.2264);}
.doctor-card:nth-child(3n + 3) .doctor-avatar {background: oklch(94.1761% 0.01088486 256.96395);}
.doctor-card h2 {margin: 0 0 0.625rem; font-size: 1.4375rem; font-weight: 500; line-height: 1.45; letter-spacing: -.015em;}
.doctor-card .doctor-specialty {margin: 0 0 1rem; color: var(--green); font-size: 1rem; font-weight: 600; line-height: 1.8;}
.doctor-card .doctor-details {margin: 0 0 1.5625rem; color: var(--muted); font-size: 0.75rem; line-height: 1.8;}
.doctor-card .doctor-book {display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; width: 100%; margin-top: auto; padding: 1.1875rem 0 0; border: 0; border-top: 1px solid var(--line); background: none; color: var(--green); font: inherit; font-size: 0.75rem; font-weight: 650; text-align: left; cursor: pointer;}
.doctor-book svg {width: 1.125rem; height: 1.125rem; flex-shrink: 0; transition: transform .2s;}
.doctor-book:hover svg {transform: translateX(0.25rem);}

.doctor-prices {width: 100%; margin: auto 0 1rem; font-size: .75rem; line-height: 1.6;}
.doctor-prices .doctor-prices-label {margin: 0 0 .125rem; color: var(--muted); font-size: .6875rem;}
.doctor-price-links {display: flex; flex-wrap: wrap; column-gap: 1rem; row-gap: .125rem;}
.doctor-price-link {display: inline-flex; align-items: center; gap: .5rem; min-height: 2rem; max-width: 100%; color: var(--green);}
.doctor-price-link span {min-width: 0; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: .25rem; overflow-wrap: anywhere;}
.doctor-price-link .icon {width: .875rem; height: .875rem; flex-shrink: 0;}
.doctor-price-link:hover span, .doctor-price-link:focus-visible span {text-decoration-color: currentColor;}
.doctor-card .doctor-prices + .doctor-book {margin-top: 0;}
.home-doctor {display: flex; flex-direction: column; align-items: flex-start;}
.home-doctor-top {width: 100%;}
.home-doctor .doctor-prices {font-size: .625rem; margin-bottom: .75rem;}
.home-doctor .doctor-prices-label {font-size: .625rem;}
@media (max-width: 47.5em) {
  .home-doctor-grid {grid-template-columns: minmax(0, 1fr);}
  .home-doctor {display: grid; grid-template-columns: 3.125rem minmax(0, 1fr); grid-template-areas: "avatar name" "specialty specialty" "prices prices" "booking booking"; column-gap: .875rem; align-items: start; min-width: 0; padding: 1.125rem;}
  .home-doctor > * {min-width: 0;}
  .home-doctor-top {grid-area: avatar; width: auto; margin: 0;}
  .home-doctor .doctor-mark {display: none;}
  .home-doctor h3 {grid-area: name; align-self: center; margin: 0; font-size: 1.25rem; line-height: 1.4;}
  .home-doctor h3 span {display: block; min-height: 0; font-size: .875rem; line-height: 1.5;}
  .home-doctor-specialty {grid-area: specialty; min-height: 0; margin: .75rem 0; font-size: .875rem; line-height: 1.6; color: var(--green);}
  .home-doctor .doctor-prices {grid-area: prices; margin: 0 0 .75rem; font-size: .875rem;}
  .home-doctor .doctor-prices-label {font-size: .75rem;}
  .home-doctor .doctor-price-link {min-height: 2.75rem;}
  .home-doctor .doctor-price-link .icon {width: 1rem; height: 1rem;}
  .home-doctor .doctor-booking {grid-area: booking; min-height: 2.75rem; padding: .75rem 0 0; font-size: .875rem; line-height: 1.5; gap: .75rem; text-align: left;}
  .home-doctor .doctor-booking .icon {width: 1.125rem; height: 1.125rem;}
}
/* Stack the name below the initials when enlarged text leaves little room. */
@media (max-width: 19em) {
  .home-doctor {grid-template-columns: minmax(0, 1fr); grid-template-areas: "avatar" "name" "specialty" "prices" "booking";}
  .home-doctor-top {margin-bottom: .75rem;}
}
.about-lead {display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 3.75rem; align-items: start;}
.about-prose p {margin: 0 0 1.375rem; font-size: 1rem; line-height: 1.95; color: var(--muted);}
.about-prose p:first-child {color: var(--ink); font-size: 1.25rem; line-height: 1.8;}
.about-facts {padding: 2.1875rem; border-radius: 0.875rem; background: var(--sage);}
.about-fact + .about-fact {padding-top: 1.375rem; margin-top: 1.375rem; border-top: 1px solid oklch(86.9859% 0.02794803 239.72855);}
.about-fact dt {font-size: 0.6875rem; color: var(--muted); margin-bottom: 0.5rem;}
.about-fact dd {margin: 0; font-size: 1rem; font-weight: 550; line-height: 1.7;}
.about-section {margin-top: 4.375rem; padding-top: 3rem; border-top: 1px solid var(--line);}
.about-section h2 {font-size: 2.125rem; font-weight: 500; margin: 0 0 1.875rem;}
.about-direction-grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.125rem;}
.about-direction {display: block; min-width: 0; padding: 1.6875rem; border: 1px solid var(--line); border-radius: 0.625rem; text-decoration: none; transition: scale .16s cubic-bezier(.2,.8,.2,1), border-color .2s;}
.about-direction .about-direction-number {display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.5rem; font-size: 0.75rem; color: var(--muted);}
.about-direction h3 {font-size: 1.1875rem; font-family: 'Lora', Georgia, serif; font-weight: 500; margin: 0 0 0.875rem;}
.about-direction p {color: var(--muted); font-size: 0.8125rem; line-height: 1.85; margin: 0;}
.about-direction--link {background: var(--sage); text-decoration: none;}
.about-direction-number svg {width: 1.25rem; height: 1.25rem; flex-shrink: 0; color: var(--green); transition: transform .2s;}
@media (hover: hover) {
  .about-direction:hover {border-color: oklch(75.9804% 0.04104727 241.61540);}
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .about-direction:hover .about-direction-number svg {transform: translate(.125rem, -.125rem);}
}
@media (prefers-reduced-motion: no-preference) {
  .about-direction:is(:active, .is-pressed) {scale: .985; transition-duration: .08s;}
}
@media (prefers-reduced-motion: reduce) {
  .about-direction, .about-direction-number svg {transition: none;}
  .about-direction:is(:active, .is-pressed) {box-shadow: inset 0 0 0 2px oklch(0% 0 0 / .15);}
}
@media (max-width: 47.5em) {
  .about-direction {scroll-margin-bottom: calc(var(--mobile-booking-height, 3.875rem) + var(--island-gutter) + var(--island-gap));}
}
.page-cta {display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 2.1875rem; padding: 2.5rem; margin-top: 3.4375rem; background: var(--green); color: oklch(100% 0 0); border-radius: 0.875rem;}
.page-cta h2 {color: oklch(100% 0 0); font-size: 1.875rem; line-height: 1.3; font-weight: 500; margin: 0 0 0.75rem;}
.page-cta p {margin: 0; color: oklch(90.8413% 0.02188054 241.00990); font-size: 0.8125rem; line-height: 1.8; max-width: 39.375rem;}
.page-cta .button {flex-shrink: 0; max-width: 100%;}
.contact-grid {display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 1.75rem; align-items: stretch;}
.contact-details {display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem;}
.contact-card {padding: 1.625rem; border: 1px solid var(--line); border-radius: 0.75rem; background: oklch(100% 0 0);}
.contact-card--wide {grid-column: 1 / -1;}
.contact-card > svg {width: 1.375rem; height: 1.375rem; color: var(--green); margin-bottom: 1.25rem;}
.contact-card h2 {margin: 0 0 0.875rem; font-family: inherit; font-size: 0.75rem; font-weight: 500; color: var(--muted);}
.contact-card p, .contact-card address {margin: 0; font-style: normal; font-size: 1rem; font-weight: 500; line-height: 1.8;}
.contact-phones {display: grid; gap: 0.5625rem;}
.contact-phones a {font-size: 1.25rem; font-weight: 550; line-height: 1.7; text-decoration: none;}
.contact-card .contact-subtext {margin-top: 0.6875rem; font-size: 0.75rem; font-weight: 400; color: var(--muted);}
.contact-schedule {margin: 0; display: grid; gap: 0.8125rem;}
.contact-schedule > div {display: flex; justify-content: space-between; gap: 1.25rem; font-size: 0.75rem; line-height: 1.7;}
.contact-schedule dt {color: var(--muted);}
.contact-schedule dd {margin: 0; text-align: right; font-weight: 550;}
.contact-sampling {display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: 1.25rem;}
.contact-sampling .contact-card h2 {color: var(--ink); font-size: 0.875rem; font-weight: 550; margin-bottom: 1.375rem;}
.contact-location {position: relative; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 3rem; border-radius: 0.875rem; overflow: hidden; background: var(--sage);}
.contact-location::after {content: ''; position: absolute; width: 18.125rem; height: 18.125rem; border: 1px solid oklch(86.7566% 0.03300605 239.90005); border-radius: 50%; right: -8.75rem; top: -4.375rem; pointer-events: none;}
.contact-location .location-mark {display: flex; align-items: center; justify-content: center; width: 4.5rem; height: 4.5rem; border: 1px solid oklch(85.7305% 0.03496295 240.14995); border-radius: 50%; margin-bottom: 2.5rem;}
.location-mark svg {width: 1.8125rem; height: 1.8125rem; color: var(--green);}
.contact-location .eyebrow {margin-bottom: 1rem;}
.contact-location h2 {font-size: 2.3125rem; line-height: 1.35; font-weight: 500; margin: 0 0 1.125rem;}
.contact-location p {color: var(--muted); font-size: 0.875rem; line-height: 1.85; margin: 0 0 1.875rem;}
.contact-location-actions {display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .75rem; width: 100%; margin-top: auto;}
.contact-location-actions .button {width: 100%; gap: .75rem; padding-inline: .75rem; font-size: .875rem;}
.contact-location-actions .button, .contact-copy-fallback input {scroll-margin-bottom: calc(var(--mobile-booking-height, 0rem) + var(--island-gap) + var(--island-gutter));}
.contact-copy[hidden], .contact-copy-fallback[hidden] {display: none;}
.contact-copy-label, .contact-copy-icon {display: grid; min-width: 0;}
.contact-copy-icon {flex-shrink: 0;}
.contact-copy-label > span, .contact-copy-icon > svg {grid-area: 1 / 1; transition: opacity 200ms cubic-bezier(.25,.1,.25,1);}
.contact-copy-icon > svg {transform: scale(1); filter: blur(0); transition: opacity 200ms cubic-bezier(.25,.1,.25,1), transform 200ms cubic-bezier(.25,.1,.25,1), filter 200ms cubic-bezier(.25,.1,.25,1);}
.contact-copy-done {opacity: 0;}
.contact-copy.is-copied .contact-copy-idle {opacity: 0;}
.contact-copy.is-copied .contact-copy-done {opacity: 1;}
.contact-copy-icon > .contact-copy-done,
.contact-copy.is-copied .contact-copy-icon > .contact-copy-idle {transform: scale(.8); filter: blur(2px);}
.contact-copy.is-copied .contact-copy-icon > .contact-copy-done {transform: scale(1); filter: blur(0);}
@media (prefers-reduced-motion: reduce) {
  .contact-copy-label > span, .contact-copy-icon > svg {transition: none;}
  .contact-copy-icon > svg,
  .contact-copy-icon > .contact-copy-done,
  .contact-copy.is-copied .contact-copy-icon > .contact-copy-idle,
  .contact-copy.is-copied .contact-copy-icon > .contact-copy-done {transform: none; filter: none;}
}
.contact-copy-fallback {width: 100%; margin-top: 1rem; font-size: .875rem; line-height: 1.6;}
.contact-copy-fallback label {display: block; margin-bottom: .5rem;}
.contact-copy-fallback input {width: 100%; min-width: 0; padding: .75rem; border: 1px solid var(--line); border-radius: .375rem; background: var(--cream); color: var(--ink);}
@media(max-width:19em) {
  .contact-location-actions .button {padding-inline: .5rem; gap: 0;}
  .contact-location-actions .button > .icon, .contact-copy-icon {display: none;}
}
.contact-links {display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.5625rem; margin-top: 1.625rem; padding: 1.375rem 0; border-top: 1px solid var(--line); font-size: 0.8125rem; line-height: 1.8;}
.contact-links p {margin: 0; color: var(--muted);}
.contact-links a {display: inline-flex; align-items: center; gap: 0.625rem; text-decoration: none; font-weight: 600; color: var(--green);}
.contact-links svg {width: 1.0625rem; height: 1.0625rem;}
.document-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem;}
.document-card {display: flex; align-items: flex-start; gap: 1.375rem; padding: 1.8125rem; border: 1px solid var(--line); border-radius: 0.75rem; background: oklch(100% 0 0); text-decoration: none; transition: border-color .2s, background .2s;}
a.document-card:hover {border-color: oklch(75.9804% 0.04104727 241.61540); background: var(--cream);}
.document-mark {display: flex; justify-content: center; align-items: center; flex-shrink: 0; width: 3.0625rem; height: 3.75rem; border-radius: 0.4375rem; background: var(--sage); color: var(--green);}
.document-mark svg {width: 1.5rem; height: 1.5rem;}
.document-card-content {flex: 1; min-width: 0;}
.document-card h2 {margin: 0 0 0.625rem; font-family: inherit; font-weight: 550; font-size: 1rem; line-height: 1.65;}
.document-card p {margin: 0 0 1.1875rem; color: var(--muted); font-size: 0.75rem; line-height: 1.8;}
.document-download {display: inline-flex; align-items: center; gap: 0.5rem; color: var(--green); font-size: 0.6875rem; font-weight: 600;}
.document-download svg {width: 0.875rem; height: 0.875rem;}
.document-card--actions {display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; row-gap: .875rem;}
.document-card--actions .document-card-content {min-width: 0;}
.document-card--actions p {margin-bottom: 0;}
.document-actions {grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem;}
.document-actions .button {flex: 1 1 10rem; min-width: 0; max-width: 100%; min-height: 2.75rem; padding: .625rem .75rem; gap: .5rem; font-size: .875rem; line-height: 1.5; text-wrap: balance;}
.document-actions .button > span {min-width: 0;}
.document-actions .icon {flex-shrink: 0;}
@media (max-width: 47.5em) {
  .document-actions .button {scroll-margin-bottom: calc(var(--mobile-booking-height, 3.875rem) + var(--island-gutter) + var(--island-gap));}
}
@media (max-width: 19em) {
  .document-card--actions {grid-template-columns: minmax(0, 1fr);}
  .document-actions .button {padding-inline: .375rem; gap: .25rem;}
}
.requisites {margin-top: 3.4375rem; padding: 2.25rem; border-radius: 0.75rem; background: var(--cream);}
.requisites h2 {margin: 0 0 1.5625rem; font-size: 1.8125rem; font-weight: 500;}
.requisites dl {margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5625rem 2.8125rem;}
.requisites dt {color: var(--muted); font-size: 0.6875rem; margin-bottom: 0.5rem;}
.requisites dd {margin: 0; font-size: 0.8125rem; line-height: 1.8; overflow-wrap: anywhere;}
.privacy-summary {max-width: 51.875rem; padding: 1.625rem 1.875rem; background: var(--cream); border: 1px solid var(--line); border-radius: 0.625rem; margin-bottom: 1.875rem;}
.privacy-summary p {font-size: 0.8125rem; line-height: 1.9; margin: 0; color: var(--muted);}
.privacy-document-actions {margin-top: 1rem;}
.privacy-pagination {display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2.1875rem;}
.privacy-pagination > span {font-size: 0.75rem; color: var(--muted); margin-right: 0.375rem;}
.privacy-pagination a {display: inline-flex; justify-content: center; align-items: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--line); border-radius: 0.3125rem; text-decoration: none; font-size: 0.75rem;}
.privacy-pagination a:hover {background: var(--sage);}
.privacy-pages {max-width: 51.875rem; display: grid; gap: 1.875rem;}
.privacy-page {margin: 0;}
.privacy-page figcaption {color: var(--muted); font-size: 0.75rem; margin-bottom: 0.75rem;}
.privacy-page a {display: block; border: 1px solid var(--line); background: oklch(100% 0 0);}
.privacy-page img {display: block; width: 100%; height: auto;}
/* Let enlarged text wrap within its column instead of widening the page. */
.catalog-layout > *, .about-lead > *, .contact-grid > *, .contact-details > *, .contact-sampling > *, .requisites dl > *, .page-cta > * {min-width: 0;}
.page-hero h1, .doctor-card h2, .about-direction h3, .contact-card, .contact-location, .document-card-content {overflow-wrap: anywhere;}
[data-catalog] [hidden] {display: none !important;}
@media (max-width: 67.5em) {
  .catalog-layout {grid-template-columns: 13.75rem minmax(0, 1fr); gap: 1.5625rem;}
  .doctor-card {padding: 1.5625rem;}
  .doctor-card h2 {font-size: 1.3125rem;}
  .contact-grid {grid-template-columns: 1fr 1fr;}
  .contact-details {grid-template-columns: 1fr;}
  .contact-card--wide {grid-column: auto;}
  .contact-location {padding: 2.1875rem;}
}
@media (max-width: 50em) {
  .page-breadcrumbs {margin-bottom: 1.75rem;}
  .page-hero .page-intro {font-size: 0.9375rem; margin-top: 1.25rem;}
  .catalog-layout {grid-template-columns: minmax(0, 1fr); gap: 1.5625rem;}
  .catalog-results, .catalog-sidebar {min-width: 0;}
  .price-table {table-layout: fixed;}
  .price-table th, .price-table td {padding: .875rem .75rem;}
  .price-table th {font-size: .75rem;}
  /* A definite first-row width keeps the price column compact in fixed tables. */
  .price-table th:last-child {width: 6.5rem;}
  .price-table td {font-size: .875rem;}
  .price-table td:first-child {overflow-wrap: anywhere;}
  .price-table td:last-child {width: auto; white-space: normal; overflow-wrap: anywhere;}
  .price-table small {font-size: .75rem;}
  .price-table .price-on-request {max-width: 100%; font-size: .875rem;}
  .catalog-sidebar {position: static;}
  .catalog-search input {font-size: 1rem; min-height: 3.5rem;}
  .catalog-search.has-clear-control input:placeholder-shown {padding-right: 1.25rem;}
  .catalog-direction label {font-size: .75rem;}
  .catalog-direction-value {font-size: 1rem;}
  .catalog-nav {display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); padding: 0; border: 0; gap: .5rem;}
  .catalog-filter {display: grid; grid-template-columns: minmax(0, 1fr) auto; width: 100%; min-height: 3rem; padding: .625rem .875rem; border: 1px solid var(--line); border-radius: .375rem; font-size: .875rem; gap: .75rem;}
  .catalog-filter-count {font-size: .75rem; white-space: nowrap;}
  .catalog-help {display: none;}
  .catalog-meta {flex-direction: column; gap: 0.5625rem; margin-bottom: 1.375rem;}
  .catalog-meta .catalog-date {text-align: left;}
  .doctors-grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem;}
  .about-lead {grid-template-columns: 1fr; gap: 1.375rem;}
  .about-facts {padding: 1.6875rem;}
  .about-direction-grid {grid-template-columns: 1fr;}
  .about-direction {padding: 1.5625rem;}
  .about-direction .about-direction-number {margin-bottom: 0.875rem;}
  .about-section {margin-top: 2.625rem; padding-top: 2.1875rem;}
  .about-section h2 {font-size: 1.8125rem;}
  .page-cta {align-items: flex-start; flex-direction: column; padding: 1.875rem; margin-top: 2.5rem; gap: 1.5rem;}
  .contact-grid {grid-template-columns: 1fr;}
  .contact-details {grid-template-columns: 1fr 1fr;}
  .contact-card--wide {grid-column: 1 / -1;}
  .contact-location {min-height: 25.625rem;}
  .contact-location .location-mark {margin-bottom: 1.5625rem;}
  .contact-location .button {margin-top: 0;}
  .document-grid {grid-template-columns: 1fr; gap: 0.875rem;}
  .requisites {padding: 1.625rem; margin-top: 2.1875rem;}
}
@media (max-width: 30em) {
  .page-hero h1 {font-size: 2.375rem;}
  .price-group-heading {align-items: flex-start; flex-direction: column; gap: 0.375rem; padding-bottom: 0.875rem;}
  .price-group-heading h2 {font-size: 1.5625rem;}
  .doctors-grid {grid-template-columns: 1fr;}
  .doctor-card {padding: 1.625rem;}
  .doctor-avatar {width: 4.0625rem; height: 4.0625rem; margin-bottom: 1.25rem;}
  .doctor-card h2 {font-size: 1.5625rem;}
  .contact-details {grid-template-columns: 1fr;}
  .contact-card--wide {grid-column: auto;}
  .contact-card {padding: 1.5625rem;}
  .contact-sampling {grid-template-columns: 1fr;}
  .contact-location {padding: 1.875rem; min-height: 24.375rem;}
  .contact-location h2 {font-size: 2rem;}
  .contact-links {align-items: flex-start; flex-direction: column; gap: 0.875rem;}
  .document-card {padding: 1.375rem; gap: 0.9375rem; flex-wrap: wrap;}
  .document-card-content {min-width: min(100%, 10rem);}
  .document-mark {width: 2.4375rem; height: 3rem;}
  .document-card h2 {font-size: 0.875rem;}
  .requisites dl {grid-template-columns: 1fr; gap: 1.25rem;}
  .privacy-summary {padding: 1.375rem;}
  .privacy-pagination {gap: 0.375rem;}
  .privacy-pagination a {width: 1.875rem; height: 2rem;}
  .about-prose p:first-child {font-size: 1.125rem;}
  .page-cta {padding: 1.6875rem;}
  .page-cta h2 {font-size: 1.6875rem;}
}

@media (max-width: 23.125em) {
  .price-table th, .price-table td {padding-inline: .5rem;}
  .price-table th:last-child {width: 6rem;}
}

@media (max-width: 19em) {
  .catalog-search > svg {display: none;}
  .catalog-search input {padding-left: 0.75rem;}
}

/* Nested surfaces share the island's rhythm without adding another heavy frame. */
.doctors-grid, .document-grid, .contact-grid, .contact-details, .contact-sampling, .about-direction-grid {gap: var(--island-gap);}
.doctor-card, .contact-card, .document-card {background: var(--cream);}
.doctor-card, .contact-card, .document-card, .about-direction, .about-facts, .requisites, .privacy-summary {padding: min(1.875rem, var(--island-padding)); border-radius: calc(var(--island-radius) * .75);}
.contact-location, .page-cta {padding: min(2.5rem, var(--island-padding)); border-radius: calc(var(--island-radius) * .75);}
.about-facts {margin-block: 0;}
.about-section {margin-top: clamp(2.5rem, calc(1rem + 3vw), 4rem);}
.page-content > :last-child {margin-bottom: 0;}
.catalog-sidebar {top: calc(var(--site-header-height,7.25rem) + var(--island-gutter) + var(--island-gap));}
@media (max-width: 19em) {
  .page-hero {padding-bottom: 1.5rem;}
  .page-breadcrumbs {margin-bottom: 1.25rem;}
  .catalog-filter {max-width: 100%;}
  .price-table th, .price-table td {padding-inline: 0.375rem;}
  .price-table th:last-child {width: 46%;}
  .price-group-date {white-space: normal;}
}

/* Mobile catalogue cards follow the compact doctor cards on the home page. */
@media (max-width: 47.5em) {
  .doctors-grid {grid-template-columns: minmax(0, 1fr);}
  .doctor-card {display: grid; grid-template-columns: 3.125rem minmax(0, 1fr); grid-template-areas: "avatar name" "specialty specialty" "prices prices" "booking booking"; column-gap: .875rem; align-items: start; padding: 1.125rem;}
  .doctor-card > * {min-width: 0;}
  .doctor-avatar {grid-area: avatar; width: 3.125rem; height: 3.125rem; margin: 0; font-size: 1.1875rem;}
  .doctor-card h2 {grid-area: name; align-self: center; margin: 0; font-family: var(--font-body); font-size: 1.25rem; font-weight: 600; line-height: 1.4; letter-spacing: -.03em;}
  .doctor-card h2 br {display: none;}
  .doctor-name-rest {display: block; font-size: .875rem; font-weight: 450; line-height: 1.5; letter-spacing: -.02em;}
  .doctor-card .doctor-specialty {grid-area: specialty; margin: .75rem 0; font-size: 1rem; line-height: 1.6;}
  .doctor-card .doctor-prices {grid-area: prices; margin: 0 0 .75rem; font-size: .875rem;}
  .doctor-card .doctor-prices-label {font-size: .75rem;}
  .doctor-card .doctor-price-link {min-height: 2.75rem;}
  .doctor-card .doctor-price-link .icon {width: 1rem; height: 1rem;}
  .doctor-card .doctor-book {grid-area: booking; margin: 0; min-height: 2.75rem; padding: .75rem 0 0; font-size: .875rem; line-height: 1.5; gap: .75rem;}
}
@media (max-width: 19em) {
  .doctor-card {grid-template-columns: minmax(0, 1fr); grid-template-areas: "avatar" "name" "specialty" "prices" "booking"; padding: .75rem;}
  .doctor-avatar {margin-bottom: .75rem;}
}

/* Match contact headings and make each day/time pair easy to scan on a phone. */
@media (max-width: 47.5em) {
  .contact-card h2, .contact-sampling .contact-card h2 {margin: 0 0 1rem; color: var(--ink); font-size: 1rem; font-weight: 600; line-height: 1.5; letter-spacing: -.02em;}
  .contact-schedule {gap: .75rem;}
  .contact-schedule > div {display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: .75rem; font-size: .875rem; line-height: 1.5;}
  .contact-schedule dt {min-width: 0;}
  .contact-schedule dd {font-size: 1rem; line-height: 1.5; white-space: nowrap; font-variant-numeric: tabular-nums;}
}
@media (max-width: 19em) {
  .contact-schedule {gap: 1rem;}
  .contact-schedule > div {grid-template-columns: minmax(0, 1fr); gap: .125rem;}
  .contact-schedule dd {text-align: left;}
}

/* Balance short page headings without changing the explicit breaks in names. */
.page-hero h1,
.about-section h2,
.about-direction h3,
.document-card h2,
.contact-card h2 {text-wrap: balance;}
.page-hero .page-intro,
.about-prose p,
.about-direction p,
.document-card p,
.privacy-summary p {text-wrap: pretty;}

/* Keep changing totals and price columns steady at every reading size. */
[data-catalog-count],
.catalog-filter-count,
.price-table td:last-child:not(.price-inquiry-cell) {font-variant-numeric: tabular-nums;}

/* The framed sidebar starts above 50em; its inset includes the 1px border. */
@media (width > 50em) {
  .catalog-nav {border-radius: 1.125rem;}
}

/* Desktop reading scale; the approved phone layouts keep their own sizing. */
@media (width > 47.5em) {
  .page-breadcrumbs,
  .catalog-meta,
  .catalog-direction label,
  .catalog-filter-count,
  .price-group-date,
  .page-note {
    font-size: .875rem;
  }

  .catalog-direction {
    min-height: 4.25rem;
    padding: .625rem 3rem .625rem 1rem;
    gap: .25rem;
  }
  .catalog-direction-value {font-size: 1rem;}
  .catalog-direction > .icon {width: 1.25rem; height: 1.25rem;}
  .catalog-search input {min-height: 4.25rem; font-size: 1rem; padding-left: 3.625rem;}
  .catalog-search > svg {width: 1.375rem; height: 1.375rem;}
  .catalog-summary .catalog-reset-all {font-size: .9375rem; padding-inline: .75rem;}
  .catalog-return {font-size: .9375rem; gap: .625rem;}
  .catalog-filter {min-height: 3.25rem; font-size: .9375rem; gap: .75rem;}
  .catalog-help p {font-size: .875rem; line-height: 1.7;}
  .catalog-help strong,
  .catalog-help a {font-size: 1rem;}

  .price-group-heading {row-gap: .625rem;}
  .price-group-heading .price-group-link {font-size: .9375rem; gap: .75rem;}
  .price-table th {font-size: .875rem; padding: .875rem 1.25rem;}
  .price-table td {font-size: 1rem; line-height: 1.65; padding: 1.125rem 1.25rem;}
  .price-table th:last-child,
  .price-table td:last-child:not(.price-inquiry-cell) {
    width: 10.5rem;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
  }
  .price-table small {font-size: .875rem; line-height: 1.55; margin-top: .375rem;}
  .price-table .price-on-request {max-width: 100%; font-size: .875rem;}
  .price-inquiry-layout {grid-template-columns: minmax(0, 1fr) 8rem; gap: 1.25rem;}
  .price-table .price-inquiry {
    min-height: 3rem;
    padding: .5rem .625rem;
    font-size: .9375rem;
    line-height: 1.5;
  }
  .catalog-empty p {font-size: 1rem;}

  .doctor-card {min-width: 0;}
  .doctor-card .doctor-specialty {font-size: 1rem; line-height: 1.65;}
  .doctor-card .doctor-details {font-size: .875rem; line-height: 1.7;}
  .doctor-card .doctor-prices {font-size: .9375rem;}
  .doctor-prices .doctor-prices-label {font-size: .875rem; margin-bottom: .375rem;}
  .doctor-price-link {min-height: 2.75rem; line-height: 1.5; gap: .625rem;}
  .doctor-price-link .icon {width: 1.125rem; height: 1.125rem;}
  .doctor-card .doctor-book {
    min-height: 3rem;
    padding-top: 1rem;
    gap: .75rem;
    font-size: .9375rem;
    line-height: 1.5;
  }
  .doctor-book svg {width: 1.25rem; height: 1.25rem;}
  .home-doctor .doctor-prices,
  .home-doctor .doctor-prices-label {font-size: .875rem;}

  .about-fact dt {font-size: .875rem;}
  .about-direction .about-direction-number {font-size: .875rem;}
  .about-direction p {font-size: 1rem; line-height: 1.7;}
  .page-cta p {font-size: 1rem; line-height: 1.7;}

  .contact-card h2,
  .contact-sampling .contact-card h2 {
    margin-bottom: 1rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;
  }
  .contact-card .contact-subtext {font-size: .875rem; line-height: 1.65;}
  .contact-schedule {gap: .75rem;}
  .contact-schedule > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: .75rem;
    font-size: .875rem;
    line-height: 1.5;
  }
  .contact-schedule dt {min-width: 0;}
  .contact-schedule dd {font-size: 1rem; white-space: nowrap; font-variant-numeric: tabular-nums;}
  .contact-location > p:not(.eyebrow) {font-size: 1rem; line-height: 1.7;}
  .contact-location-actions .button {font-size: .9375rem;}
  .contact-copy-fallback input {font-size: 1rem;}
  .contact-links {font-size: 1rem; line-height: 1.7;}
  .contact-links svg {width: 1.25rem; height: 1.25rem;}

  .document-card p {font-size: .875rem; line-height: 1.7;}
  .document-download {font-size: .9375rem;}
  .document-download svg {width: 1.125rem; height: 1.125rem;}
  .document-actions {gap: .75rem;}
  .document-actions .button {
    min-height: 3rem;
    padding: .75rem 1rem;
    gap: .75rem;
    font-size: .9375rem;
  }
  .requisites dt {font-size: .875rem;}
  .requisites dd {font-size: 1rem; line-height: 1.7;}
  .privacy-summary p {font-size: 1rem; line-height: 1.75;}
  .privacy-pagination > span,
  .privacy-page figcaption {font-size: .875rem;}
  .privacy-pagination a {width: 2.75rem; height: 2.75rem; font-size: .9375rem;}

  /* Give laptop cards enough line length for names and the larger descriptions. */
  @media (max-width: 67.5em) {
    .doctors-grid,
    .about-direction-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
  }
}

/* Compact round portraits retain the original doctor-card proportions. */
.home-doctor {--doctor-avatar-size: 4rem; --doctor-avatar-font: 1.3125rem;}
.doctor-portrait {
  position: relative;
  flex: none;
  width: var(--doctor-avatar-size, 4.75rem);
  aspect-ratio: 1;
  margin: 0 0 1.625rem;
  overflow: hidden;
  border-radius: 50%;
  background: var(--sage);
  isolation: isolate;
}
.doctor-portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px oklch(25% .025 245 / .09);
  pointer-events: none;
}
.doctor-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 0%;
}
.doctor-portrait--placeholder {display: grid; place-items: center;}
.doctor-portrait-initials {
  color: var(--green);
  font-family: var(--font-heading);
  font-size: var(--doctor-avatar-font, 1.5625rem);
  line-height: 1;
}
@media (max-width: 47.5em) {
  .doctor-portrait {grid-area: avatar; width: 3.125rem; margin: 0;}
  .doctor-portrait-initials {font-size: 1.1875rem;}
}
@media (max-width: 19em) {
  .doctor-portrait {margin-bottom: .75rem;}
}

/* Laboratory pathways and a visual guide to the clinic entrance. */
.laboratory-options{margin-bottom:2rem;padding:clamp(1.125rem,2.5vw,2rem);border-radius:var(--island-radius);background:var(--sage);scroll-margin-top:calc(var(--site-header-height,7rem) + 1.5rem)}
.laboratory-options>h2{margin:0 0 1.25rem;font-size:clamp(1.5rem,2.4vw,2rem)}
.laboratory-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.laboratory-options article{padding:1.25rem;border-radius:.75rem;background:var(--white,oklch(100% 0 0))}
.laboratory-options h3{font-family:inherit;font-size:1.0625rem;line-height:1.45;margin:0 0 .5rem;font-weight:700}
.laboratory-options p{font-size:.9375rem;line-height:1.65;margin:.5rem 0 0;text-wrap:pretty}
.laboratory-options .laboratory-time{color:var(--green);font-size:1rem;font-weight:700}
.contact-arrival{margin-top:2.5rem}
.contact-arrival>h2{font-size:clamp(1.75rem,3vw,2.5rem);margin:0 0 .75rem}
.contact-arrival>p{max-width:48rem;line-height:1.7;margin:0 0 1.5rem}
.contact-arrival-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.25rem;align-items:stretch}
.contact-map{min-width:0;display:flex;flex-direction:column;gap:.5rem}
.contact-map iframe{display:block;width:100%;height:100%;min-height:22rem;border:0;border-radius:1rem;background:var(--sage)}
.contact-map>a{align-self:flex-start;font-size:.875rem;text-decoration:underline;text-underline-offset:.2em}
@media(max-width:47.5em){.laboratory-options-grid,.contact-arrival-grid{grid-template-columns:minmax(0,1fr)}.contact-map iframe{min-height:22rem;height:22rem}}

.contact-arrival-grid>.clinic-gallery--facade{margin:0}
