@media screen and (min-width: 768px) {
  .heightLine-sp {
    height: auto !important;
  }
}

/*=============================================
 * <image object-fit responsive>
 *=============================================*/
.img-ob {
  position: relative;
}

.img-ob img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  -o-object-fit: cover;
  object-fit: cover;
}

@media screen and (min-width: 768px) {
  .img-ob-pc {
    position: relative;
  }

  .img-ob-pc img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    -o-object-fit: cover;
    object-fit: cover;
  }
}

@media screen and (max-width: 767px) {
  .img-ob-sp {
    position: relative;
  }

  .img-ob-sp img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    -o-object-fit: cover;
    object-fit: cover;
  }
}

#rss {
  background: url("../img/index/rss_deco.png") no-repeat top right/150% auto;
  padding: 10vw 0 15vw;
}

#rss .right {
  position: relative;
}

@media screen and (max-width: 767px) {
  #rss .right h2 {
    margin: 0 30vw 7vw;
  }
}

#rss .right #feed2 {
  background: url("../img/shared/tel-border.jpg") repeat-x top left/auto 1px, url("../img/shared/tel-border.jpg") repeat-x bottom left/auto 1px;
  padding: 3vw 20px;
}

#rss .right #feed2 dl {
  display: flex;
  gap: 10px;
  line-height: 1.75;
}

#rss .right #feed2 dl dt {
  min-width: -moz-max-content;
  min-width: max-content;
  letter-spacing: 0.05em;
}

#rss .right #feed2 dl dd a:hover {
  text-decoration: underline;
}

#rss .right .btn-more {
  width: 130px;
  max-width: 100%;
  margin: 7vw auto 0;
}

#rss .right .btn-more a {
  display: block;
  text-decoration: none;
  position: relative;
  font-size: 17px;
  line-height: 20px;
  padding: 4px 0;
  text-align: center;
  color: #fff;
  background: url("../img/shared/bg-red.jpg") repeat center top;
}

#rss .right .btn-more a .arrow {
  width: 6px;
  height: 8px;
  background: url("../img/index/rss_arrow.png") no-repeat center top/cover;
  position: absolute;
  top: 50%;
  right: 15px;
  transform: translateY(-50%);
}

@media screen and (max-width: 767px) {
  #rss .icon {
    width: 36px;
    margin: 10vw auto 0;
  }
}

@media screen and (min-width: 768px) {
  #rss {
    background: url("../img/index/rss_deco.png") no-repeat top right;
    padding: 72px 0 83px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1500px) {
  #rss {
    background-position: top center;
  }
}

@media screen and (min-width: 768px) {
  #rss .wrap {
    display: flex;
    justify-content: center;
    gap: 24px;
    align-items: center;
  }

  #rss .right {
    display: flex;
    align-items: flex-start;
    gap: 31px;
  }

  #rss .right #feed2 {
    background: url("../img/index/rss_line.jpg") repeat-y top left, url("../img/index/rss_line.jpg") repeat-y top right;
    width: 377px;
    box-sizing: border-box;
    padding: 11px 0 10px 27px;
    min-height: 73px;
  }

  #rss .right #feed2 dl {
    gap: 17px;
  }

  #rss .right .btn-more {
    position: absolute;
    left: 0;
    bottom: 5px;
    width: 130px;
    margin: 0;
  }

  #rss .right .btn-more a::before,
  #rss .right .btn-more a:after {
    pointer-events: none;
    position: absolute;
    content: "";
    left: 0;
    width: 100%;
    box-sizing: border-box;
    background-repeat: no-repeat;
    height: 5px;
    opacity: 0;
    transition-duration: 0.3s;
    transition-property: opacity;
  }

  #rss .right .btn-more a::before {
    bottom: 100%;
    background: radial-gradient(ellipse at 50% 150%, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 80%);
  }

  #rss .right .btn-more a:after {
    top: 100%;
    background: radial-gradient(ellipse at 50% -50%, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 80%);
  }
}

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

  #rss .right .btn-more a:hover::before,
  #rss .right .btn-more a:hover::after {
    opacity: 1;
  }
}

