html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}

body {
    line-height: 1
}

article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
    display: block
}

nav ul {
    list-style: none
}

blockquote,q {
    quotes: none
}

blockquote:before,blockquote:after,q:before,q:after {
    content: '';
    content: none
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}

ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none
}

mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold
}

del {
    text-decoration: line-through
}

abbr[title],dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0
}

input,select {
    vertical-align: middle
}

ul,li {
    list-style: none
}

th {
    text-align: left;
    font-weight: normal
}

input[type="submit"],button {
    -webkit-appearance: none
}

img {
    image-rendering: -webkit-optimize-contrast
}

* {
    box-sizing: border-box
}

html,body {
    width: 100%;
    max-width: 100%;
    color: #000;
    font-family: "Noto Sans JP", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", osaka, arial, helvetica, sans-serif;
    -webkit-text-size-adjust: 100%
}

html {
    font-size: 625%
}

body {
    font-size: .16em
}

a {
    text-decoration: none;
    transition: .3s
}

a img {
    transition: .3s
}

a:hover img {
    opacity: 0.8
}

.sp-only {
    display: none
}

.sp-only-inline {
    display: none
}

.pc-only {
    display: block
}

.pc-only-inline {
    display: inline
}

@media screen and (max-width: 768px) {
    .sp-only {
        display:block !important
    }

    .sp-only-inline {
        display: inline !important
    }

    .pc-only {
        display: none !important
    }

    .pc-only-inline {
        display: none !important
    }
}

.ta-center {
    text-align: center
}

.l-inner {
    max-width: 1200px;
    margin: 0 auto
}

@media screen and (max-width: 768px) {
    .l-inner {
        max-width:100%;
        padding-left: 1.5em;
        padding-right: 1.5em
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .l-inner {
        max-width:100%;
        padding-left: 2em;
        padding-right: 2em
    }
}

.l-container {
    max-width: 100%;
    overflow: hidden
}

.m-header {
    position: sticky;
    top: 0;
    left: 0;
    background: #fff;
    z-index: 100;
    width: 100%
}

.m-header-box {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    height: 100px
}

.m-header-box-left {
    padding: 1.1em 0 0 4.5em
}

.m-header-box-right {
    display: flex;
    flex-direction: row;
    justify-content: flex-end
}

.m-header-menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    margin-right: min(2.91667vw, 56px)
}

.m-header-menu-item {
    margin-left: min(1.82292vw, 35px)
}

.m-header-menu-item-link {
    color: #050c0f;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6
}

.m-header-menu-item-link:hover {
    color: #3eada4
}

.m-header-menu02 {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end
}

.m-header-menu02-item {
    height: 100%
}

.m-header-menu02-item-link {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fb8d99;
    padding: 0 .9em;
    height: 100%
}

.m-header-menu02-item-link-figure {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    height: 2.1em
}

.m-header-menu02-item-link-figure-icon {
    max-height: 100%;
    margin-bottom: .5em
}

.m-header-menu02-item-link-str {
    color: #ffffff;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6
}

.m-header-menu02-item-link__contact {
    background-color: #1cb0a4
}

.m-header-menu02-item-link:hover {
    filter: brightness(1.1)
}

.m-header-spMenu {
    display: none
}

.m-header__on-spMenu {
    position: static;
    background-color: #1cb0a4
}

@media screen and (max-width: 768px) {
    .m-header {
        padding-bottom:min(3.38542vw, 16.9px)
    }

    .m-header-box {
        height: auto
    }

    .m-header-box-left {
        padding: min(3.38542vw, 16.9px) 0 0 min(6.25vw, 31.2px)
    }

    .m-header-logo-link-img {
        max-width: min(44.79167vw, 223.6px)
    }

    .m-header-menu {
        display: none
    }

    .m-header-menu02 {
        display: none
    }

    .m-header-spMenu {
        display: inline-block
    }

    .m-header-spMenu-link-img {
        max-width: min(13.02083vw, 65px)
    }
}

