@charset "UTF-8";
/* header、footer など、ベースとなる部分のCSSを書く*/
/*メディアクエリ（サンプル最後に取る）*/
/*sp（なくても良い）*/
@media screen and (max-width: 480px) {}
/*tablet 768px以下*/
@media screen and (max-width: 767px) {}
/*pc 1000px以下*/
@media screen and (max-width: 1000px) {}
body {
  overflow-x: hidden;
}
#tokyolp {
  font-family: "IBM Plex Sans JP", sans-serif;
}
#tokyolp img {
  width: 100%;
  height: auto;
}
#tokyolp a {
  text-decoration: none;
}
.m-plus-1p-extrabold {
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 800;
  font-style: normal;
}
.m-plus-1p-black {
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 900;
  font-style: normal;
}
.ibm-plex-sans-jp-regular {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.ibm-plex-sans-jp-semibold {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 600;
  font-style: normal;
}
.ibm-plex-sans-jp-bold {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 700;
  font-style: normal;
}
html {
  scroll-behavior: smooth;
}
.display_pc {
  display: block;
}
.display_sp {
  display: none;
}
#tokyolp {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  position: relative;
  z-index: 10;
  padding: 10px 0px 10px;
}
.side_left, .side_right {
  display: none;
}
/* PCレイアウト調整 */
@media (min-width: 960px) {
  .tokyolp_bg {
    position: relative;
  }
  /* 左右共通 */
  .side_left, .side_right {
    display: flex;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    width: max(0px, calc((100vw - 580px) / 2));
    z-index: 20;
    align-items: center;
    justify-content: center;
  }
  /* 左側 */
  .side_left {
    left: 0;
  }
  /* ロゴ画像 */
  .side_logo {
    max-width: 268px;
    width: 70%;
  }
  .side_logo img {
    display: block;
    width: 100%;
    height: auto;
  }
  /* 右側 */
  .side_right {
    right: 0;
  }
  /* メニュー */
  .side_menu {
    list-style: none;
    border-radius: 10px;
    border: 5px solid #0047BA;
    background: #FFF;
    padding: 35px;
    text-align: center;
  }
  .side_menu li + li {
    margin-top: 25px;
  }
  .side_menu a {
    color: #0047BA;
    text-decoration: none;
  }
  .side_menu a .under_line {
    position: relative;
    display: inline-block;
    font-size: 2.6rem;
    font-family: "M PLUS 1p", sans-serif;
    font-weight: 800;
    line-height: 2;
  }
  /* 下線（初期状態は非表示） */
  .side_menu a .under_line::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0px;
    width: 100%;
    height: 3px;
    background-color: #0047BA;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
  }
  /* ホバー時に下線を表示 */
  .side_menu a:hover .under_line::after {
    transform: scaleX(1);
  }
}
@media (min-width: 501px) {
  body {
    font-size: calc(16px + 0.5vw); /* ウィンドウ幅に応じた文字サイズ */
  }
}
@media (max-width: 1150px) {
  .side_menu {
    padding: 25px;
  }
  .side_menu a .under_line {
    font-size: 2.0rem;
  }
}
@media (max-width: 580px) {
#tokyolp {
  max-width: none;
	margin: 0 auto;
  padding: 10px 10px 10px;
}
}

@media screen and (max-width: 500px) {
  .display_pc {
    display: none;
  }
  .display_sp {
    display: block;
  }
}