@charset "utf-8";

  /* google fonts */
  	@font-face {
	font-family: 'notosansjp';
	font-weight: 400;
	src: url(../font/Noto_Sans_JP/static/NotoSansJP-Regular.ttf) format('truetype');
	}
	@font-face {
	font-family: 'notosansjp';
	font-weight: 500;
	src: url(../font/Noto_Sans_JP/static/NotoSansJP-Medium.ttf) format('truetype');
	}
	@font-face {
	font-family: 'notosansjp';
	font-weight: 600;
	src: url(../font/Noto_Sans_JP/static/NotoSansJP-Bold.ttf) format('truetype');
	}
	@font-face {
	font-family: 'notosansjp';
	font-weight: 900;
	src: url(../font/Noto_Sans_JP/static/NotoSansJP-Black.ttf) format('truetype');
	}

	@font-face {
	font-family: 'notoserifjp';
	font-weight: 400;
	src: url(../font/Noto_Serif_JP/static/NotoSerifJP-Regular.ttf) format('truetype');
	}
	@font-face {
	font-family: 'notoserifjp';
	font-weight: 500;
	src: url(../font/Noto_Serif_JP/static/NotoSerifJP-Medium.ttf) format('truetype');
	}
	@font-face {
	font-family: 'notoserifjp';
	font-weight: 600;
	src: url(../font/Noto_Serif_JP/static/NotoSerifJP-Bold.ttf) format('truetype');
	}
	@font-face {
	font-family: 'notoserifjp';
	font-weight: 900;
	src: url(../font/Noto_Serif_JP/static/NotoSerifJP-Black.ttf) format('truetype');
	}



  /* ① デフォルトのヘッダー高さ（PC） */
  :root {
	--header-height: 120px;
  }

  /* ② ブレイクポイントでヘッダー高さを上書き */
  @media (max-width: 1300px) {
	:root {
	  --header-height: 144px;
	}
  }

  @media (max-width: 1024px) {
	:root {
	  --header-height: 100px; /* 実際のヘッダー高さに合わせて */
	}
  }

  @media (max-width: 768px) {
	:root {
	  --header-height: 50px; /* SP時のヘッダー高さ */
	}
  }

  /* ③ アンカー遷移時のオフセットハック */
  :target::before {
	content: "";
	display: block;
	height: var(--header-height);
	margin-top: calc(var(--header-height) * -1);
	visibility: hidden;
  }

  /* 以下、既存のリセット／ベーススタイル… */

/* CSS Document */
/* ------------------------------------------------------------------------ */

/*  Reset

/* ------------------------------------------------------------------------ */

sub {
	vertical-align: baseline;
	font-size: smaller;
  }

html {
	overflow-y	: scroll;
	height		: 100%;
	font-size	: 62.5%;
	-webkit-text-size-adjust: 100%;
}

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,
pre,form,fieldset,p,blockquote {
	margin 	: 0;
	padding : 0;
}

fieldset {
	display	: inline;
}

address,caption,cite,code,dfn,em,strong,th,var {
	font-style : normal;
}

body/**/table {
	line-height	: 1.5;
}

q:before,
q:after {
	content : '';
}

object,embed {
	vertical-align : top;
}

hr,legend	{
	display : none;
}

h1,h2,h3,h4,h5,h6 {
	font-size : 100%;
}

img,abbr,acronym,fieldset {
	border : 0;
}

li {
	list-style-type : none;
}

img[usemap] {
	border		: none;
	height		: auto;
	max-width	: 100%;
	width		: auto;
}

img {
	border		: 0;
	max-width	: 100%;
}

i {
	padding	: 5px 5px 2px 0;
}

p {
	word-break	: break-all;
}

/* Flexible Images */
img{
    max-width	: 100%;
    height		: auto;
    width /***/	: auto;
}

submit	{ -webkit-appearance : none;}

/* ------------------------------------------------------------------------ */

/*  Basic Style

/* ------------------------------------------------------------------------ */

body {
	margin		: 0;
	padding		: 0;
	height		: 100%;
	font-family	: 'notosansjp', "Noto Sans JP", sans-serif;
	font-size	: 1.2rem;
	font-size	: 12px;
	line-height	: 1.5;
	text-align	: center;
	color		: #050505;
	-webkit-text-size-adjust	: 100%;
	font-smoothing	: auto;
}

body *,
body *:before,
body *:after {
    box-sizing: border-box;
}

#wrap{
	margin		: 0 auto;
	text-align	: left;
}

body > #wrap { height : auto;}


