@charset "UTF-8";
/*------------------------
 #common
------------------------*/
#reason,
#venue,
#flow {
  padding-top: 50px;
  margin-top: -50px;
}
@media screen and (max-width: 640px) {
  #reason,
  #venue,
  #flow {
    padding-top: 0;
    margin-top: 0;
  }
}

#service {
  padding-top: 70px;
  margin-top: -70px;
}
@media screen and (max-width: 640px) {
  #service {
    padding-top: 0;
    margin-top: 0;
  }
}

#plan {
  padding-top: 10px;
  margin-top: -10px;
}
@media screen and (max-width: 640px) {
  #plan {
    padding-top: 0;
    margin-top: 0;
  }
}

.contents h2 {
  font-size: 2.6rem;
}
.contents.org h2 {
  position: relative;
}
.contents.org h2.flw_right:after {
  content: "";
  position: absolute;
  right: calc(50% - 200px);
  top: -36px;
  display: inline-block;
  width: 109px;
  height: 104px;
}
@media screen and (max-width: 640px) {
  .contents.org h2.flw_right:after {
    right: calc(50% - 148px);
    top: -22px;
    width: 62px;
    height: 62px;
  }
}
.contents.org h2.flw_left:after {
  content: "";
  position: absolute;
  left: calc(50% - 210px);
  top: -30px;
  display: inline-block;
  width: 109px;
  height: 104px;
}
@media screen and (max-width: 640px) {
  .contents.org h2.flw_left:after {
    left: calc(50% - 140px);
    top: -22px;
    width: 62px;
    height: 62px;
  }
}
.contents.org .cap {
  text-align: center;
}

/*------------------------------------------
header
------------------------------------------*/
header {
  height: 640px;
  position: relative;
  background: url(../images/main.jpg) top center no-repeat;
}
@media screen and (max-width: 640px) {
  header {
    height: 0;
    padding-top: 46.875%;
    background-size: cover;
    background: url(../images/main_sp.jpg) top center no-repeat;
  }
}

.hr {
  border-bottom: solid #CCC 1px;
}

.cap_left {
  text-align: left;
  margin-bottom: 30px;
}

.contents .box_brown {
  border: solid #DDD8CE 5px;
  background-color: white;
  padding: 35px;
}

h3.memorial_title {
  font-family: "Sawarabi Mincho", serif;
  font-weight: normal;
  font-size: 2.8rem;
  color: #11173F;
  margin: 0 0 20px 0;
  text-align: center;
}

s h3.memorial_title span {
  font-family: "Noto Sans JP", serif;
  font-size: 1.5rem;
  color: #806644;
  display: inline-block;
  padding-left: 20px;
}

/*4カラムメニューボタン*/
#menu .contents ul.menu_col_4 {
  width: 100%;
  margin: 0 auto !important;
}
@media screen and (max-width: 640px) {
  #menu .contents ul.menu_col_4 {
    width: 100%;
    margin: 0 auto !important;
  }
}

#menu .contents ul.menu_col_4 li {
  float: left;
  width: 25%;
  padding: 0 4px;
  font-weight: 500;
}
@media screen and (max-width: 640px) {
  #menu .contents ul.menu_col_4 li {
    float: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin-bottom: 5px;
  }
}

#menu .contents ul.menu_col_4 li .btn {
  background: url(../../../commons/images/bg_btn_down.png) 95% 50% no-repeat #11173F !important;
  width: 100% !important;
  padding: 15px 30px !important;
  text-align: left;
  margin: 0 0px !important;
  font-size: 1.6rem;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}

.menubtn {
  background: #11173F;
  color: #ffffff;
  padding: 10px 24px;
  border-radius: 6px;
  font-size: 14px;
  position: relative;
}

.menubtn:after {
  content: "＞";
  display: inline-table;
  transform: scale(2, 1) rotate(90deg);
  font-size: 11px;
  position: absolute;
  right: 24px;
  top: 25%;
}

.active {
  background: #ffffff;
  color: #11173F;
  padding: 10px 24px;
  border-radius: 6px;
  font-size: 100%;
}

