
/* グラデーションアニメ */
@keyframes gradient-animation {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

:root {
    --sky-color: linear-gradient(157deg, #152d9c, #152d9c, #b5797a, #c2965e);
    --sky-animation: gradient-animation 7s ease infinite;
    --sky-size: 240% 240%;

    --shadow_image: url(../img/light_and_shadow.jpeg);
}




/* 共通設定 */

html {
    scroll-behavior: smooth;
}

body {
    width: 100vw;
    /* height: 100vh; */
    color: #3c3c3c;
}

body,
html {
    /* overflow: hidden; */
    overflow-x: hidden;
    height: auto;
}

h2 {
    display: flex;
    flex-direction: column;

    font-family: Lato, sans-serif;
    font-weight: 300;

    font-size: 24px;
    letter-spacing: 2px;
    line-height: 26px;
    /* margin: 70px auto; */
    margin: min(15vw, 70px) auto;
}

h2 span {
    font-family: Noto Sans JP, sans-serif;
    font-weight: 300;

    font-size: 14px;
    letter-spacing: 5px;
    line-height: 26px;
}

.h2_left {
    margin-left: 7%;
}

.h2_right {
    text-align: right;
    margin-right: 7%;
}

/* section {
    border-radius: 30px 30px 0 0;
} */



@media screen and (min-width: 768px) {
    h2 {
        font-size: min(5vw, 40px);
        letter-spacing: min(1vw, 5px);
        line-height: min(6.7vw, 26px);
        margin: min(30vw, 100px) auto;
    }

    h2 span {
        font-size: 16px;
        margin-top: 18px;
    }

    .h2_left {
        margin-left: 8%;
    }

    .h2_right {
        margin-right: 8%;
    }
}


.gradient-background {
    background: var(--sky-color);
    background-size: var(--sky-size);
    animation: var(--sky-animation);
}



/* ローディング画面 */
#loading {
    width: 100vw;
    height: 100vh;

    display: grid;
    place-content: center;

    position: fixed;
    transition: all 1.5s ease;
    z-index: 100;

    background-color: rgba(154, 164, 213, 0.5);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

.spinner {
    width: 6vh;
    height: 6vh;

    position: relative;
    margin: 100px auto;
}

.double-bounce1,
.double-bounce2 {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: #FFF;
    opacity: 0.6;
    position: absolute;
    top: 0;
    left: 0;

    -webkit-animation: sk-bounce 2.0s infinite ease-in-out;
    animation: sk-bounce 2.0s infinite ease-in-out;
}

.double-bounce2 {
    -webkit-animation-delay: -1.0s;
    animation-delay: -1.0s;
}

@-webkit-keyframes sk-bounce {

    0%,
    100% {
        -webkit-transform: scale(0.0)
    }

    50% {
        -webkit-transform: scale(1.0)
    }
}

@keyframes sk-bounce {

    0%,
    100% {
        transform: scale(0.0);
        -webkit-transform: scale(0.0);
    }

    50% {
        transform: scale(1.0);
        -webkit-transform: scale(1.0);
    }
}

.loaded {
    opacity: 0;
    visibility: hidden;
}





/* ハンバーガーメニュー */

.header {
    background-color: inherit;
}

.header-navbtn {
    position: fixed;
    top: 20px;
    right: 30px;
    background: none;
    border: none;
    z-index: 55;

    width: 35px;
    height: 35px;

    background-color: inherit;
    cursor: pointer;
}

.header-navbtn span {
    position: relative;
    display: inline-block;
    height: 1px;
    margin: 0 auto;
    width: 30px;
    background-color: #fff;
    transition: all 1s ease-in-out;
    transform: rotate(45deg);
    
    /* background-blend-mode: difference; */
    box-shadow: 1px 1.5px 2px rgba(32, 33, 36, 0.28);
}

.header-navbtn span::before,
.header-navbtn span::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 30px;
    height: 1px;
    background-color: #fff;
    transition: all 0.7s ease-in-out;
    box-shadow: 1px 1.5px 2px rgba(32, 33, 36, 0.28);
}

.header-navbtn span::before {
    transform: translate(-7px, 7px);
}

.header-navbtn span::after {
    transform: translate(7px, -7px);
}



/* メニューボタン(CLOSE) */

body.is-nav-open .header-navbtn span {
    transform: rotate(315deg);
}

body.is-nav-open .header-navbtn span::before {
    transform: rotate(90deg);
}

body.is-nav-open .header-navbtn span::after {
    transform: rotate(90deg);
}

body.is-nav-open .header-navbtn span,
body.is-nav-open .header-navbtn span::before,
body.is-nav-open .header-navbtn span::after {
    box-shadow: unset;
}


/* メニュー画面 */

.header-nav {
    position: fixed;
    z-index: 50;
    right: 0;
    width: 70vw;
    height: 100vh;
    background-color: rgba(133, 188, 230, 0.7);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    transform: translateX(100vw);
    transition: transform 1.1s ease;


}

.gnav-list {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: end;
    width: 100%;
    height: 100%;
    padding-right: 6vw;
}

.gnav-item {
    padding: 2.5vh 0;
}

.gnav-item a {
    font-family: Lato, sans-serif;
    text-transform: uppercase;
    padding: 2vh 0;
    color: #fff;
    text-decoration: none;
    font-size: 1.5rem;
    font-weight: 300;
    letter-spacing: 2.2px;
}

body.is-nav-open .header-nav {
    transform: translateX(0px);
}


.sound_toggle {
    display: none;
}

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

    .header-navbtn {
        top: 25px;
        right: 25px;
    }


    /* メニュー画面 */

    .header-nav {
        width: 30vw;
        transform: translateX(35vw);
        transition: transform 1.05s ease;
    }

    .gnav-list {
        padding-right: 10%;
    }

    .gnav-item {
        padding: 3vh 0;
    }

}




