/* Japanese brand-review layer. GCC source and production releases stay unchanged. */
:root {
  --navy:#050d29;
  --navy-soft:#152444;
  --gold:#eed99e;
  --gold-dark:#796132;
  --champagne-gradient:linear-gradient(115deg,#c6b186 0%,#feeaa3 48%,#ddbf79 100%);
  --night-gradient:radial-gradient(ellipse at 70% 0%,#20345b 0%,#0d1b3c 38%,#050d29 80%);
  --dark-line:rgba(238,217,158,.24);
  --jp-type-body:1.125rem;
  --jp-type-label:1rem;
  --jp-type-note:.9375rem;
  --jp-type-hero:clamp(2.125rem,3.6vw,3.3rem);
  --jp-type-section:2.25rem;
  --jp-type-item:1.625rem;
  --jp-type-small-title:1.375rem;
  --jp-type-lead:1.25rem;
  --muted:#43546a;
}
.site-header { background:rgba(5,13,35,.98); border-color:var(--dark-line); color:#f5f1e9; }
.header-inner { max-width:1536px; padding-block:8px; gap:24px; }
.brand { margin-right:auto; }
.jp-brand-window { display:block; position:relative; width:228px; height:78px; overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent); }
.brand .jp-brand-window img { position:absolute; max-width:none; width:324px; height:auto; left:-49px; top:-46px; }
.site-nav { gap:22px; font-size:.9375rem; }
.site-nav a:not(.nav-cta):hover { color:var(--gold); }
.site-nav .nav-cta { border:1px solid var(--dark-line); background:transparent; gap:16px; padding:10px 17px; }
.site-nav .nav-cta:hover { background:#1a2a4a; }
.header-gcc { display:inline-flex; flex-shrink:0; align-items:center; gap:8px; min-height:44px; color:var(--gold); font-size:.875rem; text-decoration:none; }
.header-gcc-long { display:none; }
.menu-toggle { color:#f5f1e9; }
.hero { max-width:none; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); min-height:0; background:var(--night-gradient); }
.hero-content { padding:64px 48px 54px max(var(--gutter),calc((100vw - 1224px)/2)); position:relative; z-index:1; }
.hero .eyebrow { font-size:.875rem; letter-spacing:.18em; margin-bottom:14px; }
.hero-kicker { color:#dfd5c0; margin-bottom:24px; font-size:1rem; }
.hero h1 { font-size:clamp(2.2rem,3.6vw,3.3rem); line-height:1.55; letter-spacing:.035em; }
.gold-text { background:var(--champagne-gradient); background-clip:text; -webkit-background-clip:text; color:transparent; }
.hero-lead { font-size:1.125rem; margin-top:25px; color:#f5f1e9; }
.hero-description { font-size:1rem; color:#d7deea; margin-top:16px; max-width:33em; }
.hero-actions { gap:20px; margin-top:28px; }
.hero-actions .button { padding:15px 20px; gap:18px; }
.button-gold { background:var(--champagne-gradient); color:#08112b; }
.button-gold:hover { background:#f2dfae; }
.hero-actions .text-link { font-size:.9375rem; }
.hero-gcc-entry { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:21px; margin-top:30px; border-top:1px solid var(--dark-line); text-decoration:none; max-width:480px; color:var(--gold); font-size:1.0625rem; }
.hero-gcc-entry small { display:block; color:#c5cfdf; font-size:.875rem; letter-spacing:.09em; margin-bottom:3px; }
.hero-gcc-entry>span:last-child { font-size:1.5rem; }
.hero-gcc-entry:hover { color:#fff5d6; }
.hero-visual { margin:40px 0 40px; min-height:540px; border-block:1px solid var(--dark-line); }
.hero-visual>img { object-position:46% center; }
.hero-visual.heritage-hero>img { object-position:58% center; }
.hero-visual:after { inset:0; background:linear-gradient(180deg,transparent 28%,rgba(4,10,28,.15) 48%,rgba(4,10,28,.96) 100%); }
.hero-visual.heritage-hero:after { background:linear-gradient(180deg,transparent 45%,rgba(4,10,28,.12) 65%,rgba(4,10,28,.92) 100%); }
.hero-visual figcaption { bottom:32px; left:34px; right:30px; gap:16px; }
.hero-visual figcaption>span:not(.photo-label) { font-family:var(--serif); font-size:clamp(1.35rem,2vw,1.9rem); line-height:1.65; }
.hero-visual figcaption small { max-width:30em; font-size:.875rem; color:#d8dfeb; }
.photo-label { font-size:.875rem; color:var(--gold); }
.gcc-note { background:#07112b; border-color:var(--dark-line); color:#eed99e; }
.gcc-note>.container { padding-block:21px; }
.gcc-note p { color:#c4cede; }
.approach { background:radial-gradient(ellipse at 0% 100%,#17294d 0%,#0a1734 40%,#07112b 82%); color:#f5f1e9; }
.approach .eyebrow { color:var(--gold); }
.approach-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:end; }
.approach-heading>p { color:#cdd6e4; font-size:1.0625rem; max-width:31em; }
.approach h2 { font-size:clamp(1.8rem,2.7vw,2.6rem); line-height:1.65; }
.strategy-route { list-style:none; padding:0; margin:52px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--dark-line); }
.strategy-route li { padding:34px 32px 0 0; position:relative; min-width:0; }
.strategy-route li+li { padding-left:32px; border-left:1px solid var(--dark-line); }
.strategy-route li:last-child { padding-right:0; }
.strategy-route li+li:before { content:'→'; position:absolute; top:-17px; left:-17px; width:34px; text-align:center; color:var(--gold); background:#0a1734; line-height:34px; }
.strategy-route .eyebrow { font-size:.875rem; letter-spacing:.07em; margin-bottom:16px; }
.strategy-route h3 { font-size:1.55rem; }
.strategy-route .route-question { font-size:1.0625rem; color:#f1deaf; margin-top:17px; }
.strategy-route li>p:not(.eyebrow):not(.route-question) { font-size:1rem; color:#ccd6e5; margin-top:15px; }
.route-wall { display:block; margin-top:24px; color:#acbbd0; font-size:.875rem; }
.approach-foot { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:32px; margin-top:36px; border-top:1px solid var(--dark-line); }
.approach-foot>p { font-family:var(--serif); font-size:1.2rem; color:#eee4ce; }
.approach-foot .text-link { color:#eddbac; }
.projects { background:#fafbfD; }
.projects>.container>.section-heading { display:grid; grid-template-columns:1fr 1fr; gap:0 80px; align-items:end; }
.projects>.container>.section-heading .eyebrow { grid-column:1/-1; }
.projects>.container>.section-heading .section-intro { margin:0; }
.hospitality-case { gap:64px; padding-top:42px; }
.hospitality-case .case-visual figcaption { font-size:.875rem; }
.hospitality-case .case-visual { display:block; min-width:0; }
.dashi-concept-image { margin-top:28px; }
.dashi-concept-image img { width:100%; aspect-ratio:4/3; object-fit:contain; }
.dashi-concept-image figcaption,.illustrated-concepts figcaption { font-size:.875rem; line-height:1.8; color:var(--muted); margin-top:12px; }
.case-visual .hospitality-overview-image img { aspect-ratio:4/3; object-fit:contain; }
.japanese-craft-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:28px; }
.japanese-craft-pair img { aspect-ratio:3/2; object-fit:cover; }
.japanese-craft-pair figcaption { line-height:1.7; }
.case-visual .craft-note { margin-top:16px; }
.illustrated-concepts { gap:40px; padding-top:40px; margin-top:52px; }
.illustrated-concepts article { min-width:0; }
.illustrated-concepts figure>img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.illustrated-concepts figure>.jp-reversi-scene { object-position:50% 60%; }
.illustrated-concept-copy { margin-top:25px; }
.other-concepts .illustrated-concept-copy .eyebrow { font-size:.875rem; letter-spacing:.09em; color:var(--gold-dark); margin:0 0 12px; }
.illustrated-concept-copy h4 { font-size:clamp(1.4rem,2vw,1.9rem); line-height:1.35; overflow-wrap:anywhere; }
.other-concepts .concept-line { font-family:var(--serif); font-size:1.1875rem; color:var(--ink); margin-top:16px; }
.case-progress { border-top:2px solid #bb9a5a; background:#eef1f5; }
.pipeline-heading-intro { padding-top:48px; border-top:1px solid #cbd3df; margin-top:72px; }
.pipeline-heading-intro h3 { font-size:clamp(1.6rem,2.6vw,2.3rem); line-height:1.6; }
.pipeline-heading-intro>p:last-child { color:var(--muted); font-size:1rem; margin-top:20px; max-width:44em; }
.pipeline-case { grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr); gap:56px; padding:48px 0; align-items:start; }
.pipeline-heading { min-width:0; }
.pipeline-heading h3 { font-size:1.9rem; margin-bottom:17px; }
.pipeline-heading .eyebrow { font-size:.875rem; }
.pipeline-image { margin-top:25px; }
.pipeline-image img { width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
.pipeline-image figcaption { font-size:.875rem; line-height:1.8; color:var(--muted); margin-top:12px; }
.pipeline-body { padding-top:38px; min-width:0; }
.pipeline-body h4 { font-size:1.55rem; line-height:1.75; margin-bottom:24px; }
.case-audience { font-size:.875rem; margin-top:22px; color:var(--muted); }
.case-evidence { background:#eef1f5; padding:25px 27px; border-left:2px solid #b3955a; }
.case-evidence>div { grid-template-columns:86px 1fr; gap:16px; }
.case-evidence dt { color:#70592e; }
.services { background:var(--night-gradient); }
.services-grid .service-scope { color:#ead4a2; }
.founder { background:linear-gradient(120deg,#182c4b,#0d1b36 55%,#07122c); color:#f5f1e9; }
.founder .eyebrow { color:var(--gold); letter-spacing:.1em; }
.founder .founder-role,.founder .founder-copy>p:not(.eyebrow):not(.founder-name):not(.founder-role) { color:#ccd6e5; }
.founder .text-link { color:var(--gold); }
.founder figure { border:1px solid var(--dark-line); padding:10px; background:#0b1730; }
.founder-experience { display:flex; gap:30px; align-items:center; margin-top:28px; padding-block:23px; border-block:1px solid var(--dark-line); }
.founder-experience strong { color:var(--gold); font:4.7rem/1 Georgia,serif; }
.founder-experience strong>span { font:1.1rem/1 var(--serif); margin-left:7px; }
.founder-experience>p { font-size:1rem; color:#ddd5c4; }
.contact { background:var(--night-gradient); }
.contact .required-mark { color:#796132; }
.site-footer { border-top:1px solid var(--dark-line); background:#050d22; }
@media(min-width:1440px) { .header-gcc-long { display:inline; } }
@media(max-width:1280px) {
  .header-inner { flex-wrap:wrap; gap:0 20px; }
  .header-gcc { margin-left:auto; }
  .brand { margin-right:0; }
  .menu-toggle { display:flex; align-items:center; gap:10px; background:transparent; border:1px solid var(--dark-line); min-height:44px; padding:8px 10px; font-size:.875rem; }
  .menu-lines { width:16px; height:10px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; }
  .site-nav { order:5; width:100%; flex-wrap:wrap; padding:15px 0; gap:8px 24px; }
  .site-nav a { min-height:44px; padding-block:8px; }
  .js-enabled .site-nav { display:none; }
  .js-enabled .site-nav.is-open { display:flex; }
}
@media(max-width:1100px) {
  .hero-content { padding:48px 34px 44px var(--gutter); }
  .hero h1 { font-size:clamp(2rem,3.7vw,2.8rem); }
  .hero-visual { margin-block:30px; }
  .approach-heading { gap:40px; }
  .strategy-route li { padding-right:23px; }
  .strategy-route li+li { padding-left:23px; }
  .strategy-route h3 { font-size:1.3rem; }
  .pipeline-case { gap:35px; }
  .case-evidence>div { display:block; }
  .case-evidence dt { margin-bottom:8px; }
}
@media(max-width:860px) {
  .hero { grid-template-columns:1fr; }
  .hero-content { width:100%; max-width:none; padding:48px var(--gutter) 36px; }
  .hero h1 { font-size:clamp(2.2rem,6vw,3.5rem); }
  .hero-description { max-width:42em; }
  .hero-gcc-entry { max-width:560px; }
  .hero-visual { min-height:0; height:auto; margin:0 var(--gutter) 40px; aspect-ratio:4/3; }
  .hero-visual>img { object-fit:contain; object-position:center; }
  .hero-visual figcaption { left:28px; bottom:25px; }
  .approach-heading { grid-template-columns:1fr; gap:24px; }
  .approach-heading>p { max-width:42em; }
  .projects>.container>.section-heading { gap:0 35px; }
  .hospitality-case { gap:35px; }
  .pipeline-heading { display:block; }
  .pipeline-heading .eyebrow { margin-bottom:10px; }
  .pipeline-heading h3 { margin-bottom:17px; }
  .pipeline-case { grid-template-columns:minmax(0,.9fr) minmax(0,1fr); gap:28px; }
  .pipeline-body h4 { font-size:1.3rem; }
}
@media(max-width:720px) {
  :root { --gutter:22px; }
  .header-inner { padding-block:8px; gap:0 14px; }
  .jp-brand-window { width:145px; height:52px; }
  .brand .jp-brand-window img { width:207px; height:auto; left:-31px; top:-27px; }
  .header-gcc { gap:7px; font-size:.9375rem; }
  .header-inner .menu-toggle { padding:8px; gap:0; font-size:.875rem; }
  .menu-lines { display:none; }
  .hero-content { padding:36px var(--gutter) 30px; }
  .hero h1 { font-size:clamp(1.95rem,6.9vw,2.9rem); line-height:1.65; }
  .hero-kicker { font-size:.9375rem; margin-bottom:20px; }
  .hero-lead { font-size:1.0625rem; margin-top:24px; }
  .hero-actions { gap:20px; }
  .hero-actions .button { max-width:none; width:100%; }
  .hero-gcc-entry { margin-top:24px; font-size:1rem; }
  .hero-visual { margin:0 var(--gutter) 28px; }
  .hero-visual figcaption { left:20px; right:18px; bottom:18px; gap:8px; }
  .hero-visual figcaption>span:not(.photo-label) { font-size:1.25rem; }
  .hero-visual .photo-label { display:none; }
  .hero-visual figcaption small { font-size:.875rem; line-height:1.7; }
  .gcc-note>.container { padding-block:18px; }
  .approach h2 { font-size:clamp(1.55rem,5.3vw,2rem); }
  .approach h2 .gold-text { display:inline; }
  .approach-heading>p { font-size:1rem; }
  .strategy-route { grid-template-columns:1fr; margin-top:32px; }
  .strategy-route li,.strategy-route li+li,.strategy-route li:last-child { padding:28px 0; border-left:0; }
  .strategy-route li+li { border-top:1px solid var(--dark-line); }
  .strategy-route li+li:before { content:'↓'; left:auto; right:8px; }
  .strategy-route h3 { font-size:1.5rem; }
  .strategy-route .eyebrow { margin-bottom:10px; }
  .route-wall { margin-top:17px; }
  .approach-foot { flex-direction:column; align-items:flex-start; margin-top:0; gap:23px; }
  .approach-foot>p { font-size:1.0625rem; }
  .projects>.container>.section-heading { display:block; }
  .projects>.container>.section-heading .section-intro { margin-top:24px; }
  .dashi-concept-image { margin-top:22px; }
  .japanese-craft-pair { gap:14px; margin-top:24px; }
  .illustrated-concepts { gap:36px; padding-top:30px; margin-top:36px; }
  .illustrated-concept-copy { margin-top:20px; }
  .illustrated-concept-copy h4 { font-size:1.55rem; }
  .pipeline-heading-intro { margin-top:46px; padding-top:32px; }
  .pipeline-case { grid-template-columns:1fr; padding-block:34px; gap:24px; }
  .pipeline-heading h3 { font-size:1.6rem; }
  .pipeline-body { padding-top:0; }
  .pipeline-body h4 { font-size:1.4rem; margin-bottom:18px; }
  .pipeline-image { margin-top:22px; }
  .case-evidence { padding:22px; }
  .founder-experience { gap:25px; }
  .founder-experience strong { font-size:4rem; }
  .founder-experience>p { font-size:.9375rem; }
}
@media(max-width:380px) {
  :root { --gutter:18px; }
  .header-inner { gap:0 8px; }
  .jp-brand-window { width:124px; height:47px; }
  .brand .jp-brand-window img { width:183px; left:-29px; top:-24px; }
  .hero-visual { margin-inline:0; aspect-ratio:4/3; }
  .hero-visual figcaption { left:18px; }
  .hero-visual figcaption>span:not(.photo-label) { font-size:1.125rem; }
  .founder-experience { gap:16px; }
}
@media(forced-colors:active) { .gold-text { background:none; color:CanvasText; } }

/* Business-first Japanese review: purpose and support before product examples. */
.hero-map { min-width:0; align-self:center; margin:40px max(var(--gutter),calc((100vw - 1224px)/2)) 40px 0; padding:27px; border:1px solid var(--dark-line); background:linear-gradient(145deg,rgba(31,50,85,.65),rgba(5,13,35,.45)); }
.hero-map h2 { font-family:var(--sans); font-size:1.125rem; letter-spacing:.02em; line-height:1.7; color:#f5efdf; }
.hero-map>img { width:100%; margin-top:14px; }
.hero-map figcaption { font-size:.875rem; line-height:1.8; color:#bfcbdd; margin-top:18px; }
.hero-map figcaption a { display:inline-block; color:#d9c89e; margin-top:5px; }
.map-countries { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 20px; list-style:none; margin:14px 0 0; padding:18px 0 0; border-top:1px solid var(--dark-line); font-size:.875rem; line-height:1.8; color:#e2e6ee; }
.map-countries li { min-width:0; }
.map-countries span { display:inline-block; min-width:2.8em; color:var(--gold); font-family:Arial,sans-serif; font-weight:600; margin-right:5px; }
.fit { background:#fafbfd; }
.fit-list strong { display:block; font-weight:600; font-size:1.125rem; margin-bottom:9px; }
.fit-list li>span { display:block; color:var(--muted); font-size:1rem; }
.services { background:linear-gradient(130deg,#f5f6f8,#e9eef4); color:var(--ink); }
.services .eyebrow { color:var(--gold-dark); }
.services .section-intro { color:var(--muted); }
.responsibility-list { border-top:2px solid #a98b53; }
.responsibility-list article { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1fr); gap:32px; padding:34px 0; border-bottom:1px solid #c8d1dd; }
.responsibility-list h3 { font-size:1.375rem; line-height:1.75; padding-right:8px; }
.responsibility-list article>div { min-width:0; padding-left:28px; border-left:1px solid #c8d1dd; }
.responsibility-list h4 { font-family:var(--sans); font-size:1rem; font-weight:600; color:#70582a; margin-bottom:12px; }
.responsibility-list p { font-size:1rem; color:#43546a; }
.services .service-footnote { border-top:0; padding-top:0; margin-top:28px; color:#536172; }
.case-work-log { margin:0; }
.case-work-log>div { margin-top:23px; padding-top:22px; border-top:1px solid var(--line); }
.case-work-log dt { color:var(--gold-dark); font-size:.9375rem; font-weight:600; margin-bottom:9px; }
.case-work-log dd { margin:0; font-size:1rem; color:var(--muted); }
.case-design-examples { margin-top:38px; border:1px solid #c2cbd7; background:#f4f6f8; }
.case-design-examples>summary { position:relative; padding:24px 64px 24px 28px; font-size:1.125rem; font-weight:600; color:var(--ink); min-height:72px; }
.case-design-examples>summary>span { display:block; font-size:.875rem; line-height:1.8; font-weight:400; color:var(--muted); margin-top:6px; }
.case-design-examples>summary:after { content:'＋'; position:absolute; right:27px; top:24px; color:var(--gold-dark); font-size:1.5rem; line-height:1.5; }
.case-design-examples[open]>summary:after { content:'−'; }
.case-design-examples>summary:hover { background:#e9eef4; }
.case-design-examples[open]>summary { border-bottom:1px solid #c8d1dd; }
.case-design-content { padding:34px 32px; }
.dashi-example { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:center; }
.dashi-example .concept-feature,.dashi-example .dashi-concept-image { margin:0; }
.case-material-reference { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:36px; align-items:center; padding-top:34px; margin-top:40px; border-top:1px solid var(--line); }
.case-material-reference h4 { font-family:var(--serif); font-size:1.25rem; font-weight:500; line-height:1.8; margin-bottom:15px; }
.case-material-reference p { color:var(--muted); font-size:1rem; }
.case-material-reference .japanese-craft-pair { margin:0; }
.case-material-reference figcaption { font-size:.875rem; color:var(--muted); margin-top:10px; }
@media(max-width:1100px) {
  .hero-map { padding:20px; margin-block:30px; }
  .map-countries { gap:9px 12px; }
  .responsibility-list article { gap:24px; }
  .responsibility-list article>div { padding-left:20px; }
}
@media(max-width:860px) {
  .hero-map { width:calc(100% - var(--gutter)*2); max-width:620px; margin:0 auto 40px; padding:26px; }
  .responsibility-list article { grid-template-columns:1fr 1fr; gap:22px 30px; }
  .responsibility-list h3 { grid-column:1/-1; font-size:1.5rem; }
  .responsibility-list article>div:first-of-type { border-left:0; padding-left:0; }
  .hospitality-case .case-progress { margin-top:26px; }
  .case-material-reference { grid-template-columns:1fr; gap:25px; }
}
@media(max-width:720px) {
  .hero-map { margin-bottom:28px; padding:20px 16px; }
  .hero-map h2 { font-size:1rem; }
  .hero-map figcaption { margin-top:14px; }
  .map-countries { gap:8px 12px; font-size:.875rem; }
  .map-countries span { display:block; margin-right:0; }
  .fit-list strong { font-size:1.0625rem; }
  .responsibility-list article { grid-template-columns:1fr; padding-block:27px; gap:21px; }
  .responsibility-list h3 { grid-column:auto; font-size:1.35rem; }
  .responsibility-list article>div { padding-left:0; border-left:0; }
  .responsibility-list article>div:last-child { padding-top:18px; border-top:1px dashed #c8d1dd; }
  .case-design-examples { margin-top:28px; }
  .case-design-examples>summary { padding:22px 50px 22px 20px; font-size:1rem; }
  .case-design-examples>summary:after { right:18px; top:20px; }
  .case-design-content { padding:26px 20px; }
  .dashi-example { grid-template-columns:1fr; gap:25px; }
  .case-material-reference { padding-top:28px; margin-top:32px; }
}
@media(max-width:380px) {
  .hero-map { padding-inline:13px; }
  .case-design-content { padding-inline:16px; }
  .case-material-reference .japanese-craft-pair { grid-template-columns:1fr; gap:23px; }
}

/* GPT planning review: commercial rationale and an early, bounded case example. */
/* GPT-coordinated Phase revision: decisions are visible at every stage. */
.phase-process { background:linear-gradient(140deg,#fafbfd,#f0f3f7); }
.phase-process .section-intro { max-width:44em; }
.phase-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; list-style:none; margin:0; padding:0; }
.phase-overview-card { position:relative; display:flex; flex-direction:column; min-width:0; border:1px solid #c8d1dd; border-top:3px solid #af925b; background:#fff; }
.phase-overview-heading { padding:22px 20px 0; }
.phase-overview .phase-label { min-height:2.2em; }
.phase-overview-heading h3 { min-height:3.3em; }
.phase-overview-work { margin:16px 20px 22px; }
.phase-overview-decision { margin-top:auto; padding:20px; background:linear-gradient(120deg,#192d4e,#0b1934); color:#f4f0e8; }
.phase-overview-decision h4 { margin:0 0 10px; color:#eed99e; }
.phase-overview-decision>p:not(.phase-options) { min-height:5.25em; }
.phase-overview-decision .phase-options { margin-top:16px; padding-top:14px; border-top:1px solid var(--dark-line); color:#eed99e; }
.phase-detail-link { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:12px 20px; color:#5b4724; text-decoration:none; border-top:1px solid #c8d1dd; }
.phase-detail-link:hover { background:#f6efdf; text-decoration:underline; }
.phase-connector { position:absolute; top:25px; right:-23px; width:22px; text-align:center; color:#796132; font:600 1.125rem/1.5 var(--sans); }
.phase-details-title { margin:48px 0 24px; padding-top:32px; border-top:1px solid #c8d1dd; }
.phase-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.phase-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr) minmax(0,1fr); grid-template-areas:'heading work decision' 'heading evidence decision'; min-width:0; border:1px solid #c8d1dd; border-top:3px solid #af925b; background:#fff; scroll-margin-top:112px; }
.phase-card-heading { grid-area:heading; padding:26px 28px; }
.phase-label { display:flex; align-items:center; gap:18px; margin-bottom:12px; color:#70582a; font:600 1rem/1.6 var(--sans); letter-spacing:.06em; }
.phase-free { padding:2px 10px; border:1px solid #c8b687; background:#faf5e9; font-size:.875rem; letter-spacing:.02em; }
.phase-card h3 { font-size:clamp(1.2rem,1.7vw,1.55rem); line-height:1.65; overflow-wrap:anywhere; }
.phase-work { grid-area:work; margin:26px 28px 0; font-size:1rem; color:#43546a; }
.phase-evidence { grid-area:evidence; margin:22px 28px 26px; padding-top:18px; border-top:1px solid #d9dee4; }
.phase-evidence dt { margin-bottom:8px; color:#70582a; font-size:.9375rem; font-weight:600; }
.phase-evidence dd { margin:0; font-size:1rem; color:#43546a; }
.phase-decision { grid-area:decision; margin:0; padding:26px 28px; background:linear-gradient(120deg,#192d4e,#0b1934); color:#f4f0e8; }
.phase-card>* { min-width:0; }
.phase-decision h4 { font:600 .9375rem/1.7 var(--sans); color:#eed99e; margin:0 0 9px; }
.phase-decision>p { font-size:1rem; }
.phase-decision .phase-options { margin-top:16px; padding-top:13px; border-top:1px solid var(--dark-line); color:#eed99e; font-size:.9375rem; line-height:1.9; }
.phase-consultation { border-top:2px solid #af925b; }
.phase-consultation>div { min-width:0; }
.phase-consultation p { max-width:52em; }
.phase-consultation .button { flex-shrink:0; }
.concept-feature>p:not(.feature-lead) { color:var(--muted); font-size:1rem; }
.concept-business-note { margin-top:22px; padding-top:16px; border-top:1px solid #c8b687; }
.concept-business-note h5 { margin:0 0 8px; color:#70582a; font:600 1rem/1.7 var(--sans); }
.concept-business-note p { margin:0; color:#43546a; font-size:1rem; }
.concept-business-summary { margin-top:32px; padding:22px 24px; border-left:2px solid #af925b; background:#e9eef4; font-size:1rem; color:#43546a; }
@media(max-width:960px) {
  .phase-overview { grid-template-columns:minmax(0,1fr); }
  .phase-overview-heading h3 { min-height:0; }
  .phase-overview-decision>p:not(.phase-options) { min-height:0; }
  .phase-connector { top:auto; right:calc(50% - 11px); bottom:-25px; transform:rotate(90deg); }
  .phase-card { grid-template-columns:minmax(0,1fr); grid-template-areas:'heading' 'work' 'evidence' 'decision'; }
  .phase-card-heading { padding-bottom:0; }
  .phase-work { margin-top:18px; }
}
@media(max-width:720px) {
  .phase-card-heading { padding:22px 20px 0; }
  .phase-card h3 { font-size:1.25rem; }
  .phase-work { margin:16px 20px 0; }
  .phase-evidence { margin:20px; }
  .phase-decision { padding:21px 20px; }
  .phase-consultation { padding:24px 20px; }
  .concept-business-summary { padding:20px; margin-top:26px; }
}

.hero-consultation-note { margin-top:16px; font-size:.875rem; color:#d8e0ec; line-height:1.8; }
.strategy-example { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.75fr); gap:45px; align-items:center; margin-top:44px; padding:32px; border:1px solid var(--dark-line); background:linear-gradient(120deg,rgba(30,48,80,.75),rgba(7,17,43,.45)); }
.strategy-example h3 { font-size:clamp(1.4rem,2.2vw,1.9rem); line-height:1.65; }
.strategy-example>div>p:not(.eyebrow) { color:#cdd6e4; font-size:1rem; margin-top:20px; }
.strategy-example .text-link { margin-top:22px; color:var(--gold); }
.strategy-example figure { min-width:0; }
.strategy-example img { width:100%; aspect-ratio:4/3; object-fit:contain; }
.strategy-example figcaption { color:#c5cfdf; font-size:.875rem; line-height:1.8; margin-top:12px; }
.market-sources { display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:18px; padding-top:15px; border-top:1px solid #d4dce5; font-size:.875rem; line-height:1.8; color:#59677a; }
.market-sources a { color:#6f5728; }
@media(max-width:860px) {
  .strategy-example { gap:28px; padding:26px; }
}
@media(max-width:720px) {
  .strategy-example { grid-template-columns:1fr; gap:26px; padding:25px 21px; margin-top:24px; }
  .strategy-example h3 { font-size:1.5rem; }
  .strategy-example figure { width:100%; max-width:420px; }
  .market-sources { display:block; }
  .market-sources a { display:block; margin-top:9px; }
}

/* Shared Japanese typography. The main ID deliberately wins over older
   component size overrides; content, source HTML and English CSS are unchanged. */
body { font-family:var(--sans); font-size:var(--jp-type-body); font-weight:400; line-height:1.9; }
#main :is(p,dd) { font-family:var(--sans); font-size:var(--jp-type-body); font-weight:400; line-height:1.9; }
#main .fit-list li>span { font-size:var(--jp-type-body); line-height:1.9; }
#main :is(h1,h2,h3,.pipeline-body h4,.concept-feature h4,.illustrated-concept-copy h4,.case-material-reference h4) { font-family:var(--serif); font-weight:600; line-height:1.65; letter-spacing:.025em; overflow-wrap:anywhere; }
#main h1 { font-size:var(--jp-type-hero); line-height:1.55; }
#main h2 { font-size:var(--jp-type-section); }
#main :is(h3,.concept-feature h4,.illustrated-concept-copy h4) { font-size:var(--jp-type-item); }
#main :is(.hero-map h2,.sectors h3,.market-route h3,.pipeline-body h4,.case-material-reference h4,.phase-consultation h3) { font-size:var(--jp-type-small-title); }
#main :is(.section-heading,.approach-heading,.fit-grid>div:first-child,.founder-copy,.contact-copy,.faq-grid>div:first-child)>h2 { position:relative; padding-bottom:24px; }
#main .approach-heading>div>h2 { position:relative; padding-bottom:24px; }
#main :is(.section-heading,.approach-heading,.fit-grid>div:first-child,.founder-copy,.contact-copy,.faq-grid>div:first-child)>h2:after,
#main .approach-heading>div>h2:after { content:''; display:block; width:56px; height:2px; background:var(--champagne-gradient); position:absolute; left:0; bottom:0; }
#main .section-heading { margin-bottom:44px; }
#main .section-intro { margin-top:24px; }
#main :is(.hero-lead,.feature-lead,.route-question,.contact-free,.fit-list strong) { font-family:var(--sans); font-size:var(--jp-type-lead); font-weight:600; line-height:1.8; }
#main .founder-name { font-family:var(--sans); font-size:var(--jp-type-item); font-weight:600; }
#main .event-date { font-family:var(--sans); font-size:var(--jp-type-small-title); font-weight:500; line-height:1.7; }
#main .founder-experience strong { font-family:var(--sans); font-weight:500; }
#main .founder-experience strong>span { font-family:var(--sans); font-size:var(--jp-type-label); }
#main :is(dt,.phase-label,.phase-decision h4,.responsibility-list h4,.concept-business-note h5,.field>label,.optional-fields>summary) { font-family:var(--sans); font-size:var(--jp-type-label); font-weight:600; line-height:1.7; }
#main :is(.phase-options,.consent,.map-countries,.founder-name span,.event-date span) { font-family:var(--sans); font-size:var(--jp-type-label); line-height:1.8; }
#main .phase-options { font-weight:500; }
#main .map-countries span { font-family:var(--sans); }
#main .faq summary { font-family:var(--serif); font-size:var(--jp-type-small-title); font-weight:600; line-height:1.8; padding-block:24px; }
#main .faq summary:after { top:24px; }
#main .case-design-examples>summary { font-family:var(--serif); font-size:var(--jp-type-small-title); font-weight:600; line-height:1.7; }
#main :is(figcaption,.eyebrow,.body-note,.case-category,.case-audience,.review-only,.form-preview-note,.field-hint,.privacy-note,.hero-consultation-note,.update-label,.route-wall,.market-sources,.contact-email>span,.case-design-examples>summary>span,.optional-fields>summary>span,.hero-gcc-entry small) { font-family:var(--sans); font-size:var(--jp-type-note); line-height:1.8; }
#main :is(.phase-free,.required-mark,.status-tag) { font-family:var(--sans); font-size:var(--jp-type-label); line-height:1.7; }
#main :is(.eyebrow,.update-label,.case-category) { font-weight:600; }
#main .eyebrow { letter-spacing:.09em; }
#main :is(.hero-consultation-note,.route-wall) { color:#d1dbea; }
#main :is(.button,.text-link,.hero-gcc-entry,.field input,.field select,.field textarea) { font-family:var(--sans); font-size:var(--jp-type-label); }
body :is(.site-nav,.header-gcc,.menu-toggle) { font-family:var(--sans); font-size:var(--jp-type-label); }
body .header-inner .menu-toggle { font-size:var(--jp-type-label); }
.site-footer :is(p,small,.footer-links) { font-family:var(--sans); font-size:var(--jp-type-note); line-height:1.8; }
#main :is(.contact-email,.hero-gcc-entry,.map-countries li,.phase-label) { overflow-wrap:anywhere; }
#main .phase-label { flex-wrap:wrap; gap:8px 16px; }
#main .phase-options { text-wrap:pretty; }
#main .phase-overview h3 { font-size:var(--jp-type-small-title); }
#main .phase-overview-work { font-size:var(--jp-type-body); line-height:1.75; }
#main .phase-overview-decision h4 { font-family:var(--sans); font-size:var(--jp-type-label); font-weight:600; line-height:1.7; }
#main .phase-overview-decision>p:not(.phase-options) { font-size:var(--jp-type-body); line-height:1.75; }
#main .phase-detail-link { font-family:var(--sans); font-size:var(--jp-type-label); font-weight:500; line-height:1.7; }
@media(min-width:1281px) and (max-width:1439px) {
  .header-inner { gap:16px; }
  .site-nav { gap:14px; }
}
@media(max-width:960px) {
  .phase-card-heading h3 { max-width:none; }
}
@media(max-width:720px) {
  :root { --jp-type-body:1.0625rem; --jp-type-section:1.75rem; --jp-type-item:1.4375rem; --jp-type-small-title:1.25rem; --jp-type-lead:1.125rem; }
  #main .section-heading { margin-bottom:32px; }
  #main :is(.section-heading,.approach-heading,.fit-grid>div:first-child,.founder-copy,.contact-copy,.faq-grid>div:first-child)>h2,
  #main .approach-heading>div>h2 { padding-bottom:20px; }
  #main .section-intro { margin-top:20px; }
  #main .phase-options { line-height:2; }
}
