/* Core pages: Top / Profile / Insights / Contact / Global chrome.
   Standard corporate structure with restrained Research Lab tone.
   Service Detail baseline remains untouched. */

:root {
  --core-bg:#fbfbfa;
  --core-panel:#f5f7f7;
  --core-text:#202326;
  --core-muted:#667078;
  --core-line:#dfe4e6;
  --core-accent:#566572;
  --core-max:1180px;
  --core-reading:720px;
  --core-serif:"Source Han Serif JP","Noto Serif CJK JP","Hiragino Mincho ProN","Yu Mincho","IPAexMincho",serif;
  --core-sans:"Source Han Sans JP","Noto Sans CJK JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
}

body { background:var(--core-bg); color:var(--core-text); }
body, .site-header, .site-footer { font-family:var(--core-sans); }

/* Global header/footer */
.site-header { background:rgba(251,251,250,.98); border-bottom:1px solid var(--core-line); }
.site-header__inner { width:min(calc(100% - 96px),var(--core-max)); margin:0 auto; min-height:76px; }
.site-header__brand { font-family:var(--core-serif); font-size:18px; letter-spacing:.015em; }
.site-header__nav { font-size:13px; }
.site-header__nav a { color:var(--core-text); text-decoration:none; }
.site-header__cta a { border-bottom:1px solid #8398a6; padding-bottom:3px; }
.site-header__nav a:hover, .site-header__nav a:focus-visible, .site-footer a:hover, .site-footer a:focus-visible, .core-page a:focus-visible { color:#243f52; text-decoration-thickness:1px; text-underline-offset:5px; }
.site-header__nav a:focus-visible, .site-footer a:focus-visible, .core-page a:focus-visible, .contact-page input:focus-visible, .contact-page select:focus-visible, .contact-page textarea:focus-visible, .contact-page button:focus-visible { outline:2px solid #526f83; outline-offset:4px; }
.site-header__nav .current-menu-item > a, .site-header__nav .current_page_item > a, .site-header__nav a[aria-current="page"] { text-decoration:underline; text-decoration-color:#8398a6; text-underline-offset:6px; }

.site-footer { margin-top:112px; padding:64px 0 30px; border-top:1px solid var(--core-line); background:var(--core-bg); }
.site-footer__grid, .site-footer__copyright { width:min(calc(100% - 96px),var(--core-max)); margin-left:auto!important; margin-right:auto!important; }
.site-footer__grid { gap:48px; }
.site-footer h3 { font-family:var(--core-sans); font-weight:400; color:var(--core-muted); letter-spacing:.06em; }
.site-footer__positioning { max-width:34em; line-height:1.85; }
.site-footer__links { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.site-footer__links a { color:var(--core-text); text-decoration:none; font-size:13.5px; }
.site-footer__copyright { margin-top:48px!important; padding-top:20px; border-top:1px solid var(--core-line); color:var(--core-muted); }

/* Shared core page layout */
.core-page { background:var(--core-bg); color:var(--core-text); }
.core-shell { width:min(calc(100% - 112px),var(--core-max)); margin-inline:auto; }
.core-hero { padding:92px 0 86px; }
.core-hero .breadcrumb { margin:0 0 26px; color:var(--core-muted); font-size:12px; line-height:1.5; letter-spacing:.06em; }
.core-kicker, .core-page .eyebrow { margin:0 0 20px; color:var(--core-muted); font-size:12px; line-height:1.45; letter-spacing:.12em; text-transform:uppercase; }
.core-page h1, .core-page h2 { font-family:var(--core-serif); font-weight:400; color:var(--core-text); word-break:keep-all; overflow-wrap:anywhere; }
.core-page h1 { margin:0; font-size:clamp(50px,4.2vw,64px); line-height:1.35; letter-spacing:.01em; }
.core-page h2 { margin:0 0 24px; font-size:31px; line-height:1.5; }
.core-page h3 { margin:0 0 10px; font-family:var(--core-serif); font-size:21px; line-height:1.55; font-weight:400; }
.core-lead, .core-page .page-lead, .core-page .page-hero__lead { max-width:var(--core-reading); margin:34px 0 0; font-size:17px; line-height:1.95; }
.core-page p, .core-page li { font-size:16px; line-height:1.9; }
.core-section { padding:88px 0 0; }
.core-section--panel { margin-top:92px; padding:76px 0 82px; background:var(--core-panel); }
.core-section--closing { margin-top:96px; padding:64px 0 72px; border-top:1px solid var(--core-line); }
.core-copy { max-width:var(--core-reading); }
.core-copy p + p { margin-top:1.35em; }
.core-link, .core-links a { color:var(--core-text); text-decoration:none; border-bottom:1px solid var(--core-line); padding-bottom:3px; width:fit-content; }
.core-links { display:grid; gap:10px; margin-top:20px; }
.display-lines > span { display:block; width:fit-content; }

/* Top */
.top-page .core-hero { padding-top:106px; }
.top-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:72px; align-items:center; }
.top-page .core-hero h1 { max-width:720px; }
.top-actions { display:flex; flex-wrap:wrap; gap:24px; margin-top:34px; }
.top-actions a { color:var(--core-text); text-decoration:none; border-bottom:1px solid #8398a6; padding-bottom:4px; font-size:14px; }
.top-symbol { position:relative; width:190px; aspect-ratio:1; justify-self:end; opacity:.85; }
.top-symbol::before, .top-symbol::after { content:""; position:absolute; background:var(--core-line); }
.top-symbol::before { width:1px; top:0; bottom:0; left:50%; }
.top-symbol::after { height:1px; left:0; right:0; top:50%; }
.top-symbol span { position:absolute; inset:22%; border:1px solid #8398a6; border-radius:50%; }
.top-flow { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; border-top:1px solid var(--core-line); border-bottom:1px solid var(--core-line); }
.top-flow div { padding:24px 20px; min-height:96px; }
.top-flow div + div { border-left:1px solid var(--core-line); }
.top-flow span { display:block; margin-bottom:10px; color:var(--core-muted); font-size:11px; letter-spacing:.1em; }
.market-grid, .domain-grid, .top-evidence-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
.market-grid > div, .domain-grid > div, .top-evidence-grid > div { min-width:0; }
.market-grid a { color:var(--core-text); text-decoration:none; }
.top-profile-row { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:72px; align-items:start; }
.top-insights-layout { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:84px; align-items:start; }
.core-section--profile { padding-top:96px; }

/* Profile */
.profile-page .profile-intro { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); gap:72px; align-items:start; }
.profile-page .profile-facts { padding:30px 32px; background:var(--core-panel); }
.profile-page .profile-facts dl { margin:0; display:grid; grid-template-columns:110px 1fr; gap:16px 24px; }
.profile-page .profile-facts dt { color:var(--core-muted); font-size:12px; letter-spacing:.06em; }
.profile-page .profile-facts dd { margin:0; line-height:1.75; }
.profile-page .profile-sections { display:grid; gap:72px; }
.profile-career { margin:38px 0 0; padding:0; list-style:none; counter-reset:career; border-top:1px solid var(--core-line); }
.profile-career li { display:grid; grid-template-columns:40px minmax(220px,.65fr) minmax(0,1.35fr); gap:28px; padding:28px 0; border-bottom:1px solid var(--core-line); align-items:start; }
.profile-career li::before { counter-increment:career; content:counter(career,decimal-leading-zero); color:var(--core-muted); font-size:12px; letter-spacing:.08em; }
.profile-career li > span { font-family:var(--core-serif); font-size:19px; line-height:1.65; }
.profile-career li p { margin:0; }
.profile-principles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:72px; }

/* Insights */
.insights-page .knowledge-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:46px; }
.insights-page .knowledge-types > article { border-top:1px solid var(--core-line); padding-top:24px; }
.insights-page .taxonomy-group { display:grid; grid-template-columns:220px minmax(0,1fr); gap:56px; padding:28px 0; border-top:1px solid var(--core-line); }
.insights-page .taxonomy-links { display:flex; flex-wrap:wrap; gap:14px 24px; }
.insights-page .taxonomy-links a, .insights-page .taxonomy-links span { color:var(--core-text); font-size:14px; text-decoration:none; }
.insights-page .theme-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 42px; margin:0; padding:0; list-style:none; }
.insights-page .research-policy { max-width:780px; }
.insights-page .publication-note { margin-top:22px; color:var(--core-muted); font-size:14px; line-height:1.8; }
.section-intro { max-width:var(--core-reading); margin:0 0 40px; }
.insight-list article, .latest-insights article { min-width:0; border-top:1px solid var(--core-line); }
.insight-list--featured { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; }
.insight-list--featured article { padding-top:22px; }
.insight-list--compact article { display:grid; grid-template-columns:170px minmax(0,1fr); gap:24px; padding:20px 0; }
.insight-list--compact article:last-child { border-bottom:1px solid var(--core-line); }
.insight-list h3, .latest-insights h3 { word-break:keep-all; overflow-wrap:anywhere; }
.insight-list a, .latest-insights a { color:var(--core-text); text-decoration:none; }
.insight-meta { margin:0 0 12px; color:var(--core-muted); font-size:12px!important; line-height:1.65!important; letter-spacing:.04em; }
.latest-insights { margin-top:34px; }
.latest-insights article { display:grid; grid-template-columns:260px minmax(0,1fr); gap:42px; padding:23px 0; align-items:start; }
.latest-insights article:last-child { border-bottom:1px solid var(--core-line); }
.latest-insights h3 { margin:0; }

/* Contact */
.contact-page .contact-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.65fr); gap:72px; align-items:start; }
.contact-page .contact-note { padding:26px 28px; background:var(--core-panel); }
.contact-page .contact-note strong { font-weight:500; }
.contact-page .wellside-contact-form, .contact-page form { max-width:720px; }
.contact-page label { display:block; margin-bottom:8px; font-size:14px; }
.contact-page input:not([type="checkbox"]):not([type="radio"]),
.contact-page select,
.contact-page textarea { width:100%; box-sizing:border-box; border:1px solid #cfd6da; border-radius:0; background:#fff; color:var(--core-text); padding:12px 14px; font:inherit; }
.contact-page textarea { min-height:170px; }
.contact-page button, .contact-page input[type="submit"] { min-height:46px; padding:0 22px; border:1px solid var(--core-text); border-radius:0; background:transparent; color:var(--core-text); font:inherit; }

@media (max-width:980px) {
  .site-header__inner, .site-footer__grid, .site-footer__copyright { width:min(calc(100% - 64px),var(--core-max)); }
  .core-shell { width:min(calc(100% - 72px),var(--core-max)); }
  .top-hero-grid { grid-template-columns:minmax(0,1fr) 150px; gap:42px; }
  .top-symbol { width:145px; }
  .market-grid, .domain-grid, .top-evidence-grid { gap:32px; }
}

@media (max-width:700px) {
  .site-header__inner, .site-footer__grid, .site-footer__copyright, .core-shell { width:calc(100% - 48px); }
  .site-header__inner { min-height:68px; }
  .site-footer { margin-top:84px; padding-top:48px; }
  .site-footer__grid { display:grid!important; grid-template-columns:1fr!important; gap:34px; }
  .core-hero { padding:64px 0 66px; }
  .core-page h1 { font-size:36px; line-height:1.42; }
  .core-page h2 { font-size:26px; line-height:1.55; }
  .core-page h3 { font-size:19px; }
  .core-lead, .core-page .page-lead, .core-page .page-hero__lead { font-size:16px; line-height:1.92; margin-top:26px; }
  .core-section { padding-top:68px; }
  .core-section--panel { margin-top:72px; padding:58px 0 62px; }
  .core-section--closing { margin-top:72px; padding:52px 0 58px; }
  .top-hero-grid, .profile-page .profile-intro, .top-profile-row, .contact-page .contact-intro { grid-template-columns:1fr; gap:38px; }
  .top-symbol { width:96px; justify-self:end; }
  .top-flow { grid-template-columns:1fr; }
  .top-flow div + div { border-left:0; border-top:1px solid var(--core-line); }
  .market-grid, .domain-grid, .top-evidence-grid, .insights-page .knowledge-types, .insights-page .theme-list { grid-template-columns:1fr; gap:36px; }
  .insights-page .taxonomy-group { grid-template-columns:1fr; gap:14px; }
  .profile-page .profile-facts { padding:24px; }
  .profile-page .profile-facts dl { grid-template-columns:1fr; gap:5px 0; }
  .profile-page .profile-facts dd + dt { margin-top:14px; }
  .top-insights-layout, .profile-principles, .insight-list--featured { grid-template-columns:1fr; gap:44px; }
  .insight-list--compact article, .latest-insights article, .profile-career li { grid-template-columns:1fr; gap:8px; }
  .profile-career li { padding:24px 0; }
  .profile-career li > span { font-size:18px; }
}
