.page-hero {
    padding-block: clamp(72px, 8vw, 136px);
    border-bottom: 1px solid var(--border-default);
    background: var(--surface-page);
}

.page-hero__copy {
    display: grid;
    max-width: none;
    gap: var(--space-6);
}

.page-hero h1 {
    max-width: 1120px;
}

.page-hero > .container:not(.page-hero__copy) {
    display: grid;
    max-width: var(--layout-content);
    gap: var(--space-6);
}

.page-hero h1,
.page-intro h1,
.page-section h2,
.page-section h3 {
    overflow-wrap: anywhere;
}

.page-hero .lead {
    max-width: var(--layout-reading);
    color: var(--text-secondary);
}

.page-hero__actions,
.cta-band__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
}

.page-section {
    padding-block: var(--section-space);
}

.page-section + .page-section {
    border-top: 1px solid var(--border-default);
}

.page-section--muted {
    background: var(--surface-subtle);
}

.page-section--blue {
    background: var(--brand-strong);
    color: var(--text-on-brand);
}

.page-section--blue .eyebrow,
.page-section--blue .lead,
.page-section--blue .text-link {
    color: var(--text-on-brand);
}

.section-heading {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(260px, 4fr);
    align-items: end;
    gap: var(--space-8);
    margin-bottom: var(--space-12);
}

.section-heading > div {
    display: grid;
    gap: var(--space-4);
}

.section-heading > p {
    max-width: 560px;
    color: var(--text-secondary);
    text-wrap: balance;
}

.content-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--grid-gap);
    list-style: none;
}

.content-grid > * {
    grid-column: span 4;
}

.content-grid--two > * {
    grid-column: span 6;
}

.content-grid--reading > * {
    grid-column: 1 / span 8;
}

.info-card {
    display: grid;
    min-height: 100%;
    align-content: start;
    gap: var(--space-4);
    padding: var(--space-8);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-card);
    background: var(--surface-page);
    min-width: 0;
}

.info-card > p,
.info-card > ul,
.info-card > ol {
    color: var(--text-secondary);
}

.info-card h2 {
    font-size: var(--type-h3);
}

.info-card h3 {
    font-size: 22px;
}

.info-card p,
.info-card li,
.info-card dd,
.data-list li,
.data-list dd,
.data-list span,
.data-list time {
    min-width: 0;
    overflow-wrap: anywhere;
}

.info-card ul,
.info-card ol,
.prose ul,
.prose ol {
    display: grid;
    gap: var(--space-3);
    padding-left: 1.25em;
}

.prose {
    display: grid;
    max-width: var(--layout-reading);
    gap: var(--space-5);
}

.prose p,
.prose li {
    color: var(--text-secondary);
}

.prose h2,
.prose h3 {
    margin-top: var(--space-6);
}

.data-list {
    display: grid;
    border-top: 1px solid var(--border-default);
}

.data-list > div,
.data-list > li {
    display: grid;
    grid-template-columns: minmax(180px, 3fr) minmax(0, 9fr);
    gap: var(--space-8);
    padding-block: var(--space-6);
    border-bottom: 1px solid var(--border-default);
}

.data-list > li {
    list-style: none;
}

.data-list dt,
.data-list > li > time:first-child {
    color: var(--text-secondary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
}

.data-list dd {
    display: grid;
    gap: var(--space-2);
}

.numbered-list {
    display: grid;
    list-style: none;
    counter-reset: item;
}

.numbered-list > li {
    display: grid;
    min-height: 112px;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: start;
    gap: var(--space-6);
    padding-block: var(--space-6);
    border-top: 1px solid var(--border-default);
    counter-increment: item;
}

.numbered-list > li::before {
    content: counter(item, decimal-leading-zero);
    color: var(--brand-primary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
    grid-row: 1 / span 2;
}

.numbered-list > li > h3,
.numbered-list > li > p {
    grid-column: 2 / -1;
}

.notice {
    max-width: 980px;
    padding: var(--space-6);
    border-left: 4px solid var(--brand-primary);
    background: var(--brand-mist);
}

.notice:has(> .container) {
    max-width: none;
    padding: var(--space-10) 0;
    border-top: 4px solid var(--brand-primary);
    border-left: 0;
}

.notice:has(> .container) > .container {
    display: grid;
    max-width: var(--layout-reading);
    gap: var(--space-3);
    margin-inline: auto;
}

.notice strong {
    display: block;
    margin-bottom: var(--space-2);
}

.document-list {
    display: grid;
    border-top: 1px solid var(--border-default);
    list-style: none;
}

.document-list > li,
.document-list > a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-6);
    padding-block: var(--space-6);
    border-bottom: 1px solid var(--border-default);
}

.document-list small {
    color: var(--text-secondary);
}

.cta-band {
    display: block;
    padding-block: var(--space-16);
    background: var(--brand-strong);
    color: var(--text-on-brand);
}

.cta-band > .container,
.cta-band.container {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(280px, 4fr);
    align-items: end;
    gap: var(--space-8);
}

.cta-band .eyebrow,
.cta-band .text-link {
    border-color: rgb(255 255 255 / 60%);
    color: var(--text-on-brand);
}

.cta-band .button {
    border-color: var(--surface-page);
    background: var(--surface-page);
    color: var(--brand-strong);
}

.cta-band .button:hover {
    background: transparent;
    color: var(--text-on-brand);
}

.cta-band__copy {
    display: grid;
    max-width: 780px;
    gap: var(--space-4);
}

.cta-band__actions {
    justify-content: flex-end;
}

.review-card {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-8);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.review-card blockquote {
    margin: 0;
    white-space: pre-line;
}

.review-card__reply {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-4);
    border-left: 3px solid var(--brand-primary);
    background: var(--brand-mist);
    color: var(--text-secondary);
    white-space: pre-line;
}

.review-card__reply-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2) var(--space-4);
}

.review-card__reply-header time {
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.review-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.review-filter {
    display: grid;
    gap: var(--space-5);
    margin-top: var(--space-6);
}

.review-filter > p {
    max-width: var(--layout-reading);
    color: var(--text-secondary);
}

.review-filter ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    list-style: none;
}

.review-filter .text-link {
    min-height: 42px;
    padding-inline: var(--space-3);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-control);
    background: var(--surface-page);
}

.review-group:nth-of-type(even) {
    background: var(--surface-subtle);
}

.review-group__heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-5);
    margin-bottom: var(--space-8);
}

.review-group__count {
    color: var(--brand-primary);
    font-size: var(--type-h3);
    font-weight: var(--weight-semibold);
}

.review-card__header,
.review-card__footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
}

