html {
  scroll-behavior: smooth;
}

*:focus {
  outline: none !important;
}

@media (max-width: 768px) {
  .justify-content-md-center {
    -webkit-box-pack: center !important;
    -ms-flex-pack: center !important;
    justify-content: center !important;
  }
}

.banner {
  position: fixed;
  right: 50px;
  bottom: 50px;
  z-index: 2;
}
@media (max-width: 1440px) {
  .banner {
    right: 15px;
  }
}
@media (max-width: 992px) {
  .banner {
    bottom: 30%;
  }
}
@media (max-width: 576px) {
  .banner {
    right: 0;
    bottom: 0;
  }
}
.banner img {
  display: block;
  width: 220px;
  height: auto;
}
@media (max-width: 1440px) {
  .banner img {
    width: 200px;
  }
}
@media (max-width: 1120px) {
  .banner img {
    width: 100px;
  }
}
@media (max-width: 992px) {
  .banner img {
    width: 80px;
  }
}
@media (max-width: 576px) {
  .banner img {
    width: 100%;
  }
}

.banner__close-btn {
  position: absolute;
  top: -10px;
  right: 10px;
  z-index: 2;
  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;
  width: 30px;
  height: 30px;
  background-color: #000000;
  border-radius: 50rem;
}
.banner__close-btn img {
  width: 10px;
  height: 10px;
}
@media (max-width: 1120px) {
  .banner__close-btn {
    right: 5px;
  }
}
@media (max-width: 992px) {
  .banner__close-btn {
    right: -2px;
  }
}
@media (max-width: 576px) {
  .banner__close-btn {
    right: -10px;
  }
}

.lh-narrow {
  line-height: 1.5;
}

.text-shadow {
  text-shadow: 0px 1px 4px #252525 !important;
}

.text-link-primary {
  color: #252525 !important;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.text-link-primary:hover {
  color: #6f5337 !important;
}

@media (max-width: 768px) {
  .align-items-md-start {
    -webkit-box-align: start !important;
    -ms-flex-align: start !important;
    align-items: flex-start !important;
  }
}

@media (max-width: 576px) {
  .align-items-sm-start {
    -webkit-box-align: start !important;
    -ms-flex-align: start !important;
    align-items: flex-start !important;
  }
}

@media (max-width: 576px) {
  .h-sm-auto {
    height: auto !important;
  }
}

.keyvisual {
  position: relative;
  width: 100%;
  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;
  aspect-ratio: 1440/530;
  overflow: hidden;
  max-height: 820px;
}
@media (max-width: 992px) {
  .keyvisual {
    min-height: 680px;
  }
}

.text-shadow-white {
  text-shadow: 0px 1px 15px #ffffff;
}

.keyvisual__background {
  position: absolute;
  z-index: -1;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: url(/img/top/mug-two.png) no-repeat center center;
  background: url(/img/top/mug-one.png) no-repeat center center;
  background-size: cover;
}
@media (max-width: 768px) {
  .keyvisual__background {
    background: url(/img/top/mug-two.png) no-repeat center center;
    background: url(/img/top/mug-one.png) no-repeat 80% center;
    background-size: cover;
  }
}
.keyvisual__background::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), color-stop(20%, rgba(255, 255, 255, 0.4)), color-stop(40%, rgba(255, 255, 255, 0.35)), color-stop(60%, rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.2)));
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.4) 20%, rgba(255, 255, 255, 0.35) 40%, rgba(255, 255, 255, 0.3) 60%, rgba(255, 255, 255, 0.2) 100%);
}
@media (max-width: 768px) {
  .keyvisual__background::before {
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.2)), color-stop(20%, rgba(255, 255, 255, 0.3)), color-stop(40%, rgba(255, 255, 255, 0.45)), color-stop(60%, rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.2)));
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.3) 20%, rgba(255, 255, 255, 0.45) 40%, rgba(255, 255, 255, 0.3) 60%, rgba(255, 255, 255, 0.2) 100%);
  }
}

.keyvisual__background__video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.voice-section::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 75%;
  height: 100%;
  background-color: #f8f3eb;
}

.contact_img {
  position: absolute;
  bottom: 0px;
  right: -15px;
  -webkit-transform: scale(1.1, 1.1);
  transform: scale(1.1, 1.1);
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
}
@media (max-width: 992px) {
  .contact_img {
    width: 300px;
  }
}
@media (max-width: 576px) {
  .contact_img {
    width: 200px;
    right: -10px;
  }
}

.btn-line {
  color: #ffffff !important;
  background-color: #07b53b;
}

.btn-line:hover, .btn-line:active {
  color: #ffffff !important;
  background-color: #000000;
}

