@charset "utf-8";

/* :root
========================================================================== */
:root {
  --main-bgColor: #eeeeee;
}

/* module mt
========================================================================== */
.mt0 {
  margin-block-start: 0 !important;
}

.mt5 {
  margin-block-start: 5px !important;
}

.mt10 {
  margin-block-start: 10px !important;
}

.mt15 {
  margin-block-start: 15px !important;
}

.mt20 {
  margin-block-start: 20px !important;
}

.mt25 {
  margin-block-start: 25px !important;
}

.mt25 {
  margin-block-start: 25px !important;
}

.mt30 {
  margin-block-start: 30px !important;
}

.mt35 {
  margin-block-start: 35px !important;
}

.mt40 {
  margin-block-start: 40px !important;
}

.mt45 {
  margin-block-start: 45px !important;
}

.mt50 {
  margin-block-start: 50px !important;
}

.mt55 {
  margin-block-start: 55px !important;
}

.mt60 {
  margin-block-start: 60px !important;
}

.mt65 {
  margin-block-start: 65px !important;
}

.mt70 {
  margin-block-start: 70px !important;
}

.mt75 {
  margin-block-start: 75px !important;
}

.mt80 {
  margin-block-start: 80px !important;
}

.mt85 {
  margin-block-start: 85px !important;
}

.mt90 {
  margin-block-start: 90px !important;
}

.mt95 {
  margin-block-start: 95px !important;
}

.mt100 {
  margin-block-start: 100px !important;
}

/* module mb
========================================================================== */
.mb0 {
  margin-block-end: 0 !important;
}

.mb5 {
  margin-block-end: 5px !important;
}

.mb10 {
  margin-block-end: 10px !important;
}

.mb15 {
  margin-block-end: 15px !important;
}

.mb20 {
  margin-block-end: 20px !important;
}

.mb25 {
  margin-block-end: 25px !important;
}

.mb25 {
  margin-block-end: 25px !important;
}

.mb30 {
  margin-block-end: 30px !important;
}

.mb35 {
  margin-block-end: 35px !important;
}

.mb40 {
  margin-block-end: 40px !important;
}

.mb45 {
  margin-block-end: 45px !important;
}

.mb50 {
  margin-block-end: 50px !important;
}

.mb55 {
  margin-block-end: 55px !important;
}

.mb60 {
  margin-block-end: 60px !important;
}

.mb65 {
  margin-block-end: 65px !important;
}

.mb70 {
  margin-block-end: 70px !important;
}

.mb75 {
  margin-block-end: 75px !important;
}

.mb80 {
  margin-block-end: 80px !important;
}

.mb85 {
  margin-block-end: 85px !important;
}

.mb90 {
  margin-block-end: 90px !important;
}

.mb95 {
  margin-block-end: 95px !important;
}

.mb100 {
  margin-block-end: 100px !important;
}

@media (max-width: 767px) {
  .mt30 {
    margin-block-start: 15px;
  }

  .mt50_sp {
    margin-block-start: 50px;
  }

  .mt75 {
    margin-block-start: 37.5px;
  }

  .mt100 {
    margin-block-start: 50px !important;
  }

  .mt100 {
    margin-block-start: 50px;
  }

  .mb30 {
    margin-block-end: 20px;
  }
}

/* module pt
========================================================================== */
.pt0 {
  padding-block-start: 0 !important;
}

.pt5 {
  padding-block-start: 5px !important;
}

.pt10 {
  padding-block-start: 10px !important;
}

.pt15 {
  padding-block-start: 15px !important;
}

.pt20 {
  padding-block-start: 20px !important;
}

.pt25 {
  padding-block-start: 25px !important;
}

.pt30 {
  padding-block-start: 30px !important;
}

.pt35 {
  padding-block-start: 35px !important;
}

.pt40 {
  padding-block-start: 40px !important;
}

.pt45 {
  padding-block-start: 45px !important;
}

.pt50 {
  padding-block-start: 50px !important;
}

.pt55 {
  padding-block-start: 55px !important;
}

.pt60 {
  padding-block-start: 60px !important;
}

.pt65 {
  padding-block-start: 65px !important;
}

.pt70 {
  padding-block-start: 70px !important;
}

.pt75 {
  padding-block-start: 75px !important;
}

.pt80 {
  padding-block-start: 80px !important;
}

.pt85 {
  padding-block-start: 85px !important;
}

.pt90 {
  padding-block-start: 90px !important;
}

.pt95 {
  padding-block-start: 95px !important;
}

.pt100 {
  padding-block-start: 100px !important;
}

@media (max-width: 767px) {
  .pt50 {
    padding-block-start: 25px;
  }
}

/* module br
========================================================================== */
.br_pc {
  display: block;
}

@media (max-width: 767px) {
  .br_pc {
    display: none;
  }
}

.br_sp {
  display: none;
}

@media (max-width: 767px) {
  .br_sp {
    display: block;
  }
}