@media screen and (max-width: 1440px) and (min-width: 1281px) {
    .m-header-box-left {
        padding-left:1.5em
    }

    .m-header-menu-item-link {
        font-size: 16px
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .m-header {
        padding-bottom:min(3.38542vw, 16.9px)
    }

    .m-header-box {
        height: auto
    }

    .m-header-box-left {
        padding: min(3.38542vw, 16.9px) 0 0 min(6.25vw, 31.2px)
    }

    .m-header-logo-link-img {
        max-width: min(44.79167vw, 223.6px)
    }

    .m-header-menu {
        display: none
    }

    .m-header-menu02 {
        display: none
    }

    .m-header-spMenu {
        display: inline-block
    }

    .m-header-spMenu-link-img {
        max-width: min(13.02083vw, 65px)
    }
}

.index-mv {
    position: relative;
    background: url(../images/index/mv-bg01.jpg) no-repeat bottom center;
    padding: 1em 4em 0
}

.index-mv-heading {
    position: absolute;
    top: 1.2em;
    left: 0;
    width: 100%;
    text-align: center;
    color: #2e2e2e;
    font-size: 56px;
    font-weight: bold;
    line-height: 160%;
    letter-spacing: 0.06em;
    text-shadow: 0 0 15px #fff,0 0 15px #fff,0 0 15px #fff,0 0 15px #fff,0 0 15px #fff,0 0 15px #fff,0 0 15px #fff,0 0 15px #fff
}

.index-mv-bg-img {
    width: 1785px;
    height: 920px;
    border-radius: 40px;
    box-shadow: 0px 0px 54.15px 2.85px rgba(191,212,249,0.63)
}

.index-mv-top {
    position: relative
}

.index-mv-contact {
    position: absolute;
    bottom: 2.2em;
    right: 2.8em
}

.index-mv-contact-points {
    display: flex;
    flex-direction: row;
    justify-content: center;
    margin: 0 -0.4em 1.6em
}

.index-mv-contact-points-item {
    padding: 0 .4em
}

.index-mv-contact-points-item-txt {
    position: relative;
    width: 185px;
    color: #050c0f;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
    background: #fff;
    padding: .6em 0 .7em;
    border-radius: 7px
}

.index-mv-contact-points-item-txt b {
    color: #ce1212
}

.index-mv-contact-points-item-txt::after {
    content: "";
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    background: url(../images/index/mv-arrow02.png) no-repeat bottom center;
    width: 31px;
    height: 22px;
    background-size: cover;
    transform: translateX(-50%) translateY(90%)
}

.index-mv-contact-box {
    width: 650px;
    max-width: 100%;
    background: #fff;
    border-radius: 20px;
    overflow: hidden
}

.index-mv-contact-box-heading {
    color: #ffffff;
    font-size: 29px;
    font-weight: bold;
    letter-spacing: 0.06em;
    text-align: center;
    background: #089d9d;
    text-shadow: 4px 4px 1px #0d7c7c,4px 4px 1px #0d7c7c,4px 4px 1px #0d7c7c;
    padding: .7em 0 .7em
}

.index-mv-contact-box-body {
    padding: 1.4em 1.9em 2em
}

.index-mv-contact-steps {
    display: flex;
    flex-direction: row;
    margin: 0 -0.8em 1.6em
}

.index-mv-contact-steps-item {
    width: 33.3%;
    padding: 0 .8em
}

.index-mv-contact-steps-item-in {
    position: relative;
    background: #f8e8ee;
    border-radius: 7px;
    text-align: center;
    padding: .6em .5em .7em
}

.index-mv-contact-steps-item-in::after {
    content: "";
    display: inline-block;
    position: absolute;
    top: 50%;
    right: 0;
    background: url(../images/index/mv-arrow03.png) no-repeat center right;
    width: 22px;
    height: 31px;
    background-size: cover;
    transform: translateX(100%) translateY(-50%)
}

.index-mv-contact-steps-item-num {
    color: #f4909b;
    font-size: 21px;
    font-family: "Avenir", "Montserrat";
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: .2em
}

.index-mv-contact-steps-item-str {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    height: 4em;
    color: #050c0f;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.3
}

.index-mv-contact-steps-item:last-child .index-mv-contact-steps-item-in::after {
    display: none
}

.index-mv-contact-more {
    text-align: center
}

.index-mv-contact-more .m-btn {
    width: 413px
}

.index-mv-features {
    padding: 3.2em 0 0
}

.index-mv-features-items {
    display: flex;
    flex-direction: row;
    margin: 0 -1.7em
}

.index-mv-features-items-item {
    width: 25%;
    padding: 0 min(1.40625vw, 27px)
}

.index-mv-features-items-item-in {
    background: linear-gradient(0deg, #fff0c3 0%, #f7dce7 100%);
    padding: .5em;
    border: 1px solid #fff;
    border-radius: 100%;
    aspect-ratio: 1/1;
    box-shadow: 0px 11px 20.37px 0.63px rgba(22,161,161,0.14)
}

.index-mv-features-items-item-in-in {
    background: #fff;
    border-radius: 100%;
    text-align: center;
    height: 100%;
    padding-top: 2.9em
}

.index-mv-features-items-item-en {
    color: #050c0f;
    font-size: min(1.04167vw, 20px);
    font-family: 'Avenir';
    font-weight: 500;
    line-height: 100%;
    color: #22a6a6;
    margin-bottom: 1.2em
}

.index-mv-features-items-item-heading {
    color: #000000;
    font-size: min(1.45833vw, 28px);
    font-weight: 500;
    line-height: 1.3;
    margin-bottom: .7em
}

.index-mv-features-items-item-heading span {
    font-size: min(1.30208vw, 25px)
}

.index-mv-features-items-item-heading b {
    font-size: min(2.08333vw, 40px);
    background: linear-gradient(90deg, #29d3c7 0%, #fe8c98 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.index-mv-features-items-item-heading strong {
    font-size: min(2.60417vw, 50px);
    background: linear-gradient(90deg, #29d3c7 0%, #fe8c98 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.index-mv-features-items-item-img {
    max-width: 12vw
}

.index-mv-next {
    text-align: center;
    margin: 0;
    padding: 6.5em 0 0
}

.index-mv-next-img {
    max-width: 100%
}

.index-present {
    background: url(../images/index/present-bg01.png) no-repeat top center;
    padding: 10em 0 2em;
    margin-top: -3.5em
}

.index-present-box {
    display: flex;
    flex-direction: row;
    justify-content: space-between
}

.index-present-box-left {
    width: 600px;
    max-width: 50%
}

.index-present-heading {
    color: #2e2e2e;
    font-size: 42px;
    font-family: "游明朝",YuMincho,"ヒラギノ明朝ProN W3","Hiragino Mincho ProN","HG明朝E","ＭＳ Ｐ明朝",serif;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 0.02em;
    white-space: nowrap;
    margin-bottom: 1.4em
}

.index-present-figure {
    margin: 0
}

.index-present-list-item {
    background: url(../images/index/present-icon01.png) no-repeat top left;
    color: #050c0f;
    font-size: 28px;
    font-weight: 500;
    line-height: 1;
    padding: .5em 0 .5em 2.6em;
    margin-bottom: 1em;
    white-space: nowrap
}

.index-present-list-item-in {
    position: relative;
    display: inline-block
}

.index-present-list-item-in-str {
    position: relative;
    z-index: 10
}

.index-present-list-item-in::before {
    content: "";
    position: absolute;
    bottom: -0.2em;
    left: 0;
    display: block;
    background: #f4f600;
    height: .6em;
    width: 100%
}

.index-present-list-item:last-child {
    margin-bottom: 0
}

.index-area {
    background: url(../images/index/area-bg01.jpg) no-repeat top center;
    padding: 4.8em 0 2.1em
}

.index-area-figure {
    text-align: center;
    margin: 0
}

.index-area-figure-img {
    max-width: 100%
}

.index-contact {
    background: url(../images/index/contact-bg01.jpg) no-repeat top center;
    background-size: cover;
    padding: 2.8em 0 4em
}

.index-contact-points {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0 .8em;
    margin-bottom: 3.2em
}

.index-contact-points-item {
    position: relative;
    width: 33.3%;
    background: #fff;
    border: 4px solid #1cb0a4;
    border-radius: 10px
}

.index-contact-points-item-txt {
    padding: .6em .5em .5em;
    color: #050c0f;
    font-size: 22px;
    font-family: "ShinGo";
    font-weight: bold;
    line-height: 1.3;
    text-align: center
}

.index-contact-points-item-txt b {
    color: #ce1212
}

.index-contact-points-item::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    background: url(../images/index/contact-arrow01.png) no-repeat bottom center;
    width: 75px;
    height: 23px;
    background-size: cover;
    transform: translateX(-50%) translateY(100%)
}

.index-contact-box {
    background: #fff;
    border-radius: 10px;
    padding: 2.5em 1em 3em
}

.index-contact-heading {
    color: #2e2e2e;
    font-size: 46px;
    font-weight: bold;
    text-align: center;
    margin-bottom: .7em
}

.index-contact-link {
    text-align: center
}

.index-about {
    margin-bottom: 9.4em
}

.index-about-container {
    padding: 7em 0 8em
}

.index-about-figure {
    text-align: center;
    margin: 0 0 3em
}

.index-about-figure-img {
    max-width: 100%
}

.index-about-txt {
    margin-bottom: 2.3em
}

.index-about-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center
}

.index-about-more {
    text-align: center
}

.index-reason {
    margin-bottom: 8.5em
}

.index-reason .m-title {
    margin-bottom: 5.7em
}

.index-reason-box {
    display: flex;
    flex-direction: row;
    margin-bottom: 5.5em
}

.index-reason-box-left {
    width: calc(50% + 3.5em)
}

.index-reason-box-right {
    width: calc(50% - 3.5em);
    padding-top: 5.1em
}

.index-reason-box__rev {
    flex-direction: row-reverse
}

.index-reason-box__no-mb {
    margin-bottom: 0
}

.index-reason-content {
    position: relative;
    z-index: 10;
    background: linear-gradient(0deg, #fffbef 0%, #e1f0f2 100%);
    border: 1px solid #fff;
    padding: .6em;
    box-shadow: 0px 16px 41.71px 1.29px rgba(22,161,161,0.28)
}

.index-reason-content-in {
    position: relative;
    background: #fff;
    padding: 3.3em 3em 3.7em 3.5em
}

.index-reason-content-num {
    position: absolute;
    top: -0.5em;
    right: .2em;
    display: inline-block;
    font-size: 96px;
    font-family: "Avenir", "Montserrat";
    font-weight: 500;
    line-height: 1;
    background: linear-gradient(90deg, #29d3c7 0%, #fe8c98 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.index-reason-content-heading {
    color: #2e2e2e;
    font-size: 28px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.06em;
    margin-bottom: 1.1em
}

.index-reason-content-txt p {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.9
}

.index-reason-figure {
    margin: 0;
    margin-left: -11.2em
}

.index-reason-figure__rev {
    display: flex;
    flex-direction: row;
    justify-content: end;
    margin-left: 0;
    margin-right: -7.5em
}

.index-lineup-txt {
    text-align: center;
    margin-bottom: 4.4em
}

.index-lineup-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em
}

.index-lineup-items {
    margin-bottom: 5.8em
}

.index-lineup-items-container {
    position: relative
}

.index-lineup-items-item {
    padding: 0 1em
}

.index-lineup-items-item-link {
    display: block
}

.index-lineup-items-item-link-figure {
    margin: 0
}

.index-lineup-items-item-link-figure-img {
    width: 100%;
    height: auto;
    vertical-align: bottom
}

.index-lineup-items-arrow {
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 1.5em;
    background: #fff url(../images/index/lineup-arrow01.png) no-repeat center center;
    background-size: min(2.34375vw, 11.7px) auto;
    border: 3px solid #fc8d99;
    border-radius: 100%;
    aspect-ratio: 1/1;
    width: min(10.41667vw, 52px);
    height: min(10.41667vw, 52px);
    transform: translateY(-50%)
}

.index-lineup-items-arrow__next {
    left: auto;
    right: 1.5em;
    background-image: url(../images/index/lineup-arrow02.png)
}

.index-lineup-items__flex {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    margin-left: -1em;
    margin-right: -1em
}

.index-lineup-items__flex .index-lineup-items-item {
    width: 20%
}

.index-lineup-items__grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin-left: 0;
    margin-right: 0
}

.index-lineup-items__grid .index-lineup-items-item {
    width: 50%;
    padding: 0
}

.index-lineup-more {
    text-align: center
}

.index-flow {
    background: #f8e8ee;
    padding: 4.1em 0 5em
}

.index-flow-items {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin: 0 -1em 4.6em
}

.index-flow-items-item {
    width: 25%;
    padding: 0 1em;
    margin-bottom: 1.9em
}

.index-flow-items-item-in {
    position: relative;
    background: #fff;
    padding: 1.6em 1.2em 2.5em
}

.index-flow-items-item-in::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -2px;
    background: url(../images/index/flow-arrow01.png) no-repeat center right;
    width: 25px;
    height: 44px;
    background-size: cover;
    transform: translateY(-50%) translateX(100%)
}

.index-flow-items-item-num {
    text-align: center;
    margin-bottom: 1.4em
}

.index-flow-items-item-num-str {
    display: inline-block;
    color: #b2cece;
    font-size: 29px;
    font-family: "Avenir", "Montserrat";
    font-weight: 900;
    line-height: 1;
    background: linear-gradient(90deg, #29d3c7 0%, #fe8c98 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.index-flow-items-item-figure {
    text-align: center;
    margin: 0 0 1.6em
}

.index-flow-items-item-figure-img {
    max-width: 100%
}

.index-flow-items-item-heading {
    color: #2e2e2e;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.6;
    text-align: center
}

.index-flow-items-item__no-arrow .index-flow-items-item-in::after {
    display: none
}

.index-flow-more {
    text-align: center
}

.index-case {
    background: url(../images/index/case-bg01.jpg) no-repeat top center;
    background-size: contain;
    padding: 6.1em 0 11.3em
}

.index-case .m-title {
    margin-bottom: 5em
}

.index-case-more {
    text-align: center
}

.index-voice {
    background: url(../images/index/voice-bg01.jpg) no-repeat bottom center;
    padding: 0 0 7.7em
}

.index-voice-txt {
    margin-bottom: 2.4em
}

.index-voice-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center
}

.index-voice-more {
    text-align: center
}

.index-faq {
    padding: 7.1em 0 6.7em
}

.index-faq .m-title {
    margin-bottom: 2.6em
}

.index-faq-more {
    text-align: center
}

@media screen and (max-width: 768px) {
    .index-mv {
        background-image:url(../images/sp/index/mv-bg01.jpg);
        background-position: bottom center;
        background-size: 100% auto;
        padding: 1em 1.5em
    }

    .index-mv-heading {
        font-size: min(7.29167vw, 36.4px);
        line-height: 1.5
    }

    .index-mv-bg-img {
        width: 100%;
        height: 460px;
        border-radius: 20px
    }

    .index-mv-contact {
        position: static
    }

    .index-mv-contact-points {
        margin: min(7.68229vw, 38.35px) -0.2em min(4.55729vw, 22.75px)
    }

    .index-mv-contact-points-item {
        width: 33.3%;
        padding: 0 .2em
    }

    .index-mv-contact-points-item-txt {
        width: auto;
        font-size: min(2.60417vw, 13px);
        line-height: 1.2;
        background: #f1f1f1
    }

    .index-mv-contact-points-item-txt::after {
        background-image: url(../images/sp/index/mv-arrow02.png);
        width: min(4.42708vw, 22.1px);
        height: min(3.125vw, 15.6px)
    }

    .index-mv-contact-box {
        border-radius: 10px;
        border: 2px solid #44bdbd
    }

    .index-mv-contact-box-heading {
        font-size: min(4.55729vw, 22.75px);
        text-shadow: 2px 2px 1px #0d7c7c, 2px 2px 1px #0d7c7c, 2px 2px 1px #0d7c7c
    }

    .index-mv-contact-box-body {
        padding: min(3.38542vw, 16.9px) min(3.51562vw, 17.55px) min(4.16667vw, 20.8px)
    }

    .index-mv-contact-steps {
        flex-direction: column;
        margin-bottom: min(2.60417vw, 13px)
    }

    .index-mv-contact-steps-item {
        width: 100%;
        margin-bottom: .4em
    }

    .index-mv-contact-steps-item-in {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: start;
        text-align: left;
        padding: min(2.60417vw, 13px) min(2.08333vw, 10.4px) min(2.60417vw, 13px) min(3.90625vw, 19.5px)
    }

    .index-mv-contact-steps-item-in::after {
        display: none
    }

    .index-mv-contact-steps-item-num {
        min-width: min(19.01042vw, 94.9px);
        font-size: min(3.90625vw, 19.5px);
        margin-bottom: 0
    }

    .index-mv-contact-steps-item-str {
        font-size: min(3.25521vw, 16.25px);
        line-height: 1.4
    }

    .index-mv-contact-more {
        padding: 0 .7em
    }

    .index-mv-features {
        padding-top: min(9.11458vw, 45.5px)
    }

    .index-mv-features-items {
        flex-wrap: wrap;
        margin: 0 -0.5em
    }

    .index-mv-features-items-item {
        width: 50%;
        padding: 0 .5em;
        margin-bottom: min(6.77083vw, 52px)
    }

    .index-mv-features-items-item-in-in {
        padding-top: min(4.6875vw, 36px)
    }

    .index-mv-features-items-item-en {
        font-size: min(2.21354vw, 17px)
    }

    .index-mv-features-items-item-heading {
        font-size: min(3.38542vw, 26px)
    }

    .index-mv-features-items-item-heading span {
        font-size: min(2.99479vw, 23px)
    }

    .index-mv-features-items-item-heading b {
        font-size: min(4.29688vw, 33px)
    }

    .index-mv-features-items-item-heading strong {
        font-size: min(5.46875vw, 42px)
    }

    .index-mv-features-items-item-img {
        max-width: min(20.05208vw, 154px)
    }

    .index-mv-next {
        padding-top: min(7.8125vw, 39px)
    }

    .index-mv-next-img {
        max-width: min(50.78125vw, 253.5px)
    }

    .index-present {
        margin-top: 0;
        padding-top: min(9.375vw, 46.8px);
        padding-bottom: min(9.89583vw, 49.4px);
        background-image: url(../images/sp/index/present-bg01.jpg);
        background-position: top center;
        background-size: cover
    }

    .index-present-box {
        flex-direction: column-reverse
    }

    .index-present-heading {
        font-size: min(5.46875vw, 27.3px);
        line-height: 1.6;
        text-align: left;
        margin-bottom: 1.2em
    }

    .index-present-figure {
        margin-left: -1.5em;
        margin-right: -1.5em;
        margin-bottom: min(5.85938vw, 29.25px)
    }

    .index-present-figure-img {
        width: 100%
    }

    .index-present-list-item {
        font-size: min(3.64583vw, 18.2px);
        background-size: auto 100%
    }

    .index-present-list-item-in-str {
        font-size: min(3.64583vw, 18.2px)
    }

    .index-area {
        padding-top: min(13.93229vw, 69.55px);
        padding-bottom: min(8.46354vw, 42.25px);
        background-image: url(../images/sp/index/area-bg01.jpg);
        background-size: cover
    }

    .index-area-figure {
        margin-left: -1.5em;
        margin-right: -1.5em
    }

    .index-area-figure-img {
        width: 100%
    }

    .index-contact {
        padding-top: min(8.59375vw, 42.9px);
        padding-bottom: min(10.67708vw, 53.3px);
        background-image: url(../images/sp/index/contact-bg01.jpg);
        background-size: cover
    }

    .index-contact-points {
        flex-direction: column;
        margin-bottom: min(2.34375vw, 11.7px)
    }

    .index-contact-points-item {
        width: 100%;
        margin-bottom: .4em;
        border-width: 2px;
        border-radius: 5px
    }

    .index-contact-points-item-txt {
        font-family: "Noto Sans JP","游ゴシック",YuGothic,"ヒラギノ角ゴ Pro","Hiragino Kaku Gothic Pro","メイリオ","Meiryo",osaka,arial,helvetica,sans-serif;
        font-size: min(3.64583vw, 18.2px);
        line-height: 1;
        padding: .9em .5em .8em
    }

    .index-contact-points-item::after {
        display: none
    }

    .index-contact-box {
        border-radius: 13px;
        padding-top: min(5.20833vw, 26px);
        padding-bottom: min(6.25vw, 31.2px)
    }

    .index-contact-heading {
        font-size: min(5.46875vw, 27.3px);
        margin-bottom: .9em
    }

    .index-about {
        margin-bottom: min(19.14062vw, 95.55px)
    }

    .index-about-container {
        background: url(../images/sp/index/about-bg01.jpg) no-repeat top center;
        background-size: 100% auto;
        padding-top: min(12.36979vw, 61.75px);
        padding-bottom: min(14.58333vw, 72.8px)
    }

    .index-about-figure {
        margin-left: -1.5em;
        margin-right: -1.5em;
        margin-bottom: min(8.33333vw, 41.6px)
    }

    .index-about-txt {
        margin-left: -1em;
        margin-right: -1em;
        margin-bottom: min(7.8125vw, 39px)
    }

    .index-about-txt p {
        font-size: min(3.64583vw, 18.2px);
        line-height: 1.7
    }

    .index-reason {
        margin-bottom: min(18.48958vw, 92.3px)
    }

    .index-reason .m-title {
        margin-bottom: min(8.33333vw, 41.6px)
    }

    .index-reason-box {
        flex-direction: column-reverse;
        margin-bottom: min(17.83854vw, 89.05px)
    }

    .index-reason-box-left {
        width: 100%
    }

    .index-reason-box-right {
        width: calc(100% + 1.5em);
        padding-top: 0
    }

    .index-reason-box__rev {
        flex-direction: column
    }

    .index-reason-box__rev .index-reason-box-right {
        padding-right: 1.5em
    }

    .index-reason-content {
        position: relative;
        z-index: 10;
        margin-top: -0.7em;
        margin-left: -1.5em;
        padding: 4px;
        padding-left: 0;
        width: min(82.68229vw, 412.75px)
    }

    .index-reason-content-in {
        padding-top: min(6.77083vw, 33.8px);
        padding-right: min(6.77083vw, 33.8px);
        padding-left: 1.5em;
        padding-bottom: min(7.03125vw, 35.1px)
    }

    .index-reason-content-num {
        font-size: min(12.5vw, 62.4px)
    }

    .index-reason-content-heading {
        font-size: min(4.16667vw, 20.8px);
        line-height: 1.2;
        margin-bottom: 1.5em
    }

    .index-reason-content-txt p {
        font-size: min(3.38542vw, 16.9px);
        line-height: 1.6
    }

    .index-reason-content__rev {
        margin-left: auto;
        margin-right: -1.5em;
        padding: 4px;
        padding-right: 0;
        margin-top: 0;
        margin-bottom: -1.2em
    }

    .index-reason-figure {
        margin-left: 0
    }

    .index-reason-figure-img {
        width: 100%
    }

    .index-reason-figure__rev {
        margin-right: 0;
        margin-left: -1.5em
    }

    .index-lineup .m-title {
        margin-bottom: min(8.33333vw, 41.6px)
    }

    .index-lineup-txt {
        padding-left: 1.5em;
        padding-right: 1.5em;
        margin-bottom: min(10.9375vw, 54.6px)
    }

    .index-lineup-txt p {
        font-size: min(3.38542vw, 16.9px);
        line-height: 1.6
    }

    .index-lineup-items {
        margin-bottom: min(7.8125vw, 39px)
    }

    .index-lineup-items-item {
        padding: 0 .7em
    }

    .index-flow {
        padding-top: min(8.33333vw, 41.6px);
        padding-bottom: min(14.0625vw, 70.2px)
    }

    .index-flow-items {
        flex-wrap: wrap;
        margin: 0 -0.5em .9em
    }

    .index-flow-items-item {
        width: 50%;
        padding: 0 .5em;
        margin-bottom: 1em
    }

    .index-flow-items-item-in {
        padding: min(3.38542vw, 16.9px) min(2.60417vw, 13px) min(5.20833vw, 26px)
    }

    .index-flow-items-item-in::after {
        max-width: min(3.25521vw, 16.25px)
    }

    .index-flow-items-item-num {
        font-size: min(3.77604vw, 18.85px);
        margin-bottom: .8em
    }

    .index-flow-items-item-num-str {
        font-size: min(3.77604vw, 18.85px)
    }

    .index-flow-items-item-figure {
        margin-bottom: .9em
    }

    .index-flow-items-item-heading {
        font-size: min(3.64583vw, 18.2px)
    }

    .index-flow-items-item:nth-child(even) .index-flow-items-item-in::after {
        display: none
    }

    .index-case {
        background-image: url(../images/sp/index/case-bg01.jpg);
        background-size: contain;
        padding-top: min(15.23438vw, 76.05px);
        padding-bottom: min(20.83333vw, 104px)
    }

    .index-case .m-title {
        margin-bottom: min(10.41667vw, 52px)
    }

    .index-voice {
        padding-bottom: min(13.28125vw, 66.3px)
    }

    .index-voice .m-title {
        margin-bottom: min(7.8125vw, 39px)
    }

    .index-voice-txt {
        margin-bottom: min(9.11458vw, 45.5px)
    }

    .index-voice-txt p {
        font-size: min(3.38542vw, 16.9px);
        line-height: 1.6
    }

    .index-faq {
        padding-top: min(9.11458vw, 45.5px);
        padding-bottom: min(8.85417vw, 44.2px)
    }

    .index-faq .m-title {
        margin-bottom: min(5.46875vw, 27.3px)
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .index-mv-contact {
        right:1.5em
    }

    .index-mv-features-items {
        margin: 0 min(-2.5vw, -48px)
    }

    .index-mv-features-items-item {
        padding: 0 min(.83333vw, 16px)
    }

    .index-lineup-items__flex {
        flex-wrap: wrap;
        justify-content: center;
        margin-bottom: 4.8em
    }

    .index-lineup-items__flex .index-lineup-items-item {
        width: 33.3%;
        padding: 0 .5em;
        margin-bottom: 1em
    }

    .index-flow-items-item-in {
        height: 100%;
        padding: 1.5em 1em 1.5em
    }

    .index-flow-items-item-figure {
        margin-bottom: 1.2em
    }
}

@media screen and (min-width: 1921px) {
    .index-mv-bg-img {
        width:100%
    }

    .index-present {
        background-size: 100% auto
    }

    .index-area {
        background-size: 100% auto
    }

    .index-case {
        background-size: 100% auto
    }
}

.page-sub {
    padding-top: 2.1em
}

.sub-mv {
    position: relative;
    background: url(../images/common/sub-mv-bg01.jpg) no-repeat bottom left;
    padding-bottom: 3.8em
}

.sub-mv-bg-img {
    width: 1559px;
    height: 378px;
    display: block;
    margin-left: auto
}

.sub-mv-title {
    position: absolute;
    top: 9.5em;
    left: 0;
    width: 100%;
    text-align: center
}

.sub-mv-title-en {
    color: #ffffff;
    font-size: 26px;
    font-family: "Avenir", "Montserrat";
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin-bottom: .7em
}

.sub-mv-title-heading {
    color: #ffffff;
    font-size: 47px;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.06em
}

@media screen and (max-width: 768px) {
    .page-sub {
        padding-top:0
    }

    .sub-mv {
        padding: 0 0 min(8.33333vw, 41.6px) 0
    }

    .sub-mv-bg {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center
    }

    .sub-mv-bg-img {
        max-width: 100%
    }

    .sub-mv-title {
        top: 45%;
        transform: translateY(-50%)
    }

    .sub-mv-title-en {
        font-size: min(3.64583vw, 18.2px)
    }

    .sub-mv-title-heading {
        font-size: min(7.29167vw, 36.4px)
    }
}

.about-main {
    padding: 4.2em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.about-top-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center
}

.about-top-title-img {
    width: 59px;
    height: 82px;
    max-width: 100%
}

.about-top-title-heading {
    color: #2e2e2e;
    font-size: 64px;
    font-family: "游明朝",YuMincho,"ヒラギノ明朝ProN W3","Hiragino Mincho ProN","HG明朝E","ＭＳ Ｐ明朝",serif;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.02em;
    margin-top: .6em;
    margin-bottom: 1.1em
}

.about-top-txt {
    margin-bottom: 3.9em
}

.about-top-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center;
    margin-bottom: 2em
}

.about-top-txt p:last-child {
    margin-bottom: 0
}

.about-top-images {
    display: flex;
    flex-direction: row
}

.about-top-images-item-figure {
    margin: 0
}

.about-top-images-item-figure-img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1
}

