*, *::before, *::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	margin:0;
	padding:0;
	outline:none;
}
:root{
    --colorRed:#eb5d5c;
    --colorBlue01:#2a88cc;
    --colorBlue02:#56abe0;
    --colorBlue03:#dbedf8;
    --colorYellow:#fdf21a;
    --maxWidth:980px;
    --fs14:14px;
    --fs16:16px;
    --fs18:18px;
    --fs24:24px;
    --fs36:36px;
}

/*ここまで*/

body{
  color:#000;
  font-size:var(--fs14);
  line-height: 1.5;
  font-family: 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
  z-index: 0;
  position: relative;
  width: 100%;
  height:100%;
  background: #fff;
  padding-top: 50px;
}



a{
	text-decoration:none;
	color:var(--colorBlue01);
	transition:.35s;
}

a:hover {
    opacity: 0.8;
}

h2{
    color: var(--colorBlue01);
    font-family: fot-chiaro-std,sans-serif;
    font-weight: 700;
    font-style: normal;
    text-align: center;
    padding: 0 5px 0px;
    font-size: var(--fs24);
    display: inline-block;
    background: linear-gradient(transparent 60%, var(--colorYellow) 0%);
    margin:0 auto 40px;
}

h2 span{
    font-size: var(--fs18);
}


.chiaro {
    font-family: fot-chiaro-std,sans-serif;
    font-weight: 700;
    font-style: normal;
}

header {
    background-color: #f6f6f6;
    position: relative;
    padding:0 10px;
}

header nav{
    background-color: rgba(255, 255, 255,.9);
    padding:0 5px;
    position: fixed;
    top:0;
    left: 0;
    width: 100%;
    text-align: center;
    height:50px;
    z-index: 100;
    border-bottom:1px solid #ccc;
}

header nav ul{
    display: flex;
    justify-content: space-between;
}

header nav ul li {
    align-items: center;
    padding:10px;
    line-height:0;
}

header nav ul li img{
    height:30px;
}

header nav ul li:last-of-type a{
    display: inline-block;
    line-height:30px;
    padding:0 20px;
    background:var(--colorRed);
    color:#fff;
    box-shadow: 1px 1px 2px #000;
}

header p:first-of-type{
    font-size: 0px;
    padding: 30px 0 0 30px;
}

header p.chiaro{
    text-align: right;
    font-size:var(--fs24);
}

header p.chiaro span{
    color: var(--colorRed);
    font-size: var(--fs36);
    text-emphasis-style: dot;
    text-decoration-color: var(--colorRed);
    text-emphasis-position: over;
    -webkit-text-emphasis-style: dot;
    -webkit-text-decoration-color: var(--colorRed);
    -webkit-text-emphasis-position: over;
}

header p.chiaro>span:last-of-type{
    color: #fff;
    font-size: var(--fs24);
    display: block;
    padding:5px 20px;
    background-color: var(--colorBlue01);
    text-align: center;
    margin-top: 5px;
    text-emphasis-style: none;
    -webkit-text-emphasis-style: none;
}

header p.chiaro span span{
    font-size:var(--fs16);
}

header nav ul{
    width:100%;
    max-width:var(--maxWidth);
    margin: 0 auto;
}

header section{
    width:100%;
    max-width:var(--maxWidth);
    margin: 0 auto;
    padding:30px 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

main section{
    padding:50px 10px;
    text-align: center;
}

main section:nth-child(even){
    background-color:var(--colorBlue03);
}

main>section>div{
    width:100%;
    max-width:var(--maxWidth);
    background:#fff;
    border-radius: 10px;
    padding:20px;
    margin:0 auto 20px;
    text-align: left;
}


section#infoTxt{
    text-align: center;
    padding:0 0 30px 0;
}

section#infoTxt div{
    background-color: var(--colorBlue01);
    border: solid var(--colorBlue02);
    border-width: 10px 0;
    padding:15px 0;
    color:#fff;
    font-size:var(--fs18);
    margin:0 0 80px;
    width:100%;
    max-width:100%;
    border-radius: 0;
    text-align: center;
}


section#infoTxt div>p{
    position: relative;
    z-index: 2;
}

section#infoTxt div>p:first-of-type::after{
    content: "";
    display: inline-block;
    position:absolute;
    width: 0;
