@charset "UTF-8";
/*--------------------------------
common-----------------------------
----------------------------------*/
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    color: #333;
    font-family: 'Noto Serif JP', serif;
    line-height: 1.8;
}
main {
    flex-grow: 1;
}

/* text */
:root{
    --f10px:0.625rem;
    --f12px:0.75rem;
    --f14px:0.875rem;
    --f16px:1rem;
    --f18px:1.125rem;
    --f20px:1.25rem;
    --f22px:1.375rem;
    --f24px:1.5rem;
    --f26px:1.625rem;
    --f28px:1.75rem;
    --f30px:1.875rem;
    --f32px:2rem;
    --f34px:2.125rem;
    --f36px:2.25rem;
    --f38px:2.375rem;
    --f40px:2.5rem;
    --f42px:2.625rem;
    --f44px:2.75rem;
    --f46px:2.875rem;
    --f48px:3rem;
    --f50px:3.215rem;
    --f60px:3.75rem;
}
.font_serif{
    font-family: 'Shippori Mincho', serif;
}
.font_sans{
    font-family: 'Noto Sans JP', sans-serif;
}
.font_en{
    font-family: 'Oswald', sans-serif;
}

h1,h2,h3,h4,h5{
    font-weight: normal;
}

.font_60px{font-size: var(--f60px);}
.font_50px{font-size: var(--f50px);}
.font_44px{font-size: var(--f44px);}
.font_42px{font-size: var(--f42px);}
.font_40px{font-size: var(--f40px);}
.font_38px{font-size: var(--f38px);}
.font_36px{font-size: var(--f36px);}
.font_34px{font-size: var(--f34px);}
.font_32px{font-size: var(--f32px);}
.font_30px{font-size: var(--f30px);}
.font_28px{font-size: var(--f28px);}
.font_26px{font-size: var(--f26px);}
.font_24px{font-size: var(--f24px);}
.font_22px{font-size: var(--f22px);}
.font_20px{font-size: var(--f20px);}
.font_18px{font-size: var(--f18px);}
.font_16px{font-size: var(--f16px);}
.font_14px{font-size: var(--f14px);}
.font_12px{font-size: var(--f12px);}
.font_10px{font-size: var(--f10px);}

.font_center{text-align: center !important;}
.font_right{text-align: right !important;}
.font_left{text-align: left !important;}
.font_bold{font-weight: bold;}
.font_normal{font-weight: normal;}

.br-wrap{
    display: inline-block;
}

/* marginbottom */
.mar_non{margin: 0 !important;}
.mar0px{margin-bottom: 0 !important;}
.mar10px{margin-bottom: 10px !important;}
.mar20px{margin-bottom: 20px !important;}
.mar30px{margin-bottom: 30px !important;}
.mar40px{margin-bottom: 40px !important;}
.mar50px{margin-bottom: 50px !important;}
.mar60px{margin-bottom: 60px !important;}
.mar70px{margin-bottom: 70px !important;}
.mar80px{margin-bottom: 80px !important;}
.mar90px{margin-bottom: 90px !important;}
.mar100px{margin-bottom: 100px !important;}
.mar110px{margin-bottom: 110px !important;}
.mar120px{margin-bottom: 120px !important;}
.mar130px{margin-bottom: 130px !important;}
.mar140px{margin-bottom: 140px !important;}
.mar160px{margin-bottom: 160px !important;}
.mar170px{margin-bottom: 170px !important;}
.mar200px{margin-bottom: 200px !important;}
.mar220px{margin-bottom: 220px !important;}
.mar340px{margin-bottom: 340px !important;}
.mar1-5em{margin-bottom: 1.5em !important;}
.mar2em{margin-bottom: 2em !important;}



/* laout */
:root{
    --content:min(1000px,calc(100vw - 40px));
    --blank:calc(100vw - var(--content));
    --side:calc(var(--blank) / 2);
    --h_height: 80px;
}
main{
    padding-right: var(--side);
    padding-left: var(--side);
}
.align_wide{
    width: calc(100vw - 40px);
    margin-right: calc(50% - ((100vw - 40px)/2));
    margin-left: calc(50% - ((100vw - 40px)/2));
}
.align_defa{
    width:var(--content);
    margin-left: auto;
    margin-right: auto;
}
.align_slim{
    width:min(800px,calc(100vw - 40px));
    margin-left: auto;
    margin-right: auto;
}
.align_full{
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
}
.width80{
    width: min(80px,30%);
    margin-right:auto;
    margin-left:auto;
}