/* MV */

#mv {
    position: relative;
}

/* パララックスのしくみ */
.mv_wrapper {
    height: 100vh;
    width: 100vw;
}

/* .palallax {
    width: 100vw;
    position: absolute;
    opacity: 0;
} */

/* .palallax img {
    width: 100%;
} */

/* .mv_logo {
    z-index: 4;
} */


/* 改訂版 */
.palallax {
    width: auto;
    height: 240vh;  /* 467行目と連動 */
    position: absolute;
    opacity: 0;
}

.palallax img {
    width: auto;
    height: 100%;
}

.mv_logo {
    z-index: 4;
}

.palallax.small {
    /* filter: brightness(0) invert(1) blur(0.5px) opacity(0.5); */
    filter: brightness(80%) sepia(30%) blur(0.5px);
}

.palallax.medium {
    /* filter: brightness(140%) blur(0.7px) opacity(0.84); */
    filter: brightness(95%) sepia(50%) blur(0.5px);
}

.palallax.large {
    /* filter: brightness(110%); */
    right: 0px;

}

.palallax.shooting_star {
    margin-top: 10vh;
    height: 300vh;
}






h1 {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 70vw;

    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

h1 span {
    color: #fff;
    font-family: Noto Serif JP, serif;
    font-weight: 300;
    font-size: 16px;
    letter-spacing: 5px;
    margin-bottom: 25px;
}

h1 img {
    width: 100%;
    max-width: 500px;
}



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

    h1 {
        width: 45vw;
    }

    h1 span {
        font-family: Lato, sans-serif;
        font-weight: 100;
    }

    h1 img {
        width: 100%;
    }
}







/* OVERTURE */
#overture {
    height: 140vh;  /* 379行目と連動 */
    position: relative;
}

.overture_wrapper {
    padding: 10vh 7vh;


    color: #fff;
    position: relative;
    z-index: 4;
    transform: translateY(15vh);
    ;
}

h3 {
    font-family: Noto Serif JP, serif;
    font-weight: 400;
    font-size: min(6.7vw, 24px);
    letter-spacing: min(1vw, 6px);
    line-height: min(11vw, 50px);
    margin-bottom: min(11vw, 50px);
}