.story_section {
  position: relative;
}
.story_section::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 65%;
  height: 100%;
  background-color: #f6f6f6;
}
@media (max-width: 768px) {
  .story_section::before {
    left: auto;
    right: 0;
  }
}
@media (max-width: 576px) {
  .story_section::before {
    left: 0;
    right: auto;
  }
}

.story_section__title {
  position: relative;
  padding: 11px 2px 10px;
  border-top: 4px solid #ddc499;
  border-bottom: 4px solid #ddc499;
  font-size: 24px;
  line-height: 1;
  width: 100%;
  max-width: 370px;
}
@media (max-width: 576px) {
  .story_section__title {
    font-size: 20px;
  }
}
@media (max-width: 576px) {
  .story_section__title {
    width: 100%;
  }
}
.story_section__title::before {
  content: "";
  position: absolute;
  display: block;
  border-bottom: solid 4px #6f5337;
  top: -4px;
  left: -2px;
  width: 15%;
}
.story_section__title::after {
  content: "";
  position: absolute;
  display: block;
  border-bottom: solid 4px #6f5337;
  bottom: -4px;
  left: -2px;
  width: 10%;
}

.company_section {
  width: 100%;
  min-width: 400px;
  -webkit-box-shadow: 0px 1px 40px 0px rgba(0, 0, 0, 0.1);
  box-shadow: 0px 1px 40px 0px rgba(0, 0, 0, 0.1);
}
@media (max-width: 576px) {
  .company_section {
    min-width: 100%;
  }
}

.youtube-wrap {
  display: block;
  padding: 0 15px;
}

.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
  max-height: 675px !important;
}

.sotsuen-img {
  width: 100%;
  max-width: 250px;
  height: auto;
}
@media (max-width: 576px) {
  .sotsuen-img {
    max-width: 100%;
  }
}

.instagram_list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 15px 1fr 15px 1fr 15px 1fr 15px 1fr;
  grid-template-columns: repeat(5, 1fr);
  grid-gap: 15px;
}
@media (max-width: 992px) {
  .instagram_list {
    -ms-grid-columns: 1fr 15px 1fr 15px 1fr 15px 1fr;
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 768px) {
  .instagram_list {
    -ms-grid-columns: 1fr 15px 1fr 15px 1fr;
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 576px) {
  .instagram_list {
    -ms-grid-columns: 1fr 15px 1fr;
    grid-template-columns: repeat(2, 1fr);
  }
}

.instagram_list_item {
  display: block;
}
.instagram_list_item img {
  display: block;
  width: 100%;
  height: auto;
}

.faq__question {
  position: relative;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 35px;
  padding-right: 20px;
}
.faq__question::before {
  content: "Q.";
  position: absolute;
  top: 10px;
  left: 15px;
}

.faq__answer {
  position: relative;
  padding-left: 35px;
  padding-right: 20px;
}
.faq__answer::before {
  content: "A.";
  position: absolute;
  top: 10px;
  left: 15px;
}

.banner-splide .splide__slide {
  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;
  padding-right: 10px;
  overflow: hidden;
  text-align: center;
}
.banner-splide .splide__slide a {
  height: 100%;
}
.banner-splide .splide__slide img {
  display: block;
  width: 100%;
  height: auto;
}

.splide__list {
  height: auto !important;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.splide__arrow {
  width: 44px !important;
  height: 44px !important;
  background-color: #252525 !important;
  opacity: 1 !important;
  -webkit-transition: 0.2s !important;
  transition: 0.2s !important;
}
.splide__arrow:hover {
  opacity: 0.7 !important;
}
.splide__arrow svg {
  display: none;
}

.splide__arrow--next {
  right: -1rem !important;
}
@media (min-width: 1140px) {
  .splide__arrow--next {
    right: -25px !important;
  }
}
.splide__arrow--next::before {
  content: "";
  display: block;
  width: 15px;
  height: 18px;
  background: url(/img/top/arrow_white.svg) no-repeat;
  background-size: contain;
  margin-left: 1px;
}

.splide__arrow--prev {
  left: -1rem !important;
}
@media (min-width: 1140px) {
  .splide__arrow--prev {
    left: -25px !important;
  }
}
.splide__arrow--prev::before {
  content: "";
  display: block;
  width: 15px;
  height: 18px;
  background: url(/img/top/arrow_white.svg) no-repeat;
  background-size: contain;
  -webkit-transform: scale(-1, 1);
  transform: scale(-1, 1);
  margin-right: 1px;
}

.trading-performance-splide .splide__slide {
  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;
  padding-right: 10px;
  overflow: hidden;
}
.trading-performance-splide .splide__slide img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

.trading-performance-splide .splide__arrow svg {
  display: none;
}

.trading-performance__img {
  width: auto;
  height: 100px !important;
}