:root {
  --ink: #24343d;
  --ink-soft: #5b6b73;
  --primary: #23485b;
  --primary-deep: #193747;
  --primary-night: #102c3a;
  --accent: #5e9b8f;
  --accent-deep: #3f7d73;
  --accent-pale: #dcece7;
  --warm: #dfb879;
  --warm-pale: #f3e7d2;
  --paper: #fbfaf6;
  --paper-deep: #f3f1e9;
  --mist: #eef4f1;
  --white: #ffffff;
  --line: #d8e0dc;
  --line-dark: rgba(255,255,255,.17);
  --shadow: 0 18px 50px rgba(27, 55, 66, .10);
  --container: 1180px;
  --font: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, system-ui, sans-serif;
  --serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font); line-height: 1.85; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { display: block; max-width: 100%; }
p, h1, h2, h3 { margin-top: 0; }

/* Heading wrapping foundation (2026-09-10).
   - Display headings balance their lines.
   - Card/subheadings use pretty wrapping to avoid very short final lines where supported.
   - Japanese line breaking stays strict; arbitrary emergency word breaking is disabled.
   - .title-keep can protect a semantic phrase when a later QA fix needs it. */
:where(h1, h2, h3) {
  overflow-wrap: normal;
  word-break: normal;
  line-break: strict;
}
:where(h1, h2) { text-wrap: balance; }
:where(h3) { text-wrap: pretty; }
.title-balance { text-wrap: balance !important; }
.title-pretty { text-wrap: pretty !important; }
.title-keep { white-space: nowrap; }
.container { width: min(calc(100% - 64px), var(--container)); margin-inline: auto; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 9999; padding: 10px 16px; color: var(--white); background: var(--primary-night); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid transparent; background: rgba(251, 250, 246, .88); backdrop-filter: blur(18px); transition: border-color .2s, box-shadow .2s; }
.site-header.is-scrolled { border-color: rgba(35,72,91,.12); box-shadow: 0 8px 28px rgba(25,55,71,.05); }
.header-shell { display: flex; align-items: center; justify-content: space-between; width: min(calc(100% - 56px), 1360px); min-height: 84px; margin-inline: auto; gap: 32px; }
.wordmark { display: inline-flex; align-items: center; gap: 10px; color: var(--primary-deep); font-weight: 800; letter-spacing: .025em; line-height: 1.25; white-space: nowrap; }
.wordmark-logo { width: 46px; height: 46px; flex: 0 0 auto; object-fit: contain; filter: drop-shadow(0 3px 7px rgba(25,55,71,.08)); }
.wordmark-text { font-size: 18px; }
.desktop-nav { display: flex; align-items: center; gap: 25px; font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.desktop-nav > a, .nav-dropdown > button { position: relative; padding: 29px 0; color: #344953; border: 0; background: none; cursor: pointer; }
.desktop-nav > a::after, .nav-dropdown > button::after { content: ""; position: absolute; right: 0; bottom: 21px; left: 0; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: right; transition: transform .25s; }
.desktop-nav > a:hover::after, .desktop-nav > a:focus-visible::after, .nav-dropdown > button:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-dropdown { position: relative; }
.nav-dropdown button span { margin-left: 5px; color: var(--accent-deep); }
.nav-dropdown-menu { position: absolute; top: 66px; left: 50%; display: grid; min-width: 220px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.98); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: .2s; }
.nav-dropdown.is-open .nav-dropdown-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav-dropdown-menu a { padding: 11px 13px; border-radius: 8px; }
.nav-dropdown-menu a:hover { background: var(--mist); }
.desktop-nav .nav-contact { padding: 13px 19px; color: var(--white); border-radius: 999px; background: var(--primary); transition: transform .2s, background .2s; }
.desktop-nav .nav-contact::after { display: none; }
.desktop-nav .nav-contact:hover { background: var(--primary-deep); transform: translateY(-2px); }
.menu-button { display: none; align-items: center; gap: 12px; height: 44px; padding: 0 3px; color: var(--primary); border: 0; background: transparent; }
.menu-label { font-size: 12px; font-weight: 800; }
.menu-lines { display: grid; gap: 7px; width: 25px; }
.menu-lines i { display: block; width: 25px; height: 2px; background: currentColor; transition: .2s; }
.menu-button[aria-expanded="true"] .menu-lines i:first-child { transform: translateY(4.5px) rotate(45deg); }
.menu-button[aria-expanded="true"] .menu-lines i:last-child { transform: translateY(-4.5px) rotate(-45deg); }
.mobile-menu { border-top: 1px solid var(--line); background: var(--paper); }
.mobile-menu-inner { display: grid; width: min(calc(100% - 48px), 600px); margin-inline: auto; padding: 12px 0 28px; }
.mobile-menu a { padding: 13px 0; border-bottom: 1px solid var(--line); font-weight: 700; }

.hero { position: relative; min-height: 750px; overflow: hidden; border-bottom: 1px solid rgba(35,72,91,.08); background: linear-gradient(145deg, var(--paper) 5%, #f7f8f2 58%, #edf5f0 100%); }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; min-height: 750px; padding-top: 50px; gap: 50px; }
.hero-copy { padding: 45px 0 75px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; color: var(--accent-deep); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow span { width: 35px; height: 1px; background: currentColor; }
.hero h1 { margin-bottom: 28px; color: var(--primary-deep); font-family: var(--serif); font-size: clamp(43px, 4.7vw, 67px); font-weight: 600; letter-spacing: .02em; line-height: 1.44; }
.hero h1 em { position: relative; color: var(--accent-deep); font-style: normal; }
.hero h1 em::after { content: ""; position: absolute; right: -2px; bottom: 2px; left: -2px; z-index: -1; height: 12px; border-radius: 99px; background: rgba(223,184,121,.34); transform: rotate(-1.5deg); }
.hero-lead { max-width: 650px; margin-bottom: 34px; color: var(--ink-soft); font-size: 16px; line-height: 2.05; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 15px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; min-height: 55px; padding: 0 23px; gap: 28px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 800; transition: .25s; }
.button span { font-size: 17px; transition: transform .25s; }
.button:hover span { transform: translateX(4px); }
.button-primary { color: var(--white); background: var(--primary); box-shadow: 0 10px 24px rgba(35,72,91,.16); }
.button-primary:hover { background: var(--primary-deep); transform: translateY(-2px); }
.button-quiet { border-color: var(--line); background: rgba(255,255,255,.55); }
.button-quiet:hover { border-color: var(--accent); background: var(--white); }
.button-secondary { border-color: rgba(35,72,91,.25); color: var(--primary); background: transparent; }
.button-secondary:hover { color: var(--white); background: var(--primary); }
.button-white { color: var(--primary-deep); background: var(--white); box-shadow: 0 10px 25px rgba(7,31,43,.12); }
.button-white:hover { transform: translateY(-2px); }
.hero-art-wrap { position: relative; align-self: end; padding-bottom: 42px; }
.hero-art { width: 100%; height: auto; filter: drop-shadow(0 24px 24px rgba(31,66,76,.08)); }
.hero-tag { position: absolute; display: flex; align-items: center; gap: 8px; padding: 10px 15px; color: var(--primary-deep); border: 1px solid rgba(94,155,143,.25); border-radius: 999px; background: rgba(255,255,255,.88); box-shadow: 0 12px 30px rgba(31,66,76,.08); backdrop-filter: blur(8px); font-size: 12px; font-weight: 800; }
.hero-tag span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-pale); }
.hero-tag-a { top: 18%; right: 5%; }
.hero-tag-b { top: 47%; left: 0; }
.hero-tag-c { right: 6%; bottom: 20%; }
.hero-ambient { position: absolute; border-radius: 50%; filter: blur(1px); }
.hero-ambient-a { top: 55px; right: -150px; width: 450px; height: 450px; border: 1px solid rgba(94,155,143,.15); box-shadow: inset 0 0 0 65px rgba(94,155,143,.035), inset 0 0 0 130px rgba(94,155,143,.025); }
.hero-ambient-b { bottom: -120px; left: -140px; width: 330px; height: 330px; background: rgba(223,184,121,.09); }

.section { padding: 116px 0; }
.section-heading { margin-bottom: 55px; }
.section-heading h2, .role-copy h2, .activities-intro h2, .articles-heading h2 { margin-bottom: 22px; color: var(--primary-deep); font-family: var(--serif); font-size: clamp(34px, 3.6vw, 49px); font-weight: 600; line-height: 1.5; letter-spacing: .02em; }
.section-heading-wide { display: grid; grid-template-columns: 1.1fr .72fr; align-items: end; gap: 80px; }
.section-lead { margin: 0; color: var(--ink-soft); font-size: 15px; line-height: 2; }
.issue-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.issue-card { position: relative; min-height: 300px; padding: 34px 38px 32px; overflow: hidden; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.45); transition: background .25s, transform .25s; }
.issue-card:hover { z-index: 2; background: var(--white); transform: translateY(-3px); box-shadow: var(--shadow); }
.issue-card-accent { background: var(--mist); }
.issue-number { position: absolute; top: 23px; right: 27px; color: rgba(35,72,91,.17); font-family: var(--serif); font-size: 45px; }
.issue-label { margin-bottom: 17px; color: var(--accent-deep); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.issue-card h3 { max-width: 400px; margin-bottom: 16px; color: var(--primary-deep); font-size: 23px; line-height: 1.58; }
.issue-card > p:last-of-type { max-width: 470px; color: var(--ink-soft); font-size: 14px; }
.issue-symbol { position: absolute; right: 33px; bottom: 29px; display: flex; align-items: end; gap: 5px; width: 45px; height: 38px; opacity: .45; }
.issue-symbol span { width: 8px; border-radius: 4px 4px 0 0; background: var(--accent-deep); }
.issue-symbol span:nth-child(1) { height: 18px; }.issue-symbol span:nth-child(2) { height: 31px; }.issue-symbol span:nth-child(3) { height: 24px; }
.issue-symbol-alert, .issue-symbol-cycle { align-items: center; justify-content: center; color: var(--accent-deep); border: 2px solid currentColor; border-radius: 50%; font-size: 22px; font-weight: 800; }
.issue-symbol-talk span { position: absolute; width: 27px; height: 19px; border: 2px solid var(--accent-deep); border-radius: 9px; background: transparent; }
.issue-symbol-talk span:first-child { top: 2px; left: 0; }.issue-symbol-talk span:last-child { right: 0; bottom: 0; }

.concept-band { color: rgba(255,255,255,.76); background: var(--primary-night); }
.concept-grid { display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: 90px; }
.eyebrow-light { color: #92c1b7; }
.concept-copy h2 { margin-bottom: 28px; color: var(--white); font-family: var(--serif); font-size: clamp(38px, 4vw, 53px); font-weight: 600; }
.concept-definition { color: rgba(255,255,255,.88); font-size: 20px; line-height: 1.9; }
.concept-definition strong { color: #b8ddd5; font-weight: 700; }
.concept-copy > p:not(.eyebrow):not(.concept-definition) { margin-bottom: 29px; font-size: 14px; }
.text-link { display: inline-flex; align-items: center; gap: 18px; padding-bottom: 5px; color: var(--primary); border-bottom: 1px solid currentColor; font-size: 14px; font-weight: 800; }
.text-link span { transition: transform .2s; }.text-link:hover span { transform: translateX(5px); }
.text-link-light { color: var(--white); }
.cycle { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); list-style: none; counter-reset: item; }
.cycle li { position: relative; display: grid; place-items: center; min-height: 190px; padding: 27px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); text-align: center; }
.cycle li::after { content: "→"; position: absolute; right: -10px; top: 50%; z-index: 1; display: grid; place-items: center; width: 20px; height: 20px; color: var(--accent-pale); background: var(--primary-night); transform: translateY(-50%); }
.cycle li:nth-child(3)::after, .cycle li:last-child::after { display: none; }
.cycle-no { position: absolute; top: 27px; left: 27px; color: #7eb2a7; font-family: var(--serif); font-size: 16px; }
.cycle-text { color: var(--white); font-size: 16px; font-weight: 700; line-height: 1.65; }

.role-section { background: var(--paper-deep); }
.role-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 64px; }
.role-visual { width: 100%; max-width: 520px; justify-self: center; }
.role-art { width: 100%; height: auto; filter: drop-shadow(0 24px 24px rgba(31,66,76,.07)); }
.role-frame { position: relative; display: grid; grid-template-columns: 1fr .85fr 1fr; align-items: center; aspect-ratio: 1.08; padding: 55px; border: 1px solid rgba(35,72,91,.13); border-radius: 50% 44% 48% 42%; background: radial-gradient(circle at 48% 42%, #fff 0 25%, #e5efeb 26% 49%, #f7f6ef 50%); box-shadow: inset 0 0 0 28px rgba(255,255,255,.32); }
.role-person, .role-robot { position: relative; height: 190px; }
.role-person .head { position: absolute; top: 3px; left: 50%; width: 63px; height: 70px; border-radius: 48% 48% 44% 44%; background: #d6a678; transform: translateX(-50%); }
.role-person .head::before { content: ""; position: absolute; top: -7px; right: -5px; left: -5px; height: 31px; border-radius: 55% 55% 35% 35%; background: var(--primary-deep); }
.role-person .body { position: absolute; right: 8px; bottom: 0; left: 8px; height: 123px; border-radius: 58px 58px 18px 18px; background: var(--accent); }
.role-person .body::before { content: ""; position: absolute; top: 34px; right: 18px; left: 18px; height: 5px; border-radius: 99px; background: rgba(255,255,255,.45); }
.role-robot .antenna { position: absolute; top: 0; left: 50%; width: 3px; height: 24px; background: var(--primary); transform: translateX(-50%); }
.role-robot .antenna::before { content: ""; position: absolute; top: -6px; left: -4px; width: 11px; height: 11px; border-radius: 50%; background: var(--warm); }
.role-robot .face { position: absolute; top: 24px; right: 4px; left: 4px; display: flex; align-items: center; justify-content: center; gap: 24px; height: 78px; border: 4px solid var(--primary); border-radius: 28px; background: var(--white); }
.role-robot .face i { width: 10px; height: 10px; border-radius: 50%; background: var(--primary); }
.role-robot .body { position: absolute; right: 15px; bottom: 0; left: 15px; height: 91px; border-radius: 24px 24px 32px 32px; background: var(--primary); }
.role-robot .body::before { content: ""; position: absolute; top: 22px; left: 50%; width: 28px; height: 28px; border: 3px solid var(--accent-pale); border-radius: 50%; transform: translateX(-50%); }
.role-bridge { position: relative; height: 150px; }
.role-bridge span { position: absolute; top: 50%; right: -15px; left: -15px; height: 3px; background: var(--warm); transform: translateY(-50%); }
.role-bridge i, .role-bridge b { position: absolute; left: 50%; width: 17px; height: 17px; border: 4px solid var(--warm); border-radius: 50%; background: var(--paper-deep); transform: translateX(-50%); }
.role-bridge i { top: 8px; }.role-bridge b { bottom: 8px; }
.role-frame > p { position: absolute; margin: 0; color: var(--accent-deep); font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.role-frame > p:nth-of-type(1) { left: 17%; bottom: 10%; }.role-frame > p:nth-of-type(2) { left: 48%; top: 10%; }.role-frame > p:nth-of-type(3) { right: 17%; bottom: 10%; }
.role-copy { width: 100%; max-width: 580px; }
.role-copy > p:not(.eyebrow) { color: var(--ink-soft); }
.role-list { margin: 31px 0 34px; border-top: 1px solid var(--line); }
.role-list > div { display: grid; grid-template-columns: 46px 1fr; padding: 14px 0; border-bottom: 1px solid var(--line); gap: 14px; }
.role-list span { color: var(--accent-deep); font-family: var(--serif); }
.role-list p { margin: 0; color: var(--ink-soft); font-size: 14px; }
.role-list strong { display: block; margin-bottom: 4px; color: var(--primary-deep); font-size: 16px; }

.fields-section { background: var(--paper); }
.fields-heading { display: grid; grid-template-columns: 1fr .65fr; align-items: end; gap: 90px; }
.fields-heading .text-link { margin-top: 22px; }
.field-list { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.field-list a { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; min-height: 83px; padding: 0 23px; border-bottom: 1px solid var(--line); transition: .2s; }
.field-list a:nth-child(odd) { border-right: 1px solid var(--line); }
.field-list a:hover { padding-left: 31px; color: var(--primary); background: var(--mist); }
.field-list span { color: var(--accent-deep); font-family: var(--serif); font-size: 13px; }
.field-list i { font-style: normal; opacity: .45; }

.activities-section { background: var(--mist); }
.activities-grid { display: grid; grid-template-columns: .73fr 1.27fr; gap: 100px; }
.activities-intro { position: sticky; top: 130px; align-self: start; }
.activities-intro > p:not(.eyebrow) { margin-bottom: 31px; color: var(--ink-soft); }
.activity-list { border-top: 1px solid rgba(35,72,91,.18); }
.activity-list article { display: grid; grid-template-columns: 55px 1fr; padding: 25px 8px; border-bottom: 1px solid rgba(35,72,91,.18); gap: 24px; }
.activity-list article > span { color: var(--accent-deep); font-family: var(--serif); }
.activity-list h3 { margin-bottom: 8px; color: var(--primary-deep); font-size: 21px; }
.activity-list p { margin: 0; color: var(--ink-soft); font-size: 14px; }

.knowledge-section { background: var(--paper-deep); }
.knowledge-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.book-panel { display: grid; grid-template-columns: .65fr 1.35fr; align-items: center; min-height: 510px; padding: 55px; color: rgba(255,255,255,.75); border-radius: 4px 90px 4px 4px; background: var(--primary); gap: 43px; }
.book-panel h2 { margin-bottom: 20px; color: var(--white); font-family: var(--serif); font-size: 37px; font-weight: 600; }

/* Page-specific title sizing: keep short headings on one line without changing shared heading styles. */
.home-concept-title { font-size: clamp(34px, 3.3vw, 44px) !important; white-space: nowrap; }
.home-activities-title { font-size: clamp(35px, 3vw, 42px) !important; }
.home-book-title { font-size: 31px !important; white-space: nowrap; }
.book-panel p:not(.eyebrow) { font-size: 14px; }
.book-mark { position: relative; aspect-ratio: .67; padding: 28px 18px; color: var(--primary-deep); border-radius: 2px 13px 13px 2px; background: var(--warm-pale); box-shadow: 18px 22px 40px rgba(8,31,41,.22); transform: rotate(-3deg); }
.book-mark::before { content: ""; position: absolute; top: 0; bottom: 0; left: 11px; width: 1px; background: rgba(35,72,91,.18); }
.book-mark span { display: block; margin-top: 30px; font-family: var(--serif); font-size: 25px; line-height: 1.65; }
.book-mark i { position: absolute; right: 17px; bottom: 22px; left: 20px; padding-top: 11px; border-top: 1px solid rgba(35,72,91,.25); font-size: 10px; font-style: normal; }
.articles-panel { padding: 45px; border: 1px solid var(--line); background: rgba(255,255,255,.58); }
.articles-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 24px; }
.articles-heading h2 { margin-bottom: 0; font-size: 38px; }
.article-row { display: grid; grid-template-columns: 39px 1fr auto; align-items: center; padding: 24px 6px; border-top: 1px solid var(--line); gap: 15px; transition: .2s; }
.article-row:hover { padding-left: 13px; color: var(--primary); }
.article-date { color: var(--accent-deep); font-family: var(--serif); font-size: 13px; }
.article-row strong, .article-row small { display: block; }
.article-row strong { margin-bottom: 5px; font-size: 15px; }
.article-row small { color: var(--ink-soft); font-size: 12px; }
.article-row i { font-style: normal; opacity: .45; }

.contact-band { padding: 100px 0; color: rgba(255,255,255,.77); background: linear-gradient(115deg, var(--primary-night), var(--primary) 74%, #3f766e); }
.contact-grid { display: grid; grid-template-columns: 1.05fr .75fr; align-items: end; gap: 90px; }
.contact-band h2 { margin: 0; color: var(--white); font-family: var(--serif); font-size: clamp(28px, 2.6vw, 37px); font-weight: 600; line-height: 1.55; }
.contact-band p:not(.eyebrow) { margin-bottom: 25px; }
.contact-band .button { margin-right: 18px; }
.mail-link { display: inline-block; padding: 8px 0; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.5); font-size: 13px; }

.site-footer { color: rgba(255,255,255,.62); background: #0c2633; }
.footer-main { display: grid; grid-template-columns: .8fr 1.2fr; padding-top: 75px; padding-bottom: 68px; gap: 110px; }
.wordmark-footer { color: var(--white); }
.wordmark-footer .wordmark-logo { width: 54px; height: 54px; filter: drop-shadow(0 5px 12px rgba(0,0,0,.18)); }
.footer-brand { max-width: 430px; }
.footer-tagline { margin: 31px 0 16px; color: var(--white); font-family: var(--serif); font-size: 18px; }
.footer-brand > p:last-child { font-size: 12px; }
.footer-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.footer-links div { display: grid; align-content: start; gap: 9px; }
.footer-links p { margin-bottom: 8px; color: #94bdb5; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.footer-links a { font-size: 12px; transition: color .2s; }.footer-links a:hover { color: var(--white); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; min-height: 70px; border-top: 1px solid rgba(255,255,255,.1); font-size: 10px; }
.footer-bottom p { margin: 0; }

@media (max-width: 1120px) {
  .desktop-nav { gap: 15px; font-size: 12px; }
  .hero-grid { gap: 18px; }
  .concept-grid { gap: 55px; }
  .role-grid { gap: 48px; }
  .book-panel { padding: 40px; }
  .knowledge-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .container { width: min(calc(100% - 44px), var(--container)); }
  .header-shell { width: calc(100% - 36px); min-height: 72px; }
  .desktop-nav { display: none; }
  .menu-button { display: flex; }
  .hero, .hero-grid { min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; padding-top: 45px; }
  .hero-copy { padding: 45px 0 0; }
  .hero-art-wrap { max-width: 650px; margin: -25px auto 0; }
  .section { padding: 88px 0; }
  .section-heading-wide, .fields-heading, .activities-grid, .contact-grid { grid-template-columns: 1fr; gap: 28px; }
  .concept-grid, .role-grid { grid-template-columns: 1fr; }
  .cycle { margin-top: 15px; }
  .role-visual { max-width: 500px; margin-inline: auto; }
  .role-copy { max-width: 620px; margin-inline: auto; }
  .activities-intro { position: static; }
  .book-panel { grid-template-columns: .65fr 1.35fr; }
  .footer-main { grid-template-columns: 1fr; gap: 50px; }
}

@media (max-width: 620px) {
  .container { width: calc(100% - 36px); }
  .header-shell { width: calc(100% - 30px); }
  .wordmark { gap: 7px; }
  .wordmark-logo { width: 38px; height: 38px; }
  .wordmark-text { font-size: 14px; letter-spacing: 0; }
  .menu-label { display: none; }
  .hero-grid { padding-top: 25px; }
  .hero-copy { padding-top: 30px; }
  .hero h1 { margin-bottom: 23px; font-size: 37px; line-height: 1.5; }
  .hero-lead { font-size: 14px; line-height: 1.95; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .hero-art-wrap { margin-top: -5px; padding-bottom: 35px; }
  .hero-tag { padding: 7px 10px; font-size: 10px; }
  .hero-tag-b { left: -3%; }
  .section { padding: 72px 0; }
  .section-heading h2, .role-copy h2, .activities-intro h2, .articles-heading h2 { font-size: 31px; line-height: 1.55; }
  .desktop-only { display: none; }
  /* On narrow screens, remove editorial line-break hints and let Japanese text wrap naturally. */
  .responsive-title-break { display: none; }
  .home-concept-title { font-size: 30px !important; }
  .home-activities-title { font-size: 31px !important; }
  .home-book-title { font-size: 28px !important; }
  .issue-grid { grid-template-columns: 1fr; }
  .issue-card { min-height: 285px; padding: 30px 24px; }
  .issue-card h3 { font-size: 20px; }
  .issue-number { top: 20px; right: 23px; }
  .concept-grid { gap: 48px; }
  .concept-copy h2 { font-size: 34px; }
  .concept-definition { font-size: 17px; }
  .cycle { grid-template-columns: repeat(2, 1fr); }
  .cycle li { min-height: 150px; padding: 20px; }
  .cycle-no { top: 20px; left: 20px; }
  .cycle li:nth-child(3)::after { display: grid; }
  .cycle li:nth-child(2n)::after { display: none; }
  .role-frame { padding: 35px; }
  .role-person, .role-robot { transform: scale(.82); }
  .field-list { grid-template-columns: 1fr; }
  .field-list a:nth-child(odd) { border-right: 0; }
  .field-list a { min-height: 72px; padding: 0 8px; }
  .field-list a:hover { padding-left: 15px; }
  .activity-list article { grid-template-columns: 40px 1fr; padding: 21px 0; gap: 12px; }
  .book-panel { grid-template-columns: 1fr; padding: 36px 29px; border-radius: 4px 50px 4px 4px; }
  .book-mark { width: 155px; margin-inline: auto; }
  .articles-panel { padding: 32px 23px; }
  .articles-heading { display: block; }
  .articles-heading .text-link { margin-top: 14px; }
  .article-row { grid-template-columns: 26px 1fr auto; padding: 20px 0; }
  .article-row small { display: none; }
  .contact-band { padding: 72px 0; }
  .contact-band h2 { font-size: 31px; }
  .contact-band .button { margin: 0 0 17px; }
  .mail-link { font-size: 12px; }
  .footer-main { padding-top: 60px; }
  .footer-links { grid-template-columns: 1fr 1fr; row-gap: 35px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; gap: 5px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}


/* Step 4: shared inner-page components */
.desktop-nav a[aria-current="page"], .desktop-nav .is-current > button { color: var(--accent-deep); }
.desktop-nav a[aria-current="page"]::after, .desktop-nav .is-current > button::after { transform: scaleX(1); }
.mobile-menu a[aria-current="page"] { color: var(--accent-deep); }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding-top:22px; padding-bottom:22px; color:var(--ink-soft); font-size:11px; }
.breadcrumbs a:hover { color:var(--accent-deep); }
.page-hero { position:relative; overflow:hidden; padding:96px 0 105px; border-top:1px solid rgba(35,72,91,.06); border-bottom:1px solid var(--line); background:linear-gradient(135deg,#f7f5ef 0%,#fbfaf6 55%,#eaf3ef 100%); }
.page-hero-inner { position:relative; z-index:1; }
.page-hero h1 { max-width:950px; margin-bottom:28px; color:var(--primary-deep); font-family:var(--serif); font-size:clamp(43px,5vw,66px); font-weight:600; line-height:1.35; }
.page-lead { max-width:790px; margin:0; color:var(--ink-soft); font-size:17px; line-height:2; }
.page-hero-orb { position:absolute; right:-90px; top:-170px; width:460px; height:460px; border:1px solid rgba(94,155,143,.16); border-radius:50%; box-shadow:inset 0 0 0 80px rgba(94,155,143,.03),inset 0 0 0 160px rgba(94,155,143,.025); }
.inner-section { background:var(--paper); }
.tint-section { background:var(--mist); }
.info-section { background:var(--paper-deep); }
.dark-reading { color:rgba(255,255,255,.72); background:linear-gradient(130deg,var(--primary-night),var(--primary)); }
.dark-reading h2,.dark-reading h3 { color:var(--white); }.dark-reading .eyebrow{color:#9cc8bf}.dark-reading .section-lead{color:rgba(255,255,255,.7)}
.narrow { max-width:900px; }
.inner-heading { max-width:850px; }
.inner-heading .section-lead { margin-top:10px; }
.split-reading { display:grid; grid-template-columns:220px 1fr; gap:95px; }
.sticky-label { position:sticky; top:130px; align-self:start; }.index-number{margin:40px 0 0;color:rgba(35,72,91,.12);font-family:var(--serif);font-size:90px;line-height:1}
.book-title-note{margin:0 0 34px;padding:18px 22px;border-left:3px solid var(--warm);background:var(--warm-pale);color:var(--primary-deep)!important;line-height:1.9!important}.book-title-note strong{font-family:var(--serif);font-size:18px;font-weight:600}.book-title-note span{color:var(--ink-soft);font-size:13px}.book-title-note .book-status{display:table;margin:0 0 9px;padding:3px 10px;border-radius:99px;background:var(--accent-pale);color:var(--accent-deep);font-size:11px;font-weight:800;line-height:1.6}
.reading-copy { max-width:800px; }.reading-copy h2,.prose-wide h2{margin-bottom:30px;color:var(--primary-deep);font-family:var(--serif);font-size:clamp(31px,3.4vw,47px);font-weight:600;line-height:1.55}.reading-copy p,.prose-wide p{color:var(--ink-soft);font-size:16px;line-height:2.1}.reading-copy blockquote{margin:45px 0 0;padding:29px 32px;border-left:4px solid var(--accent);color:var(--primary-deep);background:var(--mist);font-family:var(--serif);font-size:20px;line-height:1.85}
.prose-wide{max-width:850px}.number-card-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.number-card-grid.four{grid-template-columns:repeat(2,1fr)}.number-card-grid article{min-height:280px;padding:36px 38px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.48)}.number-card-grid article > span,.goal-grid article > span{color:var(--accent-deep);font-family:var(--serif)}.number-card-grid h3{margin:22px 0 13px;color:var(--primary-deep);font-size:20px}.number-card-grid p{margin:0;color:var(--ink-soft);font-size:14px}.about-goals-grid article{min-height:230px}
.activity-detail-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-dark)}.activity-detail-list article{padding:38px;background:rgba(255,255,255,.04)}.activity-detail-list h3{font-size:20px}.activity-detail-list p{margin:0;font-size:14px}
.boundary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.boundary-grid.four{grid-template-columns:repeat(2,1fr)}.boundary-grid article{padding:31px;border:1px solid var(--line);background:rgba(255,255,255,.72)}.boundary-grid article > span{display:inline-flex;padding:5px 11px;color:var(--accent-deep);border-radius:99px;background:var(--accent-pale);font-size:11px;font-weight:800}.boundary-grid h3{margin:20px 0 10px;color:var(--primary-deep);font-size:18px}.boundary-grid p{margin:0;color:var(--ink-soft);font-size:13px}
.info-table{margin:0;border-top:1px solid var(--line)}.info-table div{display:grid;grid-template-columns:180px 1fr;padding:22px 8px;border-bottom:1px solid var(--line)}.info-table dt{color:var(--ink-soft);font-size:13px;font-weight:700}.info-table dd{margin:0}.info-table a:not(.text-link){color:var(--accent-deep);text-decoration:underline;text-underline-offset:4px}
.cycle-detail-section{background:var(--paper-deep)}.cycle-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.cycle-detail-grid article{position:relative;min-height:250px;padding:38px 38px 34px;border:1px solid var(--line);background:var(--white)}.cycle-detail-grid article > span{position:absolute;right:27px;top:17px;color:rgba(35,72,91,.12);font-family:var(--serif);font-size:54px}.cycle-detail-grid h3{max-width:78%;margin-bottom:17px;color:var(--primary-deep);font-size:21px}.cycle-detail-grid p{margin:0;color:var(--ink-soft);font-size:14px}.cycle-note{max-width:830px;margin:35px auto 0;padding:22px 26px;border-radius:5px;background:var(--warm-pale);font-size:14px}
.scope-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.scope-grid.four{grid-template-columns:repeat(4,1fr)}.scope-grid article{padding:30px;border-top:4px solid var(--accent);background:var(--white);box-shadow:0 10px 35px rgba(35,72,91,.06)}.scope-grid h3{margin-bottom:10px;color:var(--primary-deep);font-size:18px}.scope-grid p{margin:0;color:var(--ink-soft);font-size:13px}
.compare-table{margin-top:38px;border:1px solid var(--line);background:var(--white)}.compare-table>div{display:grid;grid-template-columns:1fr 1fr}.compare-table span{padding:18px 22px;border-bottom:1px solid var(--line)}.compare-table span+span{border-left:1px solid var(--line)}.compare-table .compare-head{color:var(--white);background:var(--primary);font-weight:800}.compare-table>div:last-child span{border-bottom:0}.small-note{margin-top:18px;color:var(--ink-soft);font-size:12px}
.goal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.goal-grid article{padding:29px;border:1px solid var(--line);background:rgba(255,255,255,.55)}.goal-grid h3{margin:16px 0 10px;color:var(--primary-deep);font-size:19px}.goal-grid p{margin:0;color:var(--ink-soft);font-size:13px}.next-page{margin-top:85px;padding:50px;border-left:5px solid var(--accent);background:var(--mist)}.next-page h2{margin-bottom:12px;color:var(--primary-deep);font-family:var(--serif);font-size:32px;font-weight:600}.next-page p:not(.eyebrow){color:var(--ink-soft)}
.notice-box{padding:22px 26px;border:1px solid rgba(94,155,143,.35);border-radius:5px;background:var(--mist);color:var(--primary-deep);font-size:14px}.notice-box.wide{margin-bottom:45px}.notice-box p:last-child{margin-bottom:0}
.responsibility-list{border-top:1px solid var(--line)}.responsibility-list article{display:grid;grid-template-columns:60px 280px 1fr;align-items:start;padding:29px 8px;border-bottom:1px solid var(--line);gap:25px}.responsibility-list article > span{color:var(--accent-deep);font-family:var(--serif)}.responsibility-list h3{margin:0;color:var(--primary-deep);font-size:18px}.responsibility-list p{margin:0;color:var(--ink-soft);font-size:14px}
.ability-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line-dark)}.ability-grid article{min-height:290px;padding:31px 25px;background:rgba(255,255,255,.045)}.ability-grid article > span{display:grid;place-items:center;width:40px;height:40px;margin-bottom:27px;border:1px solid rgba(255,255,255,.25);border-radius:50%;font-family:var(--serif)}.ability-grid h3{font-size:18px}.ability-grid p{margin:0;font-size:13px}
.team-layout{display:grid;grid-template-columns:1fr .8fr;align-items:start;gap:70px}.check-panel{padding:38px;background:var(--mist)}.check-panel ul{display:grid;gap:15px;margin:0 0 26px;padding:0;list-style:none}.check-panel li{position:relative;padding-left:28px}.check-panel li:before{content:'✓';position:absolute;left:0;color:var(--accent-deep);font-weight:900}.check-panel p{margin:0;padding-top:23px;border-top:1px solid var(--line);color:var(--primary-deep);font-family:var(--serif);font-size:18px}
.field-jump{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:55px}.field-jump a{padding:8px 14px;border:1px solid var(--line);border-radius:99px;background:var(--white);font-size:12px}.field-jump a:hover{border-color:var(--accent);color:var(--accent-deep)}.field-detail-section{background:var(--paper-deep)}.field-detail{scroll-margin-top:110px;margin-bottom:28px;padding:45px;border:1px solid var(--line);background:var(--white)}.field-detail-head{display:grid;grid-template-columns:65px 1fr;gap:20px;padding-bottom:28px;border-bottom:1px solid var(--line)}.field-detail-head>span{color:var(--accent-deep);font-family:var(--serif);font-size:17px}.field-detail h2{margin-bottom:8px;color:var(--primary-deep);font-family:var(--serif);font-size:34px;font-weight:600}.field-detail-head p{margin:0;color:var(--ink-soft)}.field-detail-body{display:grid;grid-template-columns:.75fr 1.25fr;gap:55px;padding:32px 0}.field-detail h3{color:var(--primary-deep);font-size:16px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.tag-list li{padding:6px 10px;border-radius:4px;background:var(--mist);font-size:12px}.check-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.check-list li{position:relative;padding-left:24px;color:var(--ink-soft);font-size:14px}.check-list li:before{content:'';position:absolute;left:0;top:.78em;width:8px;height:8px;border:2px solid var(--accent);border-radius:50%}.field-focus{display:grid;grid-template-columns:130px 1fr;padding:22px 25px;background:var(--warm-pale);gap:20px}.field-focus strong{color:var(--primary-deep)}.field-focus p{margin:0;font-size:14px}
.book-intro-grid{display:grid;grid-template-columns:300px 1fr;align-items:center;gap:90px}.book-large-mark{position:relative;aspect-ratio:.7;padding:45px 35px;color:var(--primary-deep);border-radius:3px 20px 20px 3px;background:var(--warm-pale);box-shadow:25px 30px 60px rgba(25,55,71,.18);transform:rotate(-2deg)}.book-large-mark:before{content:'';position:absolute;top:0;bottom:0;left:20px;width:1px;background:rgba(35,72,91,.2)}.book-large-mark span{display:block;margin-top:50px;font-family:var(--serif);font-size:35px;line-height:1.55;white-space:nowrap}.book-large-mark i{position:absolute;right:28px;bottom:32px;left:35px;padding-top:14px;border-top:1px solid rgba(35,72,91,.25);font-style:normal;font-size:12px}.reader-grid{display:grid;grid-template-columns:1fr .7fr;gap:60px}.check-list.large li{padding-bottom:12px;font-size:15px}.quote-card{align-self:center;margin:0;padding:38px;border-left:4px solid var(--warm);background:var(--white);color:var(--primary-deep);font-family:var(--serif);font-size:19px}.contents-list{display:grid;grid-template-columns:repeat(2,1fr);margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.contents-list li{display:grid;grid-template-columns:45px 1fr;align-items:center;min-height:76px;padding:0 15px;border-bottom:1px solid var(--line)}.contents-list li:nth-child(odd){border-right:1px solid var(--line)}.contents-list span{color:var(--accent-deep);font-family:var(--serif);font-size:12px}.framework-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-dark)}.framework-grid article{padding:38px;background:rgba(255,255,255,.045)}.framework-grid h3{font-size:20px}.framework-grid p{margin:0;font-size:14px}.not-list{display:grid;gap:11px;margin:0;padding:0;list-style:none}.not-list li{position:relative;padding:14px 18px 14px 45px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.65)}.not-list li:before{content:'—';position:absolute;left:18px;color:var(--accent-deep)}.update-box{margin-top:55px;padding:35px;background:var(--white)}.update-box h2{margin-bottom:10px;color:var(--primary-deep);font-family:var(--serif);font-size:27px;font-weight:600}.update-box p{color:var(--ink-soft)}
.article-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.article-card-large{display:flex;flex-direction:column;min-height:390px;padding:36px;border:1px solid var(--line);background:rgba(255,255,255,.55);transition:.25s}.article-card-large:hover{transform:translateY(-5px);background:var(--white);box-shadow:var(--shadow)}.article-category{display:inline-flex;align-self:flex-start;padding:5px 10px;color:var(--accent-deep);border-radius:99px;background:var(--accent-pale);font-size:11px;font-weight:800}.article-card-large h2{margin:28px 0 16px;color:var(--primary-deep);font-family:var(--serif);font-size:25px;font-weight:600;line-height:1.55}.article-card-large p{color:var(--ink-soft);font-size:14px}.article-card-large i{margin-top:auto;color:var(--accent-deep);font-style:normal;font-size:13px;font-weight:800}.list-end{margin:40px 0 0;color:var(--ink-soft);font-size:13px;text-align:center}
.article-hero{padding:105px 0 80px;background:linear-gradient(135deg,var(--paper),var(--mist))}.article-hero h1{margin:22px 0 14px;color:var(--primary-deep);font-family:var(--serif);font-size:clamp(40px,5vw,63px);font-weight:600;line-height:1.42}@media(min-width:761px){.article-hero h1.article-title-operation-gap{font-size:clamp(40px,4.3vw,58px);white-space:nowrap}.article-hero h1.article-title-maker-site{font-size:clamp(38px,4vw,54px);white-space:nowrap}}.article-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 24px;color:var(--ink-soft);font-size:12px}.article-meta time{font-variant-numeric:tabular-nums}.article-lead{color:var(--ink-soft);font-size:17px;line-height:2}.article-layout{display:grid;grid-template-columns:230px minmax(0,760px);justify-content:center;gap:75px;padding-top:90px;padding-bottom:115px}.article-toc{position:sticky;top:120px;align-self:start;display:grid;border-top:2px solid var(--primary)}.article-toc p{margin:0;padding:17px 0;border-bottom:1px solid var(--line);font-weight:800}.article-toc a{padding:13px 0;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:12px}.article-content section{scroll-margin-top:120px;margin-bottom:70px}.article-content h2{margin-bottom:25px;color:var(--primary-deep);font-family:var(--serif);font-size:31px;font-weight:600;line-height:1.55}.article-content h3{margin:35px 0 12px;color:var(--primary-deep);font-size:19px}.article-content p{color:var(--ink-soft);font-size:16px;line-height:2.1}.article-related{margin-top:90px;padding:35px;background:var(--mist)}.article-related h2{font-size:24px}.article-related a{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}
.contact-page-grid{display:grid;grid-template-columns:1fr 350px;gap:75px}.contact-form{display:grid;gap:31px}.form-row label{display:block;margin-bottom:10px;color:var(--primary-deep);font-weight:800}.required,.optional{display:inline-flex;margin-left:8px;padding:2px 7px;border-radius:3px;font-size:10px}.required{color:var(--white);background:var(--accent-deep)}.optional{color:var(--ink-soft);background:var(--paper-deep)}.form-row input,.form-row select,.form-row textarea{width:100%;padding:15px 16px;color:var(--ink);border:1px solid var(--line);border-radius:3px;background:var(--white);font:inherit}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:3px solid rgba(94,155,143,.18);border-color:var(--accent)}.consent{display:flex;align-items:flex-start;gap:12px;padding:20px;background:var(--mist);font-size:13px}.consent input{margin-top:5px}.consent a{color:var(--accent-deep);text-decoration:underline}.form-submit{width:auto;justify-self:start;border:0}.contact-aside{position:sticky;top:120px;align-self:start;padding:35px;background:var(--primary);color:rgba(255,255,255,.75)}.contact-aside h2{color:var(--white);font-family:var(--serif);font-size:28px;font-weight:600}
.contact-aside-title{font-size:24px!important;white-space:nowrap}.contact-mail{display:block;margin:25px 0;padding:15px 0;color:var(--white);border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);font-size:15px}.contact-aside .small-note{color:rgba(255,255,255,.6)}
.confirm-table{margin:0;border-top:1px solid var(--line)}.confirm-table div{display:grid;grid-template-columns:210px 1fr;padding:22px;border-bottom:1px solid var(--line)}.confirm-table dt{font-weight:800}.confirm-table dd{margin:0;color:var(--ink-soft)}.form-actions,.status-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:35px}.prototype-note{margin-top:25px;color:var(--ink-soft);font-size:12px}.status-page{max-width:800px;margin:0 auto;padding:120px 30px;text-align:center}.status-symbol{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 30px;color:var(--white);border-radius:50%;background:var(--accent);font-size:28px}.status-page .eyebrow{justify-content:center}.status-page h1{color:var(--primary-deep);font-family:var(--serif);font-size:42px;font-weight:600}.status-copy{color:var(--ink-soft)}.status-actions{justify-content:center}
.notice-empty{min-height:450px}.public-notice-box{padding:65px;border:1px solid var(--line);background:var(--white);text-align:center}.public-notice-box>span{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 25px;color:var(--accent-deep);border:1px solid var(--accent);border-radius:50%;font-family:var(--serif);font-size:22px}.public-notice-box h2{color:var(--primary-deep);font-family:var(--serif);font-size:28px;font-weight:600}.public-notice-box p{margin:0;color:var(--ink-soft)}
.legal-layout{display:grid;grid-template-columns:250px minmax(0,760px);justify-content:center;gap:70px}.legal-layout aside{position:sticky;top:120px;align-self:start;display:grid}.legal-layout aside p{margin:0;padding:13px 0;border-bottom:2px solid var(--primary);font-weight:800}.legal-layout aside a{padding:9px 0;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:11px}.legal-content>p:first-child{margin-bottom:55px;color:var(--ink-soft);font-size:16px;line-height:2}.legal-content section{scroll-margin-top:120px;margin-bottom:45px}.legal-content h2{margin-bottom:13px;color:var(--primary-deep);font-size:21px}.legal-content p{color:var(--ink-soft);line-height:2}.policy-date{margin-top:75px;padding-top:20px;border-top:1px solid var(--line);font-size:13px}
.system-page .site-header,.system-page .site-footer{display:none}.standalone-status{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:100vh;padding:50px 25px;text-align:center;background:linear-gradient(145deg,var(--paper),var(--mist))}.standalone-status .wordmark{margin-bottom:80px}.standalone-code{color:rgba(35,72,91,.15);font-family:var(--serif);font-size:clamp(70px,13vw,170px);line-height:1}.standalone-status h1{margin:25px 0 15px;color:var(--primary-deep);font-family:var(--serif);font-size:38px;font-weight:600}.standalone-status>p{max-width:650px;color:var(--ink-soft)}
@media(max-width:1000px){.contact-grid{grid-template-columns:1fr;gap:28px}.split-reading{grid-template-columns:150px 1fr;gap:55px}.scope-grid.four,.goal-grid{grid-template-columns:repeat(2,1fr)}.ability-grid{grid-template-columns:repeat(2,1fr)}.ability-grid article:last-child{grid-column:1/-1}.article-card-grid{grid-template-columns:1fr}.article-card-large{min-height:auto}.contact-page-grid{grid-template-columns:1fr}.contact-aside{position:static}.book-intro-grid{grid-template-columns:230px 1fr;gap:55px}}
@media(max-width:820px){.team-layout{grid-template-columns:1fr}}
@media(max-width:760px){.contact-aside-title{font-size:22px!important}.breadcrumbs{width:calc(100% - 36px);padding-top:15px;padding-bottom:15px}.page-hero{padding:68px 0 75px}.page-hero h1{font-size:39px}.page-lead{font-size:14px}.split-reading{grid-template-columns:1fr;gap:15px}.sticky-label{position:static}.index-number{display:none}.number-card-grid,.number-card-grid.four,.cycle-detail-grid,.scope-grid,.scope-grid.four,.goal-grid,.boundary-grid,.boundary-grid.four,.activity-detail-list,.framework-grid,.contents-list,.reader-grid,.team-layout,.book-intro-grid{grid-template-columns:1fr}.number-card-grid article{min-height:auto}.scope-grid article{padding:25px}.compare-table>div{grid-template-columns:1fr}.compare-table span+span{border-left:0}.compare-table span{border-bottom:1px solid var(--line)}.compare-table .compare-head span:last-child{border-top:1px solid rgba(255,255,255,.2)}.responsibility-list article{grid-template-columns:38px 1fr}.responsibility-list p{grid-column:2}.ability-grid{grid-template-columns:1fr}.ability-grid article:last-child{grid-column:auto}.field-detail{padding:28px 22px}.field-detail-body,.field-focus{grid-template-columns:1fr;gap:24px}.field-detail h2{font-size:28px}.book-large-mark{width:190px;margin:0 auto}.contents-list li:nth-child(odd){border-right:0}.article-layout,.legal-layout{grid-template-columns:1fr;padding-top:60px;gap:40px}.article-toc,.legal-layout aside{position:static}.article-toc a,.legal-layout aside a{display:none}.article-hero{padding:75px 0 55px}.article-hero h1{font-size:38px}.contact-page-grid{gap:40px}.confirm-table div{grid-template-columns:1fr;gap:8px}.form-actions .button,.status-actions .button{width:100%}.public-notice-box{padding:45px 22px}.info-table div{grid-template-columns:1fr;gap:8px}.activity-detail-list article{padding:30px 24px}.next-page{padding:35px 25px}.reading-copy blockquote{padding:23px;font-size:17px}.standalone-status .wordmark{margin-bottom:55px}.standalone-code{max-width:100%;font-size:clamp(42px,12vw,70px);letter-spacing:-.02em;overflow-wrap:anywhere}.standalone-status h1{font-size:31px}}

/* Step 5: secure contact form states */
.form-error-summary{margin:0 0 34px;padding:24px 26px;border-left:4px solid #a74f4f;background:#fff5f3;color:#713838}.form-error-summary h2{margin:0 0 10px;font-size:18px}.form-error-summary ul{margin:0;padding-left:20px}.form-error-summary a{color:inherit;text-decoration:underline}.field-error{margin:8px 0 0;color:#9b4040;font-size:13px;font-weight:700}.form-help{margin:8px 0 0;color:var(--ink-soft);font-size:12px}.form-row [aria-invalid="true"]{border-color:#b45555;background:#fffafa}.consent[aria-invalid="true"],.consent:has(input[aria-invalid="true"]){outline:2px solid rgba(180,85,85,.45)}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.preserve-lines{white-space:normal;overflow-wrap:anywhere}.form-actions form{margin:0}.form-actions form .button{height:100%;border:0}.compact-status{padding-top:85px;padding-bottom:100px}.status-symbol-error{background:#a75a55}
/* Contact thanks: keep the completion heading on one line on desktop. */
.contact-thanks-page .page-hero h1{max-width:none;font-size:clamp(43px,4.2vw,56px);white-space:nowrap}
@media(max-width:760px){.contact-thanks-page .page-hero h1{font-size:39px;white-space:normal}}
.button:disabled{cursor:wait;opacity:.68;pointer-events:none;transform:none;box-shadow:none}

/* Keep the final item balanced when the home field list has an odd number of entries. */
@media(min-width:761px){.field-list a:last-child:nth-child(odd){grid-column:1/-1;border-right:0}}


/* Visual QA fixes (2026-09-10): V-01 through V-05 only. */
@media (max-width: 760px) {
  /* V-02: keep table-of-contents links usable on mobile. */
  .article-toc a,
  .legal-layout aside a { display: block; }

  /* V-03: preserve column ownership when comparison tables stack. */
  .compare-table .compare-head { display: none; }
  .compare-table > div:not(.compare-head) { border-bottom: 1px solid var(--line); }
  .compare-table > div:not(.compare-head):last-child { border-bottom: 0; }
  .compare-table > div:not(.compare-head) span {
    display: grid;
    gap: 6px;
    border-bottom: 0;
  }
  .compare-table > div:not(.compare-head) span + span {
    border-top: 1px dashed var(--line);
    border-left: 0;
  }
  .compare-table > div:not(.compare-head) span::before {
    content: attr(data-label);
    color: var(--accent-deep);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
  }

  /* V-04: keep the two intended cover lines intact on narrow screens. */
  .book-large-mark { padding-right: 24px; padding-left: 24px; }
  .book-large-mark span { font-size: 28px; }
}

@media (max-width: 480px) {
  /* V-01: a single-column cycle gives the number and copy independent space. */
  .cycle { grid-template-columns: 1fr; }
  .cycle li { min-height: 118px; padding: 42px 22px 28px; }
  .cycle-no { top: 14px; left: 18px; }
  .cycle-text { font-size: 14px; }
  .cycle li::after {
    right: 50%;
    top: auto;
    bottom: -10px;
    display: grid !important;
    transform: translateX(50%) rotate(90deg);
  }
  .cycle li:last-child::after { display: none !important; }
}

/* Editorial title breaks are desktop-only. Tablet/narrow layouts use the wrapping system above. */
@media (max-width: 820px) {
  br.responsive-title-break { display: none; }
}

/* Role heading refinement (2026-09-10): keep the two long role titles on one line only when the available width supports a proper heading size. */
h2.role-single-line-title {
  white-space: nowrap;
  text-wrap: nowrap;
  letter-spacing: 0;
}

/* Phones below 520px: keep a normal heading presence and balance the title across two lines. */
@media (max-width: 519px) {
  h2.role-single-line-title {
    white-space: normal;
    text-wrap: balance;
    font-size: clamp(27px, 6vw, 31px);
  }
}

/* Wider mobile layouts: one line is feasible without reducing the heading to body-like sizing. */
@media (min-width: 520px) and (max-width: 760px) {
  h2.role-single-line-title { font-size: clamp(23px, 4.4vw, 31px); }
}

/* Tablet / compact desktop: the DEFINITION section shares width with its sticky label. */
@media (min-width: 761px) {
  h2.role-single-line-title { font-size: clamp(24px, 3.2vw, 40px); }
}


/* Heading wrapping targeted refinements (step 2, 2026-09-10). */
@media (max-width: 539px) {
  /* Keep the hero visually strong while preventing a two-character orphan at the sentence end. */
  .home-hero-title { font-size: clamp(33px, 6.85vw, 37px) !important; }

  /* Long mobile heading: preserve a heading-sized type scale and keep the predicate together. */
  .home-fields-title { font-size: clamp(27px, 7.45vw, 31px) !important; }
}

/* At the two-column TEAM breakpoint, the editorial <br> creates an orphaned 「す。」.
   Let the browser balance the line naturally until the left column has enough width. */
@media (min-width: 821px) and (max-width: 860px) {
  .role-team-title br.responsive-title-break { display: none; }
}

/* Heading phrase integrity: on very narrow screens, a 1px reduction lets protected Japanese terms fit without creating tall card titles. */
@media (max-width: 360px) {
  .cycle-detail-grid h3 { font-size: 20px; }
}


/* Final narrow-screen regression safeguard (2026-09-10).
   Grid items may otherwise honor intrinsic form/button widths at 320px and push the page a few pixels wider. */
@media (max-width: 360px) {
  .knowledge-grid > *,
  .contact-page-grid > * { min-width: 0; }
}

/* Resources download index (simplified step 2, 2026-10-11).
   Scope all refinements to this page; shared navigation/footer and other pages are unchanged. */
.resources-page .resources-hero { padding:57px 0 62px; }
.resources-page .resources-hero .eyebrow { margin-bottom:14px; }
.resources-page .resources-hero h1 { margin-bottom:19px; font-size:clamp(36px,4vw,50px); line-height:1.4; }
.resources-page .resources-hero .page-lead { max-width:800px; margin-bottom:0; font-size:14px; line-height:1.95; }
.resources-page .resources-preparing { display:inline-flex; align-items:center; gap:9px; margin:18px 0 0; padding:7px 13px; border:1px solid #e8ddc8; border-radius:6px; background:#fffaf0; color:#746044; font-size:12px; line-height:1.7; }
.resources-page .resource-status-dot { display:inline-block; flex:0 0 auto; width:7px; height:7px; border-radius:50%; background:#b58d57; }
.resources-page .section { padding-top:66px; padding-bottom:66px; }
.resources-page .section-heading { margin-bottom:26px; }
.resources-page .section-heading .eyebrow, .resources-page .resources-notes-label .eyebrow { margin-bottom:12px; }
.resources-page .section-heading h2, .resources-page .resources-notes-label h2 { margin:0; color:var(--primary-deep); font-family:var(--serif); font-size:clamp(28px,3vw,37px); font-weight:600; line-height:1.5; }
.resources-page .section-heading .section-lead { margin-top:9px; font-size:13px; line-height:1.8; }

/* Desktop: simple three-column list; each row is an individual appendix. */
.resources-page .resource-download-list { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#fff; }
.resources-page .resource-list-head { display:grid; grid-template-columns:120px minmax(0,1fr) 145px; gap:12px; padding:13px 24px; background:#eff4f1; color:#456258; font-size:12px; font-weight:800; letter-spacing:.03em; }
.resources-page .resource-list-head span:last-child { text-align:center; }
.resources-page .resource-list { margin:0; padding:0; list-style:none; }
.resources-page .resource-list-item { display:grid; grid-template-columns:120px minmax(0,1fr) 145px; align-items:center; gap:12px; min-width:0; min-height:66px; padding:15px 24px; border-top:1px solid var(--line); }
.resources-page .resource-list-item:first-child { border-top:0; }
.resources-page .resource-list-number { color:var(--accent-deep); font-size:11px; font-weight:700; white-space:nowrap; }
.resources-page .resource-list-number b { margin-left:4px; color:var(--primary-deep); font-family:var(--serif); font-size:18px; font-weight:600; }
.resources-page .resource-list-name { min-width:0; margin:0; color:var(--primary-deep); font-size:15px; font-weight:700; line-height:1.65; }
.resources-page .resource-list-status { display:inline-flex; align-items:center; justify-content:center; justify-self:center; min-width:72px; padding:4px 11px; border-radius:100px; background:#f5f1e8; color:#857053; font-size:11px; font-weight:700; white-space:nowrap; line-height:1.6; }
.resources-page .resource-list-item-split { align-items:start; background:#f8fbf9; }
.resources-page .resource-list-item-split > .resource-list-number, .resources-page .resource-list-item-split > .resource-list-name { padding-top:6px; }
.resources-page .resource-list-subforms { grid-column:2 / 4; display:grid; gap:0; min-width:0; padding:0 0 2px; }
.resources-page .resource-list-subform { display:grid; grid-template-columns:26px minmax(0,1fr) 145px; align-items:center; gap:10px; min-height:42px; border-top:1px dashed #dbe6df; }
.resources-page .resource-list-subform:first-child { border-top:0; }
.resources-page .resource-list-letter { display:grid; place-items:center; width:21px; height:21px; color:var(--accent-deep); border:1px solid #c5ddd4; border-radius:4px; font-size:11px; font-weight:800; }
.resources-page .resource-list-subform-name { min-width:0; color:var(--ink-soft); font-size:13px; font-weight:600; line-height:1.65; }

/* Notes and revision information are intentionally brief. */
.resources-page .resources-notes-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:34px; }
.resources-page .resources-notes-content { min-width:0; }
.resources-page .resources-note { display:grid; grid-template-columns:22px minmax(0,1fr); gap:13px; }
.resources-page .resources-note > span { color:var(--accent-deep); font-size:15px; font-weight:800; }
.resources-page .resources-note p { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.95; }
.resources-page .resources-notes-content > .text-link { display:inline-flex; margin:16px 22px 0 35px; gap:8px; font-size:12px; }
.resources-page .resources-notes-content > .text-link + .text-link { margin-left:0; }
.resources-page .resources-updates-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:34px; align-items:center; }
.resources-page .resources-updates-layout .section-heading { margin-bottom:0; }
.resources-page .resources-updates-empty { display:flex; align-items:center; gap:14px; padding:20px 24px; border:1px solid var(--line); border-radius:4px; background:#fff; }
.resources-page .resources-updates-icon { color:var(--accent-deep); font-size:21px; line-height:1; }
.resources-page .resources-updates-empty p { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.8; }

@media (max-width:760px) {
  .resources-page .resources-hero { padding:44px 0 48px; }
  .resources-page .resources-hero h1 { font-size:clamp(32px,6vw,40px); }
  .resources-page .section { padding-top:48px; padding-bottom:48px; }
  .resources-page .section-heading { margin-bottom:21px; }
  .resources-page .resource-list-head { grid-template-columns:75px minmax(0,1fr) 90px; padding:11px 16px; font-size:10px; }
  .resources-page .resource-list-item { grid-template-columns:75px minmax(0,1fr) 90px; gap:8px; padding:13px 16px; }
  .resources-page .resource-list-subform { grid-template-columns:24px minmax(0,1fr) 90px; gap:7px; }
  .resources-page .resources-notes-layout, .resources-page .resources-updates-layout { grid-template-columns:1fr; gap:17px; }
  .resources-page .resources-notes-content > .text-link { margin:16px 18px 0 35px; }
  .resources-page .resources-updates-layout { align-items:start; }
}
@media (max-width:520px) {
  .resources-page .resources-hero .page-lead { font-size:13px; }
  .resources-page .resource-list-head { display:none; }
  .resources-page .resource-list-item { grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; padding:14px 16px; min-height:0; }
  .resources-page .resource-list-number { grid-column:1/-1; font-size:10px; }
  .resources-page .resource-list-number b { font-size:15px; }
  .resources-page .resource-list-name { grid-column:1; grid-row:2; font-size:13px; line-height:1.6; }
  .resources-page .resource-list-item > .resource-list-status { grid-column:2; grid-row:2; align-self:center; }
  .resources-page .resource-list-item-split > .resource-list-number, .resources-page .resource-list-item-split > .resource-list-name { padding-top:0; }
  .resources-page .resource-list-item-split > .resource-list-name { grid-column:1/-1; }
  .resources-page .resource-list-subforms { grid-column:1/-1; grid-row:3; margin-top:5px; }
  .resources-page .resource-list-subform { grid-template-columns:23px minmax(0,1fr) auto; min-height:42px; gap:8px; }
  .resources-page .resource-list-subform-name { font-size:11px; }
  .resources-page .resource-list-subform .resource-list-status { min-width:61px; padding:4px 7px; font-size:10px; }
  .resources-page .resources-note { grid-template-columns:15px minmax(0,1fr); gap:9px; }
  .resources-page .resources-notes-content > .text-link { margin-left:24px; }
  .resources-page .resources-updates-empty { padding:17px; }
}

/* Step 4 (2026-10-11): homepage resources feature and book appendix referral.
   Keep the main resources library styles in the existing resources section. */
.home-resources-section { border-top:1px solid #dfe9e3; border-bottom:1px solid #dfe9e3; background:linear-gradient(125deg,#f8faf6 0%,#eef5f0 100%); }
.home-resources-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); align-items:center; gap:90px; }
.home-resources-copy h2 { margin:0 0 25px; color:var(--primary-deep); font-family:var(--serif); font-size:clamp(32px,3.4vw,48px); font-weight:600; line-height:1.55; letter-spacing:.015em; }
.home-resources-lead { max-width:610px; margin:0 0 20px; color:var(--ink-soft); font-size:15px; line-height:2.1; }
.home-resources-state,.book-resources-state { display:flex; align-items:center; gap:9px; margin:0 0 30px; color:#796343; font-size:12px; font-weight:700; }
.home-resources-state > span,.book-resources-state > span { display:inline-block; flex:0 0 7px; width:7px; height:7px; border-radius:50%; background:#c29d5a; }
.home-resources-visual { min-width:0; padding:28px 30px 18px; border:1px solid #d5e2dc; border-radius:4px 48px 4px 4px; background:#fff; box-shadow:0 22px 65px rgba(35,72,91,.07); }
.home-resources-visual-head { display:flex; justify-content:space-between; gap:12px; padding:0 0 19px; border-bottom:2px solid var(--primary); color:var(--accent-deep); font-size:11px; font-weight:800; letter-spacing:.07em; }
.home-resources-visual-head span:last-child { color:var(--ink-soft); font-size:11px; font-weight:600; letter-spacing:0; }
.home-resources-examples { margin:0; padding:0; list-style:none; }
.home-resources-examples li { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:18px; padding:21px 3px; border-bottom:1px solid var(--line); }
.home-resources-example-no { align-self:start; padding-top:3px; color:var(--accent-deep); font-family:var(--serif); font-size:13px; }
.home-resources-examples strong,.home-resources-examples small { display:block; }
.home-resources-examples strong { margin-bottom:3px; color:var(--primary-deep); font-size:16px; }
.home-resources-examples small { color:var(--ink-soft); font-size:12px; }
.home-resources-visual-foot { padding:16px 3px 0; color:var(--ink-soft); font-size:11px; }
.book-resources-cta { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:55px; margin-top:53px; padding:40px 48px; border-left:4px solid var(--accent); background:linear-gradient(115deg,#f1f6f2,#f8faf7); }
.book-resources-heading .eyebrow { margin-bottom:17px; }
.book-resources-heading h3 { margin:0; color:var(--primary-deep); font-family:var(--serif); font-size:clamp(24px,2.5vw,32px); font-weight:600; line-height:1.6; }
.book-resources-content p:not(.book-resources-state) { margin:0 0 14px; color:var(--ink-soft); font-size:14px; line-height:2; }
.book-resources-content .book-resources-state { margin:0 0 24px; }
@media (max-width:1000px) {
  .home-resources-grid { gap:40px; }
  .book-resources-cta { gap:35px; padding:36px 33px; }
}
@media (max-width:760px) {
  .home-resources-grid,.book-resources-cta { grid-template-columns:1fr; }
  .home-resources-grid { gap:35px; }
  .book-resources-cta { margin-top:38px; gap:19px; padding:30px 24px; }
  .home-resources-visual { padding:24px 25px 15px; }
}
@media (max-width:620px) {
  .home-resources-copy h2 { font-size:clamp(29px,6.9vw,38px); }
  .home-resources-copy h2 .title-keep { white-space:normal; }
  .home-resources-lead { font-size:14px; }
  .home-resources-copy .button { width:100%; }
  .home-resources-visual { padding:22px 20px 13px; border-top-right-radius:34px; }
  .home-resources-examples li { gap:10px; grid-template-columns:24px minmax(0,1fr); }
  .home-resources-examples strong { font-size:14px; }
  .home-resources-examples small { font-size:11px; }
  .book-resources-heading h3 .title-keep { white-space:normal; }
  .book-resources-content .button { width:100%; }
}
