/* 院長紹介専用。FVは subpage-hero.css の共通ルールを使用。 */
body.doctor-page { min-width:0; }
body.doctor-page > main.doctor-page { width:100%; margin:0; }
body.doctor-page .site-header { position:absolute; z-index:5; top:0; left:0; width:100%; }
.doctor-page__content { padding:88px 0 92px; background:#fcf9f7 url('../images/doctor-page/decor-left.webp') left 267px / 150px 1260px no-repeat; position:relative; }
.doctor-page__content::before { content:""; pointer-events:none; position:absolute; inset:0; background:url('../images/doctor-page/decor-right.webp') right 267px / 160px 1260px no-repeat; }
.doctor-profile,.doctor-message,.doctor-values { position:relative; }
.doctor-profile { display:grid; grid-template-columns:455fr 530fr; gap:59px; align-items:center; width:min(1040px,calc(100% - 64px)); margin:0 auto; }
.doctor-profile__photo { aspect-ratio:455 / 502; border-radius:12px; overflow:hidden; }
.doctor-profile__photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
body.doctor-page .doctor-profile__english { color:#fe8f26; font-size:18px; letter-spacing:2.7px; line-height:1.5; margin:0 0 12px; }
body.doctor-page .doctor-profile h2 { font-size:50px; font-weight:var(--font-weight-heading,500); line-height:1.45; margin:0; letter-spacing:2px; }
.doctor-profile h2 span { font-size:30px; display:inline-block; margin-left:18px; letter-spacing:0; }
body.doctor-page .doctor-profile__lead { font-size:25px; font-weight:500; line-height:1.5; margin:0; letter-spacing:1px; text-wrap:pretty; }
.doctor-profile__table { margin:80px 0 0; border-radius:12px; overflow:hidden; background:#fff; }
.doctor-profile__table > div { display:grid; grid-template-columns:150px minmax(0,1fr); min-height:66px; }
.doctor-profile__table > div + div { border-top:1px solid #fff0e1; }
.doctor-profile__table dt,.doctor-profile__table dd { display:flex; align-items:center; padding:16px 30px; margin:0; font-size:20px; font-weight:500; line-height:1.6; }
.doctor-profile__table dt { background:#fff8ef; justify-content:center; padding-inline:12px; }
.doctor-message { display:grid; grid-template-columns:220px minmax(0,1fr); gap:45px; width:min(1040px,calc(100% - 64px)); margin:60px auto 0; }
body.doctor-page .doctor-message__heading p { margin:0; color:#fe8f26; font-size:20px; letter-spacing:2px; line-height:1.5; }
.doctor-message__heading p::after { content:""; display:block; width:37px; height:1px; background:#fe8f26; margin:14px 0 12px; }
body.doctor-page .doctor-message h2 { font-weight:var(--font-weight-heading,500); font-size:40px; line-height:1.45; margin:0; }
body.doctor-page .doctor-message__body p { margin:0 0 30px; font-size:20px; line-height:1.5; letter-spacing:.3px; line-break:strict; word-break:normal; text-wrap:pretty; }
body.doctor-page .doctor-message__body p:last-child { margin-bottom:0; }
.doctor-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:min(1240px,calc(100% - 64px)); margin:64px auto 0; padding:26px 14px; border-radius:20px; background:#fff8ef; }
.doctor-values__item { text-align:center; min-width:0; padding:0 30px; margin:0; }
.doctor-values__item + .doctor-values__item { border-left:1px solid #ffd6b2; }
.doctor-values__icon { display:block; width:140px; height:140px; margin:0 auto 20px; border-radius:50%; }
body.doctor-page .doctor-values h2 { max-width:250px; margin:0 auto; font-size:25px; line-height:1.5; font-weight:var(--font-weight-heading,500); text-wrap:balance; }
.doctor-values h2::after { content:""; display:block; width:51px; height:2px; background:#fe8f26; margin:24px auto; }
body.doctor-page .doctor-values p { max-width:295px; margin:0 auto; font-size:20px; line-height:1.8; text-wrap:balance; }
@media (min-width:768px) and (max-width:1199px) {
 .doctor-profile { grid-template-columns:42% minmax(0,1fr); gap:32px; }
 body.doctor-page .doctor-profile h2 { font-size:40px; }
 body.doctor-page .doctor-profile__lead { font-size:21px; }
 .doctor-profile__table { margin-top:36px; }
 .doctor-profile__table > div { grid-template-columns:120px minmax(0,1fr); }
 .doctor-profile__table dd { padding-inline:18px; }
 .doctor-message { grid-template-columns:190px minmax(0,1fr); gap:30px; }
 .doctor-page__desktop-break { display:none; }
 .doctor-values__item { padding-inline:18px; }
}
@media (max-width:767px) {
 /* 他の下層ページと同様、SPではヘッダーの下から共通FVを配置。 */
 body.doctor-page .site-header { position:relative; }
 .doctor-page__content { padding:40px 0 48px; background-size:60px 504px; background-position:left 390px; }
 .doctor-page__content::before { background-size:64px 504px; background-position:right 470px; }
 .doctor-profile,.doctor-message { width:calc(100% - 48px); display:flex; flex-direction:column; gap:28px; }
 .doctor-profile__photo { width:100%; }
 .doctor-profile__details { width:100%; }
 body.doctor-page .doctor-profile__english { font-size:14px; margin-bottom:8px; }
 body.doctor-page .doctor-profile h2 { font-size:30px; letter-spacing:1px; }
 .doctor-profile h2 span { font-size:18px; margin-left:10px; }
 body.doctor-page .doctor-profile__lead { font-size:16px; line-height:1.8; letter-spacing:0; margin-top:8px; }
 .doctor-profile__table { margin-top:24px; }
 .doctor-profile__table > div { grid-template-columns:88px minmax(0,1fr); min-height:52px; }
 .doctor-profile__table dt,.doctor-profile__table dd { font-size:14px; padding:12px; }
 .doctor-message { margin-top:44px; gap:22px; }
 .doctor-message__heading { width:100%; }
 body.doctor-page .doctor-message__heading p { font-size:15px; }
 body.doctor-page .doctor-message h2 { font-size:28px; }
 body.doctor-page .doctor-message__body p { font-size:15px; line-height:1.85; letter-spacing:0; margin-bottom:24px; }
 .doctor-page__desktop-break { display:none; }
 .doctor-values { width:calc(100% - 48px); grid-template-columns:1fr; padding:28px 22px; margin-top:36px; }
 .doctor-values__item { padding:0; }
 .doctor-values__item + .doctor-values__item { border-left:0; border-top:1px solid #ffd6b2; margin-top:28px; padding-top:28px; }
 .doctor-values__icon { width:112px; height:112px; margin-bottom:16px; }
 body.doctor-page .doctor-values h2 { max-width:240px; font-size:20px; }
 .doctor-values h2::after { margin-block:16px; }
 body.doctor-page .doctor-values p { font-size:15px; line-height:1.85; max-width:240px; }
}

/* 共通パーツの中間幅での収まり。院長紹介ページに限定。 */
body.doctor-page .design-container { max-width:100%; }
body.doctor-page .site-header__inner { max-width:calc(100% - 28px); }
@media (min-width:768px) and (max-width:1439px) {
 body.doctor-page .design-container { width:100%; }
 body.doctor-page .site-header__inner { width:calc(100% - 32px); gap:12px; }
 body.doctor-page .primary-nav { flex:1; width:auto; justify-content:space-between; gap:8px; font-size:clamp(12px,1.38vw,20px); }
 body.doctor-page .brand--header { transform:scale(.8); width:145px; }
 body.doctor-page .header-contact__phone { display:none; }
 body.doctor-page .reservation-header { width:140px; }
 body.doctor-page .contact__inner { width:calc(100% - 64px); }
 body.doctor-page .footer-navigation__columns { padding-inline:32px; justify-content:space-around; gap:32px; }
 body.doctor-page .footer-navigation a { font-size:16px; }
 body.doctor-page .footer-navigation ul { column-gap:24px; }
}
@media (min-width:768px) and (max-width:1244px) {
 body.doctor-page .contact__columns { grid-template-columns:minmax(0,634px); justify-content:center; gap:32px; }
 body.doctor-page .contact__details { max-width:454.324px; margin-inline:auto; }
 body.doctor-page .contact { padding-bottom:65px; }
}
@media (max-width:767px) { body.doctor-page .site-header__inner { max-width:100%; } }

/* Reset generic article spacing only inside this three-column component. */
body.doctor-page .doctor-values > article { margin:0; }
.doctor-values h2 span,.doctor-values p span { display:block; }
@media (max-width:767px) {
 body.doctor-page .doctor-values > article + article { margin-top:28px; }
}