height: 0;
border-style: solid;
border-width: 100px 250px 0 250px;
border-color: var(--colorBlue01) transparent transparent transparent;
bottom:-80px;
left: 50%;
transform: translateX(-50%);
z-index: -1;
}


section#infoTxt div p span.fs24{
    font-size: var(--fs24);
}

section#infoTxt div p span.fs36{
    font-size: var(--fs36);
    position: relative;
    display: inline-block;
}

section#infoTxt div p span.fs36::after{
    content:"（※過去比）";
    position:absolute;
    display: block;
    right:0;
    bottom:-10px;
    font-size: 12px;
    font-family: 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
    font-weight: normal;
}

section#infoTxt p.ultxt{
    font-size: var(--fs24);
    display: inline;
    line-height:48px;
    background: linear-gradient(transparent 50%, var(--colorYellow) 0%);
    padding: 0 0 5px;
}


section#infoTxt p.ultxt span{
    font-size: var(--fs36);
    color: var(--colorRed);
}

section#infoTxt>p:last-of-type{
    font-size:var(--fs16);
    margin-top:30px;
    line-height:2em;
}

section#infoTxt>p:last-of-type span{
    font-size:var(--fs24);
    color: var(--colorBlue01);
}

section#scenario div{
    text-align: center;
}

section#scenario div p{
    font-size: var(--fs18);
    color:var(--colorRed);
}

section#scenario div img{
    width:100%;
    max-width:449px;
}


section#measure h3{
    width:100%;
    max-width:980px;
    margin:0 auto 10px;
    border-radius: 3px;
    font-size: var(--fs16);
    font-weight:bold;
    padding:5px 20px;
    text-align: left;
}


section#measure h3:first-of-type{
    border:3px solid #555;
}

section#measure h3:last-of-type{
    border:2px solid var(--colorBlue01);
    background:var(--colorBlue01);
    color: #fff;
}

section#measure ul{
    display: flex;
    justify-content:space-between;
    max-width:620px;
    width:100%;
    margin:0 auto 30px;
    align-items: center;
}
section#measure ul li{
    padding:10px;
    text-align: left;
}

section#measure ul li img{
    width:100%;
}

section#measure ul li.girl02 img{
    max-width:172px;
}

section#measure ul li span{
    color: var(--colorRed);
    font-weight: bold;
}

section#measure ul:last-of-type{
    max-width:780px;
}



section#measure div.sotsugyo {
    background-image: url(../../images/scenario_bg.png);
    border:5px solid var(--colorBlue01);
    text-align: center;
    padding:20px 0 5px;
}

section#measure div.sotsugyo img{
    max-width:434px;
    width:100%;
}


section#scenario div h3{
    font-size: var(--fs18);
    font-weight:normal;
}

section#scenario div h3::first-letter{
    color:var(--colorBlue01);
    font-size:var(--fs24);
    font-style: italic;

}



section#howUse ul{
    width:100%;
    max-width: var(--maxWidth);
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    margin:0 auto;
}

section#howUse ul li{
    border: 2px var(--colorBlue01) solid;
    width:100%;
    max-width:450px;
    padding:5px;
    border-radius: 10px;
    margin:5px;
}

section#howUse ul li h3{
    border-radius: 8px;
    background:var(--colorBlue01);
    width:100%;
    color:#fff;
    text-align: center;
    padding: 5px;
    margin:0 0 10px 0;
}

section#howUse ul li p{
    text-align: left;
    padding:0px 10px;
}

section#howUse >p{
    text-align: center;
    margin:20px 0;
}

section#howUse > a{
    display: block;
    background-color: var(--colorRed);
    color: #fff;
    text-align: center;
    padding:20px 50px;
    box-shadow: 2px 2px 4px #555;
    width:100%;
    max-width:300px;
    margin:0 auto;
    font-size:var(--fs18);
}

section#case h3{
    font-size: var(--fs18);
    font-weight:normal;
    margin-bottom:20px;
}

section#case h3::first-letter{
    color:var(--colorBlue01);
    font-size:var(--fs24);
    font-style: italic;
}

section#case>ul>li{
    background-color: #fff;
    border-radius: 5px;
    padding:20px;
    max-width:980px;
    width:100%;
    margin:0 auto 30px;
    text-align: left;
}

section#case>ul>li>ul{
    display: flex;
    justify-content: space-between;
    flex-wrap:wrap;
}

section#case>ul>li.case01 ul li {
    width:20%;
}

