/*
 * Design System 再利用コンポーネント CSS。
 * 出典: design-system/components/core/*.jsx, components/navigation/*.jsx,
 *       components/blocks/*.jsx, components/components.css
 * インラインstyleで実装されている正本を、同じ構造・同じ値でCSSクラス化したもの。
 * ブレークポイントは 1024px / 767px の2点のみ（正本の components.css と同じ）。
 */

/* ============ Button ============ */
.md-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--font-sans);font-weight:var(--fw-medium);letter-spacing:var(--ls-body);line-height:1;text-decoration:none;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard)}
.md-btn--full{display:flex;width:100%}
.md-btn--sm{min-height:var(--control-h-sm);padding:0 20px;font-size:var(--fs-small)}
.md-btn--md{min-height:var(--control-h);padding:0 32px;font-size:var(--fs-btn)}
.md-btn--lg{min-height:64px;padding:0 40px;font-size:var(--fs-body-l)}
/* Codexレビュー指摘（Client Feedback R1 §7）: `color` はプロパティ単位でカスケードされるため、
 * hoverセレクタが `background`/`border-color` しか宣言しないと、詳細度で勝る汎用 `a:hover`
 * （text-link-hover = navy-800）に文字色だけが奪われ、Navy系ボタンで文字が背景へ同化する。
 * 全variantのhoverで `color` を明示し、汎用ルールに依存しない。 */
.md-btn--primary{background:var(--color-primary);color:var(--text-on-navy);border-color:var(--color-primary)}
.md-btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--text-on-navy)}
.md-btn--secondary{background:transparent;color:var(--color-primary);border-color:var(--border-strong)}
.md-btn--secondary:hover{background:var(--surface-tint);border-color:var(--color-primary);color:var(--color-primary)}
.md-btn--onNavy{background:var(--white);color:var(--color-primary);border-color:var(--white)}
.md-btn--onNavy:hover{background:var(--navy-050);border-color:var(--navy-050);color:var(--color-primary)}
.md-btn--outlineOnNavy{background:transparent;color:var(--text-on-navy);border-color:var(--border-on-navy)}
.md-btn--outlineOnNavy:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.5);color:var(--text-on-navy)}
.md-btn--tel{background:var(--color-secondary);color:var(--text-on-navy);border-color:var(--color-secondary)}
.md-btn--tel:hover{background:var(--color-secondary-hover);border-color:var(--color-secondary-hover);color:var(--text-on-navy)}
.md-btn__icon{display:inline-flex;width:18px;height:18px;flex:0 0 18px}
.md-btn__icon svg{width:100%;height:100%}

/* ============ Card ============ */
.md-card{display:block;padding:var(--space-6);border-radius:var(--radius-md);color:var(--text-body);text-decoration:none;transition:var(--transition-base)}
.md-card--default{background:var(--surface-card);border:1px solid var(--border-default)}
.md-card--raised{background:var(--surface-card);border:1px solid transparent;box-shadow:var(--shadow-card)}
.md-card--flat{background:var(--surface-alt);border:1px solid transparent}
.md-card--navy{background:var(--surface-navy);border:1px solid var(--border-on-navy);color:var(--text-on-navy)}
.md-card--warm{background:var(--surface-warm);border:1px solid var(--warm-300)}
a.md-card--default:hover,a.md-card--raised:hover,a.md-card--flat:hover,a.md-card--warm:hover{box-shadow:var(--shadow-card-hover);border-color:var(--navy-200);transform:translateY(-2px)}
a.md-card--navy:hover{border-color:rgba(255,255,255,.45);transform:translateY(-2px);color:var(--text-on-navy)}

/* ============ MediaFrame ============ */
.md-media-frame{margin:0;display:flex;flex-direction:column;gap:10px}
.md-media-frame__box{position:relative;width:100%;overflow:hidden;border-radius:var(--img-radius);background:var(--gray-100);box-shadow:var(--shadow-inset-image)}
.md-media-frame__box--on-navy{background:var(--navy-700)}
.md-media-frame__box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--img-filter)}
.md-media-frame__placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-faint);font:var(--type-small);letter-spacing:.08em;text-align:center;padding:8px}
.md-media-frame__box--on-navy .md-media-frame__placeholder{color:var(--navy-200)}
.md-media-frame__ratio{font-size:var(--fs-caption);opacity:.7}
.md-media-frame__caption{font:var(--type-small);font-size:var(--fs-caption);color:var(--text-muted)}

