.faculty-page{background:#fff;color:#344f67}.faculty-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#eef8ff 0%,#f8fcff 55%,#eef7f5 100%);border-bottom:1px solid #dbe8f1}.faculty-hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-120px;top:-180px;background:radial-gradient(circle,rgba(32,151,197,.18),rgba(32,151,197,0) 70%)}.faculty-hero-inner{position:relative;z-index:1;padding:70px 0 64px}.faculty-eyebrow,.faculty-intro-label{margin:0 0 10px;color:#1584bd;font-size:12px;font-weight:900;letter-spacing:.17em}.faculty-hero h1{margin:0;color:#123e69;font-size:clamp(38px,5vw,62px);letter-spacing:-.045em}.faculty-lead{margin:22px 0 0;max-width:780px;font-size:17px;line-height:2;font-weight:650;color:#41627e}.faculty-intro{padding:62px 0 34px;text-align:center}.faculty-intro h2{margin:0;color:#153f68;font-size:clamp(28px,3.5vw,43px);letter-spacing:-.035em}.faculty-intro p:last-child{margin:18px auto 0;max-width:720px;font-size:14px;line-height:1.9}.faculty-list{padding:24px 0 92px}.faculty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.faculty-card{overflow:hidden;background:#fff;border:1px solid #d9e5ee;border-radius:22px;box-shadow:0 12px 34px rgba(28,67,101,.08);transition:.2s}.faculty-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(28,67,101,.13)}.faculty-photo{height:220px;background:#edf4f8;overflow:hidden}.faculty-photo img{width:100%;height:100%;object-fit:cover;display:block}.faculty-card-body{padding:24px}.faculty-role{display:inline-block;margin-bottom:8px;padding:4px 10px;border-radius:999px;background:#eaf6fc;color:#1475a8;font-size:11px;font-weight:900}.faculty-card h2{margin:0;color:#153e66;font-size:25px;line-height:1.25}.faculty-card h2 small{display:block;margin-top:5px;color:#8092a2;font-size:11px;font-weight:700}.faculty-field{min-height:48px;margin:14px 0 0;color:#176a94;font-size:13px;font-weight:850;line-height:1.65}.faculty-catch{margin:15px 0 0;padding-top:15px;border-top:1px solid #e5edf3;color:#2c4e6b;font-size:15px;font-weight:850;line-height:1.65}.faculty-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.faculty-tags span{padding:5px 8px;border-radius:7px;background:#f3f7fa;color:#527088;font-size:11px;font-weight:750}.faculty-card details{margin-top:18px;border-top:1px solid #e5edf3;padding-top:14px}.faculty-card summary{cursor:pointer;color:#176fa4;font-size:12px;font-weight:900;list-style:none}.faculty-card summary::-webkit-details-marker{display:none}.faculty-card summary:after{content:"＋";float:right;font-size:16px}.faculty-card details[open] summary:after{content:"−"}.faculty-card details p{margin:12px 0 0;color:#526b7f;font-size:12px;line-height:1.8}@media(max-width:980px){.faculty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.faculty-hero-inner{padding:48px 0}.faculty-lead br{display:none}.faculty-grid{grid-template-columns:1fr}.faculty-photo{height:230px}.faculty-intro{padding-top:48px}.faculty-list{padding-bottom:64px}}
/* v2 compact faculty cards */
.faculty-intro{padding:48px 0 24px}
.faculty-list{padding:16px 0 72px}
.faculty-grid{gap:16px}
.faculty-card{border-radius:17px}
.faculty-photo{height:145px}
.faculty-photo img{object-position:center 24%}
.faculty-card-body{padding:16px 17px 17px}
.faculty-role{margin-bottom:6px;padding:3px 8px;font-size:10px}
.faculty-card h2{font-size:21px;line-height:1.18}
.faculty-card h2 small{margin-top:3px;font-size:10px}
.faculty-field{
  min-height:0;
  margin:9px 0 0;
  font-size:12px;
  line-height:1.45
}
.faculty-catch{
  margin:10px 0 0;
  padding-top:10px;
  font-size:13px;
  line-height:1.48
}
.faculty-tags{gap:4px;margin-top:10px}
.faculty-tags span{padding:3px 6px;font-size:10px}
.faculty-research{
  margin:10px 0 0;
  padding-top:10px;
  border-top:1px solid #e5edf3;
  color:#526b7f;
  font-size:11px;
  line-height:1.55
}
@media(max-width:980px){
  .faculty-photo{height:150px}
}
@media(max-width:640px){
  .faculty-photo{height:145px}
  .faculty-card-body{padding:16px}
}

.faculty-vacancy{border-style:dashed;background:linear-gradient(145deg,#fbfdff,#f2f8fc)}
.vacancy-photo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:linear-gradient(135deg,#eaf5fb,#f4f9fc);color:#6a879b}
.vacancy-mark{font-size:38px;font-weight:300;line-height:1}.vacancy-photo span{font-size:10px;font-weight:900;letter-spacing:.16em}

/* v4: four columns + portrait-friendly images */
.faculty-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.faculty-photo{
  height:190px;
  background:#edf4f8;
}
.faculty-photo img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  background:#edf4f8;
}
.faculty-card-body{
  padding:14px 15px 16px;
}
.faculty-card h2{font-size:19px}
.faculty-field{font-size:11px}
.faculty-catch{font-size:12px}
.faculty-research{font-size:10.5px}
@media(max-width:1100px){
  .faculty-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  .faculty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .faculty-grid{grid-template-columns:1fr}
  .faculty-photo{height:220px}
}

/* v6: faculty cards link to individual PDF profiles */
.faculty-card-link{
  display:block;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
.faculty-card-link:hover,
.faculty-card-link:focus-visible{
  color:inherit;
  text-decoration:none;
}
.faculty-card-link:focus-visible{
  outline:3px solid rgba(23,111,164,.35);
  outline-offset:3px;
}
.faculty-link-note{
  margin:0 0 14px;
  text-align:right;
  color:#638096;
  font-size:11px;
  font-weight:700;
}
.faculty-card-link .faculty-card-body::after{
  content:"研究紹介PDFを見る  ↗";
  display:block;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid #e7eef4;
  color:#176fa4;
  font-size:10px;
  font-weight:900;
  letter-spacing:.02em;
}
@media(max-width:640px){
  .faculty-link-note{text-align:left}
}

/* v7: Suzuki / Li have both PDF and laboratory website links */
.faculty-card-multilink .faculty-card-body::after{display:none!important}
.faculty-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin:0 15px 15px;
  padding-top:10px;
  border-top:1px solid #e7eef4;
}
.faculty-actions a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:6px 7px;
  border-radius:8px;
  background:#eef7fc;
  color:#176fa4;
  font-size:9.5px;
  font-weight:900;
  line-height:1.3;
  text-align:center;
  text-decoration:none;
}
.faculty-actions a:hover{
  background:#dff1fa;
  text-decoration:none;
}

/* preparing navigation items */
.nav-preparing{display:inline-flex;align-items:center;gap:5px;opacity:.72;cursor:default}
.nav-preparing small{font-size:.62em;font-weight:800;color:#c62828;white-space:nowrap}

/* v13: align preparing nav items with normal navigation links */
.nav-preparing{
  font:inherit;
  font-size:inherit;
  font-weight:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  vertical-align:middle;
}
.nav-preparing small{
  font-size:9px;
  line-height:1;
}

/* v14: keep each preparing menu item as one normal nav item */
.nav-preparing{
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  white-space:nowrap;
}
.nav-preparing small{
  display:block;
  font-size:8px;
  line-height:1;
}

/* v15: dropdown preparing items align with 授業紹介 */
.nav-preparing{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:100%;
  box-sizing:border-box;
  text-align:left !important;
  white-space:nowrap;
}
.nav-preparing small{
  display:inline-block;
  margin-left:7px;
  font-size:8px;
  line-height:1;
}

/* v16: preparing entries exactly match normal dropdown item typography/alignment */
.nav-preparing{
  display:block !important;
  width:auto !important;
  margin:0 !important;
  padding:14px 22px !important;
  box-sizing:border-box !important;
  color:#1d2630 !important;
  font-size:16px !important;
  font-weight:400 !important;
  line-height:1.4 !important;
  letter-spacing:0 !important;
  text-align:left !important;
  white-space:nowrap !important;
  border-top:1px solid #e5e9ed;
}
.nav-preparing small{
  display:inline !important;
  margin-left:7px !important;
  padding:0 !important;
  color:#d84b4b !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1 !important;
  vertical-align:middle !important;
}

/* v17: slightly reduce preparing dropdown item text */
.nav-preparing{
  font-size:15px !important;
}

/* v18: reduce preparing dropdown item text a little more */
.nav-preparing{
  font-size:14px !important;
}

.footer-preparing{color:inherit;opacity:.72;cursor:default}
