@charset "utf-8";

@font-face {
  font-family: "DIN Alternate";
  src: url('../fonts/DINAlternate-Bold.ttf');
}

@font-face {
  font-family: "Noto Sans JP";
  src: url('../fonts/NotoSansJP.ttf');
}

/*-----------------------------------------------------------
reset
-----------------------------------------------------------*/
* {
  margin: 0;
  padding: 0;
}

html {
  font-size: 62.5%;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  overflow: auto;
}

/* 
body {
  font-family: "メイリオ", Meiryo, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", sans-serif;
} */

table, pre, code, select, input, textarea, kbd, var, ins, del, samp, h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
}

br {
  vertical-align: middle;
  /* FFで改行あるなしで高さが微妙に変わるのを回避 */
}

address, cite, dfn, em, var {
  font-style: normal;
}

img {
  border: none;
  vertical-align: bottom;
  line-height: 1;
  -ms-interpolation-mode: bicubic;
  width: auto;
  max-width: 100%;
  height: auto;
  /* 大きい画像縮小してもキレイ */
}

table {
  border-spacing: 0;
  border-collapse: collapse;
}

ul, ol, li {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

abbr, acronym {
  border: 0;
  font-variant: normal;
}

form label {
  cursor: pointer;
}

select option {
  padding: 0 5px;
}

input, textarea {
  margin: 1px;
  padding: 2px;
  line-height: 1;
}

textarea {
  overflow: auto;
}

input, button, textarea, select, optgroup, option {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

a {
  cursor: pointer;
}

.cf:after {
  content: "";
  clear: both;
  display: block;
}

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
}

@media screen and (max-width: 768px) {

  /* iphone用inputタグの初期化 */
  input[type="button"],
  input[type="reset"],
  input[type="submit"] {
    -webkit-appearance: none;
    margin-bottom: 10px;
  }
}

/*-----------------------------------------------------------
全体スタイル
-----------------------------------------------------------*/

body {
  width: 100% !important;
  color: #333;
  line-height: 1.6;
  overflow: hidden;
  font-size: 1.8rem;
  /* max-width: 1920px; */
  margin: 0 auto;
}

body.open {
  height: 150vh;
}

/*リンク表示方法*/

a {
  text-decoration: none;
  color: #333;
}

a:hover {
  color: #1F58A6;
}

a img {
  transition: .5s;
}

/*-----------------------------------------------------------
PCサイズ
-----------------------------------------------------------*/

.pc {
  display: block;
}

.sp {
  display: none;
}

.pc-flex {
  display: flex;
}

.sp-flex {
  display: none;
}

.img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hArea {
  width: 100%;
  z-index: 999;
  background: #fff;
  height: 96px;
  position: relative;
}

.hLogo {
  position: relative;
  z-index: 9999;
}

.hLogo img {
  display: block;
}

.subHead {
  position: fixed;
  width: 100%;
  top: 96px;
  left: 0;
  background-color: #EFF4FF;
  max-height: 0;
  height: 100%;
  overflow: hidden;
  transition: all .3s ease;
  z-index: 1;
}

.subHead.active {
  max-height: 71px;
}

.header-pc {
  position: fixed;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 96px;
  padding: 0 48px;
  border-bottom: 1px solid #D5D5D5;
  background: #fff;
  z-index: 2;
  font-size: 1.6rem;
}

.nav-pc {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
  height: 100%;
}

.nav-pc .nav-item {
  display: flex;
  gap: 8px;
  height: 100%;
}

.nav-pc .nav-item-last {
  font-weight: 500;
  color: #1F58A6;
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-pc .nav-trigger {
  display: flex;
  align-items: center;
  font-weight: 500;
  color: #1F58A6;
  position: relative;
}

.nav-pc .nav-trigger:hover {
  cursor: pointer;
}

.nav-pc .nav-item.active .nav-trigger {
  height: 100%;
}

.nav-pc .nav-item.active .nav-trigger::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 4px;
  bottom: 0;
  left: 0;
  background-color: #1F58A6;
}

.nav-pc .nav-child-list {
  position: absolute;
  z-index: 0;
  width: max-content;
  bottom: 0;
  transform: translateY(100%);
  height: 71px;
  opacity: 0;
  transition: all .2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  pointer-events: none;
}

.nav-pc .nav-child-list.nav-last {
  left: 0;
  width: 100%;
}

.nav-pc .nav-item.active .nav-child-list {
  opacity: 1;
  z-index: 2;
  pointer-events: auto;
}

.nav-pc .nav-child {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #333;
}

.nav-pc .nav-child:hover {
  color: #1F58A6;
}

.hFunction {
  display: flex;
  align-items: center;
}

.hFunction .select-lang {
  display: flex;
  align-items: center;
  border-left: 1px solid #D5D5D5;
  border-right: 1px solid #D5D5D5;
  padding: 0 16px;
  margin-right: 24px;
  color: #333;
  height: 18px;
}

.hFunction .hBtn {
  width: 151px;
  height: 48px;
  background-color: #1F58A6;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-weight: 500;
  border-radius: 30px;
  margin-right: 20px;
}

.hFunction .loginBtn {
  position: relative;
  width: 151px;
  padding: 8px;
  background-color: #fff;
  border: 1px solid #df2e8b;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #df2e8b;
  font-weight: bold;
  font-size: 12px;
}

.hFunction .loginBtn::before {
  position: absolute;
  left: 9px;
  top: 50%;
  width: 18px;
  height: 31px;
  background: url(../img/ico_plaio.png) no-repeat 0 0 / contain;
  content: "";
  transform: translateY(-50%);
}

.hFunction .loginBtn::after {
  position: absolute;
  right: 7px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #df2e8b;
  border-right: 2px solid #df2e8b;
  content: "";
  transform: translateY(-50%) rotate(45deg);
}

.select-lang select {
  background: transparent;
  padding: 5px;
  font-size: 13px;
  line-height: 1;
  border: 0;
  outline: 0px;
  border-radius: 0;
  height: 34px;
  color: #333;
}

.mainArea {
  width: 100%;
  /* max-width: 1740px; */
}

.btn-common {
  position: relative;
  max-width: 320px;
  width: 100%;
  height: 58px;
  margin: 0 auto;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #145298;
  color: #145298;
  font-size: 16px;
  border-radius: 100vh;
  transition: all .3s ease;
}

.btn-common::before {
  position: absolute;
  top: 50%;
  right: 6px;
  width: 46px;
  height: 46px;
  background-color: #85d8de;
  border-radius: 100vh;
  transform: translateY(-50%);
  transition: all .3s ease;
  content: "";
}

.btn-common::after {
  position: absolute;
  top: 50%;
  right: 29px;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg) translateY(-50%);
  transition: all .3s ease;
  content: "";
}