/* ============ SectionHeading ============ */
.md-section-heading{display:flex;flex-direction:column;gap:18px;align-items:flex-start;text-align:left}
.md-section-heading--center{align-items:center;text-align:center;max-width:760px;margin-inline:auto}
.md-section-heading__eyebrow-row{display:flex;align-items:center;gap:14px}
.md-section-heading__rule{width:32px;height:1px;background:var(--color-secondary);display:inline-block}
.md-section-heading--on-navy .md-section-heading__rule{background:var(--navy-200)}
.md-section-heading--on-navy .md-eyebrow{color:var(--navy-200)}
.md-section-heading__title{font:var(--type-h2);letter-spacing:var(--ls-heading);color:var(--text-heading)}
.md-section-heading--on-navy .md-section-heading__title{color:var(--text-on-navy)}
.md-section-heading__lead{font:var(--type-body-l);color:var(--text-muted);max-width:42em;margin:0}
.md-section-heading--on-navy .md-section-heading__lead{color:var(--text-on-navy-muted)}

/* ============ Stat ============ */
.md-stat{display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left}
.md-stat__icon{color:var(--color-secondary);display:inline-flex}
.md-stat--on-navy .md-stat__icon{color:var(--navy-200)}
.md-stat__value-row{display:flex;align-items:baseline;gap:6px;color:var(--text-heading)}
.md-stat--on-navy .md-stat__value-row{color:var(--text-on-navy)}
.md-stat__value{font:var(--type-stat);letter-spacing:var(--ls-num)}
.md-stat--text .md-stat__value{font:var(--fw-medium) var(--fs-h4)/1.4 var(--font-sans);letter-spacing:var(--ls-body)}
.md-stat__unit{font:var(--type-body);font-weight:var(--fw-medium)}
.md-stat__label{font:var(--type-small);font-weight:var(--fw-medium);color:var(--text-muted)}
.md-stat--on-navy .md-stat__label{color:var(--text-on-navy-muted)}
.md-stat__note{font:var(--type-small);font-size:var(--fs-caption);color:var(--text-faint)}
.md-stat--on-navy .md-stat__note{color:var(--text-on-navy-muted)}

/* ============ Tag ============ */
.md-tag{display:inline-flex;align-items:center;height:28px;padding:0 10px;font:var(--type-small);font-size:var(--fs-caption);font-weight:var(--fw-medium);letter-spacing:.04em;border-radius:var(--radius-sm);white-space:nowrap}
.md-tag--default{background:var(--surface-tint);color:var(--color-primary);border:1px solid transparent}
.md-tag--outline{background:transparent;color:var(--text-muted);border:1px solid var(--border-default)}
.md-tag--navy{background:var(--color-primary);color:var(--text-on-navy);border:1px solid var(--color-primary)}
.md-tag--onNavy{background:rgba(255,255,255,.10);color:var(--text-on-navy);border:1px solid var(--border-on-navy)}
.md-tag--wood{background:var(--wood-100);color:var(--wood-600);border:1px solid transparent}

/* ============ TextLink ============ */
.md-text-link{display:inline-flex;align-items:center;gap:8px;font:var(--type-small);font-weight:var(--fw-medium);letter-spacing:var(--ls-body);text-decoration:none;border-bottom:1px solid var(--border-default);padding-bottom:4px;min-height:var(--tap-min);transition:var(--transition-base)}
.md-text-link--default{color:var(--text-link)}
.md-text-link--default:hover{color:var(--text-link-hover);border-color:currentColor}
.md-text-link--onNavy{color:var(--text-on-navy);border-color:var(--border-on-navy)}
.md-text-link--onNavy:hover{color:var(--text-on-navy);border-color:currentColor}
.md-text-link--muted{color:var(--text-muted)}
.md-text-link--muted:hover{color:var(--text-muted);border-color:currentColor}
.md-text-link__icon{transition:transform var(--dur-base) var(--ease-out)}
.md-text-link:hover .md-text-link__icon{transform:translateX(3px)}

