@charset "utf-8";
*, *:before, *:after {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
}


img {
	object-fit: cover;
    object-position: bottom;
    font-family: 'object-fit: cover; object-position: bottom;';
}

html {
	height:100%;
    font-size: 100%;
    color:#1f2a58;
}

html:lang(ja) {
    font-family: 'Noto Sans JP',sans-serif;
}

h1, h2, h3, h4, h5 {
    font-weight: 500;
    letter-spacing: 0.15em;
    line-height: 1.5em;
    padding-left: 35px;
    position: relative;
    color: #333333;
    padding-top: 10px;
    padding-bottom: 10px;
}

h1::before, h2::before, h3::before, h4::before, h5::before {
    content: '-';
    position: absolute;
    left: 15px;
}

h1 {
    font-size: 1.25rem;
    xxmargin: 20px 0px;
    background-color: black;
    
    color: white;
}

h2 {
    font-size: 1.125rem;
    xxmargin: 20px 0px;
    xxbackground-color: midnightblue;
    background-color: lightgray;
}

h3 {
    font-size: 1.0625rem;
    background-color: whitesmoke;
}

h4 {
    font-size: 1.03125rem;
    margin: 10px 0px;
}

h5 {
    font-size: 1.0rem;
    margin: 10px 0px;
}

p {
    font-size: 1.0rem;
    xxfont-weight: 300;
    letter-spacing: 0.2em;
    line-height: 1.5em;
    margin: 20px 0px;
}

a {
    display: block;
	letter-spacing: 0.2em;
    
}

.flex {
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
}



.section_container {
    justify-content: center;
    width: 100%;
    overflow: hidden;
}

.contents_container {
    flex-grow: 1;
}

.contents_row {
    width: 100%;
}

.contents_row .module_area {
    position: relative;
}

@media screen and (max-width:480px) { 
    /*　for iPhone Landscape　(iPhone 横)　*/
    .contents_container {
        width: 100%;
        padding: 0px 20px;
    }
}
@media screen and (min-width:481px) and ( max-width:1049px) {
    /*　for iPad 　*/
    .contents_container {
        width: 100%;
        padding: 0px 50px;
    }

    header .contents_container {
        padding: 0px 20px;
    }
}
@media screen and (min-width:1050px) {
    /*　for PC　*/
    .contents_container {
        max-width: 1250px;
        padding: 0px 100px;
    }

    header .contents_container {
        padding: 0px 20px;
    }
}

@media all and (-ms-high-contrast: none) {
        .contents_container {
            width: 1250px;
        }
}




/* nav_global */
header {
    position: fixed;
    width: 100%;
    z-index: 100;
}

header .header_area {
    background-color: white;
    xxpadding-bottom: 10px;
    border-bottom: 1px solid black;
}

header .logo_area {
    text-align: center;
    xxbackground-color: blue;
    height: 50px;
}

header .logo_area a {
    display: inline-block;
    xxbackground-color: rebeccapurple;
    height: 50px;
    line-height: 50px;
}


.nav_header {
    position: fixed;
    width: 70%;
    height: 100%;
    z-index: 1000;
    right: -70%;
    top: 0;
    transition: .3s;
    overflow-y: auto;
    padding-top: 50px;
    background-color: white;
    /*IE(Internet Explorer)・Microsoft Edgeへの対応*/
    -ms-overflow-style: none;
    /*Firefoxへの対応*/
    scrollbar-width: none;
}

.nav_header::-webkit-scrollbar {
    display: none;
}

/***** メニューオープン時位置0にして画面内に *****/
.nav_header.open {
	position: absolute;
    height: 100vh;
	right: 0;
}

