@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');

/*TAG***************************************************************************/

* {
    margin: 0;
    padding: 0;
    border-radius: 0px;
    color: inherit;
    /*font-size: inherit;*/
    font-family: 'Noto Sans JP', sans-serif, 'Mukta';
    position: relative;
    box-sizing: border-box;
    line-height: 1.2em;
}
html {
    scroll-behavior: smooth;
}
body {
    transition: opacity 1s;
    opacity: 0;
    background-color: var(--ColB2);
}
img {
    display: block;
}
ul {
    list-style: none;
}
a {
    text-decoration: none;
    display: block;
}
input[type="checkbox"] {
    display: None;
}
label {
    display: block;
}
h2 {
    font-size: calc(2em * 1);
    font-weight: 500;
    text-align: center;
    margin-bottom: 1.7em;
}
h3 {
    font-size: calc(1.5em * 1);
    font-weight: 500;
    text-align: center;
    margin-bottom: 1.7em;
}
/*Common***************************************************************************/
.FlexBox{
    display: flex;
    flex-wrap: wrap;
    align-items: normal;
}
.FlexCenter {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: normal;
}
.Block {
    display: block;
}
.MarginAuto {
    margin: auto;
}
.None {
    display: none;
}
.Break {
    word-break: break-all
}
.HoverZoom {
    transition: 0.25s;
}
.HoverZoom:hover {
    transform: scale(1.1);
}
.HoverLight,
.HoverDark,
.HoverOpacity {
    transition: 0.1s;
}
.HoverLight:hover {
    filter: saturate(0.5) brightness(1.3);
}
.HoverDark:hover {
    filter: brightness(0.5);
}
.HoverOpacity {
    opacity: 1;
}
.HoverOpacity:hover {
    opacity: 0.5;
}
.BgPoly::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(src/bg_poly.svg);
    background-position: center;
    background-size: 200em;
}
.Padding {
    padding: calc(6rem * var(--SP30)) 0;
}
.Loading>* {
    display: none;
    /*color: rgba(0, 0, 0, 0);*/
}
.Loading::before {
    content: 'Loading...';
    margin: 1em;
    display: block;
    text-align: center;
}
.Section{
    font-size: calc(1rem * var(--SP30));
    padding: 4em 0;
}

.OpenNew::after{
    content: '';
    background-image: url(src/icon_open.svg);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: 0% 100%;
    height: 1em;
    width: 1em;
    display: inline-block;
    filter: saturate(0) brightness(10);
    margin-bottom: -0.1em;
}
/*ハンバーガーメニュー************************************************************/

#HamburgerButton {
    width: 10rem;
    height: 10rem;
    position: fixed;
    z-index: 100;
    top: 3rem;
    right: 3rem;
}
#HamburgerButton::before,
#HamburgerButton::after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 80%;
    filter: hue-rotate(0deg) saturate(0) brightness(5);
    transition: 0.5s;
}
#HamburgerButton::before {
    background-image: url(src/icon_menu.svg);
}
#HamburgerButton::after {
    background-image: url(src/icon_X.svg);
    opacity: 0;
}
#HamburgerInput:checked~#HamburgerButton::before {
    transform: rotate(-360deg);
    opacity: 0;
}
#HamburgerInput:checked~#HamburgerButton::after {
    transform: rotate(-360deg);
    opacity: 1;
}

/*swiper*/

.swiper-slide img {
    width: 100%;
    height: 100%;
}
body .swiper-button-prev {
    left: 1em;
}
body .swiper-button-next {
    right: 1em;
}
body .swiper-button-prev::after,
body .swiper-button-next::after {
    color: white;
    font-size: 3em;
}
/*Swiperが初期化されたいない場合は非表示*/
body .swiper-button-prev:not([role="button"]),
body .swiper-button-next:not([role="button"]){
    display: none;
}

body .swiper-container-horizontal>.swiper-pagination-bullets {
    bottom: 0.5em;
}
body .swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet {
    background-color: white;
    box-shadow: 0 0 1em black;
    width: 0.6em;
    height: 0.6em;
    margin: 0 0.25em;
}

/*ヘッダー************************************************************/

