/* CURRENT / CONCEPT — CSU design-system adaptation. Page-scoped only. */
.concept-page {
  --c-navy:#071b34; --c-ink:#0a1d35; --c-muted:#718096;
  --c-line:#d9e0e7; --c-paper:#f5f6f4; --c-blue:#1267ca;
  overflow-x:hidden; color:var(--c-ink); background:#fff;
}
.page-template-page-concept .site-header,
.page-template-page-concept-php .site-header { background:rgb(255 255 255 / 96%); border-bottom:1px solid rgb(7 27 52 / 10%); backdrop-filter:blur(16px); }
.page-template-page-concept .site-header .wordmark,
.page-template-page-concept-php .site-header .wordmark,
.page-template-page-concept .site-header .menu-button,
.page-template-page-concept-php .site-header .menu-button { color:var(--c-navy); }
.page-template-page-concept .site-header .wordmark img,
.page-template-page-concept-php .site-header .wordmark img { filter:none; }
.page-template-page-concept .site-header .wordmark img,
.page-template-page-concept-php .site-header .wordmark img { width:clamp(128px,13vw,164px); height:auto; }
.concept-page img { image-rendering:auto; }

.concept-hero,.concept-intro,.concept-block,.concept-service,.concept-role { position:relative; }
.concept-hero__inner,.concept-intro__inner,.concept-block__inner { width:min(1180px,calc(100% - 200px)); margin-inline:auto; }