.menu_inner {
  display: flex;
  display: -webkit-flex;
  flex-direction: column;
  position: absolute;
  padding: 0 24px;
  width: 100%;
  z-index: 1;
  max-width: 275px;
  background-color: rgba(255, 255, 255, 0.9);
}
@media screen and (max-width: 640px) {
  .menu_inner {
    max-width: 100%;
    display: flex;
    display: -webkit-flex;
    flex-direction: column;
    position: relative;
    padding: 0 24px 0px;
    width: 100%;
    z-index: 1;
    max-width: none;
    background-color: #f1eee2;
    margin-bottom: 16px;
  }
}

.menu_inner a {
  padding: 8px 0;
  border-bottom: solid 1px #CCC;
  color: #633967;
}

.menu_inner a:last-child {
  border-bottom: none;
}

.green {
  color: #3a6911;
}

.serif {
  font-family: "Noto Serif JP", serif;
}

/*------------------------
 #intro
------------------------*/
#intro .contents .cap {
  text-align: center;
}

/*------------------------
 #message
------------------------*/
#message .contents {
  padding: 0 0 70px;
  position: relative;
}
#message .contents:before {
  content: "";
  display: inline-block;
  width: 230px;
  height: 230px;
  position: absolute;
  bottom: 60px;
  left: 0;
  background-image: url(../images/message_ph_l.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
@media screen and (max-width: 640px) {
  #message .contents:before {
    content: none;
    background: none;
  }
}
#message .contents:after {
  content: "";
  display: inline-block;
  width: 230px;
  height: 230px;
  position: absolute;
  bottom: 60px;
  right: 0;
  background-image: url(../images/message_ph_r.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
@media screen and (max-width: 640px) {
  #message .contents:after {
    content: none;
    background: none;
  }
}
#message .contents h2.img_ttl {
  padding: 0;
  margin-bottom: 20px;
}
@media screen and (max-width: 640px) {
  #message .contents h2.img_ttl {
    width: 100%;
    max-width: 370px;
    margin: 0 auto 20px;
  }
}
#message .contents h2.img_ttl img {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
@media screen and (max-width: 640px) {
  #message .contents h2.img_ttl img {
    width: 100%;
    height: auto;
  }
}
#message .contents p.cap {
  margin-bottom: 0;
}
@media screen and (max-width: 640px) {
  #message .contents p.cap {
    margin-bottom: 30px;
  }
}
@media screen and (max-width: 640px) {
  #message .contents img.message_ph_sp {
    width: 100%;
    max-width: 370px;
    margin: 0 auto;
    height: auto;
  }
}

/*------------------------
 #reason
------------------------*/
#reason .contents {
  padding-top: 0 !important;
}
#reason .box {
  background-image: url("../images/reason_box_bg_l.svg"), url("../images/reason_box_bg_r.svg");
  background-repeat: no-repeat, no-repeat;
  background-size: 196px auto, 194px auto;
  background-position: left top, right top;
  background-color: #fff;
  padding: 60px 60px 20px 60px;
}
@media screen and (max-width: 640px) {
  #reason .box {
    background-size: 36% auto, 36% auto;
    padding: 10% 8% 8%;
  }
}
@media screen and (max-width: 640px) {
  #reason .box h2 {
    font-size: 2.6rem;
  }
}
#reason .reason_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media screen and (max-width: 640px) {
  #reason .reason_list {
    display: block;
  }
}
#reason .reason_list li {
  width: 48.5%;
  max-width: 480px;
  margin-bottom: 40px;
}
@media screen and (max-width: 640px) {
  #reason .reason_list li {
    width: 100%;
  }
}
#reason .reason_list .ph {
  margin-bottom: 20px;
  position: relative;
}
#reason .reason_list .ph > img {
  box-shadow: 1px 1px 6px 1px rgba(197, 197, 197, 0.7);
}
#reason .reason_list .ph .point {
  position: absolute;
  top: -13px;
  left: -20px;
  width: 108px;
  height: auto;
}
@media screen and (max-width: 640px) {
  #reason .reason_list .ph .point {
    width: 80px;
    left: -10px;
  }
}
#reason .reason_list h3 {
  color: #806644;
  text-align: center;
  margin-bottom: 20px;
  font-size: 2.2rem;
  letter-spacing: 2px;
}
@media screen and (max-width: 640px) {
  #reason .reason_list h3 {
    margin-bottom: 10px;
  }
}
#reason .reason_list h3 span {
  font-size: 1.8rem;
}
@media screen and (max-width: 640px) {
  #reason .reason_list p {
    font-size: 1.4rem;
    line-height: 160%;
  }
}

