@charset "UTF-8";
/*! ---------------------------------
Theme Name: Main
Version: 3.4.1
Tested up to: 6.8.1
---------------------------------- */
/* -----------------------------------------------
  Variables
--------------------------------------------------*/
:root {
  --color-text: #000;
  --color-bg: #fff;
  --color-base: #557c64;
  --color-link: #557c64;
  --color-hover: rgb(121.8038277512, 163.6961722488, 137.9162679426);
  --color-visited: #557c64;
  --color-error: #dd0000;
  --swiper-theme-color: #557c64;
}

/* -----------------------------------------------
  Mixins
--------------------------------------------------*/
.c-en {
  font-family: "Outfit", sans-serif;
}

.fw-r {
  font-weight: 400;
}

.fw-m {
  font-weight: 500;
}

.fw-sb {
  font-weight: 600;
}

.fw-b {
  font-weight: 700;
}

.ls0 {
  letter-spacing: 0;
}

.ls01 {
  letter-spacing: 0.1em;
}

.swiper-slide {
  display: flex;
  align-items: center;
}
.swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media all and (max-width: 768px) {
  .swiper-pagination-horizontal.swiper-pagination-bullets {
    bottom: 0;
  }
}
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  width: 1.2rem;
  height: 1.2rem;
  margin-inline: 1rem;
  border: 1px solid #000;
  background: #fff;
  opacity: 1;
}
@media all and (max-width: 768px) {
  .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    width: 1.6vw;
    height: 1.6vw;
    margin-inline: 1.3333333333vw;
  }
}
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet-active {
  background: #000;
}

.n-story {
  position: relative;
  font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo;
  letter-spacing: 0.05em;
}
.n-story__keyvisual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: clip;
  min-height: min(55rem, 40.7407407407vw);
}
@media all and (max-width: 768px) {
  .n-story__keyvisual {
    border-top: 0.8vw solid #000;
    min-height: 66.6666666667vw;
  }
}
.n-story__keyvisual-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 35%;
  z-index: -1;
}
.n-story__keyvisual-container {
  text-align: center;
}
.n-story__keyvisual-container h2 {
  font-size: min(1.8rem, 1.3333333333vw);
  font-weight: normal;
  letter-spacing: 0.1em;
  margin-block: 0 min(3rem, 2.2222222222vw);
  text-shadow: 1px 1px 2px white, 0 0 1em white, 0 0 0.2em white;
}
@media all and (max-width: 768px) {
  .n-story__keyvisual-container h2 {
    font-size: 4vw;
    margin-block: 0 4vw;
  }
}
.n-story__keyvisual-container figure img {
  width: min(45.8rem, 33.9259259259vw);
  height: auto;
}
@media all and (max-width: 768px) {
  .n-story__keyvisual-container figure img {
    width: 61.6vw;
  }
}
.n-story__keyvisual-container figcaption {
  font-size: min(2.4rem, 1.7777777778vw);
  font-weight: 600;
  letter-spacing: 0.2em;
  margin-top: min(2.5rem, 1.8518518519vw);
  text-shadow: 1px 1px 20px white, 0 0 1em white, 0 0 0.2em white;
}
@media all and (max-width: 768px) {
  .n-story__keyvisual-container figcaption {
    font-size: 3.2vw;
    margin-top: 3.3333333333vw;
  }
}

/* -----------------------------------------
  ABOUT
----------------------------------------- */
.about {
  padding-block: min(6rem, 4.4444444444vw) min(10rem, 7.4074074074vw);
}
@media all and (max-width: 768px) {
  .about {
    padding: 9.3333333333vw;
  }
}
@media all and (min-width: 769px) {
  .about .inner {
    max-width: min(84rem, 62.2222222222vw);
    margin-inline: auto;
  }
}
.about p {
  font-size: min(1.5rem, 1.1111111111vw);
}
@media all and (max-width: 768px) {
  .about p {
    font-size: 4vw;
  }
}
.about p:first-child {
  margin-top: 0;
}
.about p:last-child {
  margin-bottom: 0;
}

