@charset "UTF-8";

/*********************

common

*********************/

body {
    margin: 0;
    padding: 0;
    /* font-family: "kinto-sans", sans-serif; */
    font-family: "FP-こぶりなゴシック StdN W3,FP-こぶりなゴシック StdN W6", sans-serif;
    color: #333333;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
dl,
dd,
dt,
ul,
li {
    margin: 0;
    padding: 0;
}

ul,
li {
    list-style: none;
}

h1 {
    font-size: 48px;
    line-height: 1.3em;
    letter-spacing: 0.1em;
}

h2 {
    font-size: 28px;
    line-height: 1.3em;
    letter-spacing: 0.1em;
}

h3 {
    font-size: 24px;
    line-height: 1.3em;
    letter-spacing: 0.1em;
}

h4 {
    font-size: 18px;
    line-height: 1.3em;
    letter-spacing: 0.1em;
}

a {
    font-size: 14px;
    text-decoration: none;
}

p {
    font-size: 16px;
    line-height: 24px;
    letter-spacing: .12em;
}

.wrapper {
    margin: 0 auto;
    width: 980px;
}

.sub__title h2 {
    position: relative;
    line-height: 48px;
    padding-left: 24px;
}

.sub__title h2 span {
    background-color: rgb(182, 169, 124, .5);
    border-radius: 30px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 50px;
    width: 50px;
    z-index: -1;
}

@media screen and (max-width: 840px) {
    .wrapper {
        margin: 0 auto;
        width: 85vw;
    }
    .sub__title h2 {
        font-size: 6vw;
    }
}


/*********************

header

*********************/

.header {
    display: flex;
    justify-content: space-between;
    padding: 0 48px;
}

.header__inner--left {
    align-items: center;
    display: flex;
}

.header__inner--left .logoImg {
    display: block;
    width: 240px;
}

.header__inner--right {
    display: flex;
}

.header__inner--right ul {
    display: flex;
}

.header__inner--right ul.nav li {
    align-items: center;
    border-right: 1px solid #C4C4C4;
    display: flex;
    padding: 0 16px;
    text-align: center;
}

.header__inner--right ul.nav {
    margin: 12px 0;
}

.header__inner--right ul.nav li:first-child {
    border-left: 1px solid #C4C4C4;
}

.header__inner--right ul.nav li a {
    color: #333333;
    font-size: 14px;
    font-weight: bold;
    line-height: 20px;
    letter-spacing: .2em;
}

.header__inner--right ul.nav li a:hover {
    color: #B6A97C;
}

.header__inner--right ul.nav li a span {
    color: #B6A97C;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .2em;
}

.contact-nav {
    display: flex;
    margin-left: 24px;
}

.contact-nav ul li {
    background-color: #2E6A9D;
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
}

.contact-nav ul li:first-child {
    margin-right: 16px;
}

.contact-nav ul li.consultationBtn {
    background-color: #DE993B;
}

.contact-nav a.contact-nav__item {
    align-items: center;
    display: flex;
    flex-direction: column;
    padding: 15px 0;
}

.contact-nav a.contact-nav__item p {
    color: #ffffff;
    font-size: 12px;
    font-weight: bold;
    text-align: center;
    letter-spacing: .2em;
    padding-top: 4px;
}

.contact-nav a.contact-nav__item span.circle {
    align-items: center;
    display: flex;
    background-color: #fff;
    border-radius: 50%;
    margin: 0 auto 5px;
    position: relative;
    height: 40px;
    width: 40px;
}

.contact-nav a.contact-nav__item span.circle svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    font-size: 18px;
    color: #2E6A9D;
}

.contact-nav ul li.consultationBtn a.contact-nav__item span.circle svg {
    color: #DE993B;
}

.contact-nav ul li {
    height: 95px;
    width: 90px;
}

.header-sp {
    display: none;
}


/*********************

header-sp

*********************/

