@charset "UTF-8";

/* mv
---------------------------------------------------*/
#mv {
    position: relative;
    width: 100%;
    background-color: var(--section-color);
    margin-bottom: 112px;
}
#mv .inner {
    position: relative;
    width: 100%;
    max-width: 1680px;
    padding: 0 64px 58px 80px;
    margin: 0 auto;
    z-index: 2;
}
/* kv-wrap */
#mv .kv-wrap {
    display: flex;
    justify-content: space-between;
}
#mv .kv-wrap .kv {
    position: relative;
    /*width: 68.66%;*/
    width: calc(100% - 356px);
}
#mv .kv-wrap .kv .figure {
    width: 100%;
    height: 1000px;
    border-radius: 24px;
    overflow: hidden;
}
#mv .kv-wrap .kv .figure img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
#mv .kv-wrap .kv .txt01 {
    position: absolute;
    /*width: 17.94%;*/
    width: 140px;
    top: 80px;
    right: 6.15%;
}
#mv .kv-wrap .kv .txt02 {
    position: absolute;
    /*width: 10.12%;*/
    width: 78px;
    bottom: 72px;
    left: 7.17%;
}
#mv .kv-wrap .kv .txt01 img,
#mv .kv-wrap .kv .txt02 img {
    width: 100%;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.8));
}

/* menu-wrap */
#mv .menu-wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    /*width: 25.52%;*/
    width: 290px;
    padding: 72px 0 156px;
    overflow-y: auto;
    transition: 0.5s;
}
#mv .menu-wrap ul.menu {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
#mv .menu-wrap ul.menu li {
    position: relative;
    -webkit-writing-mode: vertical-rl;
    writing-mode: tb-rl;
    text-orientation: upright;
    padding-top: 36px;
    margin-bottom: 40px;
}
#mv .menu-wrap ul.menu li::before {
    position: absolute;
    content: '';
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 6px solid var(--font-color);
}
#mv .menu-wrap ul.menu li:not(:last-of-type) {
    margin-right: 24px;
}
#mv .menu-wrap ul.menu li a {
    line-height: 1.4;
    font-size: var(--font-size-m);
    font-weight: bold;
    letter-spacing: 0.4em;
}
#mv .menu-wrap .logo {
    text-align: center;
}
#mv .menu-wrap .logo img {
    width: 62.06%;
}
#mv .menu-wrap .logo p {
    font-size: var(--font-size-sn);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 2;
    letter-spacing: 0.06em;
    margin-top: 40px;
}

/* phrase-wrap */
#mv .phrase-wrap {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 142px;
    background-color: #ECE7DE;
    overflow: hidden;
    z-index: 1;
}
#mv .phrase-wrap::after {
    position: absolute;
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../img/top/scroll_txt.svg');
    background-repeat: repeat-x;
    background-position: left 0 center;
    background-size: 2634px 130px;
    animation: marquee-bg 30s linear infinite;
}
@keyframes marquee-bg {
    0% {
        background-position: left 0 center;
    }
    100% {
        background-position: left -2634px center;
    }
}

/* 1280 */
@media screen and (max-width: 1280px) {
    #mv .kv-wrap .kv .figure {
        height: 78.125vw;
        min-height: 826px;
    }
}

/* 900 */
@media screen and (max-width: 900px) {
    #mv {
        margin-bottom: 6.5vw;
    }
    #mv .inner {
        max-width: 92vw;
        padding: 6vw 0 35vw;
    }
    /* kv-wrap */
    #mv .kv-wrap {
        display: block;
    }
    #mv .kv-wrap .kv {
        width: 100%;
    }
    #mv .kv-wrap .kv .figure {
        width: 100%;
        height: 80vw;
        min-height: auto;
        border-radius: 4vw;
    }
    #mv .kv-wrap .kv .txt01 {
        width: 16vw;
        top: 8vw;
        right: 6vw;
    }
    #mv .kv-wrap .kv .txt02 {
        width: 8vw;
        bottom: 8vw;
        left: 6vw;
    }
    #mv .kv-wrap .kv .txt01 img,
    #mv .kv-wrap .kv .txt02 img {
        filter: drop-shadow(0 2vw 4vw rgba(0, 0, 0, 0.8));
    }

    /* menu-wrap */
    #mv .menu-wrap {
        display: block;
        width: 100%;
        padding: 8vw 0 0;
    }
    #mv .menu-wrap ul.menu {
        display: none;
    }
    #mv .menu-wrap .logo img {
        width: 45vw;
    }
    #mv .menu-wrap .logo p {
        margin-top: 6vw;
    }

    /* phrase-wrap */
    #mv .phrase-wrap {
        height: 27vw;
    }
    #mv .phrase-wrap::after {
        background-size: 467vw 23vw;
        animation: marquee-bg 30s linear infinite;
    }
    @keyframes marquee-bg {
        0% {
            background-position: left 0 center;
        }
        100% {
            background-position: left -467vw center;
        }
    }
}