.overture_wrapper p {
    font-family: Noto Sans JP, sans-serif;
    font-family: Noto Serif JP, serif;
    font-weight: 400;
    font-size: min(3.5vw, 14px);
    letter-spacing: min(0.5vw, 2px);
    line-height: min(7.2vw, 32px);
}

h3 span {
    display: inline-block;
}

.overture_story p {
    margin-top: 2em;
}


@media screen and (min-width: 768px) {
    .overture_wrapper {
        padding: 15vh 25vh;
        /* padding-bottom: 30vh; */
    }

    h3 {
        font-size: 32px;
        font-weight: 300;
        letter-spacing: 6px;
        line-height: 70px;
        margin-bottom: 50px;
    }

    .overture_wrapper p {
        font-size: 16px;
        font-weight: 300;
        letter-spacing: 5px;
        line-height: 32px;
    }

    h3 span {
        display: inline-block;
    }
}







/* PRODUCT */
#product {
    width: 100vw;
    display: inline-block;
    padding-bottom: 130px;
    position: relative;
    z-index: 30;

    /* background-color: #f5f5f5; */
    background-image: url(../img/pd_background3.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    /* backdrop-filter: blur(10px) brightness(80%) sepia(30%) blur(0.5px); */

}


/* #product::before {
    content: '';
    display: block;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -10;
    background-image: url(../img/adobe_stock_1.jpeg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
} */



.product_wrapper {
    display: grid;
}

.product_item {
    width: 100%;
    margin: 11vh auto;
    position: relative;
}

.product_text {
    transform: translateY(-1em);
}

.product_img {
    width: 100vw;
    height: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
    /* box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.05);s */
}

.product_img img {
    width: 85%;
}

.usapopo .product_img {
    background-color: #FFE2E2;
}

.chibiusa .product_img {
    background-color: #FFF7BD;
}

.shimahuwa .product_img {
    background-color: #F5FFCF;
}

.hukupen .product_img {
    background-color: #E2DEFF;
}



h4 {
    font-size: clamp(14px, 3vw, 16px);
    font-family: Noto Sans JP, sans-serif;
    font-weight: 400;
    letter-spacing: 5px;
    line-height: 26px;

    display: flex;
    flex-direction: column;
    margin-left: 4%;
    margin-bottom: 2.5%;
}

h4 span {
    font-size: clamp(21px, 5vw, 24px);
    font-family: lato, sans-serif;
    font-weight: 300;
}

.product_text p {
    font-size: clamp(15px, 3vw, 17px);
    font-family: Zen Kaku Gothic Antique, sans-serif;
    font-weight: 300;
    letter-spacing: 3px;
    line-height: 26px;

    width: 85%;
    margin: 0 auto;
}


@media screen and (min-width: 768px) {
    #product {
        width: 100%;
        padding-bottom: 140px;
    }

    .product_item {
        width: 30vw;
        margin: 7vw 10vw;
    }

    .product_text {
        transform: translateY(-1em);
    }

    .product_img {
        width: 38vh;
        height: 38vh;
    }

    .product_img img {
        width: 100%;
        transform: translate(-10%, -10%);
    }

    .product_text {
        transform: translate(-40px, -25px);
    }



    h4 {
        font-size: clamp(13px, 3vw, 15px);
        font-weight: 300;
        letter-spacing: 5px;
        line-height: 26px;

        margin-left: 0;
        margin-top: 0.5rem;
        margin-bottom: 1rem;
    }

    h4 span {
        font-size: clamp(18px, 4.5vw, 22px);
        font-weight: 300;
    }

    .product_text p {
        font-size: clamp(14px, 3vw, 15px);
        letter-spacing: 3px;
        line-height: 26px;
        width: 38vh;
        margin: 0;
    }

    .product_wrapper {
        width: 90vw;
        margin: 0 auto;
        /* place-content: center; */
        /* place-items: center; */
        grid-template-columns: 50% 50%;
        grid-template-rows: 25% 25% 25% 25%;
    }


    .usapopo {
        grid-row: 1;
        grid-column: 1;
    }

    .chibiusa {
        grid-row: 2;
        grid-column: 2;
    }

    .shimahuwa {
        grid-row: 3;
        grid-column: 1;
    }

    .hukupen {
        grid-row: 4;
        grid-column: 2;
    }
}





