:root {
  --main-r-c: #B80C09;
}


.footer,.header,.grecaptcha-badge{
    display: none;
}
html{
    font-size: 1vw;
        letter-spacing: 0.05em;
}

#page-wrap{
    background-attachment: fixed;
    background-image: url('img/pc-left-bg-1.webp');
}
.pc-gb-left{
position: fixed;
    background: url('img/pc-left-bg-1.webp') no-repeat;
    background-size: cover;
    height: 100%;
    width: 60%;
    left: 0;
    top: 0;
}
.pc-gb-right{
position: fixed;
    background: url('img/pc-left-bg-2.webp') no-repeat;
    background-size: cover;
    height: 100%;
    width: 30%;
    right: 0;
    top: 0;
}


#floatbtn {
    position: fixed;
    right: 17rem;
    z-index: 3;
    width: 27rem;
    bottom: 2rem;
        font-size: 1.4rem;
}
#page-wrap #content-inner{
    width:70rem;
    margin: auto;
    position: relative;    
}
#page-wrap #pc-left-cta{
    position: fixed;
    height: 100%;
    width: 35rem;
    left: 16rem;
    text-align: center;
    font-weight: bold;
    min-height: 53rem;
}


#page-wrap #pc-left-cta .title {
    width: 70%;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 10rem;
    font-size: 1.25rem;
}
#page-wrap #pc-left-cta .title .logo  {
    width: 22rem;
    display: block;
    margin: 2rem auto;
}
#page-wrap #pc-left-cta .pc-design-img{
position: absolute;
bottom: 0;
left: 0;
right: 0;
margin: auto;
width:100%;
height: auto;
}


#lp-content{
    width:30rem;
    height:auto;
    background-color: white;
    margin-right: 1rem;
    margin-left: auto;
    font-size: 1.5rem;
    position: relative;
}

.sec-inner{
width: 100%;
    padding: 8rem 2.5rem;
    box-sizing: border-box;
}

.cta-btn{
    background-color: var(--main-r-c);
    border-radius: 1rem;
    border:3px solid white;
   box-shadow: 0.5rem 0.5rem 0px #fff;
   font-weight: bold;
   color: #fff;
       padding: 1em 0.75em;
   text-align: center;
   position: relative;
   display: block;
   transition: 0.5s;
       letter-spacing: 0.05em;
}
.cta-btn:hover{
    opacity: 0.5;
}
.cta-btn::after{
    content: "";
    position: absolute;
    right:1em;
    top: calc(50% - 0.45em);
    background:url('img/cta-arrow.webp') no-repeat top center;
    background-size: 1em;
    height: 1em;
    width: 1em;
}

.txt-red{
    color: var(--main-r-c);
}


.fadeinblock,
.fadeinblock2 {
  opacity: 0;
  transform: translateY(1rem);
  transition: all 0.5s ease;
  visibility: hidden; /* ← 表示前は非表示扱いにする */
}

.fadeinblock.animated,
.fadeinblock2.animated {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}



/***********************************
fv
  
*************************************/
#first-view{
    background:url('img/fv-bg.webp') no-repeat top center;
    background-size: cover;
    height: 53.5rem;
    width: 100%;
    position: relative;
    padding-top: 5rem;
}

#first-view .lead-txt  {
    width: 70%;
    margin: auto auto 2rem auto;
    background: #fff;
    position: relative;
    border-radius: 0.5rem;
    padding: 1rem 0rem 1rem 1.5rem;
    font-weight: bold;
    text-align: center;
    font-size: 1.5rem;
    line-height: 1.4;
}
#first-view .lead-txt::after {
    content: "";
    z-index: 1;
    position: absolute;
    bottom: -1rem;
    left: calc(51% - 1rem);
    background: #fff;
    transform: rotate(45deg);
    height: 2rem;
    width: 2rem;
}
#first-view .lead-txt .st-txt{
position: relative;
color: var(--main-r-c);
font-size:2.25rem;
}
#first-view .lead-txt .st-txt::after{
content:"";
height: 0.75em;
width:100%;
background-color: rgba(255, 220, 151, 0.5);
    z-index: 1;
    position: absolute;
    left: 0;
    bottom: 0;
        mix-blend-mode: multiply;
}
#first-view .logo{
text-align: center;
    margin: auto;
    width: 45%;
}
#first-view .logo img{
width: 90%;
    margin-top: 1rem;
}
/***********************************
about
  
*************************************/
#about{

}
#about .sec-title{
     background:url('img/about-mv.webp') no-repeat top center;
    background-size: cover;
    height: 37.5rem;
    width: 100%;   
    padding: 4rem;
        vertical-align: baseline;
        color: #fff;
        font-size: 2rem;
        text-align: center;
}
#about .sec-title img{
    vertical-align: baseline;
    height: 5.5rem;
    width: auto;
    position: relative;
    bottom: -1.5rem;
}
#about .sec-inner{
        padding-top: 3rem;
}

