@charset "utf-8";
/* 
ブレイクポイント
sp：～767px　
tb：768pxpx～1366px　
pc：1367px～　
*/

/* ------------------------------
reset
------------------------------ */
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
p,
blockquote,
th,
td {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
li {
	list-style-type: none;
}

a {
	text-decoration: none;
	color: inherit;
}
img {
	display: block;
	width: 100%;
	height: auto;
}

/* ------------------------------
base
------------------------------ */
:root {
	--base-unit: 10px;
	--color-base: #454545;
	--header-height: ""; /* jsでheaderの高さを取得 */
}

@media screen and (min-width: 768px) and (max-width: 1366px) {
	:root {
		--base-unit: calc(10 / 1366 * 100vw);
	}
}
@media screen and (max-width: 767px) {
	:root {
		--base-unit: calc(10 / 375 * 100vw);
	}
}

body {
	line-height: 2;
	font-family:  "Noto Sans JP", 'ヒラギノ角ゴ Pro W3', "Hiragino Kaku Gothic ProN", "Helvetica Neue", Arial, "Hiragino Sans", Meiryo, sans-serif;
	color: var(--color-base);
	font-size: calc(1.6 * var(--base-unit));
	letter-spacing: 0;
}
@media screen and (max-width: 767px) {
	body {
		font-size: calc(1.4 * var(--base-unit));
	}
}
html {
  scroll-padding-top: var(--header-height);
}
/* ------------------------------
common
------------------------------ */
.c-container {
	width: calc(110 * var(--base-unit));
	margin-inline: auto;
}
@media screen and (max-width: 767px) {
	.c-container {
		width: calc(33 * var(--base-unit));
	}
}
.c-main {
	margin-top: var(--header-height);
}

.c-box-decoration01 {
	position: relative;
	line-height: 1.5;
}
.c-box-decoration01::before {
	content: "";
	display: block;
	position: absolute;
	box-sizing: content-box;
	inset: 0;
	background-color: #fff;
	z-index: -1; 
}
@media screen and (min-width: 768px) {
	.c-box-decoration01 {
		border: calc(0.2 * var(--base-unit)) solid var(--color-base);
	}
	.c-box-decoration01::before {
		outline: calc(0.1 * var(--base-unit)) solid #fff;
		translate: calc(0.4 * var(--base-unit)) calc(0.4 * var(--base-unit));
	}
}
@media screen and (max-width: 767px) {
	.c-box-decoration01 {
		border: calc(0.15 * var(--base-unit)) solid var(--color-base);
	}
	.c-box-decoration01::before {
		outline: calc(0.05 * var(--base-unit)) solid #fff;
		translate: calc(0.2 * var(--base-unit)) calc(0.2 * var(--base-unit));
	}
}

.c-section-title {
	font-weight: bold;
	line-height: 1.2;
	display: inline-grid;
	align-items: center;
	grid-template-columns: auto 1fr auto;
	position: relative;
}
.c-section-title::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	background-color: var(--color-base);
}
.c-section-title::after {
	content: "";
	display: inline-block;
	background: url("../../cmn/img/section-title-icon.png") center / cover no-repeat;
	overflow: visible;
}
.c-section-title__txt-en {
	font-family: "Oswald", serif;
}

.c-section-sub-title {
	font-weight: 400;
}
@media screen and (min-width: 768px) {
	.c-section-title {
		font-size: calc(10 * var(--base-unit));
	}
	.c-section-title::after {
		width: calc(4.2 * var(--base-unit));
		height: calc(4.2 * var(--base-unit));
		margin-left: calc(2 * var(--base-unit));
	}
	.c-section-sub-title {
		font-size: calc(2.5 * var(--base-unit));
		margin-top: calc(1 * var(--base-unit));
	}
	.c-section-title::before {
		width: 100%;
		height: calc(0.3 * var(--base-unit));
		scale: 0 1;
		transition: scale 0.5s cubic-bezier(.77,-0.01,0,1.02);
		will-change: scale;
		transform-origin: 100% 50%;
	}
}
@media screen and (max-width: 767px) {
	.c-section-title {
		font-size: calc(5.5 * var(--base-unit));
	}
	.c-section-title::after {
		width: calc(2.1 * var(--base-unit));
		height: calc(2.1 * var(--base-unit));
		margin-left: calc(1.6 * var(--base-unit));
	}
	.c-section-sub-title {
		font-size: calc(1.6 * var(--base-unit));
	}
}

