html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-size: 100px;
  line-height: 1.4;
}

@media screen and (max-width: 320px) {
html {
  -ms-text-size-adjust: 90%;
  -webkit-text-size-adjust: 90%;
  font-size: 90px;
  line-height: 1.4;
}
}

html.safari {
  -webkit-font-smoothing: antialiased;
}

body {
line-height: 1;
margin: 0;
}

h1, h2, h3, h4, h5, h6, p, dl, dt, dd, em {
margin: 0;
padding: 0;
font-weight:normal;
font-style:normal;
font-size: initial;
}

/* HTML5用 */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display: block;
}

fieldset {
border:0;
margin: 0;
padding: 0;
}

hr {
display: block;
height: 1px;
border: 0;
border-top: 1px solid #cccccc;
margin: 1em 0;
padding: 0;
}

ul {
list-style: none;
padding: 0;
margin: 0;
border: 0;
}

li {
padding: 0;
margin: 0;
}

input, select {
vertical-align: middle;
}

/* tableタグ*/
th,td{
padding:0;
}

caption{
text-align:left;
}


/* はみ出し対策 */
body {
width: 100%;
}

a {
outline:0;
border:0;
transition: all 0.3s ease;
}

@media screen and (max-width: 800px) {
a {
transition:none;
}
}

a img {
border:0;
}

img {
border:0;
max-width:100%;
-webkit-backface-visibility: hidden;
}

html {
-webkit-text-size-adjust: none
}

/*============================================
基本CSS
===========================================*/
html,body {
min-width:100%;
min-height:100%;
position:relative;
font-family:'Roboto', 'Noto Sans JP',"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
overflow-x: hidden;
}

.sp_only {
display: none;
}

@media screen and (max-width: 767px) {
.sp_only {
display: block;
}
.pc_only {
display: none;
}
}

/*============================================
メインナビゲーション
===========================================*/
header {
top:0;
right: 0;
z-index: 100;
}

/* ナビゲーションボタン */
#naviBtn {
width: 90px;
height: 90px;
background: #101E8E;
cursor: pointer;
position: fixed;
top:0;
right: 0;
z-index: 100;
}

@media screen and (max-width: 767px) {
#naviBtn {
width: 55px;
height: 55px;
}
}

.menu-trigger span {
display: inline-block;
transition: all .4s;
box-sizing: border-box;
}

#menuBars {
position: absolute;
top: 27%;
left: 50%;
width: 36%;
-webkit-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}

@media screen and (max-width: 767px) {
#menuBars {
top: 15%;
}
}

.menu-trigger span {
position: absolute;
left: 0;
width: 100%;
height: 1px;
background-color: #fff;
}
.menu-trigger span:nth-of-type(1) {
top: 10px;
}
.menu-trigger span:nth-of-type(2) {
top: 18px;
}
.menu-trigger span:nth-of-type(3) {
top: 26px;
}

.menu-trigger.active span:nth-of-type(1) {
-webkit-transform: translateY(10px) rotate(-45deg);
transform: translateY(20px) rotate(-45deg);
top:0px;
}
.menu-trigger.active span:nth-of-type(2) {
opacity: 0;
}
.menu-trigger.active span:nth-of-type(3) {
-webkit-transform: translateY(-5px) rotate(45deg);
transform: translateY(-0px) rotate(45deg);
top:20px;
}

/* メールボタン */
#mailBtn {
width: 90px;
height: 90px;
background: #1F2EAC;
position: fixed;
top:90px;
right: 0;
z-index: 2;
}

@media screen and (max-width: 767px) {
#mailBtn {
width: 55px;
height: 55px;
top:0;
right: 55px;
}
}

#mailBtn a {
color: #FFF;
display: block;
height: 90px;
}

#mailBtn a i {
font-size: 0.3rem;
position: absolute;
top:50%;
left:50%;
transform: translate(-50%,-50%);
}

@media screen and (max-width: 767px) {
#mailBtn a i {
font-size: 0.2rem;
}
}

/* 英語切り替えボタン */
#engBtn {
width: 90px;
height: 90px;
background: #1F2EAC;
position: fixed;
top:180px;
right: 0;
z-index: 2;
}

.icon_en:before {
    content: url("../img/icon_en.svg");
}

@media screen and (max-width: 767px) {
#engBtn {
width: 55px;
height: 55px;
top:0;
right: 110px;
}
}

#engBtn a {
color: #FFF;
display: block;
height: 90px;
}

#engBtn a i {
font-size: 0.3rem;
position: absolute;
top:50%;
left:50%;
transform: translate(-50%,-50%);
}

@media screen and (max-width: 767px) {
#engBtn a i {
font-size: 0.2rem;
}
}

/*============================================
メインメニュー
===========================================*/
#main_navi_wrapper {
background: #101E8E;
height: 100vh;
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 10;
display: none;
}

