@charset "UTF-8";
@import url("reset.css");
@import url('https://fonts.googleapis.com/css2?family=Libertinus+Serif+Display&family=Zen+Old+Mincho&family=Noto+Sans+JP:wght@100..900&display=swap');

:root {
  --primary-font:"Noto Sans JP","游ゴシック体", YuGothic, 游ゴシック Medium, Yu Gothic Medium, 游ゴシック, Yu Gothic, Meiryo, sans-serif;
  --cormorant-infant-font: "Cormorant Infant", serif;
  --yu-mincho-font: "游明朝体", "游明朝", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "MS PMincho", serif;
	--english:"sofia-pro", sans-serif;
  --primary: #333333;
  --primary-light: #bbbbbb;
  --primary-dark: #1e0405;
  --secondary: #999;
  --secondary-dark: #605858;
  --primary-background-color: #231815;
  --accent-color: #8b7246;
  --border-primary: #dddddd;
  --border-primary-light: #e5e5e5;
  --border-second: #cccccc;
  --white: #ffffff;
  --black: #000;
  --hover-button-light: #f5f5f5;
  --background-red: rgba(218, 49, 12, 0.05);
  --red: #da310c;
  --blue: #0070bf;
--blue02: #01245D;
  --green: #6fba2c;
  --orange: #ed6104;
	--gray:#F5F5F5;
	--gray_text:#B1B1B1;
}

html{
	font-size:10px;
}

body{
	font-family:var(--primary-font);
	font-weight: 600;
	color: #000000;
	line-height: 1.75;
	margin:100px 0 0 0;
	position: relative;
	font-size:1.6rem;
	background-color: #fff;
	overflow-x: hidden;
}

body.nosc{
	overflow: hidden;
}

section a.bana{
	width:min(100%,380px);
	height: 65px;
	display: flex;
	justify-content:space-between;
	align-items: center;
	background: #02245d;
	color: #fff;
	font-weight: 700;
	border-radius: 5px;
	border: 2px solid #02245d;
	 transition: ease-in-out 0.3s;
	padding:0 10px;
	text-align: center;
}

section a.bana span{
	flex:1;
}

section a.bana::after{
	font: var(--fa-font-solid);
	content: "\f105"; 
	display: inline-block;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (min-width: 981px) {
	section a.bana:hover{
		background-color: #fff;
		color:#02245d;
	}
}
@media screen and (max-width: 980px) {
	body{
		margin:70px 0 0 0;
	}
}

@media screen and (max-width: 430px) {
	body{
		margin:60px 0 0 0;
	}
}
/*---------------------------------------



	ヘッダー



---------------------------------------*/

header{
	width:100%;
	height: 100px;
	background-color: #fff;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9998;
	padding:0 120px 0 20px;
}

#h_logo{
	width:250px;
	flex-shrink: 0;
}

#h_logo a{
	width:100%;
	height: 100%;
	display: flex;
	align-items: center;
	line-height: 0;
}

#h_logo img{
	width:100%;
	height: auto;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/
@media screen and (max-width: 980px) {
	header{
		height: 70px;
		padding:0 75px 0 20px;
	}
	#h_logo{
		width:180px;
	}
}

@media screen and (max-width: 430px) {
	header{
		height: 60px;
		padding:0 62px 0 10px;
	}
}


/*---------------------------------------


	メニュー


---------------------------------------*/

#menu{
	flex:1;
	display: flex;
	/*flex-direction: column;*/
	justify-content: flex-end;
	align-items: center;
	flex-wrap:wrap;
	gap:5px 20px;
}

#h_en{
	background-color: var(--blue02);
	color:#fff;
	font-size:700;
	padding:3px 15px;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	gap:15px;
	line-height: normal;
	transition: ease-in-out 0.3s;
}

#menu ul{
	width:100%;
	flex:1;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap:20px;
}


#menu li{
	width: auto;
	 
}

#menu li a{
	display: grid;
	position: relative;
	color:var(--blue02);
	font-weight: 700;
	font-size:1.6rem;
	line-height: normal;
	align-items: center;
	text-align: center;
}
#menu li a span{
	 grid-area: 1 / 1;
    transition: opacity .3s ease;
    white-space: nowrap;
     width: 100%;
}

#menu li a span.en{
	font-family: "sofia-pro", sans-serif;
    opacity: 1;
}

#menu li:nth-of-type(7) a span.en{
	font-size:1.5rem
}

#menu li a span.ja {
    opacity: 0;
	font-size:1.4rem;
	line-height: 1;
}

#menu li a:hover span.en{
    opacity: 0;
}

#menu li a:hover span.ja {
    opacity: 1;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/