@media (hover) {
	.c-section-title:hover::before {
		transform-origin: 0% 50%;
		scale: 1 1;
	}
}

/* ------------------------------
header
------------------------------ */
.header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background-color: #fff;
	z-index: 1000;
}
.header__inner {
	display: flex;
}

.header__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: auto;
}
.main-logo {
	width: calc(25 * var(--base-unit));
}
.header__head-txt-img {
	width: calc(20 * var(--base-unit));
	aspect-ratio: 57 / 4;
}
.header__entry-link {
	background-color: var(--color-base);
	box-sizing: border-box;
	color: #fff;
	font-size: calc(1.6 * var(--base-unit));
	font-weight: 500;
	text-transform: uppercase;
	text-align: center;
}

.gnav-pc .gnav-list {
	display: grid;
	grid-template-columns: auto auto auto auto;
	/* grid-template-rows: auto auto; 202511 Del*/
	grid-template-rows: 1fr;
	align-items: center;
	column-gap: calc(5 * var(--base-unit));
}
/* .gnav-pc .gnav-item:first-child {
	grid-column: span 4;
	padding-top: calc(1.2 * var(--base-unit));
	justify-self: end;
} 202511 Del*/
.gnav-pc .gnav-link {
	align-content: center;
	color: inherit;
	display: block;
	font-size: calc(1.6 * var(--base-unit));
	/* padding: calc(1.5 * var(--base-unit)) 0; 202511 Mod*/
	padding: calc(2.9 * var(--base-unit)) 0;
	position: relative;
	box-sizing: border-box;
	justify-self: end;
	transition:  0.3s;
}

.gnav-pc .gnav-link::after {
	position: absolute;
	left: 0;
	content: '';
	width: 100%;
	height: 3px;
	background: var(--color-base);
	bottom: -1px;
	scale: 0 1;
	transform-origin: center top; 
	transition: scale 0.3s;
}
.gnav-pc .gnav-link.current::after {
	position: absolute;
	left: 0;
	content: '';
	width: 100%;
	height: 3px;
	background: var(--color-base);
	bottom: -1px;
	scale: 1;
}
@media screen and (min-width: 767px) {
	.header__inner {
		padding-left: calc(3 * var(--base-unit));
	}
	.header__head {
		column-gap: calc(4 * var(--base-unit));
		order: 1;
	}
	.gnav-pc {
		display: grid;
		order: 2;
		margin-left: auto;
	}
	.gnav-sp {
		display: none;
	}
	.gnav-sp-btn {
		display: none;
	}
  .header__entry-link {
		border: calc(0.2 * var(--base-unit)) solid var(--color-base);
		align-content: center;
		order: 3;
		width: calc(9.23 * var(--base-unit));
		height: calc(9.23 * var(--base-unit));
		margin-left: calc(5 * var(--base-unit));
		transition: color 0.3s;
		position: relative;
		z-index: 1;
	}
  .header__entry-link::before {
		content: "";
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
		background: #fff;
		transform-origin: 100% 50%;
		scale: 0 1;
		transition: scale 0.5s cubic-bezier(.77,-0.01,0,1.02);
	}
	@media (hover) {
		.gnav-pc .gnav-link:not(.current):hover::after {
			scale: 1;
		}
		.header__entry-link:hover {
			color: var(--color-base);
		}
		.header__entry-link:hover::before {
			transform-origin: 0% 50%;
  		scale: 1 1;
		}
	}
}
@media screen and (max-width: 767px) {
	.header__inner {
		height: calc(4 * var(--base-unit));
	}
	.header__head {
		padding: calc(1.3 * var(--base-unit)) calc(1.3 * var(--base-unit)) calc(1.3 * var(--base-unit)) calc(1.6 * var(--base-unit));
		width: calc(100% - calc(4 * var(--base-unit)));
	}
	.main-logo {
		width: calc(12.35 * var(--base-unit));
	}
	.header__head-txt-img {
		width: calc(20 * var(--base-unit));
		margin-inline: auto;
		padding-top: calc(1 * var(--base-unit));
	}
	.gnav-pc {
		display: none;
	}
}