#Content {
    color: var(--ColW);
}
header {
    font-size: calc(1rem * var(--SP30));
    height: 5.2em;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 1.5em;
    background-color: black;
}
header h1 {
    font-size: 2.1em;
    font-weight: bold;
}
header a {}
header nav ul {
    display: flex;
}
header nav ul li {
    margin-left: 2.5em;
    font-size: 1.3em;
    font-weight: 300;
}


/*トップ*/

#TOP {
    font-size: calc(1rem * var(--SP30));
    height: calc(100em * 0.453125 );
    background-color: black;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    flex-direction: column;
    text-align: center;
    overflow: hidden;
}
#TOP video {
    position: absolute;
    width: 100em;
    opacity: 0.45;
}
#TOP h2 {
    font-size: 3.125em;
    font-weight: 700;
    margin-bottom: 0;
}
#TOP p {
    font-size: 1.6em;
    font-weight: 700;
    line-height: 1.6em;
    margin-top: 1em;
}
/*スクロールトップ*/
#ScrollTop{
    position:sticky;
    top: calc(100vh - 6em);
    margin-left: auto;
    margin-right: 1em;
    margin-top: 5em;
    z-index: 10;
    
}
.PageTop {
    font-size: calc(1rem * var(--SP40));
    width: 4em;
    height: 4em;
    position:sticky;
    top: calc(100vh - 5em);
    margin-left: auto;
    margin-right: 1em;
    margin-top: 5em;
    z-index: 10;
    background-color: rgba(0, 0, 0, 1);
    border-radius: 0.5em;
    opacity: 0.5;
    transition: 0.25s;
}
.PageTop:hover{
    opacity: 1;
}
.PageTop::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-image: url(src/icon_arrow.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 50%;
    filter: saturate(0) brightness(3);
}
/*DETEAIL*/

#DETAIL {
    margin-top: calc(-5em * var(--SP00));
}
#DETAIL .swiper {
    font-size: calc(1rem * var(--SP20));
    width: 50em;
    max-width: 95%;
    overflow: hidden;
    background-color: rgba(51, 51, 51, 1);
    box-shadow: 0 0 1.5625em rgba(0, 0, 0, 1);
    border-radius: 0.0em;
    margin-bottom: 3em;
}
#DETAIL p {
    font-size: calc(1rem * var(--SP35));
    margin-left: 1.5em;
    margin-bottom: 1.5em;
    line-height: 1.5em;
}

/*PRICE*/
#PRICE {
    background-color: var(--ColB3);
}
/*Table*/
td:empty{
    display: none;
}
#PRICE table{
    font-size: 1em;
    margin: auto;
    border-spacing: 0;
    margin-bottom: 6em;
}

#PRICE table tr td{
    padding: 0.7em 0.5em;
    border-top: 0.1em solid rgba(230, 230, 230, 0.5);
    border-left: none;
    border-right: none;
}

#PRICE table tr td:nth-of-type(4){
    text-align: end;
}
#PRICE table tr td[colspan="4"]{
    font-size: 0.85em;
    line-height: 1.5em;
}


/*参考プラン*/

#PRICE .Plans>div {
    font-size: calc(1em * var(--SP15) );
    width: 23em;
    margin: 0 1.3em 3.5em;
    background-color: rgba(51, 51, 51, 1);
    box-shadow: 0px 0px 1.5625em rgba(0, 0, 0, 0.8);
    border-radius: 0.52em;
}
#PRICE .Plans>div>h4{
    font-weight: 400;
    font-size: 1em;
    text-align: center;
    padding: 0.92em 0;
    background-color: rgba(255, 255, 255, 0.03);
    
}
#PRICE .Plans>div>p {
    padding: 1em;
    text-align: center;
    line-height: 1.5em;
    min-height: 5em;
}
#PRICE .Plans>div>div:first-of-type{
    text-align: center;
    padding: 0.92em 0;
    background-color: rgba(255, 255, 255, 0.03);
    
}
#PRICE .Plans>div>div:last-of-type{
    font-size: 0.8em;
    font-weight: 100;
    padding: 0.8em;
    opacity: 0.7;
    line-height: 1.5em;
}
/*お問い合わせボタン*/

