@charset "UTF-8";
@import url("grid.css");

@media screen and (min-width: 769px) {
    .SP {
        display: none;
    }
}

:root {
    /* 色変更される場合は、#以降のカラーコードを変更してください */
    --color-back: #f7f7f7;
    --color-white: #fff;
    --color-base: #111;
    --color-pink: #EB8BA1;
    --color-bluegray: #90b3cb;
    --color-blue: #527389;
    --color-gray: #333;
    --color-link: #111;
    --color-linkhover: #999;
    --color-baby: #FFE0E7;
    --color-green: #799875;
}

html {
    overflow-x: hidden;
}

body {
    color: var(--color-base);
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    /*高さ自動*/
}

a {
    display: block;
    color: var(--color-link);
    text-decoration-line: none;
    transition: all 0.3s;
}

a:hover {
    color: var(--color-linkhover);
}

.under {
    border-bottom: 0.4rem solid;
    padding: 0 1rem 1rem 1rem;
}

/*ヘッダー
-------------------------------------*/
.header {
    display: flex;
    flex-direction: row;
}

.header__logo {
    position: fixed;
    left: min(50px, 4vw);
    top: min(50px, 4vw);
    width: 70px;
    z-index: 2000;
}

.header__logo a:hover {
    opacity: 0.5;
}

.header__brandlogo {
    width: 10vw;
    position: fixed;
    right: min(50px, 4vw);
    top: min(50px, 4vw);
    z-index: 2000;
}

.header__brandlogo a:hover {
    opacity: 0.5;
}

nav {

    width: 100%;
    position: absolute;
    top: 0;
    z-index: 1001;
}



nav ul {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 30px;
    list-style: none;
    margin: 1rem 0 0 0;
}

nav a:hover {
    color: var(--color-pink);
}


@media screen and (min-width: 769px) {

    /* PC時はMENUボタンを非表示 */
    #open,
    #close {
        display: none !important;
    }

    #navi {
        display: block !important;
        margin: 50px 250px 0 0;
    }

}

@media screen and (max-width: 768px) {
    .header {
        flex-direction: column;
        margin-bottom: 10px;
    }

    .header #open,
    #close {
        position: absolute;
        top: 20px;
        right: 12px;
        z-index: 2000;
    }

    #navi {
        height: 100vh;
        width: 100%;
        background: var(--color-baby);
        top: 0;
        position: fixed;
        padding: 4vw;
    }

    #navi ul {
        flex-direction: column;
        margin-top: 100px;
    }

    .header li {
        padding-top: 0;
    }

    .header__logo {
        width: 14vw;
    }

    .header__brandlogo {
        left: 21vw;
        right: unset;
        width: 14vw;
    }

    #open {
        display: block;
        background: url(../img/cmn__menu.svg);
        background-repeat: no-repeat;
        background-size: contain;
        width: 50px;
        height: 50px;
        border: none;
        position: fixed;
        top: 10px;
        right: 10px;
    }

    #close {
        display: block;
        background: url(../img/cmn__menu2.svg);
        background-repeat: no-repeat;
        background-size: contain;
        width: 50px;
        height: 50px;
        border: none;
        position: fixed;
        top: 20px;
        right: 12px;
    }

    /* スマホ時はメニューを非表示 */
    #navi {
        display: none;


    }
}

/*キービジュアル
-------------------------------------*/
.mainimg__bg {
    width: 100vw;
    height: 100%;
    position: fixed;
    object-fit: cover;
}

.mainimg__title {
    display: block;
    position: absolute;
    width: 25vw;
    height: fit-content;
    max-width: 500px;
    z-index: 1001;
    top: calc(50% - 50px);
    left: calc(4vw + 40px);

}

.mainimg__title2 {
    width: 37%;
    max-width: 580px;
    position: absolute;
    top: 19%;
    left: 13%;
    transition: 1.5s ease-in-out;
}

@keyframes fuwafuwa {
    0% {
        transform: translate(0, 0);
    }

    50% {
        transform: translate(0, -7px);
    }

    100% {
        transform: translate(0, 0);
    }
}


.mainimg {
    overflow: hidden;
    width: 100%;
}

.mainimg__box {
    overflow: hidden;
    width: 100vw;
    background-color: #497ea1;
}

.mainimg__item {
    position: absolute;
    top: calc(50% - 18vh);
    z-index: 1000;
    left: calc(34% + 30px);
    width: 18%;
    max-width: 350px;
    transform: rotate(10deg);
    border-radius: 18px;
}