.about-osusume {
    background: #f8e8ee;
    padding: 4.2em 0 3.6em
}

.about-osusume .m-title {
    margin-bottom: 2.1em
}

.about-osusume-txt {
    margin-bottom: 2em
}

.about-osusume-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center
}

.about-osusume-items {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    margin: 0 -1em;
    counter-reset: osusume_count
}

.about-osusume-items-item {
    width: 33.3%;
    padding: 0 1em;
    margin-bottom: 1.1em;
    counter-increment: osusume_count
}

.about-osusume-items-item-in {
    background: linear-gradient(0deg, #ffefbf 0%, #b8e1c7 100%);
    padding: .4em;
    border-radius: 10px;
    border: 1px solid #fff;
    box-shadow: 0px 11px 20.37px 0.63px rgba(22,161,161,0.14)
}

.about-osusume-items-item-in-in {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: 4px;
    height: 7em
}

.about-osusume-items-item-in-in::after {
    content: counter(osusume_count, decimal);
    display: inline-block;
    position: absolute;
    bottom: 0;
    right: .1em;
    color: #ceebeb;
    font-size: 61px;
    font-family: "Avenir", "Montserrat";
    font-weight: 900;
    line-height: 1
}

.about-osusume-items-item-str {
    position: relative;
    z-index: 10;
    color: #2e2e2e;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 0.06em;
    text-align: center
}

.about-design {
    padding: 7.5em 0 0;
    margin-bottom: 6.4em
}

.about-design .m-title {
    margin-bottom: 5.8em
}

.about-design-box {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-bottom: 3.5em
}

.about-design-box__rev {
    flex-direction: row-reverse
}

.about-design-box__rev .about-design-box-right {
    flex: 1
}

.about-design-box__more-mb {
    margin-bottom: 5em
}

.about-design-figure {
    margin: 0
}

.about-design-content {
    position: relative;
    background: #e8f6f5;
    padding: 2.9em 1.5em 3.5em 6em
}

.about-design-content-heading {
    color: #2e2e2e;
    font-size: 28px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.06em;
    margin-bottom: .9em
}

.about-design-content-en {
    display: inline-block;
    position: absolute;
    top: -0.5em;
    right: .3em;
    color: #fff;
    font-size: 70px;
    font-family: "Avenir", "Montserrat";
    font-weight: 500;
    line-height: 1;
    padding-bottom: .2em;
    background: linear-gradient(90deg, #29d3c7 0%, #fe8c98 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.about-design-content-txt p {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.9
}

.about-design-content__rev {
    padding-left: 3.4em
}

.about-design-content__bg-pink {
    background-color: #ffe9ef
}

.about-design-content__bg-yellow {
    background-color: #fff7e1
}

.about-design-more {
    text-align: center
}

.about-design-more .m-btn {
    width: 505px
}

.about-info {
    margin-bottom: 6.1em
}

.about-info .m-title {
    margin-bottom: 2.2em
}

.about-info-txt {
    margin-bottom: 2.6em
}

.about-info-txt p {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.9
}

.about-info-items {
    display: flex;
    flex-direction: row;
    margin: 0 -0.7em 4.4em
}

.about-info-items-item {
    width: 25%;
    padding: 0 .7em
}

.about-info-items-item-figure {
    background: #f7eccc;
    padding: 1.1em 1.1em 1.6em;
    margin: 0 0 1.4em
}

.about-info-items-item-figure-img {
    width: 100%;
    height: auto;
    margin-bottom: 1.5em
}

.about-info-items-item-figure-caption {
    color: #2e2e2e;
    font-size: 19px;
    font-weight: bold;
    line-height: 1;
    text-align: center
}

.about-info-items-item-figure__bg-pink {
    background-color: #ffe9ef
}

.about-info-items-item-figure__bg-blue {
    background-color: #e1f8f7
}

.about-info-items-item-figure__bg-purple {
    background-color: #efe6f4
}

.about-info-items-item-txt p {
    color: #000000;
    font-size: 16px;
    font-weight: normal;
    line-height: 1.5
}

.about-info-more {
    text-align: center
}

@media screen and (max-width: 768px) {
    .about-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(10.67708vw, 53.3px) 0 0
    }

    .about-top-title-heading {
        font-size: min(7.8125vw, 39px)
    }

    .about-top-txt {
        margin: 0 0 min(10.15625vw, 50.7px) 0
    }

    .about-top-txt p {
        font-size: min(4.16667vw, 20.8px);
        margin: 0 0 min(5.20833vw, 26px) 0
    }

    .about-top-txt p:last-child {
        margin: 0 0 0 0
    }

    .about-top-images {
        flex-wrap: wrap
    }

    .about-top-images-item {
        width: 33.3%
    }

    .about-top-images-item-figure {
        margin: 0
    }

    .about-top-images-item-figure-img {
        vertical-align: bottom
    }

    .about-osusume {
        padding: min(10.67708vw, 53.3px) 0 min(9.11458vw, 45.5px)
    }

    .about-osusume .m-title {
        margin: 0 0 min(8.33333vw, 41.6px) 0
    }

    .about-osusume-txt {
        margin: 0 0 min(5.20833vw, 26px) 0
    }

    .about-osusume-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .about-osusume-items {
        flex-direction: column;
        margin: 0 min(-2.60417vw, -13px)
    }

    .about-osusume-items-item {
        width: 100%;
        margin-bottom: .8em
    }

    .about-osusume-items-item-in {
        padding: min(1.04167vw, 5.2px)
    }

    .about-osusume-items-item-in-in {
        height: auto;
        padding: 1em
    }

    .about-osusume-items-item-in-in::after {
        font-size: min(4.42708vw, 22.1px)
    }

    .about-osusume-items-item-str {
        font-size: min(4.16667vw, 20.8px)
    }

    .about-osusume-items-item:last-child {
        margin-bottom: 0
    }

    .about-design {
        padding: min(19.01042vw, 94.9px) 0 0;
        margin: 0 0 min(16.40625vw, 81.9px) 0
    }

    .about-design .m-title {
        margin: 0 0 min(8.33333vw, 41.6px) 0
    }

    .about-design-box {
        flex-direction: column;
        margin: 0 0 min(9.11458vw, 45.5px) 0
    }

    .about-design-box-right {
        padding-left: 1.5em
    }

    .about-design-box__rev .about-design-box-right {
        padding-left: 0;
        padding-right: 1.5em
    }

    .about-design-box__more-mb {
        margin: 0 0 min(13.02083vw, 65px) 0
    }

    .about-design-figure {
        margin: 0
    }

    .about-design-figure-img {
        width: 100%
    }

    .about-design-content {
        padding: min(7.29167vw, 36.4px) min(8.33333vw, 41.6px) min(8.85417vw, 44.2px) min(8.33333vw, 41.6px)
    }

    .about-design-content-heading {
        font-size: min(4.16667vw, 20.8px);
        margin: 0 0 min(2.34375vw, 11.7px) 0
    }

    .about-design-content-en {
        font-size: min(11.97917vw, 59.8px)
    }

    .about-design-content-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .about-design-content__rev {
        padding: min(7.29167vw, 36.4px) min(8.33333vw, 41.6px) min(8.85417vw, 44.2px) min(8.33333vw, 41.6px)
    }

    .about-design-more .m-btn {
        width: auto
    }

    .about-info {
        margin: 0 0 min(15.88542vw, 79.3px) 0
    }

    .about-info .m-title {
        margin: 0 0 min(8.33333vw, 41.6px) 0
    }

    .about-info-txt {
        margin: 0 0 min(6.77083vw, 33.8px) 0
    }

    .about-info-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .about-info-items {
        flex-direction: column;
        margin-bottom: min(11.45833vw, 57.2px)
    }

    .about-info-items-item {
        width: 100%;
        margin-bottom: 2.5em
    }

    .about-info-items-item-figure {
        margin-bottom: 1em
    }

    .about-info-items-item-figure-img {
        margin: 0 0 min(3.90625vw, 19.5px) 0
    }

    .about-info-items-item-figure-caption {
        font-size: min(4.16667vw, 20.8px)
    }

    .about-info-items-item-txt p {
        font-size: min(4.16667vw, 20.8px);
        line-height: 1.9
    }

    .about-info-items-item:last-child {
        margin-bottom: 0
    }

    .about-info-more .m-btn {
        width: auto
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .about-top-images {
        display:flex;
        flex-direction: row;
        flex-wrap: wrap
    }

    .about-top-images-item {
        width: 33.3%
    }

    .about-top-images-item-figure-img {
        width: 100%;
        vertical-align: bottom
    }

    .about-osusume-items-item {
        width: 50%
    }

    .about-design-figure-img {
        max-width: 40vw
    }

    .about-design-content {
        padding-left: 2em
    }

    .about-info-items {
        flex-wrap: wrap;
        margin-bottom: 1.4em
    }

    .about-info-items-item {
        width: 50%;
        margin-bottom: 3em
    }
}

@media screen and (min-width: 1921px) {
    .about-top-images-item {
        flex:1
    }
}

.case-main {
    padding: 5.8em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.case-main__single {
    background-image: url(../images/case/main-bg02.jpg)
}

.case-single {
    max-width: 960px;
    margin: 0 auto 8.5em
}

.case-single-title {
    text-align: center;
    margin-bottom: 2.4em
}

.case-single-title-meta {
    color: #6c6c6c;
    font-size: 19px;
    font-weight: normal;
    line-height: 1.2;
    margin-bottom: 1.7em
}

.case-single-title-heading {
    color: #000000;
    font-size: 47px;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.06em
}

.case-single-title::after {
    content: "";
    display: block;
    width: 100%;
    height: 4px;
    background: #5ba1e8;
    border-radius: 2px;
    margin-top: 2.1em
}

.case-single-meta {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.9;
    text-align: center;
    margin-bottom: 2em
}

.case-single-eyecatch {
    text-align: center;
    margin: 0 0 3em
}

.case-single-eyecatch-img {
    width: 100%;
    height: auto
}

.case-single-content {
    margin-bottom: 1.9em
}

.case-single-content p {
    color: #000;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.9;
    margin-bottom: 2em
}

.case-single-content::after {
    content: "";
    display: block;
    width: 100%;
    height: 4px;
    background: #5ba1e8;
    border-radius: 2px;
    margin-top: 2em
}

.case-single-footer {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between
}

.case-single-back-link {
    display: inline-block;
    color: #000000;
    font-size: 18px;
    font-weight: 500;
    background: url(../images/case/single-back-arrow01.png) no-repeat left center;
    padding: .1em 0 .2em 1.5em
}

.case-single-back-link:hover {
    color: #3eada4;
    background-image: url(../images/case/single-back-arrow02.png)
}

.case-single-social {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end
}

.case-single-social-item {
    margin-left: 1em
}

.case-single-social-item-link {
    display: inline-block
}

@media screen and (max-width: 768px) {
    .case-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(14.84375vw, 74.1px) 0 0
    }

    .case-single {
        margin-bottom: min(16.66667vw, 83.2px)
    }

    .case-single-title {
        margin-bottom: 1.2em
    }

    .case-single-title-meta {
        font-size: min(3.90625vw, 19.5px)
    }

    .case-single-title-heading {
        font-size: min(6.77083vw, 33.8px)
    }

    .case-single-title::after {
        margin: min(5.46875vw, 27.3px) 0 0 0
    }

    .case-single-meta {
        font-size: min(3.38542vw, 16.9px);
        margin: 0 0 min(5.20833vw, 26px) 0
    }

    .case-single-eyecatch {
        margin-bottom: 1em
    }

    .case-single-content {
        margin: 0 0 min(4.94792vw, 24.7px) 0
    }

    .case-single-content p {
        font-size: min(4.16667vw, 20.8px);
        margin: 0 0 min(5.20833vw, 26px) 0
    }

    .case-single-content::after {
        margin: min(5.20833vw, 26px) 0 0 0
    }

    .case-single-back-link {
        font-size: min(3.64583vw, 18.2px)
    }

    .case-single-social-item {
        margin: 0 0 0 min(2.60417vw, 13px)
    }

    .case-single-social-item-link-img {
        max-width: min(8.33333vw, 41.6px)
    }
}

.company-main {
    padding: 6.2em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.company-info table {
    width: 100%;
    margin-bottom: 4.1em
}

.company-info table tbody tr {
    background: url(../images/company/info-line01.png) no-repeat bottom left
}

.company-info table tbody tr th {
    width: 19em;
    color: #2e2e2e;
    font-size: 20px;
    font-weight: bold;
    line-height: 2;
    letter-spacing: 0.06em;
    padding: 1.2em 0
}

.company-info table tbody tr td {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: 500;
    line-height: 2.2;
    padding: 1.2em 0
}

.company-info table tbody tr td a {
    color: #2f42b5
}

.company-info table tbody tr td a:hover {
    text-decoration: underline
}

.company-map {
    margin-bottom: 5.5em
}

.company-map iframe {
    width: 100%;
    height: 580px;
    max-height: 60vh
}

@media screen and (max-width: 768px) {
    .company-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(12.5vw, 62.4px) 0 0
    }

    .company-info table,.company-info tbody,.company-info tr,.company-info th,.company-info td {
        display: block
    }

    .company-info table {
        margin: 0 0 min(4.16667vw, 20.8px) 0
    }

    .company-info table tbody tr {
        background: none
    }

    .company-info table tbody tr th {
        width: 100%;
        font-size: min(4.16667vw, 20.8px);
        padding: 0 0 .7em;
        background: url(../images/company/info-line01.png) repeat-x bottom left
    }

    .company-info table tbody tr td {
        font-size: min(3.90625vw, 19.5px);
        padding: .5em 0 2.5em 1em
    }

    .company-map {
        margin: 0 0 min(14.32292vw, 71.5px) 0
    }
}

.contact-main {
    padding: 4.3em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.contact-txt {
    margin-bottom: 3.3em
}

.contact-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center;
    margin-bottom: 1em
}

.contact-txt p:last-child {
    margin-bottom: 0
}

.contact-box {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    padding: 1.1em 2em
}

.contact-box-container {
    background: linear-gradient(0deg, #f3e3e8 0%, #e1f0f2 100%);
    padding: .4em;
    margin-bottom: 7.4em
}

.contact-box-container__less-mb {
    margin-bottom: 3.2em
}

.contact-box-left {
    flex: 1;
    padding: 1.1em 0;
    border-right: 1px solid #c6c6c6
}

.contact-box-left__full {
    border: 0
}

.contact-box-right {
    max-width: 320px;
    padding-left: 2.4em
}

.contact-box-heading {
    color: #2e2e2e;
    font-size: 26px;
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
    margin-bottom: .9em
}

.contact-box-tel {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin: 0 -1.6em 1.6em
}

.contact-box-tel-item {
    padding: 0 1.6em
}

.contact-box-tel-item-icon {
    font-size: 46px;
    margin-right: .2em
}

.contact-box-tel-item-str {
    color: #000000;
    font-size: 46px;
    font-family: "Avenir", "Montserrat";
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase
}

.contact-box-tel-item-str__tel {
    pointer-events: none
}

.contact-box-date {
    color: #2e2e2e;
    font-size: 17px;
    font-weight: 500;
    line-height: 1;
    text-align: center
}

.contact-form {
    margin-bottom: 7.5em
}

.contact-form-table {
    xmargin-bottom: 2.9em
}

.contact-form-table table {
    width: 100%
}

.contact-form-table table tbody tr th {
    width: 350px;
    max-width: 40%;
    padding-top: 1.4em;
    padding-bottom: 1.4em;
    vertical-align: top
}

.contact-form-table table tbody tr th label {
    display: inline-block;
    color: #2e2e2e;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.06em;
    cursor: pointer
}

.contact-form-table table tbody tr th label .__required {
    color: #e53131
}

.contact-form-table table tbody tr td {
    padding-bottom: 1.4em;
    vertical-align: top
}

.contact-form-table table tbody tr td input[type="text"],.contact-form-table table tbody tr td input[type="email"],.contact-form-table table tbody tr td input[type="tel"],.contact-form-table table tbody tr td select,.contact-form-table table tbody tr td textarea {
    width: 100%;
    max-width: 100%;
    color: #2e2e2e;
    font-size: 17px;
    font-weight: normal;
    line-height: 1.5;
    background: #fff;
    border: 3px solid #d5d5d5;
    padding: 1.3em 2.4em
}

.contact-form-table table tbody tr td input[type="text"].__sm,.contact-form-table table tbody tr td input[type="email"].__sm,.contact-form-table table tbody tr td input[type="tel"].__sm,.contact-form-table table tbody tr td select.__sm,.contact-form-table table tbody tr td textarea.__sm {
    width: 10em
}

.contact-form-table table tbody tr td button {
    font-size: 16px;
    background: #e53131;
    color: #fff;
    border: 0;
    padding: .3em 1em;
    border-radius: 15px;
    margin-left: 1em;
    cursor: pointer;
    transition: .3s
}

.contact-form-table table tbody tr td button:hover {
    filter: brightness(1.2)
}

.contact-form-table table tbody tr td select {
    -webkit-appearance: none
}

.contact-form-table table tbody tr td .select-wrap {
    position: relative
}

.contact-form-table table tbody tr td .select-wrap::after {
    content: "▼";
    display: inline-block;
    position: absolute;
    top: 50%;
    right: 1em;
    color: #2e2e2e;
    transform: translateY(-50%)
}

.contact-form-table table tbody tr td p {
    margin-bottom: 1.5em
}

.contact-form-table table tbody tr td .__icon {
    display: inline-block;
    min-width: 2em;
    margin-left: 1em;
    margin-right: 1em
}

.contact-form-table table tbody tr td .__icon:first-child {
    margin-left: 0
}

.contact-form-agree {
    text-align: center;
    margin-bottom: 2.1em
}

.contact-form-agree-label {
    display: inline-block;
    color: #2e2e2e;
    font-size: 18px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.06em
}

.contact-form-agree-label a {
    color: #2659ad;
    text-decoration: underline
}

.contact-form-btns {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center
}

.contact-form-div {
    display: flex;
    flex-direction: row;
    margin: 0 -1em
}

.contact-form-div-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-self: start;
    width: 50%;
    padding: 0 1em
}

.contact-form-div-item input {
    flex: 1
}

@media screen and (max-width: 768px) {
    .contact-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(10.9375vw, 54.6px) 0 0
    }

    .contact-txt {
        margin: 0 0 min(8.59375vw, 42.9px) 0
    }

    .contact-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .contact-box {
        flex-direction: column;
        padding: 1.5em 1.5em
    }

    .contact-box-container {
        padding: min(1.04167vw, 5.2px);
        margin: 0 0 min(19.01042vw, 94.9px) 0
    }

    .contact-box-container__less-mb {
        margin: 0 0 min(8.33333vw, 41.6px) 0
    }

    .contact-box-left {
        width: 100%;
        padding: 0 0 1em;
        border: 0;
        border-bottom: 1px solid #c6c6c6
    }

    .contact-box-right {
        width: 100%;
        padding: 1em 0 0
    }

    .contact-box-heading {
        font-size: min(3.90625vw, 19.5px);
        margin: 0 0 .7em
    }

    .contact-box-tel {
        flex-direction: column;
        margin: 0 min(-4.16667vw, -20.8px) min(4.16667vw, 20.8px)
    }

    .contact-box-tel-item {
        width: 100%;
        text-align: center;
        padding: 0 min(4.16667vw, 20.8px);
        margin-bottom: .5em
    }

    .contact-box-tel-item-icon {
        font-size: min(6.77083vw, 33.8px);
        max-height: .7em;
        margin: 0 min(.52083vw, 2.6px) 0 0
    }

    .contact-box-tel-item-str {
        font-size: min(6.77083vw, 33.8px)
    }

    .contact-box-tel-item-str__tel {
        pointer-events: all
    }

    .contact-box-tel-item:last-child {
        margin-bottom: 0
    }

    .contact-box-date {
        font-size: min(2.60417vw, 13px)
    }

    .contact-box-more {
        text-align: center
    }

    .contact-form {
        margin: 0 0 min(12.5vw, 62.4px) 0
    }

    .contact-form-table {
        margin: 0
    }

    .contact-form-table table,.contact-form-table tbody,.contact-form-table tr,.contact-form-table th,.contact-form-table td {
        display: block
    }

    .contact-form-table table tbody tr th {
        max-width: 100%;
        padding: 0 0 .7em
    }

    .contact-form-table table tbody tr th label {
        font-size: min(3.64583vw, 18.2px)
    }

    .contact-form-table table tbody tr td {
        padding: 0 0 2.5em 0
    }

    .contact-form-table table tbody tr td input[type="text"],.contact-form-table table tbody tr td input[type="email"],.contact-form-table table tbody tr td input[type="tel"],.contact-form-table table tbody tr td select,.contact-form-table table tbody tr td textarea {
        font-size: 16px;
        padding: .6em
    }

    .contact-form-table table tbody tr td input[type="text"].__sm,.contact-form-table table tbody tr td input[type="email"].__sm,.contact-form-table table tbody tr td input[type="tel"].__sm,.contact-form-table table tbody tr td select.__sm,.contact-form-table table tbody tr td textarea.__sm {
        width: 8em
    }

    .contact-form-table table tbody tr td button {
        font-size: min(3.64583vw, 18.2px)
    }

    .contact-form-table table tbody tr td p {
        margin: 0 0 min(3.90625vw, 19.5px) 0
    }

    .contact-form-table table tbody tr td .__icon {
        margin: 0 min(2.60417vw, 13px) 0 0
    }

    .contact-form-agree {
        margin: 0 0 2.5em 0
    }

    .contact-form-agree-label {
        font-size: min(3.64583vw, 18.2px)
    }

    .contact-form-btns {
        flex-direction: column
    }

    .contact-form-btns-item {
        width: 100%;
        margin-bottom: .8em
    }

    .contact-form-btns-item .m-btn {
        width: 100%
    }

    .contact-form-btns-item:last-child {
        margin-bottom: 0
    }

    .contact-form-div {
        flex-direction: column
    }

    .contact-form-div-item {
        width: 100%;
        margin-bottom: 1em
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .contact-box {
        flex-direction:column;
        padding: 2em
    }

    .contact-box-left {
        width: 100%;
        padding: 0 0 1em;
        border: 0;
        border-bottom: 1px solid #c6c6c6
    }

    .contact-box-right {
        width: 100%;
        padding: 1.3em 0 0
    }

    .contact-box-tel-item-str {
        font-size: 38px
    }

    .contact-form-table table tbody tr th {
        width: 300px
    }
}

.faq-main {
    padding: 2.7em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.faq-txt {
    margin-bottom: 4.6em
}

.faq-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center
}

.faq-txt p a {
    color: #2655dc
}

.faq-txt p a:hover {
    text-decoration: underline
}

@media screen and (max-width: 768px) {
    .faq-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(8.33333vw, 41.6px) 0 0
    }

    .faq-txt {
        margin-bottom: 2em
    }

    .faq-txt p {
        font-size: min(4.16667vw, 20.8px)
    }
}

.flow-main {
    padding: 2.6em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.flow-txt {
    margin-bottom: 3.4em
}

.flow-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center
}

.flow-steps {
    margin-bottom: 6.2em
}

.flow-steps-item {
    position: relative;
    margin-bottom: 5.1em
}

.flow-steps-item-box {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: start;
    background: #fff;
    border: 3px solid #ffcfe6;
    padding: 1.1em 2em 1.1em 1.1em
}

.flow-steps-item-box-right {
    padding-left: 2.4em
}

.flow-steps-item-figure {
    margin: 0
}

.flow-steps-item-heading {
    color: #2e2e2e;
    font-size: 26px;
    font-weight: bold;
    line-height: 1;
    margin-bottom: .8em
}

.flow-steps-item-heading-num {
    display: inline-block;
    color: #fff;
    font-size: 29px;
    font-family: "Avenir", "Montserrat";
    font-weight: 900;
    line-height: 1;
    background: linear-gradient(90deg, #29d3c7 0%, #fe8c98 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    padding-right: .4em;
    margin-right: .7em;
    border-right: 4px solid #fc8d99
}

.flow-steps-item-txt p {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: 500;
    line-height: 2
}

.flow-steps-item-txt p small {
    display: inline-block;
    font-size: 16px;
    color: #5e5e5e
}

.flow-steps-item::after {
    content: "";
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    background: url(../images/flow/steps-arrow01.png) no-repeat center bottom;
    width: 133px;
    height: 40px;
    background-size: contain;
    transform: translateX(-50%) translateY(150%)
}

.flow-steps-item:last-child {
    margin-bottom: 0
}

.flow-steps-item:last-child::after {
    display: none
}

@media screen and (max-width: 768px) {
    .flow-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(8.33333vw, 41.6px) 0 0
    }

    .flow-txt {
        margin: 0 0 min(8.85417vw, 44.2px) 0
    }

    .flow-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .flow-steps {
        margin: 0 0 min(16.14583vw, 80.6px) 0
    }

    .flow-steps-item {
        margin: 0 0 min(13.28125vw, 66.3px) 0
    }

    .flow-steps-item-box {
        flex-direction: column
    }

    .flow-steps-item-box-left {
        width: 100%;
        margin-bottom: 1em
    }

    .flow-steps-item-box-right {
        width: 100%;
        padding: 0
    }

    .flow-steps-item-figure {
        margin: 0;
        text-align: center
    }

    .flow-steps-item-figure-img {
        width: 100%
    }

    .flow-steps-item-heading {
        font-size: min(4.16667vw, 20.8px);
        margin: 0 0 min(2.08333vw, 10.4px) 0
    }

    .flow-steps-item-heading-num {
        font-size: min(4.16667vw, 20.8px);
        padding: 0 min(1.04167vw, 5.2px) 0 0;
        margin: 0 min(1.82292vw, 9.1px) 0 0;
        border-right-width: 2px
    }

    .flow-steps-item-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .flow-steps-item-txt p small {
        font-size: min(3.64583vw, 18.2px)
    }

    .flow-steps-item::after {
        max-width: 25%;
        background-position: center center;
        transform: translateX(-50%) translateY(125%)
    }

    .flow-steps-item:last-child {
        margin: 0 0 0 0
    }
}

.lineup-main {
    padding: 6.2em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.lineup-design {
    padding: 0 0 5em
}

.lineup-design .m-title {
    margin-bottom: 2.2em
}

.lineup-design-txt {
    margin-bottom: 3.9em
}

.lineup-design-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    text-align: center
}

.lineup-design__ssize {
    padding-top: 5.5em
}

.lineup-title {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: start;
    background: #e8f6f5;
    padding: 2.5em 1em 2.5em 4.2em;
    margin-bottom: 3.7em;
    position: relative
}

.lineup-title-heading {
    position: relative;
    z-index: 10;
    max-width: 40%;
    color: #2e2e2e;
    font-size: 36px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.06em;
    padding-right: 1.4em
}

.lineup-title-en {
    position: absolute;
    top: 50%;
    left: .2em;
    color: #ffffff;
    font-size: 132px;
    font-family: "Avenir", "Montserrat";
    font-weight: 500;
    line-height: 1;
    opacity: .6;
    transform: translateY(-50%)
}

.lineup-title-txt {
    position: relative;
    z-index: 10;
    flex: 1
}

.lineup-title-txt p {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.9
}

.lineup-title__bg-pink {
    background-color: #ffe9ef
}

.lineup-title__bg-yellow {
    background-color: #fff7e1
}

.lineup-title__less-mb {
    margin-bottom: 2.5em
}

.lineup-items {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin: 0 -1.4em
}

.lineup-items-item {
    width: 50%;
    padding: 0 1.4em;
    margin-bottom: 4.1em
}

.lineup-items-item-heading {
    color: #2e2e2e;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.8;
    background: url(../images/lineup/items-line01.png) no-repeat bottom left;
    padding-bottom: .7em;
    margin-bottom: .8em
}

.lineup-items-item-box {
    display: flex;
    flex-direction: row
}

.lineup-items-item-box-right {
    padding-left: 2.2em
}

.lineup-items-item-figure {
    width: 233px;
    max-width: 40%
}

.lineup-items-item-figure__border .lineup-items-item-figure-img {
    border: 1px solid #cacaca
}

.lineup-items-item-txt p {
    color: #2e2e2e;
    font-size: 17px;
    font-weight: normal;
    line-height: 1.2;
    margin-bottom: 1.1em
}

.lineup-items-item-txt p:last-child {
    margin-bottom: 0
}

.lineup-menu {
    margin: 0;
    text-align: center
}

.lineup-menu-link-img {
    width: 100%
}

.lineup-contact {
    background: url(../images/lineup/contact-bg01.jpg) no-repeat top center;
    background-size: cover;
    padding: 3.6em 0 4em
}

.lineup-contact-txt {
    margin-bottom: 3.1em
}

.lineup-contact-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.7;
    text-align: center
}

