/* Corporate introduction: clear typography and an ordered service brief. */
.hero-corporate { background:#f5f8fb; border-bottom:1px solid var(--line); }
.hero-corporate .hero-grid { grid-template-columns:1.12fr .88fr; gap:64px; padding-block:64px; align-items:center; }
.hero-corporate .hero-copy { padding:24px 0; }
.hero-corporate h1 { font-size:clamp(2rem,3.3vw,3.1rem); line-height:1.45; letter-spacing:.015em; }
.hero-corporate .hero-summary { line-height:1.95; }
.hero-corporate .hero-metrics { display:none; }
.hero-corporate .eyebrow { font-size:.8rem; letter-spacing:.1em; }
.service-overview { border-top:3px solid var(--navy); background:#fff; padding:28px 32px 22px; }
.overview-label { margin:0 0 14px; color:var(--muted); font-size:.875rem; letter-spacing:.06em; }
.service-overview h2 { margin:0 0 22px; color:var(--navy); font-size:1.5rem; line-height:1.55; font-weight:700; }
.overview-list { list-style:none; margin:0; padding:0; }
.overview-list li { display:grid; grid-template-columns:34px 1fr; gap:14px; padding:15px 0; border-top:1px solid var(--line); transition:padding .25s ease,background .25s ease; }
.overview-list li:hover { padding-left:10px; background:#f4f8fc; }
.overview-list li>span { color:var(--blue); font-size:.875rem; padding-top:3px; font-variant-numeric:tabular-nums; }
.overview-list h3 { margin:0 0 3px; color:var(--navy); font-size:1.0625rem; }
.overview-list p { margin:0; font-size:.875rem; color:var(--muted); }
.overview-note { border-top:1px solid var(--line); padding-top:16px; margin:6px 0 0; font-size:.875rem; color:var(--muted); }
@media(max-width:1100px) { .hero-corporate .hero-grid { gap:36px; } .service-overview { padding-inline:24px; } }
@media(max-width:960px) { .hero-corporate .hero-grid { grid-template-columns:1fr; gap:30px; padding-block:40px; } .hero-corporate .hero-copy { padding:10px 0; } .overview-list { display:grid; grid-template-columns:1fr 1fr; column-gap:28px; } }
@media(max-width:560px) { .hero-corporate .hero-grid { padding-block:32px; } .hero-corporate h1 { font-size:clamp(1.75rem,7vw,2.05rem); } .service-overview { padding:23px 20px 20px; } .service-overview h2 { font-size:1.3rem; } .overview-list { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .overview-list li { transition:none; } }

/* Wide layouts use proportional gutters instead of a fixed 1180px column. */
:root { --page-gutter:clamp(20px,4vw,160px); }
.container { width:calc(100% - var(--page-gutter) * 2); max-width:none; }
.hero-corporate .hero-grid { width:100%; grid-template-columns:1.08fr 1fr; gap:0; align-items:stretch; padding:0; }
.hero-corporate .hero-copy { padding:clamp(48px,5vw,140px) clamp(30px,4vw,160px); align-self:center; }
.hero-corporate h1 { font-size:clamp(2rem,3.15vw,6.8rem); line-height:1.4; letter-spacing:.015em; }
.hero-corporate .hero-summary { max-width:44em; font-size:clamp(1rem,1.1vw,1.6rem); line-height:1.95; }
.hero-corporate .eyebrow { font-size:clamp(.8rem,.85vw,1.15rem); }
.architecture-panel { display:flex; flex-direction:column; justify-content:center; min-width:0; padding:clamp(32px,4vw,130px); color:#fff; background:#164d80; }
.architecture-panel .map-kicker { font-size:clamp(.8rem,.85vw,1.15rem); margin-bottom:20px; }
.architecture-panel svg { display:block; width:100%; height:auto; overflow:visible; }
.architecture-node rect { fill:#123f6b; stroke:#a6c6df; stroke-width:1.3; transition:fill .25s ease; }
.architecture-node:hover rect { fill:#226aa3; }
.architecture-node text { fill:#fff; text-anchor:middle; font-size:20px; font-family:inherit; font-weight:700; }
.architecture-node .architecture-detail { font-size:13px; fill:#cce1f2; font-weight:400; }
.architecture-panel .map-explainer { margin-top:24px; padding-top:22px; }
.architecture-panel .map-explainer strong { font-size:clamp(1rem,1vw,1.4rem); }
.architecture-panel .map-explainer p { font-size:clamp(.9rem,.95vw,1.3rem); max-width:48em; }
.flow-step,.flow-step:first-child { padding:clamp(24px,2vw,64px); }
.split-heading>p,.process-copy>p:not(.eyebrow) { max-width:45em; }
.case-stage { display:grid; min-height:370px; }
.case-detail { grid-area:1 / 1; position:relative; inset:auto; min-width:0; }
.case-visual svg { max-width:750px; }
[data-reveal] { opacity:1; transform:none; }
.reveal-ready [data-reveal] { opacity:0; transform:translateY(52px); transition:opacity .8s ease var(--reveal-delay,0ms),transform .9s cubic-bezier(.2,.75,.2,1) var(--reveal-delay,0ms); }
.reveal-ready .process-timeline [data-reveal] { transform:translateX(36px); }
.reveal-ready [data-reveal].is-visible { opacity:1; transform:none; }
.reveal-ready .architecture-panel:not(.is-visible) .architecture-node { opacity:0; }
.architecture-panel.is-visible .architecture-node { animation:architecture-enter .7s ease var(--node-delay) both; }
.architecture-panel.is-visible .architecture-lines path { stroke-dasharray:1; animation:architecture-draw 1.4s ease .3s both; }
@keyframes architecture-enter { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes architecture-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@media(min-width:1920px) {
  .section,.process-section { padding-block:clamp(88px,5vw,180px); }
  .section-heading h2,.process-copy h2 { font-size:clamp(2.45rem,2.2vw,4.5rem); }
  .flow-step h3,.needs-grid h3 { font-size:clamp(1.16rem,1.1vw,2rem); }
  .flow-step p,.flow-step ul,.needs-grid p,.process-timeline p { font-size:clamp(.95rem,.85vw,1.5rem); }
}
@media(max-width:960px) { .hero-corporate .hero-grid { grid-template-columns:1fr; } .hero-corporate .hero-copy { padding:48px var(--page-gutter); } .architecture-panel { padding:36px var(--page-gutter); } .architecture-panel svg { max-width:760px; align-self:center; } }
@media(max-width:760px) { :root { --page-gutter:20px; } .case-stage { min-height:0; } .hero-corporate h1 { font-size:clamp(1.75rem,5.8vw,2.6rem); } .reveal-ready [data-reveal] { transform:translateY(28px); } .reveal-ready [data-reveal].is-visible { transform:none; } .hero-corporate .hero-copy { padding-block:42px; } }
@media(prefers-reduced-motion:reduce) {
  .reveal-ready [data-reveal],.reveal-ready .process-timeline [data-reveal] { opacity:1; transform:none; transition:none; }
  .architecture-panel .architecture-node,.architecture-panel .architecture-lines path { animation:none!important; opacity:1!important; stroke-dashoffset:0; }
}
