#header #key {
  display: flex;
  position: relative;
}
#header #key .img {
  width: 33.3333333333%;
}
#header #key .key-ttl2 {
  position: absolute;
  z-index: 2;
  bottom: 0;
  right: 0;
  width: 103.2rem;
}
@media screen and (max-width: 799px) {
  #header #key {
    display: block;
  }
  #header #key .img {
    width: 100%;
    height: 33.3333333333svh;
  }
  #header #key .key-ttl2 {
    width: 6.384rem;
    bottom: 0;
  }
}

#sec1 {
  padding: 18rem 0 19.889rem;
  position: relative;
  overflow: hidden;
  background: url("../img/index/s1_bg.webp") no-repeat center/cover;
}
#sec1 .deco {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  transform: scale(1.2);
}
#sec1 .s1-slide {
  display: flex;
  gap: 4rem;
}
#sec1 .s1-slide .item {
  width: 29.333rem;
}
#sec1 .s1-slide .item a {
  display: block;
  text-decoration: none;
  position: relative;
}
#sec1 .s1-slide .item .ttl {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  width: 5.9rem;
}
#sec1 .s1-slide .item .ttl2 {
  width: 5.1rem;
}
#sec1 .s1-slide .item .btn-text {
  position: absolute;
  z-index: 2;
  left: 2rem;
  right: 2rem;
  bottom: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#sec1 .s1-slide .item .btn-text .text {
  font-size: 1.8rem;
}
#sec1 .s1-slide .item .btn-text .arrow__circle {
  width: 3.5rem;
  height: 3.5rem;
}
#sec1 .s1-slide .item .btn-text .arrow__circle::after {
  width: 0.7rem;
  height: 1.1rem;
}
#sec1 .s1-slide .item2 {
  width: 29.333rem;
  position: relative;
}
#sec1 .s1-slide .item2 .inner {
  position: absolute;
  z-index: 2;
  top: 3rem;
  left: 3rem;
  right: 3rem;
}
#sec1 .s1-slide .item2 .inner .ttl {
  text-align: center;
  line-height: 1.2;
  font-size: 3rem;
  margin: 0 0 2.5rem;
}
#sec1 .s1-slide .item2 .inner .bnr a {
  display: block;
  text-decoration: none;
  padding: 1.7rem 0 1.8rem;
  border: 1px solid;
  text-align: center;
}
#sec1 .s1-slide .item2 .inner .bnr a .btn-text {
  line-height: 1.5;
  font-size: 1.3rem;
  margin: 0 0 1rem;
}
#sec1 .s1-slide .item2 .inner .bnr a .btn-text span {
  display: block;
  font-size: 2rem;
  margin: 0 0 0.5rem;
}
#sec1 .s1-slide .item2 .inner .bnr a .btn-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}
#sec1 .s1-slide .item2 .inner .bnr a .btn-inner .text {
  font-size: 1.6rem;
}
#sec1 .s1-slide .item2 .inner .bnr + .bnr {
  margin-top: 1rem;
}
@media screen and (max-width: 799px) {
  #sec1 {
    padding: 10rem 0 12rem;
  }
  #sec1 .wrap {
    padding-right: 0;
  }
  #sec1 .s1-slide .item {
    margin-right: 3rem;
    width: 30rem;
  }
  #sec1 .s1-slide .item2 {
    margin-right: 3rem;
    width: 30rem;
  }
}