.lineup-contact-heading {
    color: #000000;
    font-size: 29px;
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
    margin-bottom: 1em
}

.lineup-contact-box {
    width: 995px;
    max-width: 100%;
    background: #39b4b4;
    border-radius: 26px;
    padding: 1.5em 3em 3em;
    margin: 0 auto
}

.lineup-contact-box-title {
    text-align: center;
    margin-bottom: 1.6em
}

.lineup-contact-box-title-en {
    color: #ffffff;
    font-size: 26px;
    font-family: "Avenir", "Montserrat";
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin-bottom: 1.2em
}

.lineup-contact-box-title-heading {
    color: #ffffff;
    font-size: 30px;
    font-weight: bold
}

.lineup-contact-box-links {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-bottom: 2em
}

.lineup-contact-box-links-item {
    width: 50%;
    padding: 0 .8em
}

.lineup-contact-box-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.06em;
    text-align: center
}

.lineup-relief {
    padding: 7.2em 0 0;
    margin-bottom: 6.4em
}

.lineup-relief .m-title {
    margin-bottom: 2.6em
}

.lineup-relief-txt {
    margin-bottom: 4.6em
}

.lineup-relief-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    text-align: center
}

.lineup-relief-items {
    display: flex;
    flex-direction: row;
    margin: 0 -0.4em 2.4em
}

