.btn-line {
  position: relative;
}

.btn-line a {
  color: currentColor;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.16em;
  line-height: 1;
  text-decoration: none;
  overflow: hidden;
  position: relative;
  width: 344px;
  height: 42px;
  display: block;
  box-sizing: border-box;
  font-family: 'Noto Serif JP';
}

.btn-line a span {
  display: block;
  padding-right: 8px;
  text-align: center;
}

.btn-line a::before {
  position: absolute;
  bottom: 0;
  z-index: 2;
  background: url(../img/floor/arr_r.png) no-repeat;
  width: 344px;
  height: 13px;
  content: '';
  transform: translateX(0);
  transition: 0.5s cubic-bezier(0.7, 0, 0.3, 1);
  filter: brightness(0) invert(1);
}

.btn-line a:hover::before {
  animation: scale 1s cubic-bezier(0.7, 0, 0.3, 1) both;
}

@keyframes scale {
  0% {
    transform: translateX(-100%);
  }
  40% {
    transform: translateX(-100%);
  }
  60% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

.slick-dots {
  margin: 34px 30px 0 0;
}

.slick-dots li {
  width: 22px;
  height: 22px;
  margin: 0 9px;
}

.slick-dots li button {
  width: 22px;
  height: 22px;
  border: 2px solid #000;
  background: transparent;
}

.slick-dots li.slick-active button {
  background: #5b0000;
  border-color: #5b0000;
}

#key {
  width: 100%;
  box-sizing: border-box;
  position: absolute;
  top: 0px;
  left: 0;
}

#key .slide1 {
  background-image: url(../img/floor/key.jpg);
}

#key li {
  height: 899px;
}

#lead {
  position: relative;
  padding: 166px 0 65px;
}

#lead:before {
  content: '';
  height: 97px;
  background: url(../img/kaisen/line_sec.jpg) repeat-x center top;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1;
}

#lead h2 {
  position: absolute;
  right: calc(50% - 604px);
  top: 230px;
  z-index: 2;
}

#lead .img1 {
  width: calc(50% + 288px);
  height: 699px;
  margin-bottom: 58px;
}

#lead .img2 {
  position: absolute;
  right: calc(50% - 702px);
  top: 697px;
}

#lead .row1 {
  padding-bottom: 76px;
}

#lead .row1 .txt {
  margin-left: -50px;
  width: 510px;
  letter-spacing: 0.02em;
}

#lead .row2 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#lead .row2 .img3 {
  width: 606px;
  margin-left: -49px;
}

#lead .row2 .col-right {
  width: 433px;
  margin: 40px -31px 0 0;
}

#lead .row2 .col-right li {
  width: 263px;
  position: relative;
}

#lead .row2 .col-right li span {
  display: block;
  position: absolute;
  z-index: 1;
}

#lead .row2 .col-right .btn1 {
  margin: 0 0 -2px auto;
}

#lead .row2 .col-right .btn1 span {
  top: 45px;
  left: -162px;
}

#lead .row2 .col-right .btn2 span {
  top: 37px;
  right: -161px;
}

@media screen and (min-width: 768px) and (max-width: 1240px) {
  #lead h2 {
    right: calc(50% - 524px);
  }
  #lead .img1 {
    width: calc(50% + 220px);
  }
  #lead .row1 .txt {
    margin-left: -20px;
  }
  #lead .row2 .img3 {
    margin-left: -30px;
  }
  #lead .row2 .col-right {
    margin-right: -20px;
  }
  #lead .row2 .col-right .btn1 span {
    left: -152px;
  }
}

#caution {
  padding: 16px 0 98px;
}

#caution .box {
  max-width: 1200px;
  width: 96%;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  background-image: url("../img/course/tel_bg.jpg");
  box-sizing: border-box;
  padding: 97px 50px 89px;
}

#caution .box:before {
  content: '';
  background-image: url("../img/shared/bg2.jpg");
  position: absolute;
  left: 2px;
  right: 2px;
  top: 2px;
  bottom: 2px;
  z-index: -1;
}

#caution .box h2 {
  position: absolute;
  top: -16px;
  left: calc(50% - 425px);
  z-index: 1;
  width: 605px;
  background: #191816;
  color: #fff;
  text-align: center;
  font-size: 36.62px;
  line-height: 41px;
  letter-spacing: 0.1em;
  padding: 0px 18px 7px 0;
  box-sizing: border-box;
}

