/*
Theme Name: Sapporo Hospital
Theme URI: https://sapporo-hospital.com/
Author: Sapporo Hospital
Description: 高齢者や体調の悪い方にも使いやすい病院検索サイト専用テーマです。
Version: 0.10.4
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: sapporo-hospital
*/

:root {
	--sh-bg: #f7f9f8;
	--sh-surface: #ffffff;
	--sh-text: #17251f;
	--sh-muted: #52635b;
	--sh-line: #d9e2de;
	--sh-primary: #17684d;
	--sh-primary-dark: #0f4d39;
	--sh-accent: #eaf5f0;
	--sh-warning: #fff7df;
	--sh-radius: 14px;
	--sh-shadow: 0 8px 24px rgba(19, 61, 46, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--sh-bg);
	color: var(--sh-text);
	font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
	font-size: 17px;
	line-height: 1.75;
}
a { color: var(--sh-primary-dark); text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
	outline: 3px solid #f0a930;
	outline-offset: 3px;
}
img { max-width: 100%; height: auto; }
.site-shell { width: min(1160px, calc(100% - 32px)); margin-inline: auto; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 9999; background: #fff; padding: 12px; }
.skip-link:focus { left: 8px; }

.site-header { position: relative; z-index: 100; background: rgba(255, 255, 255, .98); border-bottom: 1px solid var(--sh-line); }
.site-header__inner { position: relative; min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-brand { display: flex; align-items: center; gap: 11px; color: var(--sh-text); text-decoration: none; }
.site-brand__mark { flex: 0 0 auto; width: 56px; height: 56px; }
.site-brand__copy { display: flex; flex-direction: column; min-width: 0; }
.site-brand__name { font-size: clamp(21px, 3vw, 27px); font-weight: 800; line-height: 1.2; letter-spacing: .02em; white-space: nowrap; }
.site-brand__tagline { margin-top: 3px; color: var(--sh-muted); font-size: 13px; font-weight: 650; line-height: 1.35; }
.site-nav ul { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: 0; padding: 0; list-style: none; }
.site-nav a { display: inline-flex; min-height: 46px; align-items: center; color: var(--sh-text); font-weight: 700; text-decoration: none; }
.site-nav a:hover { color: var(--sh-primary); text-decoration: underline; }
.site-nav .site-nav__primary { padding: 8px 18px; border-radius: 9px; background: var(--sh-primary); color: #fff; }
.site-nav .site-nav__primary:hover { background: var(--sh-primary-dark); color: #fff; text-decoration: none; }
.site-menu { display: none; }
.site-menu summary { min-height: 48px; padding: 10px 14px; border: 2px solid var(--sh-primary); border-radius: 9px; color: var(--sh-primary-dark); font-weight: 750; cursor: pointer; list-style: none; }
.site-menu summary::-webkit-details-marker { display: none; }
.site-menu summary::before { content: "☰"; margin-right: 8px; font-size: 19px; }
.site-menu[open] summary::before { content: "×"; }
.site-menu__panel { position: absolute; top: calc(100% + 1px); right: 0; display: grid; width: min(360px, calc(100vw - 24px)); padding: 10px; border: 1px solid var(--sh-line); border-radius: 0 0 12px 12px; background: #fff; box-shadow: var(--sh-shadow); }
.site-menu__panel a { display: flex; min-height: 54px; align-items: center; padding: 8px 12px; border-bottom: 1px solid var(--sh-line); color: var(--sh-text); font-size: 17px; font-weight: 750; text-decoration: none; }
.site-menu__panel a:first-child { color: var(--sh-primary-dark); }
.site-menu__panel a:last-child { border-bottom: 0; }

.site-alerts { padding: 14px 0; border-bottom: 1px solid var(--sh-line); background: #fff; }
.site-alerts__inner { display: grid; gap: 10px; }
.site-alert { padding: 16px 18px; border: 2px solid #cf9a28; border-radius: 12px; background: #fff7df; color: #322a18; }
.site-alert--emergency { border-color: #b3261e; background: #fff0ef; color: #43110e; }
.site-alert--vaccine { border-color: #2f6fa0; background: #edf7ff; color: #163b57; }
.site-alert--info { border-color: #4d8170; background: #eff8f5; color: #173d30; }
.site-alert__heading { display: flex; align-items: flex-start; gap: 12px; }
.site-alert__label { flex: 0 0 auto; display: inline-flex; min-height: 31px; align-items: center; padding: 3px 10px; border-radius: 6px; background: #6f5313; color: #fff; font-size: 14px; font-weight: 800; line-height: 1.4; }
.site-alert--emergency .site-alert__label { background: #9d1c16; }
.site-alert--vaccine .site-alert__label { background: #225f8c; }
.site-alert--info .site-alert__label { background: #27634f; }
.site-alert h2 { margin: 1px 0 0; font-size: 19px; line-height: 1.55; }
.site-alert__content { margin: 7px 0 0; }
.site-alert__content p { margin: 0; }
.site-alert__content p + p { margin-top: 7px; }
.site-alert__link { display: inline-flex; min-height: 44px; align-items: center; margin-top: 8px; color: inherit; font-weight: 800; }

.hero { padding: clamp(40px, 7vw, 88px) 0 48px; background: linear-gradient(180deg, #f1f8f5 0%, var(--sh-bg) 100%); }
.hero__eyebrow { margin: 0 0 8px; color: var(--sh-primary); font-weight: 750; }
.hero h1 { max-width: 820px; margin: 0 0 14px; font-size: clamp(32px, 6vw, 54px); line-height: 1.3; letter-spacing: .01em; }
.hero__lead { max-width: 760px; margin: 0 0 30px; color: var(--sh-muted); font-size: clamp(18px, 2.4vw, 21px); }

.hospital-search { padding: clamp(20px, 4vw, 34px); background: var(--sh-surface); border: 1px solid var(--sh-line); border-radius: var(--sh-radius); box-shadow: var(--sh-shadow); }
.hospital-search label, .hospital-search legend { color: var(--sh-text); font-weight: 700; }
.hospital-search__main input, .hospital-search select {
	width: 100%; min-height: 54px; margin-top: 7px; border: 2px solid #aebdb6; border-radius: 9px; background: #fff; color: var(--sh-text); font: inherit; padding: 10px 13px;
}
.hospital-search__filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 18px; }
.hospital-search__groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 18px 0; }
.hospital-search__checks { display: flex; flex-wrap: wrap; align-content: start; gap: 8px 18px; min-width: 0; margin: 0; padding: 14px 16px 12px; border: 1px solid var(--sh-line); border-radius: 10px; background: #fbfcfc; }
.hospital-search__checks legend { padding: 0 5px; }
.hospital-search__checks label { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.hospital-search__checks input { width: 22px; height: 22px; margin-right: 8px; accent-color: var(--sh-primary); }
.hospital-search__checks--wide { grid-column: 1 / -1; }
.hospital-search__more { margin: 16px 0; border: 1px solid var(--sh-line); border-radius: 10px; background: #fff; }
.hospital-search__more summary { min-height: 54px; padding: 13px 16px; color: var(--sh-primary-dark); font-weight: 750; cursor: pointer; }
.hospital-search__more[open] summary { border-bottom: 1px solid var(--sh-line); background: var(--sh-accent); }
.hospital-search__groups--more { margin: 14px; }
.hospital-search__main--optional { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--sh-line); }
.hospital-search__optional { margin: 2px 0 0; color: var(--sh-muted); font-size: 14px; }
.hospital-search__note { margin: 12px 0 18px; color: var(--sh-muted); font-size: 14px; line-height: 1.6; }
.hospital-search__submit, .facility-button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 54px; border: 0; border-radius: 9px; background: var(--sh-primary); color: #fff; font: inherit; font-weight: 750; padding: 12px 24px; text-decoration: none; cursor: pointer;
}
.hospital-search__submit:hover, .hospital-search__submit:focus-visible, .hospital-search__submit:active,
.facility-button:hover, .facility-button:focus-visible, .facility-button:active { background: var(--sh-primary-dark); color: #fff; }
.facility-button--secondary { background: #eef3f1; color: var(--sh-primary-dark); border: 1px solid var(--sh-line); }

.home-section { padding: 54px 0; }
.home-section h2, .archive-header h1, .entry-header h1 { margin: 0 0 10px; font-size: clamp(27px, 4vw, 38px); line-height: 1.35; }
.section-lead { margin: 0 0 24px; color: var(--sh-muted); }
.ward-map-wrap { max-width: 760px; margin: 8px auto 30px; padding: clamp(14px, 3vw, 26px); border: 1px solid var(--sh-line); border-radius: 22px; background: #fff; box-shadow: var(--sh-shadow); }
.ward-map { display: block; width: 100%; height: auto; }
.ward-map__shape { stroke: #fff; stroke-width: 7; stroke-linejoin: round; transition: filter .16s ease, stroke .16s ease, transform .16s ease; transform-box: fill-box; transform-origin: center; }
.ward-map__link text { fill: #17251f; font-size: 22px; font-weight: 800; text-anchor: middle; dominant-baseline: middle; pointer-events: none; }
.ward-map__link:hover .ward-map__shape { filter: brightness(.96) saturate(1.12); stroke: var(--sh-primary); transform: scale(1.015); }
.ward-map__link:focus { outline: none; }
.ward-map__link:focus .ward-map__shape { stroke: #f0a930; stroke-width: 9; }
.ward-map__link--teine .ward-map__shape { fill: #dceaf7; }
.ward-map__link--kita .ward-map__shape { fill: #e7e0f3; }
.ward-map__link--higashi .ward-map__shape { fill: #f5dedd; }
.ward-map__link--nishi .ward-map__shape { fill: #f5e1c8; }
.ward-map__link--chuo .ward-map__shape { fill: #dcefd9; }
.ward-map__link--shiroishi .ward-map__shape { fill: #fae8b9; }
.ward-map__link--atsubetsu .ward-map__shape { fill: #d9eeea; }
.ward-map__link--toyohira .ward-map__shape { fill: #e8eccf; }
.ward-map__link--kiyota .ward-map__shape { fill: #eadff1; }
.ward-map__link--minami .ward-map__shape { fill: #d8e5d3; }
.ward-map-note { margin: 8px 0 0; color: var(--sh-muted); font-size: 14px; text-align: center; }
.ward-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.ward-link { display: flex; min-height: 64px; align-items: center; justify-content: center; border: 2px solid var(--sh-line); border-radius: 12px; background: var(--sh-surface); color: var(--sh-text); font-size: 18px; font-weight: 750; text-decoration: none; }
.ward-link:hover { border-color: var(--sh-primary); background: var(--sh-accent); }
.quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.quick-card { min-height: 116px; padding: 24px; border: 1px solid var(--sh-line); border-radius: var(--sh-radius); background: var(--sh-surface); color: var(--sh-text); font-size: 20px; font-weight: 750; text-decoration: none; box-shadow: var(--sh-shadow); }
.quick-card span { display: block; margin-top: 5px; color: var(--sh-muted); font-size: 15px; font-weight: 500; }

.archive-main, .single-main { padding: 44px 0 72px; }
.archive-header { margin-bottom: 28px; }
.result-count { color: var(--sh-muted); }
.medical-guide__breadcrumb { margin-bottom: 20px; line-height: 1.8; overflow-wrap: anywhere; }
.medical-guide__label { margin-bottom: 8px; color: var(--sh-primary-dark); font-weight: 750; }
.medical-guide { padding: clamp(20px, 4vw, 36px); border: 1px solid var(--sh-line); border-radius: var(--sh-radius); background: var(--sh-surface); }
.medical-guide h2 { margin-top: 0; }
.medical-guide p { line-height: 1.9; }
.medical-guide__notice { margin: 20px 0; padding: 16px 20px; border-left: 4px solid #d99b25; background: var(--sh-warning); }
.medical-guide__notice p:first-child { margin-top: 0; }
.medical-guide__notice p:last-child { margin-bottom: 0; }
.medical-guide__source { overflow-wrap: anywhere; font-size: 15px; }
.medical-guide__children { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; list-style: none; }
.medical-guide__children a { display: inline-flex; min-height: 44px; align-items: center; padding: 8px 12px; background: var(--sh-accent); border-radius: 8px; }
.medical-guide__facilities { margin-top: 36px; scroll-margin-top: 100px; }
.facility-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.facility-card { display: flex; flex-direction: column; min-height: 100%; overflow: hidden; border: 1px solid var(--sh-line); border-radius: var(--sh-radius); background: var(--sh-surface); box-shadow: var(--sh-shadow); }
.facility-card__image { aspect-ratio: 16 / 9; background: #eaf1ee; object-fit: cover; }
.facility-card__body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.facility-type-badge { display: inline-flex; width: fit-content; min-height: 40px; align-items: center; gap: 8px; margin: 0 0 14px; padding: 6px 13px; border: 2px solid currentColor; border-radius: 999px; font-size: 16px; font-weight: 800; line-height: 1.25; }
.facility-type-badge svg { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.facility-type-badge--hospital { border-color: #17684d; background: #eaf5f0; color: #0f4d39; }
.facility-type-badge--clinic { border-color: #28658a; background: #eaf3f8; color: #174e70; }
.facility-card h2 { margin: 0 0 8px; font-size: 23px; line-height: 1.45; }
.facility-card h2 a { color: var(--sh-text); text-decoration: none; }
.facility-card__meta { margin: 0 0 12px; color: var(--sh-muted); }
.facility-card__specialties { margin: 2px 0 16px; }
.facility-card__specialties .facility-specialties { gap: 7px; margin: 0; }
.facility-card__specialties .facility-specialties__group { grid-template-columns: 82px minmax(0, 1fr); border-radius: 8px; }
.facility-card__specialties .facility-specialties__group h4 { padding: 8px 9px; font-size: 13px; }
.facility-card__specialties .facility-specialties__group ul { gap: 4px 7px; padding: 7px 8px; }
.facility-card__specialties .facility-specialties__group a, .facility-card__specialties .facility-specialties__group span { min-height: 0; padding: 1px 0; background: transparent; font-size: 13px; font-weight: 600; }
.facility-card__specialties .facility-specialties__group li:not(:last-child)::after { content: "・"; color: var(--sh-muted); }
.facility-card__specialties .facility-specialties__more { color: var(--sh-muted); font-weight: 700; }
.facility-card__badges, .facility-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 15px; }
.facility-badge { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 10px; border-radius: 999px; background: var(--sh-accent); color: var(--sh-primary-dark); font-size: 14px; font-weight: 700; }
.facility-card__link { margin-top: auto; font-weight: 750; }

.entry { max-width: 900px; margin-inline: auto; }
.entry-header { margin-bottom: 24px; }
.entry-content { padding: clamp(22px, 5vw, 42px); border: 1px solid var(--sh-line); border-radius: var(--sh-radius); background: var(--sh-surface); box-shadow: var(--sh-shadow); }
.page-main { padding: clamp(38px, 7vw, 72px) 0; }
.site-page { max-width: 900px; margin-inline: auto; }
.site-page__header { margin-bottom: 24px; }
.site-page__header h1 { margin: 0; font-size: clamp(30px, 5vw, 44px); line-height: 1.35; }
.site-page__content { padding: clamp(24px, 5vw, 46px); border: 1px solid var(--sh-line); border-radius: var(--sh-radius); background: var(--sh-surface); box-shadow: var(--sh-shadow); }
.site-page__content > :first-child { margin-top: 0; }
.site-page__content > :last-child { margin-bottom: 0; }
.site-page__content h2 { margin: 2.1em 0 .65em; padding-bottom: 9px; border-bottom: 3px solid var(--sh-primary); font-size: clamp(23px, 3.4vw, 28px); line-height: 1.45; }
.site-page__content h3 { margin: 1.7em 0 .5em; font-size: 20px; }
.site-page__content li + li { margin-top: 7px; }
.site-page__content a { font-weight: 650; }
.site-page__lead { color: var(--sh-text); font-size: 19px; font-weight: 650; }
.site-page__note { margin: 24px 0; padding: 18px 20px; border-left: 5px solid var(--sh-primary); background: var(--sh-accent); }
.site-page__warning { margin: 24px 0; padding: 18px 20px; border-left: 5px solid #d99b25; background: var(--sh-warning); }
.contact-form { display: grid; gap: 20px; margin-top: 28px; }
.contact-form label, .contact-form legend { font-weight: 750; }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form input[type="url"], .contact-form select, .contact-form textarea { width: 100%; min-height: 52px; margin-top: 7px; padding: 10px 12px; border: 2px solid #aebdb6; border-radius: 8px; background: #fff; color: var(--sh-text); font: inherit; }
.contact-form textarea { min-height: 180px; resize: vertical; }
.contact-form__help { display: block; margin-top: 4px; color: var(--sh-muted); font-size: 14px; font-weight: 500; }
.contact-form__consent { display: flex; gap: 10px; align-items: flex-start; font-weight: 650; }
.contact-form__consent input { width: 22px; height: 22px; margin-top: 4px; }
.contact-form__submit { min-height: 56px; padding: 12px 22px; border: 0; border-radius: 9px; background: var(--sh-primary); color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.contact-form__submit:hover { background: var(--sh-primary-dark); }
.contact-form__message { padding: 16px 18px; border-radius: 9px; font-weight: 650; }
.contact-form__message--success { border: 1px solid #72aa92; background: #eaf5f0; color: #0f4d39; }
.contact-form__message--error { border: 1px solid #d2a13b; background: #fff7df; color: #694b0b; }
.contact-form__honeypot { position: absolute !important; left: -9999px !important; }
.facility-detail { margin-top: 36px; }
.facility-detail h2 { padding-bottom: 10px; border-bottom: 3px solid var(--sh-primary); font-size: 27px; }
.facility-specialties { display: grid; gap: 12px; margin: 12px 0 26px; }
.facility-specialties__group { display: grid; grid-template-columns: 140px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--sh-line); border-radius: 10px; background: #fff; }
.facility-specialties__group h4 { display: flex; align-items: flex-start; margin: 0; padding: 14px 16px; background: #eef5f2; color: var(--sh-primary-dark); font-size: 17px; line-height: 1.55; }
.facility-specialties__group ul { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin: 0; padding: 12px 14px; list-style: none; }
.facility-specialties__group li { margin: 0; }
.facility-specialties__group a, .facility-specialties__group span { display: inline-flex; min-height: 36px; align-items: center; padding: 5px 10px; border-radius: 7px; background: #f5f7f6; color: var(--sh-text); font-size: 15px; font-weight: 650; line-height: 1.35; text-decoration: none; }
.facility-specialties__group a:hover { background: var(--sh-accent); color: var(--sh-primary-dark); text-decoration: underline; }
.facility-detail dl { margin: 20px 0; border-top: 1px solid var(--sh-line); }
.facility-detail__row { display: grid; grid-template-columns: 180px minmax(0, 1fr); border-bottom: 1px solid var(--sh-line); }
.facility-detail dt, .facility-detail dd { margin: 0; padding: 15px 12px; }
.facility-detail dt { background: #f1f5f3; font-weight: 750; }
.facility-map { overflow: hidden; margin: 24px 0; border-radius: 12px; }
.facility-map iframe { display: block; width: 100%; height: 420px; border: 0; }
.facility-source { margin-top: 30px; padding: 20px; border-left: 5px solid #d99b25; background: var(--sh-warning); }
.facility-source h3 { margin-top: 0; }

.site-footer { margin-top: 64px; background: #17332a; color: #fff; }
.site-footer a { color: #fff; }
.site-footer__top { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(520px, 1.3fr); gap: clamp(36px, 6vw, 72px); padding: 48px 0 34px; }
.site-footer__brand-link { display: inline-flex; align-items: center; gap: 11px; color: #fff; text-decoration: none; }
.site-footer__brand-link img { width: 52px; height: 52px; padding: 3px; border-radius: 12px; background: #fff; }
.site-footer__brand-link span { display: flex; flex-direction: column; }
.site-footer__brand-link strong { font-size: 22px; line-height: 1.35; }
.site-footer__brand-link small { color: #c8d8d2; font-size: 13px; font-weight: 650; }
.site-footer__brand p { max-width: 480px; margin: 18px 0 0; color: #dce7e3; font-size: 15px; line-height: 1.8; }
.site-footer__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; }
.site-footer__nav h2 { margin: 0 0 10px; color: #fff; font-size: 17px; }
.site-footer__nav a { display: flex; min-height: 44px; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, .16); font-size: 15px; font-weight: 650; text-decoration: none; }
.site-footer__nav a::before { content: "›"; margin-right: 8px; color: #8fd1b7; font-size: 22px; line-height: 1; }
.site-footer__nav a:hover { text-decoration: underline; }
.site-footer__notice { padding: 20px 22px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 12px; background: rgba(255, 255, 255, .07); }
.site-footer__notice strong { display: block; margin-bottom: 4px; font-size: 17px; }
.site-footer__notice p { margin: 0; color: #e4ece9; font-size: 14px; line-height: 1.75; }
.site-footer__bottom { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 24px; color: #c8d8d2; }
.site-footer__bottom a { display: inline-flex; min-height: 44px; align-items: center; font-size: 14px; }

@media (max-width: 900px) {
	.ward-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ward-map-wrap { border-radius: 16px; }
	.ward-map__link text { font-size: 20px; }
	.quick-grid, .facility-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	body { font-size: 16px; }
	.site-shell { width: min(100% - 24px, 1160px); }
	.site-header__inner { min-height: 68px; }
	.site-brand { gap: 8px; }
	.site-brand__mark { width: 43px; height: 43px; }
	.site-brand__name { font-size: 18px; }
	.site-brand__tagline { margin-top: 1px; font-size: 11.5px; }
	.site-nav--desktop { display: none; }
	.site-menu { display: block; }
	.site-menu summary { padding: 8px 11px; }
	.site-alerts { padding: 10px 0; }
	.site-alert { padding: 14px; }
	.site-alert__heading { display: grid; gap: 7px; }
	.site-alert__label { width: fit-content; }
	.site-alert h2 { font-size: 18px; }
	.hospital-search__filters, .hospital-search__groups, .quick-grid, .facility-grid { grid-template-columns: 1fr; }
	.hospital-search__checks--wide { grid-column: auto; }
	.hospital-search__checks label { width: calc(50% - 9px); }
	.hospital-search__groups--more { margin: 12px; }
	.ward-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ward-link { min-height: 58px; }
	.hospital-search__submit { width: 100%; }
	.facility-detail__row { grid-template-columns: 1fr; }
	.facility-specialties__group { grid-template-columns: 1fr; }
	.facility-specialties__group h4 { padding: 10px 13px; }
	.facility-specialties__group ul { gap: 7px; padding: 11px 12px 13px; }
	.facility-specialties__group a, .facility-specialties__group span { min-height: 38px; font-size: 15px; }
	.facility-detail dt { padding-bottom: 6px; }
	.facility-detail dd { padding-top: 6px; }
	.facility-map iframe { height: 320px; }
	.site-footer { margin-top: 44px; }
	.site-footer__top { grid-template-columns: 1fr; gap: 30px; padding: 36px 0 28px; }
	.site-footer__nav { grid-template-columns: 1fr; gap: 26px; }
	.site-footer__notice { padding: 18px; }
	.site-footer__bottom { min-height: 92px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; }
}

/* Page navigation: consistent left/centre/right positions, above and below results. */
.facility-results-anchor { scroll-margin-top: 110px; }
.facility-pagination { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px; margin: 24px 0; }
.facility-pagination__previous, .facility-pagination__next { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px 18px; border: 2px solid var(--sh-primary); border-radius: 10px; font-size: 17px; font-weight: 700; line-height: 1.4; text-decoration: none; text-align: center; }
.facility-pagination__previous { justify-self: start; color: var(--sh-primary-dark); background: #fff; }
.facility-pagination__next { justify-self: end; color: #fff; background: var(--sh-primary); }
.facility-pagination a:hover { border-color: var(--sh-primary-dark); background: var(--sh-primary-dark); color: #fff; text-decoration: none; }
.facility-pagination a:focus-visible { outline: 3px solid #17251f; outline-offset: 4px; }
.facility-pagination__count { color: var(--sh-text); font-size: 18px; font-weight: 700; text-align: center; white-space: nowrap; }
.facility-pagination__count > span { display: block; font-size: 13px; font-weight: 400; }
.facility-pagination .is-unavailable { border-color: var(--sh-line); background: #edf1ef; color: #52635b; }
@media (max-width: 480px) {
 .facility-pagination { gap: 8px; }
 .facility-pagination__previous, .facility-pagination__next { width: 100%; min-height: 48px; padding: 10px 4px; font-size: 14px; }
 .facility-pagination__count { font-size: 16px; }
}

/* Search recovery, facility actions and clearly separated hours. */
.search-reset { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 4px; font-weight: 700; }
.search-reset--form { margin-left: 20px; }
.selected-filters { margin: 24px 0; padding: 20px; border: 1px solid var(--sh-line); border-radius: var(--sh-radius); background: #fff; scroll-margin-top: 100px; }
.selected-filters h2 { font-size: 20px; margin: 0 0 4px; }
.selected-filters p { margin: 0 0 14px; color: var(--sh-muted); font-size: 15px; }
.selected-filters__list { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.selected-filters__remove { display: inline-flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 46px; max-width: 100%; padding: 10px 14px; border: 1px solid #aac7b9; border-radius: 10px; color: var(--sh-primary-dark); background: var(--sh-accent); text-decoration: none; font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
.selected-filters__remove > span:last-child { font-size: 22px; line-height: 1; flex: none; }
.selected-filters__remove:hover, .selected-filters__remove:focus-visible, .selected-filters__remove:active { background: var(--sh-primary-dark); color: #fff; }
.facility-empty { margin: 24px 0; padding: clamp(20px, 4vw, 32px); background: #fff; border: 1px solid var(--sh-line); border-radius: var(--sh-radius); }
.facility-empty h2 { margin-top: 0; font-size: 23px; }
.facility-quick-access { margin: 0 0 26px; padding: 20px; background: #fff; border: 1px solid var(--sh-line); border-radius: var(--sh-radius); }
.facility-quick-access__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.facility-quick-access__actions .facility-button { display: flex; justify-content: center; align-items: center; min-height: 66px; padding: 12px 10px; text-align: center; line-height: 1.4; }
.facility-quick-access__actions small { display: block; font-size: 14px; font-weight: 500; margin-top: 3px; }
.facility-quick-access__sections { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 14px; }
.facility-quick-access__sections a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; font-weight: 700; }
#facility-hours, #facility-visit, #facility-access { scroll-margin-top: 100px; }
.facility-card__conditions { margin: 0 0 14px; border-top: 1px solid var(--sh-line); font-size: 14px; }
.facility-card__conditions > div { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--sh-line); }
.facility-card__conditions dt { font-weight: 700; }
.facility-card__conditions dd { margin: 0; overflow-wrap: anywhere; }
.facility-card__reservation { margin: 0 0 16px; font-size: 14px; }
.facility-card__reservation summary { display: list-item; cursor: pointer; min-height: 44px; padding: 10px 0; color: var(--sh-primary-dark); font-weight: 700; }
.facility-card__reservation p { margin: 4px 0 12px; padding: 12px; background: #f2f6f4; border-radius: 8px; overflow-wrap: anywhere; }
.facility-hours-section { margin: 30px 0; min-width: 0; }
.facility-hours-guide { padding: 18px; border: 1px solid var(--sh-line); border-radius: 10px; background: #f6f9f7; }
.facility-hours-guide > p { margin: 0 0 12px; font-size: 15px; }
.facility-hours-guide > p:last-child { margin: 12px 0 0; color: var(--sh-muted); font-size: 14px; }
.facility-hours-guide ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.facility-hours-guide li { padding: 12px; background: #fff; border: 1px solid var(--sh-line); border-radius: 8px; }
.facility-hours-guide li strong, .facility-hours-guide li span { display: block; }
.facility-hours-guide li span { font-size: 13px; color: var(--sh-muted); margin-top: 4px; }
.facility-detail .facility-hours-list { display: grid; gap: 12px; border: 0; }
.facility-hours-list .facility-detail__row { border: 1px solid var(--sh-line); border-radius: 10px; overflow: hidden; grid-template-columns: 190px minmax(0, 1fr); }
.facility-hours-row dt small { display: block; color: var(--sh-muted); font-size: 13px; font-weight: 400; line-height: 1.5; margin-top: 6px; }
.facility-hours-list .facility-hours-row--first { border-color: #c5a764; border-left: 4px solid #b58a32; }
.facility-hours-row--first dt { background: #fff7df; }
.facility-hours-row dd { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 650px) {
 .search-reset--form { margin-left: 0; margin-top: 10px; }
 .selected-filters { padding: 16px; }
 .selected-filters__list li { max-width: 100%; }
 .facility-quick-access { padding: 14px; }
 .facility-quick-access__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
 .facility-quick-access__actions a[href^="tel:"] { grid-column: 1 / -1; }
 .facility-quick-access__actions .facility-button { min-height: 54px; font-size: 16px; }
 .facility-quick-access__sections { gap: 4px 16px; }
 .facility-hours-guide ul { grid-template-columns: 1fr; gap: 8px; }
 .facility-hours-guide li { display: grid; grid-template-columns: 8em minmax(0, 1fr); gap: 8px; padding: 10px; align-items: center; }
 .facility-hours-guide li span { margin-top: 0; }
 .facility-hours-list .facility-detail__row { grid-template-columns: 1fr; }
 .facility-hours-list .facility-detail dt, .facility-hours-list dt { padding: 12px 14px; }
 .facility-hours-list dd { padding: 12px 14px; }
}