/* clm */
:root{
    --clmgap: 0%;
    --clmnum: 1;
}
.clm{
    display: flex;
    flex-wrap: wrap;
    gap: var(--clmgap);
    --clmspace:calc(100% - (var(--clmgap) * (var(--clmnum) - 1)));
}
.clm.clm2{
    --clmnum: 2;
}
.clm.clm3{
    --clmnum: 3;
}
.clm.clm4{
    --clmnum: 4;
}
.clm__item{
    width: calc(var(--clmspace) / var(--clmnum));
}
.clm__item > *:first-child{
    margin-top: 0;
}
.clm__item > *:last-child{
    margin-bottom: 0;
}

/*--------------------------------
header-----------------------------
----------------------------------*/
#header {
    height: var(--h_height);
    width: 100vw;
    position: fixed;
    background: rgb(0 0 0 / 75%);
    z-index: 50;
    color: #fff;
}
#header::after {
    content: "";
    width: calc(100vw - 40px);
    height: 1px;
    display: block;
    background: rgba(255, 255, 255, 0.3);
    margin: 0 auto;
}
#header p{
   margin: 0;
}
#header a{
    text-decoration: none;
 }
.header-inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    gap: 0 20px;
}
.header__menu {
    display: flex;
    gap: 5px;
    flex-grow: 0.5;
    justify-content: space-between;
    max-width: 550px;
    font-size: var(--f14px);
    line-height: 1.2;
}
.header__menu__item a{
    position: relative;
}
.header__menu__item a::after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    left: 0;
    bottom: -3px;
    transform: scaleX(0);
    transform-origin: left;
}
.header__menu__item a:hover:after{
    transform: scaleX(100%);
}

/* ham */
.hambtn {
    width: 70px;
    height: 60px;
    padding: 10px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    z-index: 50;
}
.hambtn__icon {
    width: 100%;
    height: 15px;
    position: relative;
}
.hambtn__icon span {
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    left: 0;
}
.hambtn__icon span:nth-of-type(1) {
    top: 0;
}
.hambtn__icon span:nth-of-type(2) {
    top: 15px;
}
p.hambtn__txt {
    font-size: 0.75rem;
    letter-spacing: 0.2em;
}

/* ハンバーガーメニュー */
.ham-inner {
    position: fixed;
    top: 0;
    width: 100%;
    transform: translateX(100%);
    height: 100vh;
    background: rgb(0 0 0 / 60%);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    z-index: 40;
    display: flex;
    justify-content: center;
    align-items: center;
}
.ham-inner .menu {
    height: min(100%,30em);
}
.ham-inner .menu ul {
    width: 100%;
    height: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 20px;
    font-size: var(--f20px);
}
.ham-inner .menu ul li{
    display: flex;
    gap: 20px;
    align-items: center;
    line-height: 1.2;
}
.ham-inner .menu ul li a{
    position: relative;
}
.ham-inner .menu ul li a::after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    left: 0;
    bottom: -3px;
    transform: scaleX(0);
    transform-origin: left;
}
.ham-inner .menu ul li a:hover:after{
    transform: scaleX(100%);
}

/* open時 */
#header.ham-open .ham-inner {
    transform: translateX(0);
}
#header.ham-open .hambtn__icon {
    height: 40px;
    flex-shrink: 0;
}
#header.ham-open p.hambtn__txt{
    opacity: 0;
    pointer-events: none;
}
#header.ham-open .hambtn__icon span {
    transform-origin: left;
    width: 128%;
}
#header.ham-open .hambtn__icon span:nth-of-type(1) {
    transform: rotate(39deg);
}
#header.ham-open .hambtn__icon span:nth-of-type(2) {
    transform: rotate(-39deg);
    top: 100%;
}

@media (min-width:769px) { /* hamburger size */
    #header .hambtn{
        display: none;
    }
}