#caution .box ul {
  display: table;
  margin: 0 auto;
  font-size: 18px;
  line-height: 36px;
  letter-spacing: 0.01em;
}

#f01 {
  padding: 0 0 127px;
  position: relative;
  z-index: 0;
}

#f01:before {
  content: '';
  width: calc(50% + 366px);
  height: 1116px;
  background-image: url("../img/shared/bg_ft.jpg");
  position: absolute;
  left: 0;
  top: -274px;
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 0 100%, 0% 100%);
}

#f01 h2 {
  max-width: 1194px;
  width: 96%;
  margin: 0 auto -27px;
  position: relative;
  z-index: 2;
}

#f01 .bg-para {
  height: 800px;
}

#f01 .row1 {
  padding: 86px 0 48px 20px;
}

#f01 .row1 .inner {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
}

#f01 .row1 .img {
  order: 2;
  width: calc(50% + 80px);
  height: 554px;
}

#f01 .row1 .col-text {
  order: 1;
  width: 476px;
  margin: 11px 59px 0 0;
}

#f01 .row1 .col-text h3 {
  margin-bottom: 55px;
}

#f01 .row1 .col-text .txt {
  width: 412px;
  letter-spacing: 0.03em;
  margin-left: 15px;
}

#f01 .row2 .inner {
  max-width: 1200px;
  width: 96%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#f01 .row2 .col-left {
  max-width: 817px;
  width: calc(100% - 330px);
}

#f01 .row2 .col-left .ttl {
  font-size: 30px;
  font-weight: 500;
  margin: 0 0 21px 22px;
}

#f01 .row2 .col-left .floormap img {
  width: 100%;
  height: auto;
}

#f01 .row2 .col-right {
  width: 300px;
  margin-top: 157px;
}

#f01 .row2 .col-right h4 {
  margin-bottom: 55px;
}

#f01 .row2 .col-right .txt {
  width: 280px;
  letter-spacing: 0.01em;
}

#scene {
  padding-bottom: 93px;
}

#scene .inner {
  max-width: 1200px;
  width: 96%;
  margin: 0 auto;
}

#scene h2 {
  position: relative;
  margin-bottom: 52px;
}

#scene h2:before {
  content: '';
  width: calc(50% - 186px);
  height: 3px;
  background: #c13c0e;
  position: absolute;
  left: 0;
  top: 26px;
}

#scene h2:after {
  content: '';
  width: calc(50% - 186px);
  height: 3px;
  background: #c13c0e;
  position: absolute;
  right: 0;
  top: 26px;
}

#scene .list-item {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

#scene .list-item .img {
  margin-bottom: 27px;
}

#scene .list-item .img img {
  width: 100%;
  height: auto;
}

#scene .list-item .col-text h3 {
  text-align: center;
  font-size: 30px;
  font-weight: 600;
  line-height: 46px;
  margin-bottom: 17px;
  min-height: 92px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#scene .list-item .col-text .txt {
  font-size: 15px;
  line-height: 26px;
  letter-spacing: 0.02em;
  padding-right: 10px;
  box-sizing: border-box;
}

@media screen and (min-width: 768px) and (max-width: 1200px) {
  #scene .list-item .col-text h3 {
    font-size: 28px;
  }
}

#course .inner {
  width: 94.134%;
  background-image: url("../img/floor/course_img.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50%;
  color: #fff;
  position: relative;
  z-index: 0;
  padding: 114px 0 140px;
}

#course .inner:before {
  content: '';
  width: 961px;
  background-image: url("../img/floor/shadow.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: left center;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -1;
}

#course .col-text {
  width: 478px;
  margin-left: auto;
}

#course .col-text h2 {
  margin-bottom: 56px;
}

#course .col-text .txt {
  width: 413px;
  letter-spacing: 0.02em;
  margin: 0 0 81px -2px;
}

#goods {
  padding: 111px 0 91px;
}

#goods .inner {
  max-width: 1200px;
  width: 96%;
  margin: 0 auto;
}

#goods h2 {
  position: relative;
  margin-bottom: 47px;
}

#goods h2:before {
  content: '';
  width: calc(50% - 256px);
  height: 3px;
  background: #c13c0e;
  position: absolute;
  left: 0;
  top: 29px;
}