/* intro
---------------------------------------------------*/
#intro {
    position: relative;
    padding-bottom: 92px;
    margin-bottom: 64px;
    max-width: 1600px; /*追加*/
    margin-inline: auto; /*追加*/
}
#intro .figure {
    position: absolute;
    bottom: 0;
    right: 0;
    border-radius: 24px 0 0 24px;
    z-index: 1;
    overflow: hidden;
}
#intro .inner {
    position: relative;
    z-index: 2;
}
#intro .caption {
    text-align: center;
    margin-bottom: 56px;
}
#intro .caption .txt {
    margin-bottom: 24px;
}
#intro .caption .txt p {
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 2.0;
    letter-spacing: 0.01em;
}
#intro .caption .title {
    font-size: var(--font-size-x);
    line-height: 1.6;
}
#intro ul.intro-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 920px;
    margin: 0 auto 56px;
}
#intro ul.intro-list li {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 47.82%;
    text-align: center;
    line-height: 1.2;
    font-size: var(--font-size-m);
    font-weight: 700;
    letter-spacing: 0.06em;
    border-radius: 2em;
    border: 1px solid #000;
    background: rgba(246, 243, 236, 0.50);
    padding: 11px 0;
    margin-bottom: 16px;
}
#intro ul.intro-list li:nth-last-child(-n+2) {
    margin-bottom: 0;
}
/* issue */
#intro .issue {
    text-align: center;
}
#intro .issue .title {
    font-size: var(--font-size-l);
    line-height: 1.6;
}
#intro .issue .txt {
    margin-top: 40px;
}
#intro .issue .txt p {
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 2.0;
    letter-spacing: 0.01em;
}
@media (1600px <= width) { /*追加*/
    #intro .figure {
        border-radius: 24px;
    }
}
/* 900 */
@media screen and (max-width: 900px) {
    #intro {
        position: relative;
        padding-bottom: 20vw;
        margin-bottom: 12vw;
    }
    #intro .figure {
        width: 100%;
        height: 183vw;
        border-radius: 0;
    }
    #intro .figure img {
        object-fit: cover;
        width: 100%;
        height: 100%;
    }
    #intro .caption {
        margin-bottom: 8vw;
    }
    #intro .caption .txt {
        margin-bottom: 8vw;
    }
    #intro ul.intro-list {
        max-width: 94vw;
        margin-bottom: 8vw;
    }
    #intro ul.intro-list li {
        width: 45vw;
        font-size: var(--font-size-n);
        padding: 2vw 0;
        margin-bottom: 2vw;
    }
    /* issue */
    #intro .issue .title {
        letter-spacing: 0.01em;
    }
    #intro .issue .txt {
        margin-top: 8vw;
    }
}


/* about-us
---------------------------------------------------*/
#about-us {
    position: relative;
    padding-top: 88px;
    margin-bottom: 205px;
}
#about-us .message-wrap {
    position: relative;
    width: 93.75%;
    max-width: 1200px;
    border-radius: 24px;
    background-color: var(--section-color);
    background-image: url('../img/top/logo_bg.svg');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto;
    padding: 64px 80px 80px 256px;
    margin: 0 auto 80px;
}
#about-us .ttl-section {
    position: absolute;
    top: -88px;
    left: 104px;
}
#about-us .message p {
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 1.8;
    letter-spacing: 0.01em;
}
#about-us .message p:not(:last-of-type) {
    margin-bottom: 1.8em;
}
#about-us .caption > p {
    text-align: center;
    font-size: var(--font-size-x);
    font-weight: 700;
    line-height: 1.6;
}
#about-us .caption .btn-link {
    margin-top: 80px;
}

/* 900 */
@media screen and (max-width: 900px) {
    #about-us {
        padding-top: 14vw;
        margin-bottom: 20vw;
    }
    #about-us .message-wrap {
        width: 96vw;
        border-radius: 4vw;
        background-position: center top 75vw;
        background-size: 80vw 65.5vw;
        padding: 10vw 4vw 10vw 18vw;
        margin-bottom: 12vw;
    }
    #about-us .ttl-section {
        top: -14vw;
        left: 2vw;
    }
    #about-us .message p {
        line-height: 1.6;
        letter-spacing: 0.06em;
    }
    #about-us .message p:not(:last-of-type) {
        margin-bottom: 1.6em;
    }
    #about-us .caption > p {
        line-height: 1.4;
    }
    #about-us .caption .btn-link {
        margin-top: 12vw;
    }
}

