:root {
  --green-950: #003737;
  --green-800: #0b4e4a;
  --green-100: #e8f0ee;
  --ink: #202625;
  --muted: #66706e;
  --line: #dce3e1;
  --surface: #f6f8f7;
  --white: #fff;
  --max-width: 1120px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; font-size:16px; line-height:1.85; }
a { color:var(--green-950); text-decoration-thickness:1px; text-underline-offset:.18em; }
a:hover { text-decoration:none; }
.container { width:min(calc(100% - 40px),var(--max-width)); margin-inline:auto; }
.skip-link { position:fixed; top:8px; left:8px; z-index:999; transform:translateY(-180%); padding:8px 12px; color:#fff; background:var(--green-950); }
.skip-link:focus { transform:translateY(0); }
.header-top { color:rgba(255,255,255,.84); background:var(--green-950); font-size:12px; letter-spacing:.035em; }
.header-top-inner { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.header-top p { margin:0; }
.language-link { color:#fff; text-decoration:none; }
.branding { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; padding-block:25px 22px; }
.site-name { display:block; color:var(--green-950); font-size:clamp(25px,3.3vw,36px); font-weight:750; line-height:1.25; letter-spacing:.035em; text-decoration:none; }
.site-name-en { margin:4px 0 0; color:#7a8582; font-size:12px; letter-spacing:.09em; text-transform:uppercase; }
.tagline { margin:0 0 4px; color:var(--muted); font-size:14px; letter-spacing:.08em; }
.global-nav { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.nav-list { display:flex; align-items:stretch; margin:0; padding:0; list-style:none; }
.nav-list li { flex:1; }
.nav-list a { display:flex; align-items:center; justify-content:center; min-height:54px; padding:10px 8px; color:#31413f; border-bottom:3px solid transparent; font-size:14px; font-weight:650; text-decoration:none; white-space:nowrap; }
.nav-list a:hover,.nav-list a[aria-current="page"] { color:var(--green-950); border-bottom-color:var(--green-950); background:#fbfcfc; }
.nav-toggle { display:none; width:100%; min-height:48px; border:0; background:transparent; color:var(--green-950); font:inherit; font-weight:700; letter-spacing:.08em; cursor:pointer; }
.breadcrumb-wrap { background:var(--surface); border-bottom:1px solid #edf0ef; }
.breadcrumb { min-height:42px; display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; }
.breadcrumb a { color:var(--muted); }
.page-main { padding-block:62px 90px; }
.page-header { max-width:850px; margin-bottom:54px; }
.page-kicker,.eyebrow { margin:0 0 7px; color:var(--green-800); font-size:12px; font-weight:750; letter-spacing:.16em; }
.page-header h1 { margin:0; color:var(--green-950); font-size:clamp(34px,5vw,50px); line-height:1.22; letter-spacing:.02em; }
.page-lead { margin:20px 0 0; max-width:760px; color:#44504e; font-size:17px; line-height:1.9; }
.content-section { max-width:980px; margin-top:66px; }
.content-section:first-of-type { margin-top:0; }
.content-section h2 { margin:0 0 26px; padding-bottom:12px; color:var(--green-950); border-bottom:2px solid var(--green-950); font-size:clamp(24px,3vw,30px); line-height:1.45; }
.content-section h3 { margin:0 0 10px; color:#263f3c; font-size:20px; line-height:1.55; }
.content-section p { margin:0 0 1.25em; }
.section-intro { max-width:820px; color:#55605e; }
.topic-list { border-top:1px solid var(--line); }
.topic-item { display:grid; grid-template-columns:70px 1fr; gap:22px; padding:28px 0; border-bottom:1px solid var(--line); }
.topic-item p:last-child { margin-bottom:0; }
.plain-grid { display:grid; gap:18px; }
.three-col { grid-template-columns:repeat(3,minmax(0,1fr)); }
.plain-grid > div { padding:24px; background:var(--surface); border-top:3px solid var(--green-800); }
.plain-grid h3 { font-size:18px; }
.section-heading-row { display:flex; align-items:baseline; justify-content:space-between; gap:24px; border-bottom:2px solid var(--green-950); margin-bottom:26px; }
.section-heading-row h2 { border:0; padding:0; margin:0 0 12px; }
.note { color:var(--muted); font-size:12px; }
.member-list { border-top:1px solid var(--line); }
.member-card { display:grid; grid-template-columns:minmax(220px,.8fr) 1.4fr; gap:34px; padding:28px 0; border-bottom:1px solid var(--line); }
.member-role { margin:0 0 3px!important; color:var(--green-800); font-size:13px; font-weight:700; }
.member-main h3 span { display:block; margin-top:2px; color:#87908e; font-size:13px; font-weight:500; }
.member-meta p { margin:0 0 4px; }
.year-block { display:grid; grid-template-columns:100px 1fr; gap:26px; padding:26px 0; border-top:1px solid var(--line); }
.year-block:last-child { border-bottom:1px solid var(--line); }
.year-block > h3 { font-size:18px; color:var(--green-800); }
.simple-list,.publication-list,.presentation-list { margin:0; padding-left:1.25em; }
.publication-list li,.presentation-list li { margin-bottom:24px; padding-left:4px; }
.pub-title { margin-bottom:4px!important; font-weight:650; }
.pub-detail,.meta-line { color:#5c6765; font-size:14px; }
.news-list { border-top:1px solid var(--line); }
.news-item { display:grid; grid-template-columns:110px 68px 1fr; gap:20px; align-items:start; padding:25px 0; border-bottom:1px solid var(--line); }
.news-item time { color:#65716e; font-size:13px; font-variant-numeric:tabular-nums; }
.news-tag { display:inline-block; margin:0!important; padding:2px 7px; border:1px solid #9eb4b0; color:var(--green-800); font-size:11px; text-align:center; }
.news-item h3 { font-size:17px; margin:0 0 5px; }
.news-item h3 a { text-decoration:none; }
.news-item div p { color:#66706e; font-size:14px; }
.archive-links { display:flex; flex-wrap:wrap; gap:10px; }
.archive-links a { min-width:82px; padding:8px 16px; border:1px solid var(--line); text-align:center; text-decoration:none; }
.button-link { display:inline-block; padding:10px 18px; color:#fff; background:var(--green-950); text-decoration:none; }
.callout { max-width:980px; padding:34px 38px; background:var(--surface); border-left:4px solid var(--green-800); }
.callout h2 { border:0; padding:0; margin-bottom:16px; }
.contact-lines { margin-top:20px; }
.contact-lines p { margin:4px 0; }
.address-block { padding:24px 28px; background:var(--surface); }
.map-placeholder { min-height:320px; margin-top:24px; display:grid; place-items:center; border:1px dashed #9ca9a6; background:#fafbfb; color:#7b8583; }
.access-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border-top:1px solid var(--line); }
.access-grid article { padding:25px 26px 20px 0; border-bottom:1px solid var(--line); }
.access-grid article:nth-child(odd) { padding-right:34px; border-right:1px solid var(--line); }
.access-grid article:nth-child(even) { padding-left:34px; }
.room-list { margin:0; }
.room-list > div { display:grid; grid-template-columns:170px 1fr; gap:20px; padding:14px 0; border-bottom:1px solid var(--line); }
.room-list dt { font-weight:700; }
.room-list dd { margin:0; }
.site-footer { color:#eaf0ef; background:var(--green-950); }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:50px; padding-block:46px 36px; }
.footer-grid p { margin:2px 0; font-size:13px; }
.footer-title { margin-bottom:9px!important; color:#fff; font-size:17px!important; font-weight:700; }
.footer-links { display:grid; align-content:start; gap:7px; }
.footer-links p { color:#9fb8b4; font-size:11px; font-weight:700; letter-spacing:.15em; }
.footer-links a { color:#fff; font-size:13px; text-decoration:none; }
.copyright { padding-block:14px 20px; border-top:1px solid rgba(255,255,255,.16); }
.copyright p { margin:0; color:#9fb2af; font-size:11px; }
@media (max-width:760px) {
  .container { width:min(calc(100% - 28px),var(--max-width)); }
  .header-top p { display:none; }
  .header-top-inner { justify-content:flex-end; }
  .branding { display:block; padding-block:20px 18px; }
  .tagline { margin-top:7px; }
  .nav-toggle { display:block; }
  .nav-list { display:none; flex-direction:column; border-top:1px solid var(--line); }
  .nav-list.is-open { display:flex; }
  .nav-list li { flex:none; }
  .nav-list a { min-height:46px; border-bottom:1px solid #edf0ef; }
  .page-main { padding-block:42px 64px; }
  .page-header { margin-bottom:42px; }
  .page-lead { font-size:16px; }
  .three-col,.access-grid,.footer-grid { grid-template-columns:1fr; }
  .topic-item { grid-template-columns:42px 1fr; gap:14px; }
  .member-card,.year-block,.news-item,.room-list > div { grid-template-columns:1fr; gap:8px; }
  .news-item { gap:7px; }
  .news-tag { width:max-content; }
  .access-grid article,.access-grid article:nth-child(odd),.access-grid article:nth-child(even) { padding:22px 0; border-right:0; }
  .callout { padding:26px 22px; }
}


/* =========================
   Header brand mark
========================= */

.brand-main {
  display: flex;
  align-items: center;
  gap: 16px;
}

.brand-mark-link {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.brand-mark {
  display: block;
  width: 72px;
  height: 72px;
  object-fit: contain;
}

.brand-text {
  min-width: 0;
}

@media (max-width: 768px) {

  .brand-main {
    gap: 11px;
  }

  .brand-mark {
    width: 54px;
    height: 54px;
  }

}

/* =========================================================
   HOME
   ========================================================= */
.home-page { overflow-x:hidden; }
.home-page .site-header { position:relative; z-index:20; background:#fff; }
.home-hero {
  position: relative;
  min-height: 650px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(
      90deg,
      rgba(0, 55, 55, .96) 0%,
      rgba(0, 55, 55, .88) 34%,
      rgba(0, 65, 63, .62) 58%,
      rgba(0, 65, 63, .22) 82%,
      rgba(0, 65, 63, .08) 100%
    ),
    url("img/0027.JPG");
  background-size: cover;
  background-position: center 58%;
}
.home-hero::after {
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background:rgba(255,255,255,.22);
}
.home-hero-inner { position:relative; z-index:4; padding-block:88px 105px; }
.home-hero-kicker {
  margin:0 0 25px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:750;
  letter-spacing:.22em;
}
.home-hero h1 {
  max-width:900px;
  margin:0;
  color:#fff;
  font-size:clamp(46px,7.7vw,92px);
  font-weight:760;
  line-height:1.08;
  letter-spacing:-.035em;
}
.home-hero-line {
  color: #fff !important;
  white-space: nowrap;
}
.home-hero h1 span { color:#ff6b6d; }
.home-hero-lead {
  max-width:700px;
  margin:31px 0 0;
  color:rgba(255,255,255,.88);
  font-size:clamp(16px,1.55vw,20px);
  line-height:1.9;
}
.home-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:25px; margin-top:36px; }
.home-primary-button,
.home-white-button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  min-width:205px;
  padding:14px 19px;
  font-weight:700;
  text-decoration:none;
  transition:transform .2s ease, background .2s ease;
}

.home-primary-button { color:var(--green-950); background:#fff; }
.home-primary-button:hover,.home-white-button:hover { transform:translateY(-2px); }
.home-text-link { color:#fff; font-size:14px; font-weight:650; }
.home-keywords {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:52px;
}
.home-keywords span {
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.28);
  color:rgba(255,255,255,.82);
  font-size:11px;
  letter-spacing:.08em;
  backdrop-filter:blur(4px);
}
.home-orbit,
.home-dot {
  display: none;
}
/* =========================
   ABOUT US
   text + graphic motif in one card
========================= */

.home-about-visual {
  position: relative;
  width: min(calc(100% - 80px), 1360px);
  min-height: 430px;
  margin: 72px auto 105px;
  overflow: hidden;

background:
  radial-gradient(circle at 80% 26%, #ffc31a 0 45px, transparent 46px),
  radial-gradient(circle at 74% 48%, #b9d4ea 0 24px, transparent 25px),
  radial-gradient(circle at 88% 70%, #ff6b6d 0 32px, transparent 33px),

  /* 薄い円 1 */
  radial-gradient(
    circle at 77% 45%,
    transparent 0 138px,
    rgba(255,255,255,.10) 139px 166px,
    transparent 167px
  ),

  /* 薄い円 2：少し右下へずらす */
  radial-gradient(
    circle at 83% 56%,
    transparent 0 138px,
    rgba(255,255,255,.07) 139px 166px,
    transparent 167px
  ),
  #075a56;
  box-shadow: 0 18px 45px rgba(0,55,55,.12);
}

.home-about-bg,
.home-about-overlay {
  display: none;
}

.home-about-content {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 430px;
  display: flex;
  align-items: center;
  padding: 58px 64px;
}

.home-about-text {
  width: 70%;
  max-width:900px;
  color: #fff;
}

.home-about-kicker {
  margin: 0 0 12px;
  color: rgba(255,255,255,.70);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .18em;
}

.home-about-text h2 {
  margin: 0 0 28px;
  color: #fff;
  font-size: clamp(32px, 3.1vw, 42px);
  font-weight: 750;
  line-height: 1.5;
}

.home-about-text > p:not(.home-about-kicker) {
  max-width: none;
  margin: 0 0 1.3em;
  color: rgba(255,255,255,.9);
  font-size: 20px;
  line-height: 2;
}

.home-section { padding-block:105px; }
.home-section-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:38px;
}
.home-section-head h2,
.home-news-title h2 {
  margin:0;
  color:var(--green-950);
  font-size:clamp(34px,4.8vw,54px);
  line-height:1.16;
}
.home-section-link { font-size:13px; font-weight:700; text-decoration:none; }
.home-research-section { background:#f4f7f6; }
.home-research-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.home-research-card {
  position:relative;
  min-height:395px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:31px 30px 28px;
  border:1px solid #dce5e3;
  color:var(--ink);
  background:#fff;
  text-decoration:none;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.home-research-card:hover {
  transform:translateY(-5px);
  border-color:#aac1bd;
  box-shadow:0 16px 35px rgba(0,55,55,.08);
}
.home-research-card-accent { background:var(--green-950); color:#fff; border-color:var(--green-950); }
.home-card-number { margin:0; color:#9aa9a6; font-size:13px; font-variant-numeric:tabular-nums; }
.home-research-card-accent .home-card-number { color:#79a5a0; }
.home-card-en { margin:0 0 9px; color:var(--green-800); font-size:10px; font-weight:800; letter-spacing:.16em; }
.home-research-card-accent .home-card-en { color:#99c8c3; }
.home-research-card h3 { margin:0 0 20px; font-size:clamp(22px,2.1vw,29px); line-height:1.48; }
.home-research-card p:last-child { margin:0; color:#66706e; font-size:14px; line-height:1.8; }
.home-research-card-accent p:last-child { color:#d2dfdd; }
.home-card-arrow { position:absolute; top:27px; right:27px; font-size:21px; }
.home-news-section { background:#fff; }
.home-news-layout { display:grid; grid-template-columns:310px 1fr; gap:80px; }
.home-news-title > p:not(.eyebrow) { margin:20px 0 28px; color:#66706e; font-size:14px; }
.home-news-list { border-top:1px solid var(--line); }
.home-news-item {
  display:grid;
  grid-template-columns:105px 78px 1fr 20px;
  gap:18px;
  align-items:center;
  min-height:98px;
  padding:21px 0;
  color:var(--ink);
  border-bottom:1px solid var(--line);
  text-decoration:none;
}
.home-news-item time { color:#64716e; font-size:12px; font-variant-numeric:tabular-nums; }
.home-news-item p { margin:0; font-size:15px; font-weight:600; }
.home-news-item:hover p { color:var(--green-800); }
.home-news-item .news-tag { width:max-content; }
.home-students-section {
  color:#fff;
  background:
    radial-gradient(circle at 90% 20%, rgba(255,195,26,.22), transparent 18%),
    linear-gradient(110deg,#0a4b47 0%,#087a75 100%);
}
.home-students-inner {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:80px;
  align-items:end;
  padding-block:78px 82px;
}
.home-students-kicker { margin:0 0 11px; color:#9ed1cc; font-size:11px; font-weight:800; letter-spacing:.2em; }
.home-students-section h2 { margin:0; font-size:clamp(33px,4.8vw,56px); line-height:1.35; letter-spacing:-.025em; }
.home-students-section p { color:rgba(255,255,255,.84); }
.home-white-button { margin-top:19px; color:var(--green-950); background:#fff; }
.home-quick-section { background:#fff; }
.home-quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.home-quick-grid a {
  position:relative;
  min-height:176px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:28px 36px;
  color:var(--green-950);
  border-left:1px solid var(--line);
  text-decoration:none;
}
.home-quick-grid a:last-child { border-right:1px solid var(--line); }
.home-quick-grid span { color:#80908d; font-size:10px; font-weight:800; letter-spacing:.17em; }
.home-quick-grid strong { margin-top:8px; font-size:25px; }
.home-quick-grid i { position:absolute; right:31px; bottom:29px; font-style:normal; transition:transform .2s ease; }
.home-quick-grid a:hover i { transform:translateX(5px); }

@media (max-width:900px) {
  .home-about-visual {
    width: calc(100% - 28px);
    margin: 44px auto 72px;
    min-height: 560px;
    background:
      radial-gradient(circle at 76% 11%, #ffc31a 0 34px, transparent 35px),
      radial-gradient(circle at 57% 18%, #b9d4ea 0 17px, transparent 18px),
      radial-gradient(circle at 90% 21%, #ff6b6d 0 23px, transparent 24px),
      radial-gradient(
        circle at 82% 18%,
        transparent 0 92px,
        rgba(255,255,255,.10) 93px 114px,
        transparent 115px
      ),
      linear-gradient(
        180deg,
        #087a75 0%,
        #0b625e 31%,
        #ffffff 31%,
        #ffffff 100%
      );
  }

  .home-about-content {
    min-height: 560px;
    align-items: flex-start;
    padding: 215px 25px 34px;
  }

  .home-about-text {
    width: 100%;
    max-width: none;
  }

  .home-about-text h2 {
    font-size: clamp(29px, 8vw, 36px);
  }

  .home-about-text > p:not(.home-about-kicker) {
    font-size: 13px;
    line-height: 1.9;
  }
  .home-hero { min-height:610px; }
  .home-hero-inner { padding-block:70px 86px; }
  .home-hero h1 {  font-size: clamp(34px, 10vw, 42px);  line-height: 1.12;}
  .home-hero-lead br { display:none; }
  .home-keywords { margin-top:40px; }
  .home-section { padding-block:72px; }
  .home-section-head { align-items:flex-start; flex-direction:column; gap:15px; }
  .home-news-item { grid-template-columns:90px 1fr 18px; gap:10px; }
  .home-news-item .news-tag { grid-column:2; grid-row:1; }
  .home-news-item p { grid-column:1 / 3; grid-row:2; padding-top:5px; }
  .home-news-item > span:last-child { grid-column:3; grid-row:1 / 3; }
  .home-quick-grid { grid-template-columns:1fr; }
  .home-quick-grid a,.home-quick-grid a:last-child { min-height:125px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
}
@media (prefers-reduced-motion: reduce) {
  .home-primary-button,.home-white-button,.home-research-card,.home-quick-grid i { transition:none; }
}

/* =========================================================
   HOME - responsive layout fix
   2026-09-08
   ========================================================= */
@media (max-width: 900px) {

  /* ABOUT US: lower white area uses dark text */
  .home-about-kicker {
    color: var(--green-800);
  }

  .home-about-text h2 {
    color: var(--green-950);
  }

  .home-about-text > p:not(.home-about-kicker) {
    color: #44504e;
  }

  .home-about-text br {
    display: none;
  }

  /* RESEARCH: 3 columns -> 1 column */
  .home-research-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .home-research-card {
    min-height: 260px;
    padding: 28px 24px 26px;
  }

  .home-research-card h3 br {
    display: none;
  }

  /* NEWS: left title column + list -> vertical */
  .home-news-layout {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  /* FOR STUDENTS: 2 columns -> 1 column */
  .home-students-inner {
    grid-template-columns: 1fr;
    gap: 30px;
    align-items: start;
    padding-block: 62px 68px;
  }
}

@media (max-width: 600px) {
  .home-about-content {
    padding-left: 22px;
    padding-right: 22px;
  }

  .home-about-text h2 {
    font-size: 30px;
    line-height: 1.5;
  }

  .home-about-text > p:not(.home-about-kicker) {
    font-size: 14px;
  }

  .home-research-card {
    min-height: 235px;
  }
}