/*    
    Add by Misaki*
    2021/09/27
    */

/* Youtubeレスポンシブ
----------------------------------------------------------------------------------------------------------- */
.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

/* ======
  main
 ====== */
main {
  overflow: hidden;
}
main section {
  position: relative;
}
@media (min-width: 992px) {
  main section:not(:first-of-type) div.container-y {
    padding-top: 7rem;
  }
}
/* ======
  headline
 ====== */
.headline {
  padding-top: 76px;
  margin-top: -76px;
}
.headline h2 {
  font-size: 1rem;
  color: #333333;
  line-height: 1;
}
.headline h2::before {
  content: attr(data-en);
  display: block;
  color: #0048af;
  font-size: 11vw;
  font-weight: 900;
  margin-bottom: 5px;
}
main > section:not(:first-of-type) div.headline {
  position: absolute;
  top: -5.5vw;
  left: 0;
  right: 0;
  z-index: 1;
  width: 100%;
}
main > section:first-of-type div.headline h2,
main > section:first-of-type div.headline h2::before {
  color: #ffffff;
}
@media (min-width: 576px) {
  .headline h2::before {
    font-size: 6.5vw;
  }
  main > section:not(:first-of-type) div.headline {
    top: -3.25vw;
  }
}
@media (min-width: 768px) {
  .headline h2::before {
    font-size: 7vw;
  }
  main > section:not(:first-of-type) div.headline {
    top: -3.5vw;
  }
}
@media (min-width: 992px) {
  .headline h2::before {
    font-size: 4vw;
  }
  main > section:not(:first-of-type) div.headline {
    top: -2vw;
  }
}

/* ======
  color
 ====== */
.text-main {
  color: var(--default);
}
.bg_yellow {
  background-color: var(--sub);
}
.bg_d-blue {
  background-color: var(--default-deep);
  color: #fff;
}
.bg_l-blue {
  background-color: var(--default-light);
}

/* アコーディオン汎用
.accordion .accordion-header{color:#ffffff;}
.accordion button{background-color:var(--default); border:2px solid var(--default); padding:1rem; padding-right:4rem; position:relative; display:block; width:100%; text-align:left;}
.accordion button:after{content:''; width:17px; height:17px; border-right:2px solid #ffffff; border-bottom:2px solid #ffffff;	transform:rotate(-45deg); -webkit-transform:rotate(-45deg); -o-transform:rotate(-45deg); position:absolute; right:1.5rem; top:0; bottom:0; margin:auto; -webkit-transition: all .3s; transition: all .3s;}
.accordion button[aria-expanded="true"]:after,
.accordion button:hover:after{transform:rotate(45deg); -webkit-transform:rotate(45deg); -o-transform:rotate(45deg);}
 */