/* service
---------------------------------------------------*/
#service {
    position: relative;
    padding-top: 88px;
    margin-bottom: 200px;
    z-index: 1;
}
#service > .bg {
    position: absolute;
    top: 88px;
    left: 0;
    width: 100%;
    height: 420px;
}
#service > .bg img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
#service .title-wrap {
    position: relative;
    padding: 88px 0 0;
    z-index: 20;
}
#service .title-wrap .ttl-section {
    position: absolute;
    top: -88px;
    left: calc(50% + 376px);
}
#service .title-wrap ul.service-list {
    display: flex;
    justify-content: center;
}
#service .title-wrap ul.service-list li {
    position: relative;
    -webkit-writing-mode: vertical-rl;
    writing-mode: tb-rl;
    text-orientation: upright;
    display: flex;
    align-items: center;
    width: 136px;
    border-radius: 24px;
    border: 1px solid rgba(101, 92, 78, 0.80);
    background-color: rgba(246, 243, 236, 0.70);
    background-image: url('../img/common/logo_mark.svg');
    background-repeat: no-repeat;
    background-position: center top 40px;
    background-size: 48px 48px;
    padding: 112px 0 48px;
}
#service .title-wrap ul.service-list li:not(:last-child) {
    margin-right: 32px;
}
#service .title-wrap ul.service-list li span {
    line-height: 1.2;
    font-size: var(--font-size-l);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.2em;
}
#service .title-wrap .message {
    position: absolute;
    top: 88px;
    right: calc(50% + 376px);
    -webkit-writing-mode: vertical-rl;
    writing-mode: tb-rl;
    text-orientation: upright;
}
#service .title-wrap .message p {
    font-size: var(--font-size-m);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.4em;
    white-space: nowrap;
}
/* slider-wrap */
#service .slider-wrap {
    position: relative;
    margin-top: 94px;
    margin-bottom: 96px;
    z-index: 10;
}
#service .slider-wrap > .bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 1660px;
}
#service .slider-wrap .service-slider {
    display: none;
}
#service .slider-wrap .service-slider.slick-initialized {
    display: block;
}
#service .slider-wrap .service-slider + .service-slider {
    margin-top: 16px;
}
#service .slider-wrap .service-slider .slide {
    width: 280px;
    margin-right: 16px;
}
#service .slider-wrap .service-slider .slide .figure {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
}
#service .slider-wrap .service-slider .slide .figure img {
    width: 100%;
}
#service .slider-wrap .service-slider .slide .figure figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    color: var(--btn-font-color);
    font-size: var(--font-size-m);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    background-color: rgba(101, 92, 78, 0.60);
    padding: 8px 0;
}
/* caption */
#service .caption {
    text-align: center;
}
#service .caption .title {
    margin-bottom: 32px;
}
#service .caption .title p {
    line-height: 1.6;
    font-size: var(--font-size-x);
}
#service .caption .txt p {
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 2.0;
    letter-spacing: 0.01em;
}

/* 900 */
@media screen and (max-width: 900px) {
    #service {
        padding-top: 14vw;
        margin-bottom: 20vw;
    }
    #service > .bg {
        top: 14vw;
        height: 80vw;
    }
    #service .title-wrap {
        padding: 20vw 0 0;
    }
    #service .title-wrap .ttl-section {
        top: -14vw;
        left: auto;
        right: 4vw;
    }
    #service .title-wrap ul.service-list {
        margin-right: 14.5vw;
    }
    #service .title-wrap ul.service-list li {
        width: 18vw;
        border-radius: 4vw;
        background-image: url('../img/common/logo_mark.svg');
        background-position: center top 6vw;
        background-size: 10vw 10vw;
        padding: 20vw 0 10vw;
    }
    #service .title-wrap ul.service-list li:not(:last-child) {
        margin-right: 4vw;
    }
    #service .title-wrap .message {
        position: static;
        -webkit-writing-mode: horizontal-tb;
        writing-mode: horizontal-tb;
        margin: 12vw 4vw 0;
    }
    #service .title-wrap .message p {
        font-weight: 500;
        font-variation-settings: "wght" 500;/*Medium*/
        line-height: 1.6;
        letter-spacing: 0.06em;
        white-space: normal;
    }
    /* slider-wrap */
    #service .slider-wrap {
        margin-top: 12vw;
        margin-bottom: 12vw;
    }
    #service .slider-wrap > .bg {
        display: none;
    }
    #service .slider-wrap .service-slider + .service-slider {
        margin-top: 4vw;
    }
    #service .slider-wrap .service-slider .slide {
        width: 42vw;
        margin-right: 4vw;
    }
    #service .slider-wrap .service-slider .slide .figure {
        border-radius: 2vw;
    }
    #service .slider-wrap .service-slider .slide .figure figcaption {
        font-size: var(--font-size-n);
        padding: 0.75vw 0;
    }
    /* caption */
    #service .caption .title {
        margin-bottom: 12vw;
    }
    #service .caption .title p {
        line-height: 1.4;
    }
    #service .caption .title p:not(:last-of-type) {
        margin-bottom: 1.4em;
    }
    #service .caption .txt {
        text-align: left;
        margin: 0 4vw;
    }
    #service .caption .txt p {
        line-height: 1.6;
        letter-spacing: 0.06em;
    }
}


/* flow
---------------------------------------------------*/
#flow {
    position: relative;
    padding-top: 88px;
    margin-bottom: 200px;
    z-index: 1;
}
#flow .ttl-section {
    position: absolute;
    top: -88px;
    left: 0;
}
#flow .flow-wrap {
    position: relative;
    width: 77.5%;
    max-width: 992px;
    padding-left: 6.727%;
    margin: 0 auto;
}
#flow .message {
    text-align: center;
    margin-bottom: 64px;
}
#flow .message p {
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 1.8;
    letter-spacing: 0.01em;
}
/* flow-figure */
#flow .flow-figure {
    margin-bottom: 32px;
}
#flow .note p {
    line-height: 1.6;
    font-size: var(--font-size-s);
    font-style: normal;
}

