/* ------------------------------------------------------------------------
    Main Layout
------------------------------------------------------------------------  */
header {
}
main {
    position: relative;
}
@media screen and (min-width:1024px){
	main {
	}
}
footer {
    width:100%;
	border-top: 1px solid #ccc;
	text-align:center;
	padding:20px 0;
}


/* ------------------------------------------------------------------------
    Header
------------------------------------------------------------------------  */
header {
    position:sticky;
    top: 0;
    left: 0;
    width: 100%;
    padding-top: 15px;
    z-index: 100;
}
header .container {
    position: relative;
}
/* Hd_container */
header .Hd_container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60px;
    box-sizing: border-box;
    border-radius: 999px;
    box-shadow: 0px 0px 5px 3px rgba(0, 0, 0, 0.1);
    background: var(--color-white);
    padding-right: 15px;
    padding-left: 7px;
    padding-top: 7px;
    padding-bottom: 7px;
}
header .Hd_container .Header_Logo{
    display: flex;
    height: 100%;
    justify-content: center;
    align-items: center;
    column-gap:.5em;
    padding: 0 20px;
    border-radius: 99px;
    background: var(--sub2-color);
    
    margin-left: 50px;
}
header .Hd_container .Header_Logo .Name{
    font-size: .85em;
    line-height: 1.3em;
    font-weight: 700;
}
header .Hd_container .Header_Logo .Name span{
    font-size: .85em;
    font-weight: 700;
    font-family: 'Noto Serif JP', serif;
}
header .Hd_container .Header_Logo img{
    width: 45px;
}
@media screen and (min-width:1024px){
    header .Hd_container {
        height: 80px;
        padding-right: 30px;
    }
    header .Hd_container .Header_Logo{
        margin-left: 0;
        padding: 0 30px;
        column-gap:1em;
    }
    header .Hd_container .Header_Logo .Name{
        font-size: 1em;
    }
    header .Hd_container .Header_Logo .Name span{
    }
	header .Hd_container .Header_Logo img{
        width: 70px;
	}
}
/* ------------------------------------------------------------------------
    Humburger
------------------------------------------------------------------------  */
.hamburger {
    position: absolute;
	top: 50%;
	left: 5px;
    
	display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    row-gap:3px;
	width: 42px;
	aspect-ratio: 1;
    border-radius: 99px;
    border: 1px solid rgb(230,230,230);
	cursor: pointer;
	
	z-index: 110;
	transform: translateY(-50%);
}

.hamburger span {
	display: block;
	width: 30%;
	height: 2px;
	background-color: rgba(51,51,51);
    text-align: center;
	transition: all .5s;
}
/* open */
.hamburger.open span:nth-child(1) {
    transform-origin:center;
    margin-bottom: -5px;
    transform: rotate(45deg);
}
.hamburger.open span:nth-child(2) {
    opacity: 0;
}
.hamburger.open span:nth-child(3) {
    transform-origin:center;
    margin-top: -5px;
    transform: rotate(-45deg);
}
/* none */
@media screen and (min-width:1024px){
	.hamburger{display: none;}
}

/* ------------------------------------------------------------------------
    Navigation
------------------------------------------------------------------------  */
.Overlay {
    position: fixed;
    left: 0;
    top: 0;
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.7);
    z-index: 20;
    
    visibility: hidden;
    opacity: 0;
    transition: all .6s 0s ease;
}
.Overlay.open {
    visibility: inherit;
    opacity: 1;
}
.Nav {
    flex: 1;
}
.Nav ul{
    
}
.Nav ul li a{
    font-size: 14px;
    padding: 5px 0;
}

/* Switch Menu */
.PC_Menu {}
.SP_Menu {}
/* SubMenu */
.SubMenu{display: none;}