#sec2 {
  position: relative;
  padding: 20rem 0 20.1rem;
}
#sec2 .deco {
  position: absolute;
  left: 0;
  right: 0;
  top: 19.4rem;
}
#sec2 .wrap {
  z-index: 2;
}
#sec2 h2 {
  text-align: center;
  margin: 0 0 5rem;
}
#sec2 .flex-btn {
  display: flex;
  justify-content: space-between;
  margin: 0 0 2rem;
}
#sec2 .flex-btn .btn-effect {
  width: 47rem;
}
#sec2 .flex-btn .btn-effect a {
  display: block;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: 2.3rem 0;
  overflow: hidden;
  text-align: center;
  font-size: 1.6rem;
}
#sec2 .flex-btn .btn-effect a .text span {
  display: block;
}
#sec2 .flex-btn .btn-effect a .text span:after {
  content: "";
  display: inline-block;
  vertical-align: baseline;
  background: url("../img/shared/icon_window.svg") no-repeat center/100% auto;
  width: 1rem;
  height: 1rem;
  margin-left: 1rem;
}
#sec2 .box {
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: 4rem;
}
#sec2 .box .inner {
  display: flex;
  gap: 3rem 2rem;
  flex-wrap: wrap;
}
#sec2 .box .inner .item {
  width: 27.333rem;
  max-width: calc((100% - 4rem) / 3);
}
#sec2 .box .inner .item a {
  display: flex;
  align-items: center;
  text-decoration: none;
  gap: 2rem;
}
#sec2 .box .inner .item a .img {
  width: 6rem;
}
#sec2 .box .inner .item a .text {
  font-weight: 700;
  line-height: 1.5;
  font-size: 1.6rem;
}
#sec2 .box .btn-arrow {
  position: absolute;
  background: #121110;
  left: 50%;
  transform: translateX(-50%);
  bottom: -1.75rem;
  border-radius: 50%;
}
#sec2 .box .btn-arrow .arrow__circle {
  width: 3.5rem;
  height: 3.5rem;
}
#sec2 .box .btn-arrow .arrow__circle:after {
  background-image: url("../img/shared/arrow3.svg");
  width: 1.1rem;
  height: 0.7rem;
}
@media screen and (min-width: 800px) {
  #sec2 .box .btn-arrow:hover .arrow__circle:after {
    animation-name: arrow3;
  }
}
@media screen and (max-width: 799px) {
  #sec2 {
    padding: 12rem 0;
  }
  #sec2 .deco {
    top: 10.6rem;
  }
  #sec2 .flex-btn {
    display: block;
  }
  #sec2 .flex-btn .btn-effect {
    width: 100%;
  }
  #sec2 .flex-btn .btn-effect a {
    padding: 1rem 0 1.2rem;
  }
  #sec2 .flex-btn .btn-effect + .btn-effect {
    margin-top: 2rem;
  }
  #sec2 .box {
    padding: 3rem 2rem;
  }
  #sec2 .box .inner {
    gap: 3rem 0;
    justify-content: space-between;
  }
  #sec2 .box .inner .item {
    width: 14rem;
    max-width: 100%;
  }
  #sec2 .box .inner .item a {
    display: block;
  }
  #sec2 .box .inner .item a .img {
    margin: 0 auto;
  }
  #sec2 .box .inner .item a .text {
    margin: 1rem 0 0;
    text-align: center;
  }
}

#sec3 {
  position: relative;
  z-index: 2;
}
#sec3 .img {
  position: absolute;
  top: 0;
  right: 0;
  width: 104rem;
}
#sec3 .inner {
  position: relative;
  z-index: 2;
  padding: 8rem 0 15rem;
}
#sec3 h2 {
  display: flex;
  flex-direction: column;
  gap: 2.6rem;
  width: 10.2rem;
  margin: 0 0 0 auto;
  height: 52rem;
}
#sec3 h3 {
  font-size: 2.8rem;
  margin: 0 0 2rem;
}
#sec3 .txt {
  line-height: 2;
}
@media screen and (max-width: 799px) {
  #sec3 .img {
    width: 36rem;
  }
  #sec3 .inner {
    padding: 4rem 0 10rem;
  }
  #sec3 h2 {
    gap: 1.7rem;
    height: 30rem;
    margin: 0 0 -3.9rem auto;
    letter-spacing: 0.12em;
  }
}

#sec4 {
  position: relative;
  z-index: 2;
}
#sec4 .deco {
  position: absolute;
  right: 0;
  width: 33rem;
  top: -27.5rem;
}
@media screen and (max-width: 799px) {
  #sec4 .deco {
    width: 18rem;
    top: -15.4rem;
  }
}

#sec5 {
  position: relative;
  margin: 15rem 0 0;
}
#sec5 .deco {
  position: absolute;
  left: 0;
  width: 43rem;
  top: -26.7rem;
}
#sec5 .deco2 {
  position: absolute;
  right: 0;
  width: 33rem;
  bottom: -26.733rem;
}
@media screen and (max-width: 799px) {
  #sec5 .deco {
    width: 21rem;
    top: -15.6rem;
  }
  #sec5 .deco2 {
    width: 18rem;
    bottom: -20.9rem;
  }
}

