/* Institutional platform overview. */
.platform-hero {
 min-height: 0;
 padding: 72px 0 76px;
 background: var(--surface);
}
.platform-hero-layout { display:grid; grid-template-columns: 1fr 1fr; align-items:center; gap:60px; }
.platform-hero h1 { max-width: 18ch; font-size:clamp(2.8rem,4vw,3.7rem); letter-spacing:-.035em; line-height:1.06; }
.platform-hero .hero-lead { max-width:440px; font-size:1.1rem; margin-bottom:28px; }
.platform-hero .hero-actions { gap:20px; flex-wrap:wrap; }
.platform-map { background:var(--white); border:1px solid var(--line); border-radius:20px; box-shadow:0 20px 50px rgba(4,45,54,.08); overflow:hidden; }
.platform-map-header { display:flex; align-items:center; gap:10px; padding:20px 24px; border-bottom:1px solid var(--line); }
.platform-map-header strong { font-size:1.15rem; }
.platform-map-header > span { margin-left:auto; color:var(--ink-soft); font-size:.75rem; }
.platform-map-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:12px; }
.platform-map-grid a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:22px 8px; border-radius:10px; text-decoration:none; transition:background .18s ease; }
.platform-map-grid a:hover { background:var(--cyan-pale); }
.platform-map-grid svg { width:29px; height:29px; color:var(--cyan-dark); margin-bottom:8px; }
.platform-map-grid strong { font-size:.94rem; }
.platform-map-grid span { font-size:.73rem; color:var(--ink-soft); }
.platform-map-footer { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; padding:15px; background:var(--ink); color:white; font-size:.75rem; }
.module-section { padding:64px 0 72px; background:var(--white); }
.module-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:36px; }
.module-heading h2 { max-width:630px; margin:0; font-size:clamp(2rem,3.3vw,3rem); }
.module-heading > p { max-width:300px; margin:0; }
.availability-note { font-size:.78rem; max-width:800px; margin:15px 0 0; }
.connected-section { background:var(--ink); color:white; padding:72px 0; }
.connected-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:center; }
.connected-layout h2 { font-size:clamp(2rem,3vw,2.9rem); }
.connected-layout p { color:#bdd9dc; }
.connected-layout .text-link,.connected-layout .text-link span { color:white; }
.journey-strip { display:grid; grid-template-columns:repeat(2,1fr); padding:0; list-style:none; gap:30px; margin:0; }
.journey-strip li { padding:20px 0; border-top:1px solid #53767e; }
.journey-strip svg { width:28px; height:28px; margin-bottom:12px; color:#8cd7dd; }
.journey-strip strong,.journey-strip span { display:block; }
.journey-strip strong { font-size:1.15rem; }
.journey-strip span { font-size:.8rem; color:#bdd9dc; }
.platform-summary { padding:60px 0; background:var(--white); }
.summary-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.summary-grid h2 { font-size:1.7rem; }
.summary-grid h3 { font-size:1.3rem; margin-bottom:20px; }
.summary-grid p { margin-bottom:15px; font-size:.9rem; }
.faq-section { padding:64px 0; }
.faq-intro h2 { font-size:clamp(2rem,3.2vw,3rem); }
@media (max-width: 1024px) {
 .platform-hero-layout { gap:32px; }
 .platform-hero h1 { font-size:3.4rem; }
 .platform-map-grid a { padding:20px 4px; }
 .connected-layout { gap:40px; }
}
@media (max-width: 820px) {
 .platform-hero { padding:48px 0; }
 .platform-hero-layout { grid-template-columns:1fr; gap:35px; }
 .platform-hero h1 { max-width:none; font-size:clamp(2.8rem,7vw,4rem); }
 .platform-hero .hero-lead { max-width:560px; }
 .platform-map { max-width:640px; width:100%; }
 .module-heading { display:block; }
 .module-heading > p { margin-top:16px; max-width:none; }
 .connected-layout { grid-template-columns:1fr; gap:28px; }
 .journey-strip { grid-template-columns:repeat(4,1fr); gap:18px; }
 .summary-grid { gap:35px; }
}
@media (max-width: 600px) {
 .platform-hero { padding:34px 0 40px; background:var(--surface); }
 .platform-hero h1 { font-size:clamp(2.25rem,9.3vw,3.2rem); line-height:1.08; }
 .platform-hero .hero-lead { font-size:1rem; line-height:1.55; }
 .platform-map-header { padding:16px; }
 .platform-map-header > span { font-size:.75rem; }
 .platform-map-grid { padding:6px; }
 .platform-map-grid a { padding:20px 3px; }
 .platform-map-grid strong { font-size:.8rem; }
 .platform-map-grid span { font-size:.75rem; }
 .platform-map-grid svg { width:26px; height:26px; }
 .platform-map-footer { gap:8px 14px; font-size:.7rem; }
 .module-section { padding:44px 0; }
 .module-heading { margin-bottom:26px; }
 .module-heading h2 { font-size:2rem; }
 .availability-note { font-size:.75rem; }
 .connected-section { padding:48px 0; }
 .journey-strip { grid-template-columns:1fr 1fr; gap:16px 24px; }
 .platform-summary { padding:44px 0; }
 .summary-grid { grid-template-columns:1fr; gap:25px; }
 .faq-section { padding:44px 0; }
}

/* A single connected route introduces the platform; controls remain immediate. */
.platform-hero h1 span { color:var(--cyan-dark); }
.platform-map { background:var(--ink-deep); border-color:var(--ink); color:var(--white); box-shadow:0 22px 48px rgba(4,45,54,.17); }
.platform-map-header { border-color:#315963; }
.platform-map-header > span { color:#bdd9dc; }
.platform-map-grid { position:relative; isolation:isolate; padding:18px 12px; }
.platform-map-grid a { position:relative; z-index:1; min-width:0; justify-content:flex-start; gap:7px; transition:background 180ms ease, transform 180ms ease; }
.platform-map-grid a:hover { background:#164954; transform:translateY(-3px); }
.platform-map-grid a:focus-visible { outline:2px solid #a4e6e9; outline-offset:-3px; background:#164954; }
.platform-map-grid a > svg { box-sizing:content-box; padding:13px; background:var(--ink-deep); border:1px solid #4b7b83; border-radius:14px; color:#9de2e6; }
.platform-map-grid span { color:#bdd9dc; font-size:.75rem; }
.platform-map-footer { font-size:.75rem; }
.platform-map-grid .module-route { position:absolute; inset:18px 0; width:100%; height:calc(100% - 36px); margin:0; color:#527f88; z-index:0; pointer-events:none; }
.module-route path { fill:none; stroke:currentColor; stroke-width:1; stroke-dasharray:4 5; }
.platform-map-footer { border-top:1px solid #315963; background:#0b3540; color:#cce5e6; }
.module-heading h2 { font-size:clamp(1.9rem,3vw,2.7rem); }
.journey-strip li { position:relative; }
.journey-strip li::after { content:""; position:absolute; top:-1px; left:0; width:34px; height:1px; background:#a5e3e5; }
@media (prefers-reduced-motion:no-preference) {
 .platform-hero-copy h1 { animation:platform-title 700ms cubic-bezier(.16,1,.3,1) both; }
 .platform-map { animation:platform-arrive 800ms cubic-bezier(.16,1,.3,1) both; }
 .platform-map-grid a { animation:module-arrive 600ms cubic-bezier(.16,1,.3,1) backwards; }
 .platform-map-grid a:nth-of-type(1) { animation-delay:100ms; }
 .platform-map-grid a:nth-of-type(2) { animation-delay:180ms; }
 .platform-map-grid a:nth-of-type(3) { animation-delay:260ms; }
 .platform-map-grid a:nth-of-type(4) { animation-delay:500ms; }
 .platform-map-grid a:nth-of-type(5) { animation-delay:420ms; }
 .platform-map-grid a:nth-of-type(6) { animation-delay:340ms; }
 .module-route path { stroke-dasharray:1100; stroke-dashoffset:0; animation:route-draw 1300ms cubic-bezier(.16,1,.3,1) both; }
 @keyframes platform-title { from { clip-path:inset(0 0 100%); transform:translateY(12px); } to { clip-path:inset(0); transform:none; } }
 @keyframes platform-arrive { from { opacity:.3; transform:translateY(20px) rotate(1deg); } to { opacity:1; transform:none; } }
 @keyframes module-arrive { from { opacity:.2; transform:translateY(10px); } to { opacity:1; transform:none; } }
 @keyframes route-draw { from { stroke-dashoffset:1100; } to { stroke-dashoffset:0; } }
}
@media (max-width:600px) {
 .platform-hero-layout { gap:24px; }
 .platform-hero .hero-actions { gap:8px; }
 .platform-map-header { padding:12px 16px; }
 .platform-map-grid { padding:6px; }
 .platform-map-grid a { padding:14px 3px; gap:4px; }
 .platform-map-grid a > svg { padding:9px; margin-bottom:5px; width:22px; height:22px; }
 .platform-map-grid .module-route { inset:6px 0; height:calc(100% - 12px); }
 .platform-map-footer { padding:11px 10px; }
}
@media (prefers-reduced-motion:reduce) {
 .platform-hero * { animation:none !important; transition:none !important; }
 .platform-map-grid a:hover { transform:none; }
}

/* Institutional overview and solution pages share the existing brand. */
.solutions-dropdown { position:relative; color:var(--ink); font-weight:700; }
.solutions-dropdown summary { cursor:pointer; padding:14px 8px; list-style-position:inside; }
.solutions-dropdown summary:focus-visible, .solutions-menu a:focus-visible { outline:2px solid var(--cyan-dark); outline-offset:3px; }
.solutions-menu { position:absolute; top:100%; left:0; width:330px; padding:10px; border:1px solid var(--line); border-radius:14px; background:var(--white); box-shadow:0 18px 36px rgba(4,45,54,.12); }
.solutions-menu a { display:block; padding:12px; border-radius:6px; font-size:.95rem; line-height:1.35; }
.solutions-menu a:hover { background:var(--surface); color:var(--cyan-dark); }
.solutions-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 48px; list-style:none; padding:0; margin:0; }
.solutions-directory li { border-top:1px solid var(--line); }
.solutions-directory a { display:block; padding:26px 0; }
.solutions-directory h3 { margin:0 0 8px; font-size:1.25rem; }
.solutions-directory p { margin:0 0 14px; max-width:55ch; }
.solutions-directory a:hover h3 { color:var(--cyan-dark); }
.solution-hero { padding:44px 0 64px; background:var(--surface); }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:36px; font-size:.9rem; }
.breadcrumbs a { text-decoration:underline; }
.solution-hero h1 { max-width:20ch; font-size:clamp(2.2rem,4.5vw,4rem); line-height:1.08; letter-spacing:-.035em; margin:0 0 24px; }
.solution-hero .hero-lead { max-width:62ch; margin-bottom:28px; }
.solution-body { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:80px; padding-top:60px; padding-bottom:60px; align-items:start; }
.solution-detail + .solution-detail { margin-top:44px; }
.solution-detail h2, .solution-question h2, .solution-related h2, .solution-flow h2 { font-size:1.6rem; line-height:1.25; margin:0 0 16px; }
.solution-detail p, .solution-question p { max-width:70ch; margin:0; }
.solution-flow { padding:28px; background:var(--surface); border-radius:14px; }
.solution-flow ol { padding-left:22px; margin:24px 0; }
.solution-flow li { padding:0 0 22px 8px; }
.solution-flow li:last-child { padding-bottom:0; }
.solution-flow p { font-size:.9rem; margin:0; }
.solution-question { padding:48px 0; background:var(--surface); }
.solution-question .availability-note { margin-top:20px; }
.solution-related { padding-top:56px; padding-bottom:56px; }
.solution-related > div { display:grid; grid-template-columns:1fr 1fr; gap:0 36px; }
.solution-related a { display:flex; justify-content:space-between; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); font-weight:700; }
.solution-cta { padding:56px 0; background:var(--ink-deep); color:var(--white); }
.solution-cta h2 { color:inherit; max-width:28ch; font-size:clamp(1.8rem,3vw,2.5rem); line-height:1.15; margin:0 0 18px; }
.solution-cta p { color:#cce5e6; margin:0 0 26px; }
.solution-cta .button { background:var(--white); color:var(--ink-deep); }
@media(max-width:820px) {
 .main-nav { max-height:calc(100dvh - var(--header-height)); overflow-y:auto; }
 .solutions-menu { position:static; width:auto; box-shadow:none; border-radius:8px; margin:0 0 10px; }
 .solutions-dropdown summary { min-height:48px; display:list-item; }
 .solution-body { grid-template-columns:1fr; gap:36px; }
 html:not(.js) .main-nav { max-height:none; overflow:visible; }
}
@media(max-width:600px) {
 .solutions-directory, .solution-related > div { grid-template-columns:1fr; }
 .solution-hero { padding:28px 0 44px; }
 .breadcrumbs { margin-bottom:28px; }
 .solution-body { padding-top:40px; padding-bottom:40px; }
 .solution-flow { padding:24px; }
}
