@font-face {
    src: url(../font/FugazOne-Regular.ttf) format(truetype);
    font-family: 'FugazOne' ;
}
@font-face {
    src: url(../font/Kokoro.otf) format(opentype);
    font-family: 'Kokoro';
}
@font-face {
    src: url(../font/ZenKakuGothicNew-Regular.ttf) format(truetype);
    font-family: 'Zen Kaku Gothic New';
}

:root {
    --font-NotoSansJP: "Noto Sans JP", sans-serif;
    --font-ZenOldMincho: "Zen Old Mincho", serif;
    --font-ZenKakuGothicNew: "Zen Kaku Gothic New", sans-serif;
    --font-Roboto: "Roboto", sans-serif;
    --font-Kokoro: 'Kokoro', serif;
    --font-FugazOne: 'FugazOne', cursive;
    --font-RocknRollOne: "RocknRoll One", sans-serif;
    --font-ZenAntiqueSoft: "Zen Antique Soft", serif;
    --font-KaiseiOpti: "Kaisei Opti", serif;
    --font-BebasNeue: "Bebas Neue", sans-serif;
    --color-black: #000;
    --color-white: #fff;
    --color-top-bg: #f3f3f3;
    --color-top-about: rgba(200, 200, 200, 0.2);
    --color-333: #333;
}
/*============
  共通
=============*/
.pc{
    display: block;
}
.sp{
    display: none;
}
.flex-box{
    display: flex;
}
.slide-box{
    overflow: hidden;
}
/*============
  header
=============*/
.header{
    position: relative;
    z-index: 13;
}
.header .main-title{
    padding: 1% 3%;
    width: 60%;
}
.header .main-text{
    margin: 0 0 0.5em 1em;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: calc(13 / 1280 * 100vw);
    font-weight: normal;
}
/*============
mainnav
=============*/
.mainnav {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--color-white);
    opacity: 0;
    overflow-x: hidden;
    overflow-y: auto;
    transition: 0.5s;
    z-index: 3;
}
.open .mainnav{
    display: block;
    opacity: 1;
}
.mainnav .inner{
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% 0;
    width: 50%;
    margin-top: 3%;
    padding-bottom: 3%;
}
.mainnav .inner ul li {
    position: relative;
}
.mainnav .inner ul li a {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1em;
}
.mainnav .inner ul li a .photo{
    width: 35%;
    aspect-ratio: 3 / 1.6;
    overflow: hidden;
}
.mainnav .inner ul li a .photo .image{
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.mainnav .inner ul li a .photo .video{
    width: inherit;
    object-fit: cover;
    scale: 12;
}
.mainnav .inner ul li a .text{
    width: 62%;
    padding-left: 3%;
    color: var(--color-black);
    font-family: var(--font-NotoSansJP);
    font-size: calc(16 / 1280 * 100vw);
    line-height: 1.6em;
}
.mainnav .inner ul li a .day{
    display: block;
    font-family: var(--font-FugazOne);
    font-size: calc(13 / 1280* 100vw);
    text-orientation: upright;
    letter-spacing: 0.1em;
    line-height: 1.4;
}
.mainnav .inner ul li a .category{
    display: block;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(10 / 1280* 100vw);
    line-height: 1.8;
}
/*============
@keyframes
=============*/
@keyframes equalizer01 {
    0% {
    width: 70%;
    }
    10% {
    width: 50%;
    }
    20% {
    width: 100%;
    }
    30% {
    width: 10%;
    }
    40% {
    width: 50%;
    }
    50% {
    width: 70%;
    }
    60% {
    width: 50%;
    }
    70% {
    width: 10%;
    }
    80% {
    width: 100%;
    }
    90% {
    width: 10%;
    }
    100% {
    width: 70%;
    }
}
@keyframes equalizer02 {
    0% {
    width: 30%;
    }
    10% {
    width: 20%;
    }
    20% {
    width: 40%;
    }
    30% {
    width: 10%;
    }
    40% {
    width: 20%;
    }
    50% {
    width: 30%;
    }
    60% {
    width: 20%;
    }
    70% {
    width: 10%;
    }
    80% {
    width: 40%;
    }
    90% {
    width: 10%;
    }
    100% {
    width: 30%;
    }
}
/*============
.toggle-btn
=============*/
.toggle-btn {
    display: block;
    position: fixed;
    top: 30px;
    right: 30px;
    width: 60px;
    height: 30px;
    transform: translate(0, 0);
    transition: all .5s;
    cursor: pointer;
    z-index: 3;
}
.toggle-btn span {
    display: block;
    position: absolute;
    right: 0;
    width: 30px;
    height: 2px;
    background-color: #666;
    transition: all .5s;
}
.toggle-btn span:nth-child(1) {
    top: 5px;
    width: 60px;
    animation: equalizer01 7000ms infinite;
}
.toggle-btn span:nth-child(2) {
    top: 15px;
    width: 30px;
    animation: equalizer02 5000ms infinite;
    animation-delay: 0.33s;
}
.toggle-btn span:nth-child(3) {
    top: 25px;
    width: 20px;
    animation: equalizer02 5000ms infinite;
}
.open .toggle-btn span {
    width: 30px;
}
.open .toggle-btn span:nth-child(1) {
    transform: translate(0, 10px) rotate(-45deg);
    animation: unset;
}
.open .toggle-btn span:nth-child(2) {
    opacity: 0;
    animation: unset;
}
.open .toggle-btn span:nth-child(3) {
    transform: translate(0, -10px) rotate(45deg);
    animation: unset;
}
/*============
  recommend
=============*/
.recommend{
    margin-top: 14%;
}
.recommend .title{
    text-align: center;
    font-family: var(--font-FugazOne);
    font-size: calc(16 / 1280* 100vw);
    text-transform: capitalize;
    letter-spacing: 0.1em;
}
.recommend .list{
    justify-content: center;
    width: 80%;
    margin: 3% auto 0;
}
.recommend .list .item{
    width: 30%;
    padding: 0 2%;
    transition: 0.6s ease;
}
.recommend .list .item:hover{
    opacity: 0.6;
}
.recommend .recommend-title{
    width: 100%;
    height: 4.8em;
    margin: 0 auto 0 0;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(16 / 1280* 100vw);
    font-weight: 800;
    line-height: 1.6;
}
.recommend .photo{
    width: 100%;
    aspect-ratio: 1 / 1;
    margin-top: 3%;
    overflow: hidden;
}
.recommend .photo .image._01{
    height: 100%;
    width: auto;
    max-width: inherit;
}
.recommend video{
    width: 100%;
    overflow: hidden;
}
.recommend .recommend-text{
    width: 90%;
    margin: 1em auto 0;
    text-align: justify;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(12 / 1280* 100vw);
    line-height: 1.6;
}
/*============
  top-about
=============*/
.top-about{
    position: relative;
    margin: 10% auto 0;
    padding-top: 3%;
    background: rgba(255, 255, 255, 0.3);
}
.top-about .title{
    text-align: center;
    font-family: var(--font-FugazOne);
    font-size: calc(16 / 1280 * 100vw);
    text-transform: capitalize;
    letter-spacing: 0.1em;
}
.top-about .inner{
    display: flex;
    width: 50%;
    margin: 3% auto 0;
}
.top-about .photo{
    width: 40%;
    mix-blend-mode: hard-light;
    box-shadow: none;
    transition: 1.6s ease-out 0.6s;
}
.top-about .photo.active{
    box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15);
}
.top-about .text-box{
    position: relative;
    width: 60%;
    margin-top: 10%;
    padding: 3% 4% 3% 14%;
    z-index: 12;
}
.top-about .text-box .name{
    padding-left: 0.3em;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(14 / 1280 * 100vw);
    font-weight: 900;
    letter-spacing: 0.1em;
}
.top-about .text-box .list{
    margin-top: 10%;
}
.top-about .text-box .list .item{
    padding: 0.5em 0;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(11 / 1280 * 100vw);
    letter-spacing: 0.1em;
    line-height: 1.6;
}
.top-about .sns-list{
    display: flex;
    margin-top: 8%;
}
.top-about .sns-list .item{
    width: 6%;
    margin-right: 6%;
    transition: 0.6s ease;
}
.top-about .sns-list .item:hover{
    opacity: 0.4;
}
.top-about .link-box{
    display: flex;
    flex-direction: column;
    margin-top: 3em;
}
.top-about .link-text{
    position: relative;
    display: inline-block;
    margin: 0.75em auto 0 0;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(12 / 1280 * 100vw);
    letter-spacing: 0.1em;
}
.top-about .link-text::after{
    content: "";
    display: block;
    width: 0%;
    height: 1px;
    background: var(--color-black);
    position: absolute;
    bottom: 0;
    left: 0;
    transition: 0.6s ease;
}
.top-about .link-text:hover{
    opacity: 0.8;
}
.top-about .link-text:hover::after{
    width: 100%;
}
/*============
privacy-policy
=============*/
.privacy-policy{
    width: 60%;
    margin: 10% auto;
}
.privacy-policy .main-title{
    margin-bottom: 6%;
    text-align: center;
    font-family: var(--font-FugazOne);
    font-size: calc(16 / 1280* 100vw);
    text-transform: capitalize;
    letter-spacing: 0.1em;
}
.privacy-policy .index-title{
    margin-top: 2em;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(16 / 1280 * 100vw);
    line-height: 1.8;
}
.privacy-policy .text{
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(12 / 1280 * 100vw);
    line-height: 1.8;
}
/*============
  footer
=============*/
.footer{
    position: relative;
    margin: 10% auto 2%;
    text-align: right;
}
.footer .bg-text{
    position: absolute;
    bottom: 55%;
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
    overflow: hidden;
}
.footer .bg-text .text{
    position: relative;
    left: 1%;
    margin-inline: auto;
    color: #C5A5A5;
    text-align: center;
    font-family: var(--font-FugazOne);
    font-size: calc(212 / 1280* 100vw);
    font-weight: 900;
    line-height: 1.3;
    white-space: nowrap;
    opacity: 0.2;
    clip-path: inset(0 100% 0 0);
}
.footer .bg-text .clippath-left.active{
    animation: clippath-left02 1.6s forwards 0.4s;
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); 
}
.footer .copyright{
    margin-right: 3%;
    font-family: var(--font-ZenKakuGothicNew);
    font-size: calc(12 / 1280 * 100vw);
}