/* -----------------------------------------
  POINTS
----------------------------------------- */
.points {
  border-top: 1px solid #333;
  border-bottom: 1px solid #333;
}
.points__list {
  background: #333;
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
}
@media all and (max-width: 768px) {
  .points__list {
    flex-direction: column;
  }
}
.points__list-item {
  flex: 1;
  padding: min(5rem, 3.7037037037vw);
  background: #f1f3f0;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  min-height: min(33.2rem, 24.5925925926vw);
}
@media all and (max-width: 768px) {
  .points__list-item {
    padding: 10.6666666667vw;
  }
}
.points__list-title {
  font-size: min(2.8rem, 2.0740740741vw);
  margin: 0;
}
@media all and (max-width: 768px) {
  .points__list-title {
    font-size: 6.1333333333vw;
    margin-bottom: 4vw;
  }
}
.points__list-title .points__list-label {
  display: block;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: min(6rem, 4.4444444444vw);
  color: #fff;
  background: #5d7b66;
  font-size: min(1.3rem, 0.962962963vw);
  line-height: 1;
  padding: min(1.2rem, 0.8888888889vw) min(3.6rem, 2.6666666667vw);
}
@media all and (max-width: 768px) {
  .points__list-title .points__list-label {
    font-size: 2.5333333333vw;
    padding: 1.6vw 4.8vw;
    margin-bottom: 5.3333333333vw;
  }
}
.points__list-title .points__list-label.point02 {
  background: #8e8054;
}
.points__list-title .points__list-label.point03 {
  background: #5f8597;
}
.points__list-text {
  font-size: min(1.5rem, 1.1111111111vw);
  margin: 0;
}
@media all and (max-width: 768px) {
  .points__list-text {
    font-size: 4vw;
  }
}
.points__list-text.point02 {
  margin-bottom: min(1.5rem, 1.1111111111vw);
}

