@charset "UTF-8";

/*アイコンフォント*/
@import url("../font/icomoon/style.css");
@import url("../font/fontawesome/brands.css");
@import url("../font/fontawesome/solid.css");

/*Noto Serif*/
@font-face {
	font-family: "Noto Serif JP";
	font-style: normal;
	font-weight: 400;
	src: url("../font/Noto Serif/NotoSerifCJKjp-Regular.woff") format("woff");
}
@font-face {
	font-family: "Noto Serif JP";
	font-style: normal;
	font-weight: 500;
	src: url("../font/Noto Serif/NotoSerifCJKjp-Medium.woff") format("woff");
}
@font-face {
	font-family: "Noto Serif JP";
	font-style: bold;
	font-weight: 600;
	src: url("../font/Noto Serif/NotoSerifCJKjp-SemiBold.woff") format("woff");
}
@font-face {
	font-family: "Noto Serif JP";
	font-style: bold;
	font-weight: 700;
	src: url("../font/Noto Serif/NotoSerifCJKjp-Bold.woff") format("woff");
}

/*Noto Sans*/
@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 300;
	src: url("../font/Noto Sans/NotoSansJP-Thin.woff") format("woff");
}
@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 400;
	src: url("../font/Noto Sans/NotoSansJP-Regular.woff") format("woff");
}
@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 500;
	src: url("../font/Noto Sans/NotoSansJP-Medium.woff") format("woff");
}
@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 700;
	src: url("../font/Noto Sans/NotoSansJP-Bold.woff") format("woff");
}


