#header {
    position: relative;
    width   : 100%;
    z-index : 100;
}

#header_cont {
    padding: 30px 30px 0;
}

.header_inner {
    display    : flex;
    margin     : 0 auto;
    align-items: flex-start;
}

.header_inner h1 {
    position  : relative;
    display   : flex;
    column-gap: 40px;
}

.header_inner h1 a {
    display: block;
    width  : 120px;
}

.header_inner h1 span {
    display    : block;
    width      : 35vw;
    font-weight: 500;
    line-height: 1.25;
    font-size  : clamp(1.1rem, 1.2vw, 1.3rem);
}

.header_inner h1 span .italic {
    font-style: italic;
    display   : inline;
}

.navi {
    margin-left: auto;
    display    : flex;
    align-items: baseline;
}

.navi .menu {
    display: flex;
    gap    : 20px;
}

.navi .menu a {
    font-size: 1.4rem;
}

.navi .menu a:hover {
    text-decoration: underline;
}

.online-link {
    display    : flex;
    margin-left: 40px;
    align-items: center;
    font-size  : 1.4rem;
    column-gap : 8px;
    white-space: nowrap
}

.link-btn {
    position        : relative;
    background-color: #212529;
    width           : 18px;
    height          : 18px;
    border-radius   : 2px;
}

.btn_inner {
    width    : 6px;
    height   : 6px;
    position : absolute;
    top      : 50%;
    left     : 50%;
    transform: translate(-50%, -50%);
    overflow : hidden;
}

@keyframes hover-arrow-deg01 {
    0% {
        transform: translate(0, 0);
    }

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

@keyframes hover-arrow-deg02 {
    0% {
        transform: translate(-100%, 100%);
    }

    10% {
        transform: translate(-100%, 100%);
    }

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

.btn_inner:before {
    content            : "";
    display            : block;
    width              : 100%;
    height             : 100%;
    position           : absolute;
    top                : 0;
    right              : 0;
    background-image   : url(../img/arrow.svg);
    background-repeat  : no-repeat;
    background-position: left top;
    background-size    : 100% auto;
    transform-origin   : left bottom;
}

.btn_inner:after {
    content            : "";
    display            : block;
    width              : 100%;
    height             : 100%;
    position           : absolute;
    top                : 0;
    right              : 0;
    background-image   : url(../img/arrow.svg);
    background-repeat  : no-repeat;
    background-position: left top;
    background-size    : 100% auto;
    transform-origin   : left bottom;
    transform          : translate(-100%, 100%);
}

a:hover .btn_inner:before {
    animation: hover-arrow-deg01 .6s cubic-bezier(0.19, 1, 0.22, 1);
}


a:hover .btn_inner:after {
    animation: hover-arrow-deg02 .6s cubic-bezier(0.19, 1, 0.22, 1);
}

.online-link span img {
    width: 6px;
}

#main {
    display        : flex;
    align-items    : center;
    justify-content: center;
    position       : absolute;
    inset          : 0;
    margin         : 0;
}

.kv_wrapper .kv_area {
    width : 52vw;
    margin: 40px 0;
}

.kv_wrapper .kv_area img {
    filter    : grayscale(100%);
    transition: filter 0.5s ease-in-out;
}

.kv_wrapper .kv_area img:hover {
    filter: grayscale(0%);
}

#footer {
    position: static;
    z-index : 200;
}

#footer .add {
    position   : absolute;
    bottom     : 20px;
    left       : 30px;
    font-size  : 1.2rem;
    line-height: 1.25;
    font-weight: 500;
}

#footer .add a:hover {
    text-decoration: underline;
}

#footer .info_area {
    position      : absolute;
    left          : 50%;
    transform     : translateX(-50%);
    bottom        : 20px;
    display       : flex;
    flex-direction: column;
    row-gap       : 4px;
}

#footer .info_area a {
    font-size  : 1.2rem;
    line-height: 1.25;
    font-weight: 500;
}

#footer .info_area a:hover {
    text-decoration: underline;
}

#footer small {
    display    : block;
    position   : absolute;
    right      : 30px;
    bottom     : 20px;
    color      : #898989;
    font-size  : 1.2rem;
    line-height: 1.25;
    font-weight: normal;
}

@media (max-width: 768px) {
    #header_cont {
        padding: 20px 20px 0;
    }

    .header_inner h1 {
        column-gap: 20px;
    }

    .kv_wrapper .kv_area {
        width: 80vw;
    }

    .kv_wrapper .kv_area img {
        filter: none;
    }

    #footer .add {
        left: 20px;
    }

    #footer small {
        right: 20px;
    }
}


