/* 足立本文の操作・担当表・地図。共通部品の指定は追加しません。 */
.ba-page{--ba-ease:var(--bnk-ease,cubic-bezier(.2,.65,.3,1));--ba-duration:260ms}
.ba-page button{font:inherit;color:inherit;touch-action:manipulation}.ba-page [hidden]{display:none!important}.ba-hero-mobile{display:none}
.ba-news-list a{line-height:1.5;min-height:48px;padding-block:10px}
.ba-features article,.ba-care-list li,.ba-flow-list>li,.ba-regions li{transition:transform var(--ba-duration) var(--ba-ease)}
.ba-feature-title .ba-icon,.ba-care-list .ba-icon,.ba-step-icon,.ba-regions .ba-icon{transition:transform var(--ba-duration) var(--ba-ease),background var(--ba-duration)}
.ba-portrait-frame,.ba-access-photo-frame{overflow:hidden}.ba-portrait-frame img,.ba-access-photo{transition:transform 550ms var(--ba-ease)}
.ba-page a:focus-visible{color:var(--ba-accent)}.ba-page a.ba-phone:focus-visible{color:white;transform:translateY(-2px);box-shadow:0 8px 20px var(--ba-shadow-tone,#8c431526)}.ba-news-list a:focus-visible{background:var(--ba-pale)}
@media(hover:hover) and (pointer:fine){
 .ba-features article:hover,.ba-care-list li:hover,.ba-flow-list>li:hover{transform:translateY(-3px)}
 .ba-features article:hover .ba-icon,.ba-care-list li:hover .ba-icon,.ba-regions li:hover .ba-icon{transform:scale(1.08)}
 .ba-flow-list>li:hover .ba-step-icon{background:var(--ba-hover-surface,#f4d2b7);transform:scale(1.04)}
 .ba-portrait-frame:hover img,.ba-access-photo-frame:hover img{transform:scale(1.025)}
 .ba-doctor-trigger:hover,.ba-map-zoom:hover{border-color:var(--ba-accent);box-shadow:0 5px 18px var(--ba-shadow-light,#7a4b2112)}
 .ba-doctor-trigger:hover{background:var(--ba-pale);transform:translateY(-2px)}.ba-map-zoom:hover span{background:var(--ba-accent);color:white}
}
.ba-examples-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.ba-examples-heading h3{margin:0;font-size:16px}
.ba-examples ul{gap:8px}.ba-examples li{padding:5px 11px;border:1px solid var(--ba-table-line,#e7d7c9);border-radius:7px;background:var(--ba-soft-surface,#fffaf6);font-size:14px;line-height:1.6;transform-origin:center}.ba-examples li:not(:last-child):after{content:none}
.ba-director{border:0;padding-block:30px 46px}.ba-director-surface{padding:38px 42px 42px;background:var(--ba-pale);border:1px solid var(--ba-soft-line,#f0e3d7);border-radius:24px 24px 64px 24px}
.ba-director-heading{margin-bottom:28px;display:flex;gap:16px;align-items:baseline}.ba-director-heading h2{font-size:25px}
.ba-director-grid{grid-template-columns:31% minmax(0,1fr);gap:42px}.ba-director-grid.is-single{grid-template-columns:1fr}
.ba-director-portrait{position:static;width:100%}.ba-portrait-frame{border-radius:14px 14px 42px 14px;background:var(--ba-card-tone,#f5e6d6)}
.ba-portrait-frame img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 32%}
.ba-page .ba-message-heading{font-size:29px;margin:0 0 22px;padding-left:20px;border-left:3px solid var(--ba-accent)}.ba-prose{line-height:1.95;font-size:17px}
.ba-page .ba-director-signature{display:flex;justify-content:flex-end;align-items:baseline;gap:18px;margin-top:26px;border-top:1px solid var(--ba-line);padding-top:18px}
.ba-director-signature span{font-size:14px;color:var(--ba-muted)}.ba-director-signature strong{font-family:"Noto Serif JP",serif;font-size:23px;font-weight:600;letter-spacing:.08em}
.ba-regions{grid-template-columns:1fr 1fr;gap:20px;margin-block:20px!important}.ba-regions h3{font-size:23px}.ba-regions p{font-size:15px}.ba-regions .ba-icon{width:25px;height:25px}
.ba-map-figure{margin-block:20px!important}.ba-page .ba-map-zoom{display:block;position:relative;width:100%;padding:0;background:#fff;border:1px solid var(--ba-line);border-radius:12px;overflow:hidden;cursor:zoom-in;transition:border-color var(--ba-duration),box-shadow var(--ba-duration)}
.ba-map-zoom>img{display:block;width:100%;height:auto;object-fit:contain}.ba-map-zoom>span{position:absolute;right:10px;bottom:10px;font-size:12px;padding:4px 9px;border:1px solid var(--ba-muted-line,#d5c6ba);border-radius:5px;background:#fff;color:var(--ba-ink);transition:background var(--ba-duration),color var(--ba-duration)}
.ba-access-photo-frame{border-radius:10px;align-self:start}.ba-access-photo{border-radius:0}.ba-access-grid.is-single{grid-template-columns:1fr}
.ba-notice{padding:24px 0 32px;border-top:1px solid var(--ba-line);background:var(--ba-surface,#fffcf8)}.ba-notice-inner{display:flex;align-items:center;gap:32px}.ba-notice h2{font-size:20px;flex:none}.ba-notice .ba-link{font-size:15px}
/* 担当医表は表として読める構造を維持し、原稿と医師カードの責務を分離します。 */
.ba-schedule{padding-block:42px 26px}.ba-schedule .ba-section-heading{text-align:left;margin-bottom:16px}.ba-schedule .ba-section-heading h2{font-size:29px}.ba-schedule-intro{margin:0 0 20px;color:var(--ba-muted);font-size:16px}.ba-schedule-scroll-hint{display:none;font-size:13px;color:var(--ba-muted);margin-bottom:8px!important}
.ba-schedule-table-wrap{overflow-x:auto;border:1px solid var(--ba-line);border-radius:14px;background:#fff}.ba-schedule-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:16px}
.ba-schedule-table th,.ba-schedule-table td{padding:14px 10px;text-align:center;vertical-align:top;border-right:1px solid var(--ba-line);border-bottom:1px solid var(--ba-line)}
.ba-schedule-table tr>*:last-child{border-right:0}.ba-schedule-table tbody tr:last-child>*{border-bottom:0}.ba-schedule-table thead th{background:var(--ba-pale);color:var(--ba-accent);font-weight:700}
.ba-schedule-table th:first-child{width:78px}.ba-schedule-table tbody th{background:var(--ba-surface,#fffcf8);font-size:15px;vertical-align:middle}
.ba-page .ba-doctor-trigger{display:block;width:fit-content;max-width:100%;margin:0 auto 3px;padding:7px 8px;min-height:40px;line-height:1.5;background:#fff;border:1px solid var(--ba-neutral-line,#e3d3c7);border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform var(--ba-duration),background var(--ba-duration),border-color var(--ba-duration),box-shadow var(--ba-duration)}
.ba-schedule-note{font-size:14px;line-height:1.8;color:var(--ba-muted);margin-top:14px!important}
.ba-page dialog{border:1px solid var(--ba-dialog-line,#e0d2c7);border-radius:18px;background:var(--ba-dialog-surface,#fffdf9);color:var(--ba-ink);padding:24px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 24px 80px #12344033;margin:auto}.ba-page dialog::backdrop{background:#173c4880}
.ba-dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.ba-dialog-bar h2{font-size:21px}.ba-page .ba-dialog-close{cursor:pointer;background:var(--ba-pale);border:1px solid var(--ba-close-line,#d7beaa);border-radius:6px;padding:8px 16px;min-height:44px;flex:none;font-size:15px}
.ba-image-dialog{width:min(1100px,calc(100vw - 32px))}.ba-image-viewport{overflow:auto;max-height:65dvh}.ba-image-viewport>img{width:100%;object-fit:contain}.ba-image-caption{font-size:15px;margin-top:16px!important}.ba-map-credit{display:block;font-size:12px;color:var(--ba-muted);margin-top:12px}.ba-doctor-name{display:block;margin:4px auto;padding:4px;line-height:1.6}.ba-schedule-table-wrap:focus-visible,.ba-image-viewport:focus-visible{outline:3px solid #176f81;outline-offset:4px}
.ba-card-dialog{width:560px}.ba-card-dialog img{width:170px;max-height:220px;object-fit:cover;border-radius:10px}.ba-card-dialog h3{font-size:24px}.ba-card-dialog p{white-space:pre-line;font-size:16px;line-height:1.8}.ba-card-dialog p+p{margin-top:12px}.ba-card-dialog .ba-dialog-close{float:right;margin:0 0 14px 16px}
.ba-card-grid{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:start;gap:24px}.ba-card-grid.is-single{grid-template-columns:1fr}.ba-card-dialog .ba-dialog-bar .ba-dialog-close{float:none;margin:0}.ba-card-dialog .ba-card-kana{font-size:14px;color:var(--ba-muted)}
@media(max-width:1050px){.ba-director-surface{padding:30px}.ba-director-grid{grid-template-columns:29% minmax(0,1fr);gap:28px}.ba-page .ba-message-heading{font-size:25px}.ba-regions{grid-template-columns:1fr}.ba-schedule-table th,.ba-schedule-table td{padding:11px 5px}}
@media(max-width:767px){
 .ba-hero-desktop{display:none}.ba-hero-mobile{display:block}.ba-news-list a{padding-block:10px;min-height:64px;line-height:1.5}
 .ba-director{padding-block:14px 28px}.ba-director-surface{width:calc(100% - 24px);padding:24px 20px;border-radius:18px 18px 36px 18px}.ba-director-heading{display:block;margin-bottom:20px}.ba-director-heading h2{font-size:23px}
 .ba-director-grid{grid-template-columns:1fr;gap:24px}.ba-director-portrait{position:static;width:min(300px,85%)}.ba-portrait-frame img{aspect-ratio:1/1.08}.ba-page .ba-message-heading{font-size:24px;padding-left:14px;margin-bottom:18px}.ba-prose{font-size:16px}.ba-director-signature strong{font-size:21px}
 .ba-regions{grid-template-columns:1.6fr 1fr;gap:16px}.ba-regions li{gap:8px}.ba-regions h3{font-size:20px}.ba-regions p{font-size:14px}.ba-regions .ba-icon{width:22px}
 .ba-schedule{padding-block:32px 22px}.ba-schedule .ba-section-heading h2{font-size:25px}.ba-schedule-table{min-width:680px}.ba-schedule-table-wrap{scrollbar-width:auto}.ba-schedule-note{font-size:14px}.ba-schedule-scroll-hint{display:block}
 .ba-notice-inner{display:block}.ba-notice h2{font-size:19px;margin-bottom:10px}.ba-notice .ba-link{font-size:14px}.ba-page dialog{padding:18px}.ba-card-dialog img{width:110px}.ba-card-grid{grid-template-columns:110px minmax(0,1fr);gap:16px}.ba-image-caption{font-size:14px}.ba-image-viewport>img{width:760px;max-width:none;height:auto}.ba-schedule-table th:first-child{position:sticky;left:0;z-index:1}.ba-schedule-table thead th:first-child{z-index:2}
}
@media(prefers-reduced-motion:reduce){.ba-page *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(max-width:359px){.ba-regions{grid-template-columns:1fr}.ba-card-grid{grid-template-columns:1fr}.ba-card-dialog img{width:120px}}
/* 同じ段の内容を揃え、携帯では自然な文書の高さへ戻します。 */
@media(min-width:768px){
 .ba-guide .ba-two-col:not(.is-single)>#ba-flow{display:flex;flex-direction:column}
 .ba-guide .ba-two-col:not(.is-single) .ba-flow-list{display:flex;flex:1;flex-direction:column;justify-content:space-between;gap:24px}
 .ba-guide .ba-two-col:not(.is-single) .ba-flow-list>li{flex:1;padding-bottom:0}
 .ba-guide .ba-two-col:not(.is-single) .ba-flow-list>li:last-child{flex:0}
}
.ba-director-more{margin-top:22px}.ba-director-more summary{padding:10px 18px;border:1px solid var(--ba-button-line,#d8b79e);border-radius:7px;background:var(--ba-button-surface,#fffaf5);color:var(--ba-accent)}
.ba-director-more .ba-less-label,.ba-director-more[open] .ba-more-label{display:none}.ba-director-more[open] .ba-less-label{display:inline}
.ba-director-portrait .ba-director-signature{justify-content:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--ba-signature-line,#dfcdbf);gap:12px}
.ba-locations .ba-location-visual{margin:22px 0 24px!important;width:100%;aspect-ratio:4/3;border:1px solid var(--ba-line);border-radius:12px;background:var(--ba-surface,#fffcf8);overflow:hidden}
.ba-location-visual .ba-map-zoom{height:100%;border:0;border-radius:0}.ba-location-visual .ba-map-zoom>img{height:100%;width:100%;object-fit:contain}
.ba-location-visual>.ba-access-photo{height:100%;width:100%;aspect-ratio:auto;object-fit:cover}
.ba-page .ba-access-grid{grid-template-columns:1fr}.ba-page .ba-access-name{margin:0 0 16px;font-size:23px}
.ba-access-grid address{font-size:16px;line-height:1.85;padding-bottom:15px;border-bottom:1px solid var(--ba-line)}.ba-access-grid address>span{font-size:14px;letter-spacing:.06em;color:var(--ba-muted);margin-bottom:4px}
.ba-contact-list>div{padding-block:8px;margin:0;grid-template-columns:52px minmax(0,1fr);gap:12px}.ba-contact-list>div+div{border-top:1px solid var(--ba-line)}
.ba-page .ba-contact-phone{background:var(--ba-pale);border:1px solid var(--ba-phone-line,#eed6c3);border-radius:10px;padding:12px 16px;margin-bottom:8px;align-items:center}
.ba-contact-phone dt{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ba-accent)}.ba-contact-phone .ba-icon{width:24px;height:24px}
.ba-page .ba-contact-phone a{color:var(--ba-accent);font-size:clamp(24px,2.7vw,34px);font-weight:800;letter-spacing:.02em;line-height:1.25;white-space:nowrap}
@media(max-width:767px){.ba-page .ba-contact-phone a{font-size:28px}.ba-director-portrait{margin-inline:auto!important}.ba-locations .ba-location-visual{margin-top:18px!important}}
@media(max-width:359px){.ba-page .ba-contact-phone{padding:10px;grid-template-columns:30px minmax(0,1fr);gap:8px}.ba-page .ba-contact-phone a{font-size:24px}}
/* 姓名の長さにかかわらず同じ枠。姓と名の区切りを保ちます。 */
.ba-page .ba-doctor-trigger{width:100%;max-width:10em;min-height:44px;margin-inline:auto;white-space:nowrap;text-align:center;padding-inline:6px;letter-spacing:.02em}
.ba-page .ba-card-dialog.bnk-card-hover{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-shadow:0 14px 45px #173c482b}
/* 紹介・地図・連絡先は装飾を増やさず、情報の階層と余白で整えます。 */
.ba-page .ba-card-dialog{width:470px;padding:18px;border-radius:12px}.ba-page .ba-card-dialog.bnk-card-hover{width:min(470px,calc(100vw - 24px))}
.ba-card-dialog .ba-card-grid{grid-template-columns:125px minmax(0,1fr);gap:18px}.ba-card-dialog .ba-card-grid.is-single{grid-template-columns:1fr}.ba-page .ba-card-photo{width:125px;max-height:175px;object-fit:cover;border-radius:7px}
.ba-card-details h3{font-size:23px;line-height:1.4;margin:0 0 4px!important}.ba-card-details p{font-size:15px;line-height:1.65}.ba-card-details .ba-card-kana{font-size:13px}.ba-card-details p+p{margin-top:8px!important}
.ba-page .ba-card-dialog>.ba-dialog-close{float:none;display:block;margin:16px 0 0 auto;padding:5px 16px}.ba-page .ba-card-dialog.bnk-card-hover>.ba-dialog-close{display:none}
.ba-message-text.is-collapsed{overflow:hidden;mask-image:linear-gradient(#000 calc(100% - 22px),transparent)}
.ba-page .ba-message-toggle{display:block;margin-top:16px;padding:7px 0;min-height:44px;border:0;border-bottom:1px solid var(--ba-accent);background:transparent;color:var(--ba-accent);font-weight:700;cursor:pointer}
.ba-locations .ba-location-visual{border:0;border-radius:0;background:#fff;aspect-ratio:4/3}
.ba-location-visual .ba-map-zoom{background:#fff;border:0;border-radius:0;box-shadow:none}.ba-location-visual .ba-map-zoom:hover{box-shadow:none}
#ba-area .ba-location-visual img{transform:scale(1.035);transform-origin:center}.ba-location-visual .ba-map-zoom>img{object-fit:contain}
.ba-page .ba-access-grid{grid-template-columns:32% minmax(0,1fr);align-items:start;gap:20px}.ba-page .ba-access-grid.is-single{grid-template-columns:1fr}
.ba-access-grid .ba-access-photo{aspect-ratio:3/4;object-position:60% center}.ba-access-grid .ba-access-photo-frame{border-radius:6px}
.ba-access-grid address{padding-bottom:10px;font-size:16px;border:0}.ba-contact-list{font-size:17px!important}.ba-contact-list>div{grid-template-columns:42px minmax(0,1fr);gap:8px;padding-block:5px}.ba-contact-list>div+div{border:0}
.ba-page .ba-contact-phone{display:block;background:none;border:0;border-radius:0;padding:0;margin:0 0 7px}.ba-contact-phone dt{display:block;font-size:12px;padding:0;color:var(--ba-muted)}
.ba-page .ba-contact-phone a{font-size:clamp(25px,2.4vw,32px);letter-spacing:0;font-weight:800;line-height:1.35;padding:0;color:var(--ba-accent)}
@media(max-width:767px){.ba-card-dialog .ba-card-grid{grid-template-columns:96px minmax(0,1fr);gap:14px}.ba-page .ba-card-photo{width:96px;max-height:140px}.ba-card-details h3{font-size:22px}.ba-page .ba-access-grid{grid-template-columns:28% minmax(0,1fr);gap:14px}.ba-contact-list>div:not(.ba-contact-phone){display:block}.ba-contact-list dt{padding:0}.ba-contact-list{font-size:17px!important}.ba-page .ba-contact-phone a{font-size:26px}}
@media(max-width:359px){.ba-page .ba-card-dialog{padding:14px}.ba-card-dialog .ba-card-grid{grid-template-columns:84px minmax(0,1fr);gap:12px}.ba-page .ba-card-photo{width:84px}.ba-card-details h3{font-size:21px}.ba-page .ba-contact-phone a{font-size:23px}.ba-page .ba-access-grid{gap:10px}.ba-page .ba-access-name{font-size:19px}}