/* -----------------------------------------
  STEP
----------------------------------------- */
.step {
  background: #e4e7e5;
}
@media all and (max-width: 768px) {
  .step {
    background: #f0f9f3;
  }
}
.step .inner {
  padding-block: min(15rem, 11.1111111111vw) min(4rem, 2.962962963vw);
  text-align: center;
}
@media all and (max-width: 768px) {
  .step .inner {
    padding-block: 13.3333333333vw 10.6666666667vw;
    padding-inline: 9.6vw;
    text-align: justify;
  }
}
.step .inner p {
  font-size: min(1.5rem, 1.1111111111vw);
}
@media all and (max-width: 768px) {
  .step .inner p {
    font-size: 4vw;
    margin: 0;
  }
}
.step__title {
  font-size: min(2.8rem, 2.0740740741vw);
  text-align: center;
  margin-inline: auto;
  margin-block: 0 min(3rem, 2.2222222222vw);
}
@media all and (max-width: 768px) {
  .step__title {
    font-size: 6.1333333333vw;
    margin-block: 0 6.6666666667vw;
  }
}
.step__title .c-en {
  display: block;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: min(3rem, 2.2222222222vw);
  font-size: min(1.3rem, 0.962962963vw);
  line-height: 1;
  padding: min(1rem, 0.7407407407vw) min(3.5rem, 2.5925925926vw);
  border: 2px solid #333;
}
@media all and (max-width: 768px) {
  .step__title .c-en {
    margin-bottom: 8vw;
    font-size: 3.4666666667vw;
    padding: 2.4vw 9.3333333333vw;
  }
}
.step__list {
  background: #fff;
  border-top: 1px solid #333;
  border-bottom: 1px solid #333;
}
@media all and (min-width: 769px) {
  .step__list-item {
    max-width: min(122rem, 90.3703703704vw);
    margin-inline: auto;
  }
}
@media all and (max-width: 768px) {
  .step__list-item {
    padding-inline: 6.4vw;
  }
}
.step__list-item > div:last-child {
  margin-bottom: min(10rem, 7.4074074074vw);
}
@media all and (max-width: 768px) {
  .step__list-item > div:last-child {
    margin-bottom: 12vw;
  }
}
.step__list-title {
  font-size: min(2.8rem, 2.0740740741vw);
  font-weight: normal;
  text-align: center;
  margin-block: min(7rem, 5.1851851852vw) min(6rem, 4.4444444444vw);
}
@media all and (max-width: 768px) {
  .step__list-title {
    font-size: 4.8vw;
    margin-block: 13.3333333333vw 9.3333333333vw;
  }
}
.step__list-title .kakaku {
  display: block;
  font-size: min(2.4rem, 1.7777777778vw);
  font-weight: 400;
  margin-top: min(1rem, 0.7407407407vw);
}
@media all and (max-width: 768px) {
  .step__list-title .kakaku {
    font-size: 6.4vw;
  }
}
.step__list-title .kakaku .u-text-xs {
  font-size: min(1.6rem, 1.1851851852vw);
}
@media all and (max-width: 768px) {
  .step__list-title .kakaku .u-text-xs {
    font-size: 4.2666666667vw;
  }
}
.step__list-text {
  font-size: min(1.5rem, 1.1111111111vw);
  text-align: center;
  margin: 0;
}
@media all and (max-width: 768px) {
  .step__list-text {
    font-size: 4vw;
    text-align: justify;
  }
}
.step__list-div {
  position: relative;
  display: flex;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: min(8rem, 5.9259259259vw);
  border-top: 1px solid #333;
  margin-top: min(8rem, 5.9259259259vw);
}
@media all and (max-width: 768px) {
  .step__list-div {
    flex-wrap: wrap;
    flex-direction: column;
    row-gap: 5.3333333333vw;
    margin-top: 12vw;
  }
}
.step__list-div .commingsoon {
  width: 100%;
  text-align: center;
  margin-block: min(10rem, 7.4074074074vw) 0;
}
.step__list .plan__label {
  position: absolute;
  top: 0;
  right: 0;
  padding: min(1.5rem, 1.1111111111vw) min(3rem, 2.2222222222vw);
  background: #f2f2e7;
  font-size: min(1.3rem, 0.962962963vw);
  line-height: 1;
  z-index: 2;
}
@media all and (max-width: 768px) {
  .step__list .plan__label {
    font-size: 3.2vw;
    padding: 2.6666666667vw 5.3333333333vw;
  }
}
.step__list .plan__image-wrapper {
  max-width: 100%;
}
@media all and (min-width: 769px) {
  .step__list .plan__image-wrapper {
    flex: 0 0 min(69.5rem, 51.4814814815vw);
    max-width: min(69.5rem, 51.4814814815vw);
  }
}
.step__list .plan__image {
  background: #e4e7e5;
  margin: 0;
}
@media all and (min-width: 769px) {
  .step__list .plan__image .swiper-slide {
    width: min(69.5rem, 51.4814814815vw);
    height: min(45.6rem, 33.7777777778vw);
  }
}
@media all and (max-width: 768px) {
  .step__list .plan__image .swiper-slide {
    height: 66.6666666667vw;
  }
}
.step__list .plan__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 100%;
}
@media all and (min-width: 769px) {
  .step__list .plan__content {
    padding-top: min(5.3rem, 3.9259259259vw);
  }
}
.step__list .plan__content-title {
  font-size: min(2.8rem, 2.0740740741vw);
  line-height: inherit;
  margin-top: 0;
  margin-bottom: min(1rem, 0.7407407407vw);
}
@media all and (min-width: 769px) {
  .step__list .plan__content-title {
    white-space: nowrap;
  }
}
@media all and (max-width: 768px) {
  .step__list .plan__content-title {
    font-size: 6.4vw;
    line-height: 1.5;
    margin-bottom: 3.3333333333vw;
  }
}
.step__list .plan__content-data {
  font-size: min(1.4rem, 1.037037037vw);
  margin-block: min(1rem, 0.7407407407vw);
}
@media all and (max-width: 768px) {
  .step__list .plan__content-data {
    font-size: 4vw;
  }
}
.step__list .plan__content-subtitle {
  font-size: min(2rem, 1.4814814815vw);
  line-height: inherit;
  margin-block: min(1.5rem, 1.1111111111vw);
}
@media all and (max-width: 768px) {
  .step__list .plan__content-subtitle {
    font-size: 5.3333333333vw;
    margin-block: 4vw 2vw;
  }
}
.step__list .plan__content-text {
  max-width: min(37rem, 27.4074074074vw);
  font-size: min(1.5rem, 1.1111111111vw);
  margin: 0;
}
@media all and (max-width: 768px) {
  .step__list .plan__content-text {
    max-width: none;
    font-size: 4vw;
  }
}
.step__list .color__content {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  margin-block: min(6rem, 4.4444444444vw) min(10rem, 7.4074074074vw);
}
@media all and (max-width: 768px) {
  .step__list .color__content {
    flex-flow: wrap column;
    row-gap: 12vw;
    margin-block: 12vw;
  }
}
.step__list .color__content-div {
  max-width: 100%;
  border-top: 1px solid #333;
}
@media all and (min-width: 769px) {
  .step__list .color__content-div {
    flex: 0 0 min(58.6rem, 43.4074074074vw);
    max-width: min(58.6rem, 43.4074074074vw);
  }
}
.step__list .color__content-title {
  font-size: min(2rem, 1.4814814815vw);
  text-align: center;
  margin-block: min(4rem, 2.962962963vw) min(2rem, 1.4814814815vw);
}
@media all and (max-width: 768px) {
  .step__list .color__content-title {
    font-size: 4.8vw;
    margin-block: 5.3333333333vw 4vw;
  }
}
.step__list .color__content-text {
  font-size: min(1.5rem, 1.1111111111vw);
  text-align: center;
  margin: 0;
}
@media all and (max-width: 768px) {
  .step__list .color__content-text {
    font-size: 4vw;
    text-align: justify;
  }
}
.step__list .color__image {
  background: #e4e7e5;
  margin: 0;
}
@media all and (min-width: 769px) {
  .step__list .color__image .swiper-slide {
    width: min(58.6rem, 43.4074074074vw);
    height: min(42.4rem, 31.4074074074vw);
  }
}
@media all and (max-width: 768px) {
  .step__list .color__image .swiper-slide {
    height: 66.6666666667vw;
  }
}
.step.step--type .step__tabs .tablist label {
  font-size: min(2.4rem, 1.7777777778vw);
  font-feature-settings: "palt";
}
@media all and (max-width: 768px) {
  .step.step--type .step__tabs .tablist label {
    font-size: 4.8vw;
  }
}
.step.step--type .step__tabs .tablist label .u-text-xs {
  font-size: min(1.6rem, 1.1851851852vw);
}
@media all and (max-width: 768px) {
  .step.step--type .step__tabs .tablist label .u-text-xs {
    font-size: 3.2vw;
    display: inline-flex;
    line-height: 1.2;
  }
}
.step__tabs {
  /* ラジオは非表示 */
  /* タブの見た目 */
  /* パネルの初期状態は非表示 */
  /* どのラジオが選ばれたかでパネルを表示 */
  /* アクティブタブの強調（上下とも同時に反映） */
}
.step__tabs input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.step__tabs .tablist {
  background: #333;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  column-gap: 1px;
}
.step__tabs .tablist.--step1 {
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
}
@media all and (min-width: 769px) {
  .step__tabs .tablist {
    max-width: min(122rem, 90.3703703704vw);
    margin-inline: auto;
  }
}
@media all and (max-width: 768px) {
  .step__tabs .tablist {
    margin-inline: 6.4vw;
  }
}
.step__tabs .tablist label {
  display: block;
  font-size: min(2rem, 1.4814814815vw);
  padding: 12px 16px;
  background: #f1f3f0;
  text-align: center;
  cursor: pointer;
}
@media all and (max-width: 768px) {
  .step__tabs .tablist label {
    font-size: 4vw;
    padding: 3.2vw 2.1333333333vw;
    background: #fff;
    line-height: 1;
  }
}
.step__tabs .tablist label .tablabel-span {
  display: block;
  font-size: min(1.3rem, 0.962962963vw);
}
@media all and (max-width: 768px) {
  .step__tabs .tablist label .tablabel-span {
    font-size: 3.2vw;
    margin-bottom: 0.3em;
  }
}
.step__tabs .panels .panel {
  display: none;
}
.step__tabs #tab-typeA:checked ~ .panels .panel--typeA {
  display: block;
}
.step__tabs #tab-typeB:checked ~ .panels .panel--typeB {
  display: block;
}
.step__tabs #tab-typeC:checked ~ .panels .panel--typeC {
  display: block;
}
.step__tabs #tab-typeD:checked ~ .panels .panel--typeD {
  display: block;
}
.step__tabs #tab-typeE:checked ~ .panels .panel--typeE {
  display: block;
}
.step__tabs #tab-light:checked ~ .panels .panel--light {
  display: block;
}
.step__tabs #tab-medium:checked ~ .panels .panel--medium {
  display: block;
}
.step__tabs #tab-dark:checked ~ .panels .panel--dark {
  display: block;
}
.step__tabs #tab-typeA:checked ~ .tablist--top label[for=tab-typeA],
.step__tabs #tab-typeA:checked ~ .tablist--bottom label[for=tab-typeA] {
  color: #fff;
  background: none;
}
.step__tabs #tab-typeB:checked ~ .tablist--top label[for=tab-typeB],
.step__tabs #tab-typeB:checked ~ .tablist--bottom label[for=tab-typeB] {
  color: #fff;
  background: none;
}
.step__tabs #tab-typeC:checked ~ .tablist--top label[for=tab-typeC],
.step__tabs #tab-typeC:checked ~ .tablist--bottom label[for=tab-typeC] {
  color: #fff;
  background: none;
}
.step__tabs #tab-typeD:checked ~ .tablist--top label[for=tab-typeD],
.step__tabs #tab-typeD:checked ~ .tablist--bottom label[for=tab-typeD] {
  color: #fff;
  background: none;
}
.step__tabs #tab-typeE:checked ~ .tablist--top label[for=tab-typeE],
.step__tabs #tab-typeE:checked ~ .tablist--bottom label[for=tab-typeE] {
  color: #fff;
  background: none;
}
.step__tabs #tab-light:checked ~ .tablist--top label[for=tab-light],
.step__tabs #tab-light:checked ~ .tablist--bottom label[for=tab-light] {
  color: #fff;
  background: #333;
}
.step__tabs #tab-medium:checked ~ .tablist--top label[for=tab-medium],
.step__tabs #tab-medium:checked ~ .tablist--bottom label[for=tab-medium] {
  color: #fff;
  background: #333;
}
.step__tabs #tab-dark:checked ~ .tablist--top label[for=tab-dark],
.step__tabs #tab-dark:checked ~ .tablist--bottom label[for=tab-dark] {
  color: #fff;
  background: #333;
}
@media all and (max-width: 768px) {
  .step--color .step__tabs .tablist label {
    padding-inline: 0.6666666667vw;
    font-size: 0.9em;
    font-weight: 600;
    letter-spacing: -0.1em;
    white-space: nowrap;
  }
}
@media all and (max-width: 768px) {
  .step--color .step__list-title {
    font-size: 6.4vw;
    margin-block: 12vw 4vw;
  }
}