/* HERO */
.concept-hero { min-height:min(900px,100svh); padding-top:var(--header-height); border-bottom:1px solid var(--c-line); background:radial-gradient(circle at 82% 64%,rgb(18 103 202 / 12%) 0 4px,transparent 5px),linear-gradient(107deg,transparent 0 68%,rgb(7 27 52 / 4%) 68.1% 68.2%,transparent 68.3%),linear-gradient(103deg,transparent 0 74%,rgb(7 27 52 / 4%) 74.1% 74.2%,transparent 74.3%),#fff; }
.concept-hero::before { position:absolute; inset:var(--header-height) auto 0 clamp(32px,5vw,76px); width:1px; content:""; background:var(--c-line); }
.concept-hero::after { position:absolute; top:calc(var(--header-height) + 72px); left:clamp(28px,4.6vw,70px); content:"01"; color:var(--c-muted); font-size:10px; letter-spacing:.22em; }
.concept-hero__inner { display:flex; min-height:calc(min(900px,100svh) - var(--header-height)); flex-direction:column; justify-content:center; padding:90px 0 110px; }
.concept-hero__label,.concept-block__index,.concept-service__eyebrow { margin:0; color:var(--c-muted); font-size:10px; font-weight:700; letter-spacing:.2em; line-height:1.4; text-transform:uppercase; }
.concept-hero__label { margin-bottom:clamp(42px,7vh,72px); color:var(--c-navy); }
.concept-hero__title { max-width:11.5em; margin:0; color:var(--c-navy); font-size:clamp(46px,5.3vw,76px); font-weight:500; letter-spacing:-.025em; line-height:1.38; }

/* INTRODUCTION */
.concept-intro { padding:0; background:#fff; }
.concept-intro::before { position:absolute; inset:0 0 auto; height:72px; content:""; border-bottom:1px solid var(--c-line); }
.concept-intro__inner { min-height:1100px; padding:180px 0 190px; }
.concept-intro__inner::before { position:absolute; top:29px; left:max(80px,calc((100% - 1240px) / 2)); content:"01    INTRODUCTION"; white-space:pre; color:var(--c-muted); font-size:10px; font-weight:700; letter-spacing:.18em; }
.concept-intro__body { width:min(900px,82%); margin-left:auto; color:var(--c-navy); font-size:clamp(22px,2.2vw,32px); font-weight:500; letter-spacing:-.01em; line-height:2; }
.concept-intro__body p { margin:0 0 1.25em; }
.concept-intro__body p:last-child { margin-bottom:0; }
.concept-capabilities { display:grid; grid-template-columns:repeat(4,1fr); margin-top:130px; border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line); }
.concept-capabilities__item { min-height:245px; padding:36px 26px 30px; border-right:1px solid var(--c-line); }
.concept-capabilities__item:nth-child(4),.concept-capabilities__item:last-child { border-right:0; }
.concept-capabilities__item:nth-child(n + 5) { border-top:1px solid var(--c-line); }
.concept-capabilities__item .concept-icon { color:var(--c-navy); border-color:var(--c-line); }
.concept-capabilities__item p { margin:32px 0 0; color:var(--c-navy); font-size:14px; font-weight:600; line-height:1.75; }
.concept-capabilities__item b { display:block; margin-bottom:16px; color:var(--c-muted); font-size:10px; letter-spacing:.18em; }

/* SHARED SECTIONS */
.concept-block,.concept-service { padding:0; border-top:1px solid var(--c-line); background:#fff; }
.concept-block__inner { padding:160px 0 180px; }
.concept-block__index { display:flex; align-items:center; gap:24px; margin-bottom:72px; color:var(--c-muted); }
.concept-block__index::after { width:84px; height:1px; content:""; background:currentColor; opacity:.55; }
.concept-block__title { max-width:18em; margin:0 0 64px; color:var(--c-navy); font-size:clamp(40px,4vw,58px); font-weight:500; letter-spacing:-.025em; line-height:1.45; }
.concept-block__body { width:min(650px,100%); color:#26384e; font-size:clamp(15px,1.1vw,17px); font-weight:500; line-height:2.15; }
.concept-block__body p { margin:0 0 1.7em; }
.concept-block__body p:last-child { margin-bottom:0; }
.concept-block__lead { width:min(980px,100%); margin:88px 0 0 auto; padding-top:42px; border-top:1px solid currentColor; color:var(--c-navy); font-size:clamp(17px,1.45vw,21px); font-weight:500; line-height:2; text-align:left; }
.concept-block__layout { display:grid; margin:0; }
.concept-block__layout--diagram { grid-template-columns:minmax(0,.8fr) minmax(360px,1.1fr) minmax(0,.8fr); gap:clamp(36px,5vw,76px); align-items:center; }
.concept-block__layout--split { grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr); gap:clamp(64px,8vw,120px); align-items:start; }
.concept-block__layout--service { grid-template-columns:minmax(0,1.15fr) minmax(300px,.7fr); gap:clamp(64px,9vw,140px); align-items:center; }
.concept-block__body--col { width:auto; }

/* 02 / DARK EDITORIAL FIELD */
.concept-block:nth-of-type(3) { color:#fff; border-color:rgb(255 255 255 / 17%); background:var(--c-navy); }
.concept-block:nth-of-type(3) .concept-block__inner { display:grid; grid-template-columns:.82fr 1.18fr; column-gap:clamp(72px,10vw,150px); }
.concept-block:nth-of-type(3) .concept-block__index { grid-column:1 / -1; color:rgb(255 255 255 / 52%); }
.concept-block:nth-of-type(3) .concept-block__title,.concept-block:nth-of-type(3) .concept-block__lead { color:#fff; }
.concept-block:nth-of-type(3) .concept-block__body { width:auto; color:rgb(255 255 255 / 76%); }
.concept-block:nth-of-type(3) .concept-values,.concept-block:nth-of-type(3) .concept-block__lead { grid-column:1 / -1; }
.concept-values { display:grid; grid-template-columns:repeat(4,1fr); margin-top:110px; border-top:1px solid rgb(255 255 255 / 24%); }
.concept-values__item { min-height:310px; padding:42px 30px 34px; border-right:1px solid rgb(255 255 255 / 20%); text-align:left; }
.concept-values__item:last-child { border-right:0; }
.concept-values__item h3 { margin:42px 0 18px; color:#fff; font-size:clamp(17px,1.4vw,21px); font-weight:600; line-height:1.7; }
.concept-values__item p { margin:0; color:rgb(255 255 255 / 64%); font-size:13px; line-height:1.8; }
.concept-icon { display:grid; width:54px; height:54px; margin:0; place-items:center; color:rgb(255 255 255 / 64%); border:1px solid rgb(255 255 255 / 30%); border-radius:50%; }
.concept-icon svg { width:23px; height:23px; }

/* 03 / ECOSYSTEM */
.concept-ecosystem { position:relative; width:100%; max-width:460px; aspect-ratio:1; margin-inline:auto; }
.concept-ecosystem__ring { position:absolute; inset:10%; border:1px solid var(--c-line); border-radius:50%; }
.concept-ecosystem__ring::before,.concept-ecosystem__ring::after { position:absolute; top:50%; left:50%; width:142%; height:1px; content:""; background:var(--c-line); transform:translate(-50%,-50%) rotate(30deg); }
.concept-ecosystem__ring::after { transform:translate(-50%,-50%) rotate(-30deg); }
.concept-ecosystem__hub,.concept-ecosystem__node { position:absolute; display:grid; place-items:center; transform:translate(-50%,-50%); }
.concept-ecosystem__hub { top:50%; left:50%; z-index:2; width:104px; height:104px; padding:18px; background:var(--c-navy); }
.concept-ecosystem__hub img { display:block; width:100%; filter:brightness(0) invert(1); }
.concept-ecosystem__node { z-index:3; width:78px; height:78px; padding:15px; border:1px solid var(--c-line); border-radius:50%; background:#fff; }
.concept-ecosystem__node img { width:auto; max-width:100%; height:auto; max-height:100%; object-fit:contain; filter:grayscale(1) saturate(0) contrast(.82); opacity:.9; }
.concept-ecosystem__node--1 { top:3%; left:50%; }.concept-ecosystem__node--2 { top:27%; left:92%; }.concept-ecosystem__node--3 { top:73%; left:92%; }
.concept-ecosystem__node--4 { top:97%; left:50%; }.concept-ecosystem__node--5 { top:73%; left:8%; }.concept-ecosystem__node--6 { top:27%; left:8%; }

/* 04 / OPERATOR VIEW */
.concept-block:nth-of-type(5) { background:var(--c-paper); }
.concept-attitude { border-top:1px solid var(--c-navy); }
.concept-attitude__label { margin:0; padding:22px 0; border-bottom:1px solid var(--c-line); color:var(--c-muted); font-size:10px; font-weight:700; letter-spacing:.12em; }
.concept-attitude__list { display:grid; grid-template-columns:repeat(5,1fr); }
.concept-attitude__item { min-height:220px; padding:36px 18px 28px; border-right:1px solid var(--c-line); }
.concept-attitude__item:last-child { border-right:0; }
.concept-attitude__item .concept-icon { width:44px; height:44px; margin-bottom:30px; color:var(--c-navy); border-color:var(--c-line); }
.concept-attitude__item .concept-icon svg { width:19px; height:19px; }
.concept-attitude__item p { margin:0; color:var(--c-navy); font-size:13px; font-weight:600; line-height:1.75; }

/* 05 / BRIDGE */
.concept-block:nth-of-type(6) { min-height:700px; color:#fff; border-color:rgb(255 255 255 / 18%); background:var(--c-navy); }
.concept-block:nth-of-type(6) .concept-block__inner { display:grid; grid-template-columns:.85fr 1.15fr; column-gap:clamp(80px,12vw,170px); align-items:start; }
.concept-block:nth-of-type(6) .concept-block__index { grid-column:1 / -1; color:rgb(255 255 255 / 50%); }
.concept-block:nth-of-type(6) .concept-block__title { color:#fff; }
.concept-block:nth-of-type(6) .concept-block__body { width:auto; padding-top:14px; color:rgb(255 255 255 / 76%); }

/* CSU / CIP */
.concept-service .concept-block__inner { padding-top:180px; padding-bottom:190px; }
.concept-service__eyebrow { margin:-52px 0 72px 72px; color:var(--c-navy); }
.concept-service .concept-block__title { margin-bottom:42px; }
.concept-service .service__status { display:inline-block; margin:0 0 28px; padding:8px 12px; border:1px solid currentColor; font-size:9px; font-weight:700; letter-spacing:.12em; }
.concept-service .brand-lockup { min-height:420px; display:grid; place-items:center; border-left:1px solid var(--c-line); }
.concept-service .brand-lockup img { width:min(245px,70%); max-height:330px; object-fit:contain; }
.concept-service .brand-lockup--cip img { width:min(201px,58%); }
.concept-service .platform-logos { display:grid; grid-template-columns:repeat(6,1fr); width:min(650px,100%); margin:42px 0 0; padding:25px 0; border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line); list-style:none; }
.concept-service .platform-logos li { display:grid; min-width:0; height:38px; padding:0 14px; place-items:center; border-right:1px solid var(--c-line); }
.concept-service .platform-logos li:last-child { border-right:0; }
.concept-service .platform-logos img { display:block; width:100%; height:28px; object-fit:contain; filter:grayscale(1) saturate(0) contrast(.82); opacity:.9; }
.button--outline-navy { display:inline-flex; min-width:230px; margin-top:38px; padding:19px 22px; align-items:center; justify-content:space-between; border:1px solid currentColor; color:var(--c-navy); font-size:12px; font-weight:600; text-decoration:none; transition:color .2s ease,background-color .2s ease; }
.button--outline-navy:hover { color:#fff; background:var(--c-navy); }
.concept-service .service-values { margin-top:110px; padding-top:0; border-top:1px solid var(--c-navy); }
.concept-service .service-values__label { margin:0; padding:22px 0; border-bottom:1px solid var(--c-line); color:var(--c-muted); font-size:10px; font-weight:700; letter-spacing:.12em; }
.concept-service .service-values__grid { display:grid; }
.concept-service .service-values__grid--four { grid-template-columns:repeat(4,1fr); }
.concept-service .service-values__grid--three { grid-template-columns:repeat(3,1fr); }
.concept-service .service-values article { min-height:260px; padding:38px 30px 34px; border-right:1px solid var(--c-line); text-align:left; }
.concept-service .service-values article:last-child { border-right:0; }
.concept-service .service-values article b { display:block; width:auto; height:auto; margin:0 0 52px; border:0; color:#9ca7b3; font-size:40px; font-weight:300; }
.concept-service .service-values h3 { margin:0 0 18px; color:var(--c-navy); font-size:18px; font-weight:600; line-height:1.6; }
.concept-service .service-values article p { margin:0; color:var(--c-muted); font-size:13px; line-height:1.8; }

#concept-cip { color:#fff; border-color:rgb(255 255 255 / 18%); background:var(--c-navy); }
#concept-cip .concept-block__index,#concept-cip .concept-service__eyebrow,#concept-cip .concept-block__body,#concept-cip .service-values__label,#concept-cip .service-values article p { color:rgb(255 255 255 / 64%); }
#concept-cip .concept-block__title,#concept-cip .service-values h3 { color:#fff; }
#concept-cip .brand-lockup,#concept-cip .service-values,#concept-cip .service-values__label,#concept-cip .service-values article { border-color:rgb(255 255 255 / 20%); }
#concept-cip .brand-lockup img { filter:brightness(0) invert(1); }
#concept-cip .button--outline-navy { color:#fff; }
#concept-cip .button--outline-navy:hover { color:var(--c-navy); background:#fff; }
#concept-cip .service-values article b { color:rgb(255 255 255 / 42%); }

/* CLOSING */
.concept-role { padding:190px 0 170px; color:var(--c-navy); background:#fff; }
.concept-role::before { position:absolute; inset:0 0 auto; height:1px; content:""; background:var(--c-line); }
.concept-role__inner { display:grid; grid-template-columns:1fr auto; gap:clamp(60px,10vw,150px); align-items:end; padding:0; }
.concept-role__message { max-width:820px; }
.concept-role .concept-block__index { color:var(--c-muted); }
.concept-role__title { max-width:15em; margin:0 0 52px; font-size:clamp(42px,4.4vw,62px); font-weight:500; letter-spacing:-.025em; line-height:1.45; }
.concept-role .concept-block__body { width:min(720px,100%); color:#26384e; }
.concept-role .button--light { display:inline-flex; min-width:230px; padding:20px 22px; align-items:center; justify-content:space-between; border:1px solid var(--c-navy); color:var(--c-navy); background:transparent; font-size:12px; font-weight:600; text-decoration:none; }
.concept-role .button--light:hover { color:#fff; background:var(--c-navy); }

@media (max-width:1100px) {
  .concept-hero__inner,.concept-intro__inner,.concept-block__inner { width:calc(100% - 128px); }
  .concept-block__layout--diagram { grid-template-columns:1fr 1fr; }
  .concept-block__layout--diagram .concept-ecosystem { grid-row:1 / span 2; grid-column:2; }
  .concept-block__layout--split { grid-template-columns:1fr; }
}

@media (max-width:860px) {
  .concept-hero__inner,.concept-intro__inner,.concept-block__inner { width:calc(100% - 80px); }
  .concept-hero { min-height:720px; }
  .concept-hero::before { left:22px; }
  .concept-hero::after { top:calc(var(--header-height) + 32px); left:15px; font-size:8px; }
  .concept-hero__inner { min-height:calc(720px - var(--header-height)); padding:96px 0 80px; }
  .concept-hero__label { margin-bottom:38px; }
  .concept-hero__title { font-size:clamp(34px,9.5vw,44px); line-height:1.5; }
  .concept-intro::before { height:62px; }
  .concept-intro__inner { min-height:0; padding:125px 0 112px; }
  .concept-intro__inner::before { top:25px; left:22px; font-size:9px; }
  .concept-intro__body { width:100%; font-size:clamp(19px,5.6vw,25px); line-height:1.95; }
  .concept-capabilities { grid-template-columns:repeat(2,1fr); margin-top:80px; }
  .concept-capabilities__item { min-height:220px; padding:30px 22px; border-top:1px solid var(--c-line); }
  .concept-capabilities__item:nth-child(2n) { border-right:0; }
  .concept-capabilities__item:first-child,.concept-capabilities__item:nth-child(2) { border-top:0; }
  .concept-block__inner,.concept-service .concept-block__inner { padding:104px 0 116px; }
  .concept-block__index { margin-bottom:48px; }
  .concept-block__title,.concept-role__title { margin-bottom:42px; font-size:clamp(30px,8.5vw,40px); line-height:1.5; }
  .concept-block__body { font-size:15px; line-height:2; }
  .concept-block__lead { margin-top:64px; padding-top:32px; font-size:16px; }
  .concept-block:nth-of-type(3) .concept-block__inner,.concept-block:nth-of-type(6) .concept-block__inner { grid-template-columns:1fr; }
  .concept-values { grid-template-columns:1fr 1fr; margin-top:72px; }
  .concept-values__item { min-height:280px; padding:32px 22px; border-bottom:1px solid rgb(255 255 255 / 20%); }
  .concept-values__item:nth-child(2n) { border-right:0; }
  .concept-block__layout--diagram,.concept-block__layout--split,.concept-block__layout--service { grid-template-columns:1fr; gap:58px; }
  .concept-block__layout--diagram .concept-ecosystem { grid-row:auto; grid-column:auto; width:min(430px,88vw); margin-block:18px; }
  .concept-attitude__list { grid-template-columns:repeat(2,1fr); }
  .concept-attitude__item { min-height:190px; border-bottom:1px solid var(--c-line); }
  .concept-attitude__item:nth-child(2n) { border-right:0; }
  .concept-attitude__item:last-child { border-right:1px solid var(--c-line); }
  .concept-service__eyebrow { margin:-29px 0 52px 68px; }
  .concept-service .brand-lockup { min-height:300px; border-top:1px solid var(--c-line); border-left:0; }
  .concept-service .service-values { margin-top:76px; }
  .concept-service .service-values__grid--four,.concept-service .service-values__grid--three { grid-template-columns:repeat(2,1fr); }
  .concept-service .service-values article { min-height:245px; border-bottom:1px solid var(--c-line); }
  .concept-service .service-values article:nth-child(2n) { border-right:0; }
  #concept-cip .service-values article { border-color:rgb(255 255 255 / 20%); }
  .concept-role { padding:112px 0; }
  .concept-role__inner { grid-template-columns:1fr; gap:52px; }
}

@media (max-width:560px) {
  .concept-hero__inner,.concept-intro__inner,.concept-block__inner { width:calc(100% - 48px); }
  .concept-hero__title br,.concept-block__title br,.concept-role__title br { display:none; }
  .concept-values,.concept-service .service-values__grid--four,.concept-service .service-values__grid--three { grid-template-columns:1fr; }
  .concept-values__item,.concept-service .service-values article { min-height:0; border-right:0; }
  .concept-service .service-values article b { margin-bottom:32px; }
  .concept-service .platform-logos { grid-template-columns:repeat(3,1fr); }
  .concept-service .platform-logos li:nth-child(3) { border-right:0; }
  .concept-service .platform-logos li:nth-child(-n + 3) { padding-bottom:14px; border-bottom:1px solid var(--c-line); }
  .concept-service .platform-logos li:nth-child(n + 4) { padding-top:14px; }
  .concept-attitude__list { grid-template-columns:1fr; }
  .concept-attitude__item,.concept-attitude__item:last-child { min-height:0; border-right:0; }
  .concept-ecosystem__hub { width:86px; height:86px; }
  .concept-ecosystem__node { width:62px; height:62px; padding:12px; }
  .concept-capabilities { grid-template-columns:1fr; }
  .concept-capabilities__item,.concept-capabilities__item:nth-child(2) { min-height:0; border-top:1px solid var(--c-line); border-right:0; }
  .concept-capabilities__item:first-child { border-top:0; }
}

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

/* ==========================================================
 * Refined original direction
 * 元ラフの白基調・紺線画・細罫線を戻し、余白と文字組だけを再整理。
 * ========================================================== */
.concept-page { background:#fff; }
.concept-hero { min-height:760px; background:radial-gradient(circle at 82% 62%,rgb(18 103 202 / 10%) 0 4px,transparent 5px),linear-gradient(106deg,transparent 0 72%,rgb(7 27 52 / 4%) 72.1% 72.2%,transparent 72.3%),#fff; }
.concept-hero__inner { min-height:calc(760px - var(--header-height)); padding:100px 0 104px; }
.concept-hero__label { margin-bottom:42px; }
.concept-hero__title { max-width:13em; font-size:clamp(44px,4.7vw,64px); line-height:1.48; }

.concept-intro__inner { display:grid; grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr); gap:clamp(64px,8vw,120px); min-height:0; padding:140px 0 150px; align-items:start; }
.concept-intro__body { width:auto; margin:0; color:#26384e; font-size:clamp(15px,1.15vw,17px); font-weight:500; letter-spacing:0; line-height:2.15; }
.concept-intro__body p { margin-bottom:1.55em; }
.concept-capabilities { grid-template-columns:repeat(4,1fr); margin:0; border:1px solid var(--c-line); }
.concept-capabilities__item { min-height:210px; padding:28px 20px 24px; }
.concept-capabilities__item .concept-icon { width:52px; height:52px; }
.concept-capabilities__item p { margin-top:24px; font-size:12px; line-height:1.7; }

.concept-block,.concept-service,#concept-cip { color:var(--c-ink); border-color:var(--c-line); background:#fff; }
.concept-block__inner,.concept-service .concept-block__inner { padding-top:132px; padding-bottom:144px; }
.concept-block__index,#concept-cip .concept-block__index,#concept-cip .concept-service__eyebrow { color:var(--c-muted); }
.concept-block__title,.concept-block:nth-of-type(3) .concept-block__title,.concept-block:nth-of-type(6) .concept-block__title,#concept-cip .concept-block__title { max-width:21em; margin-bottom:44px; color:var(--c-navy); font-size:clamp(32px,3.15vw,46px); line-height:1.52; }
.concept-block__body,.concept-block:nth-of-type(3) .concept-block__body,.concept-block:nth-of-type(6) .concept-block__body,#concept-cip .concept-block__body { color:#34465b; font-size:clamp(15px,1.05vw,16px); line-height:2.05; }
.concept-block__lead,.concept-block:nth-of-type(3) .concept-block__lead { color:var(--c-navy); font-size:clamp(15px,1.2vw,18px); line-height:2; }

.concept-block:nth-of-type(3) .concept-block__inner { display:block; }
.concept-block:nth-of-type(3) .concept-block__body { width:min(760px,100%); }
.concept-values { grid-template-columns:repeat(4,1fr); gap:12px; margin-top:76px; padding:0; border:0; }
.concept-values__item { min-height:290px; padding:38px 28px 30px; border:1px solid var(--c-line); background:#fff; }
.concept-values__item:last-child { border-right:1px solid var(--c-line); }
.concept-values__item .concept-icon { color:var(--c-navy); border-color:var(--c-line); }
.concept-values__item h3 { margin-top:34px; color:var(--c-navy); font-size:16px; }
.concept-values__item p { color:var(--c-muted); }

.concept-block__layout--diagram { grid-template-columns:minmax(0,.85fr) minmax(350px,1.05fr) minmax(0,.85fr); gap:clamp(42px,5vw,72px); }
.concept-block:nth-of-type(5) { background:#fafaf8; }
.concept-attitude__list { gap:10px; padding-top:10px; }
.concept-attitude__item { min-height:205px; border:1px solid var(--c-line); background:#fff; }
.concept-attitude__item:last-child { border-right:1px solid var(--c-line); }

.concept-block:nth-of-type(6) { min-height:0; }
.concept-block:nth-of-type(6) .concept-block__inner { grid-template-columns:.8fr 1.2fr; column-gap:clamp(72px,10vw,140px); }

.concept-service__eyebrow { color:var(--c-navy); }
.concept-service .brand-lockup,#concept-cip .brand-lockup { border-color:var(--c-line); background:#fafbfc; }
#concept-cip .brand-lockup img { filter:none; }
.concept-service .service-values,#concept-cip .service-values { border-color:var(--c-navy); }
.concept-service .service-values__label,#concept-cip .service-values__label { color:var(--c-muted); border-color:var(--c-line); }
.concept-service .service-values article,#concept-cip .service-values article { border-color:var(--c-line); }
.concept-service .service-values h3,#concept-cip .service-values h3 { color:var(--c-navy); }
.concept-service .service-values article p,#concept-cip .service-values article p { color:var(--c-muted); }
#concept-cip .service-values article b { color:#9ca7b3; }
#concept-cip .button--outline-navy { color:var(--c-navy); }
#concept-cip .button--outline-navy:hover { color:#fff; background:var(--c-navy); }

.concept-role { padding:132px 0; color:var(--c-navy); background:#f2f6fb; }
.concept-role__title { font-size:clamp(34px,3.6vw,50px); }

@media (max-width:1100px) {
  .concept-intro__inner { grid-template-columns:1fr; gap:72px; }
  .concept-intro__body { width:min(720px,100%); }
  .concept-block__layout--diagram { grid-template-columns:1fr 1fr; }
}

@media (max-width:860px) {
  .concept-hero { min-height:680px; }
  .concept-hero__inner { min-height:calc(680px - var(--header-height)); padding:90px 0 84px; }
  .concept-hero__title { font-size:clamp(33px,7vw,43px); }
  .concept-intro__inner,.concept-block__inner,.concept-service .concept-block__inner { padding-top:96px; padding-bottom:104px; }
  .concept-capabilities { grid-template-columns:repeat(2,1fr); }
  .concept-capabilities__item { min-height:190px; }
  .concept-block:nth-of-type(6) .concept-block__inner { grid-template-columns:1fr; }
  .concept-values { grid-template-columns:repeat(2,1fr); }
  .concept-values__item,.concept-values__item:last-child { border:1px solid var(--c-line); }
  .concept-block__layout--diagram { grid-template-columns:1fr; }
  .concept-block__layout--diagram .concept-ecosystem { grid-column:auto; grid-row:auto; }
  .concept-attitude__item,.concept-attitude__item:last-child { border:1px solid var(--c-line); }
}

@media (max-width:560px) {
  .concept-hero__title { font-size:clamp(31px,9vw,38px); }
  .concept-capabilities,.concept-values { grid-template-columns:1fr; }
  .concept-capabilities__item { min-height:0; }
}

/* 01 / 領域説明と正式ブランドマーク */
.concept-capabilities__item strong { display:block; color:var(--c-navy); font-size:12px; font-weight:700; line-height:1.6; }
.concept-capabilities__item small { display:block; margin-top:8px; color:var(--c-muted); font-size:9px; font-weight:500; line-height:1.65; }
.concept-icon--official { overflow:hidden; position:relative; padding:9px; background:#fff; }
.concept-icon--official img { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; object-position:center; filter:none; opacity:1; }
.concept-icon--csu img,.concept-icon--cip img { transform:none; }

/* 02 / 元ラフの左説明＋右4項目を維持 */
.concept-block:nth-of-type(3) .concept-block__inner { display:grid; grid-template-columns:minmax(380px,.75fr) minmax(0,1.25fr); column-gap:clamp(48px,5vw,76px); align-items:start; }
.concept-block:nth-of-type(3) .concept-block__index { grid-column:1; grid-row:1; margin-bottom:30px; }
.concept-block:nth-of-type(3) .concept-block__title { grid-column:1; grid-row:2; margin-bottom:28px; font-size:clamp(26px,2.2vw,34px); line-height:1.55; }
.concept-block:nth-of-type(3) .concept-block__body { grid-column:1; grid-row:3; width:auto; font-size:14px; line-height:2; }
.concept-block:nth-of-type(3) .concept-values { grid-column:2; grid-row:1 / 4; align-self:center; margin:0; }
.concept-block:nth-of-type(3) .concept-block__lead { grid-column:1 / -1; grid-row:4; margin-top:68px; text-align:center; }
.concept-block:nth-of-type(3) .concept-values__item { min-height:300px; padding:34px 24px 28px; }

/* 03 / 元ラフの左説明＋右図解を維持 */
.concept-block:nth-of-type(4) .concept-block__inner { display:grid; grid-template-columns:minmax(270px,.68fr) minmax(440px,1.32fr); column-gap:clamp(70px,9vw,130px); align-items:start; }
.concept-block:nth-of-type(4) .concept-block__index { grid-column:1; grid-row:1; margin-bottom:30px; }
.concept-block:nth-of-type(4) .concept-block__title { grid-column:1; grid-row:2; margin-bottom:30px; font-size:clamp(27px,2.35vw,36px); }
.concept-block:nth-of-type(4) .concept-block__layout--diagram { display:contents; }
.concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:first-child { grid-column:1; grid-row:3; }
.concept-block:nth-of-type(4) .concept-ecosystem { grid-column:2; grid-row:1 / 4; align-self:center; max-width:520px; }
.concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:last-child { grid-column:2; grid-row:4; width:min(500px,100%); margin:48px auto 0; }
.concept-block:nth-of-type(4) .concept-block__lead { grid-column:1 / -1; grid-row:5; margin-top:76px; text-align:center; }
.concept-block:nth-of-type(4) .concept-block__body { font-size:14px; line-height:2; }

@media (max-width:860px) {
  .concept-block:nth-of-type(3) .concept-block__inner,
  .concept-block:nth-of-type(4) .concept-block__inner { display:block; }
  .concept-block:nth-of-type(3) .concept-values { margin-top:58px; }
  .concept-block:nth-of-type(3) .concept-block__lead { margin-top:58px; text-align:left; }
  .concept-block:nth-of-type(4) .concept-block__layout--diagram { display:grid; grid-template-columns:1fr; gap:48px; }
  .concept-block:nth-of-type(4) .concept-ecosystem { grid-column:auto; grid-row:auto; }
  .concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:first-child,
  .concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:last-child { grid-column:auto; grid-row:auto; margin-top:0; }
  .concept-block:nth-of-type(4) .concept-block__lead { margin-top:58px; text-align:left; }
}

@media (max-width:1100px) {
  .concept-block:nth-of-type(3) .concept-block__inner { display:block; }
  .concept-block:nth-of-type(3) .concept-block__title { width:min(680px,100%); }
  .concept-block:nth-of-type(3) .concept-block__body { width:min(680px,100%); }
  .concept-block:nth-of-type(3) .concept-values { margin-top:64px; }
  .concept-block:nth-of-type(3) .concept-block__lead { margin-top:64px; }
}

/* 04 / 事業者視点：5項目の下に実践内容を小さく配置 */
.concept-block:nth-of-type(5) .concept-block__inner { display:grid; grid-template-columns:minmax(250px,.34fr) minmax(0,1.66fr); column-gap:clamp(54px,7vw,100px); align-items:start; }
.concept-block:nth-of-type(5) .concept-block__index { grid-column:1; grid-row:1; margin-bottom:30px; }
.concept-block:nth-of-type(5) .concept-block__title { grid-column:1; grid-row:2; margin-bottom:30px; font-size:clamp(27px,2.3vw,36px); }
.concept-block:nth-of-type(5) .concept-block__layout--split { display:contents; }
.concept-block:nth-of-type(5) .concept-block__body { display:contents; font-size:14px; line-height:2; }
.concept-block:nth-of-type(5) .concept-block__body > p:not(.concept-operator-note) { grid-column:1; margin:0 0 1.6em; color:#34465b; }
.concept-block:nth-of-type(5) .concept-block__body > p:first-child { grid-row:3; }
.concept-block:nth-of-type(5) .concept-block__body > p:nth-child(2) { grid-row:4; }
.concept-block:nth-of-type(5) .concept-attitude { grid-column:2; grid-row:1 / 5; align-self:start; }
.concept-block:nth-of-type(5) .concept-operator-note { grid-column:2; grid-row:5; width:min(760px,100%); margin:34px auto 0; padding-top:24px; border-top:1px solid var(--c-line); color:var(--c-muted); font-size:12px; line-height:1.9; }
.concept-block:nth-of-type(5) .concept-block__lead { grid-column:1 / -1; grid-row:6; margin-top:70px; text-align:center; }

@media (max-width:860px) {
  .concept-block:nth-of-type(5) .concept-block__inner { grid-template-columns:1fr; column-gap:0; }
  .concept-block:nth-of-type(5) .concept-block__index { grid-column:1; grid-row:1; }
  .concept-block:nth-of-type(5) .concept-block__title { grid-column:1; grid-row:2; }
  .concept-block:nth-of-type(5) .concept-block__body > p:first-child { grid-column:1; grid-row:3; }
  .concept-block:nth-of-type(5) .concept-block__body > p:nth-child(2) { grid-column:1; grid-row:4; }
  .concept-block:nth-of-type(5) .concept-attitude { grid-column:1; grid-row:5; margin-top:40px; }
  .concept-block:nth-of-type(5) .concept-operator-note { grid-column:1; grid-row:6; }
  .concept-block:nth-of-type(5) .concept-block__lead { grid-column:1; grid-row:7; text-align:left; }
}

/* CONCEPTではネイビー／青の面背景を使用しない */
.concept-block:nth-of-type(3),
.concept-block:nth-of-type(6),
#concept-cip { color:var(--c-ink); border-color:var(--c-line); background:#fff; }
.concept-block:nth-of-type(3) .concept-block__index,
.concept-block:nth-of-type(6) .concept-block__index,
#concept-cip .concept-block__index,
#concept-cip .concept-service__eyebrow { color:var(--c-muted); }
.concept-role { color:var(--c-navy); background:#f7f7f5; }

/* ファーストビュー導入文＋OUR STORY */
.concept-hero__summary { width:min(520px,100%); margin-top:38px; color:#34465b; font-size:13px; font-weight:500; line-height:1.95; }
.concept-hero__summary p { margin:0 0 12px; }
.concept-hero__button { display:inline-flex; min-width:132px; margin-top:18px; padding:14px 17px; align-items:center; justify-content:space-between; gap:22px; border:1px solid var(--c-navy); color:var(--c-navy); background:#fff; font-size:10px; font-weight:700; letter-spacing:.05em; text-decoration:none; transition:color .2s ease,background-color .2s ease; }
.concept-hero__button:hover { color:#fff; background:var(--c-navy); }

@media (max-width:560px) {
  .concept-hero__summary { margin-top:30px; font-size:12px; line-height:1.9; }
  .concept-hero__summary br { display:none; }
}

/* 日本語の1文字残り・不自然な句読点改行を防止 */
.concept-page p,
.concept-page li,
.concept-page small { word-break:auto-phrase; line-break:strict; overflow-wrap:normal; text-wrap:pretty; }
.concept-page h1,
.concept-page h2,
.concept-page h3,
.concept-page strong { word-break:auto-phrase; line-break:strict; overflow-wrap:normal; text-wrap:balance; }
.concept-title-line { white-space:nowrap; }
.concept-values__item h3 br,
.concept-attitude__item p br { display:none; }

@media (max-width:1100px) {
  .concept-block__lead br,
  .concept-service .concept-block__body br { display:none; }
}

/* 全体の視覚整理とアクセント強化 */
.concept-block__index::after { background:var(--c-blue); opacity:.85; }
.concept-values__item,
.concept-attitude__item,
.concept-capabilities__item { border-color:#d3dce6; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.concept-values__item { box-shadow:0 12px 28px rgb(7 27 52 / 4%); }
.concept-values__item .concept-icon,
.concept-attitude__item .concept-icon,
.concept-capabilities__item .concept-icon { color:#153a66; border-color:#bfcddd; background:#fff; }

/* 03 / 図解を主役にし、公式カラーと情報ブロックを整理 */
.concept-block:nth-of-type(4) .concept-block__inner { grid-template-columns:minmax(320px,.7fr) minmax(500px,1.3fr); column-gap:clamp(80px,9vw,138px); }
.concept-block:nth-of-type(4) .concept-block__title { font-size:clamp(32px,2.7vw,42px); }
.concept-block:nth-of-type(4) .concept-block__body { font-size:15px; line-height:2.05; }
.concept-block:nth-of-type(4) .concept-ecosystem { width:min(560px,100%); max-width:560px; padding:28px; border:0; border-radius:50%; background:#fff; }
.concept-block:nth-of-type(4) .concept-ecosystem__ring { inset:14%; border-color:#cbd5df; }
.concept-block:nth-of-type(4) .concept-ecosystem__ring::before,
.concept-block:nth-of-type(4) .concept-ecosystem__ring::after { background:#d3dce5; }
.concept-block:nth-of-type(4) .concept-ecosystem__hub { width:122px; height:122px; padding:22px; box-shadow:0 18px 38px rgb(7 27 52 / 18%); }
.concept-block:nth-of-type(4) .concept-ecosystem__hub { padding:0; overflow:hidden; border-radius:14px; background:transparent; }
.concept-block:nth-of-type(4) .concept-ecosystem__hub img { display:block; width:100%; height:100%; object-fit:contain; filter:none; }
.concept-block:nth-of-type(4) .concept-ecosystem__node { width:88px; height:88px; padding:18px; border-color:#c8d3df; box-shadow:0 12px 28px rgb(7 27 52 / 10%); }
.concept-block:nth-of-type(4) .concept-ecosystem__node img { display:block; width:50px; height:50px; max-width:none; max-height:none; object-fit:contain; filter:saturate(.9) contrast(.98); opacity:1; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--1 img { width:48px; height:48px; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--2 img { width:48px; height:48px; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--3 img { width:56px; height:44px; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--4 img { width:34px; height:43px; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--5 img { width:48px; height:48px; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--6 img { width:48px; height:48px; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--1 { top:calc(14% + 7px); left:50%; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--2 { top:32%; left:81.2%; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--3 { top:68%; left:81.2%; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--4 { top:86%; left:50%; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--5 { top:68%; left:18.8%; }
.concept-block:nth-of-type(4) .concept-ecosystem__node--6 { top:32%; left:18.8%; }
.concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:last-child { width:min(560px,100%); margin-top:54px; padding:28px 32px; border-top:1px solid #d3dce6; border-right:1px solid #d3dce6; border-bottom:1px solid #d3dce6; border-left:3px solid var(--c-blue); background:#fafbfc; font-size:14px; line-height:2; }
.concept-block:nth-of-type(4) .concept-block__lead { width:min(1080px,100%); margin-top:88px; padding-top:40px; border-top-color:#9cabbc; font-size:17px; font-weight:600; }

@media (max-width:1100px) {
  .concept-block:nth-of-type(4) .concept-block__inner { grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr); column-gap:60px; }
  .concept-block:nth-of-type(4) .concept-ecosystem { width:min(500px,100%); }
}

@media (max-width:860px) {
  .concept-block:nth-of-type(4) .concept-block__inner { display:block; }
  .concept-block:nth-of-type(4) .concept-ecosystem { width:min(500px,90vw); }
  .concept-block:nth-of-type(4) .concept-ecosystem__node { width:74px; height:74px; padding:12px; }
  .concept-block:nth-of-type(4) .concept-ecosystem__node img { transform:scale(.82); }
  .concept-block:nth-of-type(4) .concept-ecosystem__hub { width:104px; height:104px; }
  .concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:last-child { width:100%; }
}

/* 01〜05 / 左右カラムを同一基準で統一 */
@media (min-width:861px) {
  .concept-intro__inner,
  .concept-block:nth-of-type(3) .concept-block__inner,
  .concept-block:nth-of-type(4) .concept-block__inner,
  .concept-block:nth-of-type(5) .concept-block__inner,
  .concept-block:nth-of-type(6) .concept-block__inner {
    display:grid;
    grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
    column-gap:clamp(64px,7vw,104px);
    align-items:start;
  }

  .concept-intro__body,
  .concept-block:nth-of-type(3) .concept-block__title,
  .concept-block:nth-of-type(3) .concept-block__body,
  .concept-block:nth-of-type(4) .concept-block__title,
  .concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:first-child,
  .concept-block:nth-of-type(5) .concept-block__title,
  .concept-block:nth-of-type(5) .concept-block__body > p:not(.concept-operator-note),
  .concept-block:nth-of-type(6) .concept-block__title {
    grid-column:1;
  }

  .concept-capabilities,
  .concept-block:nth-of-type(3) .concept-values,
  .concept-block:nth-of-type(4) .concept-ecosystem,
  .concept-block:nth-of-type(4) .concept-block__layout--diagram > .concept-block__body:last-child,
  .concept-block:nth-of-type(5) .concept-attitude,
  .concept-block:nth-of-type(5) .concept-operator-note,
  .concept-block:nth-of-type(6) .concept-block__body {
    grid-column:2;
    width:100%;
    max-width:none;
  }

  .concept-block:nth-of-type(6) .concept-block__index { grid-column:1; grid-row:1; margin-bottom:30px; }
  .concept-block:nth-of-type(6) .concept-block__title { grid-row:2; }
  .concept-block:nth-of-type(6) .concept-block__body { grid-row:1 / 3; padding-top:0; }
}

@media (max-width:560px) {
  .concept-title-line { white-space:normal; }
}

/* CSU / 公式ロゴを主役にしたブランドパネル */
#concept-csu .brand-lockup {
  position:relative;
  min-height:460px;
  overflow:hidden;
  border:1px solid #cfd8e2;
  background:linear-gradient(135deg,#fff 0 58%,#f4f7fa 58% 100%);
  box-shadow:0 24px 54px rgb(7 27 52 / 9%);
}
#concept-csu .brand-lockup::before {
  position:absolute;
  top:30px;
  left:32px;
  content:"CSU / CURRENT SETUP UNIT";
  color:var(--c-navy);
  font-size:9px;
  font-weight:700;
  letter-spacing:.18em;
}
#concept-csu .brand-lockup::after {
  position:absolute;
  right:30px;
  bottom:27px;
  content:"META BUSINESS SUPPORT";
  color:#8a99aa;
  font-size:8px;
  font-weight:700;
  letter-spacing:.16em;
}
#concept-csu .brand-lockup img {
  width:min(560px,158%);
  max-width:none;
  max-height:none;
  object-fit:contain;
  filter:none;
  transform:translateY(4px);
}

@media (max-width:860px) {
  #concept-csu .brand-lockup { min-height:390px; }
  #concept-csu .brand-lockup img { width:min(520px,145%); }
}

/* CIP / CSUと共通のブランドパネル */
#concept-cip .brand-lockup {
  position:relative;
  width:100%;
  min-height:460px;
  justify-self:stretch;
  overflow:hidden;
  border:1px solid #cfd8e2;
  background:linear-gradient(135deg,#fff 0 58%,#f4f7fa 58% 100%);
  box-shadow:0 24px 54px rgb(7 27 52 / 9%);
}
#concept-cip .brand-lockup::before {
  position:absolute;
  top:30px;
  left:32px;
  content:"CIP / CURRENT INTELLIGENCE PLATFORM";
  color:var(--c-navy);
  font-size:9px;
  font-weight:700;
  letter-spacing:.15em;
}
#concept-cip .brand-lockup::after {
  position:absolute;
  right:30px;
  bottom:27px;
  content:"AI COMMERCE PLATFORM";
  color:#8a99aa;
  font-size:8px;
  font-weight:700;
  letter-spacing:.16em;
}
#concept-cip .brand-lockup img,
#concept-cip .brand-lockup--cip img {
  width:min(250px,66%);
  max-width:none;
  max-height:340px;
  object-fit:contain;
  filter:none;
}

@media (max-width:860px) {
  #concept-cip .brand-lockup { min-height:390px; }
  #concept-cip .brand-lockup img,
  #concept-cip .brand-lockup--cip img { width:min(230px,64%); }
}

/* CIP / 活用予定AIモデル */
.cip-ai-models { width:min(650px,100%); margin-top:42px; border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line); }
.cip-ai-models__label { margin:0; padding:15px 0 12px; color:var(--c-muted); font-size:9px; font-weight:700; letter-spacing:.14em; }
.cip-ai-models__list { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--c-line); }
.cip-ai-model { display:flex; min-height:74px; padding:16px 22px; flex-direction:column; justify-content:center; border-right:1px solid var(--c-line); }
.cip-ai-model:last-child { border-right:0; }
.cip-ai-model strong { color:var(--c-navy); font-size:20px; font-weight:600; letter-spacing:-.02em; line-height:1.2; }
.cip-ai-model small { margin-top:6px; color:var(--c-muted); font-size:9px; letter-spacing:.08em; }
.cip-ai-model--claude strong { font-family:Georgia,"Times New Roman",serif; font-weight:500; }