.section-common .wrap {
  z-index: 2;
  padding-right: 0;
}
.section-common .bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 96rem;
  max-width: calc(81.25% - 8rem);
}
.section-common h2 {
  height: 39.9rem;
  position: relative;
  z-index: 2;
  letter-spacing: 0.1em;
}
.section-common .group-btn {
  display: flex;
  justify-content: flex-end;
  margin: 0 8rem 5.7rem 0;
  align-items: center;
  gap: 4rem;
  position: relative;
  z-index: 2;
}
.section-common .group-btn .btn-effect {
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
}
.section-common .group-btn .prev-btn .arrow__circle:after {
  background-image: url("../img/shared/arrow2.svg");
}
@media screen and (min-width: 800px) {
  .section-common .group-btn .prev-btn:hover .arrow__circle:after {
    animation-name: arrow2;
  }
}
.section-common .common-slide {
  position: relative;
  z-index: 2;
}
.section-common .common-slide .item {
  width: 46rem;
  margin-right: 4rem;
}
.section-common .common-slide .item .tit {
  font-size: 1.8rem;
  line-height: 1.5;
  margin: 2rem 0 0.5rem;
}
.section-common .common-slide .item .txt {
  font-size: 1.4rem;
  line-height: 1.5;
}
@media screen and (max-width: 799px) {
  .section-common .bg {
    width: 30.5rem;
    max-width: 100%;
  }
  .section-common h2 {
    height: 33rem;
  }
  .section-common .common-slide .item {
    width: 30rem;
    margin-right: 3rem;
  }
}

#sec6 {
  position: relative;
  z-index: 2;
  margin: 15rem 0 0;
}
#sec6 h2 {
  margin: 0 0 5rem;
}
#sec6 .flex {
  display: flex;
}
#sec6 .flex .s6-slide, #sec6 .flex .s6-slide2 {
  width: 48rem;
}
#sec6 .flex .s6-slide .slick-arrow, #sec6 .flex .s6-slide2 .slick-arrow {
  width: 0.6rem;
  height: 1rem;
  bottom: 2rem;
  top: auto;
}
#sec6 .flex .s6-slide .slick-arrow.slick-prev, #sec6 .flex .s6-slide2 .slick-arrow.slick-prev {
  background-image: url("../img/shared/arrow2.svg");
  left: 13rem;
}
#sec6 .flex .s6-slide .slick-arrow.slick-next, #sec6 .flex .s6-slide2 .slick-arrow.slick-next {
  background-image: url("../img/shared/arrow.svg");
  right: 13rem;
}
#sec6 .flex .s6-slide .slick-arrow.slick-prev {
  left: 14.4rem;
}
#sec6 .flex .s6-slide .slick-arrow.slick-next {
  right: 14.3rem;
}
#sec6 h3 {
  margin: 4rem 0 0.5rem;
  font-size: 2.8rem;
  line-height: 1.2;
}
#sec6 .txt2 {
  font-size: 1.4rem;
  margin: 0 0 2rem;
}
#sec6 .txt {
  line-height: 2;
}
@media screen and (max-width: 799px) {
  #sec6 {
    margin: 10rem 0 0;
  }
  #sec6 h2 {
    font-size: 3.2rem;
  }
  #sec6 .flex {
    display: block;
  }
  #sec6 .flex .s6-slide, #sec6 .flex .s6-slide2 {
    width: 100%;
  }
  #sec6 .flex .s6-slide .slick-arrow.slick-prev, #sec6 .flex .s6-slide2 .slick-arrow.slick-prev {
    left: 5.5rem;
  }
  #sec6 .flex .s6-slide .slick-arrow.slick-next, #sec6 .flex .s6-slide2 .slick-arrow.slick-next {
    right: 5.5rem;
  }
  #sec6 .flex .s6-slide .slick-arrow.slick-prev {
    left: 6.762rem;
  }
  #sec6 .flex .s6-slide .slick-arrow.slick-next {
    right: 6.754rem;
  }
}

#sec7 {
  margin: 8.6rem 0 0;
  position: relative;
  padding: 6.433rem 0 0;
}
#sec7 .deco {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
#sec7 .wrap {
  z-index: 2;
}
#sec7 h2 {
  text-align: center;
  margin: 0 0 4.5rem;
}
#sec7 .flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
#sec7 .flex dl {
  width: 46rem;
  max-width: 48%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
  line-height: 1.5;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}