#about .sec-inner .title{
    font-size: 2rem;
    color: var(--main-r-c);
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
        margin-bottom: 1.5rem;
        position: relative;
}

#about .sec-inner .title::before {
    content: "";
    height: 1rem;
    width: 5rem;
    position: absolute;
    left: -2rem;
    bottom: 2rem;
    transform: rotate(60deg);
    border-top: 3px dotted var(--main-r-c);
}
#about .sec-inner .title::after {
    content: "";
    height: 1rem;
    width: 5rem;
    position: absolute;
    right: -1rem;
    bottom: 2.2rem;
    transform: rotate(120deg);
    border-top: 3px dotted var(--main-r-c);
}
#about .sec-inner .lead{
    font-weight: bold;
    text-align: center;
    font-size: 1.2rem;
    margin-bottom: 2rem;
}
#about .sec-inner .lead .st-txt{
position: relative;
z-index: 2;
}
#about .sec-inner .lead .st-txt::before{
content:"";
height: 0.75em;
width:100%;
background-color: rgba(255, 220, 151, 0.5);
    z-index: 1;
    position: absolute;
    left: 0;
    bottom: 0;
        mix-blend-mode: multiply;
}
#about .sec-inner .about-list{
display: flex;
    flex-wrap: wrap;
        gap: 1rem;
            margin-bottom: 2rem;
}
#about .sec-inner .about-list .about-one{
display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}
#about .sec-inner .about-list .about-one img{
width: 5rem;
height: auto;
}
#about .sec-inner .about-list .about-one .about-txt{
    font-size: 1.5rem;
    font-weight:bold;
    line-height: 1.4;
}
#about .sec-inner .about-list .about-one .about-txt .st-txt{
    color: var(--main-r-c);
}
#about .sec-inner .tokkyo{
    border: var(--main-r-c) 1px solid;
    padding: 0.5rem 1rem;
    font-weight: bold;
    font-size: 1.5rem;
    color: var(--main-r-c);
        display: inline-block;
}
#about .sec-inner .tokkyo img{
    width: auto;
    height: 2.5rem;
}
/***********************************
step
  
*************************************/
#step{
    background:url('img/step-bg.webp') no-repeat top center;
    background-size: cover;
    overflow: hidden;
}
#step .sec-title{
background: url(img/step-title.webp) no-repeat top center;
    background-size: cover;
    height: 25rem;
    padding: 5.5rem 2rem;
    font-size: 2.5rem;
    margin-bottom: 2rem;
}
#step .step-list{
    display: flex;
    flex-wrap: wrap;
    gap: 5rem;
}
#step .step-list .step-one{
    position: relative;
    width: 100%;
}
#step .step-list .step-one .demo{
    position: absolute;
    right: -3rem;
    width: 19rem;
    height: auto;
}
#step .step-list .step-one .number{
    width: 5rem;
    height: auto;     

}
#step .step-list .step-one .step-txt-wrap .title{
font-size: 1.75rem;
    z-index: 2;
    position: relative;
    color: #484E74;
}
#step .step-list .step-one.leftcolumn {
text-align: right;
}
#step .step-list .step-one.leftcolumn .demo{
    right: auto;
    left:-3rem
}

/***********************************
point
  
*************************************/
#point{
    background:url('img/point-title-bg.webp') no-repeat top center;
    background-size: contain;
}
#point .sec-inner{
    padding-top: 7rem;
}

#point .sec-title{
        color: #fff;
    font-weight: bold;
    text-align: center;
font-size: 2.25rem;
    margin-bottom: 3rem;
    padding: 0 0 1.5rem 0rem;
}
#point .point-list{
    margin-top: 10rem;
}
#point .point-list .point-one{
    background:url('img/point-one-border.webp') no-repeat bottom center;
    background-size: contain;
        padding-bottom: 5rem;
    margin-bottom: 5rem;
}
#point .point-list .point-one img{
    margin-bottom: 2rem;
}
#point .point-list .point-one .title{
    color: var(--main-r-c);
    font-weight: bold;
    text-align: center;
    font-size: 2rem;    
    margin-bottom: 0.5rem;
}
#point .point-list .point-one .lead{
    text-align: center;
    font-size: 1.25rem;    
}
#point .cta-btn{
    font-size: 1.3rem;
    line-height: 1.3;
}


