/* Layout belongs to components; typography belongs to shared t-* utilities. */
.sm-location {
    --sm-header-offset: 10.625rem;
    background: var(--color-surface-brand);
    color: var(--color-text);
    padding: calc(var(--sm-header-offset) + var(--space-20)) var(--space-page-x) var(--space-64);
    min-height: 70vh;
}
.sm-location *, .sm-location *::before, .sm-location *::after { box-sizing: border-box; }
.sm-location :is(h1, h2, p, dl, dd, address) { margin: 0; }
.sm-location a:not(.sm-button) { color: var(--color-brand); text-underline-offset: 0.15em; }
.sm-location__layout, .sm-location__related { max-width: var(--container-max); margin-inline: auto; }
.sm-location__layout { display: grid; grid-template-columns: minmax(0, 796fr) minmax(0, 390fr); gap: var(--space-12); align-items: stretch; }
.sm-location__information { display: grid; grid-template-rows: auto 1fr; gap: var(--space-12); min-width: 0; }
.sm-location__card { background: var(--color-surface); border-radius: var(--radius-sm); box-shadow: var(--shadow-blue); padding: var(--space-32) var(--space-24); min-width: 0; }
.sm-location__title { color: var(--color-heading); }
.sm-location__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto 1fr; gap: var(--space-12); }
.sm-location__cards > section { display: flex; align-items: flex-start; gap: var(--space-16); }
.sm-location__address { grid-column: 1; grid-row: 1; }
.sm-location__opening { grid-column: 1; grid-row: 2; }
.sm-location__pobran { grid-column: 2; grid-row: 1; }
.sm-location__szczepien { grid-column: 2; grid-row: 2; }
.sm-location__icon { flex: 0 0 32px; width: 32px; height: 32px; display: block; }
.sm-location__card-content { display: flex; flex-direction: column; gap: var(--space-8); min-width: 0; }
.sm-location__card-content address { display: flex; flex-direction: column; gap: var(--space-8); font-style: normal; }
.sm-location__card-content a { overflow-wrap: anywhere; }
.sm-location__hours { display: grid; gap: var(--space-8); }
.sm-location__hours > div { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: var(--space-16); }
.sm-location__unavailable { color: var(--color-danger); }
.sm-location__alternatives summary { color: var(--color-brand); text-decoration: underline; cursor: pointer; }
.sm-location__alternatives ul { padding-left: var(--space-20); margin-block: var(--space-12) 0; }
.sm-location__alternatives li + li { margin-top: var(--space-8); }
.sm-location__points-link { text-decoration: underline; }
.sm-location__contact { display: flex; flex-direction: column; gap: var(--space-32); }
.sm-location__contact-heading { display: grid; gap: var(--space-4); text-align: center; }
.sm-location__actions, .sm-location__map-actions { display: grid; gap: var(--space-12); }
.sm-location .sm-button { display: flex; align-items: center; justify-content: center; min-height: 3.5rem; padding: var(--space-16) var(--space-24); border: 2px solid transparent; border-radius: var(--radius-sm); background: var(--color-brand); color: var(--color-text-inverse); text-align: center; text-decoration: none; transition: filter 150ms ease; }
.sm-location .sm-button--accent { background: var(--color-accent); }
.sm-location .sm-button--navy { background: var(--color-heading); }
.sm-location .sm-button--outline { background: transparent; border-color: var(--color-text); color: var(--color-text); }
.sm-location .sm-button:hover { filter: brightness(0.9); }
.sm-location :is(a, summary):focus-visible { outline: 3px solid var(--color-brand); outline-offset: 4px; }
.sm-location__map { display: block; position: relative; aspect-ratio: 579 / 306; border-radius: var(--radius-sm); overflow: hidden; }
.sm-location__map img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sm-location__map--figma img { position: absolute; width: 150.11%; height: 256.2%; max-width: none; left: -25.05%; top: -78.1%; }
.sm-location__related { display: grid; gap: var(--space-12); margin-top: var(--space-12); }
.sm-location__directory summary { display: flex; align-items: center; gap: var(--space-16); cursor: pointer; list-style: none; }
.sm-location__directory summary::-webkit-details-marker { display: none; }
.sm-location__section-icon { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; padding: var(--space-6); background: var(--color-brand); border-radius: var(--radius-pill); }
.sm-location__caret { margin-left: auto; flex: 0 0 24px; }
.sm-location__directory[open] > summary .sm-location__caret { transform: rotate(180deg); }
.sm-location__specialists > .sm-catalogue-doctors { margin-top: var(--space-12); }
.sm-location__directory { scroll-margin-top: calc(var(--sm-site-header-height, 118px) + var(--space-32)); }
.sm-location__directory > p, .sm-location__directory > ul { margin-top: var(--space-24); }
.sm-location .sm-location-catalogue { padding: 0; min-height: 0; margin: 0; background: transparent; scroll-margin-top: calc(var(--sm-site-header-height,118px) + var(--space-32)); }
.sm-location .sm-location-catalogue a { color: inherit; }
.sm-location-catalogue .sm-search-chips a:not(.sm-search-reset) { color: var(--c-copy); }
.sm-location-catalogue .sm-search-bar { flex-wrap: nowrap; }
.sm-location-catalogue .sm-search-input { flex-basis: 260px; }
.sm-location-catalogue .sm-search-filters { width: auto; }
.sm-location-catalogue .sm-search-chip-locked { display: inline-flex; align-items: center; border-radius: var(--radius-pill); background: var(--c-white); color: var(--c-copy); padding: var(--space-8) var(--space-16); }
.sm-location-catalogue .sm-search-mobile-actions { grid-template-columns: 1fr; }
.sm-location__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-16) var(--space-32); padding-left: var(--space-20); }
@media (max-width: 63.999rem) {
    .sm-location__layout { grid-template-columns: 1fr; }
    .sm-location__contact { max-width: none; }
}
@media (max-width: 47.999rem) {
    .sm-location-catalogue .sm-search-input { flex-basis: auto; }
    .sm-location-catalogue .sm-search-filters { width: 100%; }
    .sm-location { --sm-header-offset: 6rem; padding-bottom: var(--space-48); }
    .sm-location__card { padding: var(--space-24) var(--space-16); }
    .sm-location__cards { grid-template-columns: 1fr; }
    .sm-location__cards { grid-template-rows: none; }
    .sm-location__cards > section { grid-column: auto; grid-row: auto; }
    .sm-location__links { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .sm-location .sm-button { transition: none; } }
