:root{
  --navy:#061b3f;
  --navy-2:#0a2b61;
  --blue:#1478d4;
  --blue-2:#48a7ff;
  --light:#f5f8fc;
  --line:#dbe6f4;
  --text:#10213f;
  --muted:#5d6b80;
  --white:#fff;
  --shadow:0 20px 60px rgba(6,27,63,.12);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:#fff;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1180px,92vw);margin-inline:auto}
.nav{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand img{width:235px;height:auto}.menu{display:flex;align-items:center;gap:26px;font-weight:700;font-size:.92rem;color:#253a5c}.menu a:not(.nav-cta){opacity:.78}.menu a:hover{opacity:1;color:var(--blue)}.nav-cta{padding:12px 18px;border:1px solid var(--navy);border-radius:999px;color:var(--navy)}
.hero{background-image:linear-gradient(90deg,rgba(2,12,31,.98) 0%,rgba(3,16,39,.92) 24%,rgba(5,24,58,.68) 46%,rgba(8,33,81,.28) 68%,rgba(8,33,81,.08) 100%),radial-gradient(circle at 72% 45%,rgba(35,138,255,.18),transparent 30%),url("images/hero-bg-02.png");background-size:cover,cover,cover;background-position:center,center,center right;background-repeat:no-repeat;color:white;padding:110px 0 90px;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;inset:auto -20% -45% 48%;height:600px;background:radial-gradient(circle,rgba(72,167,255,.18),transparent 60%);pointer-events:none}.hero-inner{position:relative;z-index:1}.hero-copy{max-width:760px}.eyebrow{margin:0 0 14px;color:var(--blue);text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:800}.hero .eyebrow,.light .eyebrow,.cta .eyebrow{color:#6fc1ff}.hero h1{font-size:clamp(2.35rem,4.3vw,4.15rem);line-height:1.05;margin:0 0 24px;letter-spacing:-.04em;max-width:760px}.lead{font-size:1.22rem;color:rgba(255,255,255,.82);max-width:760px;margin:0 0 34px}.actions{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:14px 22px;font-weight:800;border:1px solid transparent}.btn-primary{background:linear-gradient(135deg,var(--blue),var(--blue-2));color:white;box-shadow:0 14px 34px rgba(20,120,212,.28)}.btn-secondary{border-color:rgba(255,255,255,.35);color:white;background:rgba(255,255,255,.08)}
.section{padding:92px 0}.section.compact{padding:82px 0}.alt{background:var(--light)}.section-head{margin-bottom:40px}.section-head.center{text-align:center;max-width:820px;margin-inline:auto}.section-head.narrow{max-width:850px}.section h2{font-size:clamp(1.8rem,3vw,2.9rem);line-height:1.12;letter-spacing:-.03em;margin:0 0 18px;color:var(--navy)}.section p{font-size:1.04rem;color:var(--muted);margin:0}.challenge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.challenge-grid article,.solution,.benefit-row article,.resource-grid a,.capability-list div,.contact-card,.form{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 12px 40px rgba(6,27,63,.06)}.challenge-grid span{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:50%;background:#eaf4ff;color:var(--blue);font-weight:900;margin-bottom:18px}.challenge-grid h3,.solution h3,.benefit-row h3,.capability-list h3{font-size:1.08rem;margin:0 0 10px;color:var(--navy)}
.ecosystem{background:linear-gradient(180deg,#071b40,#06142f);color:#fff}.ecosystem h2,.light h2{color:white}.ecosystem .section-head p{color:rgba(255,255,255,.76)}.ecosystem-visual{border-radius:28px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.14);background:#06142f}.ecosystem-visual img{width:100%;height:auto}
.split-head{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:38px}.solution-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.icon{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:16px;background:#eaf4ff;color:var(--blue);font-weight:900;margin-bottom:18px}.two-col{display:grid;grid-template-columns:.86fr 1.14fr;gap:70px;align-items:start}.capability-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.benefit-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.benefit-row article{border-top:5px solid var(--blue)}.resource-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.resource-grid a{display:block}.resource-grid strong{display:block;color:var(--navy);font-size:1.08rem;margin-bottom:8px}.resource-grid span{display:block;color:var(--muted);font-size:.94rem}.cta{padding:90px 0;background:linear-gradient(135deg,#06142f,#0a2b61);color:white}.cta h2{color:white;font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.1;margin:0 0 16px}.cta p{color:rgba(255,255,255,.78);font-size:1.06rem}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta-inner div{max-width:760px}
.footer{background:#031027;color:white;padding:58px 0 26px}.footer-grid{display:grid;grid-template-columns:1.4fr .7fr .9fr;gap:50px}.footer img{width:220px;margin-bottom:20px}.footer h4{margin:0 0 12px;color:#6fc1ff;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}.footer p,.footer a{display:block;color:rgba(255,255,255,.74);margin:0 0 8px}.copyright{border-top:1px solid rgba(255,255,255,.14);margin-top:34px;padding-top:22px;color:rgba(255,255,255,.55);font-size:.92rem}.contact-page{background:var(--light)}.contact-grid{display:grid;grid-template-columns:.85fr 1fr;gap:48px;align-items:start}.contact-grid h1{font-size:clamp(2.15rem,4vw,3.6rem);line-height:1.08;margin:0 0 22px;color:var(--navy);letter-spacing:-.035em}.contact-grid .lead{color:var(--muted);font-size:1.15rem}.contact-card{margin-top:30px}.contact-card a{color:var(--blue);font-weight:800}.form{display:grid;gap:18px}.form label{display:grid;gap:8px;color:var(--navy);font-weight:800}.form input,.form textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:14px 16px;font:inherit;color:var(--text);background:#fff}.form textarea{resize:vertical}
@media(max-width:980px){.menu{display:none}.hero-inner,.split-head,.two-col,.contact-grid{grid-template-columns:1fr}.challenge-grid,.solution-grid,.benefit-row,.resource-grid{grid-template-columns:1fr 1fr}.hero{padding:78px 0}.section{padding:70px 0}.brand img{width:205px}.footer-grid{grid-template-columns:1fr}}
@media(max-width:640px){.challenge-grid,.solution-grid,.benefit-row,.resource-grid,.capability-list,.hero-card{grid-template-columns:1fr}.cta-inner{display:block}.cta .btn{margin-top:24px}.hero h1{font-size:2.3rem}.section h2{font-size:1.9rem}.nav-inner{height:72px}.brand img{width:185px}}

/* Directory */
.page-header{background:linear-gradient(180deg,#071b40,#06142f);color:#fff;padding:64px 0 56px}.page-header .eyebrow{color:#6fc1ff}.page-header h1{color:#fff;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.12;letter-spacing:-.03em;margin:0 0 12px}.page-header p{color:rgba(255,255,255,.78);font-size:1.04rem;margin:0;max-width:700px}
.filter-form{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr auto;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 12px 40px rgba(6,27,63,.06);margin:-34px 0 40px;position:relative;z-index:1}.filter-form label{display:grid;gap:6px;font-size:.8rem;font-weight:800;color:var(--navy)}.filter-form input,.filter-form select{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:.92rem;color:var(--text);background:#fff}.filter-form .filter-actions{display:flex;gap:8px}.filter-form .btn{padding:10px 16px;font-size:.88rem}
.result-count{color:var(--muted);margin:0 0 22px}
.directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.listing-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 12px 40px rgba(6,27,63,.06)}.listing-card img{width:100%;height:150px;object-fit:cover;background:var(--light)}.listing-card .listing-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}.listing-card h3{margin:0;font-size:1.08rem;color:var(--navy)}.listing-card .listing-type{color:var(--blue);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.listing-card .listing-location{color:var(--muted);font-size:.92rem}.listing-card p{color:var(--muted);font-size:.92rem;margin:0;flex:1}
.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-block;background:#eaf4ff;color:var(--blue);border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:700}.tag.alt{background:var(--light);color:var(--navy)}
.empty-state{background:var(--light);border:1px dashed var(--line);border-radius:20px;padding:48px;text-align:center;color:var(--muted)}
.pagination{display:flex;gap:8px;justify-content:center;margin-top:40px;flex-wrap:wrap}.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border-radius:999px;border:1px solid var(--line);color:var(--navy);font-weight:700;padding:0 6px}.pagination a:hover{border-color:var(--blue);color:var(--blue)}.pagination .current{background:var(--navy);color:#fff;border-color:var(--navy)}
.institution-hero{display:grid;grid-template-columns:.9fr 1.3fr;gap:40px;align-items:start}.institution-hero img{width:100%;border-radius:20px;box-shadow:0 20px 60px rgba(6,27,63,.12)}.institution-hero .no-image{width:100%;aspect-ratio:4/3;border-radius:20px;background:var(--light);display:flex;align-items:center;justify-content:center;color:var(--muted)}
.hours-table{width:100%;border-collapse:collapse}.hours-table td{padding:8px 0;border-bottom:1px solid var(--line);font-size:.94rem}.hours-table td:first-child{font-weight:700;color:var(--navy);width:40%}.hours-table td:last-child{color:var(--muted)}
@media(max-width:980px){.filter-form{grid-template-columns:1fr 1fr;margin-top:0}.directory-grid{grid-template-columns:1fr 1fr}.institution-hero{grid-template-columns:1fr}}
@media(max-width:640px){.filter-form{grid-template-columns:1fr}.directory-grid{grid-template-columns:1fr}}