#sec7 .flex dl dt {
  font-size: 1.6rem;
  font-weight: 700;
}
#sec7 .flex dl dd {
  font-size: 1.4rem;
}
@media screen and (max-width: 799px) {
  #sec7 {
    margin: 10rem 0 0;
    padding: 0;
  }
  #sec7 .deco {
    top: -6.6rem;
  }
  #sec7 h2 {
    margin: 0 0 3.5rem;
  }
  #sec7 .flex {
    display: block;
  }
  #sec7 .flex dl {
    width: 100%;
    max-width: 100%;
  }
}

.section-common2 {
  margin: 15rem 0 0;
}
.section-common2 .wrap {
  z-index: 2;
}
.section-common2 h2 {
  margin: 0 0 5rem;
}
.section-common2 .flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.section-common2 .slide-common {
  width: 42rem;
}
.section-common2 .slide-common .slick-arrow {
  width: 0.6rem;
  height: 1rem;
  bottom: 2rem;
  top: auto;
}
.section-common2 .slide-common .slick-arrow.slick-prev {
  background-image: url("../img/shared/arrow2.svg");
  left: 12.7rem;
}
.section-common2 .slide-common .slick-arrow.slick-next {
  background-image: url("../img/shared/arrow.svg");
  right: 12.7rem;
}
.section-common2 .info {
  width: 48rem;
  max-width: calc(100% - 45rem);
}
.section-common2 .info dl {
  display: flex;
  align-items: center;
  line-height: 1.5;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  padding: 0 0 1.5rem;
}
.section-common2 .info dl + dl {
  margin-top: 1.5rem;
}
.section-common2 .info dl dt {
  font-size: 1.6rem;
  font-weight: 700;
}
.section-common2 .info dl dd {
  text-align: right;
  font-size: 1.4rem;
}
.section-common2:nth-child(odd) h2 {
  text-align: right;
}
@media screen and (max-width: 799px) {
  .section-common2 {
    margin-top: 10rem;
  }
  .section-common2 .slide-common, .section-common2 .info {
    width: 100%;
  }
  .section-common2 .flex {
    display: block;
  }
  .section-common2 .slide-common .slick-arrow.slick-prev {
    left: 8.2rem;
  }
  .section-common2 .slide-common .slick-arrow.slick-next {
    right: 8.2rem;
  }
  .section-common2 .info {
    margin-top: 4rem;
    max-width: 100%;
  }
}

#sec8 {
  position: relative;
  z-index: 2;
}

#sec9 {
  position: relative;
  z-index: 1;
}
#sec9 .deco {
  position: absolute;
  left: 0;
  width: 43rem;
  top: -20.433rem;
}
#sec9 .wrap {
  z-index: 2;
}
#sec9 .slide-common .slick-arrow.slick-prev {
  left: 10rem;
}
#sec9 .slide-common .slick-arrow.slick-next {
  right: 10rem;
}
@media screen and (max-width: 799px) {
  #sec9 .deco {
    width: 21rem;
    top: -8.2rem;
  }
  #sec9 .slide-common .slick-arrow.slick-prev {
    left: 5.5rem;
  }
  #sec9 .slide-common .slick-arrow.slick-next {
    right: 5.5rem;
  }
}

#sec10 {
  position: relative;
}
#sec10 .deco {
  position: absolute;
  right: 0;
  width: 33rem;
  top: -5.033rem;
}
#sec10 .wrap {
  z-index: 2;
}
#sec10 .slide-common .slick-arrow.slick-prev {
  left: 11.45rem;
}
#sec10 .slide-common .slick-arrow.slick-next {
  right: 11.45rem;
}
@media screen and (max-width: 799px) {
  #sec10 .deco {
    width: 18rem;
    top: -6.3rem;
  }
  #sec10 .slide-common .slick-arrow.slick-prev {
    left: 6.8rem;
  }
  #sec10 .slide-common .slick-arrow.slick-next {
    right: 6.8rem;
  }
  #sec10 .info dl dt {
    width: 16.5rem;
  }
}

#sec11 {
  position: relative;
  padding: 0 0 20rem;
}
#sec11 .deco {
  position: absolute;
  right: 0;
  left: 0;
  top: -1.633rem;
}
@media screen and (max-width: 799px) {
  #sec11 {
    padding: 0 0 15rem;
  }
  #sec11 .deco {
    top: -8.9rem;
  }
  #sec11 .info dl dt {
    width: 16.5rem;
  }
}

#footer {
  background-image: url("../img/specialty-menu/f_bg.webp");
}
@media screen and (max-width: 799px) {
  #footer {
    background-image: url("../img/specialty-menu/f_bg_sp.webp");
  }
}