#main_navi {
max-width: 500px;
position: absolute;
top:50%;
left: 50%;
transform: translate(-50%,-50%);
}

#main_navi li {
font-size: 0.44rem;
padding-bottom: 0.2rem;
}

@media screen and (max-width: 767px) {
#main_navi {
width: 80%;
}
#main_navi li {
font-size: 0.32em;
}
}

#main_navi li a {
color: #FFF;
text-decoration: none;
font-family: 'Oswald', sans-serif;
font-weight: 600;
}

#main_navi li a:hover {
text-decoration: underline;
}

#main_navi li.now a {
opacity: 0.5;
text-decoration: underline;
}

#main_navi li.now ul li a {
opacity: 1;
text-decoration: none;
}

#main_navi li.now ul .nownow {
opacity: 0.5 !important;
text-decoration: none;
}

#main_navi li ul li {
font-size: 0.18rem;
margin-top: 0.2rem;
padding-bottom: 0;
}

@media screen and (max-width: 767px) {
#main_navi li ul li {
font-size: 0.13rem;
margin-top: 0.13rem;
}
}

#main_navi li ul li a {
font-weight: 400;
font-family:'Roboto', 'Noto Sans JP',"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
position: relative;
padding-left: 40px;
display: block;
}

@media screen and (max-width: 767px) {
#main_navi li ul li a {
padding-left: 20px;
}
}

#main_navi li ul li a:hover {
text-decoration: none;
}

#main_navi li ul li a div {
width: 30px;
height: 1px;
background: #FFF;
position: absolute;
left: 0;
top:40%;
transition: all 0.3s ease;
}

@media screen and (max-width: 767px) {
#main_navi li ul li a div {
width: 15px;
}
}

#main_navi li ul li a:hover div {
text-decoration: none;
width: 20px;
left: 10px;
}

@media screen and (max-width: 767px) {
#main_navi li ul li a:hover div {
text-decoration: none;
width: 10px;
left: 5px;
}
}

#main_navi li ul li a .mini {
width: 15px;
left: 15px;
height: 1px;
background: #FFF;
position: absolute;
top:40%;
transition: all 0.3s ease;
}

@media screen and (max-width: 767px) {
#main_navi li ul li a .mini {
width: 10px;
left: 5px;
}
}

#main_navi li ul li a:hover .mini {
text-decoration: none;
width: 10px;
left: 20px;
}

@media screen and (max-width: 767px) {
#main_navi li ul li a:hover .mini {
text-decoration: none;
width: 5px;
left: 7px;
}
}

#main_navi .contact_btn {
padding-top: 0.2rem;
}

#main_navi .contact_btn a {
display: block;
background: #FFF;
color: #101E8E;
text-align: center;
text-decoration: none;
font-family: 'Oswald', sans-serif;
font-weight: 600;
font-size: 0.44rem;
padding: 0.2rem;
padding-top: 0.16rem;
border: 1px solid #FFF;
}

#main_navi .contact_btn a:hover {
background: #101E8E;
color: #FFF;
}

@media screen and (max-width: 767px) {
#main_navi .contact_btn a {
font-size: 0.25rem;
}
}

/*============================================
スクロール
===========================================*/
.anchor_wrapper:before {
-ms-transform: scale(1, 1);
transform: scale(1, 1);
animation: scrolldown2 2s 1s infinite cubic-bezier(.645, .045, .355, 1);
}

.anchor_wrapper {
position: relative;
width: 28px;
height: 200px;
text-align: right;
}

@media screen and (max-width: 767px) {
.anchor_wrapper {
display: none;
}
}

.anchor {
position: fixed;
top: calc(50vh - 82px);
right: 2%;
z-index: 2;
}

.anchor_wrapper:before {
position: absolute;
top: 98px;
right: 14px;
display: block;
width: 1px;
height: 36px;
background-color: #000;
content: "";
transition: .3s cubic-bezier(.95, .05, .795, .035);
-ms-transform: scale(1, 0);
transform: scale(1, 0);
}

.anchor p {
display: inline-block;
overflow: hidden;
margin-right: 2.42857%;
font-family: 'Playfair Display', serif;
font-style: italic;
-webkit-writing-mode: vertical-rl;
-ms-writing-mode: tb-rl;
writing-mode: vertical-rl;
}

.anchor a {
position: relative;
display: block;
padding: 5px;
color: #000;
font-weight: 400;
font-size: .12rem;
line-height: 1.5;
transition: .3s cubic-bezier(.95, .05, .795, .035);
text-decoration: none;
}

.scroll {
height: 98px;
}
.scroll a {
-ms-transform: translateY(0);
transform: translateY(0);
}

.pagetop {
position: absolute;
right: 0;
bottom: 0;
}
.pagetop a {
-ms-transform: translateY(0);
transform: translateY(0);
}