@media screen and (max-width: 840px) {
    .header {
        display: none;
    }
    .header-sp header#sp {
        background-color: #ffffff;
        position: absolute;
        box-shadow: 0 4px 30px 0 rgb(0 0 0 / 20%);
        width: 100%;
    }
    .header-sp {
        display: block;
        margin-top: -20vw;
        width: 100%;
        z-index: 9;
        position: relative;
    }
    .logoImg {
        margin-top: 3.8vw;
        width: 40vw;
        margin-left: 4vw;
    }
    #g-nav {
        /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
        position: fixed;
        z-index: 999;
        top: 0;
        width: 100%;
        height: 100vh;
        display: none;
    }
    /*ナビゲーションの縦スクロール*/
    #g-nav-list {
        display: none;
        /*はじめは表示なし*/
        /*ナビの数が増えた場合縦スクロール*/
        position: fixed;
        z-index: 999;
        width: 100%;
        overflow: auto;
        top: 0;
        height: 50vh;
        -webkit-overflow-scrolling: touch;
    }
    #g-nav.panelactive #g-nav-list {
        display: block;
        background-color: #ffffff;
        height: 100vh;
        /*クラスが付与されたら出現*/
    }
    .header-sp .active+#g-nav {
        display: block;
    }
    /*ナビゲーション*/
    #g-nav ul {
        opacity: 0;
        /*はじめは透過0*/
        /*ナビゲーション天地中央揃え※レイアウトによって調整してください。不必要なら削除*/
        position: absolute;
        z-index: 999;
        top: 35%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    /*背景が出現後にナビゲーションを表示*/
    #g-nav ul {
        opacity: 1;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }
    /* 背景が出現後にナビゲーション li を表示※レイアウトによって調整してください。不必要なら削除*/
    #g-nav ul li {
        animation-name: gnaviAnime;
        animation-duration: 1s;
        animation-delay: .2s;
        /*0.2 秒遅らせて出現*/
        animation-fill-mode: forwards;
        opacity: 0;
        text-align: left;
        width: 80vw;
    }
    @keyframes gnaviAnime {
        0% {
            opacity: 0;
        }
        100% {
            opacity: 1;
        }
    }
    /*リストのレイアウト設定*/
    #g-nav li {
        text-align: center;
        list-style: none;
    }
    #g-nav li a {
        color: #333333;
        text-decoration: none;
        padding: 4.8vw;
        display: block;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        font-weight: bold;
        border-top: solid #C4C4C4 1px;
    }
    #g-nav li:last-child a {
        border-bottom: solid #C4C4C4 1px;
    }
    #g-nav li a span {
        color: #B6A97C;
    }
    /*========= ボタンのためのCSS ===============*/
    .openbtn {
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 9999;
        /*ボタンを最前面に*/
        cursor: pointer;
        width: 50px;
        height: 50px;
    }
    /*×に変化*/
    .openbtn span {
        display: inline-block;
        transition: all .4s;
        position: absolute;
        left: 14px;
        height: 3px;
        border-radius: 2px;
        background-color: #535353;
        width: 45%;
    }
    .openbtn span:nth-of-type(1) {
        top: 15px;
    }
    .openbtn span:nth-of-type(2) {
        top: 23px;
    }
    .openbtn span:nth-of-type(3) {
        top: 31px;
    }
    .openbtn.active span:nth-of-type(1) {
        top: 18px;
        left: 18px;
        transform: translateY(6px) rotate(-45deg);
        width: 30%;
        background-color: #535353;
    }
    .openbtn.active span:nth-of-type(2) {
        opacity: 0;
    }
    .openbtn.active span:nth-of-type(3) {
        top: 30px;
        left: 18px;
        transform: translateY(-6px) rotate(45deg);
        width: 30%;
        background-color: #535353;
    }
}


/*********************

hero

*********************/

.hero {
    margin-top: 32px;
}

.hero__inner {
    background: url(./assets/images/ref-bg.png) no-repeat;
    background-size: cover;
    position: relative;
    height: 510px;
    width: 100%;
}

.hero__inner--circle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.hero__inner--circle-out {
    border: 1px solid #ffffff;
    border-radius: 50%;
    margin: 0 auto;
    height: 400px;
    width: 400px;
}

