@charset "utf-8";
/*
	Last Update: 2023/9/29
	Auther: sa
*/
/*===================================================================
	page layout
===================================================================*/
*,
html,
body {
	padding: 0;
	margin: 0;
	border: 0;
}

html {
	font-size: clamp(0.75rem, 0.679rem + 0.357vw, 1rem);
}

body {
	color: #101010;
}

main {
	background-color: rgba(255, 255, 255, 0.5);
	flex: 1;
}
.all-wrap {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
.wrap-gray {
	background: url(../image/layout/bg_gray.jpg) repeat-y center top/ 200% auto;
}
.wrap-blue {
	background: url(../image/layout/bg_blue.jpg) repeat-y center top / 100% auto;
}
#page_title {
	position: relative;
}
#page_title .img_back {
	height: 35vw;
	max-height: 370px;
}
#page_title .title_wrap {
	text-align: center;
}
#page_title .main {
	font-weight: bold;
}
#page_title .sub {}
@media (max-width: 767px) {
	#page_title .img_back {
		height: 250px;
	}
	#page_title .main {
		font-size: 2em;
	}
}
@media (min-width: 768px) and (max-width: 991px) {
	#page_title .img_back {
		height: 50vw;
		max-height: 370px;
	}
	#page_title .main {
		font-size: 2.25em;
		letter-spacing: 3px;
	}
}
@media (min-width: 992px) {
	#page_title .img_back {
		height: 35vw;
		max-height: 370px;
	}
	#page_title .main {
		font-size: 2.5em;
		letter-spacing: 3px;
	}
}
.pankuzu-container {
	background-color: #fff;
}
#pankuzu {
	max-width: 70.0625rem;
	margin: 0 auto;
	padding: 0 0.6875rem;
	font-size: 0.875rem;
}
#pankuzu span {
	display: inline-block;
	max-width: 0.875rem;
	width: 100%;
}
#pankuzu img {
	width: 100%;
	object-fit: cover;
}
#pankuzu li,
#pankuzu li:before {
	vertical-align: baseline;
	line-height: 100%;
}
#pankuzu li:before {
	display: inline-block;
}
#pankuzu ul>li:not(:first-child):before {
	content: "/";
	margin: 0 3px;
	color: #D9D9D9;
}

body.pc #pankuzu a:hover {
	text-decoration: underline;
}
@media (max-width: 575px) {
	#pankuzu ul {
		text-overflow: ellipsis;
		overflow: hidden;
		white-space: nowrap;
	}
	#pankuzu li {
		display: inline;
	}
}
@media (min-width: 576px) {
	#pankuzu li {
		display: inline-block;
	}
}

a {
	transition: opacity 0.3s ease 0s;
}