/* 900 */
@media screen and (max-width: 900px) {
    #flow {
        padding-top: 14vw;
        margin-bottom: 20vw;
    }
    #flow .ttl-section {
        top: -14vw;
        left: 0;
    }
    #flow .flow-wrap {
        width: 92vw;
        padding-left: 16vw;
    }
    #flow .message {
        text-align: left;
        margin-bottom: 10vw;
    }
    #flow .message p {
        font-weight: 500;
        font-variation-settings: "wght" 500;/*Medium*/
        line-height: 1.6;
        letter-spacing: 0.06em;
    }
    /* flow-figure */
    #flow .flow-figure {
        margin-bottom: 0;
    }
    #flow .flow-figure .title {
        width: 100%;
        background-color: #DCD9DC;
        border-radius: 2vw 2vw 0 0;
        padding: 3vw 2vw;
    }
    #flow .flow-figure .title span {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 24.25vw;
        background-color: #7A94BD;
        border-radius: 2vw;
    }
    #flow .flow-figure .title span img {
        width: 44vw;
    }
    #flow .flow-figure .content {
        display: none;
        width: 100%;
        padding: 4vw 0;
    }
    #flow .flow-figure .content img {
        width: 100%;
    }
    #flow .flow-figure .button {
        width: 100%;
        background-color: #DCD9DC;
        border-radius: 0 0 2vw 2vw;
        padding: 2vw;
    }
    #flow .flow-figure .button .btn {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 8vw;
        background-color: #7A94BD;
        border: 1px solid #7A94BD;
        border-radius: 2vw 2vw;
    }
    #flow .flow-figure .button .btn span {
        width: 5.5vw;
        height: 3vw;
        background-image: url('../img/top/flow/trigger_cream.svg');
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        transition: transform 0.5s;
    }
    /* buyer */
    #flow .flow-figure.buyer {
        margin-top: 10vw;
        margin-bottom: 10vw;
    }
    #flow .flow-figure.buyer .title {
        background-color: #D9DCD8;
    }
    #flow .flow-figure.buyer .title span {
        background-color: #359F9F;
    }
    #flow .flow-figure.buyer .button {
        background-color: #D9DCD8;
    }
    #flow .flow-figure.buyer .button .btn {
        background-color: #359F9F;
        border-color: #359F9F;
    }

    /* is-active */
    #flow .flow-figure.is-active .button .btn {
        background-color: transparent;
    }
    #flow .flow-figure.is-active .button .btn span {
        background-image: url('../img/top/flow/trigger_blue.svg');
        transform: rotate(180deg);
    }
    #flow .flow-figure.buyer.is-active .button .btn span {
        background-image: url('../img/top/flow/trigger_green.svg');
    }

    #flow .note p {
        padding-left: 1em;
        text-indent: -1em;
    }
}


/* contact
---------------------------------------------------*/
#contact {
    position: relative;
    margin-bottom: 200px;
    z-index: 1;
}
#contact .contact-wrap {
    position: relative;
    width: 93.75%;
    max-width: 1200px;
    border-radius: 24px;
    background-color: var(--section-color);
    background-image: url('../img/top/contact_bg.svg');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto;
    padding: 96px 0 120px;
    margin: 0 auto;
}
#contact .contact-wrap .bg {
    width: 78.1666%;
    height: 260px;
    border-radius: 0 24px 24px 0;
    overflow: hidden;
    margin-bottom: 80px;
}
#contact .contact-wrap .bg img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
#contact .contact-wrap > p {
    text-align: center;
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 2.0;
    letter-spacing: 0.01em;
}
#contact .ttl-section {
    position: absolute;
    top: 184px;
    right: 104px;
}
#contact .message {
    margin-bottom: 110px;
}
#contact .message p {
    text-align: center;
    line-height: 1.6;
    font-size: var(--font-size-l);
    font-weight: 700;
}
#contact ul.label-list {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 768px;
    margin: 0 auto 40px;
    z-index: 1;
}
#contact ul.label-list::before {
    position: absolute;
    content: '';
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: var(--point-color);
    z-index: -1;
}
#contact ul.label-list li {
    width: 204px;
    text-align: center;
    color: var(--btn-font-color);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.16em;
    background-color: var(--point-color);
    border-radius: 2em;
    padding: 9px 0;
}
#contact ul.label-list li:not(:last-child) {
    margin-right: 24px;
}
#contact .needs {
    text-align: center;
    margin-top: 40px;
    margin-bottom: 40px;
}
/* telephone-block */
#contact .telephone-block {
    width: 767px;
    margin: 118px auto 0;
}
#contact .telephone-block > p {
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 2.0;
    letter-spacing: 0.01em;
    margin-top: 24px;
}
#contact .telephone-block .telephone {
    text-align: center;
    margin-top: 32px;
}
#contact .telephone-block .telephone a {
    display: inline-block;
    width: 100%;
}
#contact .telephone-block .telephone a:hover {
}
#contact .telephone-block .telephone .tel-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    border: 3px solid var(--point-color);
    border-radius: 80px;
    padding: 11px 40px;
}
#contact .telephone-block .telephone .tel-wrap .icon {
    width: 72px;
    margin-right: 16px;
}
#contact .telephone-block .telephone .tel-wrap .icon img {
    width: 100%;
}
#contact .telephone-block .telephone .tel-wrap .number .tel {
    color: #8C637E;
    font-size: 64px;
    letter-spacing: -0.02em;
    white-space: nowrap;
    padding-top: 0.2em;
}
/* form-block */
#contact .form-block {
    width: 767px;
    margin: 96px auto 0;
}
#contact .form-block > p {
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    line-height: 2.0;
    letter-spacing: 0.01em;
    margin-top: 24px;
}
#contact .form-block .btn-link {
    margin-top: 32px;
}