@media (max-width: 599px) {
    .header_inner h1 {
        display: block;
    }

    .header_inner h1 a {
        width: 100px;
    }

    .header_inner h1 span {
        width     : fit-content;
        margin-top: 24px;
    }

    .navi {
        display: block;
    }

    .navi .menu {
        justify-content: end;
        margin-bottom  : 12px;
    }

    .online-link {
        font-size : 1.3rem;
        column-gap: 5px;
    }

    #main {
        position: static;
    }

    .kv_wrapper .kv_area {
        width : calc(100% - 40px);
        margin: 40px auto 30px;
    }

    #footer {
        padding   : 0 20px 20px;
        margin-top: 36px;

    }

    #footer .add {
        position: static;
    }

    #footer .info_area {
        position  : static;
        transform : none;
        margin-top: 20px;
    }

    #footer small {
        position  : static;
        margin-top: 30px;
    }

}

/*---------------Subpage---------------------*/
/*---------------about page------------------*/

.page_wrapper {
    padding: 80px 1.714285714vw 120px;
}

.about-desk_wrapper {
    background-repeat  : no-repeat;
    padding            : 120px 0;
    background-image   : url(/assets/img/about/logo_bg.svg);
    background-position: center;
}



.about-desk_inner .area {
    display: flex;
    gap    : 130px;
}

.about-desk_inner .area {
    display: flex;
    gap    : 20px;
}

.about-desk_inner .area span {
    width      : 11.17%;
    font-weight: 400;
    font-size  : 1.4rem;
    line-height: 2;
    color      : #898989;
}

.about-desk_inner .area .detail {
    width: 42.97%;
}

.about-desk_inner .area .detail .ja {
    font-family: serif;
    font-size  : 1.5rem;
    line-height: 2;
}

.about-desk_inner .area .detail .en {
    font-weight: 400;
    font-size  : 1.3rem;
    line-height: 1.5;
    margin-top : 80px;
}

.bio-desk_wrapper {
    padding: 200px 0 120px;
}


.bio-desk_inner .area {
    display: flex;
    gap    : 130px;
}

.bio-desk_inner .area {
    display: flex;
    gap    : 20px;
}

.bio-desk_inner .area>span {
    width      : 11.17%;
    font-weight: 400;
    font-size  : 1.4rem;
    color      : #898989;
}

.bio-desk_inner .area .detail {
    width: 42.97%;
}

.bio-desk_inner .area .detail span {
    font-size  : 1.4rem;
    line-height: 1;
    font-weight: 400;
}

.bio-desk_inner .area .name {
    margin-top   : 60px;
    margin-bottom: 60px;
}

.bio-desk_inner .area .name p {
    font-family  : serif;
    font-size    : 2.4rem;
    margin-bottom: 12px;
}


.bio-desk_inner .area .name span {
    font-size  : 1.4rem;
    font-family: serif;
}



.bio-desk_inner .area .detail .ja {
    font-family: serif;
    font-size  : 1.5rem;
    line-height: 2;
}

.bio-desk_inner .area .detail .en {
    font-weight: 400;
    font-size  : 1.3rem;
    line-height: 1.5;
    margin-top : 80px;
}

.bio-desk_inner .area .profile-img {
    width      : 15.53%;
    margin-left: auto;
}

.shop-img_area {
    margin-top: 240px;
    filter    : grayscale(100%);
    transition: filter 0.5s ease-in-out;
}

.shop-img_area:hover {
    filter: grayscale(0%);
}

/*Page-Footer*/

.page-footer_inner {
    padding        : 0 30px 20px 20px;
    display        : flex;
    justify-content: space-between;
    align-items    : end;
}

#footer .page-add {
    position: static;
}

#footer .page-info_area {
    position : static;
    transform: none;
}

#footer .page-copyright {
    position   : static;
    color      : #898989;
    font-size  : 1.2rem;
    line-height: 1.25;
    font-weight: normal;
}


@media (max-width: 768px) {
    .page_wrapper {
        padding        : 80px 30px;
        background-size: cover;
    }

    .about-desk_wrapper {
        padding: 80px 0;
    }

    .about-desk_inner .area {
        display: block;
    }

    .about-desk_inner .area .detail .ja {
        font-size: 1.4rem;
    }

    .about-desk_inner .area .detail .en {
        margin-top: 40px;
    }

    .about-desk_inner .area span {
        width        : 100%;
        display      : block;
        margin-bottom: 20px;
    }

    .about-desk_inner .area .detail {
        width: 100%;
    }

    .bio-desk_wrapper {
        padding: 120px 0 120px;
    }

    .bio-desk_inner .area {
        display: block;
    }

    .bio-desk_inner .area span {
        width        : 100%;
        display      : block;
        margin-bottom: 20px;
    }

    .bio-desk_inner .area .name {
        margin-top   : 30px;
        margin-bottom: 30px;
    }

    .bio-desk_inner .area .detail {
        width: 100%;
    }

    .bio-desk_inner .area .detail .ja {
        font-size: 1.4rem;
    }

    .bio-desk_inner .area .detail .en {
        margin-top: 40px;
    }

    .bio-desk_inner .area .profile-img {
        width : 24%;
        margin: 60px auto 0;
    }
}