.lineup-relief-items-item {
    width: 50%;
    padding: 0 .4em
}

.lineup-relief-items-item-heading {
    color: #2e2e2e;
    font-size: 26px;
    font-weight: bold;
    line-height: 1;
    border-left: 7px solid #00b2a7;
    padding: .1em 0 .2em .6em;
    margin-bottom: 1em
}

.lineup-relief-items-item-figure {
    margin: 0
}

.lineup-relief-items-item-figure-img {
    width: 100%
}

.lineup-relief-attention {
    color: #2e2e2e;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    text-align: right
}

.lineup-material {
    padding: 0 0 3.6em
}

.lineup-material-txt {
    margin-bottom: 3em
}

.lineup-material-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    text-align: center
}

.lineup-material-items {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin: 0 -0.8em 0
}

.lineup-material-items-item {
    width: 25%;
    padding: 0 .8em;
    margin-bottom: 2.7em
}

.lineup-material-items-item-figure {
    margin: 0 0 .6em
}

.lineup-material-items-item-figure-img {
    width: 100%
}

.lineup-material-items-item-heading {
    color: #2e2e2e;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.4;
    background: url(../images/lineup/material-line01.png) no-repeat bottom left;
    padding-bottom: .7em;
    margin-bottom: .8em;
    margin-right: -1em
}

