@charset "UTF-8";
.pcv {
  display: block;
}
@media screen and (max-width: 750px) {
  .pcv {
    display: none !important;
  }
}

.pcvin {
  display: inline-block;
}
@media screen and (max-width: 750px) {
  .pcvin {
    display: none;
  }
}

.spv {
  display: none;
}
@media screen and (max-width: 750px) {
  .spv {
    display: block;
  }
}

.header_nav {
  position: fixed;
  right: 0;
  top: 25px;
  z-index: 35;
}
.header_nav ul {
  list-style: none;
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -ms-flex-pack: justify;
  -webkit-box-pack: justify;
          justify-content: space-between;
  -ms-flex-align: start;
  -webkit-box-align: start;
          align-items: flex-start;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.header_nav ul li {
  line-height: 1.2em;
  margin-right: 30px;
  font-size: 25px;
}
.header_nav ul li a {
  position: relative;
  display: inline-block;
  color: #FFF;
  text-decoration: none;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.header_nav ul li a::before {
  background: #FFF;
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: -2px;
  -webkit-transform-origin: right top;
          transform-origin: right top;
  -webkit-transform: scale(0, 1);
          transform: scale(0, 1);
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
}
.header_nav ul li a:hover::before {
  -webkit-transform-origin: left top;
          transform-origin: left top;
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
}
.header_nav.is-blue ul li a {
  color: #003A70;
}
.header_nav.is-blue ul li a::before {
  background: #003A70;
}
@media screen and (max-width: 1080px) {
  .header_nav {
    top: 2.31vw;
  }
  .header_nav ul li {
    margin-right: 2.78vw;
    font-size: 2.31vw;
  }
}
@media screen and (max-width: 750px) {
  .header_nav {
    display: none;
  }
}

.story_wrap,
.activity_wrap,
.message_wrap {
  position: relative;
  width: 995px;
  margin: 0 auto;
  padding: 40px 0 70px 0;
}
.story_wrap h2,
.activity_wrap h2,
.message_wrap h2 {
  font-size: 50px;
  line-height: 1.2em;
  margin-bottom: 15px;
  color: #003A70;
  font-weight: normal;
  text-align: center;
}
.story_wrap h3,
.activity_wrap h3,
.message_wrap h3 {
  color: #003A70;
  text-align: center;
  padding: 0 25px;
  font-weight: normal;
  font-size: 20px;
  margin-bottom: 2em;
}
@media screen and (max-width: 1080px) {
  .story_wrap,
  .activity_wrap,
  .message_wrap {
    width: 92.13vw;
    padding: 3.7vw 0 6.48vw 0;
  }
  .story_wrap h2,
  .activity_wrap h2,
  .message_wrap h2 {
    font-size: 4.63vw;
    margin-bottom: 1.39vw;
  }
  .story_wrap h3,
  .activity_wrap h3,
  .message_wrap h3 {
    font-size: 1.85vw;
    padding: 0 1.85vw;
  }
}
@media screen and (max-width: 750px) {
  .story_wrap,
  .activity_wrap,
  .message_wrap {
    width: 92vw;
    padding: 8vw 0 8vw 0;
  }
  .story_wrap h2,
  .activity_wrap h2,
  .message_wrap h2 {
    font-size: 7.2vw;
    margin-bottom: 2.67vw;
  }
  .story_wrap h3,
  .activity_wrap h3,
  .message_wrap h3 {
    font-size: 4vw;
  }
}

.message_inner {
  position: relative;
  margin-bottom: 85px;
}
.message_inner a {
  text-decoration: none;
}
.message_inner article {
  width: 354px;
  padding: 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: #FFF;
  border-radius: 10px;
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 58, 112, 0.2);
          box-shadow: 0px 0px 10px 0px rgba(0, 58, 112, 0.2);
  cursor: pointer;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.message_inner article:hover {
  opacity: 0.5;
}
.message_inner article:nth-of-type(2) {
  position: absolute;
  top: 25px;
  left: 315px;
}
.message_inner article:nth-of-type(3) {
  position: absolute;
  top: 0;
  right: 0;
}
.message_inner article h4 {
  font-size: 20px;
  margin-bottom: 15px;
  color: #003A70;
  font-weight: normal;
}
.message_inner article p {
  color: #333;
}
.message_inner article div {
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -ms-flex-pack: justify;
  -webkit-box-pack: justify;
          justify-content: space-between;
  -ms-flex-align: center;
  -webkit-box-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.message_inner article div figure {
  width: 16.8%;
}
.message_inner article div p {
  width: 80%;
  margin: 0;
  font-size: 14px;
}
@media screen and (max-width: 1080px) {
  .message_inner {
    margin-bottom: 7.87vw;
  }
  .message_inner article {
    width: 32.78vw;
    padding: 1.85vw;
    border-radius: 0.93vw;
    -webkit-box-shadow: 0px 0px 0.93vw 0px rgba(0, 58, 112, 0.2);
            box-shadow: 0px 0px 0.93vw 0px rgba(0, 58, 112, 0.2);
  }
  .message_inner article:nth-of-type(2) {
    top: 2.31vw;
    left: 29.17vw;
  }
  .message_inner article:nth-of-type(3) {
    top: 0;
    right: 0;
  }
  .message_inner article h4 {
    font-size: 1.85vw;
    margin-bottom: 1.39vw;
  }
  .message_inner article div p {
    font-size: 1.3vw;
  }
}
@media screen and (max-width: 750px) {
  .message_inner {
    margin-bottom: 12vw;
  }
  .message_inner article {
    position: relative;
    width: 85.33vw;
    padding: 4.8vw;
    margin: 0 auto 6.67vw auto;
    border-radius: 2.67vw;
    -webkit-box-shadow: 0px 0px 4vw 0px rgba(0, 58, 112, 0.2);
            box-shadow: 0px 0px 4vw 0px rgba(0, 58, 112, 0.2);
  }
  .message_inner article:nth-of-type(2) {
    position: relative;
    top: auto;
    left: auto;
  }
  .message_inner article:nth-of-type(3) {
    position: relative;
    top: auto;
    right: auto;
  }
  .message_inner article h4 {
    font-size: 4vw;
    margin-bottom: 4vw;
    text-align: center;
  }
  .message_inner article div {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: center;
    -webkit-box-pack: center;
            justify-content: center;
    -ms-flex-align: center;
    -webkit-box-align: center;
            align-items: center;
  }
  .message_inner article div figure {
    width: 18.7%;
    margin-right: 4vw;
  }
  .message_inner article div p {
    display: inline-block;
    width: auto;
    font-size: 3.47vw;
  }
}

.more_btn {
  position: relative;
  text-align: center;
  margin: 0;
}
.more_btn a {
  position: relative;
  display: inline-block;
  padding: 0.3em 5em;
  border-radius: 2em;
  text-decoration: none;
  color: #003A70;
  border: 1px solid #003A70;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.more_btn a::after {
  display: block;
  position: absolute;
  content: "";
  width: 9px;
  height: 9px;
  border-top: solid 1px #003A70;
  border-right: solid 1px #003A70;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  top: calc(50% - 4px);
  right: 1em;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.more_btn a:hover {
  color: #FFF;
  background: #003A70;
}
.more_btn a:hover::after {
  border-top: solid 1px #FFF;
  border-right: solid 1px #FFF;
}
@media screen and (max-width: 1080px) {
  .more_btn a::after {
    width: 0.83vw;
    height: 0.83vw;
    top: calc(50% - 0.37vw);
  }
}
@media screen and (max-width: 750px) {
  .more_btn {
    font-size: 3.2vw;
  }
  .more_btn a {
    width: 53.33vw;
    margin: 0 auto;
    padding: 0.6em 0;
    text-align: center;
  }
  .more_btn a::after {
    width: 1.6vw;
    height: 1.6vw;
    top: calc(50% - 0.8vw);
  }
}

.activity_inner {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  margin-bottom: 30px;
}
.activity_inner article {
  width: 29%;
  margin-bottom: 60px;
  margin-right: 6.5%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 58, 112, 0.2);
          box-shadow: 0px 0px 10px 0px rgba(0, 58, 112, 0.2);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.activity_inner article:nth-of-type(3n) {
  margin-right: 0;
}
.activity_inner article a {
  display: block;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  text-decoration: none;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}
.activity_inner article a:hover {
  background: rgba(0, 58, 112, 0.05);
}
.activity_inner article a:hover figure img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1); /* ホバー時に1.1倍に拡大 */
}
.activity_inner article a:hover time,
.activity_inner article a:hover h4 {
  color: #003A70;
}
.activity_inner article figure {
  line-height: 0;
  margin-bottom: 20px;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  width: 100%;
  height: 174px;
  overflow: hidden;
}
.activity_inner article figure img {
  width: 100%;
  height: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.activity_inner article h4 {
  font-size: 16px;
  padding: 0 25px;
  color: #333;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 1.5em;
  font-weight: normal;
}
.activity_inner article time {
  display: block;
  color: #333;
  padding: 0 25px 20px 25px;
  font-size: 15px;
}
@media screen and (max-width: 1080px) {
  .activity_inner {
    margin-bottom: 2.78vw;
  }
  .activity_inner article {
    margin-bottom: 5.56vw;
    border-top-left-radius: 0.93vw;
    border-top-right-radius: 0.93vw;
    -webkit-box-shadow: 0px 0px 0.93vw 0px rgba(0, 58, 112, 0.2);
            box-shadow: 0px 0px 0.93vw 0px rgba(0, 58, 112, 0.2);
  }
  .activity_inner article figure {
    margin-bottom: 1.85vw;
    height: 16.11vw;
    border-top-left-radius: 0.93vw;
    border-top-right-radius: 0.93vw;
  }
  .activity_inner article figure img {
    border-top-left-radius: 0.93vw;
    border-top-right-radius: 0.93vw;
  }
  .activity_inner article h4 {
    font-size: 1.48vw;
    padding: 0 2.31vw;
  }
  .activity_inner article time {
    padding: 0 2.31vw 1.85vw 2.31vw;
    font-size: 1.39vw;
  }
}
@media screen and (max-width: 750px) {
  .activity_inner {
    margin-bottom: 8vw;
  }
  .activity_inner article {
    width: 85.33vw;
    margin: 0 auto 6.67vw auto;
    border-top-left-radius: 2.67vw;
    border-top-right-radius: 2.67vw;
    -webkit-box-shadow: 0px 0px 4vw 0px rgba(0, 58, 112, 0.2);
            box-shadow: 0px 0px 4vw 0px rgba(0, 58, 112, 0.2);
  }
  .activity_inner article:nth-of-type(3n) {
    margin-right: auto;
  }
  .activity_inner article figure {
    margin-bottom: 5.33vw;
    height: 40vw;
    border-top-left-radius: 2.67vw;
    border-top-right-radius: 2.67vw;
  }
  .activity_inner article figure img {
    border-top-left-radius: 2.67vw;
    border-top-right-radius: 2.67vw;
  }
  .activity_inner article h3,
  .activity_inner article h4 {
    text-align: left;
    font-size: 4vw;
    padding: 0 5.33vw;
  }
  .activity_inner article time {
    padding: 0 5.33vw 4vw 5.33vw;
    font-size: 4vw;
  }
}

.story_wrap {
  padding-bottom: 120px;
}
@media screen and (max-width: 1080px) {
  .story_wrap {
    padding-bottom: 11.11vw;
  }
}
@media screen and (max-width: 750px) {
  .story_wrap {
    padding-bottom: 32vw;
  }
}

@media screen and (max-width: 750px) {
  .talk-image-02 {
    position: relative;
    display: block;
    top: auto;
    right: 0;
    left: auto;
  }
}

.detal .header_nav ul li a {
  color: #003A70;
}
.detal .header_nav ul li a::before {
  background: #003A70;
}

.message_list {
  margin-top: 75px;
}
.message_list h3 {
  margin-bottom: 35px;
}
.message_list .message_inner {
  position: relative;
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -ms-flex-pack: start;
  -webkit-box-pack: start;
          justify-content: flex-start;
  -ms-flex-align: stretch;
  -webkit-box-align: stretch;
          align-items: stretch;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.message_list .message_inner article {
  position: relative;
  width: 30.3%;
  margin-bottom: 45px;
  margin-right: 4.55%;
  top: auto;
  left: auto;
  right: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.message_list .message_inner article:nth-of-type(3n) {
  margin-right: 0;
}
.message_list .message_inner article figure {
  width: 20.3%;
}
.message_list .message_inner article h4 {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.message_list .message_inner article p {
  color: #333;
  width: 75%;
}
@media screen and (max-width: 1080px) {
  .message_list {
    margin-top: 6.94vw;
  }
  .message_list h3 {
    margin-bottom: 3.24vw;
  }
  .message_list .message_inner article {
    margin-bottom: 4.17vw;
  }
}
@media screen and (max-width: 750px) {
  .message_list {
    margin-top: 18.67vw;
  }
  .message_list h3 {
    margin-bottom: 0.5em;
  }
  .message_list .message_inner article {
    width: 85.33vw;
    margin-bottom: 8vw;
  }
  .message_list .message_inner article:nth-of-type(3n) {
    margin-right: auto;
  }
  .message_list .message_inner article p {
    width: auto;
  }
}

.caution_message {
  position: relative;
  width: 995px;
  margin: 0 auto;
  top: -2.5em;
  font-size: 15px;
  color: #333;
  text-align: right;
}
@media screen and (max-width: 1080px) {
  .caution_message {
    width: 92.13vw;
    font-size: 1.39vw;
  }
}
@media screen and (max-width: 750px) {
  .caution_message {
    width: 85.33vw;
    font-size: 3.73vw;
    text-align: center;
    top: auto;
    margin-bottom: 2em;
  }
}

/* オーバーレイ（背景） */
#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(147, 147, 147, 0.8); /* 白の50% */
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 997;
  cursor: pointer;
}

/* モーダル共通スタイル */
.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 80%;
  max-width: 560px;
  max-height: 90vh;
  overflow-y: auto;
  background-color: #fff;
  padding: 65px 45px;
  -webkit-box-shadow: 0 0 20px rgba(0, 58, 112, 0.2);
          box-shadow: 0 0 20px rgba(0, 58, 112, 0.2);
  border-radius: 8px;
  opacity: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  visibility: hidden;
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 999;
}
.modal h2 {
  text-align: center;
  font-size: 27px;
  margin-bottom: 40px;
  line-height: 1.4em;
  color: #003A70;
}
.modal p {
  color: #003A70;
  line-height: 1.75em;
  margin-bottom: 3em;
}
.modal figure {
  text-align: center;
}
.modal figure img {
  width: 90px;
  margin-bottom: 12px;
}
.modal figure figcaption {
  font-size: 16px;
  color: #333;
  line-height: 1.5em;
}
.modal button {
  position: absolute;
  right: 13px;
  top: 13px;
  border: none;
  background: #BFBFBF;
  width: 25px;
  height: 25px;
  border-radius: 25px;
  text-indent: -9999px;
  cursor: pointer;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.modal button:hover {
  opacity: 0.5;
}
.modal button::before, .modal button::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 15px;
  background: #FFF;
}
.modal button::before {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
.modal button::after {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}
@media screen and (max-width: 750px) {
  .modal {
    width: 85.33vw;
    max-height: 75vh;
    max-width: inherit;
    padding: 9.33vw 5.33vw;
    -webkit-box-shadow: 0 0 2.67vw rgba(0, 58, 112, 0.2);
            box-shadow: 0 0 2.67vw rgba(0, 58, 112, 0.2);
    border-radius: 2.67vw;
  }
  .modal h2 {
    font-size: 5.07vw;
    margin-bottom: 5.33vw;
  }
  .modal p {
    font-size: 4vw;
  }
  .modal figure {
    text-align: center;
  }
  .modal figure img {
    width: 18.67vw;
    margin-bottom: 4vw;
  }
  .modal figure figcaption {
    font-size: 4vw;
  }
  .modal button {
    right: 2.67vw;
    top: 2.67vw;
    width: 6.67vw;
    height: 6.67vw;
    border-radius: 6.67vw;
  }
  .modal button::before, .modal button::after {
    width: 1px;
    height: 4vw;
  }
  .modal button::before {
    -webkit-transform: translate(-50%, -50%) rotate(45deg);
            transform: translate(-50%, -50%) rotate(45deg);
  }
  .modal button::after {
    -webkit-transform: translate(-50%, -50%) rotate(-45deg);
            transform: translate(-50%, -50%) rotate(-45deg);
  }
}

/* アクティブ（表示）状態のクラス */
#overlay.active,
.modal.active {
  opacity: 1;
  visibility: visible;
}

.nav_wrap {
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -ms-flex-pack: center;
  -webkit-box-pack: center;
          justify-content: center;
  -ms-flex-align: center;
  -webkit-box-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.nav_wrap span,
.nav_wrap a {
  display: inline-block;
  border: 1px solid #FFF;
  font-size: 16px;
  line-height: 30px;
  height: 30px;
  width: 30px;
  margin: 0 5px;
  border-radius: 30px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  text-align: center;
}
.nav_wrap span {
  border: 1px solid #003A70;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 30px;
}
.nav_wrap a {
  color: #003A70;
  text-decoration: none;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.nav_wrap a:hover {
  background: #003A70;
  color: #FFF;
}
@media screen and (max-width: 1080px) {
  .nav_wrap span,
  .nav_wrap a {
    font-size: 1.48vw;
    line-height: 2.78vw;
    height: 2.78vw;
    width: 2.78vw;
    margin: 0 0.46vw;
    border-radius: 2.78vw;
  }
  .nav_wrap span {
    border-radius: 2.78vw;
  }
}
@media screen and (max-width: 750px) {
  .nav_wrap span,
  .nav_wrap a {
    font-size: 3.73vw;
    line-height: 6.93vw;
    height: 6.93vw;
    width: 6.93vw;
    margin: 0 0.8vw;
    border-radius: 6.93vw;
  }
  .nav_wrap span {
    border-radius: 6.93vw;
  }
}

.brand_activity .activity_wrap {
  padding-top: 115px;
}
.brand_activity article h3 {
  text-align: left;
}
@media screen and (max-width: 750px) {
  .brand_activity .activity_wrap {
    padding-top: 0;
    margin-top: 18.67vw;
  }
}

.sc_view {
  opacity: 0;
  -webkit-transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1), transform 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1), transform 1s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 1s cubic-bezier(0.25, 1, 0.5, 1);
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
  --move-dist: 30px;
}

.sc_view.is-active {
  opacity: 1;
  -webkit-transform: translate(0, 0) !important;
          transform: translate(0, 0) !important; /* 強制的に位置をリセット */
}

.view_up1,
.view_up {
  -webkit-transform: translateY(var(--move-dist));
          transform: translateY(var(--move-dist));
}

.view_up2 {
  -webkit-transform: translateY(var(--move-dist));
          transform: translateY(var(--move-dist));
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}
@media screen and (max-width: 750px) {
  .view_up2 {
    -webkit-transition-delay: 0.3s;
            transition-delay: 0.3s;
  }
}

.view_up3 {
  -webkit-transform: translateY(var(--move-dist));
          transform: translateY(var(--move-dist));
  -webkit-transition-delay: 0.9s;
          transition-delay: 0.9s;
}
@media screen and (max-width: 750px) {
  .view_up3 {
    -webkit-transition-delay: 0.3s;
            transition-delay: 0.3s;
  }
}

.view_down {
  -webkit-transform: translateY(calc(var(--move-dist) * -1));
          transform: translateY(calc(var(--move-dist) * -1));
}

.view_left {
  -webkit-transform: translateX(calc(var(--move-dist) * -1));
          transform: translateX(calc(var(--move-dist) * -1));
}

.view_right {
  -webkit-transform: translateX(var(--move-dist));
          transform: translateX(var(--move-dist));
}

.view_fade {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

:root {
  --menu-bg-color: #FFF;
  --menu-bg-opacity: 0.95;
  --anim-speed: 0.4s;
  --menu-text-color: #003A70;
  --btn-color: #003A70;
  --btn-active-color: #003A70;
}

.menu {
  position: fixed;
  top: 2vw;
  right: 2vw;
  width: 50px;
  height: 50px;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 1000; /* メニューより手前に表示 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px; /* 線の間隔 */
  display: none;
  z-index: 998;
}
@media screen and (max-width: 750px) {
  .menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

/* 3本線 */
.menu span {
  display: block;
  width: 28px;
  height: 2px;
  color: #003A70;
  background-color: var(--btn-color);
  border-radius: 2px;
  -webkit-transition: all var(--anim-speed) ease;
  transition: all var(--anim-speed) ease;
}

/* バツ印への変形アニメーション */
.menu.is-active span:nth-child(1) {
  -webkit-transform: translateY(10px) rotate(45deg);
          transform: translateY(10px) rotate(45deg); /* 11pxは gap + height 分の調整 */
  background-color: var(--btn-active-color);
}

.menu.is-active span:nth-child(2) {
  opacity: 0; /* 真ん中の線は消す */
}

.menu.is-active span:nth-child(3) {
  -webkit-transform: translateY(-10px) rotate(-45deg);
          transform: translateY(-10px) rotate(-45deg);
  background-color: var(--btn-active-color);
}

.menu span:nth-child(4) {
  font-size: 9px;
  background: none;
  width: 40px;
}

.sp_menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh; /* 全画面 */
  background-color: var(--menu-bg-color);
  z-index: 900;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  -webkit-transition: all var(--anim-speed) ease;
  transition: all var(--anim-speed) ease;
  pointer-events: none; /* 閉じてる時はクリック不可 */
  opacity: 0;
  z-index: 998;
}
.sp_menu ul {
  display: inline-block;
  text-align: center;
}
.sp_menu ul li {
  text-align: left;
  margin-bottom: 15px;
  font-size: 23px;
}
.sp_menu ul li a {
  position: relative;
  display: inline-block;
  text-decoration: none;
  color: #003A70;
  padding: 0.1em 0 0.05em 0;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.sp_menu ul li a::before {
  background: #003A70;
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: -2px;
  -webkit-transform-origin: right top;
          transform-origin: right top;
  -webkit-transform: scale(0, 1);
          transform: scale(0, 1);
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
}
.sp_menu ul li a:hover {
  color: #003A70;
}
.sp_menu ul li a:hover::before {
  -webkit-transform-origin: left top;
          transform-origin: left top;
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
}
.sp_menu.is-active {
  opacity: var(--menu-bg-opacity);
  pointer-events: auto;
}

.sp_menu.type-slide-right {
  opacity: var(--menu-bg-opacity); /* スライドなので最初から色は見えておく */
  -webkit-transform: translateX(100%);
          transform: translateX(100%); /* 右に隠しておく */
}

.sp_menu.type-slide-right.is-active {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

.sp_menu.type-slide-bottom {
  opacity: 0;
  -webkit-transform: translateY(100px);
          transform: translateY(100px); /* 100px下に配置 */
}

.sp_menu.type-slide-bottom.is-active {
  opacity: var(--menu-bg-opacity);
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.sp_menu.type-slide-top {
  opacity: 0;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%); /* 画面上外、または -50px 等でもOK */
}

.sp_menu.type-slide-top.is-active {
  opacity: var(--menu-bg-opacity);
  -webkit-transform: translateY(0);
          transform: translateY(0);
}