.mainimg__woman {
    position: absolute;
    z-index: 10;
    bottom: -5px;
    right: -30px;
    width: 65%;
    max-width: 750px;
}



@media screen and (max-width: 768px) {
    .mainimg__bg {
        height: 110%;
    }

    .mainimg__item {
        width: 42%;
        max-width: 260px;
        top: 30%;
        right: 0;
        left: 0;
        margin: 0 auto;
        border-radius: 12px;
        display: none;
    }

    .mainimg__title {
        display: none;
    }

    .mainimg__title2 {
        width: 75vw;
        max-width: 400px;
        top: 100px;
        right: 0;
        left: 0;
        margin: 0 auto;
    }



    .mainimg__woman {
        max-width: unset;
        width: 100%;
        right: 0;
        left: 0;
        bottom: -10px;
    }
}



/*イントロ------------------------------------*/


body.no-scroll {
    overflow: hidden;
}

#intro1 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 2000;
    position: fixed;
    background: url('../img/intro01.jpg');
    background-size: cover;
    text-align: center;
    padding: 10vw;
    font-size: 1.4rem;
    line-height: 2;
    color: var(--color-base);
    animation: 5.0s linear forwards intro1;
    pointer-events: none;
}

@keyframes intro1 {
    0% {
        opacity: 1;
        scale: 1;
    }

    95% {
        opacity: 1;
        scale: 1.10;
    }

    100% {
        scale: 1.8;
        opacity: 0;
    }
}

.intro1__1 {
    opacity: 0;
}

.intro1__large {
    font-size: 150%;
    padding-bottom: 0.8em;
    line-height: 1.4;
}

.intro1__box {
    animation: 8s linear forwards intro1b;
}

@keyframes intro1b {
    0% {
        opacity: 1;
        scale: 1;
    }

    95% {
        opacity: 1;
        scale: 1;
    }

    100% {
        opacity: 0;
        scale: 1.4;
    }
}

.char {
    opacity: 0;
    display: inline-block;
    animation: fadeIn 0.1s forwards;
}

@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

@media screen and (max-width: 768px) {
    #intro1 {
        font-size: 1.2rem;
        padding: 3vw;
        width: 100vw;
        height: 100vh;
    }


}

/*メインコンテンツ
-------------------------------------*/

main {
    margin-top: 100vh;
    position: relative;
    z-index: 10;
    border-radius: 30px;
}

section {
    margin: 5rem 0 0;
    padding: 3rem 0;
}

#s1 {
    border-radius: 30px 30px 0 0;
    margin: 50px auto 0;
    padding-bottom: 0;
    width: calc(100% - 300px);
    max-width: 700px;
    background: url('../img/sec01__bg.jpg?20250214') no-repeat #fff;
}

.s1__images {
    position: relative;
    height: 1400px;
    /*background:rgba(255, 226, 226, 0.95);*/
    padding-top: 150px;
}

.s1__circle1 {
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: 150px;
    width: 25%;
    max-width: 300px;
}

.s1__circle2 {
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: 150px;
    width: 25%;
    max-width: 300px;
}

.s1__item {
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: 0;
    width: 25vw;
    max-width: 480px;
    border-radius: 36px;
    transform: rotate(10deg);
}

.s1__title {
    margin: 4em 0 4em;
    text-align: center;
    color: var(--color-base);
    font-size: 1.6rem;
    line-height: 2;
}

.s1__title-img {
    width: 80%;
    fill: transparent;
}


.s1__title-img.is-animated {
    animation: stroke 2s ease-in-out forwards;
    stroke: var(--color-pink);
    stroke-dasharray: 1000px;
    stroke-dashoffset: 0;
    stroke-width: 1px;
}

.s2__title-img {
    fill: transparent;
}

.s2__title-img.is-animated {
    animation: stroke 2s ease-in-out forwards;
    stroke: var(--color-pink);
    stroke-dasharray: 600px;
    stroke-dashoffset: 0;
    stroke-width: 1px;
}

.s3__other-svg {
    fill: transparent;
    width: 80%;
}

.s3__other-svg.is-animated {
    animation: stroke 2s ease-in-out forwards;
    stroke: var(--color-pink);
    stroke-dasharray: 1000px;
    stroke-dashoffset: 0;
    stroke-width: 1px;
}