.lineup-material-items-item-txt p {
    color: #2e2e2e;
    font-size: 17px;
    font-weight: normal;
    line-height: 1.4
}

.lineup-material-attention {
    color: #2e2e2e;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    text-align: right;
    margin-bottom: 3em
}

.lineup-material-attention__no-mb {
    margin-bottom: 0
}

.lineup-bottom {
    text-align: center;
    margin: 4em 0 0
}

.lineup-bottom-txt {
    margin-bottom: 3.1em
}

.lineup-bottom-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.7
}

.lineup-bottom-catch {
    color: #00b2a7;
    font-size: 29px;
    font-weight: bold;
    line-height: 1.2
}

@media screen and (max-width: 768px) {
    .lineup-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(15.88542vw, 79.3px) 0 0
    }

    .lineup-design {
        padding: 0 0 min(12.76042vw, 63.7px)
    }

    .lineup-design .m-title {
        margin: 0 0 min(5.72917vw, 28.6px) 0
    }

    .lineup-design-txt {
        margin: 0 0 min(10.15625vw, 50.7px) 0
    }

    .lineup-design-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-design__ssize {
        padding: min(14.0625vw, 70.2px) 0 0 0
    }

    .lineup-title {
        flex-direction: column;
        padding: 2em 1.5em;
        margin: 0 0 min(9.63542vw, 48.1px) 0
    }

    .lineup-title-heading {
        max-width: 100%;
        font-size: min(5.20833vw, 26px);
        padding: 0;
        margin-bottom: 1em
    }

    .lineup-title-en {
        top: 0;
        transform: none;
        font-size: min(19.27083vw, 96.2px)
    }

    .lineup-title-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-title__less-mb {
        margin: 0 0 min(6.51042vw, 32.5px) 0
    }

    .lineup-items {
        flex-direction: column;
        margin: 0
    }

    .lineup-items-item {
        width: 100%;
        padding: 0
    }

    .lineup-items-item-heading {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-items-item-box {
        flex-direction: column
    }

    .lineup-items-item-box-left {
        width: 100%;
        max-width: 100%;
        margin-bottom: 1em
    }

    .lineup-items-item-box-right {
        width: 100%;
        padding: 0
    }

    .lineup-items-item-figure {
        width: 100%;
        max-width: 100%;
        text-align: center
    }

    .lineup-items-item-figure-img {
        width: 100%
    }

    .lineup-items-item-txt p {
        font-size: min(4.16667vw, 20.8px);
        line-height: 1.9;
        margin: 0 0 min(2.86458vw, 14.3px) 0
    }

    .lineup-items-item-txt p:last-child {
        margin: 0 0 0 0
    }

    .lineup-menu {
        margin: 0
    }

    .lineup-contact {
        padding: min(8.33333vw, 41.6px) 0 min(8.33333vw, 41.6px)
    }

    .lineup-contact-txt {
        margin: 0 0 min(8.07292vw, 40.3px) 0
    }

    .lineup-contact-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-contact-heading {
        font-size: min(3.38542vw, 16.9px);
        line-height: 1.5
    }

    .lineup-contact-box {
        padding: 1.5em 1.5em;
        margin: 0
    }

    .lineup-contact-box-title-en {
        font-size: min(3.64583vw, 18.2px);
        margin-bottom: .8em
    }

    .lineup-contact-box-title-heading {
        font-size: min(3.64583vw, 18.2px)
    }

    .lineup-contact-box-links {
        flex-direction: column;
        margin-bottom: 1.2em
    }

    .lineup-contact-box-links-item {
        width: 100%;
        padding: 0;
        margin-bottom: 1em
    }

    .lineup-contact-box-links-item .m-btn {
        width: 100%
    }

    .lineup-contact-box-links-item:last-child {
        margin-bottom: 0
    }

    .lineup-contact-box-txt p {
        font-size: min(3.125vw, 15.6px);
        letter-spacing: 0.03em;
        line-height: 1.6
    }

    .lineup-relief {
        padding: min(18.22917vw, 91px) 0 0;
        margin: 0 0 min(16.40625vw, 81.9px) 0
    }

    .lineup-relief .m-title {
        margin: 0 0 min(6.77083vw, 33.8px) 0
    }

    .lineup-relief-txt {
        margin: 0 0 min(11.97917vw, 59.8px) 0
    }

    .lineup-relief-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-relief-items {
        flex-direction: column;
        margin: 0 0 min(6.25vw, 31.2px)
    }

    .lineup-relief-items-item {
        width: 100%;
        padding: 0;
        margin-bottom: 2.5em
    }

    .lineup-relief-items-item-heading {
        font-size: min(4.16667vw, 20.8px);
        margin-bottom: .7em
    }

    .lineup-relief-items-item-figure {
        margin: 0
    }

    .lineup-relief-attention {
        font-size: min(3.90625vw, 19.5px)
    }

    .lineup-material {
        padding: 0 0 min(9.11458vw, 45.5px)
    }

    .lineup-material-txt {
        margin: 0 0 min(7.8125vw, 39px) 0
    }

    .lineup-material-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-material-items {
        flex-direction: column;
        margin: 0 0 min(7.03125vw, 35.1px)
    }

    .lineup-material-items-item {
        width: 100%;
        padding: 0;
        margin-bottom: 2.5em
    }

    .lineup-material-items-item-heading {
        font-size: min(4.16667vw, 20.8px);
        background-repeat: repeat-x
    }

    .lineup-material-items-item-txt p {
        font-size: min(4.16667vw, 20.8px);
        line-height: 1.9
    }

    .lineup-material-items-item:last-child {
        margin-bottom: 0
    }

    .lineup-material-attention {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-bottom {
        margin: min(10.41667vw, 52px) 0 0
    }

    .lineup-bottom-txt {
        margin: 0 0 min(8.07292vw, 40.3px) 0
    }

    .lineup-bottom-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .lineup-bottom-catch {
        font-size: min(4.16667vw, 20.8px);
        line-height: 1.5
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .lineup-items {
        flex-direction:column
    }

    .lineup-items-item {
        width: 100%
    }

    .lineup-items-item-heading {
        background-repeat: repeat-x
    }

    .lineup-material-items {
        flex-wrap: wrap;
        margin-bottom: 0
    }

    .lineup-material-items-item {
        width: 50%;
        margin-bottom: 3em
    }
}

.privacy-main {
    padding: 2.7em 0 9em;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.privacy-main-txt {
    margin-bottom: 3em
}

.privacy-main-txt p {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: normal;
    line-height: 2;
    text-align: center
}

.privacy-content {
    max-width: 1000px;
    margin: 0 auto
}

.privacy-content h2 {
    color: #2e2e2e;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.7;
    margin-top: 2.5em;
    margin-bottom: .7em
}

.privacy-content h2+h3 {
    margin-top: 0
}

.privacy-content h3 {
    color: #2e2e2e;
    font-size: 21px;
    font-weight: bold;
    line-height: 1.7;
    margin-top: 2.5em;
    margin-bottom: .7em
}

.privacy-content p {
    color: #2e2e2e;
    font-size: 18px;
    font-weight: normal;
    line-height: 2;
    margin-bottom: 1em
}

.privacy-content ul li {
    list-style: disc inside;
    color: #2e2e2e;
    font-size: 18px;
    font-weight: normal;
    line-height: 2;
    padding-left: 1em;
    text-indent: -1em
}

.privacy-content *:first-child {
    margin-top: 0
}

.privacy-content *:last-child {
    margin-bottom: 0
}

@media screen and (max-width: 768px) {
    .privacy-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(6.77083vw, 33.8px) 0 min(22.91667vw, 114.4px)
    }

    .privacy-main-txt p {
        font-size: min(3.90625vw, 19.5px)
    }

    .privacy-content {
        margin: 0 0 3em
    }

    .privacy-content h2 {
        font-size: min(4.94792vw, 24.7px)
    }

    .privacy-content h3 {
        font-size: min(4.42708vw, 22.1px)
    }

    .privacy-content p {
        font-size: min(3.90625vw, 19.5px)
    }

    .privacy-content ul li {
        font-size: min(3.90625vw, 19.5px)
    }

    .privacy-content *:first-child {
        margin: 0 0 0 0
    }

    .privacy-content *:last-child {
        margin: 0 0 0 0
    }
}

.voice-main {
    padding: 2.6em 0 0;
    background: url(../images/common/sub-bg01.jpg) repeat-y top center;
    background-size: 100% auto
}

.voice-top {
    margin-bottom: 6.1em
}

.voice-top-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center
}

.voice-top-title-container {
    position: relative;
    padding: 5em 0 0;
    margin-bottom: 2.2em
}

.voice-top-title-container::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: -0.5em;
    left: -0.6em;
    background: url(../images/voice/top-img01.png) no-repeat top left;
    width: 424px;
    height: 364px;
    background-size: contain;
    max-width: 30vw
}