section#case>ul>li.case01 ul li img {
    display: block;
    width: 100%;
}

section#case>ul>li.case02 ul li {
    width: 48%;
}

section#case>ul>li.case02>ul>li>ul{
    display: flex;
    justify-content: space-between;
}

section#case>ul>li.case02 h4{
    border:2px solid #333;
    border-radius: 5px;
    text-align: center;
    padding:10px 20px;
    width:100%;
    margin-bottom:20px;
}

section#case>ul>li.case02 h5{
    font-size: var(--fs16);
    color: var(--colorRed);
}

section#case>ul>li.case02>ul>li:first-of-type>ul>li:first-of-type{
    max-width: 290px;
    width:65%;
}

section#case>ul>li.case02>ul>li:first-of-type h4{
    background-color: var(--colorBlue01);
    border-color: var(--colorBlue01);
    color: #fff;
}

section#case>ul>li.case02>ul>li:first-of-type>ul>li:last-of-type{
    max-width: 150px;
    width:35%;
}

section#case>ul>li.case02>ul>li:last-of-type>ul>li:first-of-type{
    max-width: 220px;
    width:50%;
}

section#case>ul>li.case02>ul>li:last-of-type>ul>li:last-of-type{
    max-width: 220px;
    width:50%;
}

section#case>ul>li.case02>ul>li>ul>li img{
    width: 100%;

}

section#case>ul>li.case03{
    text-align: center;
}

section#case>ul>li.case03 img{
    width:100%;
    max-width:593px;
}
section#price ul.prices{
    align-items: center;
}

section#price ul.prices li,
section#price p{
    text-align: center;
}

section#price ul.prices li.basePrice{
    width:100%;
    max-width:300px;
    background-color: var(--colorBlue01);
    padding:5px 0;
    color:#fff;
    font-size: var(--fs18);
    margin:10px auto;
    border-radius: 10px;
}
section#price ul.prices li.basePrice span{
    font-size:var(--fs24);
}

section#price ul.prices li.plus{
    font-size: var(--fs36);
    font-weight: bold;
}

section#price ul{
    width: 100%;
    max-width: 800px;
    margin:20px auto;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

section#price ul li{
    margin:5px;
}

section#price p:last-of-type{
    text-align: left;
    padding:10px;
    font-size: 12px;
}


section#faq dl{
    width:100%;
    max-width:800px;
    text-align: left;
    margin:0 auto;

}

section#faq dl dt,
section#faq dl dd{
    padding: 10px 50px;
    background-color:rgb(235, 235, 235);
    position: relative;
    min-height: 50px;
    align-items: center;
    display: flex;
    margin-bottom:1px;
}

section#faq dl dt:hover{
    background-color: rgb(245, 245, 245);
    cursor: pointer;
}

section#faq dl dd{
    padding: 10px 10px 10px 50px;
    background-color:var(--colorBlue03);
    display: none;
}

section#faq dl dt::before,
section#faq dl dd::before{
    content: "Q";
    position: absolute;
    font-size:var(--fs24);
    font-style: italic;
    color: var(--colorBlue02);
    left: 10px;
}

section#faq dl dd::before{
    content: "A";
    color: var(--colorRed);
}

section#faq dl dt::after{
    content:"\02228";
    display: block;
    position:absolute;
    right:10px;
    width:24px;
    height:24px;
    border-radius: 12px;
    background:#fff;
    text-align: center;
    line-height:24px;
    color: var(--colorBlue01);
}

section#faq dl dt.selected{
    border-radius: 5px;
    margin-top:10px;
    background-color: #fff;
}

section#faq dl dt.selected::after{
    transform:rotate(180deg);
    background: var(--colorBlue02);
    color:#fff;
}

section#contact {
    padding-bottom:0;
}

section#contact form{
    width:100%;
    max-width:720px;
    margin:0 auto;
}

section#contact form table.inquiryTable{
    margin:20px 0;
    width:100%;
}

section#contact form table.inquiryTable tr{
    border-bottom:1px solid #fff;
}

section#contact form table.inquiryTable th,
section#contact form table.inquiryTable td{
    padding:20px;
    background-color: var(--colorBlue03);
    text-align: left;
}

section#contact form table.inquiryTable th span{
    font-size: 12px;
    color:#c00;
}


.PostBox{
    text-align: center;
    padding:20px 0;
}