/* ---------- gnav-sp ---------- */
@media screen and (max-width: 767px) {
.gnav-sp {
	background-color: #fff;
	box-sizing: border-box;
	position: fixed;
	width: 100%;
	opacity: 0;
	max-height: 100vh;
	pointer-events: none;
	transition: opacity 0.7s;
	z-index: 100;
	padding-bottom: calc(3.5 * var(--base-unit));
	overflow: auto;
	overscroll-behavior: contain;
}

.gnav-sp.js-active {
	opacity: 1;
	pointer-events: visible;
}
.gnav-sp-btn {
	position: relative;
	border: none;
	width: calc(4 * var(--base-unit));
	height: calc(4 * var(--base-unit));
	background-color: var(--color-base);
	padding: calc(1 * var(--base-unit)) calc(0.8 * var(--base-unit));
	z-index: 1000;
}
.gnav-sp-btn__icon {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: calc(0.5 * var(--base-unit));
}
.icon-line {
	display: inline-block;
	width: calc(2 * var(--base-unit));
	height: calc(0.2 * var(--base-unit));;
	background-color: #fff;
	transition: transform 0.3s;
}
.icon-line__top.js-active {
	transform: translateY(calc(0.7 * var(--base-unit))) rotate(-45deg) ;
}

.icon-line__middle.js-active {
	opacity: 0;
}

.icon-line__bottom.js-active {
	transform: translateY(calc(-0.7 * var(--base-unit))) rotate(45deg);
}
.gnav-sp__entry-link-wrap {
	padding: 0 calc(2.25* var(--base-unit));
}
.header__entry-link {
	display: block;
	padding: calc(0.4 * var(--base-unit));
	margin-top: calc(8 * var(--base-unit));
	margin-inline: auto;
}
.gnav-sp .gnav-list {
	margin-top: calc(1.2 * var(--base-unit));
}

.gnav-sp .gnav-item {
	border-top: calc(0.2 * var(--base-unit)) solid var(--color-base);
}
.gnav-sp .gnav-item:last-child {
	border-bottom: calc(0.2 * var(--base-unit)) solid var(--color-base);
}

.gnav-sp-bottom-block {
	padding: 0 calc(2.25* var(--base-unit));
}
.gnav-sp-bottom-block .gnav-sub-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.gnav-sp-bottom-block .gnav-sub-link::after {
	content: "";
	display: inline-block;
	width: calc(1.2 * var(--base-unit));
	height: calc(1.2 * var(--base-unit));
	background: url(../img/cmn_icon_arrow_45deg.png) center  / contain no-repeat;
	padding-right:  calc(1.5 * var(--base-unit));
}
/* accordion */
/* Safariで表示されるデフォルトの三角形アイコンを消す */
summary::-webkit-details-marker {
  display: none;
}

.accordion {
	width: 100%;
}
.gnav-link-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: calc(1.3 * var(--base-unit));
	font-weight: 700;
}
.gnav-link-title:not(:has(.js-accordion-trigger)) .gnav-link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.gnav-sp .gnav-link {
	display: block;
	color: inherit;
	width: 100%;
	padding: calc(1.5 * var(--base-unit)) 0;
}
.gnav-sp .gnav-link__txt {
	margin-left: calc(2.25 * var(--base-unit));
}
.gnav-link__icon-wrap {
	position: relative;
	border: none;
	background-color: transparent;
	display: block;
	padding: 0 calc(3 * var(--base-unit));
	width: fit-content;
	height: auto;
}
.gnav-link__icon {
  display: inline-block;
  width: calc(1 * var(--base-unit));
  height: calc(1 * var(--base-unit));
  border-right: calc(0.15 * var(--base-unit)) solid var(--color-base);
  border-bottom: calc(0.15 * var(--base-unit)) solid var(--color-base);
  rotate: -45deg;
}
.gnav-link__icon--plus {
	border: none;
	rotate: 0deg;
	display: grid;
	place-items: center;
}
.gnav-link__icon--plus::before {
	content: "";
	position: absolute;
	width: calc(1.3 * var(--base-unit));
	height: calc(0.15 * var(--base-unit));
	background-color: var(--color-base);
}
.gnav-link__icon--plus::after {
	content: "";
	position: absolute;
	width: calc(0.15 * var(--base-unit));
	height: calc(1.3 * var(--base-unit));
	background-color: var(--color-base);
	transition: rotate 0.3s;
	will-change: rotate;
}