/*============
  下層ページ
=============*/
.mv{
    margin-top: -10%;
}
/*============
@media (max-width: 768px)
=============*/
@media (max-width: 768px){
    /*============
    共通
    =============*/
    .pc{
        display: none;
    }
    .sp{
        display: block;
    }
    /*============
    header
    =============*/    
    .header .main-title{
        width: 80%;
        margin-top: 2%;
    } 
    .header .main-text{
        font-size: calc(7 / 375 * 100vw);
        margin: 0 0 1em 0.25em;
    }
    /*============
    mainnav
    =============*/ 
    .mainnav .inner{
        width: 100%;
    }
    .mainnav .inner ul li a{
        padding: 0.75em;
    }      
    .mainnav .inner ul li a .photo{
        width: 37%;
        aspect-ratio: 3/2.2;
    }
    .mainnav .inner ul li a .photo .video{
        scale: 5;
    }
    .mainnav .inner ul li a .text{
        width: 60%;
        padding-left: 3%;
        font-size: calc(13 / 375 * 100vw);
    }
    .mainnav .inner ul li a .day{
        font-size: calc(11 / 375* 100vw);
    }
    .mainnav .inner ul li a .category{
        font-size: calc(10 / 375* 100vw);
    }
    /*============
    .toggle-btn
    =============*/
    .toggle-btn {
        top: 2%;
        right: 4%;
    } 
    /*============
    recommend
    =============*/  
    .recommend{
        margin-top: 30%;
    }  
    .recommend .list{
        width: 100%;
    }
    .recommend .list .item{
        width: 50%;
    }
    .recommend .title{
        font-size: calc(22 / 375 * 100vw);
    }
    .recommend .recommend-title{
        height: inherit;
        min-height: 4.8em;
        font-size: calc(13 / 375 * 100vw);
    }
    .recommend .recommend-text{
        font-size: calc(11 / 375 * 100vw);
    }
    /*============
    top-about
    =============*/
    .top-about{
        margin-top: 20%;
        padding-top: 8%;
        padding-bottom: 17%;
        margin-bottom: -15%;
    }
    .top-about .title{
        font-size: calc(22 / 375 * 100vw);
    }
    .top-about .inner{
        width: 90%;
        margin-top: 6%;
    }
    .top-about .text-box{
        margin-top: 0;
        padding: 8% 0 8% 8%;
    }
    .top-about .text-box .name{
        font-size: calc(14 / 375 * 100vw);
    }
    .top-about .text-box .list .item{
        font-size: calc(12 / 375 * 100vw);
    }
    .top-about .link-box{
        margin-top: 1em;
    }
    .top-about .link-text{
        margin-top: 1em;
        font-size: calc(10 / 375 * 100vw);
    }
    .top-about .sns-list .item{
        width: 10%;
        margin-right: 10%;
    }
    /*============
    privacy-policy
    =============*/
    .privacy-policy{
        width: 82%;
        margin: 20% auto;
    }
    .privacy-policy .main-title{
        margin-bottom: 12%;
        font-size: calc(22 / 375 * 100vw);
    }
    .privacy-policy .index-title{
        margin-top: 2em;
        font-size: calc(16 / 375 * 100vw);
        line-height: 1.8;
    }
    .privacy-policy .text{
        font-size: calc(12 / 375 * 100vw);
        line-height: 1.8;
        transition: 0.6s ease;
    }
    .privacy-policy .text:hover{
        opacity: 0.4;
    }
    /*============
    footer
    =============*/
    .footer{
        margin-top: 83%;
        z-index: 9;
    }
    .footer .bg-text{
        bottom: -58%;
    }
    .footer .bg-text .text{
        margin-bottom: -8%;
        font-size: calc(170 / 375 * 100vw);
    }
    .footer .bg-text .text span{
        display: block;
        margin: -34% auto -92%;
    }
    .footer .copyright{
        font-size: calc(10 / 375 * 100vw);
    }
    /*============
    下層ページ
    =============*/
    .mv{
        margin-top: -16.5%;
    }
    
}    