.hero__inner--circle-in {
    background-color: #ffffff;
    border: 1px solid #ffffff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    text-align: center;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    height: 360px;
    width: 360px;
}

.hero__inner-txt {
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    width: 300px;
}

.hero__inner-txt p {
    align-items: flex-end;
    display: flex;
    justify-content: center;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: .1em;
}

.hero__inner-txt p span.border-small-left,
.hero__inner-txt p span.border-small-right,
.hero__inner-txt p span.border-large-left,
.hero__inner-txt p span.border-large-right {
    background-color: #333333;
    border-radius: 8px;
    display: block;
    margin: 0 4px;
    width: 3px;
}

.hero__inner-txt p span.border-small-left {
    transform: rotate(-40deg);
    height: 24px;
}

.hero__inner-txt p span.border-large-left {
    transform: rotate(-20deg);
    height: 35px;
}

.hero__inner-txt p span.border-small-right {
    transform: rotate(40deg);
    height: 24px;
}

.hero__inner-txt p span.border-large-right {
    transform: rotate(20deg);
    height: 35px;
}

.hero__inner-txt p span.txt {
    padding: 0 12px 0 16px;
}

.hero__inner-txt p span {
    font-size: 24px;
    font-weight: 500;
    letter-spacing: .2em;
}

.hero__inner-txt h1 {
    font-size: 40px;
    margin: 16px 0 48px 0;
}

.hero__inner-txt h2 {
    color: #B6A97C;
    letter-spacing: .15em;
    margin-top: 12px;
    font-size: 26px;
}

.info__unit {
    background-color: #82B200;
    border-radius: 8px;
    bottom: 10%;
    color: #ffffff;
    right: 8%;
    padding: 16px;
    position: absolute;
}

.info__unit p span,
.info__unit h4 span {
    font-size: 16px;
}

.info__unit p {
    line-height: 20px;
    margin-bottom: 8px;
}

.info__unit h4 {
    font-size: 32px;
    line-height: 1.0em;
    letter-spacing: .05em;
}

.info__img {
    bottom: 20%;
    right: 3%;
    position: absolute;
}

.info__img .herohouseImg {
    display: block;
    width: 200px;
}

@media screen and (max-width: 840px) {
    .hero {
        margin-top: 20vw;
    }
    .hero__inner {
        height: 620px;
        width: 100%;
    }
    .hero__inner--circle-in {
        height: 85vw;
        width: 85vw;
    }
    .hero__inner--circle-out {
        height: 90vw;
        width: 90vw;
    }
    .hero__inner-txt h1 {
        margin: 2.1vw 0 5.8vw 0;
    }
    .hero__inner-txt h2 {
        font-size: 6vw;
    }
    .info__unit {
        bottom: -10%;
        left: 8%;
    }
    .info__img {
        bottom: -1%;
        right: 0;
    }
    .info__img .herohouseImg {
        width: 45vw;
    }
}


/*********************

contact-list

*********************/

.contact-list ul {
    display: flex;
    justify-content: space-evenly;
    margin: 80px 0;
}

.contact-btn {
    display: flex;
}

.contact-btn a.request {
    background-color: #2E6A9D;
    box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.35);
    border-radius: 30px;
    color: #fff;
    display: flex;
    justify-content: center;
    padding: 8px 0;
    position: relative;
    width: 320px;
}

.contact-btn a.consultation {
    background-color: #DE993B;
    box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.35);
    border-radius: 30px;
    color: #fff;
    display: flex;
    justify-content: center;
    padding: 8px 0;
    position: relative;
    width: 320px;
}

.contact-btn p {
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    line-height: 38px;
    letter-spacing: .2em;
}

span.circle {
    align-items: center;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    font-size: 24px;
    margin-left: 8px;
    justify-content: center;
    position: absolute;
    left: 0;
    height: 40px;
    width: 40px;
}

span.circle svg {
    color: #2E6A9D;
}

span.consultation svg {
    color: #DE993B;
}