@keyframes stroke {
    0% {
        fill: transparent;
        stroke-dashoffset: 1000px;
    }

    10% {
        fill: transparent;
    }

    98% {
        stroke-dashoffset: 0;
        stroke-width: 1px;
    }

    100% {
        fill: var(--color-pink);
        stroke-dashoffset: 0;
        stroke-width: 0;
    }
}

.s1__box {
    /*position: relative;*/
    background: #fff;
    margin: 2vw 2vw 5vw;
    border-radius: 20px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    min-height: 420px;
    box-shadow: 0px 5px 15px 0px rgba(255, 175, 176, 0.05);
}

.s1__box-num {
    margin: 4.4vw 0 0 4.4vw;
    width: 22%;
}

.s1__p1 {
    background: url('../img/sec01__bg01.jpg?20250214') center;
    background-size: cover;
}

.s1__p2 {
    background: url('../img/sec01__bg02.jpg?20250214') center;
    background-size: cover;
}

.s1__p2-img {
    margin-left: -30%;
}

.s1__p3 {
    background: url('../img/sec01__bg03.jpg?20250214') center;
    background-size: cover;
    opacity: 1;
}

.s1__box-right {
    width: calc(63% - 30px);
    margin: min(4vw, 50px) min(3vw, 30px) min(4vw, 30px) 0;
}

.s1__txt01 {
    font-size: 2.8rem;
    line-height: 1.6;
    margin-bottom: 1.5em;
    letter-spacing: unset;
}

.s1__txt01 span {}

.s1__txt02 {
    font-size: 1.6rem;
    color: var(--color-base);
    line-height: 2;
}

.s1__txt01--01 {
    color: var(--color-pink);
}

.s1__txt01--02 {
    color: var(--color-bluegray);
}

.s1__txt01--03 {
    color: var(--color-green);
}


.s1__btnbox {
    position: relative;
    overflow: hidden;
    width: fit-content;
}

.s1__btn {
    width: fit-content;
    display: flex;
    gap: 15px;
    background: var(--color-pink);
    color: #fff;
    font-weight: bold;
    font-size: 2rem;
    border-radius: 5px;
    padding: 0.5em 2em;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
}

.s1__btn img {
    width: 30px;
}

.s1__btn:hover {
    background-color: var(--color-bluegray);
    color: var(--color-white);
}

.s1__btn:hover {
    text-decoration: none;
    color: #fbfbfb;
}

.s1__btn::before {

    position: absolute;
    content: '';
    display: inline-block;
    top: -180px;
    left: 0;
    width: 30px;
    height: 100%;
    background-color: #fbfbfb;
    animation: btn_animation 2.5s ease-in-out infinite;
}

@-webkit-keyframes btn_animation {
    0% {
        -webkit-transform: scale(0) rotate(45deg);
        opacity: 0;
    }

    80% {
        -webkit-transform: scale(0) rotate(45deg);
        opacity: 0.5;
    }

    81% {
        -webkit-transform: scale(4) rotate(45deg);
        opacity: 1;
    }

    100% {
        -webkit-transform: scale(50) rotate(45deg);
        opacity: 0;
    }
}

.s1__popup {
    background: #FFE3E3;
    border-radius: 20px;
    padding: 30px;
    position: absolute;
    top: 0;
    right: 20px;
    width: 80%;
    box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.2);
    display: none;
    z-index: 10000;
}

.s1__popup-title {
    text-align: center;
    color: var(--color-pink);
    font-size: 2.6rem;
    margin-bottom: 1em;
}

.s1__popup p {
    font-size: 14px;
}

#s2 {
    border-radius: 0 0;
    margin: 0 auto 0;
    width: calc(100% - 300px);
    max-width: 700px;
    background: url('../img/sec02__bg.jpg') no-repeat #F8EAF0;
    background-position: top 50px left;
    position: relative;
}

.s2__top {
    line-height: 0;
    display: flex;
    width: 100%;
    margin-bottom: -1px;
    margin-top: 50px;
    overflow: hidden;
}

.s2__top img {
    width: 200%;
    max-width: unset;
    height: 100%;
    animation: loop 5s -5s linear infinite;
}