#menu {
  position: relative;
}

#menu .menu-slide .item {
  padding: 15vw 0 35vw;
}

#menu .menu-slide .item .box {
  margin: 0 4vw;
  border: 1px solid transparent;
  -o-border-image: url("../img/index/menu_border.png") 1 round;
  border-image: url("../img/index/menu_border.png") 1 round;
  padding: 12vw 3vw 15vw;
  box-sizing: border-box;
}

#menu .menu-slide .item .box .img {
  margin: 0 10vw;
}

#menu .menu-slide .item .box .right h2 {
  margin: 0 5vw 5vw;
}

#menu .menu-slide .item .box .right .group-content {
  margin: 7vw 0 0;
}

#menu .menu-slide .item .box .right .group-content .txt {
  letter-spacing: 0.02em;
}

#menu .menu-slide .item .box .right .group-content .button {
  margin: 5vw 0 0;
}

#menu .menu-slide .item.item1 {
  color: #fff;
  background: url("../img/index/menu_deco.png") no-repeat top left/150% auto, url("../img/index/menu_deco2.png") no-repeat bottom right/150% auto, url("../img/index/menu_bg1.png");
}

#menu .menu-slide .item.item2 {
  color: #000;
  background: url("../img/index/menu_deco3.png") no-repeat top left/150% auto, url("../img/index/menu_deco4.png") no-repeat bottom right/150% auto, url("../img/index/menu_bg2.jpg");
}

#menu .menu-slide .slick-arrow {
  position: absolute;
  z-index: 2;
  top: 100vw;
  cursor: pointer;
  background: transparent;
  border: 0;
  font-size: 0;
  width: 10vw;
  height: 10vw;
  outline: 0;
}

@media (hover: hover) {
  #menu .menu-slide .slick-arrow:hover {
    opacity: 0.8;
  }
}

#menu .menu-slide .slick-arrow.slick-prev {
  left: 2vw;
  background: url("../img/index/menu_left.png") no-repeat center/100% auto;
}

#menu .menu-slide .slick-arrow.slick-next {
  right: 2vw;
  background: url("../img/index/menu_right.png") no-repeat center/100% auto;
}

#menu .menu-thumb {
  position: absolute;
  z-index: 3;
  display: flex;
  gap: 3vw;
  bottom: 15vw;
  left: 0;
  right: 0;
  justify-content: center;
}

#menu .menu-thumb .thumb {
  width: 12vw;
  position: relative;
  cursor: pointer;
}

#menu .menu-thumb .thumb .off {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}

#menu .menu-thumb .thumb .on {
  opacity: 0;
  transition: all 0.5s;
}

#menu .menu-thumb .thumb.active .on {
  opacity: 1;
}

@media screen and (min-width: 768px) {
  #menu .menu-slide .item {
    padding: 88px 0 121px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1270px) {
  #menu .menu-slide .item {
    padding-right: 60px;
  }
}

@media screen and (min-width: 768px) {
  #menu .menu-slide .item .box {
    width: 1057px;
    max-width: calc(100% - 60px);
    margin: 0 auto;
    padding: 27px 30px 31px;
  }

  #menu .menu-slide .item .box .inner {
    width: 940px;
    max-width: 100%;
    position: relative;
    min-height: 461px;
    margin: 0 auto;
  }

  #menu .menu-slide .item .box .img {
    position: absolute;
    top: 0;
    left: 0;
    max-width: calc(100% - 450px);
    width: 465px;
    height: 461px;
    margin: 0;
  }

  #menu .menu-slide .item .box .right {
    width: 912px;
    max-width: 100%;
    margin: 0 auto;
  }

  #menu .menu-slide .item .box .right h2 {
    text-align: right;
    margin: 0 0 33px;
  }

  #menu .menu-slide .item .box .right h2 img {
    display: inline-block;
  }

  #menu .menu-slide .item .box .right .group-content {
    margin: 0 0 0 auto;
    width: 396px;
  }

  #menu .menu-slide .item .box .right .group-content .txt {
    letter-spacing: 0.02em;
  }

  #menu .menu-slide .item .box .right .group-content .button {
    margin: 32px auto 0;
    width: 392px;
  }

  #menu .menu-slide .item .box .right .group-content .button a {
    width: 100%;
  }

  #menu .menu-slide .item.item1 {
    color: #fff;
    background: url("../img/index/menu_deco.png") no-repeat top left, url("../img/index/menu_deco2.png") no-repeat bottom right, url("../img/index/menu_bg1.png");
  }
}

