@charset "UTF-8";

@media screen and (max-width: 767px) {
    /* body
	-------------------------------------------------- */
    html {
        font-size: 62.5%;
    }
    body {
        font-size: 1.4em;
        min-width: inherit;
    }
    /* Responsive
	-------------------------------------------------- */
    .pc {
        display: none;
    }
    .sp {
        display: inline;
    }
	
	
    /*/////////////////////////////////////////////////////////////////////////////


              // loading //
	  

    /////////////////////////////////////////////////////////////////////////////*/
    .loader-logo {
        width: 180px;
    }
    
    /*/////////////////////////////////////////////////////////////////////////////


              // layout //
	  

    /////////////////////////////////////////////////////////////////////////////*/
    
    /* section
	-------------------------------------------------- */
	.section-wrap {
	    padding-top: 45px;
	    padding-bottom: 50px;
	}
	.section-inner {
	    padding-right: 5.3333%;
	    padding-left: 5.3333%;
	}
	.section-inner._90 {
	    padding-right: 5.3333%;
	    padding-left: 5.3333%;
	}
    
    /*/////////////////////////////////////////////////////////////////////////////


              // common parts //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    
    /* ===============================================
        title
	=============================================== */
	
	/* sec-ttl
	-------------------------------------------------- */
    .sec-ttl {
        margin-bottom: 25px;
    }
    .sec-ttl .en-ttl {
        padding-bottom: 7px;
        margin-bottom: 8px;
        font-size: 1.3rem;
    }
    .sec-ttl .en-ttl::after {
        width: 40px;
    }
    .sec-ttl .ttl {
        font-size: 2.6rem;
    }
    .sec-ttl .ttl span {
        font-size: 1.5rem;
    }
    .sec-ttl .lead {
        font-size: 1.4rem;
        margin-top: 10px;
    }
    
    /* cont-ttl
    -------------------------------------------------- */
    .cont-ttl span {
        font-size: 2.3rem;
        letter-spacing: 0.10em;
    }
    .cont-ttl span::before,
    .cont-ttl span::after {
        width: 35px;
    }
    .cont-ttl span::before {
        left: -55px;
    }
    .cont-ttl span::after {
        right: -55px;
    }
    
    /* ===============================================
	    btn
	=============================================== */
    
    /* btn
	-------------------------------------------------- */
    .btn a {
        width: 97%;
        line-height: 49px;
    }
    
    /* btn-txt
    -------------------------------------------------- */
    .btn-txt a {
        padding-left: 37px;
    }
    .btn-txt a::before {
        width: 23px;
        height: 23px;
        background-size: 11px auto;
    }
    
    /*/////////////////////////////////////////////////////////////////////////////


              // header //
	  

	/////////////////////////////////////////////////////////////////////////////*/
	.header {
	    padding: 0 4%;
	}
	.header-logo {
	    width: 222px;
	    padding: 17px 0;
	}
    
    /*/////////////////////////////////////////////////////////////////////////////


              // visual //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    .visual {
        height: calc(100vh - 55px);
        background-image: url("../../../images/asset/lp/specialsite-001/main_sp.jpg");
    }
    .visual-ttl {
        position: absolute;
        left: 8%;
        top: 50%;
        transform: translateY(-100%);
    }
    .visual-ttl .v-logo {
        width: 120px;
        margin-bottom: 15px;
    }
    .visual-ttl .ttl {
        font-size: 2.8rem;
        margin-bottom: 15px;
    }
    .visual-ttl .lead {
        font-size: 1.7rem;
        letter-spacing: 0.08em;
        margin: 20px 0 5px;
    }
    .visual-ttl .en-ttl {
        font-size: 1.1rem;
    }
    .visual-ttl._ver3,
    .visual-ttl._ver4 {
        right: inherit;
        left: 6.6666%;
    }
    .visual-ttl._ver3 .ttl,
    .visual-ttl._ver4 .ttl {
        font-size: 2.8rem;
    }
    .visual-ttl._ver3 .ttl,
    .visual-ttl._ver4 .ttl {
        letter-spacing: 0.06em;
    }
    
    .visual_mv {
        height: calc(100vh - 55px);
        background-image: url("../../../images/asset/lp/specialsite-001/main_sp.jpg");
    }
    .visual_mv-ttl {
        position: absolute;
        left: 8%;
        top: 50%;
        transform: translateY(-100%);
    }
    .visual_mv-ttl .v-logo {
        width: 120px;
        margin-bottom: 15px;
    }
    .visual_mv-ttl .ttl {
        font-size: 2.8rem;
        margin-bottom: 15px;
    }
    .visual_mv-ttl .lead {
        font-size: 1.7rem;
        letter-spacing: 0.08em;
        margin: 20px 0 5px;
    }
    .visual_mv-ttl .en-ttl {
        font-size: 1.1rem;
    }
    .visual_mv-ttl._ver3,
    .visual_mv-ttl._ver4 {
        right: inherit;
        left: 6.6666%;
    }
    .visual_mv-ttl._ver3 .ttl,
    .visual_mv-ttl._ver4 .ttl {
        font-size: 2.8rem;
    }
    .visual_mv-ttl._ver3 .ttl,
    .visual_mv-ttl._ver4 .ttl {
        letter-spacing: 0.06em;
    }

    /* scroll
	-------------------------------------------------- */
    .scroll {
        width: 22px;
        height: calc(100% - 60px);
        position: absolute;
        top: 30px;
        right: 20px;
    }
    .scroll a {
        display: block;
        width: 100%;
        height: 100%;
    }
    .scroll .scroll-bar1,
    .scroll .scroll-bar2 {
        left: inherit;
        right: 0;
    }
    .scroll p {
        right: inherit;
        left: 0;
        writing-mode: vertical-lr;
    }
    
    
    /*/////////////////////////////////////////////////////////////////////////////


              // FEATURES //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    .sec-features {
        padding: 35px 0 0;
    }
    .sec-features-col2 {
        display: block;
    }
    .sec-features-col2 .block-ttl {
        width: 100%;
        padding-bottom: 20px;
        text-align: center;
    }
    .sec-features-col2 .block-ttl .ttl {
        font-size: 2.2rem;
        padding-bottom: 15px;
    }
    .sec-features-col2 .block-ttl .ttl span {
        font-size: 1.8rem;
    }
    .sec-features-col2 .block-cont {
        width: 100%;
    }
    .features-list {
        margin: 0 -5px;
    }
    .features-list li {
        width: calc(33.3333% + 6px);
        margin: 0 -3px;
    }
    .features-list li .box-inner .en-ttl {
        font-size: 1.0rem;
        padding-bottom: 5px;
        margin-bottom: 7px;
        letter-spacing: 0.04em;
    }
    .features-list li .box-inner .en-ttl::after {
        width: 30px;
    }
    .features-list li .box-inner .txt {
        font-size: 1.3rem;
        letter-spacing: 0.08em;
        line-height: 1.65;
    }
    
    
    /*/////////////////////////////////////////////////////////////////////////////


              // MESSAGE //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    .sec-message {
        margin-top: 45px;
        padding: 60px 0 80px;
        background: #000000 url("../../../images/asset/lp/specialsite-001/message_bg.jpg") bottom right no-repeat;
        background-size: 140% auto;
        position: relative;
    }
    .sec-message::before {
        content: "";
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.60);
        position: absolute;
        left: 0;
        top: 0;
    }
    .sec-message-block {
        position: relative;
        padding-left: 40px;
    }
    .sec-message-block .en-ttl {
        font-size: 1.1rem;
        top: 15px;
    }
    .sec-message-block .ttl {
        font-size: 2.4rem;
        margin-bottom: 25px;
    }
    .sec-message-block-txt p {
        font-size: 1.5rem;
        margin-top: 20px;
    }
    
    
    /*/////////////////////////////////////////////////////////////////////////////


              // TROUBLE //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    
    /* changes-list
    -------------------------------------------------- */
    .changes-list {
        padding-bottom: 55px;
        margin-bottom: 30px;
    }
    .changes-list::after {
        content: "";
        border-top: 35px solid #ff0000;
        border-left: 40px solid transparent;
        border-right: 40px solid transparent;
    }
    .changes-list .block {
        display: block;
        padding: 40px 25px 40px;
        margin-bottom: 15px;
        border-radius: 8px;
    }
    .changes-list .block .icon {
        width: 68%;
        padding: 0 0 5px;
        margin: auto;
    }
    .changes-list .block-inner {
        width: 100%;
        padding-bottom: 0;
    }
    .changes-list .block .numb {
        margin-bottom: 10px;
    }
    .changes-list .block .numb::before {
        width: 100%;
    }
    .changes-list .block .numb p {
        font-size: 1.1rem;
        padding-right: 25px;
    }
    .changes-list .block .numb p span {
        font-size: 3.2rem;
    }
    .changes-list .block .ttl {
        font-size: 1.9rem;
        margin-bottom: 8px;
    }
    .changes-list .block .txt {
        font-size: 1.4rem;
        line-height: 2;
    }
    .changes-list .block .txt span::before {
        height: 1px;
        bottom: -1px;
    }
    
    /* changes-item
    -------------------------------------------------- */
    .changes-item {
        width: 34%;
        top: -140px;
    }
    
    /* experience-list
    -------------------------------------------------- */
    .experience-list {
        margin-bottom: -2%;
    }
    .experience-list li {
        width: 49%;
        padding: 30px 10px;
        margin-bottom: 2%;
    }
    .experience-list li p {
        font-size: 1.4rem;
        background-size: 24px auto;
        padding-top: 38px;
    }
    .experience-list li p span {
        font-size: 1.8rem;
    }

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


              // VIEW DETAILS //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    .sec-details {
        padding: 45px 0 50px;
        background: #000000 url("../../../images/asset/lp/specialsite-001/details_bg.jpg") bottom right 25% no-repeat;
        background-size: 220% auto;
    }
    .sec-details-ttl {
        font-size: 1.2rem;
        padding: 15px 0 30px;
    }
    .sec-details-ttl::after {
        width: 120px;
        background: #ff4b4b;
    }
    .sec-details-col2 {
        display: block;
        padding: 5px 0 15px;
    }
    .sec-details-col2::before {
        display: none;
    }
    .sec-details-col2 li {
        width: 100%;
        text-align: center;
        margin-bottom: 30px;
        padding-bottom: 30px;
        border-bottom: 1px solid rgba(255,255,255,0.40);
    }
    .sec-details-col2 li:last-child {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }
    .sec-details-col2 li .txt {
        font-size: 1.8rem;
        padding-bottom: 20px;
    }
    
    
    /*/////////////////////////////////////////////////////////////////////////////


              // SOLUTIONS //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    .solutions-block-wrap {
        padding: 0;
    }
    .solutions-block {
        display: block;
        padding: 0 5.3333% 0 0;
    }
    .solutions-block:nth-child(2n) {
        padding: 0 0 0 5.3333%;
    }
    .solutions-block .thumb-wrap {
        width: 100%;
        margin-bottom: 30px;
    }
    .solutions-block:last-child .thumb-wrap {
        margin-bottom: 30px;
    }
    .solutions-block .thumb::after {
        padding-top: 66.6666%;
    }
    .solutions-block .thumb-wrap ._en {
        font-size: 12.4vw;
        right: -4px;
        bottom: -7px;
    }
    .solutions-block:nth-child(2n) .thumb-wrap ._en {
        left: -3px;
    }
    .solutions-block-inner {
        width: 94.5%;
        padding: 0 0 50px 35px;
        margin-left: 5.5%;
    }
    .solutions-block:nth-child(2n) .solutions-block-inner {
        margin-left: 0;
        margin-right: 5.5%;
    }
    .solutions-block:last-child .solutions-block-inner {
        padding-bottom: 10px;
    }
    .solutions-block .en-ttl {
        font-size: 1.0rem;
    }
    .solutions-block .subttl {
        padding-left: 15px;
        line-height: 1.5;
    }
    .solutions-block .ttl {
        font-size: 2.2rem;
        padding: 12px 0 5px;
    }
    .solutions-block .point-list {
        padding-top: 15px;
        margin-top: 22px;
    }
    .solutions-block .point-list-ttl {
        font-size: 1.3rem;
        font-weight: 600;
        margin-bottom: 8px;
    }
    .solutions-block ul li {
        position: relative;
        padding-left: 20px;
        margin-top: 7px;
        line-height: 1.75;
    }
    .solutions-block ul li::before {
        width: 10px;
        height: 10px;
        top: 9px;
    }
    
    
    /*/////////////////////////////////////////////////////////////////////////////


              // HOW TO USE //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    
    /* movie-block
    -------------------------------------------------- */
    .movie-block {
        width: 100%;
        margin: 0 auto 40px;
    }
    .movie-block .ttl {
        font-size: 2.0rem;
        letter-spacing: 0.08em;
        margin-bottom: 20px;
    }

    /* step-list
    -------------------------------------------------- */
    .step-list .block {
        padding: 30px 20px 25px;
        margin-bottom: 20px;
    }
    .step-list .block:last-child {
        margin-bottom: 0;
    }
    .step-list .block-col2 {
        display: block;
    }
    .step-list .block-col2 .block-inner {
        width: 100%;
        margin-bottom: 20px;
    }
    .step-list .step-ttl {
        margin-bottom: 15px;
    }
    .step-list .step-ttl .numb {
        width: 70px;
        height: 70px;
        font-size: 1.2rem;
        padding-top: 12px;
        margin-right: 20px;
    }
    .step-list .step-ttl .numb span {
        font-size: 2.4rem;
    }
    .step-list .step-ttl .ttl {
        font-size: 2.0rem;
        letter-spacing: 0.10em;
    }
    .step-list .block-col2 .thumb-wrap {
        width: 100%;
        padding: 0 0 15px;
        position: relative;
        box-sizing: border-box;
    }
    .step-list .block-col2 .thumb::after {
        padding-top: 66.6666%;
    }
    .step-list .block-col2 .mockup {
        width: 28%;
        left: 15px;
        bottom: 0;
    }
    .step-list .block-btm-col2 {
        display: block;
        padding-top: 0;
        margin-top: 30px;
    }
    .step-list .block-btm-col2 li {
        width: 100%;
        padding: 30px 0;
        border-bottom: 1px solid #d9d9d9;
    }
    .step-list .block-btm-col2 li:last-child {
        padding-bottom: 10px;
        border-bottom: none;
        
    }
    .step-list .block-btm-col2 li .txt {
        font-size: 1.8rem;
        padding-bottom: 15px;
        line-height: 1.75;
        letter-spacing: 0.10em;
    }
    .step-list .block-btm-col2 li .ttl {
        font-size: 2.0rem;
        padding: 10px 0 8px;
        letter-spacing: 0.10em;
    }
    
    /*/////////////////////////////////////////////////////////////////////////////


              // USER VOICE //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    
    /* review-block
    -------------------------------------------------- */
    .review-block {
        background: #ffffff;
        padding: 35px 25px 50px;
        margin-bottom: 10px;
        text-align: center;
        line-height: 1.75;
    }
    .review-block-ttl .ttl {
        font-size: 2.2rem;
        letter-spacing: 0.10em;
        margin-bottom: 5px;
    }
    .review-block-ttl .ttl span {
        display: block;
        font-size: 5.0rem;
        line-height: 1.2;
    }
    .review-block-col2 {
        display: block;
        margin-top: 25px;
        padding: 20px 0 10px;
    }
    .review-block-col2 li {
        width: 100%;
        margin-bottom: 25px;
    }
    .review-block-col2 .ttl {
        font-size: 1.7rem;
        font-weight: 700;
    }
    .review-block-col2 .ttl span {
        display: block;
        font-size: 1.3rem;
    }
    .review-block-col2 .icon {
        width: 65%;
        margin: 5px auto 0;
    }
    
    /* voice-list
    -------------------------------------------------- */
    .voice-list .block {
        display: block;
        padding: 35px 0 0;
        border-bottom: none;
    }
    .voice-list .block .thumb-wrap {
        width: 100%;
        margin-bottom: 20px;
    }
    .voice-list .block .thumb::after {
        padding-top: 66.6666%;
    }
    .voice-list .block .block-inner {
        width: 100%;
        padding-left: 35px;
    }
    .voice-list .block .en-ttl {
        font-size: 1.0rem;
        top: 8px;
    }
    .voice-list .block .ttl {
        font-size: 2.0rem;
        padding-bottom: 10px;
    }
    .voice-list .block dl {
        padding-top: 20px;
    }
    .voice-list .block dl dt.thumb {
        width: 75px;
        margin: 0 25px 0 0;
    }
    .voice-list .block dl dd {
        font-size: 1.4rem;
    }
    
    /*/////////////////////////////////////////////////////////////////////////////


              // OUR PROMISE //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    .sec-promise-inner {
        display: block;
        position: relative;
        padding-bottom: 40px;
    }
    .sec-promise-inner .sec-ttl {
        position: static;
    }
    .promise-list {
        width: calc(100% + 20px);
        margin: 0 -10px;
    }
    .promise-list::after {
        content: "";
        display: block;
        padding-top: 97%;
    }
    .promise-list .block {
        width: 52.1739%;
        box-sizing: border-box;
        position: absolute;
    }
    .promise-list .block:nth-child(1) {
        top: 0;
        left: 50%;
        transform: translateX(-50%);
    }
    .promise-list .block:nth-child(2) {
        bottom: 0;
        left: 0;
    }
    .promise-list .block:nth-child(3) {
        bottom: 0;
        right: 0;
    }
    .promise-list .block::before {
        border: 3px solid #e5e5e5;
    }
    .promise-list .block-inner {
        transform: translateY(-52%);
        line-height: 1.6;
        font-size: 3.0vw;
        letter-spacing: 0;
    }
    .promise-list .block:first-child .block-inner {
        transform: translateY(-57%);
    }
    .promise-list .block-inner .icon {
        display: inline-block;
        width: 26px;
    }
    .promise-list .block-inner .ttl {
        font-size: 4.5333vw;
        padding: 0 0 5px;
        margin-bottom: 5px;
        letter-spacing: 0.06em;
    }
    .promise-list .block-inner .ttl::after {
        width: 30px;
    }
    
    /* promise-block-col2
    -------------------------------------------------- */
    .promise-block-col2 ul {
        display: block;
        margin-top: 25px;
    }
    .promise-block-col2 ul li {
        width: 100%;
        padding: 20px 25px 30px 20px;
        margin-bottom: 10px;
    }
    .promise-block-col2 ul li:last-child {
        margin-bottom: 0;
    }
    .promise-block-col2 ul li .icon {
        width: 17%;
        padding-top: 8px;
    }
    .promise-block-col2 ul li dl {
        width: 76%;
    }
    .promise-block-col2 ul li dl dt {
        font-size: 1.7rem;
        margin-bottom: 3px;
    }
    
    .promise-block-col2 ul li dl dd {
        font-size: 1.3rem;
        line-height: 1.75;
    }
    .note {
        padding-top: 3px;
        font-size: 1.2rem;
    }
    
    
    /*/////////////////////////////////////////////////////////////////////////////


              // footer //
	  

	/////////////////////////////////////////////////////////////////////////////*/
    .footer {
        padding: 40px 0;
    }
    
    /* footer-inner
    -------------------------------------------------- */
    .footer-inner {
        display: block;
    }
    
    /* ft-info
    -------------------------------------------------- */
    .ft-info {
        width: 100%;
        text-align: center;
        margin-bottom: 25px;
    }
    .ft-info .ft-logo {
        width: 70%;
        margin: 0 auto 10px;
    }
    .ft-info dl dd {
        font-size: 1.2rem;
        letter-spacing: 0;
    }
    
    /* ft-cont
    -------------------------------------------------- */
    .ft-cont {
        width: 100%;
        display: block;
    }
    .ft-nav {
        width: 100%;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        font-size: 1.2rem;
        padding-bottom: 40px;
    }
    .ft-nav li {
        width: 48%;
        margin-left: 0;
        border-bottom: 1px solid #d9d9d9;
    }
    .ft-nav li a {
        display: block;
        padding: 15px 0;
        letter-spacing: 0;
    }
    .copyright {
        width: 100%;
        text-align: center;
        font-size: 1.0rem;
    }
    /*.mv_black*/
    .mv_black{
        background: url(../../../images/asset/lp/specialsite-001/mv_black_sp.jpg) top center/calc(750 / 750 * 100vw) auto no-repeat;
        height: calc(1224/750 * 100vw);
    }
    .mv_black .visual_mv-ttl{
        top: 45%; 
    }
    .mv_black .visual_mv-ttl .ttl{
        font-size:  calc(56/750 * 100vw);
        letter-spacing: 0.06em;
    }
    .mv_black .visual_mv-ttl .v-logo{
        width: calc(240/750 * 100vw);
    }
    .mv_black .visual_mv-ttl .en-ttl{
    font-size:calc(22/750 * 100vw);
    }
    .mv_black .scroll p{
        font-size: calc(22/750 * 100vw);
    }
    /*.mv_white*/
    .mv_white{
        background: url(../../../images/asset/lp/specialsite-001/mv_white_sp.jpg) top center/calc(750 / 750 * 100vw) auto no-repeat;
        height: calc(1224/750 * 100vw);
        animation: fade 3s forwards;
    }
    .mv_white .visual_mv-ttl{
        top: 40%; 
    }
    .mv_white .visual_mv-ttl .ttl{
        font-size:  calc(56/750 * 100vw);
        letter-spacing: 0.06em;
    }
    .mv_white .visual_mv-ttl .v-logo{
        width: calc(240/750 * 100vw);
    }
    .mv_white .visual_mv-ttl .en-ttl{
    font-size:calc(22/750 * 100vw);
    }
    .mv_white .scroll{
        top: calc(956/750 * 100vw);
        height:calc(212/750 * 100vw);
    }
    .mv_white .scroll p{
        color: #000000;
        font-size: calc(22/750 * 100vw);
        bottom: calc(-9/750 * 100vw);
        writing-mode: vertical-rl;
    }
    .mv_white .scroll .scroll-bar1, .mv_white .scroll .scroll-bar2{
      right: calc(11/750 * 100vw);  
      bottom: calc(115/750 * 100vw);
    }
    .mv_white .scroll .scroll-bar1{
        background: #333333;
    }
    .mv_white .scroll .scroll-bar2{
        background-color: #ffffff;
    }
    /*.mv_red*/
    .mv_red{
        background:  url("../../../images/asset/lp/specialsite-001/mv_red_sp.png") top center/calc(750 / 750 * 100vw) auto no-repeat;
        height: calc(1224/750 * 100vw);
    }
    .mv_red .visual_mv-ttl{
        width: calc(750/750 * 100vw);
        margin: 0 auto;
        height: auto;
        top: calc(64/750 * 100vw);
    }
    .mv_red .scroll{
        top: calc(956/750 * 100vw);
        height:calc(212/750 * 100vw);
    }
    .mv_red .scroll p{
        color: #dcbe80;
        font-size: calc(22/750 * 100vw);
        bottom: calc(-9/750 * 100vw);
        writing-mode: vertical-rl;
    }
    .mv_red .scroll .scroll-bar1,  .mv_red .scroll .scroll-bar2{
      right: calc(11/750 * 100vw);  
      bottom: calc(115/750 * 100vw);
      width: calc(2/750 * 100vw);
    }
    .mv_red .scroll .scroll-bar2{
        background: #dcbe80;
    }
}

.pc-in{
    display: none;
}
.sp-in{
    display: block;
}