.voice-top-title-container::after {
    content: "";
    display: inline-block;
    position: absolute;
    top: -1.1em;
    right: -1.1em;
    background: url(../images/voice/top-img02.png) no-repeat top right;
    width: 341px;
    height: 341px;
    background-size: contain;
    max-width: 30vw
}

.voice-top-title-heading {
    text-align: center;
    margin-bottom: 2.1em
}

.voice-top-title-heading-img {
    max-width: 100%
}

.voice-top-title-subHeading {
    color: #2e2e2e;
    font-size: 64px;
    font-family: "游明朝",YuMincho,"ヒラギノ明朝ProN W3","Hiragino Mincho ProN","HG明朝E","ＭＳ Ｐ明朝",serif;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.02em;
    text-align: center
}

.voice-top-title-subHeading small {
    font-size: 42px
}

.voice-top-voices-container {
    position: relative
}

.voice-top-voices-heading {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.06em;
    text-align: center
}

.voice-top-voices-list {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin-top: -4.3em
}

.voice-top-voices-list-item {
    position: relative
}

.voice-top-voices-list-item:nth-child(1) {
    left: -0.6em
}

.voice-top-voices-list-item:nth-child(2) {
    padding-top: 6em
}

.voice-top-voices-list-item:nth-child(3) {
    right: -1.1em
}