.review-card__header time,
.review-card__header > div > span,
.review-card__rating,
.review-card__footer > span {
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.review-card__rating {
    white-space: nowrap;
}

.review-card__footer {
    align-items: flex-end;
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--border-default);
}

.review-card__footer .text-link {
    min-height: 36px;
}

.offer-list,
.article-links,
.service-review-list {
    margin-top: var(--space-8);
}

.article-links .info-card {
    display: flex;
    flex-direction: column;
}

.article-links .info-card > img {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin-bottom: var(--space-5);
    object-fit: cover;
    object-position: center;
}

.article-links .info-card > .text-link {
    margin-top: auto;
}

.article-document .page-hero__copy > img {
    width: 100%;
    aspect-ratio: 16 / 9;
    margin-top: var(--space-8);
    object-fit: cover;
    object-position: center;
}

.offer-card__kicker {
    color: var(--brand-primary) !important;
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
}

.offer-card__value {
    color: var(--brand-strong) !important;
    font-size: var(--type-h2);
    font-weight: var(--weight-semibold);
    line-height: 1;
}

.service-reviews__all {
    margin-top: var(--space-8);
}

.review-more {
    margin-top: var(--space-6);
}

.review-card,
.review-group {
    scroll-margin-top: var(--space-6);
}

.review-more > summary {
    display: inline-flex;
    min-height: var(--control-height);
    align-items: center;
    padding: 12px 20px;
    border: 1px solid var(--brand-primary);
    border-radius: var(--radius-control);
    color: var(--brand-primary);
    cursor: pointer;
    font-weight: var(--weight-semibold);
    list-style: none;
}

.review-more > summary::-webkit-details-marker {
    display: none;
}

.review-more[open] > summary {
    display: none;
}

@media (min-width: 961px) {
    .offer-list > .offer-card {
        grid-column: span 4;
    }
}

main:has(.cta-band:last-child) + .site-footer {
    border-top: 1px solid rgb(255 255 255 / 24%);
}

.doctor-card {
    overflow: hidden;
}

.doctor-card__media {
    aspect-ratio: 4 / 5;
    margin: calc(var(--space-8) * -1) calc(var(--space-8) * -1) var(--space-4);
    overflow: hidden;
    background: var(--surface-muted);
}

.doctor-card__media img,
.doctor-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.doctor-card__body {
    display: grid;
    gap: var(--space-3);
}

.doctor-card__roles,
.doctor-hero__roles {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    list-style: none;
}

.doctor-card__roles li,
.doctor-hero__roles li {
    color: var(--brand-strong);
    font-size: var(--type-small);
    font-weight: var(--weight-medium);
}

.doctor-card > .text-link {
    margin-top: auto;
}

.doctor-hero > .container {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
    column-gap: var(--grid-gap);
}

.doctor-hero > .container > .text-link {
    width: fit-content;
    grid-column: 1 / -1;
}

.doctor-hero__media {
    width: 100%;
    max-width: 400px;
    aspect-ratio: 4 / 5;
    grid-column: 1 / span 3;
    grid-row: 2 / span 4;
    overflow: hidden;
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.doctor-hero > .container > .eyebrow,
.doctor-hero > .container > h1,
.doctor-hero > .container > .doctor-hero__roles,
.doctor-hero > .container > .lead {
    grid-column: 5 / -1;
}

.doctor-hero > .container > .eyebrow {
    grid-row: 2;
}

.doctor-hero > .container > h1 {
    grid-row: 3;
}

.doctor-hero > .container > .doctor-hero__roles {
    grid-row: 4;
}

.doctor-hero > .container > .lead {
    grid-row: 5;
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    list-style: none;
}

.tag-list a,
.tag-list span {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 8px 12px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-control);
    background: var(--surface-page);
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.error-page {
    min-height: 60vh;
    padding-block: var(--section-space);
}

.error-page__inner {
    display: grid;
    max-width: var(--layout-reading);
    gap: var(--space-6);
}

.error-page .button {
    width: fit-content;
}

@media (max-width: 960px) {
    .section-heading,
    .cta-band > .container,
    .cta-band.container {
        grid-template-columns: 1fr;
    }

    .section-heading > p {
        max-width: var(--layout-reading);
    }

    .content-grid > *,
    .content-grid--two > *,
    .content-grid--reading > * {
        grid-column: span 6;
    }

    .cta-band__actions {
        justify-content: flex-start;
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
    }

    .site-footer__contact {
        justify-items: start;
    }

    .site-footer__social ul {
        justify-content: flex-start;
    }

    .doctor-hero__media {
        grid-column: 1 / span 4;
    }

    .doctor-hero > .container > .eyebrow,
    .doctor-hero > .container > h1,
    .doctor-hero > .container > .doctor-hero__roles,
    .doctor-hero > .container > .lead {
        grid-column: 6 / -1;
    }
}

@media (max-width: 639px) {
    .page-hero {
        padding-block: var(--space-16);
    }

    .page-hero h1 {
        font-size: 32px;
    }

    .page-hero__actions,
    .cta-band__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .page-hero__actions .button,
    .page-hero__actions .text-link,
    .cta-band__actions .button,
    .cta-band__actions .text-link {
        width: 100%;
    }

    .section-heading {
        margin-bottom: var(--space-8);
    }

    .content-grid > *,
    .content-grid--two > *,
    .content-grid--reading > * {
        grid-column: 1 / -1;
    }

    .info-card,
    .review-card {
        padding: var(--space-6);
    }

    .doctor-card__media {
        margin: calc(var(--space-6) * -1) calc(var(--space-6) * -1) var(--space-3);
    }

    .data-list > div,
    .document-list > li,
    .document-list > a {
        grid-template-columns: 1fr;
        gap: var(--space-3);
    }

    .numbered-list > li {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: var(--space-4);
    }

    .review-card__header,
    .review-card__footer,
    .review-group__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .doctor-hero > .container {
        grid-template-columns: 1fr;
    }

    .doctor-hero > .container > .text-link,
    .doctor-hero__media,
    .doctor-hero > .container > .eyebrow,
    .doctor-hero > .container > h1,
    .doctor-hero > .container > .doctor-hero__roles,
    .doctor-hero > .container > .lead {
        grid-column: 1;
        grid-row: auto;
    }

    .doctor-hero__media {
        width: min(100%, 280px);
    }
}

@media (max-width: 359px) {
    .page-hero h1 {
        font-size: 28px;
    }
}

/* Clinic profile */
.clinic-profile-hero {
    position: relative;
    display: grid;
    min-height: 640px;
    align-items: center;
    overflow: hidden;
    background: var(--surface-muted);
}

.clinic-profile-hero__media,
.clinic-profile-hero__media::after {
    position: absolute;
    inset: 0;
}

.clinic-profile-hero__media::after {
    background: linear-gradient(90deg, rgb(255 255 255 / 97%) 0%, rgb(255 255 255 / 91%) 34%, rgb(255 255 255 / 62%) 52%, rgb(255 255 255 / 8%) 74%, transparent 86%);
    content: "";
}

.clinic-profile-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 58% 48%;
}