.btn-common:hover {
  cursor: pointer;
  background-color: #85d8de;
  color: #fff;
}

.btn-common:hover::before {
  background-color: #fff;
}

.btn-common:hover::after {
  border-top: 2px solid #85d8de;
  border-right: 2px solid #85d8de;
}

/* mv */
.mv-wrap {
  margin: 0 0 100px;
  width: 100%;
  background: url("../img/top/bg_mv.png") no-repeat center / cover;
}

.mv-wrap .mv-text {
  max-width: 1000px;
  margin: 0 auto;
  padding: 85px 20px 65px;
}

.mv-wrap .mv-text .mv-title {
  text-align: center;
  text-shadow: 0 0 13px #424242, 0 0 13px #424242, 0 0 13px #424242;
  color: #fff;
  font-weight: bold;
  font-size: 65px;
}

.mv-wrap .mv-text .mv-title .jp {
  display: block;
  margin: 10px 0 0;
  font-size: 28px;
}

.mv-wrap .mv-text .philosophy-title {
  margin: 80px 0 0;
  text-align: center;
  text-shadow: 0 0 6px #1b1b1b, 0 0 6px #1b1b1b, 0 0 6px #1b1b1b;
  color: #fff;
  font-weight: bold;
  font-size: 25px;
}

.mv-wrap .mv-text .philosophy-title .jp {
  display: block;
  margin: 5px 0 0;
  font-size: 20px;
}

