/* Reading size adjustments; decorative headings retain their existing scale. */
body.corporate-header{--reading-size:2rem}
body.recruit-site{--reading-size:1.25rem}
body.corporate-header,body.recruit-site{font-size:var(--reading-size)}
body.corporate-header :is(.txt,.privacy-intro,.privacy-section p,.privacy-section ul,.ks-post-content p,.ks-post-content li,.staff-detail-copy p,.staff-detail-copy dd){font-size:var(--reading-size)!important;line-height:1.95}
body.corporate-header :is(.profile-table,.works-table){font-size:var(--reading-size)}
body.recruit-site :is(.intro-copy,.intro-copy p,.iv-intro,.iv-bubble p,.wrk-intro,.growth-intro,.growth-lead){font-size:var(--reading-size)!important;line-height:1.95}
/* Dynamic header height is measured without intercepting native anchor navigation. */
html{scroll-padding-top:0!important}
body.corporate-header :is(section[id],div[id],h2[id],h3[id]),body.recruit-site :is(section[id],div[id],h2[id],h3[id]){scroll-margin-top:var(--site-anchor-offset,150px)!important}

/* Medium is the default; existing semibold/bold emphasis remains unchanged. */
body.corporate-header,body.recruit-site{font-weight:500}

/* Home reading trial: keep the existing layout and limit emphasis to key copy. */
#top .information .info-list .txt,
#top .company-txt-movie-wrap > .txt-area .txt {
    font-size: 2rem !important;
    font-weight: 500;
    line-height: 1.85;
    letter-spacing: .035em;
    color: #fff;
    text-shadow: 0 .1rem .3rem rgb(0 0 0 / 55%);
    overflow-wrap: anywhere;
}
#top .information .info-ttl { font-size: 2.1rem; font-weight: 600; line-height: 1.6; }
#top .information .info-date { font-size: 1.8rem; font-weight: 500; }
#top .information .info-list .txt { max-width: 42em; }
#top .company-txt-movie-wrap > .txt-area .txt:nth-child(3) { font-weight: 600; }
#top .company-txt-movie-wrap > .txt-area .txt + .txt { margin-top: 1em; }
/* A soft, local scrim improves contrast without another media request. */
#top .information .info-list,
#top .company-txt-movie-wrap > .txt-area { position: relative; isolation: isolate; }
#top .information .info-list::before,
#top .company-txt-movie-wrap > .txt-area::before {
    content: "";
    position: absolute;
    inset: -.8rem;
    z-index: -1;
    pointer-events: none;
    background: rgb(0 0 0 / 16%);
    box-shadow: 0 0 1.6rem 1rem rgb(0 0 0 / 16%);
    border-radius: .8rem;
}

/* Match home section subtitles and article dates to the 20px reading scale. */
#top h2.heading > .ja { font-size: 2rem; }
#top .blog-list-date { font-size: 1.8rem; }

/* Home hero copy and localized article metadata. */
#top .mv .txt-area .txt { font-size: 2rem !important; font-weight: 500; line-height: 1.85; }
#top .information .info-date,
#top .blog-list-date { font-family: var(--font-ja); font-size: 1.8rem; line-height: 1.7; overflow-wrap: anywhere; }
#top .blog-list-date::after { content: none; }

/* Home Company navigation: Japanese labels 20px, section numbers 18px. */
#top .company-mid-ttl .heading > .ja { font-size: 2rem; }
#top .company-mid-ttl .compay-mid-num { font-size: 1.8rem; }

/* Give the enlarged bilingual Company links their own balanced rhythm. */
#top .company .ClubLocations_locationsDefault__xVaCU > a {
    min-height: 12.4rem;
    padding: 2.4rem 0;
}
#top .company-mid-ttl {
    grid-template-columns: 3.6rem minmax(0, 1fr);
    column-gap: 2.4rem;
    padding-right: 4rem;
}
#top .company-mid-ttl .heading { gap: .8rem; margin: 0; }
#top .company-mid-ttl .heading > .en { font-size: 3.2rem; line-height: 1.2; }
#top .company-mid-ttl .heading > .ja { line-height: 1.5; }
#top .company-mid-ttl .compay-mid-num { margin: 0; line-height: 1.5; }
@media (max-width: 47.9375em) {
    #top .company .ClubLocations_locationsDefault__xVaCU > a { padding-block: 2rem; min-height: 11.6rem; }
    #top .company-mid-ttl { grid-template-columns: 2.8rem minmax(0, 1fr); column-gap: 1.6rem; padding-right: 3.2rem; }
}