.clinic-profile-hero__content {
    position: relative;
    z-index: 1;
    display: grid;
    max-width: var(--layout-content);
    gap: var(--space-6);
    padding-block: var(--space-20);
}

.clinic-profile-hero h1 {
    max-width: 720px;
    color: var(--brand-primary);
}

.clinic-profile-hero .lead {
    max-width: 620px;
    color: var(--text-secondary);
}

.clinic-profile-hero__actions,
.clinic-editorial__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
}

.clinic-profile-hero__actions {
    max-width: 760px;
    margin-top: var(--space-4);
}

.clinic-profile-hero__actions .text-link {
    flex: 1 1 360px;
}

.clinic-facts {
    border-bottom: 1px solid var(--border-default);
    background: var(--surface-page);
}

.clinic-facts dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.clinic-facts div {
    min-height: 148px;
    padding: var(--space-8) var(--space-10);
    border-left: 1px solid var(--border-default);
}

.clinic-facts div:first-child {
    padding-left: 0;
    border-left: 0;
}

.clinic-facts dt {
    color: var(--brand-strong);
    font-size: var(--type-h3);
    font-weight: var(--weight-semibold);
    line-height: 1.1;
}

.clinic-facts dd {
    max-width: 340px;
    margin-top: var(--space-3);
    color: var(--text-secondary);
}

.clinic-editorial,
.clinic-sout {
    padding-block: clamp(80px, 8vw, 128px);
}

.clinic-editorial--muted,
.clinic-sout {
    background: var(--surface-subtle);
}

.clinic-editorial__grid,
.clinic-practice,
.clinic-service,
.clinic-location,
.clinic-booking__layout,
.clinic-sout__heading,
.contact-map {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--grid-gap);
}

.clinic-editorial__copy {
    display: grid;
    grid-column: 1 / span 6;
    align-content: start;
    gap: var(--space-5);
}

.clinic-editorial__copy h2,
.clinic-editorial__heading h2,
.clinic-service__copy h2 {
    margin-bottom: var(--space-3);
}

.clinic-editorial__copy > p:not(.eyebrow),
.clinic-practice__copy p,
.clinic-service__copy p:not(.eyebrow) {
    color: var(--text-secondary);
}

.clinic-editorial__lead {
    margin-block: var(--space-4);
    color: var(--text-primary) !important;
    font-size: var(--type-lead);
    line-height: 1.5;
    text-wrap: balance;
}

.clinic-editorial__links {
    margin-top: var(--space-5);
}