.ButtonContact>a {
    font-size: 1em;
    padding: 0.68em 2em;
    border: 0.1em solid var(--ColW);
    border-radius: 10em;
    transition: 0.2s;
}
.ButtonContact>a:hover {
    background-color: rgba(255, 255, 255, 0.3);
    /*color: var(--ColB2);*/
}
.ButtonContact>a.OpenNew::after{
    margin-left: 0.2em;
}
/*3DLIVE*/
#LIVE3D{}
#LIVE3D .FlexCenter{}

#LIVE3D .FlexCenter .AchieveItem {
    width: 40em;
    margin: 0 1em 3.125em;
    overflow: hidden;
    background-color: rgba(51, 51, 51, 1);
    box-shadow: 0px 0px 1.5625em rgba(0, 0, 0, 1);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    
}
#LIVE3D .AchieveItem p{
    /*margin-top: 0.83em;
    */padding:0.83em;
}
#LIVE3D .AchieveItem>.Part{/*担当箇所*/
    font-size: 0.8em;
    padding: 0 0.83em;
}
#LIVE3D .AchieveItem>.Part>span{/*担当箇所*/
    background-color: rgba(65,75,115,0.8);
    color: rgba(255, 255, 255, 0.8);
    padding: 0.25em 0.5em;
    margin-right: 0.25em;
    margin-bottom: 0.83em;
    display: inline-block;
    border-radius: 0.2em;
    font-weight: 400;
}
#LIVE3D .AchieveItem>.Part>span.None{
    display: none;
}
/*CALENDER*/
#CALENDER{
    background-color: var(--ColB3);
}
#CALENDER>div:first-of-type{
    width: calc(73em * var(--SP00) + 100% * var(--SP10));
    height: 600px;
    margin: 0 auto 3em;
    
}
#CALENDER iframe{
    width: 100%;
    height: 100%;
    display: block;
}
#CALENDER p{
    margin-top: 0.5em;
}
#CALENDER .Loading::before {
    margin: 0;
    text-align: start;
}
/*CONTACT*
#CONTACT{
    
}
#CONTACT iframe{
    width: 100%;
    max-width: 700px;
    height: calc(2310px * var(--SP00) + 2880px * var(--SP10));
    display: block;
    margin: auto;
    filter: brightness(1) drop-shadow(0px 0px 1.5625em rgba(0, 0, 0, 1));
    background-color: rgba(230, 230, 230, 1);
    border-radius: 0.5em;
}
/*Footer*/
#Footer {
    font-size: calc(1em * var(--SP30));
    
    text-align: center;
}
#Footer>div{
    font-size: 1.56em;
    padding: 1.9em 0;
    
}
#Footer>p{
    padding: 1em 0;
    opacity: 0.6;
    background-color: rgb(55,55,55);
}

/*メディアクエリ***************************************************************************/

:root {
    font-size: calc( calc(100vw - 17px) / 100);
    --SP00: 1;
    --SP05: 1;
    --SP10: 0;
    --SP15: 1;
    --SP16: 1;
    --SP20: 1;
    --SP25: 1;
    --SP30: 1;
    --SP35: 1;
    --SP40: 1;
    --ColW: rgba(230, 230, 230, 1);
    --ColB2: rgba(28, 28, 28, 1);
    --ColB3: rgba(35,35,35, 1);
    --ImgGra: linear-gradient(to right, rgb(160, 100, 30), rgb(220, 180, 70));
}
.Sp {
    display: none;
}
@media (max-width: 1017px) {
    /*767px*/
    /*Chromeの最小フォントサイズが10px*/
     :root {
        --SP00: 0.0;
        --SP05: 0.5;
        --SP10: 1.0;
        --SP15: 1.5;
        --SP16: 1.66;
        --SP20: 2.0;
        --SP25: 2.5;
        --SP30: 3.0;
        --SP35: 3.5;
        --SP40: 4.0;
    }
    .Sp {
        display: block;
    }
    .Pc {
        display: none;
    }
    /*ヘッダー ハンバーガーメニュー*/
    header nav {
        position: fixed;
        z-index: 100;
        top: 0;
        right: -100%;
        padding-top: 50px;
        width: 100%;
        background-color: rgba(0, 0, 0, 0.9);
        transition: 0.2s ease;
    }
    header nav ul {
        display: block;
    }
    header nav ul li {
        text-align: center;
        width: 100%;
        margin: 1em 0;
        font-size: 2em;
    }
    #HamburgerInput:checked~nav {
        right: 0;
    }
}