@charset "UTF-8";

.footer__copyright {
    font-family: futura-pt, sans-serif;
    font-weight: 300;
    font-style: normal;
}

.contact__flexbox>.flexbox__item .en,
.contact__heading,
.visitres__intro figcaption .en,
.woodandtech__heading,
.planbox__order,
.planbox__tag,
.step>.container .flex-box .content-order,
.menu-item .en {
    font-family: futura-pt, sans-serif;
    font-weight: 400;
    font-style: normal;
}

.contact__sub-heading,
.confirmof .flexbox__item>figcaption {
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
}

.footer__tel,
.footer__flexbox p,
.visitres__box .visitres__more,
.visitres__box .text-supp,
.woodandtech .flexbox__item .text-mute,
.woodandtech .flexbox__item .text-lead,
.woodandtech .flexbox__item .figure>figcaption,
.confirmof .flexbox__item>figcaption span,
.wallcolor .flexbox__item>figcaption,
.planbox__desc,
.perfect-exterior__flexbox>.flexbox-item .figcaption,
.perfect-exterior__desc,
.stepbox .position .flexbox .text-lead,
.stepbox .totaly-produced__desc,
.step>.container .flex-box .content-nav,
.menu-item .jp {
    font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-weight: 500;
}

.visitres__title {
    font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-weight: 700;
}

.step__title {
    font-family: "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

.contact__flexbox>.flexbox__item .jp,
.visitres__intro figcaption .jp,
.woodandtech__lead,
.planbox__title,
.perfect-exterior__title,
.stepbox .totaly-produced__title {
    font-family: "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-weight: 500;
}

/* ----------- 
Nav
 --------------*/
.nav {
    width: 100%;
    height: 100px;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    border-bottom: 1px solid transparent;
    transition: background-color 0.3s ease;
}

.nav-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    padding-left: 35px;
    padding-right: 10px;
}

.nav-brand {
    width: 21.9375vw;
}

.nav .navbar {
    margin-left: auto;
}

.nav-toggler {
    width: 20px;
    height: 20px;
    position: fixed;
    z-index: 1040;
    top: 15px;
    right: 15px;
    display: none;
}

.nav-toggler>span {
    width: 20px;
    height: 1px;
    border-radius: 1px;
    background-color: #ffffff;
    position: absolute;
    left: 0;
    transition: transform 0.3s ease;
}

.nav-toggler>span:nth-child(1) {
    top: calc(50% - 6px);
}

.nav-toggler>span:nth-child(2) {
    top: calc(50% - 1px);
}

.nav-toggler>span:nth-child(3) {
    top: calc(50% + 4px);
}

.nav-toggler.is-open>span {
    background-color: #ffffff;
}

.nav-toggler.is-open>span:nth-child(1) {
    top: 50%;
    transform: translate(0, -50%) rotate(135deg);
}

.nav-toggler.is-open>span:nth-child(2) {
    opacity: 0;
}

.nav-toggler.is-open>span:nth-child(3) {
    top: 50%;
    transform: translate(0, -50%) rotate(-135deg);
}

.nav.is-active {
    background-color: rgba(51, 51, 51, 0.8);
    border-bottom: 1px solid #ffffff;
}

.footer_p
{
    text-align: center;
    padding-top: 2em;
}

@media only screen and (max-width: 768px) {
    .nav {
        height: 50px;
    }

    .nav-container {
        padding-left: 8px;
    }

    .nav-brand {
        width: 156px;
    }

    .nav .navbar {
        margin-left: 0;
    }

    .nav-toggler {
        display: block;
    }

    .nav.is-open .navbar {
        visibility: visible;
        opacity: 1;
    }
}

/* ----------- 
Navbar
 --------------*/
.navbar-mask {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    display: none;
    opacity: 1;
    background-color: #333333;
}

@media only screen and (max-width: 768px) {
    .navbar {
        position: fixed;
        top: 50px;
        left: 0;
        width: 100%;
        height: calc(100% - 50px);
        visibility: hidden;
        opacity: 0;
        transition: visibility 0.3s ease, opacity 0.2s linear 0.1s;
    }

    .navbar-mask {
        display: block;
    }

    .navbar-menu {
        width: 100%;
        height: 100%;
    }
}

/* ----------- 
Menu
 --------------*/