/* ============ SiteHeader ============ */
.md-site-header{position:sticky;top:0;left:0;right:0;z-index:40;background:var(--white);box-shadow:var(--shadow-header)}
.md-site-header--transparent{position:absolute;background:linear-gradient(180deg,rgba(7,26,49,.55),rgba(7,26,49,0));box-shadow:none}
.md-site-header.is-scrolled{box-shadow:var(--shadow-header-scrolled)}
.md-site-header__inner{max-width:var(--content-wide);margin:0 auto;padding:0 var(--container-gutter);height:88px;display:flex;align-items:center;gap:32px;transition:height var(--dur-base) var(--ease-standard)}
.md-site-header--compact .md-site-header__inner{height:72px}
.md-site-header__logo{display:flex;align-items:center;flex:0 0 auto}
.md-site-header__logo img{height:60px;width:auto;transition:height var(--dur-base) var(--ease-standard)}
.md-site-header--compact .md-site-header__logo img{height:60px}
.md-header-nav{display:flex;align-items:center;gap:28px;margin-left:auto;list-style:none;padding:0;margin-top:0;margin-bottom:0}
.md-header-nav a{font:var(--type-body);font-size:var(--fs-nav);font-weight:var(--fw-medium);color:var(--text-heading);text-decoration:none;padding:10px 0;border-bottom:2px solid transparent;white-space:nowrap;display:inline-block}
.md-header-nav a:hover{color:var(--color-secondary);border-bottom-color:var(--color-secondary)}
.md-site-header--transparent .md-header-nav a{color:var(--text-on-navy)}
.md-site-header--transparent .md-header-nav a:hover{color:var(--text-on-navy);border-bottom-color:#fff}
.md-header-nav a[aria-current="page"],.md-header-nav .current-menu-item>a,.md-header-nav .current_page_item>a,.md-header-nav .current-menu-ancestor>a{border-bottom-color:var(--color-secondary)}
.md-header-nav li{list-style:none}
.md-header-actions{display:flex;align-items:center;gap:20px}
.md-header-tel{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--text-heading)}
.md-header-tel:hover{color:var(--text-heading);text-decoration:underline}
.md-site-header--transparent .md-header-tel{color:var(--text-on-navy)}
/* transparent header（Navy地）上でも汎用 a:hover に文字色を奪われないよう明示する。 */
.md-site-header--transparent .md-header-tel:hover{color:var(--text-on-navy);text-decoration:underline}
.md-header-tel__num{display:flex;align-items:center;gap:6px;font:var(--type-body);font-weight:var(--fw-medium);letter-spacing:.02em}
.md-header-tel__note{font:var(--type-small);font-size:11px;color:var(--text-faint)}
.md-site-header--transparent .md-header-tel__note{color:var(--text-on-navy-muted)}
.md-header-burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-heading);cursor:pointer}
.md-site-header--transparent .md-header-burger{color:var(--text-on-navy);border-color:var(--border-on-navy)}
.md-header-burger__icon--close{display:none}
.md-header-burger[aria-expanded="true"] .md-header-burger__icon--open{display:none}
.md-header-burger[aria-expanded="true"] .md-header-burger__icon--close{display:inline-flex}
.md-header-panel{display:none;background:var(--surface-navy);padding:8px var(--container-gutter) 24px}
.md-header-panel.is-open{display:block}
.md-header-panel li{list-style:none}
/* R6 Polish §7: nav リンクだけに適用（旧 `.md-header-panel a` は panel 内の .md-btn まで白文字化して
 * onNavy ボタンを「白地に白文字＝不可視の巨大空箱」にしていた。li 配下へスコープを絞る）。 */
.md-header-panel li a{display:flex;align-items:center;justify-content:space-between;min-height:56px;color:var(--text-on-navy);text-decoration:none;border-bottom:1px solid var(--border-on-navy);font:var(--type-body)}
/* R6 Polish §7: 電話 / 初診相談 を menu 幅内で同格の横2列に。巨大な縦積み CTA をやめる。 */
.md-header-panel__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.md-header-panel__actions .md-btn{min-height:50px;padding:0 12px;font-size:12.5px;gap:8px}
.md-header-panel__actions .md-btn__icon{width:15px;height:15px;flex:0 0 15px}
/* Header CTA: main label + secondary「24時間受付」の2行構成。汎用mdrw_button() APIは
 * 単一labelを前提にしているため、Header専用にmarkup/CSSを分離する（影響範囲を局所化）。 */