.nav_header ul.header_extra_menu {
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.nav_header ul.header_extra_menu li {
    flex-grow: 1;
    xxwidth: 33%;
    width: 100%;
    margin-top: 20px;
    height: 40px;
    line-height: 40px;
    xxbackground-color: olive;
    padding: 0px 10px;
}

.nav_header ul.header_extra_menu li a {
    text-align: center;
    color: white;
    xxbackground: linear-gradient(-135deg, #5bc8ac, #0052b5);
    xxbackground-color: #0052b5;
    background-color: rgb(27, 27, 78);
    padding: 0px 30px;
    border-radius: 5px;
}

.nav_header ul.header_extra_menu li a span {
    xxbackground-color: red;
    position: relative;
    padding-left: 30px;
}

.nav_header ul.header_extra_menu li a span::before {
    content: '';
    position: absolute;
    xxbackground-image: url(../img/icon/icon_mail_255_255_255_256px.png);
    xxbackground-image: url(../img/icon/icon_mail_255_255_255_256px.svg);
    background-repeat: no-repeat;
    background-size: cover;
    width: 20px;
    height: 20px;
    top: 3px;
    left: 0;
}

.nav_header ul.header_extra_menu li:nth-child(1) a span::before {
    background-image: url(../img/icon/icon_tel_255_255_255_256px.png);
}

.nav_header ul.header_extra_menu li:nth-child(2) a span::before {
    background-image: url(../img/icon/icon_mail_255_255_255_256px.png);
}


.nav_header ul.header_global_menu li {
    width: 100%;
    height: 50px;
    line-height: 50px;
    xxbackground-color: whitesmoke;
    border-top: 1px solid gray;
}

.nav_header ul.header_global_menu li:last-child {
    border-bottom: 1px solid gray;
}

.nav_header ul.header_global_menu li a {
    padding-left: 40px;
    xxfont-size: 1.15rem;
    position: relative;
}

.nav_header ul.header_global_menu li a::before {
    content: '';
    position: absolute;
    border-top: solid 3px #1b1b4e;
    border-right: solid 3px #1b1b4e;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
    top: 20px;
    left: 15px;
}





/* 600px以上はハンバーガーボタン非表示、ヘッダー固定 */
@media screen and (min-width: 10000px) {
    .nav_header_btn {
		display: none;
	}

    .header_area {
        display: flex;
    }

	.nav_header {
		/* メニューを横に */
		display: flex;
        flex-grow: 1;
		flex-direction: column;
		position: relative;
		top: 0;
		right: 0;
		xxwidth: calc(100% - 550px);
        padding-top: 0px;
		xxheight: 500px;
        padding-right: 30px;
	}

    .nav_header ul.header_extra_menu {
        justify-content: flex-end;
        margin-bottom: 10px;
    }

    .nav_header ul.header_extra_menu li {
        flex-grow: 0;
        width: 300px;
        margin-top: 0px;
    }

    .nav_header ul.header_extra_menu li a {
        border-radius: 0px 0px 5px 5px;
    }

    .nav_header ul.header_global_menu {
        display: flex;
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .nav_header ul.header_global_menu li {
        width: auto;
        xxbackground-color: green;
        padding-right: 20px;
        border: none;
        
    }

    .nav_header ul.header_global_menu li:last-child {
        border: none;
        
    }
}

/**************** 以下、ハンバーガーボタンのスタイリング ****************/
.nav_header_btn {
	/* ボタンの配置位置  */
	position: fixed;
	top: 10px;
	right: 30px;
	/* 最前面に */
	z-index: 10000;
	/* ボタンの大きさ  */
	width: 30px;
	height: 30px;
    xxbackground-color: red;
    background-color: var(--main-color);
}
/***** 真ん中のバーガー線 *****/
.btn_line {
	display: block;
	/* バーガー線の位置基準として設定 */
	position: relative;
	/* 線の長さと高さ */
	width: 100%;
	height: 4px;
	/* バーガー線の色 */
	background-color: #d6d5d5;
	transition: .2s;
}
/***** 上下のバーガー線 *****/
.btn_line::before , .btn_line::after {
	content: "";
	/* 基準線と同じ大きさと色 */
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: #d6d5d5;
	transition: .5s;
}
.btn_line::before {
	/* 上の線の位置 */
	transform: translateY(-10px);
}
.btn_line::after {
	/* 下の線の位置 */
	transform: translateY(10px);
}
/***** メニューオープン時 *****/
.btn_line.open {
	/* 真ん中の線を透明に */
	background-color: transparent;
}
.btn_line.open::before , .btn_line.open::after {
	content: "";
	background-color: #333;
	transition: .2s;
}
.btn_line.open::before {
	/* 上の線を傾ける */
	transform: rotate(45deg);
}
.btn_line.open::after {
	/* 上の線を傾ける */
	transform: rotate(-45deg);
}
/**************** ここまで、ハンバーガーボタンのスタイリング ****************/



