@charset "utf-8";

/*リセット*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-style:normal;
	font-size: 100%;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}

html{
    overflow-y: scroll;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

input, textarea {
	margin: 0;
	padding: 0;
}

ol, ul{
    list-style:none;
}

table{
    border-collapse: collapse;
    border-spacing:0;
}

img{
	max-width:100%;
}

caption, th{
    text-align: left;
}

a:focus {
	outline:none;
}

.clearfix {
	zoom: 100%;
}

.clearfix:after {
	content: ".";
	display: block;
	visibility: hidden;
	height: 0.1px;
	font-size: 0.1em;
	line-height: 0;
	clear: both;
}

.both{
	clear:both;
}

body{
	color: #000;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.6;
	background-color: #fff;
	/* font-family: fot-tsukuardgothic-std, 'Noto Sans JP', sans-serif; */
    font-family: "Shippori Mincho", serif;
	overflow: hidden;
}

h1, h2, h3, h4, h5, h6, .fact .fact-number, .fact .fact-name, .site-title{
	color: #222;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	/* font-family: fot-tsukuardgothic-std, 'Noto Sans JP', sans-serif; */
}

a {
	-webkit-transition: all .3s;
    transition: all .3s;
}
a:hover{
	color: #000;
	opacity: .6;
	text-decoration: none;
	-webkit-transition: all .3s;
	transition: all .3s;
}

/* div, img {
	font-size: 0
} */

/* .fot{
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
}
.note{
	font-size: 18px;
} */


/*--------------------------------------------------------------
## LP Page
--------------------------------------------------------------*/

html {
    font-size: 62.5%;
    font-family: "Shippori Mincho", serif;
}

.root {
    position: relative;
    z-index: 0;
    background: url(../img/bg01.webp) top center no-repeat;
    background-size: cover;
}

.root::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../img/bg01.webp) no-repeat;
    background-size: cover;
    background-position: top center;
    z-index: -1;
    
    /* Safari対策 */
    will-change: transform;
    transform: translateZ(0);
}

.main {
    text-align: center;
}

.rankingConte {
    position: relative;
    width: min(100%, 780px);
    margin-inline: auto;
    background: url(../img/ranking-bg.webp) no-repeat center bottom / contain;
}

.rankingConte::after {
    content: "";
    background: url(../img/kirakira.webp) no-repeat top center / contain;
    aspect-ratio: 1196/922;
    position: absolute;
    top: -5rem;
    left: 0;
    right: 0;
    transform: scale(1.2);
}

.title {
    text-align: center;
    padding: 0 50px;
    margin-top: -14rem;
}

.ranking {
    padding: 2rem 1rem;
}

.designConte {
    position: relative;
    width: min(100%, 780px);
    margin-inline: auto;
    padding: 6rem 0 0 0;
}

.designConte::after {
    content: "";
    aspect-ratio: 370 / 240;
    background: url(../img/design-deco.webp) no-repeat center left / contain;
    position: absolute;
    width: 33%;
    top: -6rem;
    left: 2%;
}

.designTitle {
    position: relative;
    z-index: 1;
    padding: 0 50px;
}

.design {
   padding: 4rem 10% 0 0;
}

.aboutBox {
    position: relative;
    width: min(100%, 780px);
    margin-inline: auto;
    background: rgb(255 255 255 / 60%);
    padding: 8rem 0;
}

.flowerBotan {
    display: block;
    width: 50%;
    aspect-ratio: 1 / 1;
    background: url(../img/botan.webp) no-repeat center / contain;
    position: absolute;
    top: 200px;
    left: -24%;
}

.aboutPoint {
    padding: 10rem 50px;
}

.aboutBtnBox {
    padding: 10rem 0;
    width: min(100% - 50px, 600px);
    margin-inline: auto;
}

.suits {
    margin: -4rem -36rem 0 -36rem;
}

.point {
    margin: 4rem -36rem;
}

.voice {
    margin: -30rem -32rem 8rem -32rem;
}

.faq {
    position: relative;
    margin-top: -4vw;
}

.faq::after {
    content: "";
    width: 60%;
    height: 100px;
    border-radius: 999px;
    background: #00000080;
    position: absolute;
    bottom: 0px;
    left: 0;
    right: 0;
    margin: 0 auto;
    filter: blur(30px);
}

