:root { --ink:#25343b; --sub:#5c6870; --line:#d9e0e3; --accent:#245b75; --pale:#f4f7f8; }
* { box-sizing:border-box; }
html { font-size:16px; }
body { margin:0; background:#fff; color:var(--ink); font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif; line-height:1.8; }
.wrap { max-width:820px; margin:0 auto; padding-left:22px; padding-right:22px; }
header { border-bottom:1px solid var(--line); }
.head { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { color:var(--ink); text-decoration:none; font-size:1.35rem; font-weight:700; line-height:1.35; }
.head-note { color:var(--sub); font-size:.85rem; white-space:nowrap; }
main { padding-top:38px; padding-bottom:70px; }
h1 { margin:0 0 18px; font-size:1.7rem; line-height:1.45; }
h2 { margin:40px 0 12px; padding-top:13px; border-top:2px solid var(--ink); font-size:1.14rem; }
h3 { margin:0; font-size:1.12rem; }
p { margin:0 0 12px; }
.notice { border-left:4px solid var(--accent); background:var(--pale); padding:20px 24px; margin-bottom:40px; }
.notice h1 { font-size:1.5rem; margin-bottom:10px; }
.notice p:last-child { margin-bottom:0; }
.muted { color:var(--sub); font-size:.9rem; }
.facility { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line); }
.facility:first-of-type { border-top:1px solid var(--line); }
.facility p { margin:4px 0 0; }
.tag { color:var(--sub); font-size:.82rem; }
.more { white-space:nowrap; font-size:.92rem; }
a { color:var(--accent); text-underline-offset:3px; }
a:hover { color:#133f54; }
.tel { font-size:1.02rem; white-space:nowrap; }
.back { display:inline-block; margin-bottom:27px; font-size:.9rem; }
.intro { margin-bottom:24px; }
dl { display:grid; grid-template-columns:9.5em minmax(0,1fr); gap:9px 20px; margin:16px 0 0; }
dt { color:var(--sub); }
dd { margin:0; overflow-wrap:anywhere; }
.list { margin:11px 0 0; padding-left:1.2em; }
.list li { margin:7px 0; }
footer { border-top:1px solid var(--line); color:var(--sub); font-size:.82rem; padding:23px 0; }
@media (max-width:620px) {
  .wrap { padding-left:18px; padding-right:18px; }
  .head { min-height:76px; }
  .brand { font-size:1.12rem; }
  .head-note { display:none; }
  main { padding-top:27px; padding-bottom:48px; }
  h1 { font-size:1.45rem; }
  .notice { padding:18px; margin-bottom:32px; }
  .facility { display:block; padding:18px 0; }
  .facility .more { display:inline-block; margin-top:8px; }
  dl { grid-template-columns:1fr; gap:0; }
  dt { margin-top:13px; font-size:.86rem; }
  dt:first-child { margin-top:0; }
}