.mv-wrap .mv-text .philosophy-desc {
  margin: 25px 0 0;
  text-align: center;
  text-shadow: 0 0 6px #1b1b1b, 0 0 6px #1b1b1b, 0 0 6px #1b1b1b;
  color: #fff;
  font-size: 20px;
  line-height: 2.2;
}

/* ir */
.ir-wrap {
  margin: 0 0 100px;
}

.ir-title-section {
  position: relative;
  padding: 80px 0 0;
}

.ir-title-section::before {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: 2px;
  height: 60px;
  background: #85d8de;
  transform: translateX(-50%);
  content: "";
}

.ir-title-section .ir-title {
  position: relative;
  margin: 0 0 45px;
  padding: 30px 0 0;
  text-align: center;
  font-size: 32px;
  font-weight: 500;
  color: rgba(31, 88, 167, 1);
}

.ir-title-section .ir-title img {
  position: absolute;
  top: 0;
  left: calc(50% + 30px);
}

.ir-news-archive-wrap {
  max-width: 550px;
  margin: 0 auto;
}

.ir-news-archive-wrap .ir-news-archive-list {
  margin: 0 0 30px;
  border-top: 1px solid #002b89;
}

.ir-news-archive-wrap .ir-news-archive-list>li {
  border-bottom: 1px solid #e5e5e5;
}

.ir-news-archive-wrap .ir-news-archive-list>li .inner {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 26px 0;
  width: 100%;
  color: #333;
  font-size: 14px;
}

.ir-news-archive-wrap .ir-news-archive-list>li .inner .date {
  width: 28%;
  font-size: 14px;
}

.ir-news-archive-wrap .ir-news-archive-list>li .inner .text {
  width: 72%;
}

/* vision and mission */
.vision-and-mission-wrap {
  margin: 0 0 80px;
}

.vision-and-mission-inner {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 10px;
  max-width: 1020px;
  margin: 0 auto;
  padding: 103px 10px 140px;
}

.vision-and-mission-inner::before {
  position: absolute;
  left: 0;
  top: 0;
  width: 707px;
  height: 600px;
  background: url(../img/top/bg_section.png) no-repeat center / contain;
  z-index: -1;
  content: "";
}

.vision-and-mission-inner .image {
  order: 2;
  width: 53.7%;
}

.vision-and-mission-inner .text {
  order: 1;
  width: 46.3%;
  padding: 42px 0 0;
}

.vision-and-mission-inner .text .heading {
  margin: 0 0 65px;
  text-align: center;
  text-shadow: 0 0 6px #1b1b1b, 0 0 6px #1b1b1b, 0 0 6px #1b1b1b;
  color: #fff;
  font-weight: bold;
  font-size: 32px;
}

.vision-and-mission-inner .text .heading .jp {
  display: block;
  margin: 5px 0 0;
  font-size: 20px;
}

.vision-and-mission-inner .text .image-sp {
  display: none;
}

/* sustainability */
.sustainability-wrap {
  margin: 0 0 80px;
}

.sustainability-inner {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 10px;
  max-width: 1020px;
  margin: 0 auto;
  padding: 103px 10px 140px;
}

.sustainability-inner::before {
  position: absolute;
  right: 0;
  top: 0;
  width: 707px;
  height: 600px;
  background: url(../img/top/bg_section.png) no-repeat center / contain;
  z-index: -1;
  content: "";
}

.sustainability-inner .image {
  order: 1;
  width: 53.7%;
}

.sustainability-inner .text {
  order: 2;
  width: 46.3%;
  padding: 42px 0 0;
}