@media screen and (max-width: 768px) {
    .voice-main {
        background-image:url(../images/sp/common/sub-bg01.jpg);
        padding: min(12.5vw, 62.4px) 0 0
    }

    .voice-top {
        margin: 0 0 min(8.33333vw, 41.6px) 0
    }

    .voice-top-txt p {
        font-size: min(4.16667vw, 20.8px)
    }

    .voice-top-title-container {
        padding: min(8.33333vw, 41.6px) 0 0;
        margin: 0 0 min(5.72917vw, 28.6px) 0
    }

    .voice-top-title-container::before {
        display: none
    }

    .voice-top-title-container::after {
        display: none
    }

    .voice-top-title-heading {
        margin: 0 0 min(5.46875vw, 27.3px) 0
    }

    .voice-top-title-heading-img {
        max-width: 70%
    }

    .voice-top-title-subHeading {
        font-size: min(7.03125vw, 35.1px)
    }

    .voice-top-title-subHeading small {
        font-size: min(4.94792vw, 24.7px)
    }

    .voice-top-voices-heading {
        font-size: min(4.16667vw, 20.8px);
        line-height: 1.5;
        margin-bottom: 1.5em
    }

    .voice-top-voices-list {
        flex-direction: column;
        margin: 0
    }

    .voice-top-voices-list-item {
        width: 100%
    }

    .voice-top-voices-list-item-img {
        width: 100%
    }

    .voice-top-voices-list-item:nth-child(2) {
        padding: 0
    }

    .voice-top-voices-list-item:nth-child(2) .voice-top-voices-list-item-img {
        width: 70%
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .voice-top-voices-list {
        margin-top:0em
    }

    .voice-top-voices-list-item-img {
        width: 100%
    }
}

.m-footer {
    background: url(../images/common/m-footer-bg01.jpg) no-repeat top center;
    padding: 5.7em 0 1.9em;
    overflow: hidden
}

.m-footer .m-title {
    margin-bottom: 2.7em
}

.m-footer-txt {
    margin-bottom: 2.7em
}

.m-footer-txt p {
    color: #2e2e2e;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.06em;
    text-align: center
}

.m-footer-links {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin: 0 -1em 4em
}

.m-footer-links-item {
    padding: 0 1em
}

.m-footer-banners {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin: 0 -1em 3.5em
}

.m-footer-banners-item {
    width: 33.3%;
    padding: 0 1em
}

.m-footer-banners-item-link-figure {
    margin: 0;
    text-align: center
}

.m-footer-banners-item-link-figure-img {
    width: 100%;
    height: auto
}

.m-footer-logo {
    text-align: center;
    margin-bottom: 3.3em
}

.m-footer-logo-img {
    max-width: 100%
}

.m-footer-meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #c7c7c7;
    margin: 0 -1.2em 2.5em;
    padding-bottom: 1.9em
}

.m-footer-meta-item {
    padding: 0 1.2em
}

.m-footer-meta-item-str {
    color: #141414;
    font-size: 20px;
    font-weight: 500;
    line-height: 1
}

.m-footer-meta-item-str__icon {
    padding: .1em 0 .1em 1.5em
}

.m-footer-meta-item-str__address {
    background: url(../images/common/footer-icon01.png) no-repeat left center
}

.m-footer-meta-item-str__tel {
    background: url(../images/common/footer-icon02.png) no-repeat left center;
    pointer-events: none
}

.m-footer-menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1em
}

.m-footer-menu-item {
    margin-bottom: 1em
}

.m-footer-menu-item-link {
    color: #777777;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    padding: 0 1.1em
}

.m-footer-menu-item-link:hover {
    color: #3eada4
}

.m-footer-menu-item::after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 1em;
    background: #777777
}

.m-footer-menu-item:last-child::after {
    display: none
}

.m-footer-copyright {
    color: #bbbbbb;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    text-align: center
}

@media screen and (max-width: 768px) {
    .m-footer {
        padding-top:min(11.97917vw, 59.8px);
        padding-bottom: min(19.53125vw, 97.5px);
        background-image: url(../images/sp/common/m-footer-bg01.jpg);
        background-position: top center;
        background-size: 100% auto
    }

    .m-footer .m-title {
        margin-bottom: min(2.60417vw, 13px)
    }

    .m-footer-txt {
        margin-bottom: min(8.85417vw, 44.2px)
    }

    .m-footer-txt p {
        font-size: min(3.38542vw, 16.9px);
        letter-spacing: 0.03em;
        line-height: 1.6
    }

    .m-footer-links {
        margin: 0 -0.6em min(12.5vw, 62.4px)
    }

    .m-footer-links-item {
        width: 50%;
        padding: 0 .6em
    }

    .m-footer-banners {
        flex-wrap: wrap;
        margin: 0 -0.3em min(12.5vw, 62.4px)
    }

    .m-footer-banners-item {
        width: 50%;
        padding: 0 .3em;
        margin-bottom: .7em
    }

    .m-footer-logo {
        margin-bottom: min(6.90104vw, 34.45px)
    }

    .m-footer-logo-img {
        max-width: min(57.94271vw, 289.25px)
    }

    .m-footer-meta {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin-bottom: min(13.54167vw, 67.6px);
        padding-bottom: 0;
        border: 0
    }

    .m-footer-meta-item {
        margin-bottom: min(3.64583vw, 18.2px)
    }

    .m-footer-meta-item-str {
        font-size: min(3.38542vw, 16.9px)
    }

    .m-footer-meta-item-str__address {
        background-size: auto 1.4em
    }

    .m-footer-meta-item-str__tel {
        font-size: min(7.29167vw, 36.4px);
        background-size: auto .7em;
        background-position: top .6em left;
        padding-left: .9em;
        pointer-events: all
    }

    .m-footer-meta-item:last-child {
        margin-bottom: 0
    }

    .m-footer-menu {
        display: none
    }

    .m-footer-copyright {
        font-size: min(2.86458vw, 14.3px)
    }
}

@media screen and (max-width: 1280px) and (min-width: 769px) {
    .m-footer-logo-img {
        max-width:50%
    }

    .m-footer-meta {
        flex-direction: column;
        align-items: center
    }

    .m-footer-meta-item {
        margin-bottom: 2em
    }
}

@media screen and (min-width: 1921px) {
    .m-footer {
        background-size:100% auto
    }
}

.sp-menu {
    display: none;
    position: absolute;
    top: 0px;
    left: 9999px;
    width: 100%;
    height: 100vh;
    transition: 0.5s;
    z-index: 100;
    background: #1cb0a4
}

.sp-menu-close {
    position: absolute;
    top: .5em;
    right: .5em;
    display: inline-block;
    font-size: .48rem;
    font-weight: bold;
    color: #fff;
    padding: .3em
}

.sp-menu-body {
    width: 100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 0 2em
}

.sp-menu-main {
    padding-top: 2em
}

.sp-menu-list {
    padding-bottom: 2.7em
}

.sp-menu-list-item-link {
    display: flex;
    flex-direction: column;
    padding: 1em 1.5em 1em min(26.04167vw, 130px);
    color: #fff
}

.sp-menu-list-item-link-en {
    color: #a1e3de;
    font-size: min(2.86458vw, 14.3px);
    font-family: "Avenir", "Montserrat";
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin-bottom: .9em
}

.sp-menu-list-item-link-str {
    position: relative;
    color: #fff;
    font-size: min(5.33854vw, 26.65px);
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.06em
}

.sp-menu-list-item-link:hover .sp-menu-list-item-link-str {
    color: #edeb5e
}

.sp-menu-list-item-link:hover .sp-menu-list-item-link-str::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    background: #edeb5e;
    border-radius: 100%;
    width: .5em;
    height: .5em;
    transform: translateY(-50%) translateX(-200%)
}

.sp-menu-list-item-sub {
    background: #303132
}

.sp-menu-list-item-sub-item-link {
    display: block;
    padding: 1em 1.5em 1em 2.5em;
    font-weight: bold;
    color: #fff
}

.sp-menu-list-item__hasSub .sp-menu-list-item-sub {
    display: none
}

.sp-menu-list-item__hasSub .sp-menu-list-item-link::after {
    content: ">";
    display: inline-block;
    transform: rotate(-90deg) scaleX(-50%);
    margin-left: min(8.33333vw, 41.6px)
}

.sp-menu-list-item__hasSub.is-open .sp-menu-list-item-sub {
    display: block
}

.sp-menu-list-item__hasSub.is-open .sp-menu-list-item-link::after {
    transform: rotate(90deg) scaleX(-50%)
}

.sp-menu-bottom {
    background: #fff;
    padding: min(10.41667vw, 52px) 1.5em min(11.71875vw, 58.5px)
}

.sp-menu-bottom-tel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: min(9.76562vw, 48.75px)
}

.sp-menu-bottom-tel-item {
    margin-bottom: .5em
}

.sp-menu-bottom-tel-item-str {
    color: #000000;
    font-size: min(7.29167vw, 36.4px);
    font-family: "Avenir", "Montserrat";
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    background: url(../images/common/sp-menu-icon01.png) no-repeat left center;
    background-size: auto .7em;
    padding: 0 1em
}

.sp-menu-bottom-tel-item-str__fax {
    background-image: url(../images/common/sp-menu-icon02.png)
}

.sp-menu-bottom-tel-item:last-child {
    margin-bottom: 0
}

.sp-menu-bottom-address {
    text-align: center;
    margin-bottom: 1.1em
}

.sp-menu-bottom-address-str {
    display: inline-block;
    color: #2e2e2e;
    font-size: min(3.38542vw, 16.9px);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.06em;
    background: url(../images/common/sp-menu-icon03.png) no-repeat left center;
    background-size: auto .9em;
    padding: 0 1em
}

.sp-menu-bottom-links {
    display: flex;
    flex-direction: row;
    margin: 0 -0.3em 0
}

.sp-menu-bottom-links-item {
    width: 50%;
    padding: 0 .3em
}

.sp-menu.active {
    display: block;
    left: 0px
}