@keyframes loop {
    0% {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

.s2__bottom {
    line-height: 0;
    display: flex;
    width: 100%;
    margin-top: -1px;
    margin-bottom: 50px;
    overflow: hidden;
    filter: drop-shadow(0 20px 10px rgba(178, 208, 225, 1));
}

.s2__bottom img {
    width: 200%;
    max-width: unset;
    height: 100%;
    animation: loop 5s -5s linear infinite;
}

.s2__title {
    text-align: center;
}

.s2__title-img {
    width: 20%;
}

.s2__title {
    margin: 4em 0 3em;
    text-align: center;
    color: var(--color-gray);
    font-size: 1.6rem;
}

.s2__subtitle {
    background: var(--color-pink);
    color: var(--color-white);
    margin: 1em 2em 2em;
    border-radius: 30px;
    padding: 0.5em 1em;
    text-align: center;
    font-size: 1.8rem;
    font-weight: bold;
}

.s2__item {
    position: absolute;
    top: 1vw;
    right: 40px;
    width: 20%;
    transform: rotate(15deg);
}

.s2__item2 {
    position: absolute;
    top: 1vw;
    left: 40px;
    width: 20%;
    transform: rotate(-15deg);
}

.s2__qa {
    margin: 0 4vw 0 8vw;

}

.s2__qa dt {
    position: relative;
    margin-bottom: 1.8em;
    cursor: pointer;
}

.s2__qa dt:hover {
    color: var(--color-pink);
}

.s2__qa dt:active {
    color: var(--color-base);
}

.s2__qa dt::before {
    content: '';
    position: absolute;
    left: -4em;
    top: -0.3em;
    display: block;
    width: 4rem;
    height: 4rem;
    padding-right: 4em;
    background-image: url("../img/sec02__q.svg");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.s2__qa dd {
    position: relative;
    margin-bottom: 1.8em;
    display: none;
    color: var(--color-blue);
}


.s2__qa dd::before {
    content: '';
    position: absolute;
    left: -4em;
    top: -0.3em;
    display: block;
    width: 4rem;
    height: 4rem;
    padding-right: 4em;
    background-image: url("../img/sec02__a.svg");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

#s3 {
    width: 100%;
    margin: 0 0;
    padding: 0 0 6vw;
    background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 223, 223, 1), rgba(255, 231, 210));
}

.s3__inner {
    border-radius: 0 0;
    margin: 0 auto 0;
    padding-bottom: 1vw;
    width: calc(100% - 300px);
    max-width: 700px;
    background: url('../img/sec03__bg.jpg') no-repeat center;
    background-size: cover;
    position: relative;
    border-radius: 0 0 50px 50px;
}

.s3__title {
    text-align: center;
    line-height: 2;
    font-weight: bold;
    color: var(--color-gray);
    padding: 4em 0 3em 0;
    text-shadow: #fff 0 0 8px;
}

.s3__img {
    text-align: center;
    position: relative;
}

.s3__img1 {
    transform: rotate(-10deg);
    width: 37%;
    box-shadow: 5px 15px 15px 0px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    position: relative;
}

.s3__img2 {
    transform: rotate(10deg);
    width: 37%;
    box-shadow: 5px 15px 15px 0px rgba(0, 0, 0, 0.1);

}

.s3__img3 {
    position: absolute;
    right: 2vw;
    bottom: 2vw;
    width: 150px;
    transform: rotate(-20deg);
}

#iframeID {
    padding: 3vw;
    border: none;
    background-color: rgba(251, 236, 236, 0.9);
}

.s3__other {
    background: rgba(253, 239, 230, 0.9);
    padding: 4vw 4vw 4vw;
    border-radius: 30px;
    margin: 30px;
}

.s3__other-title {
    text-align: center;
    margin-bottom: 1em;
    color: var(--color-pink);
}

.s3__other-img {
    display: flex;
    text-align: center;
    gap: 10px;
}

.s3__other-img figure {
    display: inline-block;

}

.s3__other-img figcaption {
    position: relative;
    z-index: 15;
    margin-top: 2em;
    color: var(--color-pink);
    font-size: 1.4rem;
    font-weight: bold;
}

.s3__other-img1 {
    box-shadow: 5px 15px 15px 0px rgba(0, 0, 0, 0.1);
}

.s3__other-img2 {
    box-shadow: 5px 15px 15px 0px rgba(0, 0, 0, 0.1);
}

.s3__other-img3 {
    box-shadow: 5px 15px 15px 0px rgba(0, 0, 0, 0.1);
}

