:root {
  --ink:#203a42;
  --muted:#576c70;
  --teal:#146774;
  --deep:#123f4c;
  --pale:#eaf2f1;
  --paper:#fff;
  --line:#d8e5e5;
  --max:1160px
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  color:var(--ink);
  background:#f7faf9;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  line-height:1.8
}

a {
  color:inherit
}

img {
  max-width:100%;
  display:block
}

.skip {
  position:absolute;
  left:-10000px
}

.skip:focus {
  left:12px;
  top:12px;
  background:white;
  padding:8px;
  z-index:10
}

.site-header {
  background:white;
  border-bottom:1px solid var(--line)
}

.header-inner,.wrap,.footer-inner {
  max-width:var(--max);
  margin:auto;
  padding-left:24px;
  padding-right:24px
}

.header-inner {
  min-height:110px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}

.brand {
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:15px;
  line-height:1.3
}

.brand strong {
  display:block;
  font-size:1.32rem;
  letter-spacing:.04em
}

.brand small {
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.7rem
}

.brand-mark {
  width:52px;
  height:52px;
  border-radius:14px;
  background:var(--deep);
  color:white;
  display:grid;
  place-items:center;
  font-family:Georgia,serif;
  font-weight:bold;
  letter-spacing:-.12em;
  white-space:nowrap;
  padding-right:5px
}

.brand-mark span {
  color:#a5d8a8;
  font-size:.55em;
  padding:0 2px
}

.nav {
  display:flex;
  flex-wrap:wrap;
  gap:22px
}

.nav a {
  text-decoration:none;
  font-size:.88rem;
  font-weight:700;
  white-space:nowrap;
  padding:10px 0;
  border-bottom:2px solid transparent
}

.nav a:hover,.nav .active {
  color:var(--teal);
  border-color:var(--teal)
}

.hero {
  position:relative;
  min-height:540px;
  display:flex;
  align-items:center;
  background:var(--deep);
  color:white;
  overflow:hidden
}

.hero-photo {
  position:absolute;
  inset:0;
  left:37%;
  opacity:.7
}

.hero-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%
}

.hero:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#103e4c 0%,#103e4c 28%,rgba(16,62,76,.88) 45%,rgba(16,62,76,.08) 100%)
}

.hero-inner {
  position:relative;
  z-index:1;
  max-width:var(--max);
  width:100%;
  margin:auto;
  padding:62px 24px
}

.eyebrow,.kicker {
  font-size:.73rem;
  letter-spacing:.2em;
  font-weight:800
}

.eyebrow {
  color:#b6e0db
}

.hero h1 {
  font-size:clamp(2rem,4.2vw,3.55rem);
  line-height:1.45;
  letter-spacing:.06em;
  margin:12px 0 22px
}

.hero p:not(.eyebrow) {
  max-width:475px;
  font-size:1rem;
  line-height:2
}

.button {
  display:inline-flex;
  gap:26px;
  align-items:center;
  background:#fff;
  color:var(--deep);
  padding:13px 22px;
  margin-top:18px;
  border-radius:4px;
  text-decoration:none;
  font-weight:700
}

.button:hover {
  background:#dcefed
}

.section {
  padding:84px 0
}

.section-head {
  margin-bottom:30px
}

.section-head h2 {
  font-size:clamp(1.65rem,3vw,2.3rem);
  line-height:1.4;
  letter-spacing:.05em;
  margin:6px 0
}

.section-head p {
  margin:10px 0;
  color:var(--muted)
}

.kicker {
  color:var(--teal)
}

.intro-grid {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:64px
}

.intro-grid p {
  margin:0 0 18px
}

.intro-photo {
  margin:0
}

.intro-photo img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:5px
}

.intro-photo figcaption {
  font-size:.75rem;
  color:var(--muted);
  margin-top:8px
}

.text-link {
  display:inline-flex;
  gap:15px;
  align-items:center;
  color:var(--teal);
  text-decoration:none;
  font-weight:700;
  border-bottom:1px solid var(--teal);
  padding:7px 0
}

.text-link:hover {
  color:var(--deep)
}

.research {
  background:var(--pale);
  margin:0 calc((min(100vw,var(--max)) - 100vw)/2);
  padding-left:max(24px,calc((100vw - var(--max))/2 + 24px));
  padding-right:max(24px,calc((100vw - var(--max))/2 + 24px))
}

.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}

.card {
  position:relative;
  display:block;
  background:white;
  min-height:250px;
  padding:30px;
  text-decoration:none;
  border:1px solid var(--line);
  border-radius:5px;
  transition:transform .2s,box-shadow .2s
}

.card:hover {
  transform:translateY(-3px);
  box-shadow:0 12px 24px #163f4b18
}

.card-number {
  font:1.8rem Georgia,serif;
  color:var(--teal)
}

.card h3 {
  font-size:1.1rem;
  line-height:1.5;
  margin:22px 0 10px
}

.card p {
  color:var(--muted);
  font-size:.9rem;
  margin:0
}

.arrow {
  position:absolute;
  right:23px;
  top:25px;
  color:var(--teal)
}

.section-note {
  font-size:.8rem;
  color:var(--muted);
  margin-top:20px
}

.news-list {
  border-top:1px solid var(--line);
  margin-bottom:24px
}

.news-list>div {
  display:flex;
  gap:28px;
  align-items:baseline;
  border-bottom:1px solid var(--line);
  padding:18px 8px
}

.news-list time {
  font-variant-numeric:tabular-nums;
  color:var(--teal);
  font-weight:700;
  min-width:100px
}

.news-list p {
  margin:0
}