.now_pagetop .scroll a {
-ms-transform: translateY(104px);
transform: translateY(104px);
}

.now_pagetop .anchor_wrapper:before {
	display:none;
	-ms-transform: scale(1, 1);
transform: scale(1, 1);
animation: scrollup2 2s 1s infinite cubic-bezier(.645, .045, .355, 1);
}

.now_pagetop .anchor_wrapper:hover:before {
	display:none;
animation: scrollup .8s 1 cubic-bezier(.645, .045, .355, 1);
}

.now_scroll .pagetop a {
-ms-transform: translateY(-104px);
transform: translateY(-104px);
}

.now_scroll .anchor_wrapper:before {
-ms-transform: scale(1, 1);
transform: scale(1, 1);
animation: scrolldown2 2s 1s infinite cubic-bezier(.645, .045, .355, 1);
}

.now_scroll .anchor_wrapper:hover:before {
animation: scrolldown .8s 1 cubic-bezier(.645, .045, .355, 1);
}

@keyframes scrolldown {
	0% {
		transform: scale(1, 1); 
		transform-origin: 100% 100%;
	}
	33% {
		transform: scale(1, 0); 
		transform-origin: 100% 100%;
	}
	66% {
		transform: scale(1, 0); 
		transform-origin: 0 0;
	}
	100% {
		transform: scale(1, 1); 
		transform-origin: 0 0;
	}
}

@keyframes scrolldown2 {
	0% {
		transform: scale(1, 1); 
		transform-origin: 100% 100%;
	}
	55% {
		transform: scale(1, 1); 
		transform-origin: 100% 100%;
	}
	70% {
		transform: scale(1, 0); 
		transform-origin: 100% 100%;
	}
	85% {
		transform: scale(1, 0); 
		transform-origin: 0 0;
	}
	100% {
		transform: scale(1, 1); 
		transform-origin: 0 0;
	}
}

@keyframes scrollup {
	0% {
		transform: scale(1, 1); 
		transform-origin: 0 0;
	}
	33% {
		transform: scale(1, 0); 
		transform-origin: 0 0;
	}
	66% {
		transform: scale(1, 0); 
		transform-origin: 100% 100%;
	}
	100% {
		transform: scale(1, 1); 
		transform-origin: 100% 100%;
	}
}

@keyframes scrollup2 {
	0% {
		transform: scale(1, 1); 
		transform-origin: 0 0;
	}
	15% {
		transform: scale(1, 0); 
		transform-origin: 0 0;
	}
	30% {
		transform: scale(1, 0); 
		transform-origin: 100% 100%;
	}
	45% {
		transform: scale(1, 1); 
		transform-origin: 100% 100%;
	}
	100% {
		transform: scale(1, 1); 
		transform-origin: 100% 100%;
	}
}



/*============================================
コンテンツ基本
===========================================*/
/* 右側にスペースあり */
.cont_box {
clear: both;
position: relative;
z-index: 0;
padding-top: 90px;
}

.inner_box {
max-width: 1100px;
margin: auto;
position: relative;
padding-left: 0.4rem;
padding-right: 0.4rem;
box-sizing: border-box;
}

@media screen and (max-width: 767px) {
.inner_box {
padding-left: 0.26rem;
padding-right: 0.26rem;
}
}

@media screen and (max-width: 320px) {
.inner_box {
padding-left: 0.2rem;
padding-right: 0.2rem;
}
}

.particleground {
width: 80%;
height: 80%;
overflow: hidden;
margin: auto;
}

.section_no {
position: absolute;
top:0;
-webkit-writing-mode: vertical-rl;
-ms-writing-mode: tb-rl;
writing-mode: vertical-rl;
font-family: 'Playfair Display', serif;
font-style: italic;
font-size: 0.16rem;
}

@media screen and (max-width: 767px) {
.section_no {
font-size: 0.13rem;
}
}

.section_no:before {
display: block;
width: 1px;
height: 60px;
background-color: #101E8E;
content: "";
margin-left: 4px;
}

.section_no span {
position: absolute;
top:70px;
left: 0;
color: #101E8E;
}

#page_cont_wrapper h3 {
font-size: 0.66rem;
color: #101E8E;
font-family: 'Oswald', sans-serif;
font-weight: 600;
line-height: 1.3;
padding-bottom: 0.2rem;
}

@media screen and (max-width: 767px) {
#page_cont_wrapper h3 {
font-size: 0.39rem;
}
}

#page_cont_wrapper h3 span {
font-size: 0.14rem;
font-weight: 400;
display: block;
}

@media screen and (max-width: 767px) {
#page_cont_wrapper h3 span {
font-size: 0.11rem;
}
}

#page_cont_wrapper p {
font-size: 0.14rem;
line-height: 0.28rem;
}