/* ONLINE SHOP */

#onlineShop {
    position: relative;
    width: 100vw;
    height: 120vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #fff;
}

.shop_wrapper {
    position: absolute;
    top: 57%;
    left: 50%;
    transform: translate(-50%, -50%);

    width: 60vh;
    max-width: 90vw;
}

.shop_img {
    display: flex;
    flex-direction: column;
    height: 30vh;
    margin: 5vh auto;
    background-color: #fff;
}



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

    #onlineShop {
        padding-bottom: min(17vw, 150px);
    }

    .shop_wrapper {
        width: 60vh;
    }

}






/* NEWS */
#news {
    position: relative;
    width: 100vw;
    height: 100vh;
    color: #3c3c3c;
    padding-bottom: min(15vw, 70px);
}

#news::before {
    content: '';
    display: block;
    width: 100%;
    height: 100vh;
    /* position: fixed; */
    top: 0;
    left: 0;
    z-index: -1;
    background-image: var(--shadow_image);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;
}

.news_wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    width: 77%;
    height: 55%;
    padding: 7%;

    background-color: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(1px);
    border-radius: 30px;

}

.news_list {
    list-style: none;
    height: 100%;
    margin: 0 auto;

    display: flex;
    flex-direction: column;

    overflow: scroll;
}

.news_list li {
    width: 100%;
    display: flex;
    justify-content: center;
    box-shadow: 0 1px 0 -0.5px currentColor;

    /* font-family: Noto Serif JP, serif; */
    /* font-weight: 300; */
    /* font-size: 15px;
    letter-spacing: min(0.35vw, 5px);
    line-height: 23px; */

    font-size: clamp(15px, 3vw, 17px);
    font-family: Zen Kaku Gothic Antique, sans-serif;
    font-weight: 300;
    letter-spacing: 3px;
    line-height: 26px;
}


.news_link {
    text-align: center;
    padding: 5vw 0;
    margin: 2px 0;
    text-decoration: none;
}

.news_date {
    padding-right: 0.7em;
    /* font-size: 12px; */
}

.news_text,
.news_date {
    color: #3c3c3c;
}






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

    .news_wrapper {
        transform: translate(-50%, -50%);
        width: 70%;
        height: 65%;
        padding: 6%;
    }

    .news_list {
        width: 100%;
        height: 100%;    
    }

    .news_list li {

        font-weight: 200;

        font-size: min(2.9vw, 16px);
        letter-spacing: min(0.35vw, 5px);
        line-height: min(6vw, 26px);
    }

    .news_link {
        padding: 3.5vw 0;
        margin: 2px 0;
        display: flex;
        text-decoration: none;
    }

    .news_date {
        padding-right: 0.7em;
    }
}



/* ABOUT */

#about {
    display: inline-block;
    width: 100vw;
    height: 100%;
    padding-bottom: min(15vw, 70px);
    background-color: #fff;
}