@media screen and (max-width: 1440px) {
	html {
		font-size: 16px;
	}
}

/* Link
--------------------------------------------------------------------------- */
.opacity a img{
	transition: .3s;
}
.opacity a:hover img{
	opacity: 0.85;
}

a:link	{
	text-decoration	: none;
	color			: #00F;
}

a:visited	{
	text-decoration	: none;
	color			: #941D55;
}

a:hover	{
	text-decoration	: none;
}


/* ------------------------------------------------------------------------ */

/* Hedaer

/* ------------------------------------------------------------------------ */

/* body.nav-open {
	overflow: hidden;
  } */

header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 120px;
	background-color: #fff;

	z-index: 99;
}

header .inner{
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	max-width: 1920px;
	margin-inline: auto;
}

header .inner h1 a{
	display:inline-block;
	margin-left: 50px;
}

header .inner h1 a img{
	width: min(18vw ,278px);
	height: auto;
	min-width: 233px;
}

header .inner nav {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap: 20px;
}

header .inner nav .usually ul{
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 14px;
}

header .inner nav .usually ul li{
	padding: 0 23px;
	border-right: 1px solid #707070;
	line-height: 21px;
}

header .inner nav .usually ul li:last-child{
	border-right:none;
}


header .inner nav .usually ul li a{
	color: #050505;
	font-size: clamp(14px, 1.03vw, 17px);
	font-weight: 500;
	letter-spacing: 0.064em;
	transition: .3s;
}
header .inner nav .usually ul li a:hover{
	color: #36B969;
}

header .inner nav .exception{
	margin-left: auto;
}


