/* v8 wrap/list/eyebrow structure; adopted TOP white, graphite and restrained red. */
:root { color-scheme:light; --ink:#17191a; --muted:#555c60; --line:#d8dcde; --red:#98101e; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; background:#fff; color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; line-height:1.9; overflow-wrap:anywhere; }
a { color:inherit; text-underline-offset:.3em; }
a:focus-visible { outline:3px solid var(--red); outline-offset:5px; }
img { display:block; max-width:100%; height:auto; }
h1,h2,p,figure { margin:0; }
.wrap { width:100%; max-width:var(--max); padding-inline:max(24px,5vw); margin-inline:auto; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:12px; left:12px; z-index:20; padding:12px 18px; background:white; transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:26px; border-bottom:1px solid var(--line); }
.wordmark { font-size:23px; font-weight:800; letter-spacing:.13em; text-decoration:none; white-space:nowrap; }
.wordmark-dot { color:var(--red); }
.site-header nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:12px 24px; font-size:13px; }
.site-header nav a { padding-block:9px; text-decoration:none; }
.site-header nav a[aria-current] { text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:2px; }
.nav-contact { display:inline-flex; gap:12px; border-bottom:1px solid var(--ink); }
.breadcrumb { padding-top:28px; font-size:12px; color:var(--muted); }
.breadcrumb ol { display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0; padding:0; }
.breadcrumb li+li::before { content:"/"; margin-right:10px; color:var(--line); }
.page-intro { padding-block:clamp(54px,8vw,104px) clamp(48px,7vw,84px); }
.eyebrow { font-size:11px; font-weight:700; letter-spacing:.18em; line-height:1.7; margin-bottom:18px; color:var(--muted); }
.page-intro > .eyebrow::before { content:""; display:inline-block; width:22px; height:2px; background:var(--red); vertical-align:middle; margin-right:12px; }
h1 { font-size:clamp(42px,7vw,84px); letter-spacing:.02em; line-height:1.25; font-weight:650; }
.lead { max-width:44em; margin-top:32px; font-size:clamp(15px,1.6vw,18px); line-height:2.1; }
.intro-heading { font-size:clamp(22px,3vw,32px); margin-top:30px; line-height:1.6; }
.intro-heading+.lead { margin-top:18px; }
.voice-list { border-top:1px solid var(--ink); }
.voice-row { display:grid; grid-template-columns:64px minmax(0,1fr) minmax(190px,.65fr); align-items:center; gap:24px; padding-block:46px; border-bottom:1px solid var(--line); }
.row-index { font-size:13px; letter-spacing:.08em; align-self:start; padding-top:5px; color:var(--red); }
.voice-copy .eyebrow { margin-bottom:8px; }
.voice-copy h2 { font-size:clamp(23px,2.6vw,34px); line-height:1.6; }
.article-meta { color:var(--muted); font-size:12px; margin-top:14px; }
.article-link { display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:14px; text-decoration:none; min-height:48px; padding-block:12px; border-bottom:1px solid var(--line); }
.article-link:hover,.text-link:hover { color:var(--red); border-color:var(--red); }
.article-link > [aria-hidden],.text-link > [aria-hidden],.button > [aria-hidden] { flex:none; }
.text-link { display:inline-flex; align-items:center; gap:24px; font-size:14px; padding-block:12px; min-height:48px; }
.archive-link { padding-top:26px; text-align:right; }
.related { margin-block:clamp(72px,10vw,128px); padding-block:40px; border-block:1px solid var(--line); }
.related h2 { font-size:clamp(26px,3vw,36px); line-height:1.6; }
.related p:not(.eyebrow) { max-width:44em; margin-top:18px; font-size:15px; }
.related .text-link { margin-top:18px; }
.case-jumps { display:flex; flex-wrap:wrap; gap:16px 34px; margin-top:36px; font-size:14px; }
.case-jumps a { display:inline-flex; gap:24px; align-items:center; padding-block:12px; }
.case-story { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:30px 48px; border-top:1px solid var(--ink); padding-block:36px 80px; scroll-margin-top:24px; }
.case-heading { grid-column:1/-1; display:flex; gap:30px; align-items:baseline; }
.case-heading .eyebrow { margin-bottom:6px; }
.case-heading h2 { font-size:clamp(26px,3.4vw,42px); line-height:1.55; }
.case-photo { min-width:0; }
.case-photo img { width:100%; object-fit:contain; background:#f5f5f3; }
.case-photo.ono img { max-height:620px; max-height:72svh; }
.case-photo figcaption { font-size:12px; color:var(--muted); line-height:1.9; margin-top:14px; }
.case-reading { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:22px; min-width:0; font-size:15px; }
.case-reading .text-link { width:100%; justify-content:space-between; border-bottom:1px solid var(--line); }
.case-reading .secondary-link { color:var(--muted); font-size:13px; margin-top:12px; }
.consultation { padding-block:0 clamp(80px,10vw,140px); }
.consultation h2 { font-size:clamp(30px,4.1vw,52px); line-height:1.65; font-weight:600; }
.consultation > p:not(.eyebrow) { max-width:43em; margin-top:24px; font-size:15px; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 36px; margin-top:32px; }
.button { display:inline-flex; justify-content:space-between; align-items:center; gap:28px; min-height:56px; max-width:100%; padding:16px 24px; color:#fff; background:var(--ink); text-decoration:none; font-size:14px; }
.button:hover { background:var(--red); }
.consultation > .preview-note { font-size:12px!important; color:var(--muted); }
.site-footer { border-top:1px solid var(--line); padding-block:44px 24px; }
.brand-statement { max-width:32em; font-size:clamp(17px,2vw,22px); font-weight:600; line-height:1.9; }
.footer-links { display:flex; flex-wrap:wrap; gap:8px 28px; margin-top:28px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:22px; margin-top:32px; font-size:11px; color:var(--muted); }
@media (max-width:760px) {
  .site-header { align-items:flex-start; flex-direction:column; gap:14px; padding-block:20px; }
  .site-header nav { justify-content:flex-start; gap:10px 20px; font-size:12px; }
  .voice-row { grid-template-columns:30px minmax(0,1fr); gap:14px 18px; padding-block:32px; }
  .article-link { grid-column:2; }
  .archive-link { text-align:left; }
  .case-story { grid-template-columns:minmax(0,1fr); gap:24px; padding-bottom:56px; }
  .case-heading { gap:18px; }
  .case-reading { gap:12px; }
  .actions { align-items:stretch; flex-direction:column; gap:12px; }
  .actions .button { width:100%; }
  .desktop-break { display:none; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }

/* Shared sections for the next four adopted pages; no styles loaded by TOP. */
.site-header { align-items:flex-start; }
.site-header nav { max-width:880px; }
.content-section { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:40px 64px; padding-block:58px; border-top:1px solid var(--line); scroll-margin-top:24px; }
.content-section.stacked { grid-template-columns:minmax(0,1fr); gap:34px; }
.section-heading h2,.service-panel h2,.archive-panel h2 { font-size:clamp(26px,3.2vw,40px); line-height:1.65; font-weight:600; }
.section-copy { min-width:0; font-size:15px; }
.section-copy p+p { margin-top:22px; }
.section-copy .text-link { margin-top:20px; }
.section-copy .section-lead { font-size:clamp(22px,2.6vw,30px); line-height:1.7; margin-bottom:22px; }
.pillar-list { border-top:1px solid var(--line); }
.pillar { display:grid; grid-template-columns:40px minmax(0,.85fr) minmax(0,1.15fr); gap:18px 26px; padding-block:28px; border-bottom:1px solid var(--line); }
.pillar h3,.text-card h3,.situation-grid h3 { margin:0; font-size:20px; font-weight:600; line-height:1.7; }
.pillar p:not(.row-index),.text-card p,.situation-grid p { font-size:15px; line-height:2; }
.service-panel,.archive-panel { margin-block:42px 70px; padding:clamp(28px,4.5vw,56px); background:#f5f5f3; border-left:2px solid var(--red); }
.service-panel > p:not(.eyebrow),.archive-panel > p:not(.eyebrow) { max-width:52em; margin-top:24px; font-size:15px; }
.service-panel > .text-link,.archive-panel > .button { margin-top:24px; }
.situation-grid,.journal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.situation-grid > div { min-width:0; border-top:1px solid var(--ink); padding-top:25px; }
.situation-grid p,.text-card p { margin-top:18px; }
.situation-grid .text-link,.text-card .text-link { margin-top:16px; }
.two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.text-card { min-width:0; border-top:1px solid var(--ink); padding-top:24px; }
.section-note { max-width:56em; font-size:14px; color:var(--muted); }
.identity-panel { border-block:1px solid var(--ink); padding-block:70px; margin-block:38px; }
.identity-panel h2 { font-size:clamp(26px,3.7vw,46px); line-height:1.8; max-width:23em; font-weight:600; }
.values-grid { row-gap:40px; }
.journal-card { display:flex; min-width:0; flex-direction:column; align-items:flex-start; border-top:1px solid var(--ink); padding-top:26px; }
.journal-card h3 { margin:0; font-size:23px; line-height:1.65; }
.journal-card .text-link { margin-top:auto; padding-top:28px; }
.journal-card .article-meta { margin-bottom:12px; }
@media (max-width:960px) { .site-header { flex-direction:column; gap:14px; } .site-header nav { justify-content:flex-start; } }
@media (max-width:760px) {
  .content-section { grid-template-columns:minmax(0,1fr); gap:26px; padding-block:40px; }
  .pillar { grid-template-columns:28px minmax(0,1fr); gap:10px 18px; }
  .pillar > p:not(.row-index) { grid-column:2; }
  .situation-grid,.journal-grid,.two-column { grid-template-columns:minmax(0,1fr); }
  .service-panel,.archive-panel { margin-block:28px 48px; padding:28px 24px; }
  .identity-panel { padding-block:42px; }
  .journal-card .text-link { margin-top:0; }
}

/* 2026-10-30: source-grounded Private review additions */
.article-actions { display: grid; gap: 12px; min-width: 0; }
.source-summary { margin: 20px 0 0; font-size: 15px; line-height: 2; }
.source-summary > div + div { margin-top: 20px; }
.source-summary dt { margin-bottom: 5px; font-size: 13px; font-weight: 600; color: var(--muted); }
.source-summary dd { margin: 0; overflow-wrap: anywhere; }
.source-note, .source-credit { font-size: 12px; line-height: 1.9; color: var(--muted); }
.source-credit { overflow-wrap: anywhere; }
.case-reading .source-summary { margin-top: 0; }
.company-profile { min-width: 0; margin: 0; }
.company-profile > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 22px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.company-profile dt { font-size: 13px; color: var(--muted); }
.company-profile dd { margin: 0; font-size: 15px; line-height: 2; overflow-wrap: anywhere; }
.company-profile .text-link { margin-top: 10px; }
@media (max-width: 760px) { .article-actions { grid-column: 2; } .source-summary { font-size: 14px; } .company-profile > div { grid-template-columns: 1fr; gap: 8px; } }
