@charset "utf-8";
/* --------------------------------------------

	共通

---------------------------------------------- */
@media screen and (min-width:1060px){
.SP {
	display: none;
}
.navOpen-btn {
    display: none;
}
.accordion-btn {
	display: none;
}
}
@media screen and (max-width:1059px){
.PC {
	display: none;
}
a.link_line::before {
	background: none;
	height: 0;
}
}
/* --------------------------------------------

	オーバーレイ

---------------------------------------------- */
@media screen and (min-width:760px){
.menu-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.666);
	z-index: 900;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}
.menu-overlay.show {
	opacity: 1;
	visibility: visible;
	transition-delay: 0s;
}
.menu-overlay:not(.show) {
	transition-delay: 0.2s;
}
}

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

	ヘッダー背景

---------------------------------------------- */
.header {
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100%;
	margin: 0 auto;
	background-color: var(--c-white);
	transition: padding 0.3s ease;
}
.header__contents {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: .5em .5em 0;
}

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

	ロゴ

---------------------------------------------- */
.header__logo {
	width: 230px;
	min-width: 160px;
	margin-top: 1rem;
	transition: all 0.5s ease;
}
.header__logo img {
	width: 100%;
	height: auto;
}

@media screen and (min-width: 1260px) {
	.header__logo {
		margin-left: 1rem;
	}
}
@media screen and (max-width: 1259px) {
	.header__logo {
		width: 210px;
	}
}
@media screen and (max-width: 1059px) {

	.header {
		height: 56px;
	padding: .5em;
	font-size: var(--fz-s);
}
	.header__logo {
	width: 165px;
	height: auto;
	margin: 0;
}
}
/* --------------------------------------------

	サブメニュー

---------------------------------------------- */
@media screen and (min-width:1060px){
.header__subNav {
	position: relative;
	max-height: 100px;
	transition:
    max-height 0.5s ease,
    opacity 0.5s ease,
    transform 0.5s ease;
	opacity: 1;
	transform: translateY(0);
}
.header__subNav__inner {
	position: absolute;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	top: 0;
	right: 0;
}
}

/* ------------------------------------------
	SNSリンク
 ------------------------------------------ */
.header__sns .sns__list {
	display: flex;
	gap: 1.2rem;
}
.header__sns .sns__list .sns__item {
	width: 32px;
	transition: ease .3s;
}
.header__sns .sns__list .sns__item:hover {
	filter: invert(100%);
}
@media  screen and (max-width: 1059px){
.header__sns .sns__list {
	justify-content: center;
	gap: 1.5em;
	margin: 1em 0 2em;
}
.header__sns .sns__list .sns__item {
	border-bottom: none;
}
}


	/* ------------------------------------------
	自動翻訳
 ------------------------------------------ */
@media screen and (min-width:1060px){
.header__lang {
	position: relative;
	z-index: 9999;
}
.lang__toggle > a{
	z-index: 9999;
	position: relative;
	width: 156px;
	margin-left: .8em;
	padding: .8rem 2rem .8rem 3.2em;
	font-size: var(--fz-s);
	color: var(--c-white);
	font-weight: bold;
	border-radius: 30px;
	background-color: var(--c-black);
}
.lang__toggle > a::before {
    content: "";
    position: absolute;
	top: 8px;
    left: 10px;
	width: 25px;
	height: 25px;
	background: url(../images/common/icon_lang.svg) no-repeat;
	background-size: contain;
}
.lang__selectList{
	position: absolute;
	z-index: 999;
	top: 1em;
	right: 0;
	width: 156px;
	height: auto;
	padding: 1em 1em 1em;
	border-radius: 0 0 18px 18px;
	background: var(--c-black);
	/* 初期状態（非表示） */
	visibility: hidden;
	opacity: 0;
	transform: translateY(-10px);
	transition:
		opacity 0.3s ease,
		transform 0.3s ease,
		visibility 0s linear 0.3s;
}
.lang__selectItem {
	border-bottom: 1px solid var(--c-white);
}
.lang__selectItem a {
	display: block;
	padding: .5em;
	text-align: center;
	font-size: var(--fz-s);
	color: var(--c-white);
	font-weight: var(--fw-medium);
}
.lang__selectItem a:hover {
	color: var(--c-text);
	font-weight: var(--fw-bold700);
	background-color: var(--c-white);
}
.lang__item:hover .lang__selectList {
	visibility: visible;
	opacity: 1;
		transform: translateY(0);
	transition:
		opacity 0.3s ease,
		transform 0.3s ease,
		visibility 0s;
}
}
@media  screen and (max-width: 1059px){
.lang__selectItem a {
	display: block;
	width: 100%;
}
.lang__item {
	margin-top: 0em;
}
.lang__toggle > a {
	font-size: var(--fz-l);
}
.lang__selectList {
	margin-top: 1em;
	padding-bottom: 1em;
	font-size: var(--fz-s);
}
.lang__selectItem {
	padding: .8em 0 .8em 1em;
	border-bottom: 1px solid var(--c-gray-pale);
}
}


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

	メインメニュー