.clinic-editorial__portrait {
    grid-column: 8 / -1;
    min-height: 680px;
    overflow: hidden;
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.clinic-editorial__portrait img,
.clinic-practice__media img,
.clinic-service__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.clinic-editorial__portrait img {
    object-position: center 16%;
}

.clinic-editorial__heading {
    display: grid;
    max-width: 860px;
    gap: var(--space-4);
    margin-bottom: var(--space-16);
}

.clinic-practice__copy {
    display: grid;
    grid-column: 1 / span 5;
    align-content: start;
    gap: var(--space-5);
}

.clinic-practice__media {
    display: grid;
    grid-column: 7 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: var(--space-4);
}

.clinic-practice__media figure {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.clinic-practice__media figure:last-child {
    margin-top: var(--space-16);
}

.clinic-service {
    align-items: center;
}

.clinic-service__media {
    min-height: 520px;
    grid-column: 1 / span 7;
    overflow: hidden;
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.clinic-service__media img {
    object-position: center;
}

.clinic-service__copy {
    display: grid;
    grid-column: 9 / -1;
    gap: var(--space-5);
}

.clinic-editorial--location {
    background: var(--brand-mist);
}

.clinic-location {
    align-items: center;
}

.clinic-location__media {
    grid-column: 1 / span 7;
    aspect-ratio: 2 / 1;
    overflow: hidden;
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.clinic-location__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.clinic-location__copy {
    display: grid;
    grid-column: 9 / -1;
    gap: var(--space-5);
}

.clinic-location__copy > p:not(.eyebrow) {
    color: var(--text-secondary);
}

.clinic-booking {
    padding-block: var(--space-20);
    background: var(--brand-strong);
    color: var(--text-on-brand);
}

.clinic-booking__layout {
    align-items: center;
}

.clinic-booking__layout > div:first-child {
    display: grid;
    grid-column: 1 / span 7;
    gap: var(--space-4);
}

.clinic-booking .eyebrow,
.clinic-booking p {
    color: var(--text-on-brand);
}

.clinic-booking__phones {
    display: grid;
    grid-column: 9 / -1;
    gap: var(--space-3);
}

.clinic-sout__heading {
    align-items: end;
    margin-bottom: var(--space-16);
}

.clinic-sout__heading > div:first-child {
    display: grid;
    grid-column: 1 / span 8;
    gap: var(--space-4);
}

.clinic-sout__meta {
    display: grid;
    grid-column: 10 / -1;
    gap: var(--space-2);
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.clinic-sout__summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-block: 1px solid var(--border-strong);
}

.clinic-sout__summary div {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-8);
    border-left: 1px solid var(--border-default);
}

.clinic-sout__summary div:first-child {
    padding-left: 0;
    border-left: 0;
}

.clinic-sout__summary dt {
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.clinic-sout__summary dd {
    color: var(--brand-primary);
    font-size: 52px;
    font-weight: var(--weight-semibold);
    line-height: 1;
}

.clinic-sout__details {
    margin-top: var(--space-10);
    border-block: 1px solid var(--border-default);
}

.clinic-sout__details summary {
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    cursor: pointer;
    font-weight: var(--weight-semibold);
    list-style: none;
}

.clinic-sout__details summary::-webkit-details-marker {
    display: none;
}

.clinic-sout__details summary::after {
    color: var(--brand-primary);
    content: "+";
    font-size: 30px;
    font-weight: var(--weight-regular);
    line-height: 1;
}

.clinic-sout__details[open] summary::after {
    content: "−";
}

.clinic-sout__table-wrap {
    overflow-x: auto;
    padding-bottom: var(--space-6);
}

.clinic-sout__table {
    width: 100%;
    min-width: 1080px;
    border-collapse: collapse;
    background: var(--surface-page);
    font-size: var(--type-small);
}

.clinic-sout__table th,
.clinic-sout__table td {
    padding: var(--space-4);
    border: 1px solid var(--border-default);
    text-align: center;
}

.clinic-sout__table thead th {
    background: var(--brand-strong);
    color: var(--text-on-brand);
    font-weight: var(--weight-semibold);
}

.clinic-sout__table tbody th {
    min-width: 280px;
    background: var(--brand-mist);
    text-align: left;
}

/* Contacts map */
.contact-map {
    align-items: center;
}

.contact-map__copy {
    display: grid;
    grid-column: 1 / span 4;
    gap: var(--space-5);
}

.contact-map__copy > p:not(.eyebrow) {
    color: var(--text-secondary);
}

.contact-map__visuals {
    display: grid;
    grid-column: 6 / -1;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: var(--space-4);
}

.contact-map__photo,
.contact-map__frame {
    min-height: 520px;
    overflow: hidden;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.contact-map__photo {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
}

.contact-map__photo img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

.contact-map__photo figcaption {
    padding: var(--space-4);
    border-top: 1px solid var(--border-default);
    background: var(--surface-page);
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.contact-map__frame iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 520px;
    border: 0;
}

@media (max-width: 960px) {
    .clinic-profile-hero {
        min-height: 580px;
    }

    .clinic-profile-hero__media::after {
        background: linear-gradient(90deg, rgb(255 255 255 / 97%) 0%, rgb(255 255 255 / 88%) 50%, rgb(255 255 255 / 24%) 78%, transparent 100%);
    }

    .clinic-editorial__copy,
    .clinic-editorial__portrait,
    .clinic-practice__copy,
    .clinic-practice__media,
    .clinic-service__media,
    .clinic-service__copy,
    .clinic-location__media,
    .clinic-location__copy,
    .clinic-booking__layout > div:first-child,
    .clinic-booking__phones,
    .clinic-sout__heading > div:first-child,
    .clinic-sout__meta,
    .contact-map__copy,
    .contact-map__visuals {
        grid-column: 1 / -1;
    }

    .clinic-editorial__portrait {
        min-height: 560px;
        margin-top: var(--space-8);
    }

    .clinic-practice__media,
    .clinic-service__media,
    .clinic-booking__phones,
    .clinic-sout__meta {
        margin-top: var(--space-8);
    }

    .clinic-service__media {
        min-height: 460px;
    }

    .clinic-service__copy {
        margin-top: var(--space-8);
    }

    .clinic-location__copy {
        margin-top: var(--space-8);
    }

    .contact-map__visuals {
        margin-top: var(--space-8);
    }

    .contact-map__photo,
    .contact-map__frame,
    .contact-map__frame iframe {
        min-height: 460px;
    }
}

@media (max-width: 639px) {
    .clinic-profile-hero {
        min-height: 620px;
        align-items: end;
    }

    .clinic-profile-hero__media::after {
        background: linear-gradient(0deg, rgb(255 255 255 / 98%) 0%, rgb(255 255 255 / 92%) 48%, rgb(255 255 255 / 34%) 78%, transparent 100%);
    }

    .clinic-profile-hero__media img {
        object-position: 58% 20%;
    }

    .clinic-profile-hero__content {
        gap: var(--space-4);
        padding-block: var(--space-10);
    }

    .clinic-profile-hero__actions,
    .clinic-editorial__links {
        align-items: stretch;
        flex-direction: column;
        gap: var(--space-3);
    }

    .clinic-profile-hero__actions .button,
    .clinic-profile-hero__actions .text-link,
    .clinic-editorial__links .text-link {
        width: 100%;
        flex: none;
    }

    .clinic-facts dl {
        grid-template-columns: 1fr;
    }

    .clinic-facts div,
    .clinic-facts div:first-child {
        min-height: 0;
        padding: var(--space-6) 0;
        border-top: 1px solid var(--border-default);
        border-left: 0;
    }

    .clinic-facts div:first-child {
        border-top: 0;
    }

    .clinic-editorial,
    .clinic-sout {
        padding-block: var(--section-space);
    }

    .clinic-editorial__portrait {
        min-height: 460px;
    }

    .clinic-editorial__heading,
    .clinic-sout__heading {
        margin-bottom: var(--space-10);
    }

    .clinic-practice__media {
        gap: var(--space-2);
    }

    .clinic-practice__media figure:last-child {
        margin-top: var(--space-6);
    }

    .clinic-service__media {
        min-height: 300px;
    }

    .clinic-booking {
        padding-block: var(--space-16);
    }

    .clinic-booking__phones .button {
        width: 100%;
    }

    .clinic-sout__summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .clinic-sout__summary div,
    .clinic-sout__summary div:first-child {
        padding: var(--space-5) var(--space-3);
        border-left: 1px solid var(--border-default);
    }

    .clinic-sout__summary div:first-child {
        padding-left: 0;
        border-left: 0;
    }

    .clinic-sout__summary dt {
        font-size: var(--type-caption);
    }

    .clinic-sout__summary dd {
        font-size: 36px;
    }

    .contact-map__visuals {
        grid-template-columns: 1fr;
    }

    .contact-map__photo {
        min-height: 420px;
    }

    .contact-map__frame,
    .contact-map__frame iframe {
        min-height: 340px;
    }
}

/* Staff directory */
.doctors-hero {
    padding-block: clamp(64px, 7vw, 112px);
}

.staff-directory {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
}

.staff-card {
    --staff-credential-columns: 1;
    --staff-name-size: 24px;
    --staff-portrait-size: 112px;

    display: grid;
    grid-template-columns: var(--staff-portrait-size) minmax(0, 1fr);
    align-items: start;
    gap: var(--space-6);
    padding: var(--space-8);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.staff-card--featured {
    --staff-credential-columns: 1;
    --staff-name-size: 30px;
    --staff-portrait-size: 168px;

    grid-column: 1 / -1;
    gap: var(--space-10);
    padding: var(--space-10);
}

.staff-card__portrait {
    width: var(--staff-portrait-size);
    aspect-ratio: 1;
    overflow: hidden;
    border: 1px solid var(--border-default);
    border-radius: 50%;
    background: var(--surface-muted);
}

.staff-card__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.staff-card__content,
.staff-card__header,
.staff-card__focus,
.staff-card__credentials {
    display: grid;
}

.staff-card__content {
    min-width: 0;
    gap: var(--space-5);
}

.staff-card__header {
    gap: var(--space-2);
}

.staff-card__header h3 {
    font-size: var(--staff-name-size);
    line-height: 1.12;
}

.staff-card__roles {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
    color: var(--brand-strong);
    font-size: var(--type-small);
    font-weight: var(--weight-medium);
    list-style: none;
}

.staff-card__roles li + li::before {
    margin-right: var(--space-3);
    color: var(--border-strong);
    content: "·";
}

.staff-card__lead {
    max-width: 920px;
    color: var(--text-secondary);
}

.staff-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}

.staff-card__facts div {
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
}

.staff-card__facts dt {
    color: var(--text-tertiary);
    font-size: var(--type-caption);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
}

.staff-card__facts dd {
    font-weight: var(--weight-semibold);
}

.staff-card__focus,
.staff-card__credentials {
    gap: var(--space-4);
    padding-top: var(--space-5);
    border-top: 1px solid var(--border-default);
}

.staff-card h4 {
    font-size: 16px;
    line-height: 1.3;
}

.staff-card__focus ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2) var(--space-6);
    color: var(--text-secondary);
    font-size: var(--type-small);
    list-style: none;
}

.staff-card__focus li {
    position: relative;
    padding-left: var(--space-4);
}

.staff-card__focus li::before {
    position: absolute;
    top: 0.62em;
    left: 0;
    width: 5px;
    height: 5px;
    background: var(--brand-primary);
    content: "";
}

.staff-card__timeline,
.staff-card__qualification-list {
    display: grid;
    grid-template-columns: repeat(var(--staff-credential-columns), minmax(0, 1fr));
    gap: 0 var(--space-8);
    list-style: none;
}

.staff-card__timeline li {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(84px, 0.24fr) minmax(0, 1fr);
    align-content: start;
    gap: var(--space-3);
    padding-block: var(--space-3);
    border-top: 1px solid var(--border-default);
    color: var(--text-secondary);
    font-size: var(--type-small);
    line-height: 1.45;
}

.staff-card__timeline time {
    color: var(--text-tertiary);
    font-weight: var(--weight-semibold);
}

.staff-card__timeline-item--accent time {
    color: var(--brand-strong);
}

.staff-card__qualification-list li {
    padding: var(--space-3) 0 var(--space-3) var(--space-5);
    border-top: 1px solid var(--border-default);
    color: var(--text-secondary);
    font-size: var(--type-small);
    line-height: 1.45;
    position: relative;
}

.staff-card__qualification-list li::before {
    position: absolute;
    top: 20px;
    left: 0;
    width: 6px;
    height: 6px;
    background: var(--brand-primary);
    content: "";
}

@media (max-width: 1199px) {
    .staff-directory {
        grid-template-columns: 1fr;
    }

    .staff-card,
    .staff-card--featured {
        --staff-credential-columns: 1;
        --staff-portrait-size: 128px;

        grid-column: auto;
        grid-template-columns: var(--staff-portrait-size) minmax(0, 1fr);
        gap: var(--space-6);
        padding: var(--space-8);
    }
}

@media (max-width: 960px) {
    .staff-card,
    .staff-card--featured {
        --staff-credential-columns: 1;
    }
}

@media (max-width: 639px) {
    .staff-card,
    .staff-card--featured {
        --staff-name-size: 21px;
        --staff-portrait-size: 88px;

        grid-template-columns: var(--staff-portrait-size) minmax(0, 1fr);
        gap: var(--space-4);
        padding: var(--space-5);
    }

    .staff-card__content {
        display: contents;
    }

    .staff-card__header {
        grid-column: 2;
        align-self: center;
    }

    .staff-card__lead,
    .staff-card__facts,
    .staff-card__focus,
    .staff-card__credentials {
        grid-column: 1 / -1;
    }

    .staff-card__lead {
        margin-top: var(--space-2);
    }

    .staff-card__timeline li {
        grid-template-columns: 76px minmax(0, 1fr);
        gap: var(--space-2);
        font-size: 13px;
    }

    .staff-card__focus ul,
    .staff-card__qualification-list li {
        font-size: 13px;
    }
}

@media (max-width: 359px) {
    .staff-card,
    .staff-card--featured {
        --staff-name-size: 19px;
        --staff-portrait-size: 72px;
    }
}

/* Compact internal page framing */
.page-intro {
    padding-block: clamp(40px, 4vw, 64px);
    border-bottom: 1px solid var(--border-default);
    background: var(--surface-page);
}

.page-intro__layout {
    display: grid;
    gap: var(--space-3);
}

.page-intro h1 {
    max-width: 1240px;
}

.page-intro__lead {
    max-width: 840px;
    margin-top: var(--space-2);
    color: var(--text-secondary);
    font-size: var(--type-lead);
    line-height: 1.5;
    text-wrap: balance;
}

.page-intro--service {
    background: var(--brand-mist);
}

.page-section--compact-top {
    padding-top: var(--space-12);
}

.section-lead {
    max-width: 920px;
    margin-bottom: var(--space-10);
    color: var(--text-secondary);
    font-size: var(--type-lead);
    line-height: 1.55;
    text-wrap: balance;
}

.services-notice {
    margin-top: var(--space-10);
}

.service-price-guidance {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-10);
}

.service-price-guidance strong {
    margin-bottom: 0;
}

.service-price-guidance .text-link {
    width: fit-content;
    margin-top: var(--space-2);
}

.service-list .service-card {
    display: flex;
    flex-direction: column;
}

.service-list .service-card .text-link {
    width: 100%;
    margin-top: auto;
}

.staff-section--primary {
    padding-top: var(--space-12);
}

.staff-section__intro {
    max-width: 860px;
    margin-bottom: var(--space-10);
    color: var(--text-secondary);
    font-size: var(--type-lead);
    text-wrap: balance;
}

/* Shared appointment CTA */
.appointment-cta {
    padding-block: var(--space-16);
    background: var(--brand-primary);
    color: var(--text-on-brand);
}

.appointment-cta__layout {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(320px, 4fr);
    align-items: end;
    gap: var(--space-10);
}

.appointment-cta__copy {
    display: grid;
    max-width: 820px;
    gap: var(--space-3);
}

.appointment-cta .eyebrow,
.appointment-cta p,
.appointment-cta .text-link {
    border-color: rgb(255 255 255 / 64%);
    color: var(--text-on-brand);
}

.appointment-cta__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-4);
}