.about_wrapper {
    width: 80%;
    margin: min(15vw, 70px) auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.my_image_wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.my_image {
    display: inline-block;
    width: 50%;
    clip-path: circle(35% at center);
}

dl {
    font-family: Noto Serif JP, serif;
    line-height: 28px;
    line-height: min(7vw, 28px);
}

dt {
    text-align: center;
    font-size: 20px;
    letter-spacing: 3px;
    font-size: min(4.5vw, 20px);
    letter-spacing: min(0.7vw, 3px);

}

dd {
    text-align: center;
    letter-spacing: 2.5px;
    font-size: min(3.2vw, 12px);
    letter-spacing: min(0.37vw, 2.5px);
    padding: 24px 0;
}

.my_instagram {
    height: 10%;
    width: min(39%, 150px);
    padding: 32px 0;
    /* padding-bottom: min(15vw, 70px) auto; */
}

.my_instagram img {
    width: 100%;
    transition: all ease-in-out .25s;
}

.my_instagram img:hover {
    opacity: 0.8;
    filter: brightness(1.5);
    translate: 0 -10px;
}

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

    .about_wrapper {
        width: 80%;
        margin: min(15vw, 70px) auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        /* background-color: #E2DEFF; */

    }

    .my_image {
        display: inline-block;
        width: min(40%, 320px);
        clip-path: circle(35% at center);
    }

    dl {
        font-family: Noto Serif JP, serif;
        line-height: 28px;
        line-height: min(7vw, 28px);
    }

    dt {
        text-align: center;
        font-size: 20px;
        letter-spacing: 3px;
        font-size: min(4.5vw, 20px);
        letter-spacing: min(0.7vw, 3px);

    }

    dd {
        text-align: center;
        letter-spacing: 2.5px;
        font-size: min(3.2vw, 12px);
        letter-spacing: min(0.37vw, 2.5px);
        padding: 24px 0;
    }

    .my_instagram {
        height: 10%;
        width: min(39%, 150px);
        padding: 32px 0;
    }

    .my_instagram img {
        width: 100%;
        transition: all ease-in-out .25s;
    }

    .my_instagram img:hover {
        opacity: 0.8;
        filter: brightness(1.5);
        translate: 0 -10px;
    }

}



/* FOOTER */
footer {
    position: relative;
    height: 30vh;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    background: var(--sky-color);
    background-size: var(--sky-size);
    animation: var(--sky-animation);
}

footer img {
    height: 60%;
}

small {
    position: absolute;
    font-size: min(2vw, 10px);
    letter-spacing: min(0.2vw, 1px);
    mix-blend-mode: difference;
    text-align: center;
    bottom: 7%;
}






/* お問合せページ CONTACT */

.form_wrapper {
    display: flex;
    flex-direction: column;
    width: 80vw;
    margin: 0 auto;
}

.form_item {
    display: flex;
    flex-direction: column;
    margin: 50px auto;
    width: 100%;
}

label {
    font-family: Noto Sans JP, sans-serif;
    font-weight: 500;
    font-size: min(3vw, 13px);
    letter-spacing: 4px;
    margin-bottom: 30px;
}

input,
textarea {
    height: 40px;
    background-color: #f5f5f5;
    color: #606060;
    border: none;
    border-radius: 5px;

    font-family: Noto Sans JP, sans-serif;
    font-weight: 400;
    font-size: min(3vw, 13px);
    letter-spacing: 2px;
    padding: 10px;
}

textarea {
    height: 200px;
}

input[type="submit"] {
    margin: 50px auto;
    width: 60%;
    height: 50px;
    background-color: #fff;
    border: 0.5px solid #3c3c3c;
    border-radius: 0;
    color: #3c3c3c;
    transition: all ease-in-out .25s;
}

input[type="submit"]:hover {
    border-color: #8f8f8f;
    box-shadow: #8f8f8f 0 0 10px;
}

input:focus,
textarea:focus {
    outline: solid 1.5px #8f8f8f;
}


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

    .form_wrapper {
        width: 70vw;
    }

    .form_item {
        display: flex;
        flex-direction: row;
        justify-content: right;
    }

    label {
        font-size: min(3.1vw, 14px);
        margin: auto 0;
        margin-right: 2rem;
    }

    .form_item:last-of-type label {
        margin-top: 1.2rem;
    }

    input {
        width: 75%;
    }

    input,
    textarea {
        width: 75%;
        font-size: min(3.1vw, 14px);
        letter-spacing: 3px;
    }

    textarea {
        height: 200px;
    }

    input[type="submit"] {
        width: 32%;
        height: 55px;
    }

}




 /* バニラJS 監視ロボットくんの導入 */

 .fadein {
    opacity: 0;
 }

 .fadein_2 {
    opacity: 0;
    translate: 0 5rem;
 }

 .fadein_3 {
    opacity: 0;
    translate: 0 3rem;
 }

 .fadein_4 {
    opacity: 0;
 }

 .hamburger {
    opacity: 0;
    translate: 0 3rem;
 }