/* 900 */
@media screen and (max-width: 900px) {
    #contact {
        margin-bottom: 20vw;
    }
    #contact .contact-wrap {
        width: 96vw;
        border-radius: 4vw;
        background-image: url('../img/top/contact_bg.svg');
        background-size: 150vw;
        padding: 16vw 0 13vw;
    }
    #contact .contact-wrap .bg {
        width: 79vw;
        height: 46.25vw;
        border-radius: 0 6vw 6vw 0;
        margin-bottom: 12.75vw;
    }
    #contact .contact-wrap > p {
        line-height: 1.6;
        letter-spacing: 0.06em;
    }
    #contact .ttl-section {
        position: absolute;
        top: 10vw;
        right: 2vw;
    }
    #contact .message {
        margin-bottom: 18vw;
    }
    #contact .message p {
        line-height: 1.4;
    }
    #contact ul.label-list {
        max-width: 75vw;
        margin-bottom: 6vw;
    }
    #contact ul.label-list li {
        width: 28.25vw;
        font-size: var(--font-size-m);
        padding: 1.25vw 0;
    }
    #contact ul.label-list li:not(:last-child) {
        margin-right: 2vw;
    }
    #contact .needs {
        width: 93vw;
        margin: 6vw auto;
    }
    #contact .needs img {
        width: 100%;
    }
    /* telephone-block */
    #contact .telephone-block {
        width: 91.75vw;
        margin: 16vw auto 0;
    }
    #contact .telephone-block > p {
        text-align: center;
        font-weight: 500;
        font-variation-settings: "wght" 500;/*Medium*/
        line-height: 1.6;
        letter-spacing: 0.06em;
        margin-top: 6vw;
    }
    #contact .telephone-block .telephone {
        margin-top: 6vw;
    }
    #contact .telephone-block .telephone .tel-wrap {
        width: 82.25vw;
        border-radius: 25vw;
        padding: 11px 40px;
        margin: 0 auto;
    }
    #contact .telephone-block .telephone .tel-wrap .icon {
        width: 14vw;
        margin-right: 16px;
    }
    #contact .telephone-block .telephone .tel-wrap .number .tel {
        font-size: 10.5vw;
    }
    /* form-block */
    #contact .form-block {
        width: 91.75vw;
        margin: 12vw auto 0;
    }
    #contact .form-block > p {
        text-align: center;
        font-weight: 500;
        font-variation-settings: "wght" 500;/*Medium*/
        line-height: 1.6;
        letter-spacing: 0.06em;
        margin-top: 6vw;
    }
    #contact .form-block .btn-link {
        margin-top: 6vw;
    }
}


/* price
---------------------------------------------------*/
#price {
    position: relative;
    margin-bottom: 200px;
    z-index: 1;
    overflow: hidden;
    padding-top: 88px;
    padding-bottom: 80px;
}
#price .bg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1211px;
}
#price .bg img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

#price .price-wrap {
    position: relative;
    width: 77.5%;
    max-width: 992px;
    padding-left: 6.727%;
    margin: 0 auto;
}
#price .ttl-section {
    position: absolute;
    top: -88px;
    left: 0;
}
#price .feature-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 69px;
}
#price .feature-wrap ul.feature-list {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 24px;
}
#price .feature-wrap ul.feature-list li {
    position: relative;
    font-size: 24px;
    font-weight: 700;
    padding: 0 9px;
    z-index: 1;
}
#price .feature-wrap ul.feature-list li:not(:last-child) {
    margin-right: 8px;
}
#price .feature-wrap ul.feature-list li::before {
    position: absolute;
    content: '';
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    aspect-ratio: 1 / 1;
    border: 1px solid var(--font-color);
    border-radius: 50%;
    z-index: -1;
}
#price .feature-wrap .point {
    display: flex;
    align-items: center;
}
#price .feature-wrap .point span {
    display: inline-block;
    font-size: var(--font-size-x);
    margin-right: 8px;
}
/* title-wrap */
#price .title-wrap {
    margin-bottom: 48px;
}
#price .title-wrap .title {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 640px;
    font-size: var(--font-size-m);
    font-weight: 700;
    background-color: #E4DFD6;
    border-radius: 32px;
    padding: 14px 82px;
    margin: 0 auto;
}
#price .title-wrap .title span {
    font-size: 36px;
    margin-left: 8px;
}
/* message */
#price .message {
    margin-bottom: 77px;
}
#price .message p {
    line-height: 2.0;
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.01em;
}
#price .message p.note {
    font-size: var(--font-size-s);
    line-height: 1.6;
}
/* price-block */
#price .price-block {
    margin-bottom: 80px;
}
#price .price-block .tbl-price {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    margin: 32px auto 16px;
}
#price .price-block .tbl-price th {
    text-align: left;
    color: var(--btn-font-color);
    line-height: 2.0;
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.06em;
    background-color: var(--font-color);
    border: 1px solid var(--font-color);
    padding: 0.5em 1em;
}
#price .price-block .tbl-price tr:first-child th:first-child {
    border-top-left-radius: 8px;
}
#price .price-block .tbl-price tr:first-child th:last-child {
    border-top-right-radius: 8px;
}
#price .price-block .tbl-price tr th:first-child {
    border-right: 1px solid var(--btn-font-color);
}
#price .price-block .tbl-price td {
    text-align: left;
    line-height: 2.0;
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.06em;
    border-style: solid;
    border-color: var(--font-color);
    border-width: 0 1px 1px 0;
    padding: 0.5em 1em;
}
#price .price-block .tbl-price tr td:first-child {
    border-left-width: 1px;
}
#price .price-block .tbl-price tr:last-child td:first-child {
    border-bottom-left-radius: 8px;
}
#price .price-block .tbl-price tr:last-child td:last-child {
    border-bottom-right-radius: 8px;
}
#price .price-block .tbl-price tr th:last-child,
#price .price-block .tbl-price tr td:last-child {
    text-align: center;
}
#price .price-block .tbl-price + .note {
    text-align: right;
    line-height: 1.6;
    font-size: var(--font-size-s);
}
#price .price-block ol.explain-list {
    margin-top: 50px;
}
#price .price-block ol.explain-list li {
    line-height: 1.6;
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.06em;
}
#price .price-block ol.explain-list > li {
    padding-left: 16px;
}
#price .price-block ol.explain-list > li:not(:last-child) {
    margin-bottom: 16px;
}