.appointment-cta .button {
    border-color: var(--surface-page);
    background: var(--surface-page);
    color: var(--brand-strong);
}

.appointment-cta .button:hover {
    background: transparent;
    color: var(--text-on-brand);
}

main:has(.appointment-cta:last-child) + .site-footer,
main:has(.vacancy-contact:last-child) + .site-footer {
    border-top: 1px solid rgb(255 255 255 / 24%);
}

/* Appointment page */
.appointment-overview__grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(360px, 5fr);
    align-items: stretch;
    gap: var(--space-6);
}

.appointment-channel,
.appointment-first-visit {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: var(--space-5);
    padding: var(--space-10);
    border-top: 4px solid var(--brand-primary);
    border-radius: var(--radius-card);
}

.appointment-channel {
    background: var(--brand-mist);
}

.appointment-first-visit {
    position: relative;
    padding-right: var(--space-16);
    background: var(--surface-subtle);
}

.appointment-channel__lead,
.appointment-first-visit > p:last-child {
    max-width: 760px;
    color: var(--text-secondary);
    font-size: var(--type-lead);
    line-height: 1.55;
}

.appointment-channel__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-5);
    margin-block: var(--space-3);
}

.appointment-channel__facts {
    display: grid;
    margin-top: var(--space-3);
    border-top: 1px solid var(--border-strong);
}

