@charset "UTF-8";

/* ----------common---------- */
:root {
    --mainColor-black: #333;
    --mainColor-white: #FFFFF3;
    --mainColor-gray: #E6E6E6;
    --accentColor-pink: #E5B2C2;
    --accentColor-yellow: #E5E5B2;
    --accentColor-orange: #E5D3B2;
    --accentColor-blue: #B2E5E1;
    --accentColor-green: #B2E5B2;
}

html {
    font-size: 62.5%;
}

.container {
    color: var(--mainColor-black);
    font-family: "yu-gothic-pr6n", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-feature-settings: "palt";
    background-color: var(--mainColor-white);
    letter-spacing: 0.05em;
    position: relative;
    width: 100%;
    height: 100vh;
    z-index: 0;
}

img {
    max-width: 100%;
    height: auto;
}

.subFont__sansSerif {
    font-family: Roboto;
    font-weight: 400;
}

.subFont__number {
    font-family: Jost;
    font-weight: 500;
}

@keyframes fadeIn {
    0%{}
    100%{
        opacity: 1;
        transform: translateY(0);
    }
}

.pcBr {
    display: none;
}

/* common pc */
@media screen and (min-width:913px) {
    .spBr {
        display: none;
    }

    .pcBr {
        display: block;
    }

    .pcNone {
        display: none;
    }
}
/* common pc */
/* ----------common---------- */

/* ----------header---------- */
.header {
    background-color: var(--mainColor-gray);
    height: 60px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
}

.header__topic,.section__topic {
    color: var(--mainColor-gray);
    font-family: "neue-kabel";
    font-size: 7.4rem;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    transform: translateY(49px);
    margin-left: 0.8vw;
    padding-right: 16vw;
    transition: all 1s;
}

.section__topic--contact {
    transform: translate(0);
}