@media screen and (min-width: 1300px) {
	#menu ul{
		gap:10px;
	}
}
@media screen and (min-width: 981px) {
	#menu_ico:hover,
	#h_en:hover{
		background-color:#0243AC;
	}
	
	#menu_ico.close:hover{
		background-color:rgba(2,67,172,0.00);
	}
}

@media screen and (max-width: 980px) {
	#menu ul{
		display: none;
	}
	
	#h_en{
		width:70px;
		aspect-ratio:1;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		align-items: center;
		gap:5px;
		border-radius: 0;
		padding:5px 3px;
		line-height:normal;
	}
	
	#h_en span{
		display: none;
	}
	
	#h_en::before{
		content:'';
		width:30px;
		flex:1;
		display: block;
		background-image: url("../images/com/en_ico.png");
		background-size: 100% auto;
		background-repeat: no-repeat;
		background-position: center;
		opacity: 0.5;
	}
}


@media screen and (max-width: 430px) {

	#h_en{
		width:60px;
		aspect-ratio:1;
		font-size:1.2rem
	}
	
}

/*---------------------------------------

	スマホ用

---------------------------------------*/

#menu_ico{
	width:100px;
	aspect-ratio:1;
	background-color: var(--blue02);
	margin-left:20px;
	position: absolute;
	top:0;
	right:0;
	display: flex;
	  flex-direction: column;
	  align-items: center;
	  justify-content: center;
	  cursor: pointer;
	  transition: ease-in-out 0.3s;
}

#menu_ico span{
	 width: 30px;
	height: 2px;
	margin: 4px 0;
	display: block;
	background-color: #ffffff;
	transition: ease-in-out 0.3s;
}

#menu_ico.close{
	position: absolute;
	top:0;
	right:0;
	z-index: 9999;
}

#menu_ico.close span:nth-of-type(1){
	transform: translate3d(0, 5px, 0) rotate(45deg);
}

#menu_ico.close span:nth-of-type(2){
	transform: translate3d(0, -5px, 0) rotate(-45deg);
}

#menu_sp{
	display: none;
	width:100%;
	height: 100dvh;
	background-color: rgba(0, 0, 0, 0.85);
	position: fixed;
	top:0;
	right:0;
	z-index: 9998;
	/*display: none;*/
	 opacity: 1;
    transition: 0.5s;
}

#menu_sp.act{
	opacity:1;
}

#menu_sp .wrap{
	width: min(100%,420px);
	height: 100%;
	position: absolute;
	top:0;
	right:0;
	overflow-y: auto;
  	z-index: 9999;
  	background-color: var(--blue02);
	padding:100px 20px 30px 45px;
	transition: transform 400ms ease 300ms;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transform:translateX(100%);
	opacity: 0;
}

#menu_sp.act .wrap{
	transform: translateX(0);
	opacity: 1;
}

#menu_sp .wrap ul{
	flex:1;
	display: flex;
	flex-direction: column;
	gap:30px;
}

#menu_sp .wrap li{
	display: inline-block;
	font-size:2.1rem;
	color:#fff;
	line-height: normal;
	 transform: translateY(100%);
	opacity: 0;
	/*transition: all 400ms ease 300ms;*/
	transition: all 0.3s;
}

#menu_sp .wrap li.show{
	transform: translateY(0);
	opacity: 1;
}

#menu_sp .wrap li p{
	 opacity: 0.5;
  font-size: 1.7rem;
  font-family: "sofia-pro", sans-serif;
  font-weight: 700;
  transition: ease-in-out 0.3s;
}

#menu_sp .wrap .copyright{
	 font-family: "sofia-pro", sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: rgba(255,255,255,0.4);
  display: inline-block;
  padding-top: 27px;

}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/


@media screen and (max-width: 980px) {
	
	#menu_ico{
		width:70px;
	}
	#menu ul{
		display: none;
	}
	#menu_sp .wrap{
		width:100%;
	}
	
	#sp_logo{
		width:180px;
		position: fixed;
		top:20px;
		letter-spacing: 10px;
		line-height: 0;
	}
	
	#sp_logo img{
		width: 100%;
		height: auto;
	}

}

@media screen and (max-width: 430px) {
	#menu_ico{
		width:60px;
	}
}


/*---------------------------------------



	バナー



---------------------------------------*/

#footer_bana{
	width:100%;
	background-color: var(--gray);
	/*display: flex;
	justify-content: center;*/
	display: grid;
	/*grid-template-columns: repeat(3, 1fr);*/
	grid-template-columns: repeat(auto-fit, 380px);
	justify-content: center;
	gap:20px;
	padding:50px 20px;
}

#footer_bana a{
	display: block;
	width:380px;
	line-height: 0;
}

#footer_bana a img{
	width:100%;
	height: auto;
	border-radius: 5px;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/
@media screen and (min-width: 981px) {
	#footer_bana a img{
		opacity: 1;
		transition: 0.3s;
	}
	
	#footer_bana a:hover img{
		opacity: 0.5;
	}
}

