:root { --navy:#10334e; 
  --blue:#007bb6; 
  --sky:#eaf7ff; 
  --text:#203243; 
  --muted:#536676; 
  --border:#dbe5eb; 
}
* { 
  box-sizing:border-box; 
}
html { 
  scroll-behavior:smooth; 
}
body { 
  margin:0; color:var(--text); 
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.65; 
  background:#fff; 
}
a { 
  color:var(--blue); 
}
a:focus-visible, summary:focus-visible { 
  outline:3px solid #d19b16; 
  outline-offset:5px; 
}
img { max-width:100%; }
.container { 
  max-width:1450px; 
  margin:auto; 
  padding-left:24px; 
  padding-right:24px; 
}
.site-header { 
  display:flex; 
  justify-content:space-between; 
  align-items:center; 
  padding:12px max(24px,calc((100vw - 1072px)/2)); 
  background:white; 
  box-shadow:0 2px 16px #122f4a12; 
  gap:20px; 
}
.brand { 
  display:flex; align-items:center; 
  gap:12px; color:var(--navy); 
  font-weight:800; 
  text-decoration:none; 
}
.brand img { 
  width:65px; 
  height:70px; 
  object-fit:contain; 
}
.site-header nav { 
  display:flex; 
  gap:22px; 
  flex-wrap:wrap; 
}
.site-header nav a { 
  text-decoration:none; 
  color:var(--navy); 
  font-weight:600; 
  font-size:.95rem; 
}
.site-header nav a:hover { 
  color:var(--blue); 
  text-decoration:underline; 
}
.hero { 
  background:linear-gradient(115deg,#10334e 0%,#006da8 100%); 
  color:white; 
  padding:56px 0 64px; 
  overflow:hidden; 
}
.hero-grid { 
  display:grid; 
  grid-template-columns:1.25fr .75fr; 
  align-items:center; 
  gap:48px; 
}
.eyebrow { 
  color:var(--blue); 
  font-size:.78rem; 
  font-weight:800; 
  letter-spacing:.12em; 
}
.hero .eyebrow { color:#9cddff; }
h1 { 
  font-size:clamp(2.3rem,5vw,4.2rem); 
  line-height:1.12; 
  margin:12px 0 24px; 
  letter-spacing:-.025em; 
}
h1 span { color:#66ceff; }
.intro { font-size:1.13rem; color:#e0f2fd; }
.hero-image { 
  width:100%; 
  height:460px; 
  object-fit:contain; 
  object-position:bottom; 
  border-radius:16px; 
  background:#ffffff0a; 
}
.hero-actions { 
  display:flex; 
  gap:12px; 
  flex-wrap:wrap; 
  margin-top:28px; 
}
.btn { 
  display:inline-block; 
  border-radius:8px; 
  padding:13px 22px; 
  text-decoration:none; 
  font-weight:700; 
  text-align:center; 
}
.btn-primary { 
  background:#0078b2; 
  color:white; 
  border:1px solid #0078b2; 
}
.hero .btn-primary { 
  background:#b2e6ff; 
  border-color:#b2e6ff;
  color:#10334e; 
}
.btn-outline { 
  border:1px solid #bde9ff; 
  color:white; 
}
.btn:hover { filter:brightness(.94); }
.facts { 
  display:grid; 
  grid-template-columns:repeat(4,1fr); 
  gap:16px; 
  margin-top:32px; 
  position:relative; 
}
.facts article { 
  padding:22px; 
  background:white; 
  border:1px solid var(--border); 
  box-shadow:0 8px 28px #123b5910; 
  border-radius:12px; 
}
.facts span,.facts small { 
  display:block; 
  color:var(--muted); 
  font-size:.82rem; 
}
.facts strong { 
  display:block; 
  font-size:1.1rem; 
  color:var(--navy); 
  margin:6px 0; 
}
.section { 
  padding-top:76px; 
  padding-bottom:76px; 
}
h2 { 
  font-size:clamp(1.9rem,3vw,2.7rem); 
  line-height:1.2; 
  color:var(--navy); 
  margin:8px 0 18px; 
  letter-spacing:-.02em; 
}
h3 { color:var(--navy); margin-top:34px; line-height:1.3; }
.section-lead { 
  max-width:780px; 
  color:var(--muted); 
  font-size:1.08rem; 
}
.benefits { 
  display:grid; 
  grid-template-columns:repeat(4,1fr); 
  gap:16px; 
  margin:26px 0 46px; 
}
.benefits article { 
  border:1px solid var(--border); 
  padding:22px; 
  border-radius:12px; 
}
.benefits h4 { margin:8px 0; }
.benefits p { font-size:.92rem; color:var(--muted); margin:0; }
.number { color:var(--blue); font-weight:800; }
.profile-grid { 
  display:grid; 
  grid-template-columns:1fr 1fr; 
  gap:32px; 
  padding:32px; 
  background:#f5faff; 
  border-radius:16px; 
}
.profile-grid h3 { margin-top:12px; font-size:1.35rem; }
.profile-grid p { color:var(--muted); }
.profile-grid .eyebrow { color:var(--blue); }
.plan-heading { padding-top:64px; scroll-margin-top:24px; }
.modules { border-top:1px solid var(--border); margin-top:28px; }
details { border-bottom:1px solid var(--border); padding:20px 12px; }
summary { 
  font-weight:700; 
  cursor:pointer; 
  color:var(--navy); 
  font-size:1.05rem; 
}
summary::marker { color:var(--blue); }
details[open] { background:#f5faff; }
details p,details ul { color:var(--muted); padding-left:24px; }
details li { margin:5px 0; }
.project-card { 
  display:grid;
  grid-template-columns:1fr 1fr; 
  gap:28px; 
  margin-top:36px; 
  padding:32px; 
  border-radius:16px; 
  background:var(--navy); 
  color:#e0f2fd; 
}
.project-card h3 { color:white; font-size:1.5rem; margin:12px 0; }
.project-card .eyebrow { color:#9cddff; }
.project-card ul { margin:0; padding-left:20px; }
.project-card li { margin:8px 0; }
.faculty-section { background:var(--sky); }
.faculty-grid { 
  display:grid; 
  grid-template-columns:repeat(2,minmax(0,1fr)); 
  gap:24px; margin-top:36px; 
}
.faculty-card { display:grid; 
  grid-template-columns:140px minmax(0,1fr); 
  align-items:start; 
  gap:24px; 
  padding:28px; 
  border:1px solid var(--border); 
  border-radius:16px; 
  background:white; 
}
.faculty-card img { 
  width:140px; 
  height:168px; 
  object-fit:cover; 
  object-position:center 20%; 
  border-radius:12px; 
  background:#f1f6fa; 
}
.faculty-area { 
  font-size:.66rem; 
  font-weight:800; 
  letter-spacing:.08em; 
  color:var(--blue); 
  margin:0 0 10px; 
}
.faculty-card h3 { 
  font-size:1.25rem; 
  margin:0 0 14px; 
}
.faculty-card p:not(.faculty-area) { 
  font-size:.91rem; 
  margin:0 0 12px; 
}
.faculty-detail { color:var(--muted); }
.faculty-featured { 
  grid-column:1 / -1; 
  grid-template-columns:180px minmax(0,1fr); 
}
.faculty-featured img { width:180px; height:210px; }
.contact-grid { display:grid; 
  grid-template-columns:1fr 1fr; 
  gap:60px; 
  align-items:center; 
}
.contact-card { 
  background:#f5faff; 
  border:1px solid var(--border); 
  border-radius:14px; 
  padding:28px; 
}
.contact-card h3 { margin-top:0; }
.contact-card p { overflow-wrap:anywhere; }
footer { 
  background:var(--navy); 
  color:white; 
  padding:24px 0; 
  font-size:.9rem; 
}
.costs-section {
  background: #f1f6fa;
}
.costs-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 32px;
}
.cost-card {
  background: #1d397b;
  color: white;
  padding: 28px;
  border-radius: 18px;
}
.cost-card h3 {
  color: #d9b82b;
  font-size: 1.4rem;
  margin: 0 0 16px;
}
.cost-date {
  color: #e0f2fd;
  font-size: 0.95rem;
  margin: 0 0 20px;
}
.cost-card ul {
  margin: 0;
  padding-left: 20px;
}
.cost-card li {
  margin: 10px 0;
}
.cost-card strong {
  font-size: 1.6rem;
}
.costs-button {
  margin-top: 32px;
}
@media(max-width:1000px) {
  .faculty-card { grid-template-columns:1fr; }
  .faculty-featured { grid-template-columns:180px minmax(0,1fr); }
  .costs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width:800px) {
  .hero-grid,.contact-grid,.profile-grid,.project-card { grid-template-columns:1fr; }
  .facts,.benefits { grid-template-columns:repeat(2,1fr); }
  .hero { padding:36px 0 52px; }
  .hero-grid { gap:28px; }
  .hero-image { height:230px; }
  .site-header { flex-wrap:wrap; }
  .section { padding-top:52px; padding-bottom:52px; }
  .profile-grid,.project-card { gap:16px; padding:24px; }
}
@media(max-width:520px) {
  .facts,.benefits,.faculty-grid { grid-template-columns:1fr; }
  .site-header nav { gap:14px; }
  .site-header nav a { font-size:.84rem; }
  .brand img { width:42px; height:48px; }
  .hero-actions .btn { width:100%; }
  .faculty-featured { grid-template-columns:1fr; }
  .faculty-card img,.faculty-featured img { width:140px; height:168px; }
  .faculty-card { padding:24px; }
  .contact-grid { gap:28px; }
  .costs-grid { grid-template-columns: 1fr; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.pay-btn { margin-top:16px; width:100%; text-align:center; }
.cost-featured { border:2px solid var(--primary, #1d4ed8); }
.pay-panel { margin-top:32px; padding:28px; border:1px solid rgba(0,0,0,.12); border-radius:16px; background:#fff; }
.pay-panel ul { margin:12px 0 20px; padding-left:20px; }
.pay-actions { display:flex; flex-wrap:wrap; gap:12px; }
.pay-panel .btn-outline { color:#0078b2; border:1px solid #0078b2; background:#fff; }
.pay-panel .btn-outline:hover { background:#e8f6fd; }