/* -----------------------------------------
  SPEC
----------------------------------------- */
.spec {
  background: #e4e7e5;
  padding-block: min(15rem, 11.1111111111vw) min(16rem, 11.8518518519vw);
}
@media all and (max-width: 768px) {
  .spec {
    background: #f0f9f3;
    padding-block: 18.6666666667vw;
  }
}
@media all and (min-width: 769px) {
  .spec .inner {
    max-width: min(122rem, 90.3703703704vw);
    margin-inline: auto;
  }
}
@media all and (max-width: 768px) {
  .spec .inner {
    padding-inline: 6.4vw;
  }
}
.spec__title {
  font-size: min(2.8rem, 2.0740740741vw);
  text-align: center;
  margin-top: 0;
  margin-bottom: min(6rem, 4.4444444444vw);
}
@media all and (max-width: 768px) {
  .spec__title {
    font-size: 6.6666666667vw;
    margin-bottom: 12vw;
  }
}
.spec__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(5rem, 3.7037037037vw);
}
@media all and (max-width: 768px) {
  .spec__list {
    grid-template-columns: auto;
    row-gap: 10.6666666667vw;
  }
}
.spec__list-item {
  position: relative;
  border-top: 1px solid #333;
  background: #fff;
  padding-bottom: min(6.8rem, 5.037037037vw);
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.03);
}
.spec__list-label {
  font-size: min(1.6rem, 1.1851851852vw);
  font-weight: 600;
  text-align: center;
  color: #fff;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: min(39.6rem, 29.3333333333vw);
  height: min(4rem, 2.962962963vw);
  margin: min(4rem, 2.962962963vw) auto;
}
@media all and (max-width: 768px) {
  .spec__list-label {
    font-size: 4vw;
    height: 10.6666666667vw;
    min-width: 74.6666666667vw;
    margin: 10.6666666667vw auto 9.3333333333vw;
  }
}
.spec__list-title {
  font-size: min(2.4rem, 1.7777777778vw);
  text-align: center;
  width: fit-content;
  padding-inline: min(1.5rem, 1.1111111111vw);
  padding-bottom: min(1rem, 0.7407407407vw);
  border-bottom: 1px solid #000;
  margin: min(4rem, 2.962962963vw) auto;
}
@media all and (max-width: 768px) {
  .spec__list-title {
    font-size: 8vw;
    padding-inline: 3.3333333333vw;
    padding-bottom: 2.6666666667vw;
    margin-bottom: 10.6666666667vw;
  }
}
.spec__list-text {
  font-size: min(1.5rem, 1.1111111111vw);
  margin-block: min(4rem, 2.962962963vw);
}
@media all and (min-width: 769px) {
  .spec__list-text {
    max-width: min(49rem, 36.2962962963vw);
    margin-inline: auto;
  }
}
@media all and (max-width: 768px) {
  .spec__list-text {
    font-size: 4vw;
    margin-inline: 7.0666666667vw;
    margin-block: 10.6666666667vw 13.3333333333vw;
  }
}
.spec__list-link {
  position: absolute;
  bottom: 0;
  background: #f4f5f3;
  font-size: min(1.4rem, 1.037037037vw);
  font-weight: normal;
  text-align: center;
  height: min(6.8rem, 5.037037037vw);
}
@media all and (max-width: 768px) {
  .spec__list-link {
    background: #f2f2e7;
    font-size: 3.7333333333vw;
    height: 13.3333333333vw;
    border: none;
  }
}
.spec__list-link.c-link-more::before {
  right: min(3rem, 2.2222222222vw);
}
@media all and (max-width: 768px) {
  .spec__list-link.c-link-more::before {
    right: 6.6666666667vw;
  }
}
.spec__list-link:hover {
  color: #fff;
  background: #000;
}
.spec__list-link:hover.c-link-more::before {
  background-color: #fff;
}