@media (max-width: 599px) {
    .about-desk_wrapper {
        padding: 40px 0;
        background-image: none;
    }

    .bio-desk_wrapper {
        padding: 60px 0 40px;
    }

    .bio-desk_inner .area .profile-img {
        width: 40%;
    }

    .shop-img_area {
        margin-top: 120px;
        filter    : grayscale(0%);
    }

    .page-footer_inner {
        flex-direction: column;
        padding       : 0;
        align-items   : start;
    }
}

/*-----------Brand page--------------*/

.page_wrapper {
    padding: 80px clamp(1.8rem, 1.714285714vw, 2.88rem) 120px;
}

.brand-desk_wrapper {
    padding: 120px 0;
}



.brand-desk_inner .area {
    display: flex;
    gap    : 130px;
}

.brand-desk_inner .area {
    display: flex;
    gap    : 20px;
}

.brand-desk_inner .area span {
    width      : 11.17%;
    font-weight: 400;
    font-size  : 1.4rem;
    line-height: 2;
    color      : #898989;
}

.brand-desk_inner .area .detail {
    width: 42.97%;
}

.brand-desk_inner .area .detail .ja {
    font-family: serif;
    font-size  : 1.5rem;
    line-height: 2;
}

.brand-desk_inner .area .detail .en {
    font-weight: 400;
    font-size  : 1.3rem;
    line-height: 1.5;
    margin-top : 80px;
}


.brand-detail_wrapper {
    padding: 80px 0;
}

.brand-detail_inner .area {
    width: calc(88.83% - 20px);
    margin-left: auto;
}

.brand-detail_inner .area .block {
    display        : flex;
    justify-content: space-between;
    gap            : 20.5%;
    margin-top     : 200px;
}
   .brand-detail_inner .area .block:first-child {
       margin-top: 80px;
   }

.brand-text {
    width     : 36.6%;
    position  : sticky;
    top       : 80px;
    align-self: flex-start;
}

.brand-text h2 {
    width: 200px;
}

.brand-text h2 span {
    margin-top : 20px;
    font-weight: normal;
    font-family: serif;
    font-size  : 1.4rem;
    display    : block;
}

.brand-text .ja {
    margin-top : 60px;
    font-family: serif;
    font-size  : 1.4rem;
    line-height: 1.75;
}

.brand-text .en {
    margin-top : 60px;
    font-size  : 1.2rem;
    line-height: 1.5;
}

.brand-image {
    width: 42.9%;
}


@media (max-width: 768px) {
    .page_wrapper {
        padding        : 80px 30px;
        background-size: cover;
    }

    .brand-desk_wrapper {
        padding: 80px 0;
    }

    .brand-desk_inner .area {
        display: block;
    }

    .brand-desk_inner .area .detail .ja {
        font-size: 1.4rem;
    }

    .brand-desk_inner .area .detail .en {
        margin-top: 40px;
    }

    .brand-desk_inner .area span {
        width        : 100%;
        display      : block;
        margin-bottom: 20px;
    }

    .brand-desk_inner .area .detail {
        width: 100%;
    }

    .brand-detail_inner .area {
        width: 100%;
    }

    .brand-detail_inner .area .block {
        margin-top: 120px;
    }

    .brand-detail_inner .area .block:first-child {
        margin-top: 0;
    }

    .brand-text {
        width: 75%;
    }

    .brand-text h2 {
        width: 140px;
    }

    .brand-image {
        width: 25%;
    }

    .brand-text .ja {
        margin-top: 30px;
        font-size : 1.3rem;
    }

    .brand-text .en {
        margin-top: 20px;
    }

}

@media (max-width: 599px) {
    .brand-desk_wrapper {
        padding: 40px 0;
    }

    .brand-detail_wrapper {
        padding: 120px 0 60px;
    }

    .brand-detail_inner .area .block {
        flex-direction: column-reverse;
        gap           : 30px;
    }
    .brand-text {
        width: 100%;
        margin-top: -80px;
    }
    .brand-image {
        margin-left: auto;
    }
}