@charset "UTF-8";
/* CSS Document */
html {
  font-size: 62.5%; /* 16px * 62.5% = 10px */
  width: 100%;
/*box-sizing: border-box;*/
}
body {
  color: #333; /* RGB */
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 500;
  font-size: 1.6em;
  line-height: 3.2rem;
  text-align: center;
}
section h2 {
  font-size: 2.2rem;
}
a:hover {
  opacity: 0.5;
}
button:focus {
  outline: 0;
}
button:hover {
  opacity: 1;
  cursor: pointer;
}
.none {
  display: none;
}

*, *:before, *:after {
  box-sizing: border-box;
}

/* return to top */
#scroll-top {
  background-color: #333;
  opacity: 0.3;
  padding: 12px 20px;
  position: fixed;
  bottom: 2vh;
  right: 2vw;
}
#scroll-top a {
  text-decoration: none;
  color: #fff;
}

a.navLink:hover {
    opacity: 0.7;
}
a.navLink:visited {
    text-decoration: none;
}
a.navLink {
    display: block;
    width: 100%;
    height: 57px;
    color: #333333;
    text-decoration: none;
}

    /* ======== ヘッダー全体 ======== */
    .headWrap {
      position: relative;
      background: #fff;
      width: 100%;
      /*box-shadow: 0 2px 4px rgba(0,0,0,0.1);*/
    }

    /* ヘッダー内のレイアウト */
    .headInner {
      display: flex;
      align-items: center;
      justify-content: space-between; /* 左・中央・右に配置 */
      padding: 10px 20px;
      position: relative;
    }

    /* 左端：ロゴ */
    .logo {
      height: 40px;
    }

    /* 中央：テキスト */
    .headTxt {
      position: absolute; /* 中央固定配置 */
      left: 50%;
      transform: translateX(-50%);
      font-size: 1.4em;
      color: #333;
      font-weight: bold;
      text-decoration: none;
      white-space: nowrap;
    }

    /* ======== ハンバーガーボタン ======== */
    .menu-btn {
      width: 30px;
      height: 25px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      cursor: pointer;
      z-index: 1001;
    }

    .menu-btn span {
      display: block;
      height: 3px;
      background: #333;
      border-radius: 2px;
      transition: all 0.3s ease;
    }

    /* ======== ハンバーガーボタン ======== */
    .menu-btn {
      width: 30px;
      height: 25px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      cursor: pointer;
      position: absolute;
      right: 20px;
      top: 20px;
      z-index: 1001;
    }

    .menu-btn span {
      display: block;
      height: 3px;
      background: #333;
      border-radius: 2px;
      transition: all 0.3s ease;
    }

    /* 開いているときのアニメーション */
    .menu-btn.open span:nth-child(1) {
      transform: rotate(45deg) translateY(10px);
    }
    .menu-btn.open span:nth-child(2) {
      opacity: 0;
    }
    .menu-btn.open span:nth-child(3) {
      transform: rotate(-45deg) translateY(-10px);
    }

    /* ======== スライドメニュー ======== */
    .navbar {
      position: fixed;
      top: 0;
      right: -100%;
      width: 70%;
      height: 100%;
      background-color: #000000; /* 背景黒 */
      color: #fff;
      transition: right 0.4s ease;
      z-index: 1000;
      padding-top: 80px; /* 上部余白 */
    }

    .navbar.open {
      right: 0;
    }

    .navbar ul {
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .navbar ul li {
      text-align: center;
      margin: 20px 0;
    }

    .navbar ul li a {
      color: #ffffff;
      text-decoration: none;
      font-size: 18px;
      display: block;
      padding: 10px 0;
      transition: background-color 0.3s ease;
    }

    .navbar ul li a:hover {
      background-color: #333333;
    }

    /* ======== 背景を暗くするオーバーレイ ======== */
    .overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0,0,0,0.4);
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.4s ease;
      z-index: 999;
    }

    .overlay.show {
      opacity: 1;
      visibility: visible;
    }