.faqBox {
    position: relative;
    width: min(100%, 780px);
    margin-inline: auto;
    z-index: 1;
}

.snsWrap {
    position: relative;
    margin: 4rem 0 0;
}

.snsWrap::after {
    content: "";
    width: 60%;
    height: 100px;
    border-radius: 999px;
    background: #00000080;
    position: absolute;
    bottom: 0px;
    left: 0;
    right: 0;
    margin: 0 auto;
    filter: blur(30px);
}

.snsBox {
    position: relative;
    max-width: 780px;
    margin: 0 auto;
    padding: 0 50px;
    z-index: 1;
}

.snsBox > iframe {
    max-width: 100% !important;
    width: 100% !important;
    margin-bottom: 0 !important;
}

.snsBtnBox {
    margin: 8rem 0 0;
    text-align: center;
}

.message {
    width: min(100%, 780px);
    margin-inline: auto;
    padding: 6rem 0 0 0;
}

.footerTxt.footerTxtWeb {
    margin: 3rem 0 0;
}

.footerTxt.footerZip {
    margin: 5rem 0 0;
}

.footer {
    margin: 6.1rem 0 0;
    padding: 9.8rem 0 35rem;
    background: #f8cfef;
    position: relative;
}

.foooterImgBox {
    text-align: center;
}

/* .footer:before {
    content: "";
    display: block;
    width: 100%;
    height: 19.1rem;
    position: absolute;
    top: -7.3rem;
    left: 0;
    background: url(../img/span08.png);
    background-position: left top;
    background-repeat: no-repeat;
    background-size: contain;
} */

.footerTtl {
    font-size: 4rem;
    color: #660066;
    /* font-family: fot-tsukuardgothic-std, 'Noto Sans JP', sans-serif; */
    font-family: 'Noto Serif JP', serif;
}

.footerTxt {
    font-size: 3rem;
    color: #660066;
    text-align: center;
    font-weight: 700;
    font-family: fot-tsukuardgothic-std, 'Noto Sans JP', sans-serif;
}

.footerTxt > a {
    color: #a34140;
}

.footerInfo {
    margin: 0.7rem 0 0;
}

.copyright {
    margin: 13rem 0 0;
    color: #660066;
    font-size: 2.7rem;
    text-align: center;
    font-weight: 700;
    font-family: fot-tsukuardgothic-std, 'Noto Sans JP', sans-serif;
}

/*--------------------------------------------------------------
## 固定バナー
--------------------------------------------------------------*/

.btn-win {
    bottom: 10px;
    z-index: 100;
    display: none;
    margin: 0 auto;
    padding: 0 10px;
    position: fixed;
    max-width: 700px;
    right: 0;
    left: 0;
    margin: auto;
    text-align: center;
}

.btn-win #btn {
    margin: auto auto 0;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 4%;
    left: 0;
    display: block;
    max-width: 701px;
    width: 100%;
    height: 60%;
    border-radius: 100px;
}

@media screen and (max-width: 1919.9999px){

	html {
		font-size: 0.533vw;
	}

}

@media screen and (max-width: 750px){

	html {
		font-size: 1.333vw;
	}

    .root {
        padding: 0.3rem 0 0;
    }

    .root::before {
        background-size: 160%;
    }

    .cover {
        margin: 0 -20rem;
    }

    .title {
        text-align: center;
        padding: 0 25px;
    }

    .designTitle {
        padding: 0 25px;
    }

    .aboutPoint {
        padding: 6rem 25px;
    }

    .aboutBtnBox {
        padding: 6rem 0 0 0;
    }

    .sns {
        margin: 28rem 0 0;
        transform: scale(1.7);
    }

    .snsBox {
        padding: 0 25px;
    }

    .snsWrap {
        margin: 14rem 0 0;
    }

    .snsBtnBox {
        margin: 7rem 0 0;
        transform: scale(1.7);
    }

    .foooterImgBox {
        max-width: 22rem;
        margin: 0 auto;
    }

    .footerTtl {
        font-size: 3.3rem;
    }

}

@media(min-width:1160px) {
    .faq::after,
    .snsWrap::after {
        width: 40%;
    }
}