---------------------------------------------- */
@media screen and (min-width:1060px){
.header__mainNav {
	display: flex;
	align-items: center;
	padding-top: 2em;
	transition: 0.5s ease;
}
.header__list {
	display: flex;
	justify-content: center;
}
.header__toggle {
	transition: background-color .3s;
}
.header__toggle > a {
	display: block;
	padding: 1.5em;
	font-weight: var(--fw-medium);
}
.header__toggle:hover > a {
	color: var(--c-red);
}
/* --------------------------------------------
	メガメニューの高さ
---------------------------------------------- */
.megaMenu {
	background-color: var(--c-white);
	display: flex;
	max-height: 0;
	left: 0;
	position: absolute;
	text-align: center;
	overflow: hidden;
	transition: max-height 0.65s ease; /* max-height を使ってスムーズにアニメーション */
	width: 100%;
}
.header__item:hover .megaMenu {
	max-height: 220px;
}
.header__item:nth-child(2):hover .megaMenu,
.header__item:nth-child(5):hover .megaMenu,
.header__item:nth-child(6):hover .megaMenu,
.header__item:nth-child(7):hover .megaMenu {
	max-height: 130px;
}
}
@media screen and (max-width:1259px){
	.header__toggle > a {
	padding: 1em 1em;
}
}
@media screen and (max-width:1120px){
	.header__toggle > a {
	padding: 1em .8em;
}
}
@media screen and (max-width:1059px){
	.header__item {
		margin-top: 0em;
	}
	.header__toggle > a {
		padding: 0;
		font-size: var(--fz-l);
	}
	.megaMenu__list {
		margin-top: 1em;
		padding-bottom: 1em;
		font-size: var(--fz-s);
	}
}
/* --------------------------------------------
	メガメニュー内のメニュー名（左）
---------------------------------------------- */
@media screen and (min-width:1060px){
.navItem__titleWrap {
	width: 33%;
}
.navItem__titleWrap  {
	display: flex;
    justify-content: flex-end;
	padding-right: 5em;
	background: url(../images/common/nav_bk.png) no-repeat left center;
}
.navItem__titleWrap .navItem__title  {
	display: inline-block;
	margin-top: 1.8em;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: var(--fz-xl);
	letter-spacing: 0.2rem;
}
.navItem__titleWrap .navItem__subTitle {
	display: block;
	color: var(--c-gray);
	font-family: "Noto Sans JP", sans-serif;
	font-size: var(--fz-xs);
	font-weight: var(--fw-bold700);
	letter-spacing: 0.02rem;
}
.megaMenu__list {
	height: 220px;
	display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-content: flex-start;
    justify-content: flex-start;
	width: 850px;
    padding: 1.5em 0;
	transition: transform 0.65s ease, height 0.65s ease;
}
.header__item:nth-child(2) .megaMenu .megaMenu__list,
.header__item:nth-child(5) .megaMenu .megaMenu__list,
.header__item:nth-child(6) .megaMenu .megaMenu__list,
.header__item:nth-child(7) .megaMenu .megaMenu__list{
	max-height: 130px;
	flex-direction: row;
    align-content: center;
}
.megaMenu__item {
	display: inline-block;
	padding-right: 5em;
}
.megaMenu__item a {
	display: block;
	max-width: 240px;
	padding-right: 1em;
	padding: 1em 1em .5em 0;
	font-weight: var(--fw-medium);
}
.header__item:nth-child(4) .megaMenu__item a {
	max-width: 265px;
}
}
@media  screen and (max-width: 1059px){
.megaMenu__list {
	width: 100%;
	height: auto;
}
.megaMenu__item {
	padding: .8em 0 .8em 1em;
	border-bottom: 1px solid var(--c-gray-pale);
}
}

/* ------------------------------------------
	サイト内検索
 ------------------------------------------ */
#search-wrap {
	position: absolute;
	top: 106px;
	right: 1em;
	z-index: -1;
	width: 0;
	opacity: 0;
	transition: width 0.4s ease, opacity 0.4s ease; /* 幅と透明度の遷移 */
	background-color: var(--c-white);
	border-radius: 80px;
}
#search-wrap.panelactive {
	width: 280px;
	opacity: 1;
	z-index: 3;
}

/* ボタン */
.open-btn {
	width: 40px;
	height: 34px;
	background: url(../images/common/icon_search.svg) no-repeat 10px bottom;
	background-size: 20px 30px;
	cursor: pointer;
	transition: .2s;
}
.open-btn.btnactive {
	background: url(../images/common/icon_close.svg) no-repeat 9px bottom;
	background-size: 15px 36px;
}