.md-header-cta{flex-direction:column;gap:2px;line-height:1.2;padding-top:8px;padding-bottom:8px}
.md-header-cta__label{font-weight:var(--fw-medium)}
.md-header-cta__sub{font-size:10.5px;font-weight:var(--fw-regular);opacity:.82;letter-spacing:.02em}
.md-header-panel__actions .md-header-cta{font-size:12.5px}
.md-header-panel__actions .md-header-cta__sub{font-size:10px}

/* ============ TreatmentNav ============ */
/* R3 §5: 余白主体の一覧。item border に依存せず、十分な余白・アイコン・hover/focus で
 * 各項目を明確に選択できるようにする。equal rounded card 化はしない。 */
.md-treatment-nav{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-9);row-gap:var(--space-2)}
.md-treatment-nav__link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;min-height:96px;padding:24px 12px;border-radius:var(--radius-md);text-decoration:none;color:var(--text-body);transition:var(--transition-base)}
.md-treatment-nav__link:hover{background:var(--surface-tint)}
.md-treatment-nav__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.md-treatment-nav__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--navy-800);flex-shrink:0}
.md-treatment-nav__icon svg{width:48px;height:48px}
.md-treatment-nav__icon img{width:100%;height:100%;object-fit:contain;display:block}
.md-treatment-nav__link:hover .md-treatment-nav__icon{color:var(--color-secondary)}
.md-treatment-nav__body{display:flex;flex-direction:column;gap:6px}
.md-treatment-nav__title-row{display:flex;flex-direction:column;gap:3px}
.md-treatment-nav__title{font:var(--type-h3);font-size:20px;color:var(--text-heading)}
.md-treatment-nav__en{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-faint);font-size:11px}
.md-treatment-nav__desc{font:var(--type-body);color:var(--text-muted)}
.md-treatment-nav__arrow{color:var(--navy-200);transition:transform var(--dur-base) var(--ease-out)}
.md-treatment-nav__link:hover .md-treatment-nav__arrow{color:var(--color-primary);transform:translateX(4px)}

/* ============ FeatureCard ============ */
.md-feature-card{display:flex;flex-direction:column;gap:20px;text-decoration:none;color:var(--text-body)}
.md-feature-card__rule-row{display:flex;align-items:center;gap:14px}
.md-feature-card__index{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);color:var(--color-secondary)}
.md-feature-card__icon{color:var(--color-primary);display:inline-flex}
.md-feature-card__rule{flex:1;height:1px;background:var(--border-default)}
.md-feature-card__title{font:var(--fw-serif-medium) var(--fs-h3)/var(--lh-h3) var(--font-serif);letter-spacing:var(--ls-heading);color:var(--text-heading)}
.md-feature-card__body{font:var(--type-body);color:var(--text-muted)}
.md-feature-card__more{display:inline-flex;align-items:center;gap:8px;font:var(--type-small);font-weight:var(--fw-medium);color:var(--text-link)}
.md-feature-card__more svg{transition:transform var(--dur-base) var(--ease-out)}
a.md-feature-card:hover .md-feature-card__more svg{transform:translateX(3px)}

/* ============ EquipmentFeature ============ */
/* 写真と文章を完全な1:1にせず、写真をわずかに大きくして「説明用の矩形」感を弱める。 */
.md-equipment{display:grid;grid-template-columns:1.12fr 1fr;gap:var(--space-8);align-items:center}
.md-equipment--reverse{grid-template-columns:1fr 1.12fr}
.md-equipment__media{order:1}
.md-equipment--reverse .md-equipment__media{order:2}
.md-equipment__content{order:2;display:flex;flex-direction:column;gap:18px}
.md-equipment--reverse .md-equipment__content{order:1}
.md-equipment__intent{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);color:var(--color-secondary)}
.md-equipment--on-navy .md-equipment__intent{color:var(--navy-200)}
.md-equipment__name{font:var(--fw-serif-medium) var(--fs-h3)/var(--lh-h3) var(--font-serif);letter-spacing:var(--ls-heading);color:var(--text-heading)}
.md-equipment--on-navy .md-equipment__name{color:var(--text-on-navy)}
.md-equipment__body{font:var(--type-body);color:var(--text-muted)}
.md-equipment--on-navy .md-equipment__body{color:var(--text-on-navy-muted)}
.md-equipment__points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.md-equipment__points li{display:flex;gap:10px;font:var(--type-body);font-size:var(--fs-small);color:var(--text-body)}
.md-equipment--on-navy .md-equipment__points li{color:var(--text-on-navy)}
.md-equipment__points svg{color:var(--color-secondary);margin-top:3px;flex-shrink:0}
.md-equipment--on-navy .md-equipment__points svg{color:var(--navy-200)}
.md-equipment__note{font:var(--type-small);font-size:var(--fs-caption);color:var(--text-faint)}
.md-equipment--on-navy .md-equipment__note{color:var(--text-on-navy-muted)}