#goods h2:after {
  content: '';
  width: calc(50% - 256px);
  height: 3px;
  background: #c13c0e;
  position: absolute;
  right: 0;
  top: 29px;
}

#goods .txt {
  font-size: 18px;
  line-height: 36px;
  letter-spacing: 0.02em;
  margin-bottom: 56px;
}

#goods ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

#goods ul li img {
  width: 100%;
  height: auto;
}

#goods ul li span {
  display: block;
  color: #c13c0e;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  margin-top: 34px;
}

@media screen and (min-width: 768px) and (max-width: 1200px) {
  #goods ul li span {
    font-size: 28px;
  }
}

#f02 {
  padding: 58px 0 163px;
  position: relative;
  z-index: 0;
}

#f02:before {
  content: '';
  width: calc(50% + 366px);
  height: 1116px;
  background-image: url("../img/shared/bg_ft.jpg");
  position: absolute;
  left: 0;
  top: 0px;
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 0 100%, 0% 100%);
}

#f02 h2 {
  max-width: 1194px;
  width: 96%;
  margin: 0 auto -27px;
  position: relative;
  z-index: 2;
}

#f02 .bg-para {
  height: 800px;
}

#f02 .row1 {
  padding: 86px 0 96px 20px;
}

#f02 .row1 .inner {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
}

#f02 .row1 .f02-slider {
  order: 2;
  width: calc(50% + 80px);
  margin-top: 26px;
}

#f02 .row1 .f02-slider .slick-slide {
  height: 602px;
  line-height: 0;
}

#f02 .row1 .f02-slider .slick-slide * {
  height: 100%;
}

#f02 .row1 .col-text {
  order: 1;
  width: 476px;
  margin: 11px 59px 0 0;
}

#f02 .row1 .col-text h3 {
  margin-bottom: 40px;
}

#f02 .row1 .col-text .txt {
  width: 412px;
  letter-spacing: 0.03em;
  margin: 0 0 48px 15px;
}

#f02 .row1 .col-text .img {
  margin-left: 6px;
}

#f02 .row2 .wrap {
  display: flex;
  justify-content: space-between;
  padding: 0 45px 0 51px;
  box-sizing: border-box;
}

#f02 .row2 .col .ttl {
  font-size: 30px;
  font-weight: 500;
  margin-bottom: 36px;
}

#f02 .row2 .col .note {
  margin: 27px 0 0 10px;
  letter-spacing: 0.02em;
}

#f02 .row2 .col .note img {
  margin: -2px 8px 0 7px;
}

@media screen and (min-width: 768px) and (max-width: 1240px) {
  #f02 .row1 .col-text {
    margin-right: 30px;
  }
  #f02 .row1 .f02-slider {
    width: calc(50% + 60px);
  }
}

#bnr {
  background-image: url("../img/shared/bg3.jpg");
  color: #fff;
  text-align: center;
  position: relative;
  z-index: 0;
  padding: 139px 0 100px;
}

#bnr:before {
  content: '';
  background-image: url("../img/course/bnr_deco.png");
  background-repeat: no-repeat;
  background-size: 100%;
  width: 856px;
  height: 152px;
  position: absolute;
  left: calc(50% - 425px);
  top: 175px;
  z-index: -1;
}

#bnr .inner {
  max-width: 1382px;
  width: 96%;
  margin: 0 auto;
}

#bnr h2 {
  margin-bottom: 53px;
}

#bnr .txt {
  width: 615px;
  margin: 0 auto 94px;
  letter-spacing: 0.01em;
}

#bnr ul {
  display: flex;
  justify-content: space-between;
}

#bnr ul li {
  width: calc(50% - 7px);
}

#bnr ul li a {
  display: block;
  position: relative;
  overflow: hidden;
}

#bnr ul li a span {
  display: block;
}

#bnr ul li a .ttl {
  position: absolute;
  left: 0;
  right: 0;
  top: 161px;
  z-index: 1;
}

#bnr ul li a .arrow {
  position: absolute;
  bottom: 34px;
  right: 49px;
  z-index: 1;
}

#bnr ul li a .img {
  height: 457px;
}

#bnr ul li a .img img {
  transition: 0.3s all ease;
}

#bnr ul li a:hover img {
  opacity: 1 !important;
}

#bnr ul li a:hover .img img {
  filter: blur(4px);
}