/* テキスト入力フィールド */
#search-wrap input[type="text"] {
	width: 0;
	opacity: 0;
	height: 42px;
	padding: 10px 45px 10px 20px;
	letter-spacing: 0.05em;
	border: 1px solid var(--c-gray);
	border-radius: 80px;
	transition: width 0.4s ease, opacity 0.4s ease;
}
/* フォーカス時 */
#search-wrap input[type="text"]:focus {
	background-color: var(--c-gray-pale);
	box-shadow: 0 0 8px rgba(0, 0, 0, 0.15); /* フォーカス時のシャドウ */
}
/* 送信ボタン */
#search-wrap input[type="submit"] {
	position: absolute;
	top: 3px;
	right: 4px;
	width: 36px;
	height: 36px;
	background: url(../images/common/icon_search-wf.svg) no-repeat center;
	background-size: contain;
	border: none;
	opacity: 0;
	transition: opacity 0.4s ease;
	cursor: pointer;
}
#search-wrap.panelactive input[type="text"] {
	width: 280px;
	opacity: 1;
}
#search-wrap.panelactive input[type="submit"] {
	opacity: 1;
}

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

	下にスクロールした時

---------------------------------------------- */
.header--compact .header__contents {
	padding-top: 0;
}
.header--compact .header__logo {
	width: 200px;
	margin-top: 0;
}
.header--compact .header__subNav {
	opacity: 0;
	transform: translateY(-30px);
	pointer-events: none;
}
.header--compact .header__mainNav {
	padding-top: 0;
}
.header--compact .header__item > a {
	padding-top: 1em;
	padding-bottom: 1em;
}
.header--compact #search-wrap {
	top: 54px;
}





/* スマホ表示 */
@media screen and (max-width: 1059px) {
  .navOpen-btn {
    display: block;
    position: absolute;
    top: 1.3rem;
    right: 2rem;
    width: 30px;
    height: 24px;
    cursor: pointer;
    z-index: 10000;
  }
  
  .navOpen-btn span {
    display: block;
    height: 3px;
    margin: 5px 0;
    background: #000;
    transition: 0.3s;
  }
/* 開いた状態 */
.navOpen-btn.open span:nth-child(1) {
  transform: rotate(45deg) translate(6px, 5px);
}
.navOpen-btn.open span:nth-child(2) {
  opacity: 0;
}
.navOpen-btn.open span:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}
  /* ナビ全体を隠す */
  .header__navWrap {
    position: fixed;
    top: 56px;
    right: -100%;
    width: 60%;
    height: 100vh;
    background: #ffffff;
	backdrop-filter: blur(7px);
    transition: right 0.6s ease;
    overflow-y: auto;
    padding: 2em 2em 5em;
    z-index: 9999;
  }

  /* 開いたとき */
  .header__navWrap.open {
    right: 0;
  }
.megaMenu__list {
	display: block;
}
.megaMenu__item {
	display: block;
	padding-right: 0;
}
.megaMenu__item a {
	display: block;
	width: 100%;
	padding: 0;
}


/* ------------------------------------------
	アコーディオンボタン
 ------------------------------------------ */
.lang__toggle,
.header__toggle {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.2em 1em;
	border-bottom: 1px solid var(--c-gray);

}

.accordion-btn {
	position: relative;
	width: 20px;
	height: 20px;
	cursor: pointer;
}

.accordion-btn::before,
.accordion-btn::after {
	content: "";
	position: absolute;
	transform: translate(-50%, -50%);
	top: 50%;
	left: 0%;
	width: 100%;
	height: 2px;
	background-color: var(--c-black);
	transition: all 0.3s ease;
}

.accordion-btn::before {
	transform: translateY(-50%);
}

.accordion-btn::after {
	transform: translateY(-50%) rotate(90deg);
	opacity: 1;
}

.accordion-btn.active::after {
	opacity: 0;
}
/* ------------------------------------------
	form.showMin
 ------------------------------------------ */
form.SP input{
	margin-bottom: 1rem;
	-webkit-appearance:none;
	outline: none;
	cursor: pointer;
	border-radius: 80px;
	background-color: var(--c-gray-pale);
}
form.SP input[type="text"] {
	width: 100%;
	height: 38px;
	padding: 10px 45px 10px 20px;
	letter-spacing: 0.05em;
	font-size: var(--fz-s);
	border: 1px solid var(--c-gray);
	transition: all 0.5s;
}
form.SP input[type="text"]:focus {
	background:var(--c-gray-pale);
}
form.SP input[type="submit"] {
	position: absolute;
    top: 30px;
    right: 30px;
    width: 36px;
    height: 36px;
	background:url("../images/common/icon_search-wf.svg") no-repeat center;
	background-size: contain;
	border: none;
}

}


@media screen and (max-width: 640px) {
	  /* ナビ全体を隠す */
	.header__navWrap {
		position: fixed;
		top: 56px;
		right: -100%;
		width: 100%;
		height: 100vh;
		background: #ffffffe5;
		backdrop-filter: blur(7px);
		transition: right 0.6s ease;
		overflow-y: auto;
		padding: 2em 2em 5em;
		z-index: 9999;
	}
}