/* body
========================================================================== */
body {
  font: 400 16px / 1.5 "Zen Kaku Gothic New", sans-serif;
  color: #444444;
}

@media (max-width: 767px) {
  body {
    font-size: 14px;
  }
}

/* a
========================================================================== */
a:link,
a:hover,
a:visited,
a:active {
  color: #444444;
}

/* img
========================================================================== */
img {
  vertical-align: bottom;
}

/* ul li, ol li
========================================================================== */
ul li,
ol li {
  list-style: none;
}

/* border-none
========================================================================== */
.border-none {
  border: none !important;
}

/* title-level2
========================================================================== */
.title-level2 {
  position: relative;
  font-size: 48px;
  text-align: center;
  line-height: 1.2;
  margin-block-start: 40px;

  & span {
    font-size: 40px;
  }

  &::after {
    position: absolute;
    top: 80%;
    left: 28%;
    translate: -50% 0;
    display: block;
    content: url("../img/h2_assets.svg");
    width: 600px;
    height: auto;
  }
}

@media screen and (max-width: 767px) {
  .title-level2 {
    font-size: 24px;
    margin-block-start: 40px;
    line-height: 1.5;

    & span {
      font-size: 18px;
    }

    &::after {
      position: absolute;
      top: 100%;
      left: 50%;
      translate: -50% -40%;
      width: 100%;
    }
  }
}

/* title-level3 recommend
========================================================================== */
.title-level3.recommend {
  position: relative;
  font-size: 30px;
  text-align: center;
  line-height: 1.2;
  margin-block-start: 140px;

  &::before {
    position: absolute;
    top: -200%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/green_leaf.webp");
    width: 70px;
    height: auto;
  }

  &::after {
    position: absolute;
    top: 150%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/recommend.webp");
    width: 130px;
    height: auto;
  }
}

/* title-level3 selection
========================================================================== */
.title-level3.selection {
  position: relative;
  font-size: 30px;
  text-align: center;
  line-height: 1.2;
  margin-block-start: 70px;

  &::before {
    position: absolute;
    top: -200%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/green_leaf.webp");
    width: 70px;
    height: auto;
  }

  &::after {
    position: absolute;
    top: 150%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/estate_selection.webp");
    width: 130px;
    height: auto;
  }
}

/* title-level3 method
========================================================================== */
.title-level3.method {
  position: relative;
  font-size: 30px;
  text-align: center;
  line-height: 1.2;

  &::before {
    position: absolute;
    top: -200%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/green_leaf.webp");
    width: 70px;
    height: auto;
  }

  &::after {
    position: absolute;
    top: 150%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/method.webp");
    width: 75px;
    height: auto;
  }
}

@media screen and (max-width: 767px) {
  .title-level3.method {
    position: relative;
    font-size: 30px;
    text-align: center;
    line-height: 1.2;

    &::before {
      position: absolute;
      top: -100%;
      left: 50%;
      translate: -50% 0;
      width: 70px;
      height: auto;
    }

    &::after {
      position: absolute;
      top: 125%;
      left: 50%;
      translate: -50% 0;
      width: 75px;
      height: auto;
    }
  }
}

/* title-level3 flow
========================================================================== */
.title-level3.flow {
  position: relative;
  font-size: 30px;
  text-align: center;
  line-height: 1.2;

  &::before {
    position: absolute;
    top: -200%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/green_leaf.webp");
    width: 70px;
    height: auto;
  }

  &::after {
    position: absolute;
    top: 150%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/flow.svg");
    width: 45px;
    height: auto;
  }
}

@media screen and (max-width: 767px) {
  .title-level3.flow {
    position: relative;

    &::before {
      position: absolute;
      top: -150%;
      left: 50%;
      translate: -50% 0;
      width: 70px;
      height: auto;
    }

    &::after {
      position: absolute;
      top: 125%;
      left: 50%;
      translate: -50% 0;
      width: 45px;
      height: auto;
    }
  }
}

/* title-level4 land
========================================================================== */
.title-level4.land {
  position: relative;
  font-size: 32px;
  text-align: center;
  line-height: 1.2;

  & span {
    font-size: 60px;
  }

  &::before {
    position: absolute;
    top: -40%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/land_icon.svg");
    width: 70px;
    height: auto;
  }
}

@media screen and (max-width: 767px) {
  .title-level4.land {
    font-size: 30px;

    & span {
      font-size: 40px;
    }

    &::before {
      top: -40%;
      left: 50%;
      translate: -50% 0;
      width: 70px;
      height: auto;
    }
  }
}

/* title-level4 detached
========================================================================== */
.title-level4.detached {
  position: relative;
  font-size: 32px;
  text-align: center;
  line-height: 1.2;

  & span {
    font-size: 60px;
  }

  &::before {
    position: absolute;
    top: -40%;
    left: 50%;
    translate: -50% 0;
    display: block;
    content: url("../img/detached_house.svg");
    width: 70px;
    height: auto;
  }
}

