/* Services + About only. Loaded directly by these two pages.
   Uses Phase 02.1 brand tokens and existing shared navigation/Logo. */
.corporate-page {
    color-scheme:light;
    --c-text:var(--brand-ink); --c-text-soft:var(--brand-muted);
    --c-text-muted:var(--brand-muted); --c-primary:var(--brand-blue);
    color:var(--brand-ink); background:var(--brand-paper); font-family:var(--brand-font);
}
body.corporate-page > :is(#header,#navbar,main,#footer) { opacity:1; }
.corporate-page :is(.site-header,.site-footer) .brand-tagline { color:#c8d5ec; font-size:10px; letter-spacing:.015em; }
.corp-main { padding-top:var(--header-h); }
.corp-shell { width:min(calc(100% - 80px),1240px); margin-inline:auto; }
.corp-main h1, .corp-main h2, .corp-main h3 { color:inherit; max-width:none; font-weight:650; text-wrap:balance; }
.corp-main h1 { margin:0; font-size:clamp(38px,3.7vw,54px); line-height:1.4; letter-spacing:-.035em; white-space:pre-line; }
.corp-main h2 { margin:0; font-size:clamp(28px,2.7vw,38px); line-height:1.5; letter-spacing:-.035em; white-space:pre-line; }
.corp-main h3 { margin:0 0 12px; font-size:22px; line-height:1.5; letter-spacing:-.015em; }
.corp-main h4 { font-size:13px; line-height:1.6; font-weight:650; color:var(--brand-ink); margin:0 0 18px; }
.corp-main p { font-size:15px; line-height:1.9; margin:0; }
.corp-main a { text-decoration:none; }
.corp-main :is(a,button):focus-visible { outline:2px solid #7593ff; outline-offset:5px; }
.corp-main .corp-kicker, .corp-main .corp-label { font-size:12px; font-weight:600; line-height:1.6; letter-spacing:.12em; margin:0 0 24px; }
.corp-main .corp-label { color:var(--brand-blue); }
.corp-main .corp-kicker { color:#b4c5f6; }
.corp-hero { background:var(--brand-navy); color:#fff; border-bottom:4px solid #e4eaf6; }
.corp-hero-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:100px; align-items:center; padding-block:68px 72px; }
.corp-hero-copy { min-width:0; }
.corp-main .corp-lead { color:#d2dbee; font-size:16px; line-height:1.9; max-width:600px; margin-top:24px; }
.corp-hero .corp-button { margin-top:30px; }
.corp-button { min-height:52px; display:inline-flex; justify-content:space-between; align-items:center; gap:32px; padding:13px 22px; border-radius:4px; font-size:14px; font-weight:600; line-height:1.5; border:1px solid transparent; transition:background .18s ease; }
.corp-button > span[aria-hidden] { font-size:21px; line-height:1; }
.corp-button.primary { color:#fff; background:var(--brand-blue); border-color:#6480dc; }
.corp-button.primary:hover { background:#2647ba; }
.corp-button.light { color:var(--brand-navy); background:#fff; }
.corp-button.light:hover { background:#e5ecff; }
.corp-text-link { color:#e1e7f5; font-size:13px; display:inline-flex; align-items:center; gap:16px; min-height:44px; }
.corp-text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.corp-number { color:var(--brand-blue); font:12px/1.5 ui-monospace,monospace; }
.service-index { border-top:1px solid #405274; }
.corp-main .index-label { color:#b4c5f6; font-size:12px; letter-spacing:.06em; margin:20px 0 14px; }
.service-index a { display:grid; grid-template-columns:28px 1fr 20px; gap:16px; align-items:center; color:#edf2ff; border-bottom:1px solid #304362; padding:20px 0; font-size:16px; line-height:1.7; }
.service-index a .corp-number { color:#9bb4ff; }
.service-index a > span:last-child { color:#b6caff; }
.service-index a:hover { background:#19243c; }
.corp-section { padding:88px 0; }
.corp-tint { background:var(--brand-canvas); }
.corp-section-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:end; margin-bottom:48px; }
.corp-main .corp-intro { color:var(--brand-muted); max-width:540px; }
.service-detail { display:grid; grid-template-columns:minmax(0, .75fr) minmax(0,1.6fr); gap:64px; border-top:1px solid #ccd4e3; padding:42px 0 46px; scroll-margin-top:calc(var(--header-h) + 24px); }
.service-detail:last-child { border-bottom:1px solid #ccd4e3; padding-bottom:42px; }
.service-identity, .service-content { min-width:0; }
.service-symbol { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; color:var(--brand-blue); }
.corp-icon { display:block; width:36px; height:36px; flex-shrink:0; }
.service-identity h3 { font-size:25px; }
.service-identity p { max-width:350px; color:var(--brand-muted); }
.service-columns { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.service-columns ul { margin:0; padding:0; list-style:none; }
.service-columns li { font-size:14px; line-height:1.85; color:var(--brand-muted); margin-bottom:12px; padding-left:15px; position:relative; }
.service-columns li::before { content:""; width:4px; height:4px; position:absolute; left:0; top:.8em; background:#6b85cd; }
.service-columns li:last-child { margin-bottom:0; }
.service-flow { border-top:1px solid var(--brand-line); margin-top:28px; padding-top:20px; }
.corp-main .flow-label { color:var(--brand-blue); font-size:11px; margin-bottom:12px; }
.service-flow ol { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.service-flow li { font-size:12px; line-height:1.7; color:var(--brand-ink); position:relative; padding-right:8px; }
.service-flow li:not(:last-child)::after { content:"→"; color:#6b85cd; position:absolute; top:0; right:-16px; }
.working-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; margin:0; padding:0; }
.working-steps li { border-top:1px solid #b7c7ec; padding:26px 38px 0 0; position:relative; }
.working-steps li::before { content:""; width:7px; height:7px; position:absolute; left:0; top:-4px; border:1px solid var(--brand-blue); background:var(--brand-canvas); }
.working-steps h3 { font-size:20px; margin:18px 0 10px; }
.working-steps p { font-size:14px; }
.corp-cta { background:var(--brand-navy); color:#fff; padding:72px 0; }
.corp-cta-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:80px; align-items:center; }
.corp-cta h2 { font-size:32px; }
.corp-cta p:not(.corp-kicker) { color:#bdc9df; margin-top:20px; font-size:14px; }
.corp-cta-action { justify-self:end; max-width:340px; }
.corp-cta-action .corp-button { width:100%; }
.corp-cta-action .corp-text-link { margin-top:16px; }
.corp-cta .corp-note { font-size:11px; line-height:1.8; }
.about-hero-grid { grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); }
.preparation-panel { border-top:1px solid #405274; border-bottom:1px solid #405274; padding:28px 0; }
.preparation-panel .status-line { display:block; height:3px; width:32px; background:#9bb4ff; margin-bottom:28px; }
.preparation-panel .corp-kicker { margin-bottom:14px; }
.preparation-panel h2 { font-size:27px; letter-spacing:-.02em; }
.preparation-panel p:last-child { color:#c8d5ec; margin-top:18px; font-size:14px; }
.brand-principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--brand-line); border-bottom:1px solid var(--brand-line); }
.brand-principles article { padding:34px 38px; border-right:1px solid var(--brand-line); min-width:0; }
.brand-principles article:first-child { padding-left:0; }
.brand-principles article:last-child { padding-right:0; border-right:0; }
.brand-initial { color:var(--brand-blue); display:block; font-size:64px; font-weight:400; line-height:1; margin-bottom:30px; letter-spacing:-.05em; }
.brand-principles h3 { font-size:23px; font-weight:500; margin-bottom:6px; }
.corp-main .value-title { color:var(--brand-ink); font-size:13px; margin-bottom:20px; }
.brand-principles p:last-child { font-size:14px; }
.corp-main .brand-explanation { font-size:12px; margin-top:24px; max-width:900px; }
.principles-layout { display:grid; grid-template-columns:1fr 1.15fr; gap:100px; }
.principles-list { list-style:none; margin:0; padding:0; }
.principles-list li { display:grid; grid-template-columns:32px 1fr; gap:22px; padding:26px 0; border-top:1px solid #ccd4e3; }
.principles-list li:first-child { padding-top:0; border-top:0; }
.principles-list li:last-child { padding-bottom:0; }
.principles-list .corp-number { padding-top:6px; }
.principles-list h3 { font-size:22px; }
.principles-list p { font-size:14px; }
.brand-profile { margin:0; border-top:1px solid #ccd4e3; }
.brand-profile > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.4fr); gap:56px; padding:24px 0; border-bottom:1px solid var(--brand-line); }
.brand-profile dt { font-size:14px; font-weight:600; line-height:1.8; }
.brand-profile dd { font-size:14px; line-height:1.9; margin:0; color:var(--brand-muted); }
.corp-skip { position:fixed; top:-100px; left:20px; z-index:2000; background:white; color:var(--brand-ink); padding:12px 20px; border:2px solid var(--brand-blue); }
.corp-skip:focus { top:12px; }
html[lang="en"] .corp-main h1 { font-size:clamp(38px,3.5vw,50px); line-height:1.18; }
html[lang="en"] .service-identity h3 { font-size:25px; }
@media (max-width:1099px) {
    .corp-hero-grid, .corp-section-heading, .principles-layout { gap:48px; }
    .service-detail { gap:40px; grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr); }
    .service-columns { gap:24px; }
    .service-identity h3 { font-size:22px; }
}
@media (max-width:760px) {
    .corp-shell { width:calc(100% - 40px); }
    .corp-hero-grid, .about-hero-grid { grid-template-columns:1fr; gap:32px; padding-block:36px 40px; }
    .corp-main h1 { font-size:34px; line-height:1.4; }
    html[lang="en"] .corp-main h1 { font-size:34px; }
    .corp-main h2 { font-size:28px; }
    .corp-main .corp-kicker, .corp-main .corp-label { font-size:11px; margin-bottom:16px; }
    .corp-main .corp-lead { font-size:14px; margin-top:18px; }
    .corp-hero .corp-button { margin-top:24px; }
    .corp-button { min-height:50px; font-size:13px; padding:12px 18px; gap:25px; }
    .service-index a { font-size:14px; padding:14px 0; gap:12px; }
    .corp-main .index-label { margin:16px 0 4px; font-size:11px; }
    .corp-section { padding:60px 0; }
    .corp-section-heading { grid-template-columns:1fr; gap:20px; margin-bottom:32px; }
    .corp-main .corp-intro { font-size:14px; }
    .service-detail { grid-template-columns:1fr; gap:28px; padding:30px 0 36px; }
    .service-symbol { margin-bottom:14px; }
    .service-identity h3, html[lang="en"] .service-identity h3 { font-size:23px; }
    .service-identity p { font-size:14px; }
    .service-columns { grid-template-columns:1fr; gap:24px; }
    .corp-main h4 { margin-bottom:12px; }
    .service-columns li { font-size:14px; margin-bottom:8px; }
    .service-flow { padding:18px; background:var(--brand-canvas); border:0; margin-top:24px; }
    .service-flow ol { grid-template-columns:1fr; gap:12px; }
    .service-flow li { padding-left:16px; padding-right:0; font-size:12px; }
    .service-flow li::before { content:""; width:4px; height:4px; border:1px solid #6b85cd; position:absolute; left:0; top:.6em; }
    .service-flow li:not(:last-child)::after { content:""; width:1px; background:#bccbee; top:calc(.6em + 5px); bottom:-16px; left:1.5px; right:auto; }
    .working-steps { grid-template-columns:1fr; }
    .working-steps li { border-top:0; border-left:1px solid #b7c7ec; padding:0 0 28px 24px; margin-left:4px; }
    .working-steps li::before { left:-4px; top:6px; }
    .working-steps li:last-child { padding-bottom:0; }
    .working-steps h3 { margin:8px 0; }
    .corp-cta { padding:52px 0; }
    .corp-cta-grid { grid-template-columns:1fr; gap:28px; }
    .corp-cta h2 { font-size:27px; }
    .corp-cta-action { justify-self:stretch; max-width:none; }
    .preparation-panel { padding:24px 0; }
    .preparation-panel .status-line { margin-bottom:20px; }
    .preparation-panel h2 { font-size:24px; }
    .brand-principles { grid-template-columns:1fr; }
    .brand-principles article, .brand-principles article:first-child, .brand-principles article:last-child { padding:28px 0; border-right:0; border-bottom:1px solid var(--brand-line); }
    .brand-principles article:last-child { border-bottom:0; }
    .brand-initial { font-size:48px; margin-bottom:18px; }
    .corp-main .value-title { margin-bottom:12px; }
    .corp-main .brand-explanation { font-size:11px; }
    .principles-layout { grid-template-columns:1fr; gap:32px; }
    .principles-list li { grid-template-columns:24px 1fr; gap:16px; }
    .principles-list h3 { font-size:21px; }
    .brand-profile > div { grid-template-columns:1fr; gap:10px; padding:22px 0; }
    .corporate-page .site-header .brand-tagline { font-size:9px; letter-spacing:0; }
}
@media (prefers-reduced-motion:reduce) {
    .corp-main *, .corp-main *::before, .corp-main *::after { transition:none !important; }
}