/***********************************
voice
  
*************************************/

#voice{
    background:#F2F2E8;
}
#voice .sec-title-icon{
    width: 50%;
    height: auto;
    display: block;
    margin: auto;
}
#voice .sec-title{
        color: var(--main-r-c);
    font-weight: bold;
    text-align: center;
   font-size: 2.25rem;
        margin-bottom: 3rem;
            border-bottom: 3px dotted var(--main-r-c);
    padding: 1.5rem 0rem
}
#voice .voice-list{
        display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: 3rem;
}
#voice .voice-one{
display: flex;
    gap: 2.5rem;
    align-items: flex-start;
}
#voice .voice-one img{
width:5rem;
height:auto;
}
#voice .voice-one .voice-txt{
    position: relative;
    padding:1em;
    background:#fff;
    border-radius: 1em;
}
#voice .voice-one .voice-txt::after{
    content: "";
}

#voice .voice-one .voice-txt::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    border-style: solid;
    border-width: 1.5rem 1.5rem 0 0;
    border-color: transparent #fff transparent transparent;
    translate: -100% calc(-50% + 0.4px);
}

#voice .voice-one:nth-child(even){
    flex-direction: row-reverse;
}
#voice .voice-one:nth-child(even) .voice-txt::after {
    content: "";
    position: absolute;
    top: 50%;
    left: auto;
    right: 0;
    border-style: solid;
    border-width: 1.5rem 1.5rem 0rem 1.5rem;
    border-color: #fff transparent #fff transparent;
    translate: 50% calc(-50% + 0.4px);
}


#voice .voice-one .voice-txt .st-txt{
    font-weight: bold;
    color: var(--main-r-c);
}

/***********************************
  QA  
  
*************************************/


#qa-area{
    background:url('img/qa-title-bg.webp') no-repeat top center;
    background-size: contain;
}

#qa-area .sec-title-icon{
    display: block;
    height: 7rem;
    margin: 0 auto 0rem auto;
}

#qa-area .sec-title{
    color: var(--main-r-c);
    font-weight: bold;
    text-align: center;
    font-size: 2.25rem;
        margin-bottom: 3rem;
}

#qa-area .qa-list{
        margin-bottom: 2rem;
}
#qa-area .qa-one{
    border-top: 2px dotted #333333;
    padding: 1.5rem 0rem;
}
#qa-area .qa-one:last-child{
    border-bottom: 2px dotted #333333;
}
#qa-area .qa-one .a-txt,
#qa-area .qa-one .q-txt{
background: url(img/qa-one-icon-a.webp) no-repeat center left;
    background-size: 3rem;
     font-size: 1.25rem;
    font-weight: bold;
    color: var(--main-r-c);
        line-height: 1.4;
    padding: 1rem 0 1rem 3.75rem;
}
#qa-area .qa-one .q-txt{
    background-image:url('img/qa-one-icon-q.webp');
    color:#484E74;
}

/***********************************
 footer  
  
*************************************/
#footer{
    background-color: var(--main-r-c);
    color:#fff;
padding: 5rem 5rem 15rem 5rem;
}
#footer .footer-txt{
    font-weight: bold;
        line-height: 2;
            font-size: 1.5rem;
    text-align: center;
        margin-bottom: 2rem;
}
#footer .footer-txt img{
    height: 3em;
    width: auto;
    vertical-align: baseline;
    position: relative;
    bottom: -0.75em;
}
#footer .copyright{
    text-align: center;
}



@media (max-width: 768px) {
html{font-size: 2vw;}
body{        padding-bottom: 0px;}
#page-wrap #pc-left-cta{display: none;}
#page-wrap #content-inner{    width: 32rem;}
#lp-content{margin-right: 32rem;margin-right: auto;}
#floatbtn { right: 11.5rem;    width: 26rem;}

}


@media (max-width: 550px) {
    .pc-gb-left,.pc-gb-right{background: none;}
html{font-size: 3.2vw;}
    #page-wrap #content-inner {
        width: 100%;
    }
        #lp-content {
        margin: 0;
        width: 100%;
    }
#lp-content{margin: 0;}
    #floatbtn {
        width: 24.4rem;
        right: 3rem;
    }
}