/* Shared typography: reference-derived scale, PC and mobile.
   This file owns sizes, weights and leading; style.css owns layout and imagery. */
:root{--type-page:clamp(32px,3.333333vw,64px);--type-section:clamp(32px,2.916667vw,56px);--type-subheading:clamp(24px,2.083333vw,40px);--type-body:clamp(18px,1.041667vw,20px);--type-card:clamp(20px,1.666667vw,32px);--type-small:14px}
body{font-size:16px;font-weight:350;line-height:1.9;letter-spacing:.03em}
button,input,select,textarea{font:inherit}
h1,h2,h3,h4{font-family:"Noto Sans JP",sans-serif;font-weight:650;line-height:1.5;letter-spacing:.03em;overflow-wrap:anywhere;word-break:normal}
p,li,dd{line-height:1.9;overflow-wrap:anywhere}
p{font-size:var(--type-body);font-weight:350;letter-spacing:.03em}
h1,.reasons-page h1,.training-detail h1{font-size:var(--type-page);line-height:1.4}
h2,.company h2,.about h2,.about .reasons h2,#services>.section-head h2,.service-copy h3{font-size:var(--type-section);line-height:1.45;font-weight:650;white-space:normal}
h3,h4{font-size:var(--type-card)}
#about .intro-copy h2{font-size:var(--type-subheading);line-height:1.9}
#about .intro-copy p{font-size:var(--type-body);line-height:1.9;font-weight:350}
.service-copy h4,.service-copy>p,#training .service-copy h4,#training .service-copy>p,.intro-copy p,.training-intro h2,.training-intro p,.company-title p,.case-copy p,.narrative-page p{font-size:var(--type-body);line-height:1.9;font-weight:350}
.story-opening h2{font-size:var(--type-section);line-height:1.6}
.service-detail-grid h3,.service-section-intro h3,.service-reason-list h3,.story-three h3,.story-steps h3,.case-list-row h3,.case-narrative h3,.case-interview h3,.blog-card h3,.case-copy h3,.training-content h2,#philosophy .story-prose h3{font-size:var(--type-card);line-height:1.6;font-weight:650}
.story-prose>h3{font-size:var(--type-card);line-height:1.6;margin-bottom:20px}
.story-prose>p+p,.case-narrative p+p{margin-top:1.25em}
.blog-card p,.reasons p,.training-content p,.news p{font-size:16px;line-height:1.85}
.eyebrow,#contact .contact-heading .eyebrow{font-size:14px;line-height:1.6;letter-spacing:.16em;font-weight:700}
.eyebrow span,.service-index span,.art-label,.art-bottom,.tag{font-size:12px;line-height:1.7;letter-spacing:.08em}
.service-index,.reason-number,.story-number{font-family:Lato,"Noto Sans JP",sans-serif;font-size:15px;line-height:1.6;font-weight:500;letter-spacing:.08em}
.story-steps .story-number{font-size:24px}
nav{font-size:13px;line-height:1.6;font-weight:500}
nav a,.nav-trigger{font-size:13px;line-height:1.6;letter-spacing:.03em}
.nav-dropdown a{font-size:14px;line-height:1.7}.nav-dropdown .all-link{font-size:13px}
.story-contents a{font-size:14px;line-height:1.8}
.breadcrumbs{font-size:13px;line-height:1.8}
.service-more,.reason-link,#about .reason-link,.story-link,.text-link{font-size:16px;line-height:1.7;font-weight:500}
.story-faq summary,summary{font-size:17px;line-height:1.85;font-weight:500}
.story-faq p{font-size:var(--type-body);line-height:1.9}
summary span{font-size:21px;font-weight:400}
.detail p,.detail a,.training-flow li{font-size:16px;line-height:1.85}
.narrative-page .story-note,.caption,.case-editorial-note p,.training-page .training-photo figcaption,.case-metrics small,.case-sources,.case-sources summary{font-size:14px;line-height:1.85;font-weight:350}
.case-draft-label{font-size:13px!important;line-height:1.6}
.case-facts dt{font-size:14px;line-height:1.7}.case-facts dd{font-size:17px;line-height:1.9}
.case-photo span{font-size:14px;line-height:1.6;letter-spacing:.2em}.case-photo p{font-size:17px;line-height:1.8}.case-photo figcaption{font-size:13px;line-height:1.8}
.case-metrics strong{font-family:Lato,"Noto Sans JP",sans-serif;font-size:clamp(32px,3vw,48px);line-height:1.4;font-weight:500;letter-spacing:.01em}
.case-metrics article>p{font-size:17px;line-height:1.8}
.case-interview h3 span{font-size:16px;line-height:1.6;font-weight:500}
#contact .contact-heading h2{font-family:"Noto Sans JP",sans-serif;font-size:clamp(38px,3.5vw,64px);line-height:1.4;font-weight:650;letter-spacing:.03em}
#contact .contact-message h3{font-size:clamp(24px,2vw,36px);line-height:1.65;font-weight:650}
#contact .contact-message p{font-size:clamp(18px,1.15vw,22px);line-height:2;font-weight:350}
#contact .contact-button{font-size:23px;line-height:1.6;font-weight:500}
#contact .contact-button small{font-size:14px;line-height:1.7}
#contact .contact-company,.footer-company{font-size:16px;line-height:1.9;font-weight:350}
.footer-links{font-size:14px;line-height:1.8;font-weight:400}
footer>a,footer>small{font-size:13px;line-height:1.8}.brand,.footer-brand{font-size:22px;line-height:1.4;font-weight:700}.brand small,.footer-brand small{font-size:12px;line-height:1.6}
.blog-category,.blog-card button{font-size:14px;line-height:1.7}
dialog h2{font-size:30px;line-height:1.5}dialog h3{font-size:22px;line-height:1.6}dialog p{font-size:17px;line-height:1.95}.dialog-close{font-size:30px;line-height:1.4}.menu{font-size:24px;line-height:1}
.news h2{font-size:28px;line-height:1.5}.papers strong,.value div{font-size:25px;line-height:1.7;font-weight:650}.papers span,.value small{font-size:13px;line-height:1.7}.value b{font-size:30px;line-height:1.6}.steps div{font-size:16px;line-height:1.7}.case-visual h3{font-size:30px;line-height:1.6}.case-ring{font-size:40px;line-height:1.4}.case-ring small{font-size:12px;line-height:1.7}
@media(min-width:768px) and (max-width:1050px){nav a,.nav-trigger{font-size:12px}.story-split{column-gap:40px}}
@media(max-width:800px){header nav a,header .nav-trigger{font-size:16px;line-height:1.7}.nav-dropdown a{font-size:15px}.nav-dropdown .all-link{font-size:14px}}
@media(max-width:767px){
:root{--type-page:32px;--type-section:28px;--type-subheading:24px;--type-body:16px;--type-card:20px;--type-small:13px}
body{font-size:16px;line-height:1.85;letter-spacing:.025em}
p,li,dd,.narrative-page p,.service-copy h4,.service-copy>p,#training .service-copy h4,#training .service-copy>p{line-height:1.9}
h1,.reasons-page h1,.training-detail h1{font-size:32px;line-height:1.45}
h2,.company h2,.about h2,.about .reasons h2,#services>.section-head h2,.service-copy h3{font-size:28px;line-height:1.5}
.story-opening h2{font-size:28px;line-height:1.6}
#about .intro-copy h2{font-size:24px;line-height:1.9}#about .intro-copy p{font-size:16px;line-height:1.9}
.story-prose>h3,.case-narrative h3,.service-detail-grid h3,.service-section-intro h3,.service-reason-list h3{font-size:20px;line-height:1.65}
.blog-card p,.reasons p,.news p{font-size:16px;line-height:1.85}
.eyebrow,#contact .contact-heading .eyebrow{font-size:12px;line-height:1.7}
.breadcrumbs{font-size:12px;line-height:1.8}
.story-contents a{font-size:14px;line-height:1.8}
.service-more,.reason-link,#about .reason-link,.story-link,.text-link{font-size:15px;line-height:1.7}
.story-faq summary,summary{font-size:16px;line-height:1.85}
.case-facts dt{font-size:13px}.case-facts dd{font-size:16px;line-height:1.85}
.narrative-page .story-note,.case-editorial-note p,.case-metrics small,.case-sources,.case-sources summary,.case-photo figcaption,.training-page .training-photo figcaption{font-size:13px;line-height:1.85}
.case-photo p,.case-metrics article>p{font-size:16px;line-height:1.8}.case-metrics strong{font-size:32px;line-height:1.4}
#contact .contact-heading h2{font-size:36px;line-height:1.4}#contact .contact-message h3{font-size:23px;line-height:1.65}#contact .contact-message p{font-size:17px;line-height:2}#contact .contact-heading .eyebrow{font-size:14px}#contact .contact-button{font-size:21px;line-height:1.6}#contact .contact-button small{font-size:14px}
.footer-company,#contact .contact-company{font-size:15px;line-height:1.9}.footer-links{font-size:14px;line-height:1.8}footer>a,footer>small{font-size:12px;line-height:1.8}
dialog h2{font-size:24px;line-height:1.5}dialog h3{font-size:20px;line-height:1.6}dialog p{font-size:16px;line-height:1.9}
}
/* Training courses: roles follow the shared responsive type scale. */
.course-label,.executive-timeline>div>span{font-family:Gantari,sans-serif;font-size:14px;font-weight:600;line-height:1.5}.course-card h3,.executive-course h3{font-size:var(--type-card);font-weight:700;line-height:1.5}.course-catch{font-size:24px;font-weight:600;line-height:1.65}.course-result>span,.executive-deliverables>span{font-size:14px;font-weight:600;line-height:1.6}.course-price strong,.executive-price strong{font-family:Lato,'Noto Sans JP',sans-serif;font-size:64px;font-weight:700;line-height:1.2}.course-price strong span,.executive-price strong span{font-family:'Noto Sans JP',sans-serif;font-size:24px}.executive-catch{font-size:clamp(28px,2.8vw,44px);font-weight:600;line-height:1.6}.executive-price>span,.executive-note{font-size:14px;line-height:1.8}.executive-timeline h4{font-size:20px;font-weight:600;line-height:1.65}.executive-timeline p{font-size:16px;line-height:1.9}.subsidy-heading>span{font-size:22px;font-weight:600;line-height:1.6}.subsidy-grid h3,.subsidy-support h3{font-size:var(--type-card);font-weight:600;line-height:1.6}.subsidy-total dt{font-size:14px;line-height:1.7}.subsidy-total dd{font-family:Lato,'Noto Sans JP',sans-serif;font-size:48px;font-weight:700;line-height:1.4}.subsidy-total dd span{font-size:20px}.subsidy-support li{font-size:16px;line-height:1.8}.subsidy-support li strong{font-weight:600}.subsidy-support>p{font-size:16px;line-height:1.9}
@media(max-width:767px){.course-catch{font-size:21px}.course-price strong,.executive-price strong{font-size:52px}.executive-catch{font-size:28px}.subsidy-heading>span{font-size:20px}.subsidy-total dd{font-size:42px}}
.training-page .executive-course .executive-catch{font-size:clamp(28px,2.8vw,44px);font-weight:600;line-height:1.6}.training-page .executive-course .executive-note{font-size:14px;line-height:1.8}@media(max-width:767px){.training-page .executive-course .executive-catch{font-size:28px}}
.overview-content h3,.overview-models h3{font-size:var(--type-card);font-weight:650;line-height:1.65}.overview-options span,.overview-funding>span{font-size:20px;font-weight:600;line-height:1.6}.overview-options small,.overview-funding small,.services-overview-page .overview-note{font-size:15px;font-weight:350;line-height:1.85}.services-overview-page .overview-partner-heading p{font-size:var(--type-subheading);font-weight:600;line-height:1.65}.overview-model-label{font-family:Gantari,sans-serif;font-size:14px;font-weight:600;line-height:1.6}.services-overview-page .overview-partner-bottom p{font-size:16px;line-height:1.9}@media(max-width:767px){.overview-options span,.overview-funding>span{font-size:18px}.overview-options small,.overview-funding small,.services-overview-page .overview-note{font-size:14px}.services-overview-page .overview-partner-heading p{font-size:24px}}
/* Hero display, navigation and grouped footer. */
.hero-main-copy{font-size:clamp(36px,4.2vw,72px);font-weight:750;line-height:1.85;letter-spacing:.05em}.hero-main-copy strong{font-size:1.24em;font-weight:800}.hero-main-copy b{font-family:inherit;font-size:1.24em;font-weight:800}.footer-group h2{font-size:16px;font-weight:650;line-height:1.6}.footer-group a{font-size:14px;font-weight:400;line-height:1.8}
@media(min-width:801px){header nav>a,header .nav-trigger{font-size:17px;line-height:1.6}header .nav-dropdown a{font-size:16px;line-height:1.7}header .nav-dropdown .all-link{font-size:15px}}
@media(min-width:801px) and (max-width:1100px){header nav>a,header .nav-trigger{font-size:15px}}
@media(max-width:767px){.hero-main-copy{font-size:clamp(23px,7.8vw,42px);line-height:1.85;letter-spacing:.015em}.hero-main-copy strong,.hero-main-copy b{font-size:1.24em}.hero-main-copy .hero-copy-line:nth-child(-n+2){font-size:1em}.footer-group h2{font-size:16px}.footer-group a{font-size:14px}}