/*------------------------
 #service
------------------------*/
#service .contents.org {
  overflow: hidden;
}
#service .contents.org h2.flw_right:after {
  background-image: url(../images/service_ttl_flower.svg);
  background-size: contain;
  background-repeat: no-repeat;
}
#service .swiper_service {
  position: relative;
  margin: 0 auto;
}
@media screen and (max-width: 640px) {
  #service .swiper_service {
    width: 85%;
  }
}
#service .swiper_service .swiper-wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  transition-property: transform;
  box-sizing: content-box;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: inherit;
  gap: 3px;
}
@media screen and (max-width: 640px) {
  #service .swiper_service .swiper-wrapper {
    flex-wrap: nowrap;
    flex-direction: row;
    justify-content: inherit;
    align-items: stretch;
    align-content: inherit;
    gap: 0;
  }
}
#service .swiper_service .swiper-button-next::after,
#service .swiper_service .swiper-button-prev::after {
  display: none;
}
#service .swiper_service .swiper-button-prev {
  width: 18px;
  height: 40px;
  background-image: url("../images/service_arrow_l.svg");
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: calc(50% - 20px);
  left: -30px;
  color: transparent;
}
#service .swiper_service .swiper-button-next {
  width: 18px;
  height: 40px;
  background-image: url("../images/service_arrow_r.svg");
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: calc(50% - 20px);
  right: -30px;
  color: transparent;
}
#service .swiper_service .swiper-pagination {
  bottom: -40px;
}
#service .swiper_service .swiper-pagination-bullet {
  width: 14px;
  height: 14px;
}
#service .swiper_service.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 8px;
}
#service .swiper_service .swiper-pagination-bullet-active {
  background: #3a6911;
}
#service {
  /* hover box */
}
#service .hover_box.swiper-slide {
  width: 378px;
  background: #FFF;
  height: 260px;
  position: relative;
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  transition: all ease 0.3s;
}
@media screen and (max-width: 640px) {
  #service .hover_box.swiper-slide {
    width: 100%;
    background: #FFF;
    height: auto;
    position: relative;
    display: block;
    justify-content: center;
    align-content: center;
    align-items: center;
    transition: all ease 0.3s;
    margin: 0;
  }
}
#service .hover_box:nth-of-type(1) {
  background: url(../images/service_ph_01.jpg) no-repeat center center #FFF;
  background-size: cover;
}
@media screen and (max-width: 640px) {
  #service .hover_box:nth-of-type(1) {
    background: #FFF;
  }
}
#service .hover_box:nth-of-type(2) {
  background: url(../images/service_ph_02.jpg) no-repeat center center #FFF;
  background-size: cover;
}
@media screen and (max-width: 640px) {
  #service .hover_box:nth-of-type(2) {
    background: #FFF;
  }
}
#service .hover_box:nth-of-type(3) {
  background: url(../images/service_ph_03.jpg) no-repeat center center #FFF;
  background-size: cover;
}
@media screen and (max-width: 640px) {
  #service .hover_box:nth-of-type(3) {
    background: #FFF;
  }
}
#service .hover_box:nth-of-type(4) {
  background: url(../images/service_ph_04.jpg) no-repeat center center #FFF;
  background-size: cover;
}
@media screen and (max-width: 640px) {
  #service .hover_box:nth-of-type(4) {
    background: #FFF;
  }
}
#service .hover_box:nth-of-type(5) {
  background: url(../images/service_ph_05.jpg) no-repeat center center #FFF;
  background-size: cover;
}
@media screen and (max-width: 640px) {
  #service .hover_box:nth-of-type(5) {
    background: #FFF;
  }
}
#service .hover_box:nth-of-type(6) {
  background: url(../images/service_ph_06.jpg) no-repeat center center #FFF;
  background-size: cover;
}
@media screen and (max-width: 640px) {
  #service .hover_box:nth-of-type(6) {
    background: #FFF;
  }
}
#service .hover_box h4 {
  margin: 15px 0 0;
  transition: all ease 0.3s;
  font-size: 2.2rem;
  font-weight: 600;
  color: #715c07;
  line-height: 1;
  position: relative;
}
@media screen and (max-width: 640px) {
  #service .hover_box h4 {
    margin: 10px 0 25px;
  }
}
#service .hover_box h4 img {
  display: block;
  margin: 0 auto;
  width: 110px;
  margin-bottom: 10px;
}
@media screen and (max-width: 640px) {
  #service .hover_box h4 img {
    width: 120px;
  }
}
#service .hover_box:hover h4, #service .hover_box:active h4, #service .hover_box.active h4 {
  margin: 60px 0 10px;
}
@media screen and (max-width: 640px) {
  #service .hover_box:hover h4, #service .hover_box:active h4, #service .hover_box.active h4 {
    margin: 10px 0 25px;
  }
}
#service .hover_box .hover_box_wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  background: rgba(255, 255, 255, 0.8);
  width: calc(100% - 60px);
  height: 90px;
  text-align: center;
  flex-direction: column;
  transition: all ease 0.5s;
}
@media screen and (max-width: 640px) {
  #service .hover_box .hover_box_wrap {
    transition: none;
    width: 100%;
    height: 100%;
    text-align: center;
    position: relative;
    top: inherit;
    left: inherit;
    transform: inherit;
    padding: 10px 20px;
    background: #FFF;
  }
}
#service .hover_box .hover_box_wrap:after {
  content: "";
  display: block;
  height: 26px;
  width: 37px;
  background: url(../images/banquet/new/banq_bg_img02.png) no-repeat center center;
  background-size: contain;
  position: absolute;
  bottom: 13px;
  right: 13px;
}
@media screen and (max-width: 640px) {
  #service .hover_box .hover_box_wrap:after {
    content: "";
    display: none;
    height: auto;
    width: auto;
  }
}
@media screen and (max-width: 640px) {
  #service .hover_box .hover_box_wrap img.service_ph {
    width: 100%;
    height: auto;
  }
}
#service .hover_box .hover_box_wrap .box_inner {
  transition: all ease 0.3s;
  opacity: 0;
  height: 0;
  padding: 10px 0;
  max-width: 305px;
  margin: 0 auto;
  visibility: hidden;
  text-align: left;
}
@media screen and (max-width: 640px) {
  #service .hover_box .hover_box_wrap .box_inner {
    transition: none;
    opacity: 1;
    height: auto;
    padding: 10px;
    max-width: 305px;
    margin: 0 auto;
    visibility: visible;
  }
}
@media screen and (max-width: 640px) {
  #service .hover_box .hover_box_wrap .box_inner p {
    font-size: 1.5rem;
  }
}
#service .hover_box:hover .hover_box_wrap, #service .hover_box:active .hover_box_wrap, #service .hover_box.active .hover_box_wrap {
  width: 100%;
  height: 100%;
  text-align: center;
}
#service .hover_box:hover .hover_box_wrap .box_inner, #service .hover_box:active .hover_box_wrap .box_inner, #service .hover_box.active .hover_box_wrap .box_inner {
  opacity: 1;
  height: auto;
  visibility: visible;
}

