@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP&display=swap");
* {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP", system-ui;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

img {
  width: 100%;
}

body {
  position: relative;
}

.checkbox {
  display: none;
}

.fadeIn {
  opacity: 0;
  animation-name: fadeIn;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}

.animate {
  opacity: 0; /* 初期状態では非表示 */
  transition: opacity 1.5s ease-out, transform 1.5s ease-out; /* 透明度と変形を3秒かけてスムーズに変化 */
}

/* フェードインアニメーション（下から上に移動しながら表示） */
/* ズームインアニメーション（拡大しながら表示） */
.zoomIn {
  transform: scale(0.1); /* 初期状態では10%のサイズ */
}

/* スライドインアニメーション（右から左へ移動しながら表示） */
.fadeInUp {
  transform: translateY(150px); /* 初期状態では右に150pxずらす */
}

.fadeInLeft {
  transform: translateX(-150px); /* 初期状態では右に150pxずらす */
}

.fadeInLight {
  transform: translateX(150px); /* 初期状態では右に150pxずらす */
}

/* --------------------------
【最終状態】要素が画面内に入ったとき（アニメーション完了時）
-------------------------- */
.show {
  opacity: 1; /* 完全に表示 */
  transform: translateY(0) scale(1) translateX(0) rotateY(0); /* 元の位置・サイズ・回転に戻す */
}

nav {
  width: 100%;
  height: 70px;
  border-bottom: 2px solid #ddd;
  box-sizing: border-box;
  padding: 0 50px;
}
nav .logo {
  position: relative;
  top: 10px;
  text-align: left !important;
}
nav .logo img {
  height: 50px;
  width: auto;
  display: inline-block;
}
nav .logo p {
  font-size: 30px;
  color: #0065be;
  font-weight: bolder;
  display: inline-block;
  position: absolute;
  left: 65px;
}
nav ul {
  position: absolute;
  top: 20px;
  right: 40px;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  margin-right: 50px;
}
nav ul li {
  list-style: none;
  margin-left: 20px;
}
nav ul li a {
  color: #999;
  font-weight: bold;
  text-decoration: none;
}

header {
  padding: 0 50px;
}
header .breadcrumb {
  display: flex;
  gap: 10px;
}
header .breadcrumb a, header .breadcrumb p {
  font-size: 12px;
  text-decoration: none;
  color: #666;
  font-weight: 100;
}
header h2.title {
  font-size: 36px;
  font-weight: bolder;
  color: #666;
  margin: 50px 0 0;
}
header p.subTitle {
  font-size: 20px;
  font-weight: bolder;
  color: #666;
  margin: 0 0 0;
}

footer {
  width: 100%;
  padding: 100px 0 0;
}
footer .footerWrap {
  width: 1500px;
  margin: 0 auto;
}
footer .footerWrap .textWrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
footer .footerWrap .textWrap .left {
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
}
footer .footerWrap .textWrap .left p {
  font-size: 24px;
  font-weight: bolder;
  display: block;
  color: #0065be;
}
footer .footerWrap .textWrap .right {
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
}
footer .footerWrap .textWrap .right p {
  font-size: 24px;
  font-weight: bolder;
  display: block;
  color: #0065be;
}
footer iframe {
  width: 100%;
  height: 450px;
}
footer .copy {
  padding: 20px 0;
  margin: -5px auto 0;
  background-color: #f0f0f0;
}
footer .copy p {
  font-size: 14px;
  color: #666;
  text-align: center;
}

@media (max-width: 1024px) {
  body {
    position: absolute;
    width: 100%;
  }
  .checkbox {
    display: block;
  }
  .span-container,
  .checkbox {
    width: 45px;
    height: 45px;
    position: absolute;
    right: 2rem;
    top: 50%;
    transform: translateY(-50%);
  }
  .checkbox {
    opacity: 0;
    z-index: 100;
  }
  .span-container {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    z-index: 90;
  }
  .span-container span {
    width: 100%;
    height: 3px;
    background: #999;
    transition: all 250ms ease-out;
    transform-origin: 0 0;
  }
  .checkbox:checked ~ .span-container span:nth-last-child(1) {
    transform: rotate(-45deg) translate(-1px, 0px);
  }
  .checkbox:checked ~ .span-container span:nth-last-child(2) {
    transform: rotate(0deg) scale(0.2, 0.2);
    opacity: 0;
  }
  .checkbox:checked ~ .span-container span:nth-last-child(3) {
    transform: rotate(45deg) translate(0px, -1px);
  }
  .nav-container {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    display: flex;
    flex-flow: column wrap;
    justify-content: center;
    align-items: center;
    z-index: 50;
    background-color: rgba(0, 0, 0, 0.5);
    transition: all 250ms ease-out;
    transform: translateX(-100%);
  }
  .nav-container a {
    text-decoration: none;
    color: white;
    font-size: clamp(1.4rem, 2.4vw, 2.2rem);
    margin: 1rem auto;
  }
  .nav-container a:hover {
    color: salmon;
  }
  .checkbox:checked ~ .nav-container {
    transform: translateX(0%);
  }
  nav {
    width: 100%;
    height: 100px;
    position: fixed;
    z-index: 100;
    padding: 0;
    background-color: #fff;
  }
  nav .logo {
    position: relative;
    top: 25px;
    margin-left: 2vw;
  }
  nav .logo img {
    height: 9vw;
    width: auto;
    display: inline-block;
  }
  nav .logo p {
    font-size: 6vw;
    color: #0065be;
    font-weight: bolder;
    display: inline-block;
    position: absolute;
    left: 11vw;
  }
  nav ul {
    position: absolute;
    top: 20px;
    right: 40px;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    margin-right: 50px;
  }
  nav ul li {
    list-style: none;
    margin-left: 20px;
  }
  nav ul li a {
    color: #999;
    font-weight: bold;
    text-decoration: none;
  }
  header {
    padding: 0;
  }
  header .breadcrumb {
    display: flex;
    gap: 10px;
    padding: 0;
  }
  header .breadcrumb a, header .breadcrumb p {
    font-size: 2.5vw;
    text-decoration: none;
    color: #666;
    font-weight: 100;
  }
  header h2.title {
    font-size: 6vw;
    margin: 2vw 0 0;
    padding: 0;
  }
  header p.subTitle {
    font-size: 4vw;
    margin: 0;
    padding: 0;
  }
  footer {
    width: 100%;
    padding: 8vw 0 0;
  }
  footer .footerWrap {
    width: 100%;
    margin: 0 auto;
  }
  footer .footerWrap .textWrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }
  footer .footerWrap .textWrap .left {
    width: 100%;
    padding: 0 3vw;
    box-sizing: border-box;
  }
  footer .footerWrap .textWrap .left p {
    font-size: 4vw;
    font-weight: bolder;
    display: block;
    color: #0065be;
  }
  footer .footerWrap .textWrap .right {
    width: 100%;
    padding: 0 3vw 3vw;
    box-sizing: border-box;
  }
  footer .footerWrap .textWrap .right p {
    font-size: 4vw;
    font-weight: bolder;
    display: block;
    color: #0065be;
  }
  footer iframe {
    width: 100%;
    height: 450px;
  }
  footer .copy {
    padding: 20px 0;
    margin: -5px auto 0;
    background-color: #f0f0f0;
  }
  footer .copy p {
    font-size: 14px;
    color: #666;
    text-align: center;
  }
}/*# sourceMappingURL=style.css.map */