/* calculation-block */
#price .calculation-block .ex {
    margin: 34px auto 0;
}
#price .calculation-block .ex > p {
    line-height: 2.0;
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.06em;
    margin-bottom: 32px;
}
#price .calculation-block .ex .val {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 2em;
    line-height: 1.2;
    font-size: var(--font-size-s);
    letter-spacing: 0.06em;
    padding: 4px 24px;
    margin: 0 8px;
}
#price .calculation-block .ex .val.dash {
    border: 1px dashed var(--font-color);
}
#price .calculation-block .ex .val.line {
    border: 1px solid var(--font-color);
}
#price .calculation-block .ex .val.paint {
    background-color: #E4DFD6;
    border: 1px solid #E4DFD6;
}
#price .calculation-block .ex b {
    font-size: 20px;
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
}
#price .calculation-block .ex .val b {
    margin-right: 2px;
}
#price .calculation-block .ex .op {
    font-size: var(--font-size-m);
    margin: 0 10px;
}
#price .calculation-block dd > b {
    margin: 0 8px;
}
#price .calculation-block .calculation-list dt {
    line-height: 2.0;
    font-size: var(--font-size-m);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.06em;
    margin-bottom: 12px;
}
#price .calculation-block .calculation-list dd {
    display: inline-flex;
    align-items: center;
    line-height: 1.2;
    font-size: var(--font-size-s);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.06em;
    padding-left: 16px;
}
#price .calculation-block .calculation-list dd + dt {
    margin-top: 15px;
}

/* 900 */
@media screen and (max-width: 900px) {
    #price {
        margin-bottom: 20vw;
        padding-top: 14vw;
        padding-bottom: 0;
    }
    #price .bg {
        top: 182vw;
        bottom: auto;
        left: 0;
        width: 100%;
        height: 239.5vw;
    }
    #price .price-wrap {
        width: 92vw;
        padding-left: 0;
    }
    #price .ttl-section {
        top: -14vw;
    }
    #price .feature-wrap {
        display: block;
        padding-right: 3vw;
        padding-left: 17vw;
        margin-bottom: 8vw;
    }
    #price .feature-wrap ul.feature-list {
        margin-right: 0;
        margin-bottom: 12vw;
        padding-top: 12.5vw;
    }
    #price .feature-wrap ul.feature-list li {
        font-size: 5vw;
        padding: 0 2.5vw;
    }
    #price .feature-wrap ul.feature-list li:not(:last-child) {
        margin-right: 1.75vw;
    }
    #price .feature-wrap .point {
        display: block;
        text-align: center;
    }
    #price .feature-wrap .point span {
        display: block;
        font-size: 10.5vw;
        margin-right: 0;
        margin-bottom: 2vw;
    }
    /* title-wrap */
    #price .title-wrap {
        padding-right: 3vw;
        padding-left: 17vw;
        margin-bottom: 18.75vw;
    }
    #price .title-wrap .title {
        display: block;
        width: 100%;
        line-height: 1.6;
        text-align: center;
        font-size: var(--font-size-n);
        border-radius: 20vw;
        padding: 2.5vw 0;
        margin: 0 auto;
    }
    #price .title-wrap .title span {
        display: block;
        line-height: 1.6;
        font-size: 8vw;
        margin-left: 0;
        margin-top: 0;
    }

    /* message */
    #price .message {
        margin-bottom: 14vw;
    }
    #price .message p {
        line-height: 1.6;
        letter-spacing: 0.06em;
    }
    #price .message p.note {
        line-height: 1.6;
        margin-top: 4vw;
    }
    /* price-block */
    #price .price-block {
        margin-bottom: 20vw;
    }
    #price .price-block .tbl-price {
        margin: 8vw auto 4vw;
    }
    #price .price-block .tbl-price tr:first-child th:first-child {
        border-top-left-radius: 2vw;
    }
    #price .price-block .tbl-price tr:first-child th:last-child {
        border-top-right-radius: 2vw;
    }
    #price .price-block .tbl-price tr:last-child td:first-child {
        border-bottom-left-radius: 2vw;
    }
    #price .price-block .tbl-price tr:last-child td:last-child {
        border-bottom-right-radius: 2vw;
    }
    #price .price-block ol.explain-list {
        margin-top: 10vw;
    }
    #price .price-block ol.explain-list > li {
        padding-left: 4vw;
    }
    #price .price-block ol.explain-list > li:not(:last-child) {
        margin-bottom: 4vw;
    }

    /* calculation-block */
    #price .calculation-block .ex {
        margin: 8vw auto 0;
    }
    #price .calculation-block .ex > p {
        line-height: 1.6;
        letter-spacing: 0;
        margin-bottom: 11vw;
    }
    #price .calculation-block .ex .val {
        padding: 0.5vw 3.75vw;
        margin: 0 2vw;
    }
    #price .calculation-block .ex b {
        font-size: var(--font-size-m);
        font-weight: 500;
        font-variation-settings: "wght" 500;/*Medium*/
    }
    #price .calculation-block .ex .val b {
        margin-right: 0.5vw;
    }
    #price .calculation-block .ex .op {
        margin: 0 1vw;
    }
    #price .calculation-block dd > b {
        margin: 0 1vw;
    }
    #price .calculation-block .calculation-list dt {
        line-height: 1.6;
        font-size: var(--font-size-n);
        margin-bottom: 4vw;
        padding-left: 1.5em;
        text-indent: -1.5em;
    }
    #price .calculation-block .calculation-list dd {
        display: inline-flex;
        flex-wrap: wrap;
        align-items: center;
        letter-spacing: 0.06em;
        padding-left: 0;
    }
    #price .calculation-block .calculation-list dd + dt {
        margin-top: 8vw;
    }

    /**/
    #price .calculation-block .ex > p .val {
        margin-left: 0;
    }
    #price .calculation-block .calculation-list dd:nth-of-type(1) .val:nth-of-type(1) {
        margin-left: 0;
    }
    #price .calculation-block .calculation-list dd:nth-of-type(2) .val:nth-of-type(1) {
        margin-left: 0;
    }
    #price .calculation-block .calculation-list dd:nth-of-type(3) .val:nth-of-type(1) {
        margin-left: 0;
    }
    #price .calculation-block .calculation-list dd:nth-of-type(3) .val:nth-of-type(3) {
        margin-right: 25vw;
    }
    #price .calculation-block .calculation-list dd:nth-of-type(3) .op:nth-of-type(4),
    #price .calculation-block .calculation-list dd:nth-of-type(3) .val:nth-of-type(5) {
        margin-top: 3vw;
    }


}