.s3__more {
    padding: 10px;
    text-align: center;
    border: solid 1px #666;
    border-radius: 30px;
    max-width: 80%;
    margin: 2vw auto;
    position: relative;
}

.s3__more span::after {
    content: '';
    display: inline-block;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto 0;
    right: 1.7em;
    width: 0.8em;
    height: 0.8em;
    border-bottom: 1px solid var(--color-base);
    border-right: 1px solid var(--color-base);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

@media screen and (max-width: 768px) {
    #s1 {
        width: calc(100%);
        max-width: unset;
        border-radius: 0;
        background-size: cover;
        /*background-position: center;*/
    }

    #s2 {
        width: calc(100%);
        max-width: unset;
    }

    .s3__inner {
        width: calc(100%);
        max-width: unset;
    }

    .s2__qa {
        width: calc(80% - 4vw);
        margin: 0 auto 0 16vw;
        font-size: 1.4rem;
    }

    .s2__qa dt::before {
        width: 3rem;
        height: 3rem;
        left: -3.5em;
        top: 0px;
    }

    .s2__qa dd::before {
        width: 3rem;
        height: 3rem;
        left: -3.5em;
        top: 0px;
    }

    .s1__txt01 {
        font-size: 1.8rem;
    }

    .s1__box-right {
        width: 68%;
        margin-top: 12vw;
    }

    .s1__btn {
        font-size: 1.6rem;
        padding: 0.5em 1em;
    }

    .s1__box {
        min-height: 500px;
        max-width: 500px;
        margin: 2vw 3vw 5vw;
    }


    .s3__other {
        margin: 3vw;
    }

    .s1__item {
        width: 50%;
        max-width: unset;
        border-radius: 20px;
    }

    .s1__circle1 {
        width: 40%;
        max-width: unset;
    }

    .s1__circle2 {
        width: 40%;
        max-width: unset;
    }

    #iframeID {}

    .s1__title-img {
        width: 92%;
    }

    .s1__images {
        height: 1000px;
    }

    .s1__title {
        line-height: 1.5;
        margin: 1em 0 2em;
    }

    .s1__txt02 {
        font-size: 1.4rem;
    }

    .s3__img3 {
        width: 100px;
    }

    .s1__box-num {
        margin-top: 8vw;
        margin-left: 5vw;
    }

    .s2__item {
        margin-top: 13vw;
    }

    .s2__item2 {
        margin-top: 13vw;
    }

    .s1__popup {
        top: 10px;
        bottom: unset;
        width: 90%;
        right: 0;
        left: 0;
        margin: 0 auto;
    }

}

@media screen and (max-width: 700px) {
    .s1__box {
        min-height: 440px;
        max-width: unset;
    }

    .s1__item {
        width: 70%;
    }

    .s1__circle1 {
        width: 55%;
    }

    .s1__circle2 {
        width: 55%;
    }
}

@media screen and (max-width: 480px) {
    .s1__item {
        width: 59%;
    }

    .s1__p2-img {
        margin-left: -20%;
    }
}

/*フッター
-------------------------------------*/
footer {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 8vw 4vw 3vw;
    background: linear-gradient(rgba(255, 231, 210), rgba(255, 204, 204));
    text-align: center;
}

#pagetop {
    position: fixed;
    z-index: 20;
    bottom: min(50px, 9vw);
    right: min(50px, 4vw);
    width: 15vw;
    max-width: 150px;
    line-height: 0;
    margin: 0;
}

#pagetop a {
    display: block;
    text-align: center;
}

#pagetop a:hover {
    background-color: var(--link-color);
}

.copyright {
    font-size: 1.0rem;
    color: var(--color-gray);
    text-align: center;
    padding: 1rem 0;
}

.footer__list {
    margin: 5vw 0;
    display: flex;
    justify-content: center;
    gap: 3em;
}

.footer__list li {
    list-style: none;
}

@media screen and (max-width: 768px) {
    .footer__logo {
        width: 70px;
    }

    .footer__list {
        font-size: 1.2rem;
    }
}

/* 幅768px以下の表示
-------------------------------------*/
@media screen and (max-width: 768px) {

    /*ヘッダー
-------------------------------------*/
    .header-box {
        display: none;
    }

}

/*追加*/
#navi ul li a {
    text-shadow: 1px 1px 0px #fff;
}
#iframeID .product{
    margin-bottom: 30px;
}
@media screen and (max-width: 768px) {
#iframeID .product{
font-size: 1.4rem;
}

}