/* ============ DoctorProfile ============ */
.md-doctor{display:grid;grid-template-columns:minmax(280px,440px) 1fr;gap:var(--space-9);align-items:start}
.md-doctor__media{display:flex;flex-direction:column;gap:16px}
.md-doctor__info{display:flex;flex-direction:column;gap:24px}
.md-doctor__name-block{display:flex;flex-direction:column;gap:10px}
.md-doctor__name-en{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);color:var(--color-secondary)}
.md-doctor__name{font-family:var(--font-serif);font-weight:var(--fw-serif-medium);font-size:clamp(24px,2.2vw,30px);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);color:var(--text-heading)}
.md-doctor__role{font:var(--type-small);color:var(--text-muted)}
.md-doctor__message{font:var(--type-body-l);color:var(--text-body);max-width:40em}
.md-doctor__career{margin:0;border-top:1px solid var(--border-default)}
.md-doctor__career-row{display:grid;grid-template-columns:10em 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-default)}
.md-doctor__career-row dt{font:var(--type-small);color:var(--text-faint)}
.md-doctor__career-row dd{margin:0;font:var(--type-small);color:var(--text-body)}

/* ============ CaseCard ============ */
.md-case-card{display:flex;flex-direction:column;gap:16px;padding:0 0 24px;text-decoration:none;color:var(--text-body);border-bottom:1px solid var(--border-default)}
.md-case-card__tags{display:flex;gap:8px;flex-wrap:wrap}
.md-case-card__title{font:var(--type-h3);font-size:18px;color:var(--text-heading);transition:var(--transition-base)}
a.md-case-card:hover .md-case-card__title{color:var(--color-secondary)}
.md-case-card__meta{margin:0;display:flex;flex-direction:column;gap:6px;font:var(--type-small);font-size:var(--fs-caption);color:var(--text-muted)}
.md-case-card__meta-row{display:flex;gap:10px}
.md-case-card__meta-row dt{color:var(--text-faint);min-width:5em}
.md-case-card__meta-row dd{margin:0}
.md-case-card__more{display:inline-flex;align-items:center;gap:8px;font:var(--type-small);font-weight:var(--fw-medium);color:var(--text-link)}

/* ============ CtaBanner ============ */
.md-cta-section{background:var(--surface-navy);color:var(--text-on-navy)}
.md-cta-section--warm{background:var(--surface-warm);color:var(--text-body)}
.md-cta{max-width:var(--container);margin:0 auto;padding:var(--space-section-tight) var(--container-gutter);display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-8);align-items:center}
.md-cta__copy{display:flex;flex-direction:column;gap:16px}
.md-cta__eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);color:var(--navy-200)}
.md-cta-section--warm .md-cta__eyebrow{color:var(--wood-600)}
.md-cta__heading{font:var(--type-h2);font-size:clamp(24px,2.4vw,32px);letter-spacing:var(--ls-heading);color:var(--text-on-navy)}
.md-cta-section--warm .md-cta__heading{color:var(--text-heading)}
.md-cta__body{font:var(--type-body);color:var(--text-on-navy-muted)}
.md-cta-section--warm .md-cta__body{color:var(--text-muted)}
.md-cta__aside{display:flex;flex-direction:column;gap:16px}
.md-cta__tel{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit}
.md-cta__tel:hover{color:inherit;text-decoration:underline}
.md-cta__tel-num{display:flex;align-items:center;gap:10px;font-family:var(--font-num);font-size:clamp(26px,2.6vw,34px);font-weight:var(--fw-medium);letter-spacing:.02em}
.md-cta__tel-note{font:var(--type-small);font-size:var(--fs-caption);color:var(--text-on-navy-muted)}
.md-cta-section--warm .md-cta__tel-note{color:var(--text-muted)}
.md-cta__actions{display:flex;flex-wrap:wrap;gap:12px}

