/* FGJ shared typography — display only. Existing FV/events compositions stay intact. */
:root {
 --fgj-font-body: "LINE Seed JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
 --fgj-font-label: "Barlow Semi Condensed", sans-serif;
 --fgj-type-body: 16px;
 --fgj-type-small: 14px;
 --fgj-type-meta: 12px;
 --fgj-copy-line: 1.85;
 --fgj-copy-gap: 1.35em;
 --fgj-copy-width: 720px;
}
/* Editorial copy only. Display slogans, event-list cards, logos and photographs are excluded. */
:is(.page-intro__body, .about-beliefs__copy, .about-belief__body, .about-people__body,
 .about-story__heading, .about-story__origin, .about-story__future, .story-origin__body,
 .story-future__grid, .purpose-pillar, .founder__career, .story-journey, .about-next__head,
 .page-section__head, .feature__body, .contact-option, .audience-grid, .experience-six,
 .fgj-divisions-intro, .fgj-division__copy, .fgj-divisions-closing) p:not(:is([class$="__label"], [class$="__number"])) {
 font-family: var(--fgj-font-body);
 font-size: var(--fgj-type-body);
 font-weight: 400;
 line-height: var(--fgj-copy-line);
 letter-spacing: normal;
 margin-block: 0 var(--fgj-copy-gap);
}
.founder__body > p:not(.founder__role):not(.founder__quote),
.about-purpose__body > p:not(.about-purpose__lead) {
 font-family: var(--fgj-font-body); font-size: var(--fgj-type-body); line-height: var(--fgj-copy-line);
 letter-spacing: normal; margin-block: 0 var(--fgj-copy-gap);
}
/* Reading regions, including the legacy full-width Elementor registration page. */
:is(.single-post .detail-body, .single-event .em-event-content, .fgj-editor-content .entry-content,
 .page-id-5422 .elementor-widget-text-editor) :is(p, li):not(:where(form *, .em-booking *, .em-booking-form *,
 .em-event-meta *, table *, .fc *, .gallery *, .wp-block-gallery *, .wp-block-columns *,
 .wp-block-media-text *, .elementor-widget-icon *, .elementor-widget-image-carousel *,
 .elementor-widget-gallery *, .addtoany_share_save_container *, .detail-actions *, .detail-data *)):not(.wp-caption-text) {
 font-family: var(--fgj-font-body) !important;
 font-size: var(--fgj-type-body) !important;
 line-height: var(--fgj-copy-line) !important;
 letter-spacing: normal;
}
:is(.single-post .detail-body, .single-event .em-event-content, .fgj-editor-content .entry-content,
 .page-id-5422 .elementor-widget-text-editor) p:not(:where(form *, .em-booking *, .em-booking-form *,
 table *, .fc *, .gallery *, .wp-block-gallery *, .wp-block-columns *, .wp-block-media-text *,
 .elementor-widget-icon *, .elementor-widget-image-carousel *, .elementor-widget-gallery *,
 .addtoany_share_save_container *, .detail-actions *, .detail-data *)):not(.wp-caption-text) {
 margin-block: 0 var(--fgj-copy-gap) !important;
}
/* Imported font/size fragments keep bold, emphasis, links, colour and semantic headings. */
:is(.single-post .detail-body, .single-event .em-event-content, .fgj-editor-content .entry-content,
 .page-id-5422 .elementor-widget-text-editor) :is(p,li) :is(span[style*="font"],font):not(:where(
 form *, .em-booking *, table *, .fc *, .gallery *, .wp-block-gallery *, .wp-block-columns *,
 .wp-block-media-text *, .addtoany_share_save_container *, [class*="icon"], [role="img"])) {
 font-family: var(--fgj-font-body) !important;
 font-size: inherit !important;
 line-height: inherit !important;
}
/* Legacy large inline titles remain a distinct editorial level, not 16px body. */
:is(.single-post .detail-body, .single-event .em-event-content) p :is(
 span[style*="font-size: 18pt"], span[style*="font-size:18pt"],
 span[style*="font-size: 24pt"], span[style*="font-size:24pt"]) {
 font-size: 20px !important; line-height: 1.7 !important;
}
/* Pasted social text sometimes uses div rather than p. Avoid its tiny emoji/icon children. */
.single-post .detail-body div[style*="font-family"][style*="text-align"] {
 font-family: var(--fgj-font-body) !important; font-size: 16px !important;
 line-height: var(--fgj-copy-line) !important; margin-block: 0 var(--fgj-copy-gap) !important;
}
:is(.single-post .detail-body, .single-event .em-event-content, .fgj-editor-content .entry-content)
 :is(h2,h3,h4,h5,h6):not(:where(form *, .em-booking *, .em-booking-form *, .fc *, .gallery *, .elementor-widget-heading *)) {
 font-family: var(--fgj-font-body); font-weight: 700; line-height: 1.7; letter-spacing: normal;
}
:is(.single-post .detail-body, .single-event .em-event-content) h2:not(:where(form *, .em-booking *)) { font-size: 25px; margin-block: 2em .8em; }
:is(.single-post .detail-body, .single-event .em-event-content) h3:not(:where(form *, .em-booking *)) { font-size: 20px; margin-block: 1.6em .6em; }
:is(.community__note, .fgj-concept-credit, .founder__role, .statement__founder-label) { font-family: var(--fgj-font-body); line-height: 1.7; }
.community__note { font-size: 14px; }
:is(.archive-card__meta, .detail-hero__meta) { font-family: var(--fgj-font-body); font-size: 12px; line-height: 1.7; letter-spacing: .04em; }
/* Heading fragments imported from older editors inherit their semantic heading level. */
:is(.single-post .detail-body, .single-event .em-event-content) :is(h2,h3,h4,h5,h6)
 :is(span[style*="font"],font):not(:where(form *, .em-booking *, table *, [class*="icon"], [role="img"])) {
 font-family: inherit !important; font-size: inherit !important; line-height: inherit !important;
}
:is(.single-post .detail-body, .single-event .em-event-content) :is(h4,h5,h6):not(:where(form *, .em-booking *)) { margin-block: 1.6em .6em; }
:is(.single-post .detail-body, .single-event .em-event-content) h4:not(:where(form *, .em-booking *)) { font-size: 18px; }
:is(.single-post .detail-body, .single-event .em-event-content) h5:not(:where(form *, .em-booking *)) { font-size: 17px; }
:is(.single-post .detail-body, .single-event .em-event-content) h6:not(:where(form *, .em-booking *)) { font-size: 16px; }
.single-post .detail-body figcaption div[style*="font-family"][style*="text-align"] {
 font-size: 13px !important; line-height: 1.7 !important; margin-block: .6em !important;
}
/* Three verified legacy one-cell prose callouts, not data/booking/calendar tables.
   Keep their table structure, widths, borders, lists, emphasis and emoji unchanged. */