.appointment-channel__facts > div {
    display: grid;
    grid-template-columns: minmax(120px, 3fr) minmax(0, 9fr);
    gap: var(--space-5);
    padding-block: var(--space-4);
    border-bottom: 1px solid var(--border-default);
}

.appointment-channel__facts dt {
    color: var(--brand-strong);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.appointment-channel__facts dd {
    color: var(--text-secondary);
}

.appointment-first-visit__number {
    position: absolute;
    top: var(--space-8);
    right: var(--space-8);
    color: var(--brand-primary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.appointment-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-block: 1px solid var(--border-default);
    list-style: none;
}

.appointment-steps li {
    display: flex;
    min-height: 280px;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--space-8);
    border-left: 1px solid var(--border-default);
    background: var(--surface-page);
}

.appointment-steps li:first-child {
    padding-left: 0;
    border-left: 0;
}

.appointment-steps li:nth-child(2) {
    background: var(--brand-mist);
}

.appointment-steps li > span,
.appointment-guide > span {
    color: var(--brand-primary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.appointment-steps h3 {
    margin-top: auto;
}

.appointment-steps p,
.appointment-preparation__heading > p:last-child,
.appointment-guide p {
    color: var(--text-secondary);
    line-height: 1.6;
}

.appointment-preparation__grid {
    display: grid;
    grid-template-columns: minmax(280px, 4fr) minmax(0, 8fr);
    gap: var(--space-12);
}

.appointment-preparation__heading {
    display: grid;
    align-content: start;
    gap: var(--space-4);
}

.appointment-guides {
    display: grid;
}

.appointment-guide {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: var(--space-6);
    padding-block: var(--space-8);
    border-top: 1px solid var(--border-default);
}

.appointment-guide:first-child {
    padding-top: var(--space-6);
    border-top: 4px solid var(--brand-primary);
}

.appointment-guide > div {
    display: grid;
    gap: var(--space-3);
}

/* Documents and reusable requisites */
.documents-overview__grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(420px, 5fr);
    align-items: start;
    gap: var(--space-8);
}

.license-panel,
.company-requisites {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: var(--space-5);
    padding: var(--space-10);
    border: 1px solid var(--border-default);
    border-top: 4px solid var(--brand-primary);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.company-requisites {
    background: var(--surface-subtle);
}

.license-panel__status {
    color: var(--brand-strong);
    font-weight: var(--weight-semibold);
}

.license-panel .data-list > div,
.company-requisites .data-list > div {
    grid-template-columns: minmax(150px, 4fr) minmax(0, 8fr);
    gap: var(--space-5);
    padding-block: var(--space-4);
}

.company-requisites > .button {
    justify-self: start;
    margin-top: var(--space-2);
}

.document-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
    list-style: none;
}

.document-grid > li {
    min-width: 0;
}

.document-card {
    display: grid;
    min-height: 100%;
    align-content: start;
    gap: var(--space-4);
    padding: var(--space-8);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.document-grid > li:nth-child(4n + 2) .document-card,
.document-grid > li:nth-child(4n + 3) .document-card {
    background: var(--brand-mist);
}

.document-card h3 {
    font-size: var(--type-h3);
}

.document-card > p:not(.eyebrow) {
    color: var(--text-secondary);
}

.document-card .text-link {
    align-self: end;
    margin-top: auto;
}

.document-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--border-default);
    list-style: none;
}

.document-card__links li + li {
    border-top: 0;
}

.document-card__links .text-link {
    min-height: 40px;
}

/* Contacts */
.contact-overview__grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    align-items: start;
    gap: var(--space-12);
}

.contact-stack {
    display: grid;
    gap: var(--space-6);
}

.contact-stack__lead {
    margin-bottom: var(--space-2);
    color: var(--text-secondary);
    font-size: var(--type-lead);
    line-height: 1.5;
    text-wrap: balance;
}

.contact-card {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-8);
    border: 1px solid var(--border-default);
    border-top: 3px solid var(--brand-primary);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.contact-card--primary {
    background: var(--brand-mist);
}

.contact-card--muted {
    background: var(--surface-subtle);
}

.contact-card > p:not(.eyebrow),
.contact-card .data-list {
    color: var(--text-secondary);
}

.contact-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-2);
}

.contact-card .data-list > div {
    grid-template-columns: minmax(140px, 4fr) minmax(0, 8fr);
    gap: var(--space-4);
    padding-block: var(--space-4);
}

.contact-overview > .container > .company-requisites,
.contact-overview__grid > .company-requisites {
    background: var(--surface-subtle);
}

@media (min-width: 1200px) {
    .contact-overview__grid {
        row-gap: var(--space-6);
    }

    .contact-overview__grid > .contact-stack {
        display: contents;
    }

    .contact-overview__grid > .contact-stack > * {
        grid-column: 1;
    }

    .contact-overview__grid > .company-requisites {
        grid-column: 2;
        grid-row: 2 / span 3;
    }
}

/* Clinic photo narrative */
.clinic-practice__media--single {
    grid-template-columns: 1fr;
}

.clinic-practice__media--single figure {
    aspect-ratio: 16 / 10;
}

.clinic-practice__media--single figure:last-child {
    margin-top: 0;
}

.clinic-service__media {
    display: grid;
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: var(--space-4);
    overflow: visible;
    border-radius: 0;
    background: transparent;
}

.clinic-service__media figure {
    min-height: 520px;
    overflow: hidden;
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.clinic-service__media figure:last-child {
    margin-top: var(--space-12);
}

/* Article index and reading layout */
.article-intro {
    padding-block: var(--space-16);
    border-bottom: 1px solid var(--border-default);
    background: var(--surface-page);
}

.article-intro__grid,
.article-content__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--grid-gap);
}

.article-intro__copy {
    display: grid;
    min-width: 0;
    grid-column: 1 / span 5;
    align-content: center;
    gap: var(--space-5);
    padding-block: var(--space-8);
}

.article-intro__copy h1 {
    font-size: clamp(42px, 4vw, 58px);
    line-height: 1.04;
}