@media screen and (max-width: 840px) {
    .contact-list ul {
        flex-direction: column;
    }
    .contact-btn a.request {
        margin: 0 auto 4.8vw auto;
        padding: 3.2vw 0;
        width: 80vw;
    }
    .contact-btn a.request span.circle,
    .contact-btn a.consultation span.circle {
        height: 12vw;
        width: 12vw;
        top: 2vw;
    }
    .contact-btn a.consultation {
        padding: 3.2vw 0;
        margin: 0 auto;
        width: 80vw;
    }
}


/*********************

introduction

*********************/

.introduction__title h2 {
    text-align: center;
}

.introduction__list {
    padding: 40px 0;
}

.introduction__list--title {
    text-align: center;
    padding: 40px 0;
}

.introduction__list--title h3 {
    align-items: center;
    display: flex;
    justify-content: center;
}

.introduction__list--title span.left {
    background-color: #333333;
    border-radius: 8px;
    display: block;
    transform: rotate(-40deg);
    height: 24px;
    margin: 0 16px 0 4px;
    width: 3px;
}

.introduction__list--title span.right {
    background-color: #333333;
    border-radius: 8px;
    display: block;
    transform: rotate(40deg);
    height: 24px;
    margin: 0 4px 0 12px;
    width: 3px;
}

.introduction__list ul li {
    align-items: center;
    display: flex;
    background-color: #F7F7F7;
    border-radius: 8px;
    padding: 32px 24px;
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 16px;
}

.introduction__list ul li:last-child {
    margin-bottom: 0;
}

.introduction__list ul li svg {
    color: #B6A97C;
    font-size: 36px;
    margin-right: 16px;
}

@media screen and (max-width: 840px) {
    .introduction__title h2 {
        font-size: 26px;
    }
    .introduction__list ul li svg {
        font-size: 6vw;
        margin-right: 2.1vw;
    }
    .introduction__list ul li {
        font-size: 4.2vw;
    }
}


/*********************

catch

*********************/

.catch {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin: 80px 0;
    width: 100%;
}

.catch__txt h2 {
    font-size: 40px;
    text-align: center;
}

.catch__txt h2 span {
    background-color: rgb(182, 169, 124, .5);
}

.catch__img img {
    display: block;
    height: 150px;
    width: 150px;
}

.catch__img--small img {
    display: block;
    height: 150px;
    width: 75px;
}

@media screen and (max-width: 840px) {
    .catch {
        flex-wrap: wrap;
        justify-content: space-around;
    }
    .catch__img--small {
        display: none;
    }
    .catch__txt h2 {
        font-size: 8vw;
    }
    .catch__txt {
        margin: 5.6vw 0;
    }
}


/*********************

specification

*********************/

.specification {
    position: relative;
    padding-bottom: 80px;
    padding-top: 120px;
}

.specification__wrapper {
    background: url(./assets/images/ref-specification.png) no-repeat;
    height: 720px;
    width: 100%;
}

.specification__list {
    margin-top: 40px;
}

.specification__list ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-top: 150px;
}

.specification_circle {
    align-items: center;
    background-color: #ffffff;
    border-radius: 200px;
    color: #B6A97C;
    display: flex;
    justify-content: center;
    text-align: center;
    height: 200px;
    width: 200px;
}

.specification__list ul li {
    align-items: center;
    border: 1px solid #ffffff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    margin-bottom: 16px;
    height: 210px;
    width: 210px;
}

@media screen and (max-width: 840px) {
    .specification {
        padding-bottom: 10vw;
        padding-top: 10vw;
    }
    .specification__list ul li {
        height: 38vw;
        width: 38vw;
    }
    .specification_circle {
        height: 36vw;
        width: 36vw;
    }
    .specification_circle h4 {
        font-size: 4.0vw;
    }
    .specification__list ul {
        padding-top: 20vw;
    }
    .specification__wrapper {
        height: 100vh;
        background-size: cover;
        background-position: center;
    }
}


/*********************

feature

*********************/

.feature {
    position: relative;
    padding-bottom: 180px;
}

.feature__wrapper--bottom {
    position: absolute;
    height: 140px;
    width: 100%;
    background: #F0EAD3;
    top: 1320px;
    z-index: -1;
}