@media screen and (max-width: 767px) {
  .title-level4.detached {
    font-size: 30px;

    & span {
      font-size: 40px;
    }

    &::before {
      top: -40%;
      left: 50%;
      translate: -50% 0;
      width: 70px;
      height: auto;
    }
  }
}

/* 背景吹き出し1
========================================================================== */
.bgBlowing_01 {
  position: relative;
  background: #ffffff;

  &::before,
  &::after {
    border: solid transparent;
    content: "";
    height: 0;
    width: 0;
    position: absolute;
    top: 100%;
    left: 50%;
  }

  &::after {
    border-top-width: 25px;
    border-bottom-width: 25px;
    border-left-width: 15px;
    border-right-width: 15px;
    margin-left: -15px;
    border-top-color: #ffffff;
    z-index: 10;
  }
}

/* 背景吹き出し2
========================================================================== */
.bgBlowing_02 {
  position: relative;
  background: #eeeeee;

  &::before,
  &::after {
    border: solid transparent;
    content: "";
    height: 0;
    width: 0;
    position: absolute;
    top: 100%;
    left: 50%;
  }

  &::after {
    border-top-width: 25px;
    border-bottom-width: 25px;
    border-left-width: 15px;
    border-right-width: 15px;
    margin-left: -15px;
    border-top-color: #eeeeee;
    z-index: 20;
  }
}

/* floating
========================================================================== */
.floating {
  position: fixed;
  right: 50px;
  bottom: 100px;
  z-index: 10000;
  width: 360px;
  height: auto;
  background-color: #ffffff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);

  & img {
    max-width: 100%;
  }

  & .is-close {
    position: absolute;
    top: -15px;
    left: 20px;
    width: 30px;
    height: auto;
    cursor: pointer;

    & img {
      width: 30px;
    }
  }
}

@media screen and (max-width: 767px) {
  .floating {
    width: 90%;
    left: 50%;
    bottom: 20px;
    transform: translate(-50%, 0);
  }
}

/* pickUp
========================================================================== */
#pickUp {
  width: 100%;
  height: auto;

  & .sectionInner {
    width: 1080px;
    margin: 0 auto;
    padding-block: 140px 70px;

    & .col-1 {
      width: 100%;
      display: grid;
      place-items: center;
    }
  }
}

@media (max-width: 767px) {
  #pickUp {
    width: 100%;
    height: auto;

    & .sectionInner {
      width: 100%;
      padding-inline: 15px 15px;
      padding-block: 70px;
    }
  }
}

/* landMap
========================================================================== */
#landMap {
  width: 100%;
  height: auto;
  padding-inline: 15px;
  padding-block: 70px;
}

/* method
========================================================================== */
#method {
  width: 100%;
  height: auto;

  & .sectionInner {
    width: 1080px;
    margin: 0 auto;
    padding-block: 140px;

    & .col-1 {
      width: 100%;
      display: grid;
      place-items: center;
    }
  }
}

@media (max-width: 767px) {
  #method {
    width: 100%;
    height: auto;

    & .sectionInner {
      width: 100%;
      padding-inline: 15px 15px;
      padding-block: 70px;
    }
  }
}

/* flow
========================================================================== */
#flow {
  width: 100%;
  height: auto;

  & .sectionInner {
    width: 1080px;
    margin: 0 auto;
    padding-block: 140px 70px;

    & .col-1 {
      width: 100%;
      display: grid;
      place-items: center;
    }
  }
}

@media (max-width: 767px) {
  #flow {
    width: 100%;
    height: auto;

    & .sectionInner {
      width: 100%;
      padding-inline: 15px 15px;
      padding-block: 140px 70px;
    }
  }
}

/* header
========================================================================== */
header {
  position: sticky;
  top: 0;
  background-color: #ffffff;
  box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.1);
  width: 100%;
  height: auto;
  z-index: 9999;

  & .inner {
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;

    & img {
      height: 50px;
    }

    & .headerLink a {
      position: relative;
      color: #444444;
      background: #ffffff;
      font-weight: bold;
      border: solid 1px #444444;
      border-radius: 9999px;
      display: flex;
      justify-content: space-around;
      align-items: center;
      padding: 10px 50px;
      text-decoration: none;
      transition: 0.3s ease-in-out;
      margin-block-start: 10px;

      &:hover {
        background: #444444;
        color: #ffffff;

        &::after {
          right: 5px;
        }
      }

      &::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 10px;
        display: flex;
        justify-content: center;
        align-items: center;
        transition: right 0.3s;
        inline-size: 10px;
        block-size: 10px;
        border-top: solid 2px currentColor;
        border-right: solid 2px currentColor;
        transform: translateY(-50%) rotate(45deg);
      }
    }
  }
}

@media (max-width: 767px) {
  header {
    & .inner {
      padding: 15px;

      & img {
        height: 25px;
      }

      & .headerLink a {
        padding: 10px 20px;
      }
    }
  }
}

/* footer
========================================================================== */
footer {
  display: grid;
  place-items: center;
  padding: 15px;
}