.photo {
  position: relative;
}
.photo__capIn, .photo__capOut {
  position: absolute;
  font-size: 12px;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 767px) {
  .photo__capIn, .photo__capOut {
    font-size: 10px;
  }
}
.photo__capIn[data-color=gray], .photo__capOut[data-color=gray] {
  color: #333333;
}
.photo__capIn[data-color=white], .photo__capOut[data-color=white] {
  color: #ffffff;
}
.photo__capIn[data-color=black], .photo__capOut[data-color=black] {
  color: #000000;
}
.photo__capIn[data-color=sdw-wh], .photo__capOut[data-color=sdw-wh] {
  color: #ffffff;
  text-shadow: rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px;
}
.photo__capIn[data-color=sdw-bl], .photo__capOut[data-color=sdw-bl] {
  color: #000000;
  text-shadow: #ffffff 1px 1px 2px, #ffffff -1px 1px 2px, #ffffff 1px -1px 2px, #ffffff -1px -1px 2px;
}
.photo__capIn {
  bottom: 5px;
  right: 5px;
  color: #ffffff;
}
.photo__capOut {
  padding-top: 5px;
  right: 0;
  top: 100%;
  color: rgba(51, 51, 51, 0.8);
}

.caption {
  color: #999999;
  letter-spacing: 0.1em;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 767px) {
  .caption {
    font-size: 10px;
  }
}

.m-sec1Block {
  padding: 80px 70px 102px;
  background-color: #fff;
  border: 1px #ac8d32 solid;
  display: block;
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  .m-sec1Block {
    padding: 8vw 6vw;
    margin-top: 20px;
  }
}
.m-sec1Block__sect {
  display: block;
}
.m-sec1Block__sect:not(:first-child) {
  margin-top: 80px;
}
@media screen and (max-width: 767px) {
  .m-sec1Block__sect:not(:first-child) {
    margin-top: 10.6666666667vw;
  }
}
.m-sec1Block__ttl {
  text-align: center;
  letter-spacing: 0;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1.5;
  font-weight: 500;
  color: #141414;
  font-size: 30px;
}
@media screen and (max-width: 767px) {
  .m-sec1Block__ttl {
    font-size: 4.2666666667vw;
  }
}
.m-sec1Block__heading {
  text-align: center;
  letter-spacing: 0.1em;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1.75;
  font-weight: 400;
  color: #000001;
  font-size: 16px;
}
@media screen and (max-width: 767px) {
  .m-sec1Block__heading {
    font-size: 3.2vw;
  }
}
.m-sec1Block__heading + .m-sec1Block__visual, .m-sec1Block__ttl + .m-sec1Block__visual {
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  .m-sec1Block__heading + .m-sec1Block__visual, .m-sec1Block__ttl + .m-sec1Block__visual {
    margin-top: 5.3333333333vw;
  }
}