.article-intro__copy time {
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.article-intro__copy .text-link {
    justify-self: start;
    margin-top: var(--space-3);
}

.article-intro__media {
    min-height: 420px;
    grid-column: 7 / -1;
    overflow: hidden;
    border-radius: var(--radius-media);
    background: var(--surface-muted);
}

.article-intro__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.article-index {
    position: sticky;
    top: calc(var(--site-header-height) + var(--space-6));
    display: grid;
    grid-column: 1 / span 3;
    align-self: start;
    gap: var(--space-4);
    padding-top: var(--space-4);
    border-top: 3px solid var(--brand-primary);
}

.article-index ol {
    display: grid;
    gap: var(--space-3);
    padding-left: 1.25em;
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.article-index a:hover {
    color: var(--brand-strong);
}

.article-prose {
    display: grid;
    max-width: 900px;
    grid-column: 5 / span 7;
    gap: var(--space-5);
}

.article-prose h2 {
    margin-top: var(--space-12);
    padding-top: var(--space-6);
    border-top: 1px solid var(--border-default);
    scroll-margin-top: var(--space-6);
}

.article-prose h2:first-child {
    margin-top: 0;
}

.article-prose p,
.article-prose li {
    color: var(--text-secondary);
    line-height: 1.7;
}

.article-prose__lead {
    color: var(--text-primary) !important;
    font-size: var(--type-lead);
    line-height: 1.6 !important;
}

.article-prose__list {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-6) var(--space-8) var(--space-6) calc(var(--space-8) + 1.2em);
    border-left: 4px solid var(--brand-primary);
    background: var(--brand-mist);
}

/* Vacancies */
.vacancy-overview__heading {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr);
    align-items: end;
    gap: var(--space-8);
    margin-bottom: var(--space-12);
}

.vacancy-overview__heading .section-lead {
    margin-bottom: 0;
}

.vacancy-overview__heading > div {
    display: grid;
    gap: var(--space-3);
}

.vacancy-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-block: 1px solid var(--border-strong);
    list-style: none;
}

.vacancy-facts li {
    display: grid;
    min-height: 156px;
    align-content: space-between;
    gap: var(--space-5);
    padding: var(--space-8);
    border-left: 1px solid var(--border-default);
}

.vacancy-facts li:first-child {
    padding-left: 0;
    border-left: 0;
}

.vacancy-facts span {
    color: var(--brand-primary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.vacancy-facts strong {
    max-width: 360px;
    min-width: 0;
    font-size: 24px;
    line-height: 1.25;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.vacancy-conditions__grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: var(--space-6);
}

.vacancy-conditions__grid > section {
    padding: var(--space-10);
    border-top: 4px solid var(--brand-primary);
    background: var(--surface-page);
}

.vacancy-conditions__benefits {
    background: var(--brand-mist) !important;
}

.vacancy-conditions h3 {
    margin-bottom: var(--space-6);
}

.vacancy-conditions ul {
    display: grid;
    gap: var(--space-4);
    padding-left: 1.2em;
    color: var(--text-secondary);
}

.vacancy-openings__grid {
    display: grid;
    grid-template-columns: minmax(300px, 4fr) minmax(0, 8fr);
    gap: var(--space-12);
}

.vacancy-openings__heading {
    display: grid;
    align-content: start;
    gap: var(--space-4);
}

.vacancy-openings__heading p:not(.eyebrow) {
    color: var(--text-secondary);
}

.vacancy-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    list-style: none;
}

.vacancy-list li {
    display: grid;
    min-height: 132px;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
    gap: var(--space-4);
    padding: var(--space-6);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-card);
}

.vacancy-list li:nth-child(4n + 2),
.vacancy-list li:nth-child(4n + 3) {
    background: var(--brand-mist);
}

.vacancy-list span {
    color: var(--brand-primary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.vacancy-list h3 {
    font-size: 20px;
}

.vacancy-contact {
    padding-block: var(--space-16);
    background: var(--brand-primary);
    color: var(--text-on-brand);
}

.vacancy-contact__layout {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(320px, 4fr);
    align-items: end;
    gap: var(--space-10);
}

.vacancy-contact__layout > div:first-child {
    display: grid;
    gap: var(--space-3);
}

.vacancy-contact a,
.vacancy-contact p,
.vacancy-contact .eyebrow {
    color: var(--text-on-brand);
}

.vacancy-contact__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-4);
}

.vacancy-contact .button {
    background: var(--surface-page);
    color: var(--brand-strong);
}

/* Patient information */
.patient-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
}

.patient-card {
    display: grid;
    min-height: 100%;
    align-content: start;
    gap: var(--space-4);
    padding: var(--space-8);
    border: 1px solid var(--border-default);
    border-top: 4px solid var(--brand-primary);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.patient-card:nth-child(4n + 1),
.patient-card:nth-child(4n) {
    background: var(--brand-mist);
}

.patient-card:nth-child(4n + 2) {
    background: var(--surface-subtle);
}

.patient-card__number {
    color: var(--brand-primary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.patient-card h2 {
    font-size: var(--type-h3);
}

.patient-card p,
.patient-card li {
    color: var(--text-secondary);
}

.patient-card ul {
    display: grid;
    gap: var(--space-3);
    padding-left: 1.2em;
}

/* Reviews */
.reviews-index .section-lead {
    margin-top: var(--space-4);
    margin-bottom: var(--space-6);
}

.review-list .review-card:nth-child(even) {
    background: var(--brand-mist);
}

.review-card blockquote {
    color: var(--text-secondary);
    line-height: 1.65;
}

.offers-document .offer-list > .offer-card:nth-child(even) {
    background: var(--brand-mist);
}

/* Legal documents */
.legal-content__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--grid-gap);
}

.legal-aside {
    position: sticky;
    top: calc(var(--site-header-height) + var(--space-6));
    display: grid;
    grid-column: 1 / span 3;
    align-self: start;
    gap: var(--space-8);
    padding-top: var(--space-4);
    border-top: 4px solid var(--brand-primary);
}

.legal-aside__lead {
    color: var(--text-secondary);
    font-size: var(--type-lead);
    line-height: 1.55;
}

.legal-aside nav {
    display: grid;
    gap: var(--space-3);
}

.legal-aside .text-link {
    justify-self: start;
}

.legal-document {
    display: grid;
    grid-column: 5 / span 7;
}

.legal-document__section {
    display: grid;
    gap: var(--space-6);
    padding-block: var(--space-10);
    border-top: 1px solid var(--border-default);
}

.legal-document__section:first-child {
    padding-top: 0;
    border-top: 0;
}

.legal-document__section:nth-child(even) {
    padding-inline: var(--space-6);
    border-left: 4px solid var(--brand-primary);
    background: var(--surface-subtle);
}

.legal-document__section h2 {
    font-size: 30px;
}

.legal-document__text {
    display: grid;
    gap: var(--space-4);
}

.legal-document__text p {
    color: var(--text-secondary);
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.legal-document__text .legal-clause {
    color: var(--text-primary);
}

/* Sitemap */
.sitemap-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-6);
}