.single-post:is(.postid-7108, .postid-7224, .postid-7193) .detail-body > table { margin-block: var(--fgj-copy-gap); }
.single-post:is(.postid-7108, .postid-7224, .postid-7193) .detail-body > table :is(td,p,li) {
 font-family: var(--fgj-font-body) !important; font-size: var(--fgj-type-body) !important;
 line-height: var(--fgj-copy-line) !important; letter-spacing: normal;
}
.single-post:is(.postid-7108, .postid-7224, .postid-7193) .detail-body > table :is(span[style*="font"],font) {
 font-family: inherit !important; font-size: inherit !important; line-height: inherit !important;
}
.single-post:is(.postid-7108, .postid-7224, .postid-7193) .detail-body > table p {
 margin-block: 0 var(--fgj-copy-gap);
}
.single-post:is(.postid-7108, .postid-7224, .postid-7193) .detail-body > table p:last-child { margin-bottom: 0; }
/* English labels are explicitly selected; Japanese descendants keep the body family. */
:not(.page-home) > main :is(.page-hero__eyebrow, .section-kicker, .about-story__label),
.about-next__links > a > span, .contact-option > span, .audience-grid article > span,
.experience-six article > div > span {
 font-family: var(--fgj-font-label); font-size: 13px; font-weight: 600; line-height: 1.5; letter-spacing: .08em;
}
.about-hero__copy > p { font-family: var(--fgj-font-body); font-style: normal; letter-spacing: .04em; line-height: 1.85; }
/* Shared navigation and footer; preserve dimensions and the event-only round CTA. */
.side__nav a b, .mobile-menu nav a b { font-family: var(--fgj-font-label); }
.side__nav small, .mobile-menu nav small { font-family: var(--fgj-font-body); font-size: 12px; font-weight: 400; line-height: 1.6; letter-spacing: normal; }
.footer__links { font-family: var(--fgj-font-body); font-size: 13px; line-height: 1.7; letter-spacing: .02em; }
.footer__brand p, .footer__socials > p, .footer__legal { font-family: var(--fgj-font-body); font-size: 12px; line-height: 1.7; letter-spacing: .03em; }
.footer__socials :is(a,b) { font-family: var(--fgj-font-label); font-size: 16px; line-height: 1.5; letter-spacing: .03em; }
/* Plugin adapters: typography only, never captcha/icon internals or field identifiers. */
:is(.em-booking-form, .em-booking, .mepr-form, .mepr-login-form, .mepr-guest-layout, .um-form,
 .elementor-widget-form) :is(label, .mp-form-label, .um-field-label) {
 font-family: var(--fgj-font-body) !important; font-size: 16px !important;
 font-weight: 400; line-height: 1.6 !important; letter-spacing: normal;
}
:is(.em-booking-form, .em-booking, .mepr-form, .mepr-login-form, .mepr-guest-layout, .um-form,
 .elementor-widget-form) :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea):not(:where(.g-recaptcha *, .input-captcha *, .wpa-test-msg *)) {
 font-family: var(--fgj-font-body) !important; font-size: 16px !important; line-height: var(--fgj-control-line, 1.5) !important;
 letter-spacing: normal;
}
:is(.em-booking-form, .em-booking, .mepr-form, .mepr-login-form, .mepr-guest-layout, .um-form,
 .elementor-widget-form) textarea:not(.g-recaptcha-response) { --fgj-control-line: 1.7; }