/* company
---------------------------------------------------*/
#company {
    position: relative;
    margin-bottom: 200px;
    z-index: 1;
    padding-top: 88px;
}
#company .bg {
    position: absolute;
    top: 78px;
    left: calc(50% + 480px);
    width: 240px;
    height: 1352px;
    opacity: 0.1;
}
#company .bg img {
    width: 100%;
    max-width: none;
}
#company .company-wrap {
    position: relative;
    width: 77.5%;
    max-width: 992px;
    padding-right: 6.727%;
    margin: 0 auto;
}
#company .ttl-section {
    position: absolute;
    top: -88px;
    right: 0;
}
#company .message {
    margin-bottom: 64px;
}
#company .message p {
    line-height: 2.2;
    font-size: var(--font-size-l);
    font-weight: 700;
}
#company dl.company-list {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 864px;
    margin: 0 auto;
}
#company dl.company-list dt {
    width: 190px;
    line-height: 1.8;
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.01em;
    border-top: 3px solid var(--font-color);
    padding: 24px 0 0 8px;
}
#company dl.company-list dd {
    width: calc(100% - 214px);
    line-height: 1.8;
    letter-spacing: 0.01em;
    border-top: 1px solid var(--font-color);
    padding: 24px 8px 32px;
}
#company dl.company-list dd .name {
    font-weight: 700;
    margin-bottom: 1.8em;
}
#company dl.company-list p:not(:last-of-type) {
    margin-bottom: 1.8em;
}
#company dl.company-list dd a.link {
    color: #977949;
    text-decoration: underline;
}
#company dl.company-list dd a.link:hover {
    text-decoration: none;
}
#company dl.company-list dd .address {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
#company dl.company-list dd .address + .address {
    margin-top: 1.2em;
}
#company dl.company-list dd .address .width-full {
    width: 100%;
}
#company dl.company-list dd .address .width-full b {
    font-weight: 700;
}
#company dl.company-list dd .address a.map {
    display: inline-block;
    line-height: 1;
    color: var(--btn-font-color);
    font-size: 15px;
    text-decoration: none;
    background-color: var(--font-color);
    background-image: url('../img/common/icon_spot.svg');
    background-repeat: no-repeat;
    background-position: left 22px center;
    background-size: 13px 18px;
    border-radius: 2em;
    padding: 6px 24px 6px 44px;
    margin-left: 24px;
    transition: background-color 0.5s;
}
#company dl.company-list dd .address a.map:hover {
    background-color: var(--hover-color);
}
#company dl.company-list dd .btn-link {
    margin-top: 1em;
}