.quicklinks {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  padding:0 0 88px
}

.quicklinks a {
  display:flex;
  justify-content:space-between;
  text-decoration:none;
  border:1px solid var(--line);
  background:white;
  border-radius:4px;
  padding:19px 22px;
  font-weight:700
}

.quicklinks a:hover {
  border-color:var(--teal)
}

.site-footer {
  background:var(--deep);
  color:#eff7f6
}

.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:40px;
  padding-top:46px;
  padding-bottom:34px
}

.footer-inner strong {
  font-size:1.12rem
}

.footer-inner p {
  font-size:.82rem;
  line-height:1.9;
  color:#d3e5e4
}

.footer-links {
  display:flex;
  flex-direction:column;
  gap:9px;
  font-size:.85rem
}

.footer-links a:hover {
  text-decoration:none
}

.copyright {
  border-top:1px solid #ffffff30;
  text-align:center;
  font-size:.74rem;
  color:#bfd5d3;
  padding:16px
}

@media(max-width:900px) {
  .header-inner {
    display:block;
    padding-top:20px
  }

  .nav {
    margin-top:15px;
    gap:15px
  }

  .intro-grid {
    gap:30px
  }

  .hero-photo {
    left:28%
  }

}

@media(max-width:650px) {
  .header-inner {
    padding:18px 18px 0
  }

  .brand strong {
    font-size:1.07rem
  }

  .brand small {
    font-size:.6rem
  }

  .brand-mark {
    width:43px;
    height:43px;
    flex:none
  }

  .nav {
    overflow-x:auto;
    flex-wrap:nowrap;
    gap:20px
  }

  .nav a {
    font-size:.82rem
  }

  .hero {
    min-height:580px;
    align-items:flex-end
  }

  .hero-photo {
    left:0;
    bottom:26%;
    opacity:.58
  }

  .hero:after {
    background:linear-gradient(0deg,#103e4c 0%,#103e4c 23%,rgba(16,62,76,.75) 62%,rgba(16,62,76,.2) 100%)
  }

  .hero-inner {
    padding:45px 22px
  }

  .hero h1 {
    font-size:2rem
  }

  .hero p:not(.eyebrow) {
    font-size:.9rem
  }

  .wrap {
    padding:0 20px
  }

  .section {
    padding:62px 0
  }

  .intro-grid,.cards,.quicklinks {
    grid-template-columns:1fr
  }

  .intro-photo {
    margin-top:10px
  }

  .research {
    margin:0 -20px;
    padding-left:20px;
    padding-right:20px
  }

  .card {
    min-height:0
  }

  .news-list>div {
    display:block
  }

  .news-list p {
    margin-top:4px
  }

  .quicklinks {
    padding-bottom:60px
  }

  .footer-inner {
    display:block;
    padding-left:20px;
    padding-right:20px
  }

  .footer-links {
    margin-top:25px
  }

}

/* Shared layout for existing laboratory content */
.page-main {
  background:#f7faf9;
  min-height:60vh;
  padding:55px 0 90px
}

.page-heading {
  padding:0 0 28px;
  border-bottom:1px solid var(--line);
  margin-bottom:34px
}

.page-heading h1 {
  font-size:clamp(1.8rem,3.4vw,2.7rem);
  line-height:1.4;
  margin:7px 0 0
}

.legacy-content {
  background:white;
  padding:clamp(20px,4vw,48px);
  border:1px solid var(--line);
  border-radius:5px;
  min-width:0;
  overflow-wrap:anywhere
}

.legacy-content * {
  box-sizing:border-box
}

.legacy-content h1,.legacy-content h2,.legacy-content h3,.legacy-content h4 {
  color:var(--deep);
  line-height:1.5
}

.legacy-content h3 {
  border-left:4px solid var(--teal);
  padding-left:14px;
  margin-top:2em
}

.legacy-content p,.legacy-content li {
  line-height:1.85
}

.legacy-content a {
  color:var(--teal)
}

.legacy-content img {
  max-width:100%!important;
  height:auto!important
}

.legacy-content iframe {
  max-width:100%;
  border:1px solid var(--line)
}

.legacy-content table {
  max-width:100%;
  width:auto!important;
  border-collapse:collapse;
  margin:1em 0
}

.legacy-content th,.legacy-content td {
  padding:8px;
  vertical-align:top
}

.legacy-content table[border="1"] th,.legacy-content table[border="1"] td {
  border:1px solid var(--line)
}

.legacy-content hr {
  border:0;
  border-top:1px solid var(--line);
  margin:30px 0
}

.legacy-content font {
  font-family:inherit!important
}

.legacy-content #pagetop {
  display:none
}

.legacy-content #information[align="center"] {
  text-align:left!important
}

.legacy-content #information>table {
  margin-inline:auto
}

.legacy-content #information h3 {
  text-align:left
}

.legacy-content [width] {
  max-width:100%
}

.legacy-content .hpb-photomotion,.legacy-content .hpb-carousel1 {
  max-width:100%;
  overflow:hidden
}

@media(max-width:650px) {
  .page-main {
    padding:28px 0 55px
  }

  .legacy-content {
    padding:20px
  }

  .legacy-content table {
    display:block;
    overflow-x:auto;
    white-space:normal
  }

  .legacy-content td,.legacy-content th {
    min-width:80px
  }

  .legacy-content iframe {
    width:100%
  }

}

.missing-photo {
  min-height:180px;
  width:270px;
  max-width:100%;
  display:grid;
  place-content:center;
  text-align:center;
  color:var(--muted);
  background:var(--pale);
  border:1px dashed var(--line);
  font-size:.85rem
}