.sustainability-inner .text .heading {
  margin: 0 0 65px;
  text-align: center;
  text-shadow: 0 0 6px #1b1b1b, 0 0 6px #1b1b1b, 0 0 6px #1b1b1b;
  color: #fff;
  font-weight: bold;
  font-size: 32px;
}

.sustainability-inner .text .heading .jp {
  display: block;
  margin: 5px 0 0;
  font-size: 20px;
}

.sustainability-inner .text .image-sp {
  display: none;
}

/* anchor */
.anchor-wrap {
  position: relative;
  margin: 0 0 80px;
  padding: 230px 0 0;
}

.anchor-wrap::before {
  position: absolute;
  left: 50%;
  top: 0;
  max-width: 1280px;
  width: 100%;
  height: 230px;
  background: url(../img/top/bg_anchor_01.png) no-repeat center bottom / contain;
  content: "";
  z-index: -1;
  transform: translateX(-50%);
}

.anchor-inner {
  position: relative;
  padding: 98px 10px 260px;
}

.anchor-inner::before {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 326px;
  background: url(../img/top/bg_anchor_02.png) no-repeat center / cover;
  content: "";
  z-index: -1;
}

.anchor-inner::after {
  position: absolute;
  left: 50%;
  top: 326px;
  max-width: 1280px;
  width: 100%;
  height: 303px;
  background: url(../img/top/bg_anchor_03.png) no-repeat center top / contain;
  content: "";
  z-index: -1;
  transform: translateX(-50%);
}

.anchor-list {
  display: flex;
  justify-content: center;
  gap: 40px;
}

.anchor-list>li {
  max-width: 360px;
  width: 100%;
  padding: 20px 20px 24px;
  background: #fff;
  border-radius: 20px;
}

.anchor-list>li .title {
  margin: 0 0 25px;
  text-align: center;
  font-size: 32px;
  font-weight: bold;
  color: #145298;
}

.anchor-list>li .title .jp {
  display: block;
  margin: 15px 0 0;
  font-size: 20px;
  font-weight: normal;
}

/* footer */
footer {
  background-color: rgba(213, 213, 213, 0.2);
  padding: 52.6px 25px;
}

.footer-top {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-bottom: 40px;
}

.footer-label, .footer-list li a {
  font-size: 16px;
  line-height: 28px;
  color: #333;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.footer-label {
  display: block;
  font-weight: bold;
  margin-bottom: 16px;
}

.footer-label:last-child {
  margin-bottom: 0;
}

.footer-label a {
  color: #333;
}

.footer-list li a:hover {
  color: #1F58A6;
}

.footer-middle {
  display: flex;
  justify-content: center;
  gap: 32px;
  padding: 30px 0;
  border-top: 1px solid #D5D5D5;
  border-bottom: 1px solid #D5D5D5;
  max-width: 1056px;
  margin: 0 auto;
  font-size: 16px;
}

.footer-middle a {
  color: #333;
}

.footer-middle a:hover {
  color: #1F58A6;
}

.footer-bottom {
  position: relative;
  padding: 60px 100px;
  display: flex;
  align-items: center;
  max-width: calc(1056px + 200px);
  margin: 0 auto;
  gap: 53.21px;
}

.footer-bottom .etoc {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 80px;
}

.copy-right {
  font-size: 14px;
  line-height: 28px;
  color: #333;
}

.scroll-to-top {
  width: 129px;
  height: 124px;
  background: url(../img/ico_pagetop.png) no-repeat center / contain;
  position: fixed;
  bottom: 70px;
  right: 8.75vw;
  z-index: 100;
  display: none;
}