/* -----------------------------------------
  MODEL HOUSE
----------------------------------------- */
@media all and (min-width: 769px) {
  .model-house {
    background: #e4e7e5;
    padding-bottom: min(16rem, 11.8518518519vw);
  }
}
@media all and (min-width: 769px) {
  .model-house .inner {
    max-width: min(122rem, 90.3703703704vw);
    margin-inline: auto;
  }
}
.model-house__div {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: space-between;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.03);
}
@media all and (max-width: 768px) {
  .model-house__div {
    position: relative;
    flex-wrap: wrap;
    padding-top: 13.3333333333vw;
  }
}
.model-house__image {
  position: relative;
}
@media all and (min-width: 769px) {
  .model-house__image {
    flex: 0 0 min(63.4rem, 46.962962963vw);
    max-width: min(63.4rem, 46.962962963vw);
  }
}
@media all and (max-width: 768px) {
  .model-house__image {
    height: 91.4666666667vw;
    overflow: hidden;
  }
}
.model-house__image img {
  object-fit: cover;
  object-position: 100% 50%;
  width: 100%;
  height: 100%;
}
@media all and (max-width: 768px) {
  .model-house__image img {
    transform: scale(1.2);
  }
}
.model-house__image figcaption {
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  width: min(7.2rem, 5.3333333333vw);
  height: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: min(1.1rem, 0.8148148148vw);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  letter-spacing: 0.2em;
}
@media all and (max-width: 768px) {
  .model-house__image figcaption {
    display: none;
  }
}
.model-house__content {
  background: #fff;
  padding-inline: min(6rem, 4.4444444444vw);
  padding-bottom: min(8rem, 5.9259259259vw);
}
@media all and (max-width: 768px) {
  .model-house__content {
    padding-inline: 9.6vw;
    padding-bottom: 13.3333333333vw;
  }
}
.model-house__label {
  width: fit-content;
  min-width: min(27rem, 20vw);
  height: min(9rem, 6.6666666667vw);
  margin: auto;
  background: #f2f2e7;
  padding-inline: 1rem;
  padding-bottom: min(1rem, 0.7407407407vw);
  border-bottom: 1px solid #000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-size: min(1.6rem, 1.1851851852vw);
  font-weight: bold;
}
@media all and (max-width: 768px) {
  .model-house__label {
    width: 72vw;
    height: 24vw;
    font-size: 4.2666666667vw;
    padding-bottom: 2.6666666667vw;
    position: absolute;
    top: 0;
    inset-inline: 0;
  }
}
.model-house__title {
  font-size: min(2.8rem, 2.0740740741vw);
  margin-block: min(6rem, 4.4444444444vw) min(3rem, 2.2222222222vw);
}
@media all and (max-width: 768px) {
  .model-house__title {
    font-size: 8vw;
    text-align: center;
    margin-block: 9.3333333333vw 5.3333333333vw;
  }
}
.model-house__text {
  font-size: min(1.5rem, 1.1111111111vw);
}
@media all and (max-width: 768px) {
  .model-house__text {
    font-size: 4vw;
  }
}
.model-house__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: min(6.5rem, 4.8148148148vw);
  padding-inline: min(2rem, 1.4814814815vw);
  font-size: min(1.4rem, 1.037037037vw);
  font-weight: normal;
  text-align: center;
  border: 1px solid #000;
  margin-block: min(5rem, 3.7037037037vw) 0;
  margin-inline: auto;
}
@media all and (max-width: 768px) {
  .model-house__link {
    font-size: 3.2vw;
    height: 13.3333333333vw;
    margin-top: 9.3333333333vw;
  }
}
.model-house__link.c-link-more::before {
  right: min(3rem, 2.2222222222vw);
}
@media all and (max-width: 768px) {
  .model-house__link.c-link-more::before {
    right: 8vw;
  }
}
.model-house__link:hover {
  color: #fff;
  background: #000;
}
.model-house__link:hover.c-link-more::before {
  background-color: #fff;
}