@media screen and (max-width: 767px) {
#page_cont_wrapper p {
font-size: 0.13rem;
line-height: 1.8;
text-align: justify;
text-justify: inter-ideograph;
}
}

.flex_box {
display: flex;
flex-wrap: wrap;
justify-content:space-between;
}

/* リンクボタン */
.link_btn {
padding-top: 0.2rem;
}

.link_btn a,
.link_btn em {
display: block;
box-sizing: border-box;
padding: 0.2rem;
font-size: 0.16rem;
font-weight: 700;
background: #101E8E;
color: #FFF;
position: relative;
text-align: center;
text-decoration: none;
z-index: 0;
transition: all 0.3s ease;
}

.link_btn a:hover,
.link_btn em:hover {
background: #FFF;
color: #101E8E;
}

.link_btn div {
width: 20%;
height: 1px;
background: #FFF;
position: absolute;
top:50%;
right: -5%;
z-index: 1;
transition: all 0.3s ease;
}

.link_btn a:hover div,
.link_btn em:hover div {
width: 16%;
background: #101E8E;
position: absolute;
}

/* パンくずリスト */
#page_navi {
position: relative;
padding-left: 0.4rem;
z-index: 1;
padding-bottom: 0.4rem;
font-size: 0.14rem;
color: #707070;
}

@media screen and (max-width: 767px) {
#page_navi {
padding-left: 0.26rem;
padding-right: 0.26rem;
font-size: 0.1rem;
line-height: 1.6;
}
}

#page_navi a {
color: #707070;
text-decoration: none;
}

#page_navi a:hover {
color: #222;
}

#page_navi i {
padding-left: 0.06rem;
padding-right: 0.06rem;
}

/*============================================
フッター
===========================================*/
footer {
/*background: url("../img/top_mv.jpg") no-repeat center center;*/
background-size: cover;
padding-top: 0.8rem;
position: relative;
}

#footer_cont {
position: relative;
z-index: 1;
}

footer h3 {
font-size: 0.66rem;
color: #FFF;
font-family: 'Oswald', sans-serif;
font-weight: 600;
line-height: 1.3;
padding-bottom: 0.2rem;
text-align: center;
}

@media screen and (max-width: 767px) {
footer h3 {
font-size: 0.32rem;
}
}

footer p {
text-align: center;
font-size: 0.14rem;
color: #FFF;
padding-bottom: 0.1rem;
}

@media screen and (max-width: 767px) {
footer p {
font-size: 0.12rem;
line-height: 1.6;
}
}

footer .link_btn {
max-width: 400px;
margin: auto;
padding-bottom: 0.8rem;
}

@media screen and (max-width: 767px) {
footer .link_btn {
width: 80%;
}
}

footer .link_btn a {
background: none;
border: 1px solid #FFF;
}

footer .overray {
/*background: rgba(16,30,142,0.3);*/
position: absolute;
left: 0;
top:0;
width: 100%;
height: 100%;
z-index: 0;
}

#footer_navi {
background: #000;
padding: 0.2rem;
}

#footer_navi_inner {
max-width: 1000px;
margin: auto;
display: flex;
flex-wrap: wrap;
justify-content:center;
padding-top: 0.1rem;
padding-bottom: 0.1rem;
}

@media screen and (max-width: 767px) {
#footer_navi_inner {
display: block;
}
}

#footer_navi ul {
font-size: 0.16rem;
}

@media screen and (max-width: 767px) {
#footer_navi ul {
font-size: 0.12rem;
text-align: center;
margin: auto;
padding-top: 0.2rem;
padding-bottom: 0.2rem;
border-top: 1px solid rgba(255,255,255,0.2);
}
}

#footer_navi li {
display: inline-block;
padding-right: 0.2rem;
}

#footer_navi li:last-child {
padding-right: 0;
}

#footer_navi li a {
color: #FFF;
text-decoration: none;
}

#footer_navi li a:hover {
opacity: 0.7;
}

/* コピーライト */
#footer_navi p {
font-size: 0.12rem;
text-align: right;
opacity: 0.7;
}

@media screen and (max-width: 767px) {
#footer_navi p {
font-size: 0.1rem;
text-align: center;
}
}

#page_top_btn {
font-size: 0.1rem;
font-family: 'Playfair Display', serif;
font-style: italic;
color: #CCC;
text-align: center;
padding-bottom: 0.1rem;
position: relative;
cursor: pointer;
}

#page_top_btn a {
color: #FFF;
text-decoration: none;
}

#page_top_btn div {
background: #FFF;
width: 1px;
height: 30px;
position: absolute;
left: 50%;
top:-40px;
transform: translateX(-50%);
transition: all 0.3s ease;
}

#page_top_btn:hover div {
animation: scrollup .8s 1 cubic-bezier(.645, .045, .355, 1);
}