.feature__wrapper--bottom::before,
.feature__wrapper--bottom::after {
    content: "";
    display: block;
    position: absolute;
    border-radius: 100% 50%;
}

.feature__wrapper--bottom::before {
    width: 54%;
    height: 100%;
    background-color: #ffffff;
    right: 0;
    top: 60%;
}

.feature__wrapper--bottom::after {
    width: 55%;
    height: 100%;
    background-color: #F0EAD3;
    left: 0;
    top: 30%;
}

.feature__wrapper--top {
    position: absolute;
    height: 160px;
    width: 100%;
    background: #F0EAD3;
    top: 250px;
    z-index: -1;
}

.feature__wrapper--top::before,
.feature__wrapper--top::after {
    content: "";
    display: block;
    position: absolute;
    border-radius: 100% 50%;
}

.feature__wrapper--top::before {
    width: 50%;
    height: 100%;
    background-color: #ffffff;
    left: 0;
    top: -70%;
}

.feature__wrapper--top::after {
    width: 60%;
    height: 100%;
    background-color: #F0EAD3;
    right: 0;
    top: -35%;
}

.feature__wrapper--middle {
    background-color: #F0EAD3;
    position: absolute;
    top: 320px;
    width: 100%;
    height: 1000px;
    z-index: -1;
}

.feature--list__item {
    display: flex;
    justify-content: space-around;
    margin-top: 80px;
}

.feature--list__txt {
    padding-top: 16px;
    width: 380px;
}

.feature--list__txt h3 span {
    font-size: 16px;
}

.feature--list__txt h3 {
    margin-bottom: 16px;
}

.feature--list__img {
    height: 320px;
    width: 400px;
}