/* 900 */
@media screen and (max-width: 900px) {
    #company {
        margin-bottom: 20vw;
        padding-top: 20vw;
    }
    #company .bg {
        display: none;
    }
    #company .company-wrap {
        width: 92vw;
        padding-right: 0;
    }
    #company .ttl-section {
        top: -20vw;
        right: 0;
    }
    #company .message {
        margin-bottom: 12vw;
        padding-right: 12vw;
    }
    #company .message p {
        line-height: 1.4;
        font-size: 5vw;
    }
    #company .message p:not(:last-of-type) {
        margin-bottom: 1.4em;
    }
    #company dl.company-list {
        display: block;
    }
    #company dl.company-list dt {
        width: 100%;
        line-height: 1.6;
        font-weight: 500;
        letter-spacing: 0.06em;
        background-color: #E3DDD4;
        padding: 2vw;
    }
    #company dl.company-list dd {
        width: 100%;
        line-height: 1.6;
        letter-spacing: 0.06em;
        border-top: 0;
        padding: 4vw 2vw 8vw;
    }
    #company dl.company-list dd .name {
        margin-bottom: 1.6em;
    }
    #company dl.company-list dd .address {
        display: block;
    }
    #company dl.company-list dd .address a.map {
        font-size: 3.75vw;
        background-position: left 5.5vw center;
        background-size: 3.25vw 4.5vw;
        padding: 1.5vw 6vw 1.5vw 11vw;
        margin-left: 0;
        margin-top: 4vw;
    }

    #company dl.company-list dd .btn-link .btn-cover {
        max-width: 100%;
    }
}

/* faq
---------------------------------------------------*/
#faq {
    position: relative;
    margin-bottom: 200px;
    z-index: 1;
    padding-top: 88px;
}
#faq .faq-wrap {
    position: relative;
    width: 77.5%;
    max-width: 992px;
    padding-left: 6.727%;
    margin: 0 auto;
}
#faq .ttl-section {
    position: absolute;
    top: -88px;
    left: 0;
}
#faq .faq-list {
}
#faq .faq-list .faq {
    position: relative;
    padding-left: 39px;
}
#faq .faq-list .faq + .faq {
    margin-top: 40px;
}
#faq .faq-list .faq::before,
#faq .faq-list .faq::after {
    position: absolute;
    content: '';
    left: 0;
}
#faq .faq-list .faq::before {
    top: 12px;
    left: 0;
    width: 15px;
    aspect-ratio: 1 / 1;
    border: 4px solid #A19B8D;
    border-radius: 50%;
}
#faq .faq-list .faq::after {
    bottom: 0;
    left: calc(15px / 2);
    width: 1px;
    height: calc(100% - 27px);
    background-color: #A19B8D;
}
#faq .faq-list .faq .question-block p {
    line-height: 1.6;
    font-size: 24px;
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
}
#faq .faq-list .faq .answer-block {
    display: none;
    margin-top: 16px;
}
#faq .faq-list .faq .answer-block p {
    line-height: 1.8;
    color: var(--point-color);
    font-weight: 500;
    font-variation-settings: "wght" 500;/*Medium*/
    letter-spacing: 0.01em;
}
#faq .faq-list .faq .icon {
    position: relative;
    width: 13px;
    aspect-ratio: 1 / 1;
    margin-top: 16px;
}
#faq .faq-list .faq .icon::before,
#faq .faq-list .faq .icon::after {
    position: absolute;
    content: '';
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--font-color);
    transition: 0.5s;
}
#faq .faq-list .faq .icon::before {
    width: 100%;
    height: 3px;
}
#faq .faq-list .faq .icon::after {
    width: 3px;
    height: 100%;
}

/* is-active */
#faq .faq-list .faq.is-active .icon::before {
    opacity: 0.5;
}
#faq .faq-list .faq.is-active .icon::after {
    height: 0;
}

/* more */
#faq .faq-list .faq:nth-child(n+6) {
    display: none;
}

/* btn-link */
#faq .btn-link {
    margin-top: 120px;
}

/* 900 */
@media screen and (max-width: 900px) {
    #faq {
        position: relative;
        margin-bottom: 20vw;
        padding-top: 0;
    }
    #faq .faq-wrap {
        width: 92vw;
        padding-left: 0;
    }
    #faq .ttl-section {
        position: static;
        -webkit-writing-mode: lr-tb;
        writing-mode: lr-tb;
        text-align: center;
        margin-bottom: 12vw;
    }
    #faq .ttl-section span {
        line-height: 1.2;
        letter-spacing: 0;
    }
    #faq .faq-list .faq {
        background-color: #E4DFD6;
        border-radius: 4vw;
        padding: 4vw 2vw 4vw 8.75vw;
    }
    #faq .faq-list .faq + .faq {
        margin-top: 4vw;
    }
    #faq .faq-list .faq::before {
        top: 6vw;
        left: 2vw;
        width: 3.75vw;
        border-width: 1vw;
    }
    #faq .faq-list .faq::after {
        left: calc(3.875vw - 1px);
        bottom: 4vw;
        height: calc(100% - 13.75vw);
    }
    #faq .faq-list .faq .question-block p {
        line-height: 1.5;
        font-size: var(--font-size-m);
    }
    #faq .faq-list .faq .answer-block {
        margin-top: 6vw;
    }
    #faq .faq-list .faq .answer-block p {
        line-height: 1.5;
        letter-spacing: 0;
    }
    #faq .faq-list .faq .icon {
        width: 3.25vw;
        margin-top: 4vw;
    }

    /* is-active */
    #faq .faq-list .faq.is-active {
        background-color: #F6F3EC;
    }

    /* btn-link */
    #faq .btn-link {
        margin-top: 12vw;
    }
}

