/* Homepage concept only. Service-owned modules retain their own styles.
   Change rhythm at the argument boundaries, not at every paragraph. */
.cc-measurement { background:#eaf1f7; padding:82px 0 70px; color:#263e58; }
.cc-measurement-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:72px; align-items:start; }
.cc-measurement-heading h2 { font-size:clamp(27px,2.65vw,39px); line-height:1.8; }
.cc-measurement-heading h2 span { color:#356080; }
.cc-measurement-copy { padding-top:9px; max-width:490px; }
.cc-measurement-copy p { font-size:14px; line-height:2; }
.cc-measurement-copy .cc-lead { font-size:18px; color:#263e58; line-height:1.9; margin-bottom:24px; }
.cc-design-map { margin-top:50px; background:#fff; border:1px solid #cbd9e5; padding:27px 32px 22px; }
.cc-map-heading { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:28px; }
.cc-map-heading h3 { font-size:21px; }
.cc-map-heading p { font-size:12px; }
.cc-map-steps { margin:0; padding:0; list-style:none; display:grid; grid-template-columns:1fr; }
.cc-map-steps li { position:relative; display:grid; grid-template-columns:minmax(200px, .8fr) 1.6fr; gap:40px; padding:24px 0; border-top:1px solid #a9bfce; }
.cc-map-steps li:first-child { padding-left:0; }
.cc-map-steps li:last-child { padding-right:0; }
.cc-map-steps li+li::before { content:'↓'; position:absolute; left:0; top:-12px; background:#fff; padding-right:8px; color:#5a7f99; font-size:20px; line-height:1; }
.cc-map-steps h4 { font:500 16px/1.8 var(--cs-sans); color:#263e58; margin:0 0 12px; }
.cc-map-steps p { font-size:13px; line-height:1.9; }
.cc-map-steps p+p { margin-top:8px; }
.cc-step-number { display:block; margin-bottom:6px; font-size:13px; color:#00266c; }
.cc-map-foot { border-top:1px solid #dce5ed; margin-top:16px; padding-top:16px; font-size:12px; line-height:1.9; }
.cc-ai { padding:84px 0 74px; background:#fff; }
.cc-ai-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:65px; align-items:center; }
.cc-ai-image { margin:0; }
.cc-ai-image img { width:100%; }
.cc-ai-copy h2 { font-size:clamp(26px,2.25vw,33px); margin-bottom:26px; }
.cc-ai-copy p { font-size:14px; line-height:2.1; }
.cc-ai-copy .cc-ai-position { border-left:2px solid #7897ae; padding:12px 0 12px 22px; margin:26px 0; color:#263e58; font-size:18px; line-height:1.9; }
.cs-full-analysis { background:#edf2f5; padding:64px 0; }
.cs-full-analysis-layout { display:grid; grid-template-columns:1fr 1.2fr; gap:60px; align-items:start; }
.cs-full-analysis h2 { font-size:clamp(24px,2.5vw,34px); line-height:1.65; }
.cs-full-analysis h2 span { display:block; font:400 14px/1.8 var(--cs-sans); margin-bottom:12px; }
.cs-full-analysis p { font-size:15px; line-height:2; margin:0 0 16px; }
.cs-full-analysis .cs-link { margin-top:12px; }
@media(max-width:760px) { .cs-full-analysis { padding:40px 0; } .cs-full-analysis-layout { grid-template-columns:1fr; gap:24px; } }
.cs-studio { padding-block:64px; }
.cs-studio-intro { display:grid; grid-template-columns:1fr 1.15fr; gap:60px; padding-top:40px; border-top:1px solid #bdc7ce; }
.cs-studio-link { display:block; margin-top:36px; color:#171c23; text-decoration:none; }
.cs-studio h2 { margin:0; }
.cs-studio h2 { font-size:clamp(23px,2.5vw,34px); line-height:1.85; }
.cs-studio-logo { display:block; width:242px; max-width:100%; height:auto; margin-bottom:30px; }
.cs-studio-capture { display:block; width:100%; height:auto; border:1px solid #e1e5e8; }
.cs-studio-copy p { font-size:15px; line-height:2.1; margin:0 0 18px; }
.cs-studio-logo.is-revealed { animation:cs-studio-arrive 1.4s cubic-bezier(.16,.86,.24,1) both; }
/* OPEN JAPAN's lockup entrance, restrained for the white corporate page. */
@keyframes cs-studio-arrive { 0% { opacity:0; transform:translateX(-36px); filter:blur(4px); } 58% { opacity:1; transform:translateX(4px); filter:blur(0); } 78% { transform:translateX(-1px); } 100% { opacity:1; transform:none; filter:none; } }
@media(prefers-reduced-motion:reduce) { .cs-studio-logo.is-revealed { animation:none; } }
.cs-studio-destination { display:flex; align-items:center; justify-content:space-between; margin-top:26px; font-size:12px; letter-spacing:.08em; }
.cs-studio-destination span { font-size:28px; }
.cs-studio-link:hover .cs-studio-destination { text-decoration:underline; text-underline-offset:5px; }
.cs-studio-link:focus-visible { outline:2px solid #00266c; outline-offset:6px; }
@media(max-width:760px) { .cs-studio { padding-block:40px; } .cs-studio-intro { grid-template-columns:1fr; gap:24px; padding-top:30px; } .cs-studio-copy p { font-size:14px; } .cs-studio-link { margin-top:24px; } }
.cc-proof { background:#f1f5f8; padding:45px 0; border-block:1px solid #dce5ed; }
.cc-proof .cs-record-table { padding-bottom:0; }
.cc-proof .cs-record-paper { box-shadow:none; }
@media(max-width:1000px) {
  .cc-measurement-heading { gap:32px; grid-template-columns:1fr 1fr; }
  .cc-ai-layout { gap:30px; }
  .cc-map-steps { grid-template-columns:1fr; }
  .cc-map-steps li,.cc-map-steps li:first-child,.cc-map-steps li:last-child { display:grid; grid-template-columns:185px 1fr; gap:25px; padding:18px 0; }
  .cc-map-steps li+li::before { content:'↓'; left:0; top:-12px; background:#fff; padding-right:8px; }
  .cc-map-steps h4 { margin:0; }
  .cc-map-steps p br { display:none; }
}
@media(max-width:760px) {
  .cc-measurement,.cc-ai { padding:48px 0; }
  .cc-measurement-heading,.cc-ai-layout { grid-template-columns:1fr; gap:26px; }
  .cc-measurement-heading h2 { font-size:27px; }
  .cc-measurement-copy { max-width:none; }
  .cc-design-map { margin-top:30px; padding:22px 20px; }
  .cc-map-heading { display:block; margin-bottom:20px; }
  .cc-map-heading p { margin-top:8px; }
  .cc-map-steps li,.cc-map-steps li:first-child,.cc-map-steps li:last-child { grid-template-columns:1fr; gap:6px; }
  .cc-ai-copy { grid-row:1; }
  .cc-ai-image { max-width:540px; margin-inline:auto; }
  .cc-ai-copy .cc-ai-position { font-size:17px; padding-left:16px; }
  .cc-proof { padding:30px 0; }
}
.cs-scenes { position:absolute; inset:0; pointer-events:none; opacity:.48; mask-image:linear-gradient(to right,transparent 20%,#000 62%); }
.cs-scenes canvas { position:absolute; inset:0; width:100%; height:100%; filter:url(#corporate-scene-blue); }
.cs-scenes canvas[data-scene="silk"] { filter:url(#corporate-scene-original); }
.cs-scenes canvas[data-scene="dust"] { filter:url(#corporate-scene-dust); }
.cs-scenes[hidden] { display:none; }
.cc-roadmap { padding-block:60px 76px; }
.cc-roadmap-heading { display:flex; justify-content:space-between; gap:35px; align-items:start; margin-bottom:32px; }
.cc-roadmap-heading h2 { font-size:clamp(25px,2.7vw,36px); }
.cc-roadmap-heading h2 span { display:inline-block; }
.cc-roadmap-heading p { font-size:14px; margin:0; }
.cc-roadmap-start { display:flex; gap:28px; align-items:baseline; padding:22px 0; border-block:1px solid #adbfce; }
.cc-roadmap h3 { font-family:var(--cs-sans); font-size:16px; font-weight:600; margin:0; }
.cc-roadmap-start p { font-size:13px; margin:0; }
.cc-roadmap-arrow { font-size:26px; color:#00266c; line-height:1; margin:12px 0 12px 30px; }
.cc-research-map { background:#edf3f8; padding:0 28px; }
.cc-research-row { display:grid; grid-template-columns:250px 1fr; gap:30px; padding:22px 0; }
.cc-research-row + .cc-research-row { border-top:1px solid #c6d5e2; }
.cc-research-row h3 { color:#00266c; font-size:15px; }
.cc-research-row ul { padding:0; margin:0; list-style:none; font-size:13px; line-height:1.9; }
.cc-research-row li + li { margin-top:5px; }
.cc-roadmap-result { padding:24px 0; border-block:1px solid #adbfce; }
.cc-roadmap-result h3 { font-size:24px; color:#00266c; }
.cc-roadmap-result p { font-size:14px; margin:14px 0; }
.cc-roadmap-result .cs-link { font-size:13px; }
.cc-roadmap-note { margin-top:14px; }
@media(max-width:700px) { .cc-roadmap { padding-block:42px; } .cc-roadmap-heading,.cc-roadmap-start { display:block; } .cc-roadmap-heading p,.cc-roadmap-start p { margin-top:14px; } .cc-research-row { grid-template-columns:1fr; gap:12px; } .cc-research-map { padding-inline:20px; } .cc-roadmap-result h3 { font-size:21px; } }