@media screen and (max-width: 430px) {
	#footer_bana{
		display: block;
	}
	#footer_bana a{
		width:min(100%,380px);
		margin-bottom:10px;
	}
	
	#footer_bana a:last-of-type{
		margin-bottom:0;
	}
}



/*---------------------------------------



	フッダー



---------------------------------------*/

footer{
	width:100%;
	padding:0;
	background-color:var(--blue02);
	color:#8293AF;
	padding-bottom:50px;
}

footer nav{
	width:min(100%,1200px);
	margin:0 auto;
	display: flex;
	padding:80px 20px;
}

footer nav dl{
	flex:1;
}

footer nav dt{
	font-family:var(--english);
	font-size:700;
	margin-bottom:10px;
}

footer nav dd{
	color:#fff;
	font-size:1.4rem;
}

footer nav dd li{
	margin-bottom:10px;
}

footer nav dd li a{
	font-weight: 500;
}

#copyright {
  font-family: "sofia-pro", sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  display: flex;
	justify-content: space-between;
	width:min(calc(100% - 40px),1200px);
	margin:0 auto;
}

#copyright small{
	display: block;
	display: inline-block;
}

#top_back{
	display: inline-flex;
	align-items: center;
	gap:10px;
}

#top_back span{
	display: inline-block;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (min-width: 981px) {
	footer nav dd li a{
		opacity: 1;
		transform: 0.3s;
	}
	
	footer nav dd li a:hover{
		opacity: 0.5;
	}
}

@media screen and (max-width: 980px) {
	footer{
		padding-bottom:30px;
	}
	
	footer nav{
		display: block;
		padding:50px 0;
	}
	
	footer nav dt{
		padding:0 20px;
		display: flex;
		justify-content: space-between;
		cursor: pointer;
	}
	
	footer nav dt::after{
		font: var(--fa-font-solid);
		content:"\2b";
		font-size:2.45rem;
		font-weight: bold;
		transform: 0.5s;
	}
	
	footer nav dt.act::after{
		transform: rotate(45deg);
	}
	
	footer nav dd{
		padding:0 20px;
		display: none;
	}
	
	#top_back span{
		display: none;
	}
}

/*---------------------------------------



	Ｌｏａｄｉｎｇ



---------------------------------------*/

#load{
	width:100%;
	height: 100dvh;
	background-color: #fff;
	position: fixed;
	top:0;
	left:0;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

#load img{
	width: 200px;
    height: auto;
	opacity: 0;
	animation: fadeLoop 1.5s ease-in-out infinite;
}

/*---------------------------------------



	メイン



---------------------------------------*/

main{
	width:100%;
	padding:50px 0 100px 0;
}


#content main section{
	width:min(100%,1240px);
	padding:100px 20px 70px 20px;
	margin:0 auto;
}


/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 430px) {
	#content main section{
		padding:80px 20px 0 20px;
	}
}

/*---------------------------------------



	下層ページ



---------------------------------------*/


#content h1,
#content h2{
	width:min(100%,1200px);
	margin:0 auto 30px auto;
	font-size:2.4rem;
	font-weight: 700;
	line-height: normal;
}

#content h2{
	font-size:2.2rem;
	line-height: 1;
	border-bottom:1px solid #CECECE;
	padding-bottom:15px;
	margin:0 auto 50px auto;
}
#content h1 span.en,
#content h2 span.en{
	width:100%;
  font-family: "sofia-pro", sans-serif;
  font-weight: 700;
  font-size: 1.7rem;
  letter-spacing: 0.4px;
	display: inline-block;
  color: #02245d;
  margin-bottom: 10px;
	text-decoration: underline;
	text-decoration-color: var(--red);
	 text-decoration-thickness: 3px;
	text-underline-offset: 5px;
}

#content h2 span.en{
	font-size: 1.4rem;
	text-decoration:none;
	margin-bottom: 0;
	color:var(--gray_text);
}

#content #mainphoto{
	width:100%;
	line-height: 0;
	paddng:0;
}

#content #mainphoto img{
	width:100%;
	height: auto;
	object-fit: cover;
}

/*---------------------------------------



	アニメーション



---------------------------------------*/
@keyframes fadeup {
    0% {
		transform: translateY(30px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes fadeLoop {
    0% {
        opacity: 0.5;
    }
    50% {
        opacity: 1;
    }
	100%{
		 opacity: 0.5;
	}
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 1200px) {
	#content h1{
		padding:0 20px;
	}
}


.acf-field-wysiwyg .acf-editor-wrap iframe {
  min-height: 0 !important;
  height: 20px !important;
}

.acf-field-wysiwyg .wp-editor-container textarea.wp-editor-area {
  height: 20px !important;
}