.accordion[open] .gnav-link__icon--plus::after {
	rotate: 90deg;
}
.gnav-sub-item:not(:first-child) {
	margin-top: calc(1.5 * var(--base-unit));
}

.gnav-sub-link {
	color: inherit;
	font-size: calc(1.2 * var(--base-unit));
	font-weight: 500;
}

/* ここにoverflow:hidden;を記述し中身が開いたときにアニメーションして出てくるようになる */
.accordion-content {
  overflow: hidden;
}

/* アニメーションさせるものにpaddingを付けるとガクガクした動きになるのでその中にspanタグを作りそこにpaddingを当て調整 */
.accordion-content-inner {
  display: inline-block;
  padding: 0 calc(2.25 * var(--base-unit)) calc(1.5 * var(--base-unit));
}
}


/* ---------- footer ---------- */
.footer {
	padding: calc(3 * var(--base-unit)) 0;
}
.copyright {
	text-align: center;
	color: #828282;
}
.footer-nav-list {
	display: flex;
	justify-content: center;
	column-gap: calc(3 * var(--base-unit));
}
.footer-nav-link {
	font-size: calc(1.6 * var(--base-unit));
	position: relative;
}
.footer-nav-link::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.2em;
	width: 100%;
	height: calc(0.1 * var(--base-unit));
	background-color: var(--color-base);
	transform-origin: 100% 50%;
	scale: 0 1;
	transition: scale 0.3s;
}
.footer-nav-link::after {
	content: "";
	display: inline-block;
	background: url(../../cmn/img/cmn_icon_arrow_45deg.png) center / contain no-repeat;
	width: calc(1.6 * var(--base-unit));
	height: calc(1.5 * var(--base-unit));
	vertical-align: middle;
	margin-left: calc(0.4 * var(--base-unit));
}
@media screen and (min-width: 768px) {
		.copyright {
			margin-top: calc(4 * var(--base-unit));
	}
}
@media screen and (max-width: 767px) {
	.footer {
		padding: calc(1.5 * var(--base-unit)) 0;
	}
	.footer-nav {
		display: none!important;
	}
	.copyright {
		font-size: calc(1 * var(--base-unit));
	}
}

@media (any-hover: hover) {
	.footer-nav-link:hover::before {
		transform-origin: 0 50%;
		scale: 1 1;
	}
}


/* ------------------------------
utility
------------------------------ */
@media screen and (min-width: 768px) and (max-width: 1366px){
	.u-hide--tb {
		display: none;
	}
}
@media screen and (min-width: 768px) {
	.u-hide--pc {
		display: none;
	}
}
@media screen and (max-width: 767px) {
	.u-hide--sp {
		display: none;
	}
}