/* ============ HoursTable ============ */
.md-hours{display:flex;flex-direction:column;gap:12px}
.md-hours table{width:100%;border-collapse:collapse;color:var(--text-body)}
.md-hours--on-navy table{color:var(--text-on-navy)}
.md-hours th,.md-hours td{padding:14px 8px;text-align:center;font:var(--type-small);border-bottom:1px solid var(--border-default)}
.md-hours--on-navy th,.md-hours--on-navy td{border-bottom-color:var(--border-on-navy)}
.md-hours thead th{font-weight:var(--fw-medium)}
.md-hours thead th:first-child{text-align:left;color:var(--text-muted);min-width:9em}
.md-hours--on-navy thead th:first-child{color:var(--text-on-navy-muted)}
.md-hours thead th.is-holiday{color:var(--error-600)}
.md-hours tbody th{text-align:left;font-weight:var(--fw-regular);font-family:var(--font-num);color:var(--text-body)}
.md-hours--on-navy tbody th{color:var(--text-on-navy)}
.md-hours td.is-closed{color:var(--gray-500)}
.md-hours--on-navy td.is-closed{color:var(--navy-400)}
.md-hours td.is-open{font-weight:var(--fw-medium)}
.md-hours__note{font:var(--type-small);font-size:var(--fs-caption);color:var(--text-muted);margin:0}
.md-hours--on-navy .md-hours__note{color:var(--text-on-navy-muted)}

/* ============ StepList ============ */
.md-step-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.md-step-list__item{display:grid;grid-template-columns:auto 1fr;gap:24px;padding-bottom:var(--space-6)}
.md-step-list__item:last-child{padding-bottom:0}
.md-step-list__rail{display:flex;flex-direction:column;align-items:center;gap:10px}
.md-step-list__num{font-family:var(--font-num);font-size:var(--fs-stat-sm);font-weight:var(--fw-light);line-height:1;color:var(--color-secondary);letter-spacing:.02em}
.md-step-list__line{width:1px;flex:1;min-height:32px;background:var(--border-default)}
.md-step-list__body{display:flex;flex-direction:column;gap:8px;padding-bottom:8px}
.md-step-list__title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.md-step-list__title{font:var(--type-h3);font-size:20px;color:var(--text-heading)}
.md-step-list__provisional{font:var(--type-small);font-size:11px;padding:2px 8px;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);color:var(--text-faint)}
.md-step-list__text{font:var(--type-body);color:var(--text-muted);margin:0}

/* ============ SiteFooter ============ */
.md-site-footer{background:var(--surface-navy-deep);color:var(--text-on-navy)}
/* R6 Final §16: Footer 直前の細い wood/gold 帯は撤去。ACCESS 側で wood material が十分成立するため、
 * Wood Field → Deep Navy Footer を直接転換する。 */
.md-footer-grid{max-width:var(--container);margin:0 auto;padding:var(--space-10) var(--container-gutter) var(--space-7);display:grid;grid-template-columns:minmax(280px,1fr) 2fr;gap:var(--space-9)}
.md-footer-clinic{display:flex;flex-direction:column;gap:20px}
/* R6 Final §3/§4: Footer = Site signature。潰れの原因は白抜き(輪郭)版 logo-white.png を Deep Navy 上で
 * 小さく使うと線が潰れること。solid 版 logo-navy.png（2172×724＝3:1）を CSS filter で純白化し、
 * Header / ACCESS Ending と同一 proportion・clarity を保つ。高さ基準・幅 auto で raster を変形させない。 */
.md-footer-clinic__logo{align-self:flex-start;flex:0 0 auto;height:clamp(60px,5vw,68px);width:auto;filter:brightness(0) invert(1)}
.md-footer-clinic__info{display:flex;flex-direction:column;gap:10px;font:var(--type-small);color:var(--text-on-navy-muted)}
.md-footer-clinic__row{display:flex;gap:8px}
.md-footer-clinic__row svg{margin-top:4px;flex-shrink:0}
.md-footer-clinic__tel{display:flex;align-items:center;gap:8px;color:var(--text-on-navy);text-decoration:none;font:var(--type-body-l);font-weight:var(--fw-medium)}
/* Client Feedback R1 §7: プレーンリンクのため汎用 a:hover（Navy 800）に詳細度で負け、
 * Navy Footer上で文字が背景へ同化していた。専用hoverで維持しつつ下線で操作可能性を示す。 */