/*--------------------------------
footer-----------------------------
----------------------------------*/
footer {
    background: #000;
    padding: 50px var(--side);
    color: #fff;
}
footer a{
    text-decoration: none;
}

.footer__logo{
    margin-bottom: 30px;
    font-size: var(--f14px);
}
.footer__clm {
    display: flex;
    justify-content: space-between;
    gap: 1rem 3rem;
    margin-bottom: 30px;
}
.footer__clm .info p{
    margin: 0 0 0.5em;
    line-height: 1.5;
}
.footer__clm .menu{
    flex-grow: 1;
    max-width: 31em;
    display: flex;
    justify-content: flex-end;
}
.footer__clm .menu ul {
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
    columns: 14em;
    column-gap: 1em;
    
}
.footer__clm .menu ul li{
    display: flex;
    gap: 20px;
    align-items: center;
    line-height: 1.2;
    margin-bottom: 10px;
}
.footer__clm .menu ul li::before{
    content: "";
    display: inline-block;
    width: 1em;
    height: 1px;
    background: #fff;
}
.footer__clm .menu ul li a{
    position: relative;
}
.footer__clm .menu ul li a::after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    left: 0;
    bottom: 0;
    transform: scaleX(0) translateY(3px);
    transform-origin: left;
}
.footer__clm .menu ul li a:hover:after{
    transform: scaleX(100%) translateY(3px);
}

.footer__sns {
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: solid 1px #767676;
    display: flex;
    gap: 1rem;
    justify-content: end;
}

footer .copy {
    color: #767676;
    font-size: var(--f12px);
    text-align: right;
    margin: 0;
}



/*--------------------------------------------------------------------------------------------------------------------------------
 Break Point----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------*/
@media (max-width:1280px) {
}
@media (max-width:1024px) {
}
@media (max-width:768px) { /* hamburger size */
    /*--------------------------------
    common-----------------------------
    ----------------------------------*/
    :root{
        --f24px: 1.35rem;
        --f28px: 1.375rem;
        --f30px: 1.375rem;
        --f40px: 2rem;
    }
    /* margin */
    .mar70px {margin-bottom: 30px !important;}
    .mar90px {margin-bottom: 40px !important;}
    .mar100px {margin-bottom: 50px !important;}
    .mar120px {margin-bottom: 80px !important;}
    .mar170px {margin-bottom: 80px !important;}
    .mar220px {margin-bottom: 100px !important;}

    /*--------------------------------
    #header-----------------------------
    ----------------------------------*/
    #header .header__menu{
        display: none;
    }

    /*--------------------------------
    footer-----------------------------
    ----------------------------------*/
    .footer__clm {
        flex-direction: column;
    }
}
@media (max-width:540px) {
    /*--------------------------------
    common-----------------------------
    ----------------------------------*/
    :root{
        --h_height: 64px;
        --f18px: 1rem;
        --f20px: 1.125rem;
        --f22px: 1.125rem;
        --f24px: 1.125rem;
        --f26px: 1.25rem;
        --f28px: 1.25rem;
        --f30px: 1.25rem;
        --f32px: 1.375rem;
        --f34px: 1.375rem;
        --f36px: 1.625rem;
        --f38px: 1.625rem;
        --f40px: 1.625rem;
        --f42px: 1.625rem;
        --f44px: 1.75rem;
        --f46px: 1.75rem;
        --f48px: 1.75rem;
        --f50px: 2.25rem;
        --f60px: 2.25rem;
    }

    /* clm */
    .clm__item{
        width: 100%;
    }

    /* margin */
    .mar40px {margin-bottom: 20px !important;}
    .mar50px {margin-bottom: 25px !important;}
    .mar60px {margin-bottom: 25px !important;}
    .mar70px {margin-bottom: 30px !important;}
    .mar80px {margin-bottom: 30px !important;}
    .mar90px {margin-bottom: 40px !important;}
    .mar100px { margin-bottom: 50px !important;}
    .mar120px {margin-bottom: 50px !important;}
    .mar130px {margin-bottom: 60px !important;}
    .mar160px {margin-bottom: 60px !important;}
    .mar200px {margin-bottom: 100px !important;}
}