.PostBox input {
    border: none;
    padding:20px 40px;
    margin:0 10px;
    background-color: var(--colorBlue02);
    color:#fff;
    border-radius: 5px;;
}

.PostBox input.wpcf7c-btn-back{
    background-color: var(--colorBlue03);
}

#inquiry .inquiryTable tr:nth-of-type(2n) th, #inquiry .inquiryTable tr:nth-of-type(2n) td{
    background-color: var(--colorBlue03);
}

#inquiry {
    max-width: 720px;
    margin: 40px auto 0px;
    width: 100%;
}

#inquiry .PostBox{
    width:100%;
}


form.sent #inquiry>p,
form.sent #inquiry>div,
form.sent #inquiry>table,
div.thanksTxt {
    display:none;
}

div.thanksTxt{
    display: block !important;
}

div.thanksTxt p:first-of-type{
background: var(--colorBlue02);
border: none;
text-align: center;
padding: 60px 10px;
color:#fff;
margin-bottom:20px;
}

div.thanksTxt p:last-of-type{
    text-align: left;
}

form.invalid .wpcf7-response-output{
    display: none;
}

div.thanksTxt .ContactEnd{
	border: none;
	padding: 20px 40px;
	background-color: var(--colorBlue02);
	color: #fff;
	border-radius: 5px;
	display: block;
	width: fit-content;
	margin: 2em auto 0;
}



footer{
    background: linear-gradient(#3f4b57,#313c47);
    padding:50px 0;
    text-align: center;
    color: #fff;
    font-size: var(--fs16);
    line-height: 1.8;
}

footer p {
    font-weight: normal;
}

footer p span {
    font-weight: bold;
    font-size: var(--fs18);
}

.grecaptcha-badge{
    z-index:10;
}

/*レスポンシブ
****************************************************************************************************************************************************************************************************************************************************/
@media screen and ( max-width:960px) {
    :root{
        --fs14:14px;
        --fs16:14px;
        --fs18:16px;
        --fs24:20px;
        --fs36:24px;
    }
}


@media screen and ( max-width:720px) {
    :root{
        --fs14:14px;
        --fs16:16px;
        --fs18:18px;
        --fs24:24px;
        --fs36:36px;
    }

    header section{
        flex-wrap: wrap;
    }

    header p:first-of-type{
        width:100%;
        order:2;
        text-align: center;
    }
    
    header p.chiaro{
        width:100%;
        order:1;
        text-align: center;
    }

    section#howUse ul {
        flex-wrap: wrap;
    }

    section#howUse ul li{
        margin:0 auto 10px;
    }

    section#measure ul{
        display: block;
    }

    section#measure ul li{
        text-align: center;
    }

    section#measure ul li br{
        display: none;
    }

    section#measure ul:first-of-type  img{
        max-width: 375px;
    }
    section#measure ul:last-of-type  img{
        max-width: 476px;
        display: block;
        margin:0 auto 10px;
    }

    section#case>ul>li>ul{
        display: block;
    }

    section#case>ul>li.case01 ul li{
        width:100%;
        max-width:215px;
        margin:0 auto 40px;
        text-align: center;
    }

    section#case>ul>li.case02 ul li{
        width:100%;
        margin:0 auto 20px;
    }

    section#case>ul>li.case02>ul>li>ul{
        display: block;
    }

    section#case>ul>li.case02>ul>li:first-of-type>ul>li:last-of-type,
    section#case>ul>li.case02>ul>li:last-of-type>ul>li:last-of-type{
        width:100%;
        max-width: 500px;
        margin:0 auto;
    }

    section#case>ul>li.case02>ul>li:first-of-type>ul>li:first-of-type,
    section#case>ul>li.case02>ul>li:last-of-type>ul>li:first-of-type{
        width:100%;
    }

    section#price ul.prices{
        display: block;
    }
    
    section#price ul.prices li{
        width: 100%;
        margin:5px auto;
    }


}

@media screen and ( max-width:480px) {
    :root{
        --fs14:14px;
        --fs16:14px;
        --fs18:16px;
        --fs24:20px;
        --fs36:24px;
    }

    header p.chiaro>span:last-of-type{
        padding:5px;
    }

    section#infoTxt div>p:first-of-type::after{
        border-width:100px 200px 0 200px;
    }

    #inquiry .inquiryTable tr th, #inquiry .inquiryTable tr td{
        display: block;
        width:100%;
    }
}