/* Shared body-copy scale; navigation, dates and decorative type stay independent. */
body.corporate-header :is(.contact-lead,.policy-list li,.featured-post-excerpt,.portal-card-excerpt,.article-lead) {
    font-size: var(--reading-size) !important;
    line-height: 1.85;
    overflow-wrap: anywhere;
}
body.recruit-site :is(.page-lead,.section-intro p,.step-copy p,.day-item p,.career-steps p,.support-panel p,.benefit-grid p,.interview-question > p:last-child,.role-card p,.iv-member-grid p,.iv-stories p,.growth-description,.growth-support p,.growth-benefits p,.wrk-lead,.wrk-step-copy p,.wrk-day-timeline p,.entry-privacy p,.job-panel-title > p) {
    font-size: var(--reading-size) !important;
    line-height: 1.85;
    overflow-wrap: anywhere;
}
#information .information-page .info-ttl { font-size: 2rem; line-height: 1.6; }
#information .information-page .info-date {
    font-family: var(--font-ja);
    font-size: 1.8rem;
    line-height: 1.7;
    overflow-wrap: anywhere;
}
/* A full-width metadata row keeps the longer Japanese category readable. */
#information .information-page .info-list > li { grid-template-columns: minmax(0, 1fr); row-gap: 1.2rem; }
#information .information-page .info-date { grid-row: auto; }

/* Align the home scroll destination to the headings, not the padded wrapper. */
body#top #home-information {
    scroll-margin-top: calc(var(--site-anchor-offset, 150px) - var(--home-anchor-padding, 0px)) !important;
}

/* Japanese page subtitles were 16–18px; match the established 20px scale. */
body.corporate-header h1.heading > .ja,
body#company h2.heading > .ja {
    font-size: 2rem !important;
    line-height: 1.6;
}

/* Welfare: separate rounded cards, matching the approved reference. */
.recruit-site .growth-numbers {
    gap: 1rem;
    background: transparent;
    border-radius: 0;
    overflow: visible;
    margin-bottom: 1.5rem;
}
.recruit-site .growth-numbers > div {
    background: #fff;
    border: 0;
    border-radius: 1.5rem;
    padding: 2rem 1rem;
    min-width: 0;
}
.recruit-site .growth-benefits {
    gap: 1rem;
    background: transparent;
    border-radius: 0;
    overflow: visible;
}
.recruit-site .growth-benefits article {
    background: #fff;
    border: 0 !important;
    border-radius: 1.5rem;
    padding: 1.5rem 4.5rem 1.5rem 1.5rem;
    min-width: 0;
    height: auto;
}
.recruit-site .growth-benefits article > span {
    z-index: 0;
    pointer-events: none;
    right: 1.25rem;
    top: 1.5rem;
    font-size: 3.5rem;
}
.recruit-site .growth-benefits :is(h3,p) { position: relative; z-index: 1; overflow-wrap: anywhere; }
.recruit-site .growth-benefits p { padding-right: 0; }
@media (max-width: 47.9375em) {
    .recruit-site .growth-numbers, .recruit-site .growth-benefits { gap: 1rem; }
    .recruit-site .growth-benefits article { padding: 1.5rem 3.5rem 1.5rem 1.25rem; }
    .recruit-site .growth-benefits article > span { right: .75rem; font-size: 2.75rem; }
}

/* Recruit hero: adjusted spacing with the original interleaved portrait layers. */
.recruit-home .hero-type-back {
    left: .8%;
    right: .8%;
    top: 1.5%;
    font-size: 16.7vw;
    letter-spacing: -.025em;
    text-align: center;
    z-index: auto;
    text-shadow: 0 .02em .08em rgb(0 0 0 / 22%);
}
.recruit-home .hero-type-front {
    left: .8%;
    right: .8%;
    bottom: 1.5%;
    font-size: 14.6vw;
    letter-spacing: -.04em;
    text-align: center;
    text-shadow: 0 .02em .08em rgb(0 0 0 / 22%);
}

/* Smaller particles retain their original character slots and layer ancestry. */
.recruit-home .hero .hero-particle {
    display: inline-block;
    font-size: .78em;
    width: 1.25em;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    vertical-align: baseline;
}
.recruit-home .hero .hero-type-front .hero-particle { width: 1.23em; }
/* Trim the full-width stop’s trailing space before centering the whole line. */
.recruit-home .hero .hero-period {
    display: inline-block;
    width: .5em;
    margin-left: -.08em;
    letter-spacing: 0;
    text-align: left;
}