/* -----------------------------------------
  CONTACT
----------------------------------------- */
@media all and (min-width: 769px) {
  .ns-contact {
    background: #e4e7e5;
    padding-bottom: min(20rem, 14.8148148148vw);
  }
}
@media all and (min-width: 769px) {
  .ns-contact .inner {
    max-width: min(122rem, 90.3703703704vw);
    margin-inline: auto;
  }
}
.ns-contact__div {
  background: #fff;
  padding: min(7rem, 5.1851851852vw) min(13rem, 9.6296296296vw) min(9rem, 6.6666666667vw);
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.03);
}
@media all and (max-width: 768px) {
  .ns-contact__div {
    background: #f0f9f3;
    padding-block: 20vw;
    padding-inline: 6.4vw;
  }
}
.ns-contact__title {
  font-size: min(2rem, 1.4814814815vw);
  line-height: inherit;
  text-align: center;
  margin-top: 0;
  margin-bottom: min(4rem, 2.962962963vw);
}
@media all and (max-width: 768px) {
  .ns-contact__title {
    font-size: 4.8vw;
    margin-bottom: 5.3333333333vw;
  }
}
.ns-contact__cta {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center;
  gap: min(4rem, 2.962962963vw);
}
@media all and (max-width: 768px) {
  .ns-contact__cta {
    flex-direction: column;
    row-gap: 4vw;
  }
}
.ns-contact__button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: min(45.6rem, 33.7777777778vw);
  height: min(13.4rem, 9.9259259259vw);
  background: #fff;
  font-size: min(1.6rem, 1.1851851852vw);
  border: 1px solid #000;
  text-decoration: none;
}
@media all and (max-width: 768px) {
  .ns-contact__button {
    width: 100%;
    height: 22.9333333333vw;
    font-size: 3.4666666667vw;
    border: none;
  }
}
.ns-contact__button .num {
  font-size: min(2.4rem, 1.7777777778vw);
}
@media all and (max-width: 768px) {
  .ns-contact__button .num {
    font-size: 4.8vw;
  }
}
@media all and (max-width: 768px) {
  .ns-contact__button.--tel {
    color: var(--color-text);
  }
}
.ns-contact__button.--mail {
  color: #fff;
  background: #4a7970;
  border: 1px solid #4a7970;
}
@media all and (max-width: 768px) {
  .ns-contact__button.--mail {
    font-size: 4.2666666667vw;
  }
}
.ns-contact__button.--mail:hover {
  background: #fff;
  color: #4a7970;
}