/* Calm typography for the selected B design. Fonts are stored with the site. */
.theme-b {
  --font-text: 'Noto Sans JP', 'Yu Gothic', Meiryo, sans-serif;
  --font-heading: 'Noto Serif JP', 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  font-family: var(--font-text);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.95;
  letter-spacing: .015em;
  font-synthesis: none;
}
.theme-b h1,
.theme-b h2,
.theme-b .section-title h2 {
  font-family: var(--font-heading);
  font-weight: 500;
  letter-spacing: .055em;
  font-feature-settings: 'palt';
}
.theme-b h1 { font-size: clamp(40px, 4.3vw, 66px); line-height: 1.65; }
.theme-b h2 { font-size: clamp(30px, 2.8vw, 42px); line-height: 1.75; }
.theme-b h3,
.theme-b .post h3,
.theme-b .timeline-card h3 {
  font-family: var(--font-text);
  font-weight: 500;
  letter-spacing: .025em;
}
.theme-b .hero-copy h1 span { box-shadow: inset 0 -.12em #ffd652; }
.theme-b .brand b { font-family: var(--font-text); font-weight: 500; letter-spacing: .13em; }
.theme-b .brand small { font-weight: 400; letter-spacing: .025em; }
.theme-b .header nav { font-weight: 500; letter-spacing: 0; }
.theme-b .lead,
.theme-b .about-body,
.theme-b .possibility-list p,
.theme-b .feed-description,
.theme-b .post p,
.theme-b .news-intro,
.theme-b .address p,
.theme-b .article-body p,
.theme-b .article-lead,
.theme-b .news-page-heading p:last-child,
.theme-b .faq-answer,
.theme-b .draft-notice,
.theme-b .sample-note,
.theme-b .schedule-note,
.theme-b .voices-note,
.theme-b .map-caption,
.theme-b .instagram-status { font-weight: 400; }
.theme-b .button,
.theme-b .text-link,
.theme-b .notice-title,
.theme-b .faq-item summary,
.theme-b .draft-tag,
.theme-b .answer-tag,
.theme-b .footer-operator > strong { font-weight: 500; }
.theme-b .faq-item summary { letter-spacing: .01em; }
.theme-b strong { font-weight: 600; }
.theme-b .eyebrow,
.theme-b .post small,
.theme-b .footer-inner > span {
  font-family: var(--font-text);
  font-weight: 400;
  letter-spacing: .17em;
}
.theme-b .number,
.theme-b .timeline time,
.theme-b .faq-number,
.theme-b .faq-group-title > span,
.theme-b .phone,
.theme-b .parent-label,
.theme-b .pace-stamp span {
  font-family: var(--font-text);
  font-weight: 500;
}
.theme-b .activity-strip { font-weight: 500; letter-spacing: .08em; }
.theme-b .activity-strip span:last-child,
.theme-b .sticker { font-family: var(--font-text); font-weight: 600; }
.theme-b .tag { font-family: var(--font-text); font-weight: 500; }
.theme-b .voice-card blockquote {
  font-family: var(--font-heading);
  font-weight: 500;
  letter-spacing: .035em;
  line-height: 1.9;
}
.theme-b .voice-card blockquote::before { font-weight: 400; }
.theme-b .news-page-heading h1 { font-size: clamp(34px, 4vw, 52px); }
.theme-b .article-head h1 { font-size: clamp(30px, 3.5vw, 44px); line-height: 1.7; }
.theme-b .article-body h2 { font-size: 27px; }
.theme-b .organization-hero h1 { line-height: 1.7; }
@media (max-width: 800px) {
  .theme-b .hero-copy h1 {
    font-size: clamp(35px, 8.9vw, 52px);
    line-height: 1.7;
    letter-spacing: .035em;
  }
  .theme-b h2 { font-size: 30px; line-height: 1.75; }
  .theme-b .header nav a { letter-spacing: 0; }
  .theme-b .voice-card blockquote { font-size: 23px; }
  .theme-b .article-body h2 { font-size: 23px; }
}
@media (max-width: 360px) {
  .theme-b .hero-copy h1 { font-size: 30px; letter-spacing: .025em; }
  .theme-b .brand b { font-size: 21px; }
}