.m-sec3Block {
  display: block;
}
@media screen and (max-width: 767px) {
  .m-sec3Block {
    margin-top: 40px;
  }
}
.m-sec3Block__ttl {
  color: #00374c;
  text-align: center;
  letter-spacing: 0;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1.5;
  font-weight: 500;
  font-size: 30px;
}
@media screen and (max-width: 767px) {
  .m-sec3Block__ttl {
    font-size: 4.2666666667vw;
  }
}
.m-sec3Block__visual:not(:first-child), .m-sec3Block__ttl + .m-sec3Block__visual {
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  .m-sec3Block__visual:not(:first-child), .m-sec3Block__ttl + .m-sec3Block__visual {
    margin-top: 5.3333333333vw;
  }
}
.m-sec3Block__cta {
  background: url("../img/sec3_cta_bg.png") top left no-repeat;
  background-size: cover;
}
@media screen and (min-width: 768px) {
  .m-sec3Block__cta {
    padding: 80px 72px;
    display: flex;
    align-items: center;
    gap: 40px;
    justify-content: space-between;
  }
}
@media screen and (max-width: 767px) {
  .m-sec3Block__cta {
    padding: 5.33333vw;
  }
}
.m-sec3Block__cta-txt {
  color: #ffffff;
  text-align: center;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .m-sec3Block__cta-txt {
    font-size: 3.4666666667vw;
  }
}
@media screen and (min-width: 768px) {
  .m-sec3Block__cta-left {
    width: calc(50% - 20px);
  }
}
@media screen and (min-width: 768px) {
  .m-sec3Block__cta-right {
    width: calc(50% - 20px);
  }
  .m-sec3Block__cta-right .m-btn__link {
    width: 440px;
  }
}
@media screen and (max-width: 767px) {
  .m-sec3Block__cta-right {
    margin-top: 2.66667vw;
  }
}
.m-sec3Block__gallery {
  border: 1px solid #ac8d32;
}
@media screen and (min-width: 768px) {
  .m-sec3Block__gallery_container {
    padding-bottom: 100px;
  }
}
@media screen and (min-width: 768px) {
  .m-sec3Block__gallery_ttl {
    padding-top: 80px;
  }
}
@media screen and (min-width: 768px) {
  .m-sec3Block__type + .m-sec3Block__type {
    margin-top: 40px;
  }
}
.m-sec3Block__type .hanrei {
  max-width: inherit;
  padding-bottom: 0;
}
@media screen and (min-width: 768px) {
  .m-sec3Block__type .hanrei {
    width: 333px;
    margin: 40px 0 0;
  }
}
@media screen and (max-width: 767px) {
  .m-sec3Block__type .hanrei {
    margin-top: 9vw;
  }
}
@media screen and (min-width: 768px) {
  .m-sec3Block__facility {
    margin-top: 40px;
  }
}
.m-sec3Block__facility_list::before {
  content: "";
  display: block;
  width: 233px;
  order: 1;
}
.m-sec3Block__facility_list::after {
  content: "";
  display: block;
  width: 233px;
}
.m-sec3Block__facility_list_item .photo__capIn {
  font-size: 10px;
}
.m-sec3Block__facility_txt {
  margin-bottom: 36px;
}
@media screen and (max-width: 767px) {
  .m-sec3Block__facility_txt {
    margin-bottom: 4.8vw;
  }
}