.menu {
    display: flex;
    align-items: center;
}

.menu-item .nav-link {
    min-width: 127px;
    display: block;
    padding-left: 20px;
    padding-right: 20px;
    color: #ffffff;
    text-align: center;
}

.menu-item .nav-link span {
    display: block;
}

.menu-item .en {
    font-size: 1.1rem;
    line-height: 1.18;
    letter-spacing: 0.04em;
}

.menu-item .jp {
    font-size: 1.6rem;
    line-height: 2;
}

.menu-item+.menu-item {
    position: relative;
}

.menu-item+.menu-item::before {
    content: "";
    width: 1px;
    height: 60px;
    position: absolute;
    top: -3px;
    left: 0;
    opacity: 0.5;
    background-color: #ffffff;
}

@media only screen and (max-width: 768px) {
    .menu {
        height: 100%;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .menu-item .nav-link {
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .menu-item+.menu-item {
        position: relative;
    }

    .menu-item+.menu-item::before {
        width: 100%;
        height: 1px;
        top: -3px;
    }
}

/* -----------
MV
--------------*/
.mv-container {
    position: relative;
}

.mv-title {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    right: 0;
    text-align: center;
    transform: translate3d(0, -50%, 0);
    color: #ffffff;
    line-height: 1;
    letter-spacing: 0.8em;
    font-weight: 500;
}

@media only screen and (max-width: 768px) {
    .mv-title {
        font-size: 2.5rem;
    }
}

/* -----------
Solution
--------------*/
.solution {
    padding-top: 100px;
}

.solution>.container {
    text-align: center;
}

.solution__title {
    margin-top: 65px;
    margin-bottom: 45px;
    font-weight: 600;
}

.solution__flexbox01 {
    margin-top: 115px;
}

.solution__flexbox02 {
    margin-top: 80px;
}

.solution__flexbox03 {
    margin-top: 80px;
}

.solution .flex-box {
    width: 100%;
    max-width: 84.375vw;
    justify-content: space-between;
}

.solution .flex-box .flex-item {
    position: relative;
}

.solution .flex-box .flex-item .slick-dotted.slick-slider {
    margin-bottom: 0;
}

.solution .flex-box>.r {
    width: calc(100% - 450px);
}

.solution .flex-box>.l {
    width: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.solution .flex-box .title-section {
    margin-bottom: 20px;
}

.solution .flex-box.reverse {
    margin-left: auto;
}

.solution .flex-box.reverse .slick-button .slick-dots {
    text-align: right;
}

.solution .slick-button {
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
}

.solution .slick-button .slick-dots {
    position: static;
    bottom: 0;
    left: 0;
    text-align: left;
}

.solution .slick-button .slick-dots li {
    width: 12px;
    height: 12px;
    border-radius: 99px;
    border: 1px solid #596166;
}

.solution .slick-button .slick-dots li button {
    display: none;
}

.solution .slick-button .slick-dots li.slick-active {
    background-color: #596166;
}

@media only screen and (max-width: 768px) {
    .solution {
        padding-top: 65px;
    }

    .solution .heading-img {
        height: 55px;
    }

    .solution__title {
        margin-top: 35px;
        margin-bottom: 25px;
    }

    .solution__flexbox01 {
        margin-top: 60px;
    }

    .solution__flexbox02 {
        margin-top: 50px;
    }

    .solution__flexbox03 {
        margin-top: 50px;
    }

    .solution .flex-box {
        max-width: calc(100% - 25px);
        display: block;
    }

    .solution .flex-box .flex-item {
        width: 100%;
    }

    .solution .flex-box .flex-item .slick-dotted.slick-slider {
        margin-bottom: 0;
    }

    .solution .flex-box>.r,
    .solution .flex-box>.l {
        width: 100%;
    }

    .solution .flex-box>.l {
        display: block;
        margin-top: 10px;
        padding-left: 25px;
    }

    .solution .flex-box .title-section {
        margin-bottom: 4px;
    }

    .solution .flex-box.reverse>.l {
        padding-left: 0;
        padding-right: 35px;
    }

    .solution .flex-box.reverse .slick-button .slick-dots {
        text-align: left;
    }

    .solution .slick-button {
        width: 100%;
        margin-top: 7px;
        position: static;
    }

    .solution .slick-button .slick-dots {
        text-align: right;
    }

    .solution .slick-button .slick-dots li {
        width: 6px;
        height: 6px;
    }
}

/* -----------
Step
--------------*/
.step {
    position: relative;
    margin-top: 210px;
}

.step::before {
    content: "";
    width: 100%;
    height: 360px;
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    background-color: #f5f7f8;
}

.step .heading-img {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
}

.step__title {
    text-align: center;
    font-size: 2.4rem;
}

.step__title>span {
    font-size: 4.4rem;
}

.step>.container {
    padding-top: 110px;
    padding-bottom: 140px;
}

.step>.container .flex-box {
    justify-content: space-between;
    margin-top: 85px;
}

.step>.container .flex-box>.flex-item {
    width: calc(25% - 44px);
}

.step>.container .flex-box .content {
    text-align: center;
}

.step>.container .flex-box .content-order {
    text-transform: uppercase;
    font-size: 1.6rem;
    line-height: 2;
    vertical-align: baseline;
    margin-top: 15px;
    position: relative;
}

.step>.container .flex-box .content-order::after {
    content: "";
    width: 34px;
    height: 1px;
    background-color: #cad3d8;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 0);
}

.step>.container .flex-box .content-order>span {
    font-size: 2.5rem;
    margin-left: 4px;
}

.step>.container .flex-box .content-title {
    font-weight: 600;
    line-height: 1.142;
    font-size: 2.8rem;
    margin-top: 30px;
    margin-bottom: 35px;
}

.step>.container .flex-box .content-nav {
    padding: 0 2px 10px 2px;
    font-size: 1.4rem;
    line-height: 2.28;
    letter-spacing: 0.04em;
    border-bottom: 1px solid #596166;
}

@media only screen and (max-width: 768px) {
    .step {
        margin-top: 100px;
    }

    .step::before {
        height: 180px;
    }

    .step .heading-img {
        height: 70px;
    }

    .step__title {
        font-size: 2rem;
    }

    .step__title>span {
        font-size: 3.5rem;
    }

    .step>.container {
        padding: 55px 50px 60px 50px;
    }

    .step>.container .flex-box {
        display: block;
        margin-top: 25px;
    }

    .step>.container .flex-box>.flex-item {
        width: 100%;
        margin-top: 20px;
        display: flex;
    }

    .step>.container .flex-box>.flex-item .figure {
        width: 100px;
    }

    .step>.container .flex-box .content {
        width: calc(100% - 100px);
        text-align: left;
        padding-left: 20px;
        display: flex;
        flex-direction: column;
    }

    .step>.container .flex-box .content-order {
        font-size: 1.1rem;
        line-height: 1.45;
        margin-top: 0;
    }

    .step>.container .flex-box .content-order::after {
        width: 16px;
        left: 0;
        transform: translate(0%, 0);
    }

    .step>.container .flex-box .content-order>span {
        font-size: 1.4rem;
    }

    .step>.container .flex-box .content-title {
        line-height: 1.142;
        font-size: 1.7rem;
        margin-top: 15px;
        margin-bottom: 5px;
    }

    .step>.container .flex-box .content-nav {
        margin-top: auto;
        margin-left: auto;
        padding: 0 2px 6px 2px;
        font-size: 1.2rem;
        line-height: 1.33;
    }
}

/* -----------
Stepbox
--------------*/
.stepbox {
    padding-top: 130px;
    padding-bottom: 110px;
    position: relative;
}

.stepbox.step01::after {
    content: "";
    width: calc(100% - 140px);
    height: 100%;
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    background-color: #f5f7f8;
}

.stepbox.step03::after {
    content: "";
    width: calc(100% - 140px);
    height: 100%;
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    background-color: #f5f7f8;
}

.stepbox-desc {
    font-size: 2rem;
    text-align: center;
    margin-top: 35px;
}

.stepbox .totaly-produced {
    margin-top: 75px;
}

.stepbox .totaly-produced .flexbox {
    align-items: center;
    justify-content: space-between;
}

.stepbox .totaly-produced .flexbox>.l {
    width: calc(100% - 520px);
}

.stepbox .totaly-produced .flexbox>.r {
    width: 480px;
}

.stepbox .totaly-produced__title {
    font-size: 3rem;
    line-height: 1.55;
    letter-spacing: 0.14em;
}

.stepbox .totaly-produced__desc {
    line-height: 1.875;
    margin-top: 32px;
}

.stepbox .position {
    margin-top: 120px;
}

.stepbox .position .flexbox {
    width: 850px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    justify-content: space-between;
}

.stepbox .position .flexbox-item {
    width: calc(33% - 54px);
}

.stepbox .position .tag {
    width: calc(100% - 15px);
    height: 50px;
    display: flex;
    align-items: center;
    border: 1px solid #979da0;
    border-right: 0;
    font-size: 2rem;
    line-height: 1.6;
    padding-left: 15px;
    margin-bottom: 30px;
    position: relative;
}

.stepbox .position .tag::before,
.stepbox .position .tag::after {
    content: "";
}

.stepbox .position .tag::before {
    width: 11px;
    height: 3px;
    background-color: #f5f7f8;
    position: absolute;
    top: -2px;
    left: 16px;
}

.stepbox .position .tag::after {
    width: 26px;
    height: 26px;
    border-top: 1px solid #656c71;
    border-right: 1px solid #656c71;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(13px, -50%) rotate(45deg) skew(20deg, 20deg);
}

.stepbox .position .tag>span {
    font-size: 2.7rem;
    line-height: 1.185;
    margin-right: 10px;
}

.stepbox .nextblock {
    margin-top: 60px;
    margin-bottom: 55px;
}

@media only screen and (max-width: 768px) {
    .stepbox {
        padding-top: 60px;
        padding-bottom: 50px;
    }

    .stepbox.step01 {
        background-color: #f5f7f8;
    }

    .stepbox.step01::after {
        display: none;
    }

    .stepbox.step03::after {
        width: 100%;
    }

    .stepbox-desc {
        font-size: 1.4rem;
        margin-top: 25px;
    }

    .stepbox .totaly-produced {
        margin-top: 40px;
    }

    .stepbox .totaly-produced .flexbox {
        display: block;
        align-items: center;
        justify-content: space-between;
    }

    .stepbox .totaly-produced .flexbox>.r,
    .stepbox .totaly-produced .flexbox>.l {
        width: 100%;
    }

    .stepbox .totaly-produced .flexbox>.r {
        margin-top: 10px;
    }

    .stepbox .totaly-produced__title {
        font-size: 2rem;
    }

    .stepbox .totaly-produced__desc {
        margin-top: 18px;
    }

    .stepbox .position {
        margin-top: 40px;
    }

    .stepbox .position .flexbox {
        width: 300px;
        display: block;
    }

    .stepbox .position .flexbox-item {
        width: 100%;
        position: relative;
        padding: 25px 25px 15px 25px;
        border: 1px solid #596166;
        border-bottom: 0;
        margin-bottom: 50px;
    }

    .stepbox .position .flexbox-item::after {
        content: "";
        width: 119px;
        padding-top: 119px;
        border-top: 2px solid #596166;
        border-right: 2px solid #596166;
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translate(-50%, 50%) rotate(135deg) skew(38deg, 38deg);
    }

    .stepbox .position .flexbox-item::before {
        content: "";
        width: 3px;
        height: 10px;
        background-color: #f5f7f8;
        position: absolute;
        top: 10px;
        right: -1px;
    }

    .stepbox .position .tag {
        width: auto;
        height: 10px;
        border: 0;
        font-size: 1.4rem;
        padding: 0 10px;
        margin-bottom: 0;
        position: absolute;
        background-color: #f5f7f8;
        top: 0;
        left: 20px;
        transform: translate(0, -50%);
    }

    .stepbox .position .tag::before,
    .stepbox .position .tag::after {
        display: none;
    }

    .stepbox .position .tag>span {
        font-size: 1.5rem;
        margin-right: 10px;
    }

    .stepbox .position .text-lead {
        font-size: 1.1rem;
        line-height: 1.9;
        letter-spacing: 0;
    }
}

/* -----------
Perfect-exterior
--------------*/
.perfect-exterior {
    text-align: center;
}

.perfect-exterior__title {
    font-size: 3.6rem;
    line-height: 0.88;
    letter-spacing: 0.2em;
}

.perfect-exterior__desc {
    font-size: 1.4rem;
    line-height: 1.875;
    margin-top: 22px;
}

.perfect-exterior__flexbox {
    width: 855px;
    max-width: 100%;
    margin-top: 45px;
    margin-left: auto;
    margin-right: auto;
    justify-content: space-between;
}

.perfect-exterior__flexbox>.flexbox-item {
    width: calc(33.33% - 40px);
}

.perfect-exterior__flexbox>.flexbox-item>img {
    border-radius: 999px;
}

.perfect-exterior__flexbox>.flexbox-item .figcaption {
    margin-top: 26px;
}

@media only screen and (max-width: 768px) {
    .perfect-exterior {
        text-align: center;
    }

    .perfect-exterior__title {
        font-size: 2rem;
        line-height: 1.5;
    }

    .perfect-exterior__desc {
        font-size: 1.2rem;
        margin-top: 15px;
        line-height: 1.83;
    }

    .perfect-exterior__flexbox {
        width: 855px;
        margin-top: 25px;
    }

    .perfect-exterior__flexbox>.flexbox-item {
        width: calc(33.33% - 14px);
    }

    .perfect-exterior__flexbox>.flexbox-item .figcaption {
        font-size: 1.1rem;
        margin-top: 26px;
    }
}

/* -----------
Planbox
--------------*/
.planbox {
    margin-top: 55px;
}

.planbox .flexbox {
    align-items: center;
}

.planbox .flexbox__item {
    width: 50%;
}

.planbox .flexbox>.l {
    padding-left: 100px;
    padding-right: 100px;
}

.planbox__tag {
    font-size: 1.4rem;
    line-height: 1.285;
    text-transform: uppercase;
    display: block;
}

.planbox__order {
    font-size: 2.6rem;
    line-height: 1.23;
    text-indent: 3px;
    display: inline-block;
    position: relative;
}

.planbox__order::after {
    content: "";
    width: 1px;
    height: 90%;
    background-color: #d0d8dd;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(33px, -50%) rotate(45deg);
}

.planbox__title {
    font-size: 2.6rem;
    line-height: 1.23;
    letter-spacing: 0.1em;
    margin-top: 20px;
    margin-bottom: 30px;
}

@media only screen and (max-width: 768px) {
    .planbox {
        margin-top: 0;
    }

    .planbox .flexbox {
        flex-direction: column-reverse;
        margin-top: 35px;
    }

    .planbox .flexbox__item {
        width: 100%;
        position: relative;
    }

    .planbox .flexbox>.l {
        padding: 0;
        margin-top: 35px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }

    .planbox__tag {
        font-size: 1.4rem;
        line-height: 1.285;
        position: absolute;
        left: 0;
        top: -14px;
    }

    .planbox__order {
        font-size: 1.7rem;
        padding-right: 30px;
    }

    .planbox__order::after {
        content: "";
        transform: translate(-13px, -50%) rotate(45deg);
    }

    .planbox__title {
        font-size: 1.8rem;
        margin-bottom: 0;
        margin-top: 0;
    }

    .planbox__desc {
        margin-top: 20px;
        font-size: 1.2rem;
    }
}

/* -----------
Wallcolor
--------------*/
.wallcolor .flexbox {
    width: 830px;
    max-width: 100%;
    margin-top: 74px;
    margin-left: auto;
    margin-right: auto;
    flex-wrap: wrap;
    justify-content: space-between;
}

.wallcolor .flexbox__item {
    width: calc(50% - 15px);
    margin-bottom: 25px;
}

.wallcolor .flexbox__item>figcaption {
    font-size: 1.4rem;
    line-height: 2.285;
    text-align: right;
}

@media only screen and (max-width: 768px) {
    .wallcolor .flexbox {
        margin-top: 30px;
    }

    .wallcolor .flexbox__item {
        width: calc(50% - 7px);
        margin-bottom: 20px;
    }

    .wallcolor .flexbox__item>figcaption {
        font-size: 1.2rem;
    }
}

/* -----------
Comfirmof
--------------*/
.confirmof .flexbox {
    margin-top: 74px;
    justify-content: space-between;
}

.confirmof .flexbox__item {
    width: calc(20% - 2px);
}

.confirmof .flexbox__item>figcaption {
    font-size: 2.6rem;
    line-height: 1.23;
    text-align: center;
    margin-top: 23px;
}

.confirmof .flexbox__item>figcaption span {
    font-size: 1.4rem;
    display: block;
    margin-top: 10px;
}

@media only screen and (max-width: 768px) {
    .confirmof .flexbox {
        margin-top: 0;
        justify-content: center;
        flex-wrap: wrap;
    }

    .confirmof .flexbox__item {
        width: calc(33.33% - 2px);
        margin-top: 30px;
        margin-left: 0.5px;
        margin-right: 0.5px;
    }

    .confirmof .flexbox__item>figcaption {
        font-size: 1.8rem;
        margin-top: 16px;
    }

    .confirmof .flexbox__item>figcaption span {
        font-size: 1.1rem;
        margin-top: 7px;
    }
}

/* -----------
Woodandtech
--------------*/
.woodandtech {
    padding-top: 120px;
}

.woodandtech__heading {
    font-size: 2.4rem;
    line-height: 1.33;
    text-align: center;
}

.woodandtech__lead {
    font-size: 3.6rem;
    line-height: 0.88;
    text-align: center;
    margin-top: 20px;
}

.woodandtech .flexbox {
    flex-wrap: wrap;
    margin-top: 20px;
}

.woodandtech .flexbox__item {
    width: 33.33%;
    padding-left: 35px;
    padding-right: 35px;
    margin-top: 60px;
}

.woodandtech .flexbox__item .figure {
    text-align: center;
}

.woodandtech .flexbox__item .figure>img {
    width: 155px;
}

.woodandtech .flexbox__item .figure>figcaption {
    margin-top: 25px;
    font-size: 2rem;
}

.woodandtech .flexbox__item .text-lead {
    margin-top: 25px;
}

.woodandtech .flexbox__item .text-mute {
    display: inline-block;
    margin-top: 30px;
}

@media only screen and (max-width: 768px) {
    .woodandtech {
        padding-top: 65px;
    }

    .woodandtech__heading {
        font-size: 1.5rem;
    }

    .woodandtech__lead {
        font-size: 2.3rem;
        line-height: 1.43;
    }

    .woodandtech .flexbox {
        flex-wrap: wrap;
        margin-top: 20px;
    }

    .woodandtech .flexbox__item {
        width: 100%;
        padding-left: 0;
        padding-right: 0;
        margin-top: 30px;
    }

    .woodandtech .flexbox__item .figure {
        display: flex;
        align-items: center;
    }

    .woodandtech .flexbox__item .figure>img {
        width: 55px;
    }

    .woodandtech .flexbox__item .figure>figcaption {
        margin-top: 0;
        margin-left: 16px;
        font-size: 1.8rem;
    }

    .woodandtech .flexbox__item .text-lead {
        font-size: 1.1rem;
        margin-top: 15px;
    }

    .woodandtech .flexbox__item .text-mute {
        font-size: 1rem;
        margin-top: 15px;
    }
}

/* -----------
Visitres
--------------*/
.visitres {
    margin-top: 125px;
    padding-bottom: 100px;
    background-color: #f5f7f8;
}

.visitres__intro {
    width: 100%;
    position: relative;
}

.visitres__intro figcaption {
    position: absolute;
    top: 7.5vw;
    left: 50%;
    color: #ffffff;
    text-align: center;
    transform: translate(-50%, 0);
}

.visitres__intro figcaption span {
    display: block;
}

.visitres__intro figcaption .en {
    font-size: 2.4rem;
    line-height: 1.33;
}

.visitres__intro figcaption .jp {
    font-size: 4.6rem;
    line-height: 0.695;
    margin-top: 28px;
}

.visitres__box {
    background-color: #ffffff;
}

.visitres__box:first-child {
    transform: translateY(-120px);
}

.visitres__box>.flexbox__item {
    width: 50%;
    height: 340px;
    padding-top: 45px;
    padding-bottom: 60px;
}

.visitres__box .flexbox__wrap {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    padding-bottom: 30px;
    position: relative;
}

.visitres__box>.l {
    padding-left: 50px;
    padding-right: 40px;
}

.visitres__box>.r {
    position: relative;
}

.visitres__box>.r img {
    width: calc(100% + 50px);
    max-width: 38.5vw;
    position: absolute;
    bottom: 60px;
    left: 0;
    transform: translate(50px, 0);
}

.visitres__box .text-supp {
    line-height: 1.75;
}

.visitres__box .visitres__more {
    position: absolute;
    left: 0;
    bottom: 0;
    padding-bottom: 10px;
    margin-top: auto;
}

.visitres__box .visitres__more::after {
    content: "";
    width: 100%;
    height: 1px;
    background-color: #596166;
    position: absolute;
    bottom: 0;
    left: 0;
}

.visitres__box.reverse {
    flex-direction: row-reverse;
}

.visitres__box.reverse>.l {
    padding-left: 0;
}

.visitres__box.reverse>.r img {
    left: -50px;
    width: calc(100% + 50px);
    transform: translate(-50px, 0);
}

.visitres__title {
    font-size: 2.4rem;
    line-height: 1.33;
    vertical-align: baseline;
    padding-bottom: 25px;
    margin-bottom: 25px;
    position: relative;
}

.visitres__title::after {
    content: "";
    width: 40px;
    height: 3px;
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: #cad3d8;
}

.visitres__title .small {
    font-family: inherit;
    font-weight: 500;
    font-size: 1.4rem;
    line-height: 2.285;
}

@media only screen and (max-width: 768px) {
    .visitres {
        margin-top: 60px;
        padding-bottom: 50px;
    }

    .visitres__intro {
        height: 220px;
    }

    .visitres__intro img {
        height: 100%;
        object-fit: cover;
    }

    .visitres__intro figcaption {
        width: 100%;
        top: 60px;
        left: 50%;
    }

    .visitres__intro figcaption .en {
        font-size: 1.5rem;
        line-height: 1.06;
    }

    .visitres__intro figcaption .jp {
        font-size: 2.8rem;
        line-height: 1.17;
        margin-top: 16px;
    }

    .visitres__box {
        flex-direction: column-reverse;
        flex-wrap: wrap;
        padding: 25px;
    }

    .visitres__box:first-child {
        transform: translateY(-60px);
    }

    .visitres__box>.flexbox__item {
        width: 100%;
        height: 100%;
        padding: 0;
    }

    .visitres__box .flexbox__wrap {
        display: block;
        padding-bottom: 15px;
    }

    .visitres__box>.l {
        padding-left: 0;
        padding-right: 0;
    }

    .visitres__box>.r {
        position: relative;
    }

    .visitres__box>.r img {
        width: 100%;
        max-width: 100%;
        position: static;
        bottom: 0;
        transform: translate(0, 0);
    }

    .visitres__box .text-supp {
        line-height: 1.75;
    }

    .visitres__box .visitres__more {
        font-size: 1.2rem;
        position: relative;
        display: inline-block;
        padding-bottom: 6px;
        margin-top: 25px;
    }

    .visitres__box.reverse {
        margin-top: -35px;
        flex-direction: column-reverse;
    }

    .visitres__box.reverse>.l {
        padding-left: 0;
    }

    .visitres__box.reverse>.r img {
        width: 100%;
        left: 0;
        transform: translate(0, 0);
    }

    .visitres__title {
        font-size: 1.8rem;
        padding-bottom: 13px;
        margin-bottom: 25px;
        margin-top: 18px;
    }

    .visitres__title::after {
        content: "";
        width: 22px;
        height: 2px;
    }

    .visitres__title .small {
        font-size: 1.2rem;
        line-height: 1.33;
    }
}

/* -----------
Contact
--------------*/
.contact {
    padding-top: 80px;
    padding-bottom: 80px;
    position: relative;
}

.contact__decore {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
}

.contact__decore>img {
    height: 100%;
    object-fit: cover;
}

.contact>.container {
    background-color: #ffffff;
    padding-top: 70px;
    padding-bottom: 70px;
    text-align: center;
}

.contact__heading {
    font-size: 2.2rem;
    line-height: 1.45;
}

.contact__sub-heading {
    font-size: 4rem;
    line-height: 0.8;
    margin-top: 10px;
}

.contact__flexbox {
    width: 980px;
    max-width: 100%;
    margin-top: 50px;
    margin-left: auto;
    margin-right: auto;
    justify-content: space-between;
}

.contact__flexbox>.flexbox__item {
    width: calc(33.33% - 20px);
    height: 122px;
    display: flex;
    align-items: center;
    flex-direction: column;
    padding-top: 14px;
    border: 1px solid #e6eaed;
}

.contact__flexbox>.flexbox__item .en {
    font-size: 1.2rem;
    line-height: 2.667;
}

.contact__flexbox>.flexbox__item .jp {
    font-size: 2.4rem;
    line-height: 0.8;
}

.contact__flexbox>.flexbox__item .endline {
    width: 44px;
    height: 3px;
    margin-top: 20px;
    background-color: #cad3d8;
}

@media only screen and (max-width: 768px) {
    .contact {
        padding: 50px 25px;
        position: relative;
    }

    .contact__decore {
        width: 100%;
        height: 100%;
        position: absolute;
        z-index: -1;
        top: 0;
        left: 0;
    }

    .contact__decore>img {
        height: 100%;
        object-fit: cover;
    }

    .contact>.container {
        padding: 45px 30px;
    }

    .contact__heading {
        font-size: 1.5rem;
    }

    .contact__sub-heading {
        font-size: 2.3rem;
        line-height: 1.43;
    }

    .contact__flexbox {
        display: block;
        margin-top: 30px;
    }

    .contact__flexbox>.flexbox__item {
        width: 100%;
        height: 85px;
        padding-top: 18px;
        margin-top: 10px;
    }

    .contact__flexbox>.flexbox__item .en {
        font-size: 1.1rem;
        line-height: 1.45;
    }

    .contact__flexbox>.flexbox__item .jp {
        font-size: 1.8rem;
        margin-top: 5px;
    }

    .contact__flexbox>.flexbox__item .endline {
        width: 22px;
        height: 2px;
        margin-top: 12px;
    }
}

/* -----------
Footer
--------------*/
.footer {
    position: relative;
    background-color: #a0a2a4;
}

.footer .container {
    min-height: 300px;
    padding-top: 70px;
    padding-bottom: 35px;
    position: relative;
}

.footer__flexbox .flexbox__item {
    width: 50%;
}

.footer__flexbox>.l {
    padding-right: 35px;
}

.footer__flexbox>.r {
    padding-left: 45px;
}

.footer__flexbox p {
    color: #ffffff;
    font-size: 16px;
    line-height: 1.625;
}

.footer__logo {
    width: 289px;
    margin-left: auto;
}

.footer__tel {
    line-height: 1.625;
    color: #ffffff;
}

.footer__copyright {
    font-size: 1.3rem;
    position: absolute;
    bottom: 35px;
    left: 50%;
    transform: translate(-50%, 0);
    color: #ffffff;
}

@media only screen and (max-width: 768px) {
    .footer .container {
        min-height: 250px;
        padding-top: 50px;
    }

    .footer__flexbox {
        display: block;
    }

    .footer__flexbox .flexbox__item {
        width: 100%;
    }

    .footer__flexbox>.l {
        padding-right: 0;
    }

    .footer__flexbox>.r {
        padding-left: 0;
        text-align: center;
        margin-top: 30px;
    }

    .footer__flexbox p {
        color: #ffffff;
        font-size: 16px;
        line-height: 1.625;
    }

    .footer__logo {
        width: 240px;
        margin-left: auto;
        margin-right: auto;
    }

    .footer__tel {
        font-size: 1.2rem;
        line-height: 1.83;
    }

    .footer__copyright {
        font-size: 1rem;
        bottom: 15px;
    }
}
/* ---------------------------------
22/10/28　フローティングバナー設置
 -----------------------------------*/
.kosodate-fair {
    margin: 80px auto 0;
}

.kosodate-fair__link:hover {
    opacity: .75;
}

.kosodate-fair__img {
    width: 100%;
}

.fix-links {
	display: none;
}

@media only screen and (max-width: 768px) {
	.totop {
		bottom: 165px;
	}
	.kosodate-fair__img {
    width: 100%;
	}
	.fix-links {
		display: block;
		position: fixed;
		bottom: 0;
		width: 100%;
		background: #5c5c5c;
	}
	.fix-link__list {
		display: flex;
	}
	.fix-link__item {
		flex: calc(100% / 3);
	}
	.fix-link__link {
		display: block;
	}
  .fix-link__img { 
		display: block;
		width: 100%;
  }
	.fix-link__item + .fix-link__item {
		border-left: solid 1px #fff;
	}
}

@media only screen and (max-width: 480px) {
	.totop {
		bottom: 85px;
	}
}