a:hover {
	opacity: 0.7;
}
.wrapper:not(._no_flex) {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

header {
	position: fixed;
	z-index: 900;
	top: 0;
	border-top: 3px solid #3387BA;
	right: 0;
	left: 0;
	background-color:#fff;
}
.header__inner {
	background: url(../image/layout/header_bg.png) no-repeat center right / contain;
	padding: 0.85rem 1.5rem;
	height: inherit;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.header__logo {
	width: clamp(12.5rem, 8.539rem + 16.901vw, 23.75rem);
	height: inherit;
}
.header__logo a {
	height: inherit;
	display: flex;
	align-items: center;
}
.header__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.header__contact {
	display: flex;
	align-items: center;
}
.header__contact-btn {
	padding: clamp(0.188rem, 0.063rem + 0.625vw, 0.625rem) clamp(0.625rem, 0.179rem + 2.232vw, 2.188rem);
	display: flex;
	font-size: 1.125rem;
	font-weight: 500;
	align-items: center;
	letter-spacing: 0.05px;
	gap: 0.8125rem;
}
.header__contact-btn span {
	background: url(../image/icon/mail_icon.png) no-repeat center center / cover;
	width: clamp(0.875rem, 0.804rem + 0.357vw, 1.125rem);
	aspect-ratio: 18/13;
}
.nav__list {
	display: flex;
	overflow-x: auto;
	white-space: nowrap;
	align-items: center;
}
.nav__list--top {
	margin-top: 1rem;
}
.nav__list-item a {
	color: #fff;
	font-weight: 500;
	display: inline-block;
}
.nav__list-item--normal a {
	position: relative;
	font-size: 1.25rem;
	padding: 0 2.2rem 0 2rem;
	letter-spacing: 1px;
	border-right: 0.5px solid #fff;
}
.nav__list-item--normal>a:not(.no-arrow)::after {
	position: absolute;
	content: "";
	background: url(../image/icon/arrow-top_icon.svg) no-repeat center center / contain;
	max-width: 0.53rem;
	width: 100%;
	aspect-ratio: 8.6 / 5.5;
	transform: translateY(-50%) scale(1, -1);
	top: 50%;
	right: 1.25rem;
}
.nav__list-item--small a {
	position: relative;
	font-size: 0.875rem;
	padding-left: 2.8rem
}
.nav__list-item--small>a::before {
	position: absolute;
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-top: 3px solid transparent;
	border-bottom: 3px solid transparent;
	border-left: 5px solid #ffffff;
	border-right: 0;
	top: 50%;
	transform: translateY(-50%);
	left: 2rem;
}
.header__nav {
	background: url(../image/top/menu_bg.jpg) repeat center center / cover;
}
.header__nav nav {
	width: 100%;
	max-width: 60.25rem;
	padding: 1.437rem;
	margin: 0 auto;
	display: flex;
	height: inherit;
}
.drawer-btn {
	position: fixed;
	z-index: 999;
	bottom: 3.6rem;
	right: 0.8rem;
	outline: none;
	border: none;
	width: 4.75rem;
	height: auto;
	aspect-ratio: 1/1;
	background-color: #fff;
	border: 1px solid #2F7CB1;
	border-radius: 50%;
	cursor: pointer;
	transition: .3s;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}
.drawer-btn:hover {
	opacity: 0.7;
}
.drawer-btn__bar,
.drawer-btn__menu {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	display: block;
}
.drawer-btn__bar {
	width: 2.51rem;
	height: 4px;
	background-color: #2F7CB1;
}
.drawer-btn__bar:first-child{
	margin-top: 5px;
}
.drawer-btn__bar+.drawer-btn__bar {
	margin-top: 0.6rem;
}
.drawer-btn__menu {
	margin-top: 0.1875rem;
	font-size: 0.6875rem;
	text-transform: uppercase;
	color: #2F7CB1;
	font-weight: bold;
}

body.is-open {
	height: 100%;
	overflow: hidden;
}
.drawer {
	margin-top: 4rem;
	padding-bottom: 110px;
	display: none;
	position: fixed;
	z-index: 900;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: rgba(50, 120, 201, 0.91);
	overflow-y: scroll;
	scrollbar-width: none;
}
.drawer::-webkit-scrollbar {
	display: none;
}
.drawer__inner {
	max-width: 37.5rem;
	width: 100%;
	margin: 0 auto;
}
.drawer__item {
	border-bottom: 1px solid #DBDBDB;
}
.drawer__accordion-title {
	position: relative;
}
.drawer__item>a,
.drawer__accordion-title {
	position: relative;
	padding: 1.475rem 2.8rem;
	display: block;
	font-size: 1.5rem;
	font-weight: 500;
	color: #fff;
	line-height: 1;
	letter-spacing: 0.05em;
	cursor: pointer;
}
.drawer__item>a::before,
.drawer__accordion-title::before {
	position: absolute;
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4px 0 4px 6px;
	border-color: transparent transparent transparent #ffffff;
	top: 50%;
	transform: translateY(-50%);
	left: 1.5rem;
}
.drawer__accordion-button {
	position: absolute;
	width: 1.8rem;
	height: 1.8rem;
	background: #fff;
	top: 50%;
	right: 3px;
	transform: translate(-50%, -50%) rotate(0deg);
	border-radius: 50%;
	cursor: pointer;
	z-index: 100;
	transition: 0.4s;
}
.drawer__accordion-button:before,
.drawer__accordion-button::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	height: 3px;
	width: 50%;
	background: #3280C7;
	transition: .3s;
	border-radius: 0.6px;
}
.drawer__accordion-button::after {
	transform: translate(-50%, -50%) rotate(90deg);
}
.drawer__accordion-title.is-open .drawer__accordion-button::after {
	transform: translate(-50%, -50%) rotate(180deg);
}
.drawer__accordion-items {
	background-color: #fff;
	display: none;
}
.drawer__accordion-item {
	position: relative;
}
.drawer__accordion-item::before {
	position: absolute;
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4px 0 4px 6px;
	border-color: transparent transparent transparent #acacac;
	top: 50%;
	transform: translateY(-50%);
	left: 2.2rem;
}
.drawer__accordion-item+.drawer__accordion-item {
	border-top: 1px solid #D1D1D1;
}
.drawer__accordion-items a {
	padding: 1.05rem 3.3rem;
	display: block;
	font-size: 1.33rem;
	line-height: 1;
	letter-spacing: 0.03em;
	font-weight: 500;
	color: #3881C5;
}
.bottom-tab.bottom-tab--drawer {
	position: static;
	margin-top: 1.55rem;
	padding-bottom: 4.75rem;
}
.bottom-tab.bottom-tab--drawer .bottom-tab__link {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin: 0 auto;
	padding: 0 1.6rem;
	justify-content: center;
	gap: 1.687rem;
}
.bottom-tab.bottom-tab--drawer .bottom-tab__item {
	border-radius: 5px;
}
.bottom-tab.bottom-tab--drawer a {
	display: flex;
	flex-direction: row;
	padding: 0.9375rem;
	color: #fff;
	letter-spacing: 0.07em;
	font-size: 1.5rem;
	font-weight: 500;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
}
.bottom-tab.bottom-tab--drawer .bottom-tab__item--entry span {
	max-width: 1.56rem;
	margin-bottom: 0;
	line-height: 1;
}
.bottom-tab.bottom-tab--drawer .bottom-tab__item--entry {
	background-color: #CC6E33;
	box-shadow: 3px 3px 0 #B7581C;
}
.bottom-tab.bottom-tab--drawer .bottom-tab__item--info span {
	max-width: 1.56rem;
	margin-bottom: 0;
	line-height: 1;
}
.bottom-tab.bottom-tab--drawer .bottom-tab__item--info {
	background-color: #CDA93D;
	box-shadow: 3px 3px 0 #C49F2F;
}
.bottom-tab.bottom-tab--drawer .bottom-tab__item::after {
	display: none;
}
.page-mv--img {
	background: url(../image/layout/common-mv_bg-2.jpg) no-repeat center center /cover;
}
.page-mv--no-img {
	background: url(../image/layout/common-mv_bg.jpg) no-repeat center center /cover;
	height: clamp(6.5rem, 0.03rem + 27.606vw, 24.875rem);
	display: flex;
	align-items: center;
}
.page-mv__layout {
	width: 100%;
	overflow-x:hidden;
}
.page-mv__container {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.page-mv--no-img .page-mv__container {
	display: block;
	padding-left: 12%;
}
.page-mv__title-wrap {
	margin-left: auto;
	width: 30%;
}
.page-mv--no-img .page-mv__title-wrap {
	width: 100%;
}
.page-mv__title {
	font-size: clamp(1.25rem, 0.81rem + 1.878vw, 2.2rem);
	letter-spacing: 0.1em;
}
.page-mv__title-en {
	display: block;
	font-size: 1.15rem;
	text-transform: uppercase;
	color: #656565;
	letter-spacing: 0.11em;
	margin-top: 0.4375rem;
	padding-left: 0.3125rem;
	font-weight: 500;
}
.page-mv__title{
	width:120%;
	margin-right:-20%;
}
.page-mv__title-en{
	width:110%;
	margin-right:-10%;
}
.page-mv__img {
	width: 57%;
	max-height: 25.5rem;
	overflow: hidden;
}
.page-mv__img img {
	width: 100%;
	object-fit: cover;
}
.common-inner {
	max-width: 76.31rem;
	width: 100%;
	padding: 0 1.56rem;
	margin: 0 auto;
}
.common-section__sub-title {
	font-size: 1.375rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	padding: 0.9rem 1.5625rem;
	background-color: #ECF5F9;
	border-radius: 2px;
	border-left: 0.1875rem solid #759CB5;
	color: #454545;
}
.common-section__title-bg {
	padding: 0.4rem;
	text-align: center;
	font-size: 1.625rem;
	font-weight: 500;
	line-height: 1.7307692307692308;
	letter-spacing: 0.1em;
	color: #fff;
	background: linear-gradient(176deg, #165EA0 0%, #165EA0 35%, #2F76B6 35%, #2F76B6 100%);
}
.common-section__main-title {
	display: inline-block;
	font-size: 2rem;
	font-weight: 400;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid #2869AA;
	color: #2869AA;
	margin-left: auto;
	margin-right: auto;
	letter-spacing: 0.08em;
}
.btn {
	padding: clamp(0.188rem, 0.063rem + 0.625vw, 0.625rem) clamp(0.625rem, 0.179rem + 2.232vw, 2.188rem);
	display: inline-flex;
	font-size: 1.1875rem;
	font-weight: 700;
	align-items: center;
	letter-spacing: 0.05px;
	line-height: 1;
	gap: 0.6875rem;
	padding: 1.125rem 2.0625rem;
	white-space:nowrap;
}
.btn span {
	width: clamp(0.875rem, 0.804rem + 0.357vw, 1.125rem);
	max-width: 0.937rem;
	width: 100%;
}
.btn span.clone {
	display:inline-block;
	width:20px;
	height:20px;
	mask:url(../image/icon/new-window_icon.png) no-repeat center center / contain;
	-webkit-mask:url(../image/icon/new-window_icon.png) no-repeat center center / contain;
	background:#fff;
}
.btn svg {
	aspect-ratio: 1/1;
	width: 100%;
	object-fit: cover;
}
.btn .arrow {
	fill: currentColor;
}
.btn.c_white .arrow {
	fill: #fff!important;
}
.btn._back { flex-direction:row-reverse; }
.btn._back svg { transform:rotateY(180deg); }
.footer-banner {
	background-color: #fff;
}
.footer-banner__inner {
	max-width: 72.5rem;
	width: 100%;
	margin: 0 auto;
	padding: 3.4rem 1.5625rem;
}
.footer-banner__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	justify-content: center;
	width: 100%;
	gap: 2%;
}
.footer-banner__item {
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.21);
	max-width: 15.95rem;
	width: 100%;
}
.footer-banner__item a {
	width: 100%;
	display: inline-block;
}
.footer-banner__item img {
	aspect-ratio: 255/84;
	object-fit: cover;
	width: 100%;
}
.footer__container {
	position: relative;
	position: relative;
	background-color: #494D50;
}
.footer__inner {
	padding: 2rem 7.3125rem;
	margin: 0 auto;
	max-width: 90rem;
	display: flex;
	justify-content: space-between;
	color: #fff;
	align-items: end;
	gap: 5%;
}
.footer__inner--top {
	padding: 2rem 7.3125rem 18rem;
}
.footer__company-wrap {
	display: flex;
	align-items: center;
}
.footer__logo {
	max-width: 22.3125rem;
	width: 100%;
}
.footer__logo img {
	width: 100%;
	aspect-ratio: 357/41;
	object-fit: cover;
}
.footer__address {
	margin-left: 1.625rem;
	letter-spacing: 0.7px;
	font-size: 0.9375rem;
	line-height: 1.6;
}
.footer__address p {
	text-wrap: nowrap;
}
.footer__copyright-wrap {
	font-size: 0.875rem;
	text-align: end;
}
.footer__copyright-wrap a {
	display: block;
	color: #fff;
	text-decoration: underline;
	line-height: 1;
}
.footer__copyright {
	font-size: 0.875rem;
	text-wrap: nowrap;
	letter-spacing: 0.6px;
}
.page-top {
	padding-top: 1.6rem;
	display: flex;
	justify-content: center;
	align-items: center;
	width: clamp(3.75rem, 3.266rem + 2.066vw, 5.125rem);
	aspect-ratio: 1/1;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 1px;
	color: #fff;
	text-transform: uppercase;
	background-color: #3387BA;
	cursor: pointer;
}
.page-top::before {
	content: "";
	background: url(../image/icon/arrow-top_icon.svg) no-repeat center center / cover;
	position: absolute;
	top: clamp(0.813rem, 0.658rem + 0.657vw, 1.25rem);
	left: 50%;
	width: 1.75rem;
	height: 1.09rem;
	transform: translateX(-50%)
}
.page-top__btn {
	position: absolute;
	right: 0;
	top: 1.6875rem;
	transition: opacity 0.3s ease 0s;
}
.page-top__btn:hover {
	opacity: 0.7;
}
.common-cards {
	padding-top: 6.25rem;
	padding-bottom: 7.5rem;
}
.common-cards__inner {
	max-width: 71.875rem;
	padding: 0 1.5625rem;
	margin: 0 auto;
}
.common-cards__lists {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3.7rem 2.7375rem
}
.common-card {
	border-bottom: 1px solid #D9D9D9;
}
.common-card__img {
	width: 100%;
}
.common-card__img img {
	aspect-ratio: 528/260;
	object-fit: cover;
	width: 100%;
}
.common-card__title span {
	position: relative;
	display: inline-block;
	padding: 1rem;
	border: 1px solid #E2E2E2;
	border-radius: 50%;
	top: 8px;
	margin-right: 0.75rem;
}
.common-card__title span::before {
	content: '';
	width: 8px;
	height: 8px;
	border-top: solid 1px #1E4C9F;
	border-right: solid 1px #1E4C9F;
	position: absolute;
	top: 50%;
	transform: translate(-64%, -50%) rotate(45deg);
	left: 50%;
}
.common-card__title {
	font-size: 1.375rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	padding: 0.5rem 0 1.125rem;
}
.tel-wrap__head {
	color: #3B3B3B;
	font-size: 1.6875rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.06em;
}
.tel__number-wrap {
	display: flex;
	justify-content: center;
	margin-top: 1.875rem;
	align-items: center;
	gap: 4px;
}
.tel__number a {
	display: flex;
	align-items: center;
	font-size: 2.5rem;
	font-weight: bold;
	letter-spacing: 0.06em;
	gap: 0.5625rem;
}
.tel__number span {
	display: inline-block;
	background: url(../image/icon/tel_icon.png) no-repeat center center / contain;
	width: 2.5625rem;
	aspect-ratio: 1/1;
}
.tel__number-side {
	font-weight: 500;
	font-size: 1.3125rem;
	letter-spacing: 0.02em;
}
@media (min-width:1441px) {
	.page-mv__container{
		width:1440px;
		margin:0 auto;
	}
	.page-mv--no-img .page-mv__container{
		padding-left:calc(1440px * .12);
	}
}
@media (max-width:1199px) {
	.footer__company-wrap {
		flex-direction: column;
		gap: 1.25rem;
		align-items: center;
	}
	.footer__address {
		text-align: center;
	}
}
@media (max-width: 991px) and (min-width:767px) {
	.nav__list-item--normal a { padding:0 2.1rem 0 1.5rem; }
	.nav__list-item--normal>a::after { right:1rem; }
	.nav__list-item--small a { padding-left:2.1rem; }
	.nav__list-item--small>a::before { left:1.5rem; }
}
@media (max-width: 767px) {
	.page-mv__title-wrap {
		width: 40%;
	}
	.page-mv__img {
		width: 50%;
	}
	.common-section__title-bg {
		font-size: 1.25rem;
	}
	.common-cards {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
	.common-inner {
		max-width: 37.5rem;
	}
	.header__nav nav {
		padding: 0.7rem 0.7rem;
	}
	.page-mv__title {
		line-height: 1.1;
	}
	.page-mv__title-en {
		font-size: 0.8rem;
		line-height: 1.2;
	}
	.nav__list-item--normal a {
		padding: 0 1.5rem;
	}
	.nav__list-item--normal>a:not(.no-arrow)::after {
		right: 0.6rem;
	}
	.nav__list-item--small a {
		position: relative;
		font-size: 0.875rem;
		padding-left: 1.5rem
	}
	.nav__list-item--small a::before {
		left: 0.6rem;
	}
	.nav__list {
		margin-top: 0;
	}
	.nav__area { position:relative; }
	.nav__area._left::before,
	.nav__area._right::after { opacity:0; }
	.nav__area::before,
	.nav__area::after { content:""; display:block; position:absolute; width:10px; height:100%; transition:opacity .1s; top:0; }
	.nav__area::before { left:0; background:linear-gradient(to right, rgba(0,0,0,.32), transparent); }
	.nav__area::after { right:0; background:linear-gradient(to left, rgba(0,0,0,.32), transparent); }
	.tel-wrap__head {
		font-size: 1.375rem;
	}
	.tel__number-wrap {
		gap: unset;
	}
	.tel__number a {
		font-size: 2.125rem;
		gap: 0.3rem;
	}
	.tel__number span {
		width: 2.125rem;
	}
	.tel__number-side {
		font-size: 1.125rem;
	}
	.footer__inner {
		flex-direction: column;
		justify-content: space-between;
		color: #fff;
		align-items: center;
		gap: 2rem;
		padding: 2rem 5.3125rem 10rem;
	}
	.footer-banner__inner {
		padding: 3.4rem 1.5625rem calc(3.4rem + 15px);
	}
	.footer__copyright-wrap {
		text-align: center;
	}
	.page-top__btn {
		top:auto;
		bottom:100%;
		flex-direction:row;
		padding:0;
		width:100px;
		height:30px;
		aspect-ratio:auto;
		border-top-left-radius:5px;
	}
	.page-top__btn::before {
		position:relative;
		top:auto;
		left:auto;
		transform:translate(0,0);
		width:15px;
		height:10px;
		background-size:contain;
		margin-right:5px;
	}
}
@media (max-width: 576px) {
	.footer-banner__list {
		margin: 0 auto;
		max-width: 27.625rem;
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	.common-cards__lists {
		grid-template-columns: repeat(1, 1fr);
		gap: 3.7rem 2.7375rem
	}
	.tel__number-wrap {
		flex-direction: column;
	}
}

.nav__list .nav__list-item { position:relative; }
.nav__list .nav__hover:not(._load) { display:none!important; }
.nav__list .nav__hover { position:fixed; z-index:9999; transform:translateX(-50%); }
.nav__list .nav__hover .nav__hover-item { padding:0; border:0; border:1px solid #2C73B8; background:#fff;  color:#2C73B8; }
.nav__list .nav__hover .nav__hover-item:not(:last-child) { border-bottom:0; }
.nav__list .nav__hover .nav__hover-item a { display:block; width:100%; color:#2C73B8; text-align:center; padding:8px 10px; line-height:1.2; font-size:.85em; letter-spacing:0; }
