/*font*/

@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700&display=swap&subset=japanese');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');

/*initial setting*/

body, html, h1, h2, h3, h4, h5, h6, ul, li, img, p {
  margin: 0;
  padding: 0;
  border: 0;
}
body, html {
  width: 100%;
  height: 100%;
  font-family: Roboto, 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  color: #2e2930;
}
@media screen and (min-width:600px) {

  body, html {
    font-size: 16px;
  }

}
label, article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
  display: block;
  margin: 0;
  padding: 0;
}
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}
section {
  overflow: hidden;
}
button, input, select, textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  border: none;
  border-radius: 0;
  color: inherit;
  font: inherit;
  font-size: 100%;
  padding: 0;
  margin: 0;
}
input:-webkit-autofill {
  box-shadow: 0 0 0 1000px white inset;
}
select::-ms-expand {
  display: none;
}
input[type="submit"], input[type="button"], label, button, select {
  cursor: pointer;
}
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
}
textarea {
  resize: vertical;
}
ul, ol {
  padding: 0;
  margin: 0;
  list-style-type: none;
}
a {
  color: #8f8667;
}
a:hover {
  color: #c89932;
}
input:-ms-input-placeholder {
  color: #c0c0c0;
  font-weight: normal;
}
input::-webkit-input-placeholder {
  color: #c0c0c0;
  font-weight: normal;
}
input:-moz-placeholder {
  color: #c0c0c0;
  font-weight: normal;
}
input::-moz-placeholder {
  color: #c0c0c0;
  font-weight: normal;
  opacity: 1;
}
input:placeholder-shown {
  color: #c0c0c0;
  font-weight: normal;
}

/*all*/

#wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 10;
}
.is_hide {
  display: none;
}

/*header*/

#header {
  position: fixed;
  top: 0;
  width: 100%;
  height: 75px;
  z-index: 200;
  background-color: unset;
  transition: background-color 0.3s ease 0s;
}
#header.open {
  background-color: #ffffff;
}
#navi_logo {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 244px;
  height: 75px;
  z-index: 500;
}
#navi_logo a {
  display: block;
  width: 204px;
  height: 45px;
  padding: 15px;
}
#navi_logo #navi_logo_box {
  display: block;
  width: 204px;
  height: 45px;
  padding: 15px;
}
#navi_nav {
  position: fixed;
  width: 100%;
  height: 100%;
  padding-top: 75px;
  box-sizing: border-box;
  transform: translateX(100%);
  transition: transform 0.3s ease 0s;
  z-index: 100;
}
#header.open + #navi_nav {
  transform: translateX(0);
}
#navi_ul {
  height: 100%;
  background-color: #38acb5;
}
.navi_menu {
  border-bottom: 3px solid #ffffff;
}
.navi_menu a {
  display: block;
  padding: 8px 16px;
  font-size: 16px;
  font-weight: bold;
  color: #ffffff;
  text-decoration: none;
  transition: background-color 0.3s ease 0s, color 0.3s ease 0s;
}
.navi_menu a:hover {
  background-color: #ffffff;
  color: #38acb5;
}
#navi_toggle {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 45px;
  height: 45px;
  user-select: none;
  cursor: pointer;
  background-color: #38acb5;
  border-radius: 3px;
  z-index: 500;
}
#navi_toggle_menu::before {
  content: "";
  display: block;
  position: absolute;
  top: 12px;
  left: 0;
  right: 0;
  width: 27px;
  height: 0px;
  margin: 0 auto;
  border: 3px solid #ffffff;
  border-radius: 3px 3px 3px 3px;
  transition: all 0.3s ease 0s;
}
#navi_toggle_menu::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 12px;
  left: 0;
  right: 0;
  width: 27px;
  height: 0px;
  margin: 0 auto;
  border: 3px solid #ffffff;
  border-radius: 3px 3px 3px 3px;
  transition: all 0.3s ease 0s;
}
#header.open #navi_toggle_menu::before {
  height: 27px;
  top: 6px;
  border-radius: 100% 3px 100% 3px;
}
#header.open #navi_toggle_menu::after {
  height: 27px;
  bottom: 6px;
  border-radius: 3px 100% 3px 100%;
}
@media screen and (min-width:660px) {

  #header.open {
    background-color: unset;
  }
  #navi_nav {
    display: inline-block;
    position: fixed;
    top: 30px;
    left: 244px;
    width: auto;
    height: auto;
    padding-top: 0;
    box-sizing: border-box;
    transform: translateX(0);
    transition: none;
    z-index: 400;
  }
  #navi_ul {
    height: auto;
    display: inline-block;
    background-color: unset;
  }
  .navi_menu {
    display: inline-block;
    border-bottom: none;
  }
  .navi_menu a {
    display: block;
    position: relative;
    padding: 8px 6px;
    color: #383c3c;
    line-height: 1;
    font-weight: bold;
    text-decoration: none;
  }
  .navi_menu a:hover {
    background-color: unset;
  }
  .navi_menu a::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 2px;
    left: 0;
    right: 0;
    width: 0;
    height: 3px;
    margin: 0 auto;
    background-color: #38acb5;
    transition: width 0.3s ease 0s;
  }
  .navi_menu a:hover::after {
    width: 100%;
  }
  #navi_toggle {
    display: none;
  }

}