:is(.em-booking-form, .em-booking, .mepr-form, .mepr-login-form, .mepr-guest-layout, .um-form,
 .elementor-widget-form) :is(button[type="submit"], input[type="submit"], .mepr-submit, .em-booking-submit, .elementor-button) {
 font-family: var(--fgj-font-body) !important; font-size: 14px !important; font-weight: 700 !important;
 line-height: 1.5 !important; letter-spacing: .02em; min-height: 44px; white-space: normal;
}
.mepr-guest-layout :is(h1,h2,p), .mepr-guest-layout .mp-form-label {
 font-family: var(--fgj-font-body) !important;
}
.mepr-guest-layout p { font-size: 16px; line-height: 1.85; }
.em-booking .em-booking-section-title { font-family: var(--fgj-font-body) !important; font-size: 21px !important; font-weight: 700 !important; line-height: 1.6 !important; letter-spacing: normal !important; }
.em-booking :is(.ticket-price,.ticket-desc) { font-family: var(--fgj-font-body); line-height: 1.6 !important; }
/* More specific plugin rules otherwise retain an 11px/38px booking submit label. */
.single-event .em.pixelbones .em-booking-form input.em-booking-submit.em-button {
 font-family: var(--fgj-font-body) !important; font-size: 14px !important;
 font-weight: 700 !important; line-height: 1.5 !important;
}
:is(.em-booking-form, .mepr-form, .mepr-login-form, .mepr-guest-layout, .um-form,
 .elementor-widget-form) textarea.input:not(.g-recaptcha-response) { --fgj-control-line: 1.7; }
:is(.mepr-form, .mepr-login-form, .mepr-guest-layout) input[type="submit"].mepr-submit { line-height: 1.5 !important; }
/* Font only: preserve the already-fixed FullCalendar table geometry and density. */
.fc :is(th,td,h2,button,.fc-title,.fc-time) { font-family: var(--fgj-font-body); }
@media(max-width:820px) {
 :is(.single-post .detail-body, .single-event .em-event-content) h2:not(:where(form *, .em-booking *)) { font-size: 21px; }
 :is(.single-post .detail-body, .single-event .em-event-content) h3:not(:where(form *, .em-booking *)) { font-size: 18px; }
}