.m-sec2Block {
  background-color: #fff;
  border: 1px #ac8d32 solid;
  display: block;
}
@media screen and (min-width: 768px) {
  .m-sec2Block {
    padding: 80px 70px;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block {
    padding: 8vw 6vw;
    margin-top: 20px;
  }
}
@media screen and (min-width: 768px) {
  .m-sec2Block + .m-sec2Block {
    margin-top: 40px;
  }
}
.m-sec2Block__ttl {
  text-align: center;
  letter-spacing: 0;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1.5;
  font-weight: 500;
  color: #141414;
}
@media screen and (min-width: 768px) {
  .m-sec2Block__ttl {
    font-size: 30px;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__ttl {
    font-size: 4.2666666667vw;
  }
}
.m-sec2Block__txt {
  letter-spacing: 0.1em;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1.75;
  font-weight: 400;
  color: #000001;
}
@media screen and (min-width: 768px) {
  .m-sec2Block__txt {
    font-size: 16px;
    text-align: center;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__txt {
    font-size: 3.2vw;
  }
}
@media screen and (min-width: 768px) {
  .m-sec2Block__ttl + .m-sec2Block__txt {
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__ttl + .m-sec2Block__txt {
    margin-top: 5.3333333333vw;
  }
}
@media screen and (min-width: 768px) {
  .m-sec2Block__head + .m-sec2Block__cont {
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__head + .m-sec2Block__cont {
    margin-top: 5.3333333333vw;
  }
}
.m-sec2Block__store {
  display: grid;
  gap: 4px 3px;
}
@media screen and (min-width: 768px) {
  .m-sec2Block__store {
    grid-template-columns: 356px 599px;
    grid-template-rows: repeat(2, 1fr);
    grid-auto-flow: column;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__store {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
  }
}
@media screen and (min-width: 768px) {
  .m-sec2Block__store .photo:nth-child(3) {
    grid-row: auto/span 2;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__store .photo:nth-child(3) {
    grid-column: auto/span 2;
  }
}
@media screen and (min-width: 768px) {
  .m-sec2Block__gallery {
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__gallery {
    margin-top: 5.3333333333vw;
  }
}
.m-sec2Block__sect:not(:first-child) {
  margin-top: 80px;
}
@media screen and (max-width: 767px) {
  .m-sec2Block__sect:not(:first-child) {
    margin-top: 10.6666666667vw;
  }
}
@media screen and (min-width: 768px) {
  .m-sec2Block__access {
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px) {
  .m-sec2Block__access {
    margin-top: 5.3333333333vw;
  }
}

@media screen and (min-width: 768px) {
  .accessList {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
  }
}
@media screen and (min-width: 768px) {
  .accessList__item {
    width: calc(50% - 15px);
  }
}
@media screen and (max-width: 767px) {
  .accessList__item:not(:first-child) {
    margin-top: 5.3333333333vw;
  }
}
.accessList + .caption {
  margin-top: 20px;
}

.accessCard__dist {
  display: flex;
  align-items: flex-end;
}
@media screen and (min-width: 768px) {
  .accessCard__dist {
    margin-top: 20px;
  }
}
@media screen and (max-width: 767px) {
  .accessCard__dist {
    margin-top: 2.6666666667vw;
  }
}
.accessCard__line {
  flex: 1;
  padding: 0 10px 0.5em;
}
.accessCard__line .line {
  background-image: linear-gradient(to right, #999999, #999999 2px, transparent 2px);
  background-size: 4px 2px;
  background-position: left bottom;
  background-repeat: repeat-x;
  display: inline-block;
  width: 100%;
  height: 1px;
}
.accessCard__ttl {
  font-family: YakuHanMP, "Noto Serif JP", serif;
  color: #333333;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .accessCard__ttl {
    font-size: 26px;
  }
}
@media screen and (max-width: 767px) {
  .accessCard__ttl {
    font-size: 4.8vw;
  }
}
.accessCard__min {
  position: relative;
  color: #24110d;
  display: inline-block;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1;
  letter-spacing: 0.05em;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  .accessCard__min {
    font-size: 20px;
  }
}
@media screen and (max-width: 767px) {
  .accessCard__min {
    font-size: 3.7333333333vw;
  }
}
.accessCard__min .num {
  color: #ed6c00;
  font-family: "EB Garamond", serif;
}
@media screen and (min-width: 768px) {
  .accessCard__min .num {
    font-size: 44px;
  }
}
@media screen and (max-width: 767px) {
  .accessCard__min .num {
    font-size: 8.8vw;
  }
}
.accessCard__min sup {
  font-size: 10px;
  position: absolute;
  top: 0;
  right: 0;
}

.m-gallery__heading {
  letter-spacing: 0;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1.5625;
  font-weight: 400;
  color: #141414;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .m-gallery__heading {
    font-size: 16px;
    margin-top: 60px;
  }
}
@media screen and (max-width: 767px) {
  .m-gallery__heading {
    font-size: 3.2vw;
    margin-top: 10.6666666667vw;
  }
}
.m-gallery__box {
  border: 1px solid #ac8d32;
}
@media screen and (min-width: 768px) {
  .m-gallery__box {
    padding: 30px;
    margin: 40px auto 0;
    max-width: 640px;
  }
}
@media screen and (max-width: 767px) {
  .m-gallery__box {
    padding: 5.3333333333vw;
    margin-top: 5.3333333333vw;
  }
}
.m-gallery__box .m-gallery__heading {
  margin-top: 0;
}
.m-gallery__box-txt {
  letter-spacing: 0;
  font-family: YakuHanMP, "Noto Serif JP", serif;
  line-height: 1.5625;
  font-weight: 400;
  color: #141414;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .m-gallery__box-txt {
    font-size: 16px;
  }
}
@media screen and (max-width: 767px) {
  .m-gallery__box-txt {
    font-size: 3.2vw;
  }
}
.m-gallery__heading + .m-gallery__box-txt {
  margin-top: 1em;
}

.m-sec5 .m-sec5Block:last-of-type {
  display: none;
}

@media screen and (min-width: 768px) {
  .ohkaizen-insertInterviewParts__inn {
    padding: 80px 0 210px !important;
  }
}
@media screen and (max-width: 767px) {
  .ohkaizen-interview {
    padding: 20px 0 26.33333vw !important;
  }
}