/*------------------------
 #venue
------------------------*/
#venue .contents.org {
  padding-top: 70px !important;
}
#venue .contents.org h2.flw_left:after {
  background-image: url(../images/venue_ttl_flower.svg);
  background-size: contain;
  vertical-align: middle;
}
#venue .venue_list li {
  display: flex;
  justify-content: space-between;
  margin-bottom: 50px;
}
#venue .venue_list li:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li {
    display: block;
  }
}
#venue .venue_list li .ph {
  width: 600px;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .ph {
    width: 100%;
    margin-bottom: 20px;
  }
}
#venue .venue_list li .txt {
  width: 500px;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .txt {
    width: 100%;
  }
}
#venue .venue_list li .txt h3 {
  font-size: 2.8rem;
  margin-bottom: 15px;
  letter-spacing: 1.8px;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .txt h3 {
    text-align: center;
    font-size: 2.2rem;
    margin-bottom: 10px;
  }
}
#venue .venue_list li .txt h3 .num {
  display: block;
  background-color: #806644;
  color: white;
  font-size: 1.8rem;
  font-weight: normal;
  font-style: italic;
  line-height: 1;
  padding: 1px 0 0;
  margin-bottom: 10px;
  width: 40px;
  height: 22px;
  text-align: center;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .txt h3 .num {
    display: inline-block;
    margin-right: 10px;
    font-size: 1.6rem;
    padding: 1px 0 0;
    margin-bottom: 0;
    height: 22px;
    line-height: 1.3;
  }
}
#venue .venue_list li .txt h3 .sm {
  font-size: 2rem;
  letter-spacing: 1.4px;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .txt h3 .sm {
    font-size: 1.8rem;
  }
}
#venue .venue_list li .txt p {
  font-weight: bold;
}
#venue .venue_list li .info {
  border-top: solid #cdc49f 1px;
  margin-top: 20px;
  padding-top: 20px;
}
#venue .venue_list li .info h4 {
  color: #806644;
  margin-bottom: 10px;
  font-size: 1.8rem;
  font-family: "Noto Serif JP", serif;
}
#venue .venue_list li .info dl {
  display: flex;
  flex-wrap: wrap;
  line-height: 19px;
  margin-bottom: 25px;
  font-size: 1.6rem;
}
#venue .venue_list li .info dl .peple {
  background: url(../images/venue_ico_01.svg) top left no-repeat;
  padding-left: 38px;
  background-size: contain;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .info dl .peple {
    width: 10em;
    margin-bottom: 10px;
  }
}
#venue .venue_list li .info dl .width {
  background: url(../images/venue_ico_02.svg) top left no-repeat;
  padding-left: 32px;
  background-size: contain;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .info dl .width {
    width: 9em;
    padding-left: 38px;
    background-position: left 4px top;
  }
}
#venue .venue_list li .info dl dd {
  padding: 0 45px 0 15px;
}
@media screen and (max-width: 640px) {
  #venue .venue_list li .info dl dd {
    width: calc(100% - 9em - 38px);
    padding: 0;
  }
}