.nav {
    background-color: var(--mainColor-white);
    background-image: url(../images/background-nav.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: 100vh;
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.4s;
    overflow: auto;
}

.nav.open {
    opacity: 1;
    transform: translate(0);
    z-index: 20;
    visibility: visible;
}

.btn__navClose::before {
    display: block;
    content: '';
    width: 13.3vw;
    height: 13.3vw;
    background-image: url(../images/icon_nav-close.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: 0;
    right: 0;
    animation: roll 20s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    z-index: -10;
}

.btn__navClose {
    display: block;
    width: 13.3vw;
    height: 13.3vw;
    position: absolute;
    top: 5.3vw;
    right: 5.3%;
    z-index: 20;
    transform: translate(0);
}

.btn__navOpen::before {
    display: block;
    content: '';
    width: 13.3vw;
    height: 13.3vw;
    background-image: url(../images/icon_nav-open.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: 0;
    right: 0;
    animation: roll 20s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    z-index: -10;
}

.btn__navOpen {
    display: block;
    width: 13.3vw;
    height: 13.3vw;
    position: absolute;
    top: 70px;
    right: 2.6%;
    z-index: 0;
    transform: translate(0);
}

@keyframes roll {
    0%{
        transform: rotate(0deg);
    }
    100%{
        transform: rotate(360deg);
    }
}

.btn__navClose img,.btn__navOpen img {
    display: block;
    width: 7.4vw;
    height: 7.4vw;
    margin: 0 auto;
}

.nav__list {
    padding: 30px 8% 0;
    overflow: scroll;
}

.nav__item {
    background-image: url(../images/icon_flower-blackC.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 56vw;
    height: 56vw;
    position: relative;
}

.nav__item a {
    display: block;
    text-align: center;
    color: var(--mainColor-white);
    -webkit-text-stroke: 1px var(--mainColor-black);
    font-family: "neue-kabel";
    font-size: 8vw;
    font-weight: 600;
    line-height: 53.3vw;
    width: 53.3vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50.5%,-51%);
}        

.nav__item:nth-of-type(2),.nav__item:nth-of-type(4) {
    margin-left: auto;
}

.btn__top {
    font-family: "neue-kabel";
    font-size: 1.4rem;
    font-weight: 600;
    display: block;
    width: 49px;
    height: 20px;
    line-height: 20px;
    margin: 20px 5.3% 20px auto;
    position: relative;
}

.btn__top:hover {
    transform: translateX(5px);
    transition: 0.7s;
}

.btn__top::after {
    content: '';
    display: block;
    background-image: url(../images/icon_arrowA.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 20px;
    height: 20px;
    position: absolute;
    top: 0;
    right: 0;
}

.btn__top:hover::after {
    background-image: url(../images/icon_arrowB.png);
    transition: 0.7s;
}

.header__subTopic, .section__subTopic {
    color: var(--mainColor-black);
    font-family: "yu-gothic-pr6n", sans-serif;
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 1;
    position: relative;
    margin-left: 16px;
}

.header__subTopic::before,.section__subTopic::before {
    display: block;
    content: '';
    width: 8px;
    height: 1px;
    background-color: var(--mainColor-black);
    position: absolute;
    top: 50%;
    left: -11px;
    transform: translateY(-50%);
}

.header__subTopic::after,.section__subTopic::after {
    display: block;
    content: '';
    width: 8px;
    height: 1px;
    background-color: var(--mainColor-black);
    position: absolute;
    top: 50%;
    right: -11px;
    transform: translateY(-50%);
}

/* header pc */
@media screen and (min-width:913px) {
    .header {
        height: min(5.5vw,80px);
    }    
    
    .header__topic,.section__topic {
        font-size: min(13.1vw,19rem);
        font-weight: 600;
        transform: translateY(min(3.12vw,45px));
        padding-right: 11.8%;
    }   
    
    .btn__navClose::before,.btn__navOpen::before {
        width: 10.4vw;
        height: 10.4vw;
        max-width: 150px;
        max-height: 150px;
    }    
    
    .btn__navClose {
        width: 10.4vw;
        max-width: 150px;
        height: 10.4vw;
        max-height: 150px;
        top: 2.4%;
        right: 2.4%;
    }    
    
    .btn__navOpen {
        width: 10.4vw;
        max-width: 150px;
        height: 10.4vw;
        max-height: 150px;
        top: min(6.9vw,100px);
        right: 1.3%;
    }    
    
    .btn__navClose img,.btn__navOpen img {
        width: 5.5vw;
        max-width: 80px;
        height: 5.5vw;
        max-height: 80px;
    }    
    
    .nav__list {
        padding: 0 6.9vw;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0 6.5vw;
        margin-top: 22vh;
    }
    
    .nav__item {
        width: 24.3vw;
        height: 24.3vw;
    }
    
    .nav__item:hover {
        background-image: url(../images/icon_flower-gradationB.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        transition: all 0.4s;
    }

    .nav__item a {
        font-size: 2.6vw;
        line-height: 23.6vw;
        width: 23.6vw;
        transform: translate(-50.5%,-52.3%);
    }
    
    .nav__item:nth-of-type(2),.nav__item:nth-of-type(4) {
        margin-left: 0;
    }
    
    .btn__top {
        font-size: 1.8rem;
        width: 72px;
        height: 30px;
        line-height: 30px;
        margin: 2.3vh 2.77% 40px auto;
    }
    
    .btn__top::after {
        width: 30px;
        height: 30px;
    }

    .header__subTopic,.section__subTopic {
        font-size: 1.4rem;
        margin-left: 40px;
    }
    
    .header__subTopic::before,.section__subTopic::before {
        width: 14px;
        left: -20px;
    }
    
    .header__subTopic::after,.section__subTopic::after {
        width: 14px;
        right: -20px;
    }
}    
/* header pc */
/* ----------header---------- */

/* ----------main---------- */
.fadeIn {
    opacity: 0;
}

.fadeIn.animated {
    animation: fadeIn 1s;
    opacity: 0;
    transform: translateY(10px);
    animation-fill-mode: forwards;
}

/* main pc */
@media screen and (min-width:913px) {
    .section {
        position: relative;
    }
    
    .section::before {
        content: '';
        display: block;
        width: 1px;
        height: 100px;
        background-color: var(--mainColor-black);
        animation: scroll 5s;
        animation-delay: 2.5s;
        animation-iteration-count: infinite;
        position: absolute;
        margin-top: 373px;
        top: min(5.5vw,80px);
        left: min(6.04vw,87px);
    }
    
    @keyframes scroll {
        0% {
            height: 0;
            opacity: 1;
        }
        50% {
            height: 100px;
            opacity: 1;
        }
        100% {
            opacity: 0;
        }
    }
    
    .section::after {
        display: block;
        content: 'Scroll';
        color: var(--mainColor-black);
        font-family: "neue-kabel";
        font-size: 1.4rem;
        line-height: 14px;
        width: 33px;
        height: 14px;
        transform: rotate(-90deg) translateY(-16px);
        position: absolute;
        margin-top: 332px;
        top: min(5.5vw,80px);
        left: min(6.04vw,87px);
    }
}
/* main pc */
/* ----------main---------- */

/* ----------footer---------- */
.footer {
    background-color: var(--mainColor-gray);
    height: 60px;
    width: 100%;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: -10;
}

.footer::before {
    content: '';
    display: block;
    background-image: url(../images/background-img_sp.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 100%;
    height: 28vw;
    position: absolute;
    top: -28vw;
    left: 0;
}

.copy {
    color: var(--mainColor-black);
    font-family: "neue-kabel";
    font-size: 1rem;
    font-weight: 300;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: end;
    margin: 25px 6.6%;
}

/* footer pc */
@media screen and (min-width:500px) {
    .footer::before {
        background-image: url(../images/background-img_pc.jpg);
        height: 13.8vw;
        top: -13.8vw;
    }
}

@media screen and (min-width:913px) {
    .footer {
        height: min(5.5vw,80px);
    }
    
    .copy {
        font-size: 1.2rem;
        margin: min(2.36vw,34px) 3.05%;
    }
}
/* footer pc */
/* ----------footer---------- */