/* 折り畳み */
.accordion *[data-bs-toggle="collapse"] {
  border-bottom: 1px #ffffff solid;
}
*[data-bs-toggle="collapse"] {
  background-color: var(--default);
  border: 2px solid var(--default);
  padding: 1rem;
  padding-right: 4rem;
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  text-align: left;
  color: #ffffff;
  font-weight: 600;
}
*[data-bs-toggle="collapse"]:after {
  content: "";
  width: 15px;
  height: 15px;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  position: absolute;
  right: 1.5rem;
  top: 0;
  bottom: 0;
  margin: auto;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
*[data-bs-toggle="collapse"]:hover {
  color: #ffffff;
}
*[data-bs-toggle="collapse"][aria-expanded="true"]:after,
*[data-bs-toggle="collapse"]:hover:after {
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}

*[data-bs-toggle="collapse"] + div > * {
  padding-top: 1rem;
  margin-bottom: 1rem;
}

/* アニメーション前のスタイル */
.js-marker {
  display: inline;
  position: relative;
  background-image: linear-gradient(90deg, #ffff00, #ffff00); /* 単色の場合は同じ色、グラデーションさせる場合は別々の色 */
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 30%; /* '30%'の部分にマーカーの太さを記入 */
  transition: all 1s ease-in-out; /* マーカーを引く速度を調整 */
  font-weight: bold; /* ついでに太字にしたい場合 */
}

.blue-marker {
  display: inline;
  position: relative;
  background-image: linear-gradient(90deg, #8de5fb, #8de5fb); /* 単色の場合は同じ色、グラデーションさせる場合は別々の色 */
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 30%; /* '30%'の部分にマーカーの太さを記入 */
  transition: all 1s ease-in-out; /* マーカーを引く速度を調整 */
  font-weight: bold; /* ついでに太字にしたい場合 */
}

/* アニメーション発火時 */
.blue-marker.inview,
.js-marker.inview {
  background-size: 100% 30%; /* '30%'の部分は上で設定した太さに合わせる */
}

main > section:first-of-type .btn-default {
  background-color: #ffffff;
  color: var(--default);
  border: 1px solid #ffffff;
}
main > section:first-of-type .btn-default:focus,
main > section:first-of-type .btn-default:hover {
  background-color: var(--default);
  border: 1px solid var(--default);
  color: #ffffff;
}

a.yt-link {
  cursor: pointer;
}

.sns article + div.headline {
  margin-top: 4rem;
}
.sns article:nth-of-type(1) .fb_iframe_widget {
  margin: 0 auto;
}
.sns article:nth-of-type(1) .fb_iframe_widget,
.sns article:nth-of-type(1) .fb_iframe_widget * {
  width: 100% !important;
  max-width: inherit !important;
}
.sns article:nth-of-type(1) ._2p3a {
  margin: 0 auto;
}

.swiper-pagination-bullet-active {
  background: var(--default);
}

.movie .h5 {
  font-size: 1.1rem;
}
@media (min-width: 768px) {
  .movie .h5 {
    font-size: 1.25rem;
  }
}

.profile p.h3 {
  font-weight: 900;
}
.profile dl div {
  border-bottom: 2px solid #d9e2f0;
  padding: 0.5rem;
}
.profile dl div dt {
  font-weight: bold;
  margin-bottom: 0.3rem;
}
.profile dl div > dd {
  margin-bottom: 0;
}
@media (min-width: 576px) {
  .profile dl div {
    display: flex;
  }
  .profile dl div dt {
    margin-right: 15px;
    margin-bottom: 0;
    width: 90px;
  }
  .profile dl div dd {
    flex: 1;
  }
}
@media (min-width: 992px) {
  .profile p.h3 {
    font-size: 3vw;
  }
  .profile dl div dt {
    width: auto;
  }
}

.policy a img {
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.policy a:hover img {
  opacity: 0.7;
}
.policy #accordion-policy button {
  display: block;
}
.policy #accordion-policy button h4 {
  font-weight: 400;
  font-size: 0.9rem;
  margin: 0 0 10px;
}
.policy #accordion-policy button h4::after {
  content: attr(data);
  display: block;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 600;
}
.policy #accordion-policy button p {
  margin: 0;
  font-size: 1.1rem;
}
@media (min-width: 992px) {
  .policy #accordion-policy button {
    display: flex;
    align-items: center;
  }
  .policy #accordion-policy button h4 {
    margin: 0 30px 0 0;
    width: 150px;
  }
  .policy #accordion-policy button h4:after {
    margin: 0 30px 0 0;
  }
}

.achievements h3 {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
}

.information .lead {
  font-weight: 600;
}
.information h3 {
  background-color: var(--default);
  color: #ffffff;
  text-align: center;
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
}
.information div.row h4 {
  color: var(--default);
  font-size: 1.5rem;
  font-weight: 900;
  margin-bottom: 1rem;
}
.information div.row > div > div {
  flex: 1;
  background-color: #ffffff;
  padding: 1.3rem;
  text-align: center;
}
.information div.row > div > div > p {
  font-size: 0.9rem;
  font-weight: 500;
}
.information div.row > div > div > p strong {
  display: block;
  font-size: 1.1rem;
}
.information div.row > div > div > p:last-child {
  margin-bottom: 0;
  border-top: #d9e2f0 2px solid;
  padding-top: 1rem;
}
@media (min-width: 768px) {
  .information div.row > div {
    display: flex;
  }
  .information div.row h4 {
    font-size: 2.5rem;
  }
}
.information .container-y {
  padding-bottom: 20vw;
}
.information .information_period {
  margin-top: -24vw;
  padding-bottom: 5rem;
}
.information .information_period > div {
  -webkit-filter: drop-shadow(0px 3px 5px rgba(180, 180, 180, 0.8));
  filter: drop-shadow(0px 0px 5px rgba(180, 180, 180, 0.8));
  margin: 15px 0;
}
.information .information_period > div h4 {
  background-color: var(--accents);
  color: #ffffff;
  margin: 0;
  padding: 1rem 2rem;
  text-align: center;
}
.information .information_period > div h5 {
  color: var(--default);
}
.information .information_period > div > div {
  background-color: #ffffff;
  flex: 1;
  padding: 1.5rem;
  text-align: center;
}
.information .information_period > div > div > p > * {
  display: block;
}
.information .information_period > div > div > p:last-child {
  margin-bottom: 0;
  font-weight: 600;
  color: var(--default);
}
@media (min-width: 992px) {
  .information .container-y {
    padding-bottom: 8vw;
  }
  .information .information_period {
    margin-top: -8vw;
  }
  .information .information_period > div {
    display: flex;
  }
  .information .information_period > div h4 {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30%;
    min-width: 300px;
    padding: 0;
  }
}

.js-sr-toast {
  left: 0;
  right: 0;
  bottom: 50px;
  margin: 0 auto;
  width: 90%;
}
@media (min-width: 768px) {
  .js-sr-toast {
    left: auto;
    right: 0;
    bottom: 0px;
    width: auto;
  }
}

.office table {
  width: 100%;
  border-collapse: collapse;
  border-color: #b0bec5;
}
