/* V43 geometry: the five original drawings remain in document scroll space. */
.opening-story{position:relative;min-height:var(--sunaba-story-height,1850px);overflow:visible}
.opening-art{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
.opening-art::after{display:none}
.opening-art .sand-sculpture,.finale-figure[data-sculpture="4"]{position:absolute;display:block;margin:0;max-width:none;height:auto;z-index:2}
.opening-art .sand-sculpture img,.finale-figure[data-sculpture="4"] img{display:block;width:100%;height:auto;mix-blend-mode:darken}
.philosophy-body{position:static;display:block;margin:0}
.opening-story .philosophy,.opening-story .philosophy>.motion-group{position:static}
.philosophy-heading{position:absolute;z-index:3;left:var(--sunaba-gutter,clamp(24px,4.17vw,80px));top:var(--sunaba-heading-top,980px);width:min(46vw,720px);max-width:calc(100% - 2 * var(--sunaba-gutter,24px))}
.philosophy-heading .chapter-label{font-size:24px;line-height:1.3}
.philosophy-heading .section-title{font-size:clamp(36px,2.6vw,48px);line-height:1.4;margin:0 0 24px}
.philosophy-copy{position:absolute;z-index:3;left:var(--sunaba-copy-left,52vw);top:var(--sunaba-copy-top,1220px);width:var(--sunaba-copy-width,min(38.5vw,610px));margin:0;padding:0}
.philosophy-copy .section-subtitle{font-size:clamp(26px,1.65vw,30px);line-height:1.55;margin:0 0 20px;max-width:none}
.philosophy-copy .accent-line{margin-bottom:20px}
.philosophy-copy p{font-size:18px;line-height:1.8;margin:0 0 12px}
.philosophy-copy p:last-child{margin-bottom:0}
html.sand-motion-ready [data-sculpture]>img{clip-path:var(--sand-clip,none)}

/* The page stays readable when JavaScript or motion is unavailable. */
html:not(.sunaba-layout-ready) .opening-story{display:flex;flex-direction:column;min-height:0;overflow:visible}
html:not(.sunaba-layout-ready) .hero{order:1}
html:not(.sunaba-layout-ready) .opening-art{position:relative;inset:auto;order:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;width:min(900px,calc(100% - 2 * var(--gutter)));height:auto;margin:0 auto 64px}
html:not(.sunaba-layout-ready) .opening-art .sand-sculpture,html:not(.sunaba-layout-ready) .finale-figure[data-sculpture="4"]{position:static!important;width:100%!important;max-width:100%;margin:0!important}
html:not(.sunaba-layout-ready) .philosophy{order:3;position:static!important;padding-top:40px}
html:not(.sunaba-layout-ready) .philosophy-heading,html:not(.sunaba-layout-ready) .philosophy-copy{position:static!important;width:auto!important;max-width:none;margin:0!important;transform:none!important}
html:not(.sunaba-layout-ready) .philosophy-body{display:block;margin-top:32px}
html:not(.sunaba-layout-ready) .philosophy-copy{margin-top:32px!important}
html:not(.sunaba-layout-ready) .hero-stage,html:not(.sunaba-layout-ready) .hero-copy{height:auto;min-height:0;transform:none}
html:not(.sunaba-layout-ready) .hero-copy{position:relative;left:auto;top:auto;width:calc(100% - 2 * var(--gutter));margin-inline:auto}
html:not(.sunaba-layout-ready) .hero-stage{aspect-ratio:auto;width:100%}

@media(max-width:1023px){
  html.sunaba-layout-ready .opening-story{min-height:var(--sunaba-story-height,1900px)}
  html.sunaba-layout-ready .opening-art{left:0;top:0;width:100%}
  html.sunaba-layout-ready #philosophy .philosophy-heading{left:var(--sunaba-mobile-side,5.5vw);top:var(--sunaba-heading-top,900px);width:var(--sunaba-mobile-width,89vw);max-width:var(--sunaba-mobile-width,89vw)}
  html.sunaba-layout-ready .philosophy-copy{left:var(--sunaba-mobile-side,5.5vw);width:var(--sunaba-mobile-width,89vw);padding:0}
  html.sunaba-layout-ready .philosophy-heading .chapter-label{font-size:20px;margin-bottom:20px}
  html.sunaba-layout-ready .philosophy-heading .section-title{font-size:clamp(26px,7.8vw,32px);line-height:1.45}
  html.sunaba-layout-ready .philosophy-copy .section-subtitle{font-size:24px}
  html.sunaba-layout-ready .philosophy-copy p{font-size:17px;line-height:1.85}
  html:not(.sunaba-layout-ready) .opening-art{grid-template-columns:1fr;width:calc(100% - 2 * var(--gutter));gap:24px}
}
@media(min-width:1024px){
  html[lang="en"] #philosophy .philosophy-heading .section-title{max-width:100%}
}
@media(prefers-reduced-motion:reduce),print{
  .opening-story{transform:none!important;height:auto!important;min-height:var(--sunaba-story-height)!important}
  [data-sculpture]>img{clip-path:none!important}
}
@media print{
  .opening-story{display:block!important;min-height:0!important;height:auto!important;overflow:visible!important;transform:none!important}
  .opening-story .hero,.opening-story .philosophy,.opening-story .philosophy>.motion-group,.opening-story .hero-stage,.opening-story .hero-copy{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;min-height:0!important;height:auto!important;transform:none!important}
  .opening-art{position:static!important;inset:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:calc(100% - 2 * var(--gutter))!important;height:auto!important;margin:0 auto 24px!important}
  .opening-art .sand-sculpture{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%!important;max-width:none!important;height:auto!important;margin:0!important}
  .philosophy-heading,.philosophy-copy{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;max-width:none!important;margin:0!important;transform:none!important}
  .philosophy-body{position:static!important;display:block!important;margin-top:24px!important}
  .finale-figure[data-sculpture="4"]{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:min(100%,420px)!important;max-width:none!important;height:auto!important;margin:24px 0!important}
  [data-sculpture]>img{opacity:1!important;clip-path:none!important}
  .sand-reconstruction{display:none!important}
}
@media(min-width:768px){.philosophy-heading .section-title{font-size:clamp(42px,3vw,56px)}.philosophy-copy .section-subtitle{font-size:clamp(30px,1.95vw,36px);line-height:1.55}.philosophy-copy p{font-size:20px;line-height:1.8}html.sunaba-layout-ready #philosophy .philosophy-heading .section-title{font-size:clamp(42px,3vw,56px)}html.sunaba-layout-ready .philosophy-copy .section-subtitle{font-size:clamp(30px,1.95vw,36px);line-height:1.55}html.sunaba-layout-ready .philosophy-copy p{font-size:20px;line-height:1.8}}
@media(max-width:767px){.philosophy-heading .section-title{font-size:clamp(30px,8.6vw,36px)}.philosophy-copy .section-subtitle{font-size:28px;line-height:1.55}.philosophy-copy p{font-size:19px;line-height:1.8}html.sunaba-layout-ready #philosophy .philosophy-heading .section-title{font-size:clamp(30px,8.6vw,36px)}html.sunaba-layout-ready .philosophy-copy .section-subtitle{font-size:28px;line-height:1.55}html.sunaba-layout-ready .philosophy-copy p{font-size:19px;line-height:1.8}}
@media(max-width:360px){html[lang="ja"].sunaba-layout-ready #philosophy .philosophy-heading .section-title{font-size:27px;letter-spacing:0}}
/* Shared spacing from title to rainbow rule, and rule to supporting text. */
:root{--title-rule-gap:28px;--rule-copy-gap:20px}
.service .section-title,.member .section-title,.corporate .section-title,.contact .section-title{margin-bottom:0}
.service-intro,.member-intro,.corporate-intro{margin-top:var(--title-rule-gap)}
.contact-copy{margin-top:var(--title-rule-gap)}
.contact-intro{margin-top:0}
.data-reveal-panel:not(.philosophy-copy)::before,.philosophy-copy .accent-line{margin-top:0;margin-bottom:var(--rule-copy-gap)}
.strength-head{row-gap:var(--title-rule-gap)}
.strength-head .section-title{margin-bottom:0}
.strength-head .strength-intro{grid-column:2;grid-row:2;margin-top:0}
@media(max-width:767px){.strength-head .strength-intro{margin-top:var(--title-rule-gap)}}
/* Use one shared service column and uniform body type. */
@media(min-width:768px){
  html[lang="ja"] .service-row{grid-template-columns:48px minmax(160px,.68fr) minmax(440px,1.27fr) minmax(80px,112px);column-gap:24px}
}
@media(min-width:768px) and (max-width:1023px){
  html[lang="ja"] .service-row{grid-template-columns:32px minmax(116px,.5fr) minmax(0,1.5fr) 64px;column-gap:16px}
}