/*------------------------
 #plan
------------------------*/
@media screen and (max-width: 640px) {
  #plan .contents {
    padding: 0 0 35px !important;
  }
}
#plan .plan_inner {
  padding: 40px 50px 60px;
}
@media screen and (max-width: 640px) {
  #plan .plan_inner {
    padding: 8% 0;
  }
}
#plan .cap {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  font-size: 3.2rem;
  line-height: 1.5;
  letter-spacing: 2px;
  position: relative;
}
@media screen and (max-width: 640px) {
  #plan .cap {
    font-size: 2.6rem;
    font-weight: 600;
    text-shadow: 0 0 5px #fff;
    text-align: center;
    line-height: 1.346;
  }
}
#plan .cap:before {
  content: "";
  display: inline-block;
  width: 64px;
  height: 48px;
  position: absolute;
  top: 74px;
  left: 10px;
  background-image: url(../images/plan_ttl_bg_l.svg);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
@media screen and (max-width: 640px) {
  #plan .cap:before {
    content: none;
    background: none;
  }
}
#plan .cap:after {
  content: "";
  display: inline-block;
  width: 64px;
  height: 48px;
  position: absolute;
  top: 74px;
  right: 10px;
  background-image: url(../images/plan_ttl_bg_r.svg);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
@media screen and (max-width: 640px) {
  #plan .cap:after {
    content: none;
    background: none;
  }
}
#plan .cap span {
  color: #4a4541;
  font-size: 2.8rem;
}
@media screen and (max-width: 640px) {
  #plan .cap span {
    font-size: 2rem;
  }
}
#plan .box {
  background-image: url("../images/plan_bg.jpg");
  background-color: white;
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 640px) {
  #plan .box {
    padding: 0 15px;
    background-image: url("../images/plan_bg_sp.jpg");
    overflow: hidden;
  }
}
#plan .example {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
#plan .example li {
  margin: 0 25px 5px 25px;
}
#plan h2 {
  background-image: url(../images/plan_ttl_flower.svg);
  background-size: 94px auto;
  background-repeat: no-repeat;
  background-position: center top;
  padding: 80px 0 0;
  font-size: 2.9rem;
  letter-spacing: 1px;
}
@media screen and (max-width: 640px) {
  #plan h2 {
    background-size: 70px auto;
    background-position: center bottom 30px;
    padding: 130px 0 0;
  }
}
#plan h2 div {
  display: inline;
  font-size: 3.1rem;
}
#plan .plan_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#plan .plan_list .plan_detail {
  width: 31%;
}
@media screen and (max-width: 640px) {
  #plan .plan_list .plan_detail {
    width: 100%;
    margin-bottom: 40px;
  }
}
#plan .plan_list .plan_detail .card {
  min-height: 380px;
  margin-bottom: 20px;
  padding: 25px 0;
  height: 414px;
}
@media screen and (max-width: 640px) {
  #plan .plan_list .plan_detail .card {
    min-height: auto;
    margin: 0 0 10px;
    height: auto;
  }
}
#plan .plan_list .plan_detail h3 {
  text-align: center;
}
#plan .plan_list .plan_detail h3::after {
  display: block;
  content: "";
  width: 60px;
  height: 2px;
  margin: 10px auto 5px;
}
#plan .plan_list .plan_detail h3 img {
  height: 26px;
  width: auto;
}
#plan .plan_list .plan_detail .sub_ttl {
  font-family: "Noto Sans JP", serif;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
  font-size: 1.6rem;
  letter-spacing: 1.2px;
}
#plan .plan_list .plan_detail ul {
  counter-reset: li;
  padding: 0 20px;
}
#plan .plan_list .plan_detail ul li {
  position: relative;
  padding-left: 25px;
  font-weight: bold;
}
#plan .plan_list .plan_detail ul li:not(:first-child) {
  margin-top: 0.5em;
}
#plan .plan_list .plan_detail ul li::before {
  counter-increment: li;
  content: counter(li);
  position: absolute;
  left: 0;
  top: 6px;
  display: block;
  width: 17px;
  height: 17px;
  background-color: #3abec1;
  font-family: sans-serif;
  font-size: 15px;
  color: #fff;
  line-height: 18px;
  text-align: center;
}
#plan .plan_list .plan_detail p {
  text-align: justify;
}
@media screen and (max-width: 640px) {
  #plan .plan_list .plan_detail p {
    font-size: 1.5rem;
  }
}
#plan .plan_list .plan_detail .planA {
  background-image: url(../images/plan_bg_a.svg);
  background-size: 142px auto;
  background-repeat: no-repeat;
  background-position: right bottom;
  background-color: #f3f9ea;
}
#plan .plan_list .plan_detail .planA h3::after {
  background-color: #bacc9a;
}
#plan .plan_list .plan_detail .planA .sub_ttl {
  color: #77a822;
}
#plan .plan_list .plan_detail .planA li::before {
  background-color: #6e9032;
}
#plan .plan_list .plan_detail .planB {
  background-image: url(../images/plan_bg_b.svg);
  background-size: 142px auto;
  background-repeat: no-repeat;
  background-position: right bottom;
  background-color: #f4f9fa;
}
#plan .plan_list .plan_detail .planB h3::after {
  background-color: #bfe3ea;
}
#plan .plan_list .plan_detail .planB .sub_ttl {
  color: #16abc7;
}
#plan .plan_list .plan_detail .planB li::before {
  background-color: #65b1bf;
}
#plan .plan_list .plan_detail .planC {
  background-image: url(../images/plan_bg_c.svg);
  background-size: 142px auto;
  background-repeat: no-repeat;
  background-position: right bottom;
  background-color: #f5f1d8;
}
#plan .plan_list .plan_detail .planC h3::after {
  background-color: #f0e1b4;
}
#plan .plan_list .plan_detail .planC .sub_ttl {
  color: #d6ae0f;
}
#plan .plan_list .plan_detail .planC li::before {
  background-color: #cda93a;
}
#plan .swiper_plan {
  position: relative;
  margin: 0 auto;
}
@media screen and (max-width: 640px) {
  #plan .swiper_plan {
    width: 75%;
  }
}
#plan .swiper_plan .swiper-wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  transition-property: transform;
  box-sizing: content-box;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  align-content: inherit;
  gap: 10px 60px;
}
@media screen and (max-width: 640px) {
  #plan .swiper_plan .swiper-wrapper {
    flex-wrap: nowrap;
    flex-direction: row;
    justify-content: inherit;
    align-items: stretch;
    align-content: inherit;
    gap: 0;
  }
}
#plan .swiper_plan .swiper-wrapper .swiper-slide {
  width: 280px;
}
@media screen and (max-width: 640px) {
  #plan .swiper_plan .swiper-wrapper .swiper-slide {
    width: 100%;
  }
}
#plan .swiper_plan .swiper-wrapper .swiper-slide img {
  width: 100%;
  height: auto;
  filter: drop-shadow(rgba(85, 85, 85, 0.18) 0px 0px 14.62px);
}
#plan .swiper_plan .swiper-button-next::after,
#plan .swiper_plan .swiper-button-prev::after {
  display: none;
}
#plan .swiper_plan .swiper-button-prev {
  width: 18px;
  height: 40px;
  background-image: url("../images/service_arrow_l.svg");
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: calc(50% - 20px);
  left: -30px;
  color: transparent;
}
#plan .swiper_plan .swiper-button-next {
  width: 18px;
  height: 40px;
  background-image: url("../images/service_arrow_r.svg");
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: calc(50% - 20px);
  right: -30px;
  color: transparent;
}
#plan .swiper_plan .swiper-pagination {
  bottom: -30px;
}
#plan .swiper_plan .swiper-pagination-bullet {
  width: 14px;
  height: 14px;
}
#plan .swiper_plan.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 8px;
}
#plan .swiper_plan .swiper-pagination-bullet-active {
  background: #3a6911;
}