.feature--list__img img {
    border-radius: 24px;
    display: block;
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.slider-for {
    margin-bottom: 24px;
}

@media screen and (max-width: 840px) {
    .feature--list__img,
    .feature--list__txt {
        width: 85vw;
    }
    .feature--list__item {
        flex-direction: column;
    }
    .feature--list__img img {
        border-radius: 4vw;
    }
    .feature__wrapper--top {
        top: 30vw;
    }
    .feature__wrapper--top::before {
        width: 50%;
        height: 70%;
        top: -42%;
    }
    .feature__wrapper--top::after {
        top: -28%;
    }
    .feature__wrapper--middle {
        height: 630vw;
        top: 70vw;
    }
    .feature__wrapper--bottom {
        top: 700vw;
    }
    .feature--list__item-sp {
        flex-direction: column-reverse;
    }
    .feature {
        padding-bottom: 20vw;
    }
}


/*********************

description

*********************/

.description {
    position: relative;
    padding-bottom: 80px;
}

.description__img {
    height: 560px;
    margin-bottom: 80px;
    width: 100%;
}

.description__img img {
    display: block;
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.description__txt--unit {
    background-color: #F2F2F2;
    border-radius: 8px;
    padding: 40px;
    margin: 24px 0;
}

.description__txt--unit ul li {
    padding-bottom: 16px;
    letter-spacing: .1em;
}

.description__txt--unit ul li:last-child {
    padding-bottom: 0;
}

.description__txt--box {
    margin: 40px 0;
}

.description__txt--box p {
    margin-bottom: 16px;
}

.description__txt--box p.right {
    text-align: right;
}

.description__txt--title h4 {
    background-color: #F2F2F2;
    border-radius: 8px;
    margin-bottom: 24px;
    padding: 16px 24px;
}

@media screen and (max-width: 840px) {
    .description__img {
        margin-bottom: 10vw;
        height: 80vw;
    }
    .description__txt--box {
        margin: 4.8vw 0 2.1vw 0;
    }
    .description__txt--unit {
        padding: 4.8vw;
    }
    .description {
        padding-bottom: 10vw;
    }
}


/*********************

example

*********************/

.example {
    padding-bottom: 240px;
}

.example__wrapper {
    position: relative;
    margin-top: 40px;
}

.example__wrapper--bottom {
    position: absolute;
    height: 140px;
    width: 100%;
    background: #F0EAD3;
    top: 2250px;
    z-index: -1;
}

.example__wrapper--bottom::before,
.example__wrapper--bottom::after {
    content: "";
    display: block;
    position: absolute;
    border-radius: 100% 50%;
}

.example__wrapper--bottom::before {
    width: 54%;
    height: 100%;
    background-color: #ffffff;
    right: 0;
    top: 60%;
}

.example__wrapper--bottom::after {
    width: 55%;
    height: 100%;
    background-color: #F0EAD3;
    left: 0;
    top: 30%;
}

.example__wrapper--top {
    position: absolute;
    height: 160px;
    width: 100%;
    background: #F0EAD3;
    top: 90px;
    z-index: -1;
}

.example__wrapper--top::before,
.example__wrapper--top::after {
    content: "";
    display: block;
    position: absolute;
    border-radius: 100% 50%;
}

.example__wrapper--top::before {
    width: 50%;
    height: 100%;
    background-color: #ffffff;
    left: 0;
    top: -70%;
}

.example__wrapper--top::after {
    width: 60%;
    height: 100%;
    background-color: #F0EAD3;
    right: 0;
    top: -35%;
}

.example__wrapper--middle {
    background-color: #F0EAD3;
    position: absolute;
    top: 250px;
    width: 100%;
    height: 2000px;
    z-index: -1;
}

.example__list {
    padding-top: 220px;
}

.example__box {
    display: flex;
    justify-content: space-between;
    margin-bottom: 120px;
}

.example__box--img {
    width: 380px;
}

.example__box--img img {
    width: 100%;
}

.example__box--txt {
    position: relative;
    width: 480px;
}

.example__box--txt-num {
    position: absolute;
    top: -60px;
    left: 0;
}

.example__box--txt-num .exampleTitleImg {
    display: block;
    width: 140px;
}

.example__box--txt {
    background-color: #ffffff;
    padding: 40px;
}

.example__box--txt dl {
    display: flex;
    letter-spacing: .10em;
    padding: 16px 0;
    border-top: 1px solid #C7C7C7;
}

.example__box--txt dl:last-child {
    border-bottom: 1px solid #C7C7C7;
}

.example__box--txt dl dt {
    font-weight: bold;
    width: calc(100%/4);
}

.example__box--txt dl dd span {
    font-size: 14px;
}

.example__box--txt h3 {
    margin-top: 24px;
    margin-bottom: 16px;
}

.example__box--item h5 {
    margin-bottom: 16px;
    margin-top: 40px;
}

.example__box--item h5 span {
    background-color: #F2F2F2;
    border-radius: 20px;
    padding: 8px 32px;
    font-size: 16px;
}

@media screen and (max-width: 840px) {
    .example {
        padding-bottom: 20vw;
    }
    .example__wrapper {
        margin-top: 0;
    }
    .example__box {
        flex-direction: column;
    }
    .example__box--txt {
        padding: 4.8vw 3.2vw;
        width: 74vw;
        margin-top: 20vw;
    }
    .example__box--img {
        width: 80vw;
    }
    .example__wrapper--top::before {
        width: 50%;
        height: 50%;
        top: -30%;
    }
    .example__wrapper--top::after {
        width: 55%;
        height: 55%;
        background-color: #F0EAD3;
        right: 0;
        top: -23%;
    }
    .example__list {
        padding-top: 20vw;
    }
    .example__wrapper--bottom {
        top: 880vw;
    }
    .example__wrapper--middle {
        height: 820vw;
    }
}


/*********************

faq

*********************/

.faq__toggle {
    display: none;
}

.faq__label {
    padding: 24px 40px;
    display: block;
    color: #333;
    background: #F7F7F7;
    border-radius: 8px;
    font-weight: 500;
}

.faq__label::before {
    content: "";
    border-top: 10px solid #B6A97C;
    border-right: 10px solid transparent;
    border-left: 10px solid transparent;
    -webkit-transform: rotate(45deg);
    position: absolute;
    top: calc( 50% - 3px);
    right: 40px;
    transform: rotate(0deg);
}

.faq__label,
.faq__content {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
    transition: all 0.3s;
}

.faq__content {
    height: 0;
    margin-bottom: 10px;
    padding: 0 20px;
    overflow: hidden;
    background-color: #F7F7F7;
    border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px;
}

.faq__content p a {
    color: #007ea8;
    font-size: 16px;
    font-weight: 500;
}

.faq__content p span {
    background-color: #DBD4BB;
}

.faq__toggle:checked+.faq__label+.faq__content {
    height: auto;
    padding: 0 40px 24px 40px;
    transition: all .3s;
}

.faq__toggle:checked+.faq__label {
    border-bottom-right-radius: 0px;
    border-bottom-left-radius: 0px;
}

.faq__toggle:checked+.faq__label::before {
    transform: rotate(180deg) !important;
}

.faq__box--item {
    margin-top: 32px;
}

.faq__box {
    margin-top: 40px;
}

.faq__content--border {
    border-top: #707070 dashed 1px;
    height: 1px;
    width: 100%;
    margin-bottom: 24px;
}

@media screen and (max-width: 840px) {
    .faq__label {
        padding: 4.8vw 7.8vw 4.8vw 4.8vw;
    }
    .faq__label::before {
        right: 3%;
    }
    .faq__toggle:checked+.faq__label+.faq__content {
        padding: 0 4.8vw 4.8vw 4.8vw;
    }
}


/*********************

contact

*********************/

.contact {
    padding-top: 120px;
}

.contact__title {
    text-align: center;
}

.contact__box {
    margin: 0 auto;
    padding: 80px 0;
    width: 640px;
}

.contact-box {
    margin-bottom: 40px;
}

.contact-box p {
    font-weight: bold;
    line-height: 14px;
}

.contact-box p span.label {
    background-color: #DBD4BB;
    color: #ffffff;
    font-weight: bold;
    padding: 2px 4px;
    margin-left: 16px;
    font-size: 12px;
}

.contact-box p span input.wpcf7-form-control,
.contact-box p span select.wpcf7-select {
    width: 100%;
    background-color: #F7F7F7;
    border: none;
    font-size: 16px;
    padding: 16px 8px;
    border-radius: 4px;
}

.contact-box p span select.wpcf7-select {
    width: 102%;
}

.contact-box p input.wpcf7-submit {
    background-color: #333;
    border: none;
    border-radius: 30px;
    color: #fff;
    display: block;
    font-weight: bold;
    font-size: 16px;
    letter-spacing: .2em;
    margin: 40px auto 0 auto;
    padding: 16px 0;
    width: 320px;
}

.wpcf7-form-control-wrap {
    text-align: center;
    display: block;
}

.wpcf7-list-item-label {
    font-weight: 500;
}

.contact-box--explain {
    padding: 24px 0;
}

.contact-box--explain p {
    font-size: 14px;
}

.contact-box--explain p a {
    color: #007ea8;
    text-decoration: underline;
}

@media screen and (max-width: 840px) {
    .contact__box {
        width: 78vw;
    }
    .contact {
        padding-top: 20vw;
    }
    .contact__title h2 {
        font-size: 6.0vw;
    }
    .contact__box {
        padding: 10vw 0;
    }
    .contact-box p {
        line-height: 28px;
    }
    .contact-box p span input.wpcf7-form-control,
    .contact-box p span select.wpcf7-select {
        width: 70vw;
    }
}


/*********************

conact_banner

*********************/

.contact__banner {
    display: flex;
    margin-bottom: 120px;
}

.contact__banner--box {
    position: relative;
    height: 300px;
    width: 50%;
}

.contact__banner--box-request {
    background: url(./assets/images/ref-contact01.png) no-repeat;
    background-size: 100%;
}

.contact__banner--box-consultation {
    background: url(./assets/images/ref-contact02.png) no-repeat;
    background-size: 100%;
}

.contact__banner--item {
    background-color: rgb(255, 255, 255, .7);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    padding: 32px;
    position: absolute;
    width: calc(100%/2);
}

.contact__banner--item h3 {
    position: relative;
    text-align: center;
    margin-bottom: 24px;
    letter-spacing: .15em;
}

.contact__banner--item a.request {
    background-color: #333333;
    box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.35);
    border-radius: 30px;
    color: #fff;
    display: flex;
    justify-content: center;
    font-weight: bold;
    padding: 14px 0;
    position: relative;
    margin: 0 auto;
}

.contact__banner--item a.request span.circle {
    top: 6px;
}

.contact__banner--item a.consultation {
    background-color: #B6A97C;
    box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.35);
    border-radius: 30px;
    color: #fff;
    display: flex;
    justify-content: center;
    font-weight: bold;
    padding: 14px 0;
    position: relative;
    margin: 0 auto;
}