.scroll-to-top:hover {
  cursor: pointer;
}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 1024px) {

  /* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
  /* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  .pc-flex {
    display: none;
  }

  .sp-flex {
    display: flex;
  }

  .hArea {
    height: 56px;
    border-bottom: 1px solid #D5D5D5;
  }

  .header-sp {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 56px;
    background: #fff;
  }

  .header-main {
    background: #fff;
    padding: 0 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    position: relative;
    z-index: 9999;
    border-bottom: 1px solid #D5D5D5;
  }

  .menu-trigger {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 9999;
  }

  .menu-trigger:hover {
    cursor: pointer;
  }

  .menu-trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
  }

  .hamburger {
    position: relative;
    width: 18px;
    height: 14px;
  }

  .menu-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #1F58A6;
    border-radius: 4px;
  }

  .menu-trigger span:nth-of-type(1) {
    top: 0;
  }

  .menu-trigger span:nth-of-type(2) {
    top: 6px;
  }

  .menu-trigger span:nth-of-type(3) {
    bottom: 0;
  }

  .menu-trigger.active span:nth-of-type(1) {
    -webkit-transform: translateY(17px) rotate(-45deg);
    transform: translateY(17px) rotate(-45deg);
    top: -10px;
  }

  .menu-trigger.active span:nth-of-type(2) {
    opacity: 0;
  }

  .menu-trigger.active span:nth-of-type(3) {
    -webkit-transform: translateY(-17px) rotate(45deg);
    transform: translateY(-17px) rotate(45deg);
    bottom: -12px;
  }

  .menu-trigger .text {
    margin-top: 3px;
    font-size: 10px;
    line-height: 14px;
  }

  .menu-trigger .text.close {
    display: none;
  }

  .menu-trigger .text.show {
    display: block;
  }

  .menu-trigger.active .text.close {
    display: block;
  }

  .menu-trigger.active .text.show {
    display: none;
  }

  /*gnav*/
  .gnav {
    /* display: none; */
    height: 150vh;
    position: absolute;
    width: 100%;
    z-index: 999;
    transition: .5s;
    left: 0;
    top: 0;
    /* opacity: 0; */
    /* display: none; */
    transform: translateY(-150vh);
    overflow: auto;
  }

  .gnav__overlay {
    background: rgba(0, 0, 0, .5);
    /* display: none; */
    position: absolute;
    width: 100%;
    z-index: 1;
    inset: 0;
  }

  .gnav.active {
    width: 100%;
    /* opacity: 1; */
    transform: translateY(0);
  }

  .gnav__menu {
    display: block;
    width: 100%;
    justify-content: start;
  }

  .gnav__wrap {
    align-items: baseline;
    height: auto;
    justify-content: center;
    position: absolute;
    z-index: 2;
    width: 100%;
    top: 0;
    background: #fff;
    padding: 56px 0 20px;
    transform: translate(0, -100%);
    transition: .5s;
  }

  .active .gnav__wrap {
    transform: translate(0, 0);
  }


  .nav-trigger, .nav-child {
    width: 100%;
    height: 58px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.8rem;
    padding: 0 32px;
    border-bottom: 1px solid #D5D5D5;
  }

  .nav-child:hover {
    cursor: pointer;
    background-color: #1F58A6;
    color: #fff;
  }

  .gnav .nav-item-last {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.8rem;
    color: #1F58A6;
    font-weight: bold;
    padding: 0 32px;
    height: 58px;
    border-bottom: 1px solid #D5D5D5;
  }

  .nav-trigger {
    color: #1F58A6;
    font-weight: bold;
    transition: all .3s ease;
  }

  .nav-trigger .language {
    display: flex;
    align-items: center;
    gap: 4px;
    color: #333;
    font-size: 1.3rem;
  }

  .nav-item.active .nav-trigger img {
    transform: rotate(180deg);
  }

  .nav-child-list {
    overflow: hidden;
    max-height: 0;
    background-color: #EFF4FF;
    transition: max-height .3s ease-out;
  }

  .nav-item.active .nav-child-list {
    max-height: 100vh;
    transition: max-height .5s ease-in;
  }

  .gnav .hBtn {
    width: 279px;
    height: 48px;
    background-color: #1F58A6;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-weight: 500;
    border-radius: 30px;
    margin: 0 auto;
    margin-top: 20px;
  }

  .gnav .loginBtn {
    position: relative;
    width: 151px;
    margin: 20px auto 0;
    padding: 8px;
    background-color: #fff;
    border: 1px solid #df2e8b;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #df2e8b;
    font-weight: bold;
    font-size: 12px;
  }

  .gnav .loginBtn::before {
    position: absolute;
    left: 9px;
    top: 50%;
    width: 18px;
    height: 31px;
    background: url(../img/ico_plaio.png) no-repeat 0 0 / contain;
    content: "";
    transform: translateY(-50%);
  }

  .gnav .loginBtn::after {
    position: absolute;
    right: 7px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-top: 2px solid #df2e8b;
    border-right: 2px solid #df2e8b;
    content: "";
    transform: translateY(-50%) rotate(45deg);
  }

  .closeBtn {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin: 0 auto;
    margin-top: 20px;
    border: 0;
    background-color: transparent;
    font-size: 1.6rem;
    font-weight: bold;
    color: #333;
  }

  /* ir-title-section */
  .ir-title-section {
    padding: 10vw 0 0;
  }

  .ir-title-section::before {
    height: 6vw;
  }

  .ir-title-section .ir-title {
    margin: 0 0 5vw;
    padding: 3.4vw 0 0;
    font-size: 4vw;
  }

  .ir-title-section .ir-title img {
    left: 50%;
    height: 4.4vw;
    transform: translateX(-50%);
  }


  /* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
  footer {
    padding: 40px 25px;
  }

  .footer-top {
    padding: 0 28px;
    flex-direction: column;
    gap: 40px;
    margin-bottom: 40px;
  }

  .footer-label {
    font-size: 18px;
  }

  .footer-middle {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 40px 26px;
  }

  .footer-middle a {
    color: #333;
    font-size: 16px;
  }


  .footer-bottom {
    padding: 48px 0 0;
    flex-direction: column;
    justify-content: center;
    display: grid;
    /*grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    */
    grid-template-columns: auto;
    grid-template-rows: auto;
    gap: 2em 1em;
    /*grid-template-areas:
      "etoc logo"
      "copy copy";
      */
    grid-template-areas:
      "logo"
      "copy";
  }

  .footer-bottom .etoc {
    position: static;
    left: 0;
    top: 0;
    transform: none;
    max-width: 80px;
    width: 15vw;
    grid-area: etoc;
  }

  .footer-bottom .fLogo {
    grid-area: logo;
    text-align: center;
  }

  .footer-bottom .copy-right {
    grid-area: copy;
    text-align: center;
  }

  .scroll-to-top {
    width: 65px;
    height: 62px;
    right: 25px;
    bottom: 40px;
  }
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */




@media screen and (max-width: 599px) {
  .btn-common {
    height: 14vw;
    font-size: 4.6vw;
  }

  .btn-common::before {
    right: 1.6vw;
    width: 10.8vw;
    height: 10.8vw;
  }

  .btn-common::after {
    right: 6.8vw;
    width: 1.7vw;
    height: 1.7vw;
  }










  /* mv */
  .mv-wrap {
    margin: 0 0 15vw;
  }

  .mv-wrap .mv-text {
    padding: 8vw 5vw;
  }

  .mv-wrap .mv-text .mv-title {
    text-shadow: 0 0 1.8vw #424242, 0 0 1.8vw #424242, 0 0 1.8vw #424242;
    font-size: 7.6vw;
  }

  .mv-wrap .mv-text .mv-title .jp {
    margin: 3vw 0 0;
    font-size: 5.2vw;
  }

  .mv-wrap .mv-text .philosophy-title {
    margin: 12vw 0 0;
    text-shadow: 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b;
    font-size: 5.6vw;
  }

  .mv-wrap .mv-text .philosophy-title .jp {
    margin: 2vw 0 0;
    font-size: 4.8vw;
  }

  .mv-wrap .mv-text .philosophy-desc {
    margin: 3vw 0 0;
    text-shadow: 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b;
    font-size: 3.6vw;
  }

  /* ir */
  .ir-wrap {
    margin: 0 0 10vw;
    padding: 0 5vw;
  }

  .ir-title-section {
    padding: 14vw 0 0;
  }

  .ir-title-section::before {
    height: 8vw;
  }

  .ir-title-section .ir-title {
    margin: 0 0 6vw;
    padding: 6vw 0 0;
    font-size: 6.2vw;
  }

  .ir-title-section .ir-title img {
    height: 7vw;
  }

  .ir-news-archive-wrap .ir-news-archive-list>li .inner {
    padding: 5vw 0;
    font-size: 3.4vw;
  }

  .ir-news-archive-wrap .ir-news-archive-list>li .inner .date {
    width: 32vw;
    font-size: 3.4vw;
  }

  .ir-news-archive-wrap .ir-news-archive-list>li .inner .text {
    width: calc(100% - 32vw);
  }


  /* vision and mission */
  .vision-and-mission-wrap {
    margin: 0 0 3vw;
  }

  .vision-and-mission-inner {
    padding: 25vw 5vw 10vw;
  }

  .vision-and-mission-inner::before {
    width: 87vw;
    height: auto;
    aspect-ratio: 707 / 600;
  }

  .vision-and-mission-inner .image {
    display: none;
  }

  .vision-and-mission-inner .text {
    width: 100%;
    padding: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5vw 5vw;
  }

  .vision-and-mission-inner .text .heading {
    width: calc(60% - 5vw);
    margin: 0;
    text-shadow: 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b;
    font-size: 6.8vw;
  }

  .vision-and-mission-inner .text .heading .jp {
    margin: 1.8vw 0 0;
    font-size: 4.2vw;
  }

  .vision-and-mission-inner .text .image-sp {
    display: block;
    width: 40%;
  }

  .vision-and-mission-inner .text .btn-common {
    width: 100%;
  }

  /* sustainability */
  .sustainability-wrap {
    margin: 0 0 12vw;
  }

  .sustainability-inner {
    padding: 25vw 5vw 10vw;
  }

  .sustainability-inner::before {
    width: 87vw;
    height: auto;
    aspect-ratio: 707 / 600;
  }

  .sustainability-inner .image {
    display: none;
  }

  .sustainability-inner .text {
    width: 100%;
    padding: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5vw 5vw;
  }

  .sustainability-inner .text .heading {
    width: calc(60% - 5vw);
    margin: 0;
    text-shadow: 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b, 0 0 1.2vw #1b1b1b;
    font-size: 6.8vw;
    order: 2;
  }

  .sustainability-inner .text .heading .jp {
    margin: 1.8vw 0 0;
    font-size: 4.2vw;
  }

  .sustainability-inner .text .image-sp {
    display: block;
    width: 40%;
    order: 1;
  }

  .sustainability-inner .text .btn-common {
    width: 100%;
    order: 3;
  }

  /* anchor */
  .anchor-wrap {
    margin: 0 0 3vw;
    padding: 20vw 0 0;
  }

  .anchor-wrap::before {
    height: 20vw;
  }

  .anchor-inner {
    padding: 10vw 0 30vw;
  }

  .anchor-inner::before {
    height: calc(100% - 36vw);
  }

  .anchor-inner::after {
    top: calc(100% - 36vw);
    height: 25vw;
  }

  .anchor-list {
    flex-direction: column;
    gap: 5vw 0;
    padding: 0 5vw;
  }

  .anchor-list>li {
    max-width: 100%;
    padding: 5vw 6vw;
    border-radius: 5vw;
  }

  .anchor-list>li .title {
    margin: 0 0 6vw;
    font-size: 6.8vw;
  }

  .anchor-list>li .title br {
    display: none;
  }

  .anchor-list>li .title .jp {
    margin: 1vw 0 0;
    font-size: 4.2vw;
  }

}