@media screen and (min-width: 768px) and (max-width: 1500px) {
  #menu .menu-slide .item.item1 {
    background-position: top center, bottom center, top left;
  }
}

@media screen and (min-width: 768px) {
  #menu .menu-slide .item.item2 {
    color: #000;
    background: url("../img/index/menu_deco3.png") no-repeat top left, url("../img/index/menu_deco4.png") no-repeat bottom right, url("../img/index/menu_bg2.jpg");
  }
}

@media screen and (min-width: 768px) and (max-width: 1500px) {
  #menu .menu-slide .item.item2 {
    background-position: top center, bottom center, top left;
  }
}

@media screen and (min-width: 768px) {
  #menu .menu-slide .item.item2 .box .right .group-content h2 {
    margin: 0 0 5px;
  }

  #menu .menu-slide .item.item2 .box .right .group-content .button {
    margin-top: 24px;
  }

  #menu .menu-slide .slick-arrow {
    top: 330px;
    width: 56px;
    height: 55px;
  }
}

@media screen and (min-width: 768px) and (hover: hover) {
  #menu .menu-slide .slick-arrow:hover {
    opacity: 0.8;
  }
}

@media screen and (min-width: 768px) {
  #menu .menu-slide .slick-arrow.slick-prev {
    left: auto;
    right: calc(50% + 507px);
  }

  #menu .menu-slide .slick-arrow.slick-next {
    right: auto;
    left: calc(50% + 507px);
  }
}

@media screen and (min-width: 768px) and (max-width: 1270px) {
  #menu .menu-slide .slick-arrow.slick-prev {
    right: calc(50% + 537px);
  }

  #menu .menu-slide .slick-arrow.slick-next {
    left: calc(50% + 477px);
  }
}

@media screen and (min-width: 768px) and (max-width: 1200px) {
  #menu .menu-slide .slick-arrow.slick-prev {
    right: auto;
    left: 15px;
  }

  #menu .menu-slide .slick-arrow.slick-next {
    left: auto;
    right: 55px;
  }
}

@media screen and (min-width: 768px) {
  #menu .menu-thumb {
    position: absolute;
    bottom: 53px;
    gap: 13px;
    right: calc(50% + 170px);
    left: auto;
  }

  #menu .menu-thumb .thumb {
    width: auto;
  }
}

@media screen and (min-width: 768px) and (hover: hover) {
  #menu .menu-thumb .thumb:hover {
    opacity: 0.8;
  }
}

#map {
  position: relative;
  background: url("../img/index/map_deco3.png") no-repeat bottom left/150% auto, url("../img/index/map_deco2.png") no-repeat 80% top/150% auto, url("../img/index/map_deco.png") no-repeat top center/150% auto, url("../img/index/menu_bg1.png");
  padding: 27vw 0 67vw;
  color: #fff;
}

#map .tit {
  position: absolute;
  left: 48vw;
  bottom: 14vw;
  width: 13vw;
}

#map h2 {
  text-align: center;
  margin: 0 10vw 8vw;
}

#map .group-content .txt {
  margin: 6vw 0 5vw;
}

#map .group-content .button {
  margin: 0 auto;
}

#map .group-content .button a .arrow {
  background-image: url("../img/index/map_icon.png");
  width: 3vw;
  height: 3.5vw;
}

@media screen and (min-width: 768px) {
  #map {
    background: url("../img/index/map_deco3.png") no-repeat bottom left, url("../img/index/map_deco2.png") no-repeat top right, url("../img/index/map_deco.png") no-repeat top left, url("../img/index/menu_bg1.png");
    padding: 111px 0 117px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1500px) {
  #map {
    background-position: bottom center, top center, top center, top left;
  }
}