/*base*/
html { font-size:62.5%; }
main { display:block; }
img { width:auto; max-width:100%; height:auto; }
a{ color: #000; text-decoration:underline; transition: all .3s ease; }
a:visited{ color: #4f726c; }
button{ color: #000; text-decoration:underline; transition: all .3s ease; font-family: Noto Sans JP, sans-serif; }
.smtOnly{ display:none!important; }
br.smt{ display:none; }

/*隠しテキスト*/
.hiddenText{
	width:0px;
	height:0px;
	overflow:hidden;
	position:absolute;
}

/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}

select::-ms-expand { display: none; }
input[type="button"]{ cursor: pointer; }

form, input[type="email"], input[type="number"], input[type="password"], input[type="tel"], input[type="text"], input[type="url"], .border-box {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
input , select , textarea { padding:6px; border: 1px #ccc solid; border-radius: 3px; font-family: 'Noto Sans JP', sans-serif; }


@media screen and (max-width: 800px) {
	.pcOnly{ display:none!important; }
	.smtOnly{ display:block!important; }
	br.smt{ display:block; }
}
input:focus,
select:focus,
textarea:focus,
a:focus,
a:focus img,
button:focus {
	outline: none;
}
::selection {
	background: #6c8678;
	color: #FFF;
}
::-moz-selection {
	background: #6c8678;
	color: #FFF;
}

body{
	min-width: 100%;
	margin: 0;
	padding: 0;
	overflow-x: hidden;
	color: #000;
	font-size:1.6rem;
	line-height:1.7;
	font-weight: 400;
	font-family: Noto Sans JP, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-moz-osx-font-smoothing: auto | grayscale; /*Firefox用*/
	background:#fff ;
	position: relative;
}

/*========/ header /========*/
header{
	height:62px;
	padding:25px 120px 25px 210px;
	color:#fff;
	background:#000;
}
header h1{
	position: fixed;
	top:20px;
	left:20px;
	z-index: 1000;
}
header h1 + section{ display:flex; justify-content: flex-end; }
header .navi{ margin-top:10px; }
header section a{ color:#fff; }

/*SNSボタン*/
.snsBlock{
	margin-right:1.5em;
	display:flex;
	list-style:none;
}
.snsBlock li + li{ margin-left:.5em; }
.snsBlock a{
	padding:0 1em;
	display:block;
	border:1px #fff solid;
	border-radius:3px;
	color:#fff;
	font-size:1.4rem;
	text-decoration:none;
}
.snsBlock .twitter a::before{
	content:"\f099";
	margin-right:.6em;
	display:inline-block;
	font-size:1.3rem;
	line-height:1;
	font-weight:400;
	font-family: 'Font Awesome 6 Brands';
}
.snsBlock .instagram a::before{
	content:"\f16d";
	margin-right:.6em;
	display:inline-block;
	font-size:1.6rem;
	line-height:1;
	font-weight:400;
	font-family: 'Font Awesome 6 Brands';
}

/*文字サイズ*/
header section dl{
	display:flex;
	justify-content: flex-end;
	font-size:1.4rem;
}
header section dt,
header section dd{ speak: none; }
header section dt::after{ content:"："; margin-right:.8em; }
header section dd + dd::before{ content: "/"; margin:0 .8em; }
header section dd a{
	display:inline-block;
	color:#fff;
	text-decoration:none;
	font-size:1.4rem;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
	cursor: text;
	background:none;
	position: relative;
}
header section dd a:visited{ color: #efefef; }
header section dd a::after{
	content:"";
	width:100%;
	height:1px;
	display:block;
	opacity:0;
	background:#fff;
	position: absolute;
	bottom:3px;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
}
header section dd.off a{ color:#fff; cursor: pointer; }
header section dd.off a::after{ opacity:1; background:#fff; }

/*言語切り替え 20230622*/
.language:before{
	content:"";
	width:16px;
	height:26px;
	margin-right:5px;
	display:block;
	background:url(../img/language.svg) no-repeat center / 16px 16px;
}
.language{
	margin-left:4em;
	display:flex;
	list-style:none;
}
.language a{
	color:#fff;
	text-decoration:underline;
	cursor:pointer;
}
.language a:hover{
	color:#ef6b36;
}
.language > dl + dl{
	margin-left:0.5em;
}
/*グローバルナビ*/
header .navi ul{
	list-style:none;
	display:flex;
	justify-content: flex-end;
	font-size:1.5rem;
}
header .navi ul li + li{ margin-left: 2em; }
header .navi ul li a{
	display:block;
	text-decoration:none;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
	position: relative;
}
header .navi ul li a:visited{ color: #efefef; }
header .navi ul li a::after{
	content:"";
	width:0;
	height:1px;
	display:block;
	background:#fff;
	position: absolute;
	bottom:3px;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
}
header .navi ul li a.active::after{ width:100%; right:0; }

@media screen and (max-width: 1400px) {
	header .navi ul li + li{ margin-left: 1em; }
}
@media screen and (max-width: 1280px) {
	header{ padding:25px 110px 25px 180px ; }
	header h1 img{ width:150px; height:150px; }
	header .navi ul{ font-size:1.4rem; }
}
@media screen and (max-width: 1175px) {
	header{ padding:25px 110px 25px 150px ; }
	header h1 img{ width:120px; height:120px; }
	header section dd a{ font-size:1.3rem; }
	header .navi ul{ font-size:1.3rem; }
}
@media screen and (max-width: 1085px) {
	header{ height:20px; padding:25px 120px 25px ; }
	header .navi{ display:none; }
}
@media screen and (max-width: 1040px) {
	header{ height:55px; padding:25px 120px 25px ; }
	header h1 + section{ flex-direction: column }
	.snsBlock{ margin:0 0 10px 0; justify-content: flex-end; }
	.language{ display:none; }
}
@media screen and (max-width: 680px) {
	header{ padding:25px 90px 25px ; }
	header h1{ top:10px; left:10px; }
	header h1 img{ width:110px; height:110px; }
	header section dt::after{ margin-right:.0; }
	header section dd + dd::before{ content: "/"; margin:0 .4em; }
}
@media screen and (max-width: 510px) {
	.snsBlock a{ padding:0 .5em; font-size:1.2rem; }
	.snsBlock .facebook a::before{ margin-right:.4em; font-size:1.0rem; }
	.snsBlock .instagram a::before{ margin-right:.4em; font-size:1.2rem; }
}
@media screen and (max-width: 430px) {
	.snsBlock .facebook a::before{ display:none; }
	.snsBlock .instagram a::before{ display:none; }
}
@media screen and (max-width: 410px) {
	header section dd a{ font-size:1.2rem; }
	header h1{ top:10px; left:10px; }
	header h1 img{ width:80px; height:80px; }
}
@media screen and (max-width: 375px) {
	header{ height:0; padding:0; }
	header section{ display:none; }
}


/*========/ nav /========*/
/*ボタン*/
.hamburger{
	width:73px;
	height:73px;
	border:1px #fff solid;
	border-radius:50%;
	background:#000;
	position: fixed;
	top:20px;
	right:20px;
	z-index: 1000;
	cursor: pointer;
	speak: none;
}
.hamburger span{
	width:36px;
	height:1px;
	display:block;
	background:#fff;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
	position: absolute;
	top:28px;
	left:calc( 50% - 18px );
}
.hamburger span + span{ margin-top:7px; }
.hamburger::after{
	content:"MENU";
	display:block;
	color:#fff;
	font-size:11px;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
	position: absolute;
	bottom:15px;
	left:0;
	right:0;
}

.hamburger.active::after{
	content:"CLOSE";
	display:block;
	color:#fff;
	font-size:11px;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
	position: absolute;
	bottom:15px;
	left:0;
	right:0;
}
.hamburger.active span{
	width:20px;
	left:calc( 50% - 10px );
	-webkit-transform: translateY(3px) rotate(45deg);
	-ms-transform: translateY(3px) rotate(45deg);
	transform: translateY(3px) rotate(45deg);
}
.hamburger.active span + span{
	margin-top:0;
	-webkit-transform: translateY(3px) rotate(-45deg);
	-ms-transform: translateY(3px) rotate(-45deg);
	transform: translateY(3px) rotate(-45deg);
}

/*サイトマップ*/
header nav{
	width: 100%;
	height: 100vh;
	display:flex;
	overscroll-behavior-y: contain;
	overflow-y: auto;
	opacity:0;
	color:#fff;
	font-family: "Noto Serif JP",'Hiragino Mincho Pro',serif;
	background:#000;
	position: fixed;
	top: 0;
	left:0;
	z-index: -800;
	transition: all .5s ease;
	-webkit-transition all .5s ease;
}
header nav.active{ opacity:1; z-index: 800; }
header nav a{
	color:#fff;
	text-decoration:none;
	opacity:.9;
	position: relative;
	z-index:50;
}
header nav a:visited{ color: #efefef; }
header nav a:visited:hover{ color: #ef6b36; }

/*画像*/
header nav .sitemap-img{
	min-width:40%;
	height:100vh;
}
header nav .sitemap-img img{
	width:40%;
	height:100vh;
	opacity:.5;
	filter: contrast(1.5);
	object-fit: cover;
	overflow:hidden;
	position: fixed;
	top: 0;
}
/*リンク*/
header nav .sitemap{
	width:100%;
	margin: auto;
	padding:20px 0;
	display:flex;
	justify-content: center;
	gap:100px;
}
header nav .sitemap > ul{
	max-width:300px;
}
header nav .sitemap ul > li a::before{
	content:"\e900";
	margin-right:2.5em;
	font-family: "icomoon";
	zoom:50%;
	position: relative;
	top:-5px;
	speak: none;
}
header nav .sitemap ul > li + li{
	margin-top:2em;
}
header nav .sitemap ul ul{
	margin:.5em 0 0 2em;
	font-size:1.4rem;
}
header nav .sitemap ul ul > li + li{
	margin-top:.5em;
}
/* sns */
header nav .sitemap ul > li.sns a{
	padding:0 1em;
	display:block;
	border:1px #fff solid;
	border-radius:3px;
	text-align:center;
}
header nav .sitemap ul > li.sns a::before{ display:none; }
header nav .sitemap ul > li.sns + li.sns{ margin-top:1em; }


@media screen and (max-width: 1100px) {
	header nav .sitemap{ margin-left:80px; }
}
@media screen and (max-width: 960px) {
	header nav .sitemap{ margin: auto 40px; padding:0; }
}
@media screen and (max-width: 890px) {
	header nav .sitemap{ margin: auto 40px auto 20px; padding:0; gap: 70px; }
}
@media screen and (max-width: 825px) {
	header nav .sitemap ul > li a::before{ margin-right:1.5em; }
}
@media screen and (max-width: 785px) {
	header nav{ display:block; }
	header nav .sitemap-img{ width:100%; height:100vh; position: fixed; top: 0; left:0; }
	header nav .sitemap-img img{ width:100%; height:100vh; opacity:.15; }
	header nav .sitemap{ width:auto; margin-top: 250px; padding-bottom:100px; gap:100px ; }
}
@media screen and (max-width: 680px) {
	.hamburger{ width:65px; height:65px; top:10px; right:10px; }
	.hamburger span{ width:30px; top:24px; left:calc( 50% - 15px ); }
	.hamburger::after{ bottom:10px; }
	.hamburger.active::after{ bottom:10px; }
	header nav .sitemap{ margin-top: 150px; gap:10%; padding-right:30px; }
}
@media screen and (max-width: 470px) {
	header nav .sitemap{ display:block; }
	header nav .sitemap > ul + ul{ margin-top: 2em; }
}
@media screen and (max-width: 410px) {
	header nav .sitemap{ margin-top: 120px; }
}

/*========/ pagetop /========*/
.pagetop{ padding:170px 0 140px 0 ; text-align:center; position: relative; }
.pagetop::after {
	content:"";
	width:100%;
	height:48px;
	display:block;
	background:url( ../img/bar.png ) center center;
	position: absolute;
	bottom:0;
	speak: none;
}
.pagetop a{
	font-size:1.3rem;
	text-decoration:none;
	position: relative;
}
.pagetop a::before{
	content:"";
	display:block;
	width:1px;
	height:70px;
	background: #000;
	position: absolute;
	top:-90px;
	left:50%;
	transition: all .3s ease;
	-webkit-transition all .3s ease;
	speak: none;
}
.pagetop a::after {
	content: "";
	width: 1px;
	height: 70px;
	position: absolute;
	top:-90px;
	left:50%;
	background: #eee;
	animation: sdl 2s cubic-bezier(1, 0, 0, 1) infinite;
	speak: none;
}
@keyframes sdl {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
	50% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	50.1% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	100% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
}


/*========/ footer /========*/
footer{
	padding:70px 0 35px ;
	text-align:center;
	color:#fff;
	font-size:1.4rem;
	background:#1a1a1a;
	position: relative;
	z-index:0;
}
footer::before{
	content:"";
	width:84px;
	height:84px;
	display:block;
	background:url(../img/bar-icon.png) no-repeat;
	position: absolute;
	top:-70px;
	left:calc( 50% - 42px );
	z-index:30;
}
footer h2{
	margin:40px 0 0 0;
	font-size:1.4rem;
	font-weight:400;
}
footer dl{
	display:flex;
	justify-content: center;
}
footer dl dt::after{
	content:"：";
	speak: none;
}
footer small{
	margin-top:75px;
	display:block;
	font-size:1.2rem;
}
footer a{ color:#fff; text-decoration:under-line; }
footer a:visited{ color: #e9cd4c; }
footer a:visited:hover{ color: #ef6b36; }


@media screen and (max-width: 390px) {
	footer{ font-size:1.3rem; }
	footer h1 img{ max-width:70%; }
	footer h2{ font-size:1.2rem; }
	footer small{ font-size:1.1rem; }
}


/*========================
			PC：hover
========================*/
@media screen and (min-width: 750px) {
	a:hover{ color: #ef6b36; text-decoration:none; }
	button:hover{ color: #ef6b36; text-decoration:none; }
	/*header*/
	header h1 a:hover{ opacity:.75; }
	/*文字サイズ*/
	header section dd a:hover{ color: #fff; }
	header section dd.off a:hover{ color:#ef6b36; }
	header section dd.off a:hover::after{ color: #ef6b36; opacity:0; background:#ef6b36; }
	header .navi ul li a:hover::after{ width:100%; background: #ef6b36; right:0; }
	header .navi ul li a.active:hover::after{ width:0; left:0; }
	header .navi ul li a:visited:hover{ color: #ef6b36; }
	/*nav ボタン*/
	.hamburger:hover span { background:#aaa; }
	.hamburger:hover::after { color:#aaa; }
	.hamburger:hover span + span{ width:28px; }
	.hamburger.active:hover span + span{ width:20px; }
}


/*20230407 メールアドレスを画像化する*/
.addresImg{
	height:18px;
	vertical-align:middle;
}
@media screen and (max-width: 680px) {
.addresImg{
	height:16px;
}
}