.contact__banner--item a.consultation span.circle {
    top: 6px;
}

.contact__banner--item h4 {
    position: relative;
}

.contact__banner--item h3 span.left {
    background-color: #333333;
    border-radius: 8px;
    display: block;
    transform: rotate(-40deg);
    height: 32px;
    margin: 0 16px 0 4px;
    width: 3px;
    position: absolute;
    top: 25px;
    left: 0;
    bottom: 0;
}

.contact__banner--item h3 span.right {
    background-color: #333333;
    border-radius: 8px;
    display: block;
    transform: rotate(40deg);
    height: 32px;
    margin: 0 4px 0 12px;
    width: 3px;
    position: absolute;
    top: 25px;
    right: 0;
    bottom: 0;
}

@media screen and (max-width: 840px) {
    .contact__banner {
        flex-direction: column;
        margin-bottom: 20vw;
    }
    .contact__banner--box {
        height: 80vw;
        width: 100%;
    }
    .contact__banner--box-request,
    .contact__banner--box-consultation {
        background-size: auto;
    }
    .contact__banner--item {
        width: calc(100%/1.5);
    }
    .contact__banner--item h3 {
        font-size: 4.8vw;
    }
}


/*********************

footer

*********************/

footer {
    padding-bottom: 24px;
}

.footer__content {
    border-top: 1px solid #DDDDDD;
    padding: 40px 0;
}

