/* Approved optical 600: the native Zen Maru 500 plus the exact .012em
 * stroke reviewed in title-weights.html. Do not request a nonexistent 600
 * font face: browsers would substitute the native 700. */
:is(#tsuto-heading-system, body) main:is(:has(.pop-opening), .about-story-page, .gift-detail-page,
  .how-it-works-page, .contact-page, .privacy-page, .shop-waiting,
  .generic-page, .error-page, .tsuto-functional-page) :is(h1,h2,h3),
:is(#tsuto-heading-system, body) .shop-waiting :is(h1,h2,h3),
:is(#tsuto-heading-system, body) .tsuto-functional-page :is(.tsuto-portal > h1,
  .donor-entry-copy h1, .donor-key-panel h2, .tsuto-card > h1,
  .tsuto-card > h2, .my-access-intro h1, .my-dashboard-head h1,
  .tsutonoma-closing h2, .tsuto-protected-callout h2) {
  font-family: 'Zen Maru Gothic', sans-serif !important;
  font-weight: 500 !important;
  -webkit-text-stroke: .012em currentColor;
}
/* Nested text must share the title face; logo images remain original assets. */
:is(#tsuto-heading-system, body) main :is(h1,h2,h3) > span:not([class*="kanji"]):not([class*="symbol"]) {
  font-weight: inherit;
}

/* Optical balance with the original handwritten wordmark. */
.about-story-page[lang="ja"] .about-story-hero h1{gap:.12em;flex-wrap:nowrap}
.about-story-page[lang="ja"] .about-title-text{font-size:.78em;line-height:1.2;white-space:nowrap;-webkit-text-stroke:.012em currentColor}

/* White-on-red labels, sequence, calls to action and supporting copy.
 * Use the same approved optical weight as titles, also on mobile. */
:is(#tsuto-heading-system, body) :is(
 .pop-sequence>span, .pop-cta, .pop-photo figcaption,
 .pop-photo figcaption span, .pop-photo figcaption strong,
 .story-panel .eyebrow, .gift-page-intro .eyebrow,
 .name-story-copy>.eyebrow, .about-founder .eyebrow,
 .about-founder p, .contact-label, .contact-paper button,
 .shop-waiting-action, .shop-waiting-photo figcaption,
 .header-actions>.shop-nav, .private-actions>.shop-nav,
 .ma-experience-heading>p:not(.eyebrow), .ma-screen-button,
 .ma-guide-link, .space-card.primary>p,
 .faq-heading .eyebrow, .name-story-copy>.arrow-link,
 .connection-opening-button>strong, .donor-key-overline,
 .receiver-key-overline, .my-access-intro .eyebrow,
 .tsuto-path-giver small, .tsuto-path-giver strong,
 .tsuto-path-giver span, .plugin-content .tsuto-wrap button,
 .plugin-content .tsuto-button, .plugin-content .tsuto-profile-button,
 .my-access-plugin button, .my-dashboard-plugin button
) {
 font-family:'Zen Maru Gothic',sans-serif!important;
 font-weight:500!important;
 -webkit-text-stroke:.012em currentColor;
}

/* 2.2.47 — one responsive type scale for every page and both languages.
 * The user-approved optical weight is identical on red and white surfaces.
 * Fixed sizes per breakpoint intentionally replace per-page vw/clamp values. */
:root {
 --tsuto-title-size:52px;
 --tsuto-section-title-size:36px;
 --tsuto-subtitle-size:24px;
 --tsuto-heading-label-size:16px;
}
@media(max-width:760px){
 :root{--tsuto-title-size:32px;--tsuto-section-title-size:28px;--tsuto-subtitle-size:22px;--tsuto-heading-label-size:14px}
}
:is(#tsuto-heading-system, body) main :is(h1,h2,h3,.my-access-lede,.tsuto-path>strong,.tsuto-sealed>strong),
:is(#tsuto-heading-system, body) .closing h2 {
 font-family:'Zen Maru Gothic',sans-serif!important;
 font-weight:500!important;
 -webkit-text-stroke:.012em currentColor!important;
 letter-spacing:0!important;
 line-height:1.45!important;
 overflow-wrap:anywhere;
}
:is(#tsuto-heading-system, body) main h1{font-size:var(--tsuto-title-size)!important}
:is(#tsuto-heading-system, body) main :is(h2,.my-access-lede),
:is(#tsuto-heading-system, body) .closing h2{font-size:var(--tsuto-section-title-size)!important}
:is(#tsuto-heading-system, body) main :is(h3,.tsuto-path>strong,.tsuto-sealed>strong,.pop-sequence>span){font-size:var(--tsuto-subtitle-size)!important}
:is(#tsuto-heading-system, body) main :is(h1,h2,h3) :is(span,strong,em):not([class*="kanji"]):not([class*="symbol"]){
 font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;
 line-height:inherit!important;letter-spacing:inherit!important;
 -webkit-text-stroke:inherit!important;white-space:normal!important;
}
:is(#tsuto-heading-system, body) main :is(.eyebrow,.contact-label,.pop-kicker,.shop-waiting-eyebrow,.donor-key-overline,.receiver-key-overline,.tsuto-portal-eyebrow){
 font-family:'Zen Maru Gothic',sans-serif!important;
 font-size:var(--tsuto-heading-label-size)!important;font-weight:500!important;
 line-height:1.5!important;-webkit-text-stroke:.012em currentColor!important;
}
/* Keep the logo/suffix group balanced without a smaller About-only title. */
:is(#tsuto-heading-system, body) .about-story-hero h1{gap:.12em;flex-wrap:wrap}
:is(#tsuto-heading-system, body) .about-story-hero h1 .brand-wordmark-inline{height:.84em!important;width:auto}

/* Shared reading scale, including forms and private-space interface copy.
 * Labels and captions keep their distinct role; user-authored content is not
 * restyled as a heading. The same rules apply on light and red backgrounds. */
:root{--tsuto-body-size:18px;--tsuto-note-size:14px}
@media(max-width:760px){:root{--tsuto-body-size:16px;--tsuto-note-size:14px}}
:is(#tsuto-heading-system, body){font-family:'Zen Kaku Gothic New',sans-serif}
:is(#tsuto-heading-system, body) main p:not(.eyebrow):not(.contact-label):not(.pop-kicker):not(.shop-waiting-eyebrow):not(.donor-key-overline):not(.receiver-key-overline):not(.tsuto-portal-eyebrow):not(.my-access-lede),
:is(#tsuto-heading-system, body) main :is(li,dt,dd){
 font-family:'Zen Kaku Gothic New',sans-serif!important;
 font-size:var(--tsuto-body-size)!important;font-weight:400!important;
 line-height:1.85!important;letter-spacing:0!important;-webkit-text-stroke:0!important;
}
:is(#tsuto-heading-system, body) main :is(input,textarea,select,label,button,.tsuto-button){
 font-family:'Zen Kaku Gothic New',sans-serif!important;font-size:16px!important;line-height:1.5!important;
}
:is(#tsuto-heading-system, body) main :is(small,.contact-note,.contact-required,.donor-key-note,.receiver-key-note,.pop-note){
 font-family:'Zen Kaku Gothic New',sans-serif!important;font-size:var(--tsuto-note-size)!important;
 font-weight:400!important;line-height:1.75!important;-webkit-text-stroke:0!important;
}