.sitemap-group {
    display: grid;
    min-width: 0;
    grid-column: span 4;
    align-content: start;
    gap: var(--space-5);
    padding: var(--space-8);
    border: 1px solid var(--border-default);
    border-top: 4px solid var(--brand-primary);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.sitemap-group:nth-child(even) {
    background: var(--brand-mist);
}

.sitemap-group:nth-last-child(-n + 2) {
    grid-column: span 6;
}

.sitemap-group__number {
    color: var(--brand-primary);
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.sitemap-group h2 {
    font-size: var(--type-h3);
}

.sitemap-list {
    display: grid;
    border-top: 1px solid var(--border-default);
    list-style: none;
}

.sitemap-list a {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding-block: var(--space-3);
    border-bottom: 1px solid var(--border-default);
    transition: color var(--transition-fast), padding-left var(--transition-fast);
}

.sitemap-list a:hover {
    padding-left: var(--space-2);
    color: var(--brand-strong);
}

.sitemap-list a > span:last-child {
    color: var(--brand-primary);
}

@media (max-width: 1199px) {
    .documents-overview__grid,
    .contact-overview__grid {
        grid-template-columns: 1fr;
    }

    .article-intro__copy {
        grid-column: 1 / span 5;
    }

    .article-intro__media {
        grid-column: 6 / -1;
    }

    .legal-document {
        grid-column: 5 / -1;
    }
}

@media (max-width: 960px) {
    .appointment-cta__layout,
    .appointment-overview__grid,
    .appointment-preparation__grid,
    .vacancy-overview__heading,
    .vacancy-conditions__grid,
    .vacancy-openings__grid,
    .vacancy-contact__layout {
        grid-template-columns: 1fr;
    }

    .appointment-cta__actions,
    .vacancy-contact__actions {
        justify-content: flex-start;
    }

    .article-intro__copy,
    .article-intro__media,
    .article-index,
    .article-prose,
    .legal-aside,
    .legal-document {
        position: static;
        grid-column: 1 / -1;
    }

    .article-intro__media {
        min-height: 360px;
        margin-top: var(--space-6);
    }

    .article-index,
    .legal-aside {
        margin-bottom: var(--space-8);
    }

    .clinic-service__media figure {
        min-height: 460px;
    }

    .vacancy-openings__heading {
        margin-bottom: var(--space-2);
    }

    .appointment-steps {
        grid-template-columns: 1fr;
    }

    .appointment-steps li,
    .appointment-steps li:first-child {
        min-height: 0;
        padding: var(--space-8);
        border-top: 1px solid var(--border-default);
        border-left: 0;
    }

    .appointment-steps li:first-child {
        border-top: 0;
    }

    .appointment-steps h3 {
        margin-top: 0;
    }

    .sitemap-group,
    .sitemap-group:nth-last-child(-n + 2) {
        grid-column: span 6;
    }
}

@media (max-width: 639px) {
    .page-intro {
        padding-block: var(--space-10);
    }

    .page-intro h1 {
        font-size: 34px;
    }

    .appointment-cta,
    .vacancy-contact {
        padding-block: var(--space-12);
    }

    .appointment-cta__actions,
    .vacancy-contact__actions,
    .contact-card__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .appointment-cta__actions .button,
    .appointment-cta__actions .text-link,
    .vacancy-contact__actions .button,
    .vacancy-contact__actions .text-link,
    .contact-card__actions .button,
    .contact-card__actions .text-link {
        width: 100%;
    }

    .license-panel,
    .company-requisites,
    .document-card,
    .contact-card,
    .patient-card,
    .vacancy-conditions__grid > section,
    .appointment-channel,
    .appointment-first-visit,
    .sitemap-group {
        padding: var(--space-6);
    }

    .appointment-first-visit {
        padding-right: var(--space-12);
    }

    .appointment-channel__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .appointment-channel__actions .button,
    .appointment-channel__actions .text-link {
        width: 100%;
    }

    .appointment-channel__facts > div,
    .appointment-guide {
        grid-template-columns: 1fr;
        gap: var(--space-2);
    }

    .sitemap-group,
    .sitemap-group:nth-last-child(-n + 2) {
        grid-column: 1 / -1;
    }

    .document-card__links {
        display: grid;
        gap: 0;
        padding-top: 0;
    }

    .document-card__links li + li {
        border-top: 1px solid var(--border-default);
    }

    .document-card__links .text-link {
        min-height: 48px;
    }

    .license-panel .data-list > div,
    .company-requisites .data-list > div,
    .contact-card .data-list > div {
        grid-template-columns: 1fr;
        gap: var(--space-2);
    }

    .document-grid,
    .patient-grid,
    .vacancy-facts,
    .vacancy-list,
    .clinic-service__media {
        grid-template-columns: 1fr;
    }

    .vacancy-facts li,
    .vacancy-facts li:first-child {
        min-height: 0;
        padding: var(--space-6) 0;
        border-top: 1px solid var(--border-default);
        border-left: 0;
    }

    .vacancy-facts li:first-child {
        border-top: 0;
    }

    .article-intro {
        padding-block: var(--space-10);
    }

    .article-intro__copy h1 {
        font-size: clamp(32px, 9.4vw, 36px);
    }

    .article-intro__media {
        min-height: 240px;
    }

    .article-prose h2,
    .legal-document__section h2 {
        font-size: 26px;
    }

    .article-prose__list {
        padding: var(--space-5) var(--space-5) var(--space-5) calc(var(--space-5) + 1.2em);
    }

    .legal-document__section:nth-child(even) {
        padding-inline: var(--space-4);
    }

    .clinic-service__media figure,
    .clinic-service__media figure:last-child {
        min-height: 300px;
        margin-top: 0;
    }
}

/* Client closeout: removed panels and readable review attribution. */
.documents-overview__grid,
.contact-overview__grid {
    grid-template-columns: minmax(0, 1fr);
}
.contact-overview .contact-stack {
    width: 100%;
}
.clinic-service__media {
    grid-template-columns: minmax(0, 1fr);
}
.review-card__header h3 {
    font-size: 16px;
    font-weight: 400;
}
.review-card__rating {
    white-space: nowrap;
    color: var(--brand-strong);
    font-size: 16px;
}
.clinic-facts dt {
    overflow-wrap: anywhere;
}

@media (max-width: 560px) {
    .service-detail--diagnostics .page-intro h1 {
        font-size: clamp(24px, 7vw, 32px);
    }
}