.md-footer-clinic__tel:hover{color:var(--text-on-navy);text-decoration:underline}
.md-footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}
.md-footer-col{display:flex;flex-direction:column;gap:14px}
/* Client Feedback R1 §8: 見出しと子リンクが同じ階層に見えないよう、色数を増やさず
 * Navy + white familyの範囲でsize/weight/letter-spacing/contrastの差を広げる。 */
.md-footer-col__heading{font:var(--type-eyebrow);font-size:12px;font-weight:var(--fw-bold);letter-spacing:.12em;color:var(--navy-200);padding-bottom:8px;border-bottom:1px solid var(--border-on-navy)}
.md-footer-col a{font:var(--type-small);font-weight:var(--fw-regular);color:var(--text-on-navy);text-decoration:none;min-height:var(--tap-min);display:flex;align-items:center;line-height:1.5}
.md-site-footer__bottom{border-top:1px solid var(--border-on-navy)}
.md-site-footer__bottom-inner{max-width:var(--container);margin:0 auto;padding:20px var(--container-gutter);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font:var(--type-small);font-size:var(--fs-caption);color:var(--text-on-navy-muted)}
.md-site-footer__bottom-inner a{color:inherit;text-decoration:none}
.md-site-footer__legal{display:flex;gap:20px;flex-wrap:wrap}

/* ============ Breadcrumb ============ */
.md-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:var(--type-small);color:var(--text-muted)}
.md-breadcrumb a{color:var(--text-muted);text-decoration:none}
.md-breadcrumb a:hover{color:var(--text-link)}
.md-breadcrumb__sep{opacity:.55;display:inline-flex}
.md-breadcrumb [aria-current="page"]{color:var(--text-body)}

/* ============ レスポンシブ（1024px / 767px の2点のみ） ============ */
@media (max-width:1024px){
  .md-header-nav,.md-header-actions{display:none!important}
  .md-header-burger{display:flex!important}
  /* R6 Polish §3: nav / actions を隠すと burger が logo 直後（中央寄り）に残るため右端へ寄せる。 */
  .md-header-burger{margin-left:auto}
  .md-footer-grid{grid-template-columns:1fr!important}
  .md-doctor{grid-template-columns:1fr!important;gap:var(--space-7)!important}
  .md-equipment{grid-template-columns:1fr!important;gap:var(--space-6)!important}
  .md-equipment>*{order:0!important}
  .md-cta{grid-template-columns:1fr!important}
}
@media (max-width:767px){
  /* R6 Polish §4: SP Header logo は navigation sign として存在感が不足していた（40px）。
   * aspect ratio 維持のまま表示高を拡大し、header height / padding も光学調整する。 */
  .md-site-header__inner{height:72px}
  .md-site-header--compact .md-site-header__inner{height:64px}
  .md-site-header__logo img{height:53px}
  /* compact（4px スクロール後）でも navigation sign として 50px 前後を維持し、
   * hamburger より logo が弱く見える状態を再発させない。 */
  .md-site-header--compact .md-site-header__logo img{height:49px}
  .md-treatment-nav{grid-template-columns:1fr!important;row-gap:var(--space-2)!important}
  .md-treatment-nav__link{gap:16px!important;padding:20px 8px!important}
  .md-treatment-nav__icon{width:40px!important;height:40px!important}
  .md-treatment-nav__icon svg{width:40px!important;height:40px!important}
  /* R3 §7: SP サイトマップは2列。見出しと子リンクのまとまりは各 nav 内で保持される。
   * WP フッターメニューを正本とし、順序・ラベル・リンク先は変更しない。 */
  .md-footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--space-7) var(--space-5)!important}
  .md-footer-col{gap:10px}
  .md-footer-col__heading{margin-bottom:2px}
  .md-footer-col a{overflow-wrap:anywhere;min-height:40px}
  .md-site-footer__bottom-inner{gap:10px 16px}
}
