:root { --display: "Cormorant Garamond", Georgia, "Times New Roman", serif; }
.site-header .brand { width: 340px; height: 88px; }
.hero h1,
.section h2,
.campus h2,
.area-grid h3,
.method-grid h3,
.partner-types span {
  font-family: var(--display);
  font-weight: 600;
}
.hero h1,
.section h2,
.campus h2 { letter-spacing: -.025em; line-height: .96; }
.hero h1 em,
.section h2 em,
.campus h2 em { font-family: var(--display); font-style: italic; }
.hero h1 { font-size: clamp(4.2rem, 5.7vw, 7rem); }
.section h2,
.campus h2 { font-size: clamp(2.8rem, 3.8vw, 4.9rem); }
.ecosystem .section-intro h2 { font-size: clamp(2.8rem, 3.7vw, 4.5rem); }

.hero .lead {
  margin-bottom: 10px;
}

.hero .lead strong {
  color: var(--navy);
  font-weight: 700;
}

.hero-context {
  max-width: 650px;
  margin: 0 0 34px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.75;
}

.about-copy p strong {
  color: var(--navy);
  font-weight: 700;
}
.process button {
  appearance: none;
  border: 0;
  border-right: 1px solid var(--ref-line);
  background: transparent;
  color: var(--navy);
  cursor: pointer;
  padding: 18px 8px;
  text-align: center;
  font: 800 .64rem/1.35 Manrope, sans-serif;
  letter-spacing: .08em;
}
.process button:hover,
.process button:focus-visible { background: rgba(0, 135, 195, .06); outline: 2px solid transparent; }
.process button b { pointer-events: none; }
.process button span { display: block; padding: 0; border: 0; font: inherit; text-align: center; }
.process button small { display: block; margin-top: 8px; color: #187cac; font-size: .58rem; letter-spacing: .03em; text-transform: none; }
.domains { gap: 22px; }
.domains span { min-height: 148px; padding-top: 102px; font-size: .76rem; line-height: 1.35; }
.domains span::before { width: 86px; height: 86px; font-size: 2.25rem; }
.area-grid { grid-template-columns: repeat(3, 1fr); gap: 22px; }
.area-grid article { min-height: 450px; padding: 26px 22px 30px; }
.area-grid .area-photo { height: 175px; }
.area-grid .icon { height: 118px; margin: -26px -22px 24px; font-size: 3.5rem; }
.area-grid h3 { font-size: 1.32rem; line-height: 1.05; text-transform: none; }
.area-grid p { font-size: .94rem; line-height: 1.7; }
.method-grid h3 { font-size: 1.28rem; text-transform: none; }
.partner-types span { font-size: 1.05rem; line-height: 1.15; }
.campus-tags button {
  appearance: none;
  padding: 10px 13px;
  border: 1px solid #9bc9df;
  background: rgba(255,255,255,.76);
  color: #0a6397;
  cursor: pointer;
  font: 800 .64rem/1.2 Manrope, sans-serif;
  letter-spacing: .08em;
}
.campus-tags button:hover,
.campus-tags button:focus-visible { background: #fff; border-color: var(--ref-gold); outline: none; transform: translateY(-1px); }
.partner-types button {
  appearance: none;
  width: 100%;
  padding: 27px 0;
  border: 0;
  border-bottom: 1px solid #cbdde8;
  background: transparent;
  color: var(--navy);
  cursor: pointer;
  text-align: left;
  font: 600 1.05rem/1.3 var(--display);
}
.partner-types button::before { content: '↗'; display: inline-block; color: var(--blue); margin-right: 18px; }
.partner-types button:hover,
.partner-types button:focus-visible { color: var(--blue); outline: none; padding-left: 8px; }
.info-dialog {
  width: min(620px, calc(100vw - 36px));
  padding: 44px 48px 42px;
  border: 1px solid #d7e8f1;
  border-radius: 2px;
  color: var(--navy);
  background: rgba(255,255,255,.98);
  box-shadow: 0 30px 90px rgba(2,31,58,.28);
}
.info-dialog::backdrop { background: rgba(2,23,46,.62); backdrop-filter: blur(5px); }
.info-dialog h2 { margin: 0 40px 20px 0; font: 600 clamp(2.2rem, 5vw, 3.6rem)/.98 var(--display); letter-spacing: -.025em; }
.info-dialog > p:last-child { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.8; }
.dialog-close { position: absolute; top: 18px; right: 20px; width: 42px; height: 42px; border: 1px solid #ccdde7; background: #fff; color: var(--navy); cursor: pointer; font-size: 1.8rem; line-height: 1; }
.dialog-close:hover,
.dialog-close:focus-visible { border-color: var(--blue); color: var(--blue); outline: none; }
.contact-meta a { color: #bfeaff; text-decoration: underline; text-underline-offset: 4px; }
.contact-meta a:hover,
.contact-meta a:focus-visible { color: #fff; }
.hero .vision-badge {
  display: flex;
  right: 32px;
  bottom: 28px;
  min-width: 270px;
  padding: 15px 19px;
  background: rgba(4, 35, 67, .76);
  border-left: 3px solid var(--ref-gold);
  backdrop-filter: blur(8px);
}
.hero .vision-badge span { font-size: .65rem; }
.hero .vision-badge strong { font: 600 .82rem Manrope, sans-serif; letter-spacing: .02em; }
@media (max-width: 1100px) {
  .site-header .brand { width: 260px; height: 76px; }
  .hero h1 { font-size: clamp(3.8rem, 6vw, 5.8rem); }
}
@media (max-width: 900px) {
  .site-header .brand { width: 225px; height: 66px; }
  .hero h1 { font-size: clamp(3.6rem, 12vw, 5.2rem); }
  .domains span::before { width: 76px; height: 76px; }
  .hero .vision-badge { right: 7vw; bottom: 48px; min-width: 245px; }
  .area-grid { grid-template-columns: repeat(2, 1fr); }
  .area-grid article { min-height: 470px; }
}
@media (max-width: 560px) {
  .site-header .brand { width: 190px; }
  .hero h1 { font-size: 3.6rem; }
  .section h2, .campus h2 { font-size: 3.1rem; }
  .area-grid { grid-template-columns: 1fr; }
  .area-grid article { min-height: auto; }
  .area-grid .area-photo { height: 210px; }
  .info-dialog { padding: 38px 26px 30px; }
  .process button { min-height: 150px; }
}
