/* Corporate typography: one voice for display, one for information and controls. */
body.site-layout{
  --type-sans:'Noto Sans JP','Hiragino Sans','Yu Gothic','Helvetica Neue',sans-serif;
  --type-display:'Shippori Mincho','Hiragino Mincho ProN','Yu Mincho',serif;
  --font:var(--type-sans);--font-body:var(--type-sans);--font-display:var(--type-display);
  --serif:var(--type-sans);--v-serif:var(--type-display);
  --type-title:clamp(2rem,3.6vw,3.25rem);
  --type-section:clamp(1.5rem,2.25vw,2rem);
  font-family:var(--type-sans);font-size:16px;font-weight:400;line-height:1.9;letter-spacing:.02em;
}
body.site-layout h1{
  font-family:var(--type-display);font-size:var(--type-title);font-weight:500;line-height:1.55;
  letter-spacing:.02em;white-space:normal;overflow-wrap:anywhere;
}
body.site-layout h2{
  font-family:var(--type-sans);font-size:var(--type-section);font-weight:600;line-height:1.6;
  letter-spacing:.02em;overflow-wrap:anywhere;
}
body.site-layout h3{
  font-family:var(--type-sans);font-size:18px;font-weight:600;line-height:1.6;
  letter-spacing:.02em;white-space:normal;overflow-wrap:anywhere;
}
body.site-layout h4{font-family:var(--type-sans);font-weight:600;line-height:1.6}
body.site-layout :is(input,select,textarea,button){font-family:var(--type-sans)}
/* Symbolic statements share the display face, wherever they appear. */
body.site-layout :is(.mission-preview h3,.v-future h2,.v-values-intro h2,.v-value-art h2,.v-prose h3,.v-closing-mission h2,.service-philosophy h2){font-family:var(--type-display);font-weight:500}
body.site-layout .mission-preview h3{font-size:clamp(24px,2.1vw,30px);line-height:1.6}
body.site-layout :is(.v-values-intro h2,.v-value-art h2){font-size:clamp(32px,3.2vw,44px)}
body.site-layout .v-prose h3{font-size:clamp(24px,2vw,28px);line-height:1.7}
body.site-layout .v-closing-mission h2{font-size:clamp(30px,3.2vw,44px)}
body.site-layout .v-closing-lines{font-family:var(--type-display);font-weight:500}
body.site-layout .hero .sub{font-family:var(--type-display);font-weight:500}
body.site-layout .type-phrase{display:inline-block;max-width:100%}
body.site-layout .service-philosophy h2{font-size:clamp(22px,2vw,26px)}
/* Body copy versus compact information; avoid enlarging labels and controls. */
body.site-layout :is(.hero .desc,.hero .lead,.hero .hdesc,.page-hero p:not(.d-page-label),.v-hero-intro,.b-hero p:not(.v-label),.v-prose,.b-intro>p:not(.v-label),.b-together>p:not(.v-label),.b-practice h2+p,.b-field-story,.b-agreement p,.service-philosophy p,.dx-detail-block>p,.about-content p,.privacy-content p){font-size:16px;line-height:1.9}
body.site-layout :is(.card p,.card li,.prob .ans,.step p,.step li,.b-steps p,.b-values p,.b-next-grid p,.b-example p,.mission-preview p,.v-flow p){font-size:14px;line-height:1.85}
body.site-layout :is(.b-field-nav strong,.b-next-grid strong,.v-values-index strong){font-family:var(--type-sans);font-weight:600}
body.site-layout :is(.svc .price,.pricebox .amt,.fact .v,.entry .n,.step .no,.step .n,.steps .n,.nitem .d,.merit .no){font-family:var(--type-sans);font-variant-numeric:tabular-nums}
body.site-layout .svc .price{font-weight:600;font-size:22px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
body.site-layout .hero .entry .ttl{font-weight:600;font-size:17px;line-height:1.6}
body.site-layout .section h2 .h2-sub{font-size:16px;line-height:1.8}
/* Long text must wrap inside the existing grids, including at increased zoom. */
body.site-layout :is(.hero-main,.hero-copy,.v-hero-copy,.b-hero>div,.entry .body){min-width:0}
body.site-layout .v-hero h1{font-size:clamp(30px,3.6vw,52px)}
@media(max-width:700px){
  body.site-layout{--type-title:32px;--type-section:26px}
  body.site-layout h1{line-height:1.6}
  body.site-layout .v-hero h1{font-size:32px}
  body.site-layout .v-values-index strong{font-size:24px}
  body.site-layout .hero .entry .ttl{font-size:16px}
}
@media(max-width:359px){body.site-layout{--type-title:30px}body.site-layout .v-hero h1{font-size:30px}}