/* SP */
@media screen and (max-width:1023px){
    .Nav{
        visibility: hidden;
        opacity: 0;
        
        display: block;
        position: fixed;
		top: 70px;
		left: 5%;
        width: 90%;
        max-height: calc(100svh - 100px);
        background: var(--color-white);
        border-radius: 15px;
        padding: 20px;
        box-sizing: border-box;
        
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        
        overscroll-behavior-y: contain;
        -ms-overflow-style: none;
        scrollbar-width: none;
        
        transition: all .6s 0s ease;
    }
    .Nav.open{
        visibility: inherit;
        opacity: 1;
        top: 90px;
        z-index: 100;
    }
    .Nav ul{
        justify-content: center;
        column-gap:.5em;
    }
    .Nav > ul > li:not(:last-child){
        border-bottom: 1px solid var(--sub6-color);
    }
    .Nav ul li p{
        padding: 1.5em 0;
    }
    .Nav ul li a{
        position: relative;
        display: block;
        padding-left: 50px;
        font-weight: 700;
        font-size: .875em;
    }
    .Nav ul li > a > .Arrow{
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }
    
    /* REX */
    .Nav ul li a.OFFICIAL::before{
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        content: '';
        width: 40px;
        aspect-ratio: 1;
        background-image: url("../images/rex_logo_cl.png");
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
    }
    
    /* PC_MENU */
    .PC_Menu {
        display: none;
    }
}
/* PC */
@media screen and (min-width:1024px){
    .Nav {
        height: 100%;
        display: flex;
        justify-content:flex-end;
    }
    .Nav ul.Menu{
        width: 100%;
        display: flex;
        justify-content:flex-end;
        column-gap:2%;
    }
    .Nav ul.Menu > li{
    }
    .Nav ul.Menu li > a > .Arrow{
        display: none;
    }
    .Nav ul.Menu > li > a{
        position: relative;
        height: 100%;
        display: flex;
        align-items: center;
        padding: 0;
    }
    .Nav ul.Menu > li > a::after{
        position: absolute;
        left: 50%;
        bottom: 0;
        width: 100%;
        height: 2px;
        content: '';
        background-color: var(--main-color);
        transform-origin: center;
        transform: translateX(-50%) scale(0,1);
        transition: all .6s;
    }
    .Nav ul.Menu > li:hover > a::after{
        transform: translateX(-50%) scale(1,1);
    }
    
    /* SP_MENU */
    .SP_Menu {
        display: none;
    }
    /* SubMenu */
    .SubMenu{}
}
@media screen and (min-width:1200px){
    .Nav ul{
        column-gap:2em !important;
    }
}
@media screen and (min-width:1309px){
    .Nav {
        padding-right: 40px;
    }
    
}

/* ------------------------------------------------------------------------
    Floating Btn
------------------------------------------------------------------------  */
#FLOATING {
    position: fixed;
    left: 0;
    bottom: 10px;
    z-index: 15;
    
    width: 100%;
}
@media screen and (max-width:1023px){
    #FLOATING {
        display: none;
    }
}
#FLOATING .Switch{
    position: absolute;
    left: -20px;
    top: -18px;
    width: 36px;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sub3-color);
    border-radius: 99px;
    z-index: 5;
    transition: all .6s;
}
#FLOATING .Switch:hover{
    background: var(--sub-color);
}
#FLOATING .Switch.Close{
    transform: rotate(45deg);
    background: var(--main-color);
    color: #fff;
}
#FLOATING .Item {
    transition: all .3s;
    opacity: 1;
}
#FLOATING .Item.Close {
    opacity: 0;
    margin-right: -40px;
    visibility: hidden;
}
#FLOATING .Item .FloatingBtn{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90%;
    margin: 0 auto;
    background: var(--color-white);
    border-radius: 6.5px;
    box-shadow: 0px 0px 5px 3px rgba(0, 0, 0, 0.1);
    padding: 20px 0;
}
#FLOATING .Item .FloatingBtn > .Image img {
    max-width: 25px;
}
#FLOATING .Item .FloatingBtn > p {
    position: relative;
    font-weight: 700;
    margin-top: 1em;
    letter-spacing: .075em;
}
@media screen and (min-width:1024px){
    #FLOATING {
        position: fixed;
        left: auto;
        right: 0;
        bottom: 40px;
        
        width: auto;
    }
    #FLOATING .Item .FloatingBtn{
        width: 56px;
        border-radius: 9px 0 0 9px;
        writing-mode: vertical-rl;
        text-orientation: upright;
        -webkit-writing-mode: vertical-rl;
        -webkit-text-orientation: upright;
        -ms-writing-mode: tb-rl;
        
        margin: 0;
    }
    #FLOATING .Item .FloatingBtn:nth-child(1){
    } 
}
    

/* ------------------------------------------------------------------------
    footer
------------------------------------------------------------------------  */
footer {
    position: relative;
}
footer::before ,
footer::after {
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    width: 100%;
    height: 100%;
}
footer::before{
    background-image: url("../images/footer_bgimage.jpg");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    z-index: -2;
}
footer::after {
    background: rgba(0,0,0,.7);
    z-index: -1;
}
footer .container{
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap:30px;
    padding: 20px 0;
}
footer .container >*{
    max-width: 60px;
}
@media screen and (min-width:769px) and ( max-width:1023px) {
    footer .container{
        column-gap:50px;
        padding: 40px 0;
    }
    footer .container >*{
        max-width: 80px;
    }
}
@media screen and (min-width:1024px){
    footer .container{
        column-gap:80px;
        padding: 60px 0;
    }
    footer .container >*{
        max-width: 120px;
    }
}

/* ------------------------------------------------------------------------
    Page-Top
------------------------------------------------------------------------  */
#PG-Top {
}