/*kv*/

#kv {
  position: relative;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
#kv {
  height: 100%;
  width: 100%;
}
#kv_circle_medi {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 120px;
  right: 120px;
  width: 180px;
  height: 180px;
  margin: auto;
  background-color: rgb(244, 63, 205);
  border-radius: 30% 70% 40% 60% / 20% 50% 50% 80%;
  animation: circle1 6s ease infinite, turn1 18s linear infinite;
}
#kv_circle_ative {
  position: absolute;
  top: 0;
  left: 120px;
  bottom: 120px;
  right: 0;
  width: 180px;
  height: 180px;
  margin: auto;
  background-color: rgb(188, 235, 24);
  border-radius: 60% 40% 50% 50% / 30% 40% 60% 70%;
  animation: circle2 6s ease infinite, turn2 18s linear infinite;
  mix-blend-mode: difference;
}
@keyframes circle1 {
  0 {
    border-radius: 30% 70% 40% 60% / 20% 50% 50% 80%;
  }
  25% {
    border-radius: 60% 40% 40% 60% / 20% 30% 70% 80%;
  }
  50% {
    border-radius: 60% 40% 70% 30% / 50% 30% 70% 50%;
  }
  75% {
    border-radius: 70% 30% 60% 40% / 50% 50% 50% 50%;
  }
  100% {
    border-radius: 30% 70% 40% 60% / 20% 50% 50% 80%;
  }
}
@keyframes turn1 {
  0 {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes circle2 {
  0 {
    border-radius: 60% 40% 50% 50% / 30% 40% 60% 70%;
  }
  25% {
    border-radius: 30% 70% 50% 50% / 50% 40% 60% 50%;
  }
  50% {
    border-radius: 30% 70% 20% 80% / 60% 60% 40% 40%;
  }
  75% {
    border-radius: 50% 50% 30% 70% / 50% 60% 40% 50%;
  }
  100% {
    border-radius: 60% 40% 50% 50% / 30% 40% 60% 70%;
  }
}
@keyframes turn2 {
  0 {
    transform: rotate(0);
  }
  100% {
    transform: rotate(-360deg);
  }
}
#kv_copy {
  position: absolute;
  width: 100%;
  bottom: 30%;
  left: 0;
  right: 0;
  font-size: 18px;
  text-align: center;
}
#kv_copy::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 80px;
  height: 2px;
  margin: auto;
  border-radius: 1px;
  background-color: #2e2930;
  transform: rotate(40deg);
}
#kv_copy::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 80px;
  height: 2px;
  margin: auto;
  border-radius: 1px;
  background-color: #2e2930;
  transform: rotate(-40deg);
}
#kv_copy span {
  display: inline-block;
}
#kv_medi {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 60%;
  margin auto 0;
}
#kv_ative {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 60%;
  margin auto 0;
}
#kv_cross {
  width: 80px;
}
@media screen and (min-width:375px) {

  #kv_circle_medi {
    bottom: 120px;
    right: 140px;
    width: 210px;
    height: 210px;
  }
  #kv_circle_ative {
    position: absolute;
    left: 140px;
    bottom: 120px;
    width: 210px;
    height: 210px;
  }
  #kv_copy {
    bottom: 28%;
    font-size: 20px;
  }

}
@media screen and (min-width:660px) {

  #kv_circle_medi {
    bottom: 100px;
    right: 200px;
    width: 300px;
    height: 300px;
  }
  #kv_circle_ative {
    position: absolute;
    left: 200px;
    bottom: 100px;
    width: 300px;
    height: 300px;
  }
  #kv_copy {
    bottom: 20%;
    font-size: 24px;
  }

}
@media screen and (min-width:900px) {

  #kv_circle_medi {
    bottom: 80px;
    right: 240px;
    width: 320px;
    height: 320px;
  }
  #kv_circle_ative {
    position: absolute;
    left: 240px;
    bottom: 80px;
    width: 320px;
    height: 320px;
  }
  #kv_copy {
    bottom: 16%;
    font-size: 26px;
  }

}
#kv_scroll {
  position: absolute;
  bottom: 2%;
  left: 0;
  right: 0;
  width: 40px;
  height: 30px;
  margin: 0 auto;
}
.kv_scroll_part {
  position: relative;
  width: 100%;
  height: 10px;
}
.kv_scroll_part::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 2px;
  background-color: #2e2930;
  transform: skewY(20deg);
}
.kv_scroll_part::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 2px;
  background-color: #2e2930;
  transform: skewY(-20deg);
}
#kv_scroll_part1 {
  opacity: 0;
  animation: scroll1 2s ease infinite;
}
#kv_scroll_part2 {
  opacity: 0;
  animation: scroll2 2s ease infinite;
}
#kv_scroll_part3 {
  opacity: 0;
  animation: scroll3 2s ease infinite;
}
@keyframes scroll1 {
  0 {
    opacity: 0;
  }
  25% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  75% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes scroll2 {
  0 {
    opacity: 0;
  }
  25% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  75% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes scroll3 {
  0 {
    opacity: 0;
  }
  25% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  75% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

/*mission*/

#mission {
  width: 100%;
  padding: 40px 5%;
  background-color: #ffffff;
  box-sizing: border-box;
}
#mission_h2 {
  padding: 10px 0;
}
#mission_ja {
  font-weight: bold;
  font-size: 16px;
  color: #38acb5;
}
#mission_en {
  font-weight: bold;
  font-size: 12px;
  color: #38acb5;
}
#mission_context {
  padding: 10px 0 20px;
  font-size: 12px;
}
.value {
  font-weight: bold;
}
.paragraph {
  margin-bottom: 1em;
}
#mission_context span {
  color: #38acb5;
}
.mission_br {
  display: none;
}
@media screen and (min-width:375px) {

  #mission_ja {
    font-size: 19px;
  }
  #mission_en {
    font-size: 14px;
  }
  #mission_context {
    font-size: 14px;
  }

}
@media screen and (min-width:500px) {

  #mission_ja {
    font-size: 24px;
  }
  #mission_en {
    font-size: 18px;
  }

}
@media screen and (min-width:660px) {

  #mission_ja {
    font-size: 28px;
  }
  #mission_en {
    font-size: 22px;
  }
  #mission_context {
    font-size: 16px;
  }
  .mission_br {
    display: inline;
  }

}
@media screen and (min-width:900px) {

  #mission {
    padding: 60px 10%;
  }
  #mission_wrap {
    padding-top: 20px;
    position: relative;
  }
  #mission_cross {
    position: absolute;
    top: 0;
    right: 0;
  }

}
#mission_cross_svg {
  display: block;
  width: 180px;
  height: 150px;
  margin: 30px auto;
  fill: url("#g1");
}
@media screen and (min-width:1080px) {

  #mission_cross_svg {
    width: 240px;
    height: 200px;
    margin: 30px auto;
  }

}
.stop1 {
  animation: flash1 5s infinite;
}
.stop2 {
  animation: flash2 5s infinite;
}
.stop3 {
  animation: flash3 5s infinite;
}
.stop4 {
  animation: flash4 5s infinite;
}
.stop5 {
  animation: flash1 5s infinite;
}
@keyframes flash1 {
  0%, 100% {
    stop-color: #f5bad3;
  }
  25% {
    stop-color: #fff8a5;
  }
  50% {
    stop-color: #ccffaa;
  }
  75% {
    stop-color: #a5d4f2;
  }
}
@keyframes flash2 {
  0%, 100% {
    stop-color: #fff8a5;
  }
  25% {
    stop-color: #ccffaa;
  }
  50% {
    stop-color: #a5d4f2;
  }
  75% {
    stop-color: #f5bad3;
  }
}
@keyframes flash3 {
  0%, 100% {
    stop-color: #ccffaa;
  }
  25% {
    stop-color: #a5d4f2;
  }
  50% {
    stop-color: #f5bad3;
  }
  75% {
    stop-color: #fff8a5;
  }
}
@keyframes flash4 {
  0%, 100% {
    stop-color: #a5d4f2;
  }
  25% {
    stop-color: #f5bad3;
  }
  50% {
    stop-color: #fff8a5;
  }
  75% {
    stop-color: #ccffaa;
  }
}

/*footer*/

#footer {
  padding: 6px 0;
  background-color: #38acb5;
  color: #ffffff;
  text-align: center;
}
#footer_box {
  position: relative;
}
#footer_logo a {
  display: block;
  width: 100px;
  margin: 0 auto;
  padding: 20px;
}
#footer_sns a {
  display: inline-block;
  width: 60px;
  height: 60px;
}
#footer_sns a img {
  display: block;
  width: 100%;
  height: 100%;
}
#footer small {
  font-size: 0.8rem;
}

@media screen and (min-width:600px) {

  #footer_logo {}

}

/*context*/

.context {
  padding: 85px 5% 40px;
}
#page_h1 {
  position: relative;
  font-size: 24px;
}
#page_h1::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 4px;
  width: 100%;
  height: 2px;
  background-color: #38acb5;
}
.context_box {
  padding: 1em 0;
}


/*responsive*/

@media screen and (min-width:600px) {

}
@media screen and (min-width:900px) {

}
@media screen and (min-width:1200px) {

}