header .inner nav .exception ul{
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

header .inner nav .exception ul li:first-of-type{
	flex-shrink: 0;
}

header .inner nav .exception ul li{
	height: 100px;
	width: 156px;
}

header .inner nav .exception ul li a{
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 15px 10px;
	box-sizing: border-box;
	height: 100%;
	background-color: #36B969;
	color: #fff;
	font-size: clamp(14px, 1.1vw, 17px);
	font-weight: bold;	
	transition: .3s;
}

header .inner nav .exception ul li:first-of-type a{
	background: url(../../img/specialbtn_bg.jpg) no-repeat center center/cover;
	background-color: initial;
}

header .inner nav .exception ul li:nth-of-type(3) a{
	background-color: #1FA27E;
}

  @media (max-width: 1365px){

	header .inner nav .exception ul li{
		width: 140px;
	}
  }

header .inner nav .exception ul li a:hover img{
	opacity: 0.85;
}

/* ハンバーガーボタン */
.nav-toggle {
	display: none;        /* PC時は隠す */
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	width: 40px;
	height: 30px;
	flex-direction: column;
	justify-content: space-between;
  }
  .nav-toggle span {
	display: block;
	height: 4px;
	background-color: #36B969;
	border-radius: 2px;
	transition: transform 0.3s ease;

  }

  /* グローバルナビ */
  .global-nav {
	display: flex;
	align-items: center;
  }

  @media (max-width: 1225px) {
	header .inner {
		display: block;
		margin-inline:auto;
		position: relative;
	}
	header .inner nav {
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
		position: absolute;
		top: 25px;
		width: 100%;
	}

	header .inner nav  .exception{
		position: relative;
		top: -25px;
	}



	header .inner nav .usually ul li{
		padding:  0 17px;
	}

	header .inner nav .usually ul li:last-child {
		padding: 0 0 0 17px;
	}
	header .inner h1 a {
		margin-top: 10px;
		margin-left: 10px;
	}
}

  @media (max-width: 1024px) {
	/* ハンバーガーボタンを表示 */
	.nav-toggle {
	  display: flex;

	  width: 40px;
	  height: 30px;
	  z-index: 100;
	  position: relative;
	}

	/* 通常の nav を閉じた状態で非表示に */
	.global-nav {
	  position: absolute;
	  top: 100%;
	  left: 0;
	  width: 100%;
	  background: #fff;
	  flex-direction: column;
	  transform: scaleY(0);
	  transform-origin: top;
	  z-index: 100;
	}

	.nav-toggle span {
		width: 100%;
		height: 20px;
		height: 2px;
		background-color: #36B969;
  }

	/* 開いたとき */
	.global-nav.open {
	  transform: scaleY(1);
	  padding-bottom: 10px;
	  top: 90px;
	  position: fixed;
	  width: 100%;
	  transition: transform 0.3s ease;
	  box-shadow: 0 4px 4px -2px rgba(0, 0, 0, 0.2);

	}

	.active span:nth-child(1) {
		transform: rotate(45deg) translateY(12px) translateX(10px);
		transition: transform 0.3s ease;
	}
	.active span:nth-child(2) {
		opacity: 0;
		transition: transform 0.3s ease;
	}
	.active span:nth-child(3) {
		transform: rotate(-45deg) translateY(-9px) translateX(8px);
		transition: transform 0.3s ease;
	}

	header{
		height: auto;
	}

	header .inner nav .usually{
		width: 85%;
		margin: 0 auto;
	}

	header .inner nav .usually ul{
		width: 100%;
		margin-bottom: 0;
		margin-right: 56px;
	}
	header .inner nav  .usually ul li{
		width: 100%;
		border-right: none;
		border-bottom: 1px solid #707070;
		padding: 20px 0;
		margin: 0;
	}

	header .inner nav .usually ul li:last-child {
		padding: 20px 0;
		margin-bottom: 10px;
	}

	header .inner nav  .exception {
		position: relative;
		top: 0;
		width: 85%;
		margin: 0 auto;
	}
	header .inner nav .exception ul{
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: row;
		column-gap: 10px;
		width: 100%;
		margin-bottom: 0;
		margin-right: 56px;
	}
	header .inner nav .exception ul li{
		width: auto;
		border-right: none;
		padding: 0px 0;
		margin: 0;
	}




	/* 内部の ul は縦並びに */
	.global-nav .usually ul,
	.global-nav .exception ul {
	  display: flex;
	  flex-direction: column;
	  margin: 0 !important;
	}
	.global-nav li {
	  margin: 10px 0;
	  text-align: center;
	}

	header .inner{
		width: 85%;
		margin: 10px auto 10px;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	header .inner h1 a img a{
		margin: 0;
	}
  }

  @media screen and (max-width: 768px) {
	header .inner{
		width: 95%;
		margin-inline: auto;
		margin-top: 5px;
		margin-bottom: 5px;
	}
	header .inner h1 a img{
		width: 139px;
		height: auto;
	}
	.global-nav.open{
		top: 46px;
	}

	.nav-toggle{
		margin-right: 10px;
		width: 24px;
		height: 20px;
		z-index: 100;
		position: relative;
	}
	.nav-toggle span {
		width: 100%;
		height: 20px;
		height: 2px;
		background-color: #36B969;
  }

  .active span:nth-child(1) {
	transform: rotate(45deg) translateY(10px) translateX(3px);
	transition: transform 0.3s ease;
}
.active span:nth-child(2) {
	opacity: 0;
	transition: transform 0.3s ease;
}
.active span:nth-child(3) {
	transform: rotate(-45deg) translateY(-10px) translateX(3px);
	transition: transform 0.3s ease;
}

}




/* ------------------------------------------------------------------------ */

/* Navigation

/* ------------------------------------------------------------------------ */




/* ------------------------------------------------------------------------ */

/* Contents

/* ------------------------------------------------------------------------ */

#mainBlock {
	clear : both;
}

/* ------------------------------------------------------------------------ */

/* Footer

/* ------------------------------------------------------------------------ */

.bioContact{
	display: flex;
	gap: 35px;
	justify-content: center;
}

.bioContact-ttl{
	font-size: 31px;
    font-weight: 500;
    line-height: 47px;
	text-align: center;
	margin-bottom: 30px;
	margin-top: 156px;
}

.bioContact p a {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-right: auto;
	margin-left: auto;
	padding-right: 83px;
	padding-left: 26px;
	color: #fff;
	background-color: #838383;
	opacity: 0.76;
	font-size: 24px;
	font-weight: 500;
	border-radius: 68px;
	width: 552px;
	height: 119px;
	line-height: 60px;
	transition: .3s;
}

.bioContact p:nth-of-type(2) a{
	background-color: #404040;
}
.bioContact p a::after {
	content: "";
	display: block;
	position: absolute;
	width: 24px;
	height: 18px;
	background: url(../img/icon/icon_contact.svg) no-repeat center center/cover;
	transition: all 0.3s ease;
	top: calc(50% - 7.5px);
	right: 62px;
}
.bioContact p a:hover{
	opacity: .6;
}

@media (max-width: 1000px) {
	.bioContact {
	  width: 85%;
	  margin-inline: auto;
	  display: block;
	}
	.bioContact p {
	  font-size: 26px;
	  line-height: 70px;
	}

	.bioContact p:nth-of-type(2) a{
		margin-top: 65px;
	}
}
@media (max-width: 768px) {
	.bioContact {
		width: calc(320 / 350 * 100%);
	  margin-inline: auto;
	}

	.bioContact-ttl{
		font-size: 18px;
        line-height: 47px;
        text-align: center;
	}


	.bioContact p a {
	  padding: 0 0px;
	  padding-right: 40px;
	  height: 80px;
	  font-size: 14px;
	  width: 330px;
	  line-height: 80px;
	}

	.bioContact p a::after{
		right: 25px;
		width: 19px;
		height: 14px;
		top: calc(50% - 7px);
	}
}

@media screen and (max-width: 500px) {
	.bioContact {
		width: calc(320 / 350 * 100%);
	  margin-inline: auto;
	}

	.bioContact p a {
		justify-content: flex-start;
	  padding: 0 0px;
	  padding-right: 40px;
	  height: 80px;
	  font-size: 13px;
	  margin-top: 100px;
	  line-height: 80px;
	  line-height: 1.5;
	  padding: 10px 25px 10px;

	}

	.bioContact p a::after{
		right: 25px;
		width: 19px;
		height: 14px;
		top: calc(50% - 7px);
	}
}
@media screen and (max-width: 340px) {
	.bioContact p a {
		padding: 10px 50px 10px 10px;
	}


}

footer {

	background-color: #e0e0e0;
}
footer .inner {
	max-width: 1920px;
	width: 80%;
	margin-top: 195px;
	margin-inline: auto;
	padding-top: 153px;
	padding-bottom: 100px;
	border-bottom: 1px solid #000;
}
footer .inner .footer-flex {
	max-width: 1338px;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
  footer .inner .footer-flex a {
	color: #000;
  }
  footer .inner .footer-flex .footer-company img {
	width: 343px;
	height: 52px;
	-o-object-fit: cover;
	   object-fit: cover;
  }
  footer .inner .footer-flex .footer-company .footer-address {
	margin-top: 35px;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.114em;
	line-height: 30px;
  }

  footer .inner .footer-flex .footer-company .footer-address .fax{
	display: inline-block;
	margin-left: 15px;
  }
  footer .inner .footer-flex .footer-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
  }
  footer .inner .footer-flex .footer-nav ul li {
	position: relative;
	margin-top: 25px;
  }
  footer .inner .footer-flex .footer-nav ul li a {
	display: block;
	padding: 0 20px 0 0;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: #000;
	text-decoration: none;
	text-align: left;
	white-space: nowrap;
  }
  footer .inner .footer-flex .footer-nav ul li a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 7px;
	height: 13px;
	background: url("../img/icon/icon_footer.svg") no-repeat center/cover;
	transform: translateY(-50%);
	transition: transform 0.3s ease;
  }
  footer .inner .footer-flex .footer-nav ul li a:hover::after {
	transform: translateY(-50%) translateX(3px);
  }
  footer .footer-copy {
	display: block;
	margin-top: 27px;
	text-align: center;
	padding-bottom: 116px;
	font-size: 1.1rem;
	font-weight: 500;
	letter-spacing: .1em;
  }

  @media (max-width: 1000px) {
	footer .inner {
	  width: 90%;
	  padding: 50px 20px;
	}
	footer .inner .footer-flex {
	  width: 100%;
	  display: block;
	  margin-top: 50px;
	}
	footer .inner .footer-flex .footer-nav {
	  margin-top: 50px;
	}

	footer .inner .footer-flex .footer-company .footer-address .fax{
		margin-left: 10px;
	  }
	footer .inner .footer-flex .footer-nav ul li a {
	  padding: 0;
	  display: inline;
	}
	footer .inner .footer-flex .footer-nav ul li a::after {
	  left: 180px;
	}
  }

  @media (max-width: 500px) {
	footer .inner {
	  width: 90%;
	  padding: 30px 0 ;
	}
	footer .inner .footer-flex {
	  width: 100%;
	  display: block;
	  margin-top: 50px;
	}

	footer .inner .footer-flex .footer-company img {
	  width: 90%;
	  height: auto;
	}
	footer .inner .footer-flex .footer-nav {
	  margin-top: 50px;
	}
	footer .inner .footer-flex .footer-nav ul li{
		margin-top: 10px;
	}
	footer .inner .footer-flex .footer-nav ul li a {
	  padding: 0;
	  display: inline;
	}
	footer .inner .footer-flex .footer-nav ul li a::after {
	  left: 180px;
	}

	footer .footer-copy{
		font-size:12px;
		padding-bottom: 20px;
	}

  }