/* Japanese reading hierarchy: medium copy, restrained semibold headings. */
body.corporate-header main :is(.button-text,.info-ttl,.portal-card-title,.featured-post-title,.article-title,.section-ttl,.staff-name,.form-label,.contact-card-label){font-weight:600}
body.corporate-header main :is(h1,h2,h3,h4).heading > .ja,
body#top .company-mid-ttl .heading > .ja{font-weight:500}
body.corporate-header main .learn-more .button-text{font-size:1.8rem;font-weight:600;line-height:1.6}
body.corporate-header main :is(.blog-filter-link,.contact-card.mail .contact-card-value){font-weight:600}
body.corporate-header main :is(.info-ttl,.portal-card-title){font-size:2rem;line-height:1.6}

/* Home interview link description uses the shared body-copy scale. */
body.recruit-site.recruit-home .interview-banner .banner-copy{font-size:var(--reading-size);font-weight:500;line-height:1.85;overflow-wrap:anywhere}

/* Equipment copy has its own 17px scale, excluded from the shared 20px rule. */
body.recruit-site.work-page .wrk-equipment :is(h3,h4){font-size:1.0625rem;line-height:1.7}
body.recruit-site.work-page .wrk-equipment p{font-size:1.0625rem;line-height:1.85}

body.recruit-site.recruit-home .home-benefits .benefit-card h3{font-size:1.0625rem;line-height:1.7}
body.recruit-site.recruit-home .home-benefits .benefit-card p{font-size:1.0625rem;line-height:1.85}

/* Wider than the 1366px reference: grow copy toward half the viewport.
   Start at the existing 48 / 24 / 20px sizes, so the breakpoint is continuous. */
@media(min-width:1367px){
 body#top.corporate-header .mv > .inner{padding-top:clamp(16rem,calc(34svh - (100vw - 1366px) * .28),34svh)}
 body#top.corporate-header .mv .c-ttl,
 body#top.corporate-header .mv > .inner > .txt-area{width:54vw;max-width:100%}
 body#top.corporate-header .mv .c-ttl .mv-ttl-ja{font-size:clamp(4.8rem,calc(8vw - 6.128rem),11.2rem);line-height:1.45}
 body#top.corporate-header .mv .c-ttl > .en{font-size:clamp(2.4rem,calc(2.8vw - 1.4248rem),4.8rem);line-height:1.5}
 body#top.corporate-header .mv > .inner > .txt-area .txt{font-size:clamp(2rem,calc(2.2vw - 1.0052rem),4rem)!important;line-height:1.85}
 /* Retain the existing bottom grid row and its breathing room. */
 body#top.corporate-header .mv .scroll-nav{grid-row:4;align-self:end}
}

/* Wide home hero: copy and cue follow normal document flow, not viewport rows. */
@media(min-width:1367px){
 body#top.corporate-header .mv > .inner{display:block;padding-top:max(18rem,34svh)}
 body#top.corporate-header .mv .scroll-nav{position:relative;inset:auto;margin:4.8rem 0 0;transform:none}
}
/* Mobile lower pages: separate the scroll link and breadcrumb into natural rows. */
@media(max-width:767px){
 body.corporate-header:not(#top) .mv{height:auto;min-height:0;padding-bottom:3.2rem}
 body.corporate-header:not(#top) .mv > .inner{display:block;height:auto;min-height:0;padding-bottom:0}
 body.corporate-header:not(#top) .mv .main-wrap{height:auto;min-height:0}
 body.corporate-header:not(#top) .mv .scroll-nav{position:relative;inset:auto;transform:none;margin:3.2rem 0 0;clear:both}
 body.corporate-header:not(#top) .mv .breadcrumb{position:relative;inset:auto;transform:none;width:100%;max-width:100%;margin:2.4rem 0 0;clear:both}
 body.corporate-header:not(#top) .mv .breadcrumb-wrap{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem .8rem;line-height:1.7;white-space:normal;text-align:right}
 body.corporate-header:not(#top) .mv .breadcrumb-wrap li{min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal}
}

/* Corporate breadcrumbs: 16px on desktop and mobile. */
body.corporate-header .mv .breadcrumb .breadcrumb-wrap,
body.corporate-header .mv .breadcrumb .breadcrumb-wrap :is(li,a){font-size:1.6rem;line-height:1.7}

/* Selected introductions: editorial phrase breaks on desktop only.
   Keep mobile wrapping unchanged; long phrases can still wrap to avoid overflow. */
body main p.ks-copy-flow > :is(wbr.ks-copy-break,br.ks-copy-sentence){display:none}
@media(min-width:1024px){
 body main p.ks-copy-flow{ text-align:left; word-break:keep-all; line-break:strict; overflow-wrap:anywhere; white-space:normal }
 body main p.ks-copy-flow > :is(wbr.ks-copy-break,br.ks-copy-sentence){display:revert}
 /* These two introductions sit above an absolutely positioned breadcrumb. */
 body:is(#blog,#information) .mv p.ks-copy-flow{padding-bottom:5.6rem}
}
