/* FIX6: shared reading scale and photo/copy masthead. Loaded after existing parts. */
html{font-size:18px}
body{line-height:1.9}
p,li,dd,dt,figcaption,address{line-height:1.9}
main :is(p,li,small,figcaption,address),.detail-site-nav,.site-breadcrumb{font-size:1rem}
main :is(p,li){overflow-wrap:anywhere}
h1,h2,h3{overflow-wrap:anywhere;word-break:normal}
.headline-unit{white-space:normal}
.frame__chapter{display:none!important}
.frame__brand,.frame__brand small,.site-menu .site-menu__links,.frame__bottom-nav{font-size:1rem}
.frame__brand{white-space:normal;line-height:1.4}
.frame__brand small{line-height:1.4}
.frame__count{display:none}
.frame__nav{display:none}
.site-menu{left:calc(var(--frame-side) + 17rem);right:var(--frame-side);padding-top:0}
.site-menu .site-menu__links{gap:1rem}
.frame__bottom-nav{line-height:1.8}
.info-page .frame__bottom-nav{left:var(--frame-side);right:auto}
.detail-main,.info-page .detail-main{padding-top:var(--frame-top)}
/* Same copy order, type scale, image area and minimum height on every page. */
.page-masthead{--mast-accent:var(--green);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3rem;min-height:32rem;padding:3rem 4vw;margin:0;border-bottom:1px solid var(--mast-accent);background:var(--paper);color:var(--ink)}
.middle-page .page-masthead{--mast-accent:var(--orange)}
.page-masthead__copy{min-width:0}
.page-masthead .page-masthead__kicker{margin:0 0 1rem;padding-left:1rem;border-left:3px solid var(--mast-accent);color:var(--ink);font-size:1rem;font-weight:700;letter-spacing:0}
.page-masthead :is(h1,h2){margin:0 0 1.5rem;font:800 clamp(2rem,3.5vw,3rem)/1.4 "Zen Kaku Gothic New","Hiragino Sans",sans-serif;letter-spacing:0;max-width:none}
.page-masthead :is(h1,h2) em{color:var(--mast-accent);font-style:normal}
.page-masthead .page-masthead__lead{font-size:1rem;line-height:1.9;margin:0;max-width:42rem}
.page-masthead__visual{margin:0;min-width:0;width:100%;background:var(--paper)}
.page-masthead__visual img{display:block;width:100%;height:24rem;object-fit:contain;filter:none}
.info-course-index,.access-destination{margin:2rem 0}
/* Photos are presented separately from the copy; there is no full-image dark veil. */
.hero__veil,.message__veil,.door__shade,.pathway__veil,.m-hero:after{display:none!important;background:none!important}
.spread.spread--hero,#site-viewport .spread.spread--hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto;align-content:center;align-items:start;gap:1rem 3rem;padding:calc(var(--frame-top) + 2rem) calc(var(--frame-side) + 2rem) calc(var(--frame-bottom) + 2rem);height:auto;min-height:100svh;max-height:none;overflow:visible;color:var(--ink)}
.spread--hero .hero__photo{position:static;grid-column:2;grid-row:1/5;align-self:stretch;min-height:24rem}
.spread--hero .hero__photo img{width:100%;height:100%;object-fit:cover;filter:none}
.spread--hero :is(.hero__kicker,.hero__stats,.hero__title,.hero__lead){grid-column:1;position:static!important;max-width:100%;margin:0;color:var(--ink);background:transparent;text-shadow:none;text-align:left}
.spread--hero .hero__kicker{grid-row:1;order:0;font-size:1rem}
.spread--hero .hero__stats{grid-row:3;display:flex;flex-direction:column;font-size:1rem}
.spread--hero .hero__stats b{color:var(--green);font-size:1rem}
.spread--hero .hero__title{grid-row:2;font-size:clamp(3rem,6vw,6rem);line-height:1.3;letter-spacing:0}
.spread--hero .hero__title em{color:var(--green)}
.spread--hero .hero__lead{grid-row:4;font-size:1rem;line-height:1.9}
.spread--message{display:block;color:var(--ink)}
.message__photo{position:static;margin-bottom:2rem}
.message__photo img{width:100%;height:auto;max-height:28rem;object-fit:contain;filter:none}
.message__content{max-width:42rem;color:var(--ink)}
.message__content :is(h2,p,em){color:var(--ink)}
.door,.pathway{display:flex;flex-direction:column;justify-content:flex-start;background:var(--paper);color:var(--ink);padding:1rem;min-height:0}
.door__photo,.pathway__photo{position:static;display:block;width:100%;margin-bottom:1rem}
.door__photo img,.pathway__photo img{height:auto;width:100%;aspect-ratio:4/3;object-fit:contain;filter:none}
.door :is(h3,em),.pathway__content :is(h3,em){color:var(--green)}
/* Whole survey originals stay readable and expand to their original file. */
.survey-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin-top:3rem}
.survey-gallery figure{margin:0;min-width:0}
.survey-gallery img{width:100%;height:auto;object-fit:contain;filter:none}
.survey-gallery figcaption{padding-top:.5rem;font-size:1rem}
/* The outer page scrolls naturally; the form is never clipped by a chapter. */
.spread.spread--contact,#site-viewport .spread.spread--contact{display:block;height:auto!important;max-height:none!important;min-height:100svh;overflow:visible!important;background:var(--paper);color:var(--ink);padding:2rem 4vw}
.spread--contact .page-masthead{margin-bottom:3rem}
.contact__details{margin:2rem 0;max-width:42rem}
.contact__details :is(p,a,small,address,strong){color:var(--ink)}
.contact__phone{white-space:normal}
.contact__form{display:block!important;height:auto!important;min-height:0;padding:0;background:var(--paper);color:var(--ink)}
.contact__form .contact-form__scroll{height:auto!important;max-height:none!important;overflow:visible!important;padding:0}
.inquiry-embed{width:100%;max-width:48rem;margin:2rem auto;min-width:0}
.inquiry-embed iframe{display:block;width:100%;height:2400px;border:0;background:#fff}
.inquiry-embed__fallback{font-size:1rem;line-height:1.9}
.inquiry-embed__fallback a{text-underline-offset:.4rem}
.inquiry-embed__fallback a:focus-visible,.survey-gallery a:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.hr-contact,.m-contact{overflow:visible}
@media(max-width:1199px){
 .site-menu{left:auto;right:var(--frame-side);padding:0}
 .site-menu__toggle:not([hidden]){display:block;min-height:2.5rem;font-size:1rem;line-height:1.8}
 .site-menu .site-menu__links{position:fixed;top:var(--frame-top);left:var(--frame-side);right:var(--frame-side);width:auto;max-height:calc(100dvh - var(--frame-top) - var(--frame-bottom));overflow:auto;flex-direction:column;align-items:stretch;gap:0;padding:1rem 1.25rem;background:var(--paper);border:1px solid var(--green)}
 .site-menu.is-ready .site-menu__links{display:none}
 .site-menu.is-open .site-menu__links{display:flex}
 .site-menu__links a{padding:.5rem 0;line-height:1.8}
}
@media(max-width:899px){
 html{font-size:16px}
 :root{--frame-top:72px;--frame-bottom:72px}
 .frame__brand{max-width:calc(100% - 7rem);width:auto;font-size:1rem}
 .frame__brand small{display:block;font-size:1rem}
 .page-masthead{grid-template-columns:minmax(0,1fr);min-height:0;padding:2rem 1.25rem;gap:2rem}
 .page-masthead :is(h1,h2){font-size:2rem;line-height:1.4}
 .page-masthead__visual img{height:16rem}
 .spread.spread--hero,#site-viewport .spread.spread--hero{display:flex;flex-direction:column;align-items:stretch;padding:calc(var(--frame-top) + 1rem) calc(var(--frame-side) + 1.25rem) calc(var(--frame-bottom) + 1rem);gap:1.5rem}
 .spread--hero .hero__photo{order:0;min-height:0}
 .spread--hero .hero__photo img{height:auto;aspect-ratio:4/3;object-fit:cover}
 .spread--hero .hero__kicker{order:1}
 .spread--hero .hero__title{order:2;font-size:3rem}
 .spread--hero .hero__stats{order:3}
 .spread--hero .hero__lead{order:4}
 .survey-gallery{grid-template-columns:minmax(0,1fr)}
 .spread.spread--contact,#site-viewport .spread.spread--contact{padding:2rem 1.25rem}
 .spread--contact .page-masthead{padding-inline:0}
 .inquiry-embed iframe{height:2800px}
 .info-frame-contact{font-size:1rem;max-width:55%;text-align:right}
 .info-page .frame__bottom-nav{width:auto;max-width:40%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Increased type must be allowed to lengthen the existing JAL chapters. */
#site-viewport{scroll-snap-type:none}
#site-viewport .spread{height:auto;min-height:100%;max-height:none;overflow:visible}
#site-viewport .spread.spread--hero{padding:2rem 4vw;min-height:100%}
@media(max-width:899px){#site-viewport .spread.spread--hero{padding:2rem 1.25rem;min-height:100%}}
