/* Shared Japanese line composition. Preserve vertical titles and booking controls. */
body :is(h1,h2,h3,h4,h5){text-wrap:balance;line-break:strict;word-break:normal;overflow-wrap:break-word}
body :is(p,address,dd,summary){text-wrap:balance;line-break:strict;word-break:normal;overflow-wrap:break-word}
body :is(.hero-title,.hero__title,.vertical-text){overflow-wrap:normal;text-wrap:wrap}
body :is(.voice__headline,.scrap__headline,.reason-title,.feature__title){text-wrap:balance}
body :is(.faq-question,.faq-item summary,.faq-list summary){text-wrap:balance}
body :is(.store-directory__address,.store-information h3){text-wrap:balance;overflow-wrap:normal}
body :is(.price-amount,.price-line__price,.pricing-card dd){white-space:nowrap}
@media(max-width:760px){
 body :is(.worries-intro,.worries-sub,.reasons-sub,.spread__text,.access-lead,.about-copy,.interview-text,.hero-description) br:not(.paragraph-break){display:none}
 body :is(.sec-title,.section-title-jp,.cta-title,.spread__title,.access-intro .section-title) br{display:none}
 body :is(.sec-title,.section-title-jp,.cta-title,.spread__title,.access-intro .section-title){text-wrap:balance;line-height:1.65}
 body :is(.sec-title,.section-title-jp,.cta-title){font-size:clamp(23px,5.8vw,30px);letter-spacing:.05em}
 body .spread__title{font-size:clamp(26px,6.8vw,36px);letter-spacing:.04em}
 body .access-intro .section-title{font-size:clamp(26px,6.8vw,34px)}
 body :is(.worry-text,.voice__headline,.scrap__headline,.reason-title){letter-spacing:.04em}
 body .reason-title{font-size:clamp(17px,4.5vw,21px)}
 body .store-information h3{font-size:18px;line-height:1.8}
 body :is(.feature__title,.index-row__body h3){line-height:1.7;letter-spacing:.04em}
}
body :is(.copy-line,.copy-paragraph){display:block;text-wrap:balance;line-break:strict}
body .copy-paragraph + .copy-paragraph{margin-top:.65em}
body .copy-keep{white-space:nowrap}
body :is(.gm-review-card__headline,.gm-review-card__text,.ogya-report__title,.section-footnote,.menu-methods,.consultation-card p){text-wrap:balance;line-break:strict}
body .consultation-card p br{display:none}
body :is(.scrap__headline,.scrap__text){text-wrap:balance}
@media(max-width:760px){body .worries-intro{max-width:34em;margin-inline:auto}body .menu-methods br{display:none}}
@media(max-width:380px){body .teller-lead p{font-size:13px;line-height:2;letter-spacing:0}}
/* Keep short controls and intentional phrase breaks intact at narrow widths. */
body :is(.btn-washi__main,.btn-washi__sub,.nav-reserve-btn__main,.nav-reserve-btn__sub,.reservation-button-main,.reservation-button-sub){white-space:nowrap;text-wrap:nowrap}
@media(max-width:760px){
 body .btn-washi{padding-inline:18px}
 body .btn-washi__main{letter-spacing:.15em;text-indent:.15em}
 body .btn-washi__sub{letter-spacing:.08em}
 body .access-intro .section-title br{display:block}
 body .access-intro .section-title{font-size:clamp(24px,6.4vw,32px);letter-spacing:.04em}
 body .store-information{padding:28px 24px}
}
@media(max-width:480px){
 body .store-details>div{display:grid;grid-template-columns:1fr;gap:8px;padding:18px 0}
 body .store-details dt{font-size:12px}
 body .store-details dd{font-size:13px;line-height:1.9;text-wrap:balance}
}

/* アクセス欄の店舗名補足：4店舗・PC/スマホ共通。親の文字サイズに依存させない。 */
body #access .store-name-inline {
 display:inline-flex; align-items:baseline; flex-wrap:wrap; gap:0 .4em;
}
body #access .store-name-inline__branch {
 display:inline-block; font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,Meiryo,sans-serif;
 font-size:13px; font-weight:400; font-style:normal; line-height:1.8;
 letter-spacing:.06em; color:inherit; opacity:.8; white-space:nowrap;
}

/* 写真下の肩書きとブランドマーク：4店舗で同じ正円サイズ。 */
body .teller-name-with-mark { display:flex; justify-content:center; align-items:center; gap:5px; }
body .teller-name-with-mark > span:last-child { min-width:0; text-align:left; font-size:12px; line-height:1.6; letter-spacing:0; text-wrap:balance; }
body .teller-name-with-mark .teller-name-mark {
 box-sizing:border-box; display:inline-flex; flex:0 0 26px; width:26px; height:26px;
 border-radius:50%; align-items:center; justify-content:center;
 vertical-align:middle; margin:0; padding:0; overflow:hidden;
}
body .teller-name-with-mark .teller-name-mark--chief {
 background:linear-gradient(135deg,#f6e7a9 0%,#d6ae50 48%,#b9852b 100%); color:#50370f; border:1px solid #b98b35; box-shadow:inset 0 0 0 1px rgba(255,247,207,.65); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,Meiryo,sans-serif;
 font-size:9px; font-weight:500; letter-spacing:0; line-height:1; white-space:nowrap;
}
body .teller-name-with-mark .teller-name-mark--favicon { object-fit:contain; }