.footerImg {
    display: block;
    margin: 40px auto;
    width: 120px;
}

footer p {
    text-align: center;
}

@media screen and (max-width: 840px) {
    .footer__content {
        padding: 10vw 4.8vw;
    }
    .contact__form {
        margin-top: 18vw;
        padding-top: 30vw;
    }
}


/*********************

contact-show

*********************/

.contactshow {
    display: none;
    bottom: 5%;
    opacity: 0;
    position: fixed;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.contact-show__list ul {
    display: flex;
}

.contact-show__list ul li.requestBtn a {
    background-color: #333333;
    box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.35);
    border-radius: 30px;
    color: #fff;
    display: flex;
    justify-content: center;
    padding: 8px 0;
    position: relative;
    width: 320px;
    margin-right: 10px;
}

.contact-show__list ul li.consultationBtn a {
    background-color: #B6A97C;
    box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.35);
    border-radius: 30px;
    color: #fff;
    display: flex;
    justify-content: center;
    padding: 8px 0;
    position: relative;
    width: 320px;
    margin-left: 10px;
}

.contact-show__list ul li p {
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    line-height: 38px;
    letter-spacing: .2em;
}

span.circle {
    align-items: center;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    font-size: 24px;
    margin-left: 8px;
    justify-content: center;
    position: absolute;
    left: -2px;
    top: 4px;
    height: 60px;
    width: 60px;
}

.contact-show__list ul li.requestBtn a svg {
    color: #333333;
}

.contact-show__list ul li.consultationBtn a svg {
    color: #B6A97C;
}

a.topBtn {
    display: block;
    background: rgb(51, 51, 51);
    width: 280px;
    border-radius: 40px;
    padding: 14px 0;
    text-align: center;
    color: #fff;
    letter-spacing: .1em;
    font-size: 16px;
    font-weight: bold;
    margin: 24px auto 0 auto;
}

a.topBtn:hover {
    background-color: rgba(51, 51, 51, .8);
}