.copy-paragraph{display:block}.copy-paragraph+.copy-paragraph{margin-top:.85em}.section-lead{max-width:680px}.facility-photo{background:#eeeade}.photo-open{display:block;width:100%;height:100%;padding:0;border:0;cursor:zoom-in;background:none}.photo-open img{width:100%;height:100%;object-fit:cover!important}.gallery-count{display:block;text-align:center;font-size:15px;letter-spacing:.2em;color:#69713d;margin-top:14px}.gallery-hint{text-align:center;font-size:12px;color:#736557;margin:8px 0 22px}.facility-tile__body{padding:26px 30px}.photo-dialog{max-width:94vw;width:1100px;border:0;border-radius:18px;padding:38px 16px 12px;background:#fffaf2;color:#513a28}.photo-dialog::backdrop{background:rgba(25,20,15,.8)}.photo-dialog img{display:block;max-width:100%;max-height:76vh;margin:auto;object-fit:contain}.photo-dialog p{text-align:center}.photo-close{position:absolute;right:10px;top:4px;border:0;background:transparent;font-size:30px;cursor:pointer;width:40px;height:40px}.contact-hub{max-width:760px;margin:0 auto 24px;background:#fff;border:1px solid #eadbc8;border-radius:24px;padding:24px}.hub-eyebrow{text-align:center;margin:0 0 18px;font-weight:700}.hub-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hub-options a{display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:88px;text-align:center;background:#fff1e3;border-radius:14px;padding:14px;color:#704021;text-decoration:none}.hub-options small{font-size:12px;line-height:1.6}.hub-options .hub-line{background:#edf7ec;color:#226443}#contactForm{scroll-margin-top:120px}@media(max-width:760px){.brand-title{font-size:14px}.brand-page{font-size:11px;color:#846b53;margin-top:2px}.hub-options{grid-template-columns:1fr}.hub-options a{min-height:70px}.contact-hub{padding:20px}.facility-photo{height:280px!important}.facility-tile__body{padding:24px 20px}.photo-dialog{max-width:96vw}.section-lead{line-height:1.95}}/* Editorial phrase boundaries work even without automatic Japanese phrase wrapping. */
h1,h2,h3,h4 { overflow-wrap:normal; word-break:normal; }
.heading-phrase { display:inline-block; max-width:100%; text-wrap:nowrap; }
@media(max-width:760px){ .section-title { text-wrap:wrap; } .heading-phrase { white-space:normal; text-wrap:wrap; } }
/* Phrase spans must flow as text, not shrink as separate flex columns. */
.values h3 { display:block; position:relative; padding-left:30px; text-wrap:wrap; }
.values h3::before { position:absolute; left:0; top:.65em; width:20px; }
.values h3 .heading-phrase { display:inline-block; }
@media(max-width:760px){
 .tl-item{display:flex;flex-direction:column;gap:10px;padding:14px 0}
 .tl-time{width:auto;text-align:left;padding:0}
 .tl-dot{display:none}
 .tl-body{width:100%;min-width:0;box-sizing:border-box;padding:20px}
 .tl-no{width:40px;height:40px}
 .timeline::before,.tl-list::before{display:none}
 .merit-card{padding:24px 20px}
 .heading-phrase{vertical-align:baseline}
}
@media(max-width:760px){.flow-step{flex-direction:column;gap:10px}.flow-step__body{box-sizing:border-box;width:100%;padding:20px;min-width:0}}
/* Desktop hero typography follows its text column, not viewport width. */
@media(min-width:1041px){
 .hero-copy{width:46%;max-width:520px;container-type:inline-size}
 .hero-title{font-size:clamp(28px,3.2vw,42px);font-size:clamp(24px,7cqw,42px);line-height:1.5;text-wrap:wrap}
 .hero-title .line,.hero-title .title-line{white-space:nowrap}
 .hero-sub{width:100%;max-width:100%;font-size:15px;line-height:1.95;word-break:normal;text-wrap:pretty}
 .hero-copy .cta-row{gap:12px;flex-wrap:wrap}
 .hero-copy .btn{padding-left:22px;padding-right:22px}
 .section-lead{max-width:760px;text-align:left;word-break:normal;text-wrap:pretty}
 .copy-paragraph+.copy-paragraph{margin-top:1em}
}

.photo-open img { object-position:center 45%; }
.town-support-link{display:inline-block;margin-top:14px;color:#8a461c;font-size:13px;line-height:1.8;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.town-support-link small{display:block;font-size:11px;color:#796b5d}.town-support-link:focus-visible{outline:2px solid #b65f28;outline-offset:4px}.strength-card>div{min-width:0}
.town-support-note{max-width:100%;margin:22px auto 0;padding:16px 22px;border:1px solid #e8d8c8;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.55);color:#745b49;font-size:13px}.town-support-note .town-support-link{margin:0}@media(max-width:760px){.town-support-note{display:block}.town-support-note .town-support-link{margin-top:10px}}
