body.menu-open { overflow: hidden; }

.mobile-menu[hidden] { display: none; }

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  justify-content: center;
}

.mobile-menu__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  padding: 0;
  background: rgba(0, 0, 0, .28);
}

.mobile-menu__sheet {
  position: relative;
  width: 3.75rem;
  max-width: 750px;
  max-height: calc(100dvh - .32rem);
  overflow: hidden;
  background: #fff;
  border-radius: 0 0 .12rem .12rem;
  box-shadow: 0 .12rem .3rem rgba(0, 0, 0, .08);
}

.mobile-menu__header {
  height: .54rem;
  padding: 0 .16rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mobile-menu__header > .header-logo,
.mobile-menu__header > .header-logo img {
  width: 1.325rem;
  height: .28rem;
}

.mobile-menu__header > .header-logo {
  display: block;
}

.mobile-menu__header > .header-logo img {
  display: block;
  object-fit: contain;
}

.mobile-menu__close {
  width: .24rem;
  height: .24rem;
  padding: 0;
  outline: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mobile-menu__close img {
  display: block;
  width: .16rem;
  height: .16rem;
}

.mobile-menu__scroll {
  max-height: calc(100dvh - .86rem);
  padding: .05rem .16rem .32rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border-top: .005rem solid #e7e7e7;
}

.mobile-menu__nav {
  padding-bottom: .05rem;
  border-bottom: .005rem solid #e5e5e5;
}

.mobile-menu__nav a {
  height: .54rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #222;
  font-size: .16rem;
  font-weight: 500;
}

.mobile-menu__nav img {
  display: block;
  width: .0775rem;
  height: .135833rem;
  margin-right: .04125rem;
  transform: rotate(180deg);
}

.mobile-menu__campus { padding-top: .24rem; }

.mobile-menu__campus-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mobile-menu__campus-head h2 {
  margin: 0;
  display: flex;
  align-items: center;
  gap: .12rem;
  color: #222;
  font-size: .16rem;
  font-weight: 500;
}

.mobile-menu__campus-head h2 img {
  width: .24rem;
  height: .24rem;
}

.mobile-menu__campus-toggle {
  padding: 0;
  display: flex;
  align-items: center;
  gap: .06rem;
  color: #777;
  font-size: .14rem;
}

.mobile-menu__campus-toggle img {
  display: block;
  width: .080625rem;
  height: .135833rem;
  margin: 0 .049688rem;
  transform: rotate(-90deg);
  transition: transform .2s ease;
}

.mobile-menu__campus-toggle[aria-expanded="false"] img { transform: rotate(90deg); }

.mobile-menu__campus-body p {
  margin: .17rem 0 .12rem;
  color: #999;
  font-size: .12rem;
}

.mobile-menu__campus-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .12rem;
}

.mobile-menu__campus-grid a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: .43rem;
  border-radius: .04rem;
  background: #f1f2f4;
  color: #777;
  font-size: .14rem;
  text-decoration: none;
}

.mobile-menu__campus-grid a.is-current {
  background: #fde9eb;
  color: #ff3f4a;
}