/*------------------------
 #flow
------------------------*/
#flow .contents.org {
  padding-bottom: 30px;
}
#flow .contents.org h2 {
  position: relative;
}
#flow .contents.org h2.flw_right:after {
  background-image: url(../images/flow_ttl_flower.svg);
  background-size: contain;
  vertical-align: middle;
}
#flow .flow_detail {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#flow .flow_detail > li {
  width: 260px;
  margin-bottom: 30px;
  position: relative;
}
@media screen and (max-width: 640px) {
  #flow .flow_detail > li {
    width: 100%;
    margin-bottom: 24px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
  }
}
#flow .flow_detail > li::after {
  display: block;
  content: "";
  width: 13px;
  height: 27px;
  background: url(../images/flow_ico_arrow.svg);
  position: absolute;
  top: 90px;
  right: -25px;
}
@media screen and (max-width: 640px) {
  #flow .flow_detail > li::after {
    content: none;
    background: none;
  }
}
#flow .flow_detail > li:last-child::after {
  display: none;
}
@media screen and (max-width: 640px) {
  #flow .flow_detail > li .img-wrap {
    width: 40%;
    max-width: 125px;
    -o-object-fit: contain;
       object-fit: contain;
    position: relative;
  }
}
@media screen and (max-width: 640px) {
  #flow .flow_detail > li .img-wrap:after {
    display: block;
    content: "";
    width: 14px;
    height: 14px;
    background: url(../images/flow_ico_arrow.svg);
    background-repeat: no-repeat;
    position: absolute;
    bottom: -15px;
    right: calc(50% - 7px);
    transform: rotate(-45deg);
  }
}
#flow .flow_detail > li .img-wrap img {
  width: 100%;
  height: auto;
}
#flow .flow_detail > li:last-of-type .img-wrap::after {
  content: none;
  background: none;
}
#flow .flow_detail > li .txt {
  margin-top: 10px;
}
@media screen and (max-width: 640px) {
  #flow .flow_detail > li .txt {
    width: calc(100% - 135px);
    margin-top: 0;
  }
}
#flow .flow_detail > li .txt li {
  line-height: 1.4;
  padding-left: 15px;
  margin-bottom: 8px;
  position: relative;
}
@media screen and (max-width: 640px) {
  #flow .flow_detail > li .txt li {
    font-size: 1.5rem;
    line-height: 1.3;
  }
}
#flow .flow_detail > li .txt li::before {
  display: inline-block;
  content: "";
  width: 11px;
  height: 11px;
  background-color: #977F5D;
  position: absolute;
  top: 6px;
  left: 0;
}
@media screen and (max-width: 640px) {
  #flow .flow_detail > li .txt li::before {
    top: 4px;
  }
}
#flow .flow_detail > li .txt li:last-of-type {
  margin-bottom: 0;
}

/*------------------------
 #memorial_btn
------------------------*/
#memorial_btn .contents {
  border-top: 2px dotted #bababa;
  padding: 60px 0 80px;
}
#memorial_btn .contents .btn_green {
  width: 450px;
  height: 67px;
  margin: 0 auto 30px;
  background: url(https://www.s-hotelyamachi.co.jp/commons/images/bg_btn.png) no-repeat #41821e;
  background-position: center right 20px;
}
@media screen and (max-width: 640px) {
  #memorial_btn .contents .btn_green {
    width: 100%;
    height: auto;
  }
}
#memorial_btn .contents .btn:hover,
#memorial_btn .contents .btn.focus {
  color: white;
  opacity: 0.8;
}
#memorial_btn .contents p {
  color: #d03737;
  text-align: center;
}/*# sourceMappingURL=style.css.map */