@media screen and (min-width: 768px) {
  #map .tit {
    position: absolute;
    left: 365px;
    top: 394px;
    width: auto;
    bottom: auto;
  }
}

@media screen and (min-width: 768px) and (max-width: 1500px) {
  #map .tit {
    left: auto;
    right: calc(50% + 312px);
  }
}

@media screen and (min-width: 768px) {
  #map h2 {
    margin: 0 0 43px;
  }

  #map .group-content {
    margin: 0 0 0 273px;
  }

  #map .group-content .txt {
    margin: 28px 0 19px 35px;
  }

  #map .group-content .button {
    margin: 0 0 0 36px;
  }

  #map .group-content .button a {
    width: 392px;
  }

  #map .group-content .button a .arrow {
    background-image: url("../img/index/map_icon.png");
    width: 15px;
    height: 17px;
    right: 37px;
  }
}

.remodal-wrapper {
  padding: 0;
}

.remodal2 {
  background: url("../img/index/popup_bg.jpg");
  color: #fff;
  padding: 30px 0 100px;
}

.remodal2 .remodal-close {
  position: sticky;
  top: 20px;
  margin: 0 20px 0 auto;
  width: 40px;
  height: auto;
  right: auto;
}

.remodal2 .btn-link {
  margin: 60px auto 0;
  width: 85vw;
  max-width: 100%;
}

.remodal2 .btn-link span {
  display: block;
  cursor: pointer;
  position: relative;
  text-align: center;
  color: #fff;
  font-size: 5vw;
  padding: 2vw 0;
  line-height: 2;
  background: url("../img/index/close2.png") no-repeat right 5vw center/4.5vw auto, url("../img/shared/bg-red.jpg") repeat center top;
}

.popup-map h2 {
  text-align: center;
  margin: 6vw 10vw 8vw;
}

.popup-map .item {
  margin: 0 2.5vw;
}

.popup-map .item h4 {
  margin: 6vw 10vw;
  text-align: center;
}

.popup-map .item .txt {
  text-align: justify;
}

.popup-map .item+.item {
  margin-top: 35px;
  background: url("../img/shared/tel-border.jpg") repeat-x top left;
  padding: 50px 0 0;
}

@media screen and (min-width: 768px) {
  .remodal2 {
    width: 1112px;
    max-width: calc(100% - 60px);
    margin: 0 auto;
    padding: 35px 0 136px;
  }

  .remodal2 .remodal-close {
    margin: 0 32px 0 auto;
    width: 53px;
  }

  .remodal2 .btn-link {
    margin: 80px auto 0;
    width: 392px;
  }

  .remodal2 .btn-link span {
    font-size: 22px;
    padding: 9px 0;
    background: url("../img/index/close2.png") no-repeat right 36px center, url("../img/shared/bg-red.jpg") repeat center top;
  }

  .remodal2 .btn-link span::before,
  .remodal2 .btn-link span:after {
    pointer-events: none;
    position: absolute;
    content: "";
    left: 0;
    width: 100%;
    box-sizing: border-box;
    background-repeat: no-repeat;
    height: 5px;
    opacity: 0;
    transition-duration: 0.3s;
    transition-property: opacity;
  }

  .remodal2 .btn-link span:before {
    bottom: 100%;
    background: radial-gradient(ellipse at 50% 150%, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 80%);
  }

  .remodal2 .btn-link span:after {
    top: 100%;
    background: radial-gradient(ellipse at 50% -50%, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 80%);
  }
}

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

  .remodal2 .btn-link span:hover::before,
  .remodal2 .btn-link span:hover:after {
    opacity: 1;
  }
}

@media screen and (min-width: 768px) {
  .popup-map h2 {
    margin: 0 0 83px;
  }

  .popup-map .item {
    width: 811px;
    margin: 0 auto;
  }

  .popup-map .item h4 {
    margin: 38px 0 30px;
    text-align: center;
  }

  .popup-map .item+.item {
    margin-top: 42px;
    padding: 65px 0 0;
  }
}