/* Desktop hero: scale to both viewport width and height. */
@media(min-width:801px){.hero-main-copy{font-size:clamp(42px,min(6.4vw,10.8svh),112px)}}
.services-overview-page .overview-single-title{font-size:clamp(24px,2.35vw,38px);white-space:nowrap}.services-overview-page .overview-start-title{font-size:clamp(24px,2.35vw,38px);white-space:nowrap;margin-top:16px}.engagement-axis{font-size:14px;line-height:1.6;font-weight:500}.engagement-role>span{font-family:Gantari,sans-serif;font-size:13px;line-height:1.6;font-weight:600}.engagement-role h3{font-size:24px;line-height:1.5}.engagement-role p,.engagement-detail{font-size:16px;line-height:1.8}.engagement-bar{font-size:16px;line-height:1.7;font-weight:600}.engagement-diagram figcaption{font-size:14px;line-height:1.85}@media(max-width:767px){.services-overview-page .overview-single-title{font-size:clamp(19px,5.2vw,28px)}.services-overview-page .overview-start-title{font-size:clamp(13px,3.9vw,22px)}.engagement-axis{font-size:11px}.engagement-role h3{font-size:22px}.engagement-bar{font-size:14px}.engagement-diagram figcaption{font-size:13px}}
@media(min-width:801px){header .nav-direct{font-size:17px;line-height:1.6}}@media(min-width:801px) and (max-width:1100px){header .nav-direct{font-size:15px}}



/* Reasons desktop typography; mobile settings remain independent. */
@media(min-width:768px){
 body.reasons-overview-page .story-opening h2{font-size:clamp(32px,3.2vw,50px);line-height:1.65;letter-spacing:.02em}
 body.reasons-overview-page .story-section h2{font-size:clamp(26px,2.45vw,38px);line-height:1.6;letter-spacing:.02em}
 body.reasons-overview-page .story-opening p,body.reasons-overview-page .story-prose>p:not(.story-note){font-size:18px;line-height:2}
 body.reasons-overview-page .story-prose>.story-note{font-size:14px;line-height:1.9}
}
