@charset "utf-8";
/* all
-------------------------------------------------------------------*/
:root {
	--hover: background .2s, color .2s, border-color .2s, opacity .2s, text-decoration-color .2s, transform .2s, filter .2s, box-shadow .2s, inset .2s;
	--header: 80px;
	--container: 1200px;
	--wide: 1620px;
	--inner: 3%;
	--outer: calc(var(--inner) * -1);
	--fontcolor: #282828;
	--key: #2c49af;
	--accent: #e7270d;
	--sub: #0d1c58;
	--gradation: linear-gradient(181deg, #3b51aa 0%, #1483d5 100%);
	--reverse: invert(1);
	--shadow: drop-shadow(0 0 9px rgba(37, 56, 134, 0.05));
	--white: brightness(0) invert(1);
	--black: brightness(0) invert(0);
}
:root img {
	transition: opacity .2s, filter .2s;
	filter: drop-shadow();
}
:root a {
	transition: var(--hover);
}
:root a :is(span, b, i, img) {
	transition: var(--hover);
}
:root a[href^="tel:"] {
	pointer-events: none;
}
html {
	background: #fff;
	color: var(--fontcolor);
	font-size: 16px;
	line-height: 1.6;
	scroll-padding: var(--header);
	scroll-behavior: smooth;
	font-feature-settings: 'palt';
	font-optical-sizing: auto;
	font-style: normal;
	letter-spacing: 0.06em;
}
:root body {
	width: 100%;
	font-size: 100%;
	text-align: center;
	min-width: var(--container);
	position: relative;
	z-index: 2;
	color: var(--fontcolor);
	font-family: "Noto Sans JP", sans-serif;
	overflow-x: clip;
}
:root [lang="en"],
.en {
	font-family: "Montserrat", sans-serif;
	text-transform: uppercase;
}
:root :is(.wix-madefor, time) {
	font-family: "Wix Madefor Display", sans-serif;
	text-transform: uppercase;
}
:root a.skip-link {
	display: flex;
	font-size: 0.75rem;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: var(--key);
	position: absolute;
	top: calc(var(--header) + 1px);
	left: 0;
	padding: 0.5em;
	z-index: -5;
	box-shadow: 0 0 1em rgba(0, 0, 0, 0.25);
	opacity: 0;
	width: 8em;
	height: 8em;
}
:root a.skip-link:focus {
	opacity: 1;
	z-index: 15;
	text-decoration: underline dotted 1px;
}
:root :is(header, footer) li {
	list-style: none;
	flex: 1;
}
:root .main_wrap {
	flex: 1;
	width: calc(100% - var(--side));
}
.all-content {
	overflow: clip;
}
main {
	width: 100%;
	position: relative;
	z-index: 10;
}
body img,
body svg {
	max-width: 100%;
	height: auto;
}
.sitewrap,
.widewrap {
	width: var(--container);
	margin: 0 auto;
	text-align: left;
	box-sizing: border-box;
}
.widewrap {
	max-width: calc(var(--wide) + 2em);
	padding-inline: 1em;
	width: auto;
}
*:has(> .sitewrap) {
	width: 100%;
	overflow-x: clip;
}
*:has(>wbr) {
	word-break: keep-all;
	overflow-wrap: break-word;
}
@media screen and (max-width:1240px) {
	:root {
		--container: 100%;
	}
	.sitewrap {
		padding-inline: var(--inner);
	}
}
@media screen and (max-width:767px) {
	:root {
		--header: 60px;
		--inner: 15px;
	}
	html {
		font-size: 14px;
	}
	:root a[href^="tel:"] {
		pointer-events: auto;
	}
}
/* header
-------------------------------------------------------------------*/
#global-header {
	position: fixed;
	z-index: 1000;
	inset: 0 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-direction: row;
	filter: none;
	height: var(--header);
	transition: var(--hover);
}
#global-header.fixedMenu {
	background: var(--key);
}
#global-header #site_ttl {
	display: block;
	margin: 1.25em 2.5em;
	max-width: 206px;
}
#global-header #site_ttl img {
	filter: drop-shadow(0 0 4px rgba(6, 14, 43, 0.1));
	will-change: filter;
}
#global-header .nav-wrap {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding-block: 0.75em;
	padding-right: 1.875em;
}
#global-header .nav-wrap input[type="checkbox"] {
	appearance: none;
	width: 1px;
	height: 1px;
	position: absolute;
	z-index: -1;
	border: none;
	background: none;
}
#global-header .nav-wrap :is(.scroll_warp, .nav-list) {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
#global-header .nav-wrap .nav-list {
	margin-right: 0.625em;
}
#global-header .nav-wrap .nav-list>li {
	flex: inherit;
}
#global-header .nav-wrap .nav-list>li> :is(a, p) {
	position: relative;
	z-index: 10;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	min-height: 3.25em;
	font-size: 1rem;
	font-weight: bold;
	color: #fff;
	text-transform: uppercase;
	padding-inline: 1em;
	cursor: pointer;
	text-decoration: none;
}
#global-header .nav-wrap .drop_menu {
	position: relative;
	z-index: 10;
}
#global-header .nav-wrap .drop_menu-list {
	background: #fff;
}
#global-header .nav-wrap .drop_menu-list li a {
	position: relative;
	z-index: 10;
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 3em;
	text-align: left;
	font-size: 1rem;
	font-weight: bold;
	color: var(--key);
	border-bottom: 1px solid var(--key);
	text-decoration: none;
	padding: 0.3125em;
}
#global-header .nav-wrap .drop_menu-list li a::before {
	position: absolute;
	z-index: -5;
	content: "";
	display: inline-block;
	inset: 0;
	background: var(--key);
	transform: scaleX(0);
	transform-origin: right;
	transition: var(--hover);
}
#global-header .nav-wrap .drop_menu-list li a::after {
	content: "";
	width: 2em;
	aspect-ratio: 1/1;
	background-color: var(--key);
	background-image: url(../img/common/icon-arrow.svg);
	background-repeat: no-repeat;
	background-size: 0.75em;
	background-position: center;
	border-radius: 100%;
}
#global-header .nav-btn_wrap .nav-btn {
	--keycolor: var(--accent);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.625em;
	width: 11.625em;
	min-height: 2.5em;
	font-size: 1rem;
	font-weight: bold;
	color: #fff;
	background: var(--keycolor);
	border: 2px solid var(--keycolor);
	border-radius: 0.3125em;
	padding: 0.45em 0.625em;
	text-decoration: none;
	transition: var(--hover);
}
#global-header .nav-btn_wrap .nav-btn img {
	filter: var(--white);
	will-change: filter;
}
#global-header .nav_icon-list {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.625em;
	margin-left: 1.25em;
}
#global-header .nav_icon-list li a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	background: #fff;
	border-radius: 100%;
	padding: 0.625em;
	transition: var(--hover);
}
@media (hover: hover) and (pointer: fine),
(hover: none) and (pointer: coarse) {
	#global-header .nav-wrap .drop_menu-list li a:hover {
		color: #fff;
	}
	#global-header .nav-wrap .nav-list>li>a:hover::before,
	#global-header .nav-wrap .drop_menu-list li a:hover::before {
		transform: scaleX(1);
		transform-origin: left;
	}
	#global-header .nav-btn_wrap .nav-btn:hover {
		color: var(--keycolor);
		background: #fff;
		transform: translateY(2px);
	}
	#global-header .nav-btn_wrap .nav-btn:hover img {
		filter: inherit;
	}
	#global-header .nav_icon-list li a:hover {
		opacity: 0.8;
	}
}
@media screen and (min-width:1373px) {
	#global-header .nav-wrap .nav-list>li> :is(a, p) {
		position: relative;
	}
	#global-header .nav-wrap .nav-list>li> :is(a, p)::before {
		position: absolute;
		z-index: -10;
		content: "";
		display: inline-block;
		width: 100%;
		height: 100%;
		background: #5f6ea4;
		border-radius: 0.625em;
		transform: scale(0);
		transform-origin: center !important;
		transition: var(--hover);
	}
	#global-header .nav-wrap .nav-list>li> :is(a:hover, p:hover, .drop_menu-name.opened)::before {
		transform: scale(1);
	}
	#global-header .nav-wrap .nav-list>li> :is(a, p)::after {
		position: absolute;
		z-index: -5;
		inset: auto 0 0.5em;
		content: "";
		display: inline-block;
		width: 0.3125em;
		aspect-ratio: 1/1;
		background: #fff;
		border-radius: 100%;
		opacity: 0;
		margin-inline: auto;
		transition: var(--hover);
	}
	#global-header .nav-wrap .nav-list>li> :is(a:hover, p:hover, .drop_menu-name.opened)::after {
		opacity: 1;
	}
	#global-header .nav-wrap .drop_menu-list {
		position: absolute;
		z-index: 10;
		translate: -50%;
		left: 50%;
		min-width: 15em;
		padding: 0.625em 0.625em 1.25em;
		border-radius: .625em;
		opacity: 0;
		visibility: hidden;
		transition: var(--hover);
	}
	#global-header .nav-wrap :is(.drop_menu:hover, .drop_menu:has(.drop_menu-name.opened)) .drop_menu-list {
		opacity: 1;
		visibility: visible;
	}
}
@media screen and (max-width:1372px) {
	#global-header .nav-wrap {
		flex-direction: row-reverse;
	}
	#global-header .nav-wrap label {
		appearance: none;
		display: flex;
		cursor: pointer;
		width: 3.75em;
		height: 3.75em;
		aspect-ratio: 1/1;
		background: #fff;
		border-radius: 100%;
		padding-block: 1.25em;
	}
	#global-header .nav-wrap label::before {
		position: fixed;
		z-index: -100;
		content: "";
		display: inline-block;
		inset: 0;
		width: 100vw;
		height: 100vh;
		visibility: hidden;
	}
	#global-header .nav-wrap:has(#switch:checked) label::before {
		visibility: visible;
	}
	#global-header .nav-wrap label b {
		display: block;
		position: relative;
		height: 100%;
		width: 100%;
		transition: transform .2s;
		max-width: 1.5rem;
		margin: auto;
	}
	#global-header .nav-wrap label b::before,
	#global-header .nav-wrap label b::after,
	#global-header .nav-wrap label b span {
		display: block;
		position: absolute;
		inset: 0;
		margin: auto 0;
		width: 100%;
		height: 2px;
		background: var(--key);
		transition: transform .2s, inset .2s;
	}
	#global-header .nav-wrap label b::before {
		content: "";
		inset: 0 0 auto;
	}
	#global-header .nav-wrap label b::after {
		content: "";
		inset: auto 0 0;
		width: 66.69%;
	}
	#global-header .nav-wrap:has(#switch:checked) label b {
		transform: rotate(135deg);
	}
	#global-header .nav-wrap:has(#switch:checked) label b::before {
		transform: rotate(90deg);
		inset: 50% auto auto 50%;
		translate: -50% -50%;
	}
	#global-header .nav-wrap:has(#switch:checked) label b::after {
		opacity: 0;
	}
	#global-header #global-nav {
		position: fixed;
		top: var(--header);
		right: -100%;
		width: 300px;
		height: calc(100vh - var(--header));
		background: #fff;
		padding: 1.25em 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		transition: right .2s;
	}
	#global-header #global-nav:has(#switch:checked) {
		right: 0;
	}
	#global-header .nav-wrap .scroll_warp {
		flex-direction: column-reverse;
		gap: 1.5em;
	}
	#global-header .nav-wrap :is(.scroll_warp > *, .nav-list li) {
		width: 100%;
	}
	#global-header .nav-wrap .nav-list {
		flex-direction: column;
		width: 100%;
		margin: 0;
	}
	#global-header .nav-wrap .nav-list>li> :is(a, p) {
		justify-content: space-between;
		flex-direction: row;
		color: #fff;
		background: var(--key);
		border-bottom: 1px solid #fff;
		padding: 0.625em;
	}
	#global-header .nav-wrap .nav-list>li>a::before {
		position: absolute;
		z-index: -5;
		content: "";
		display: inline-block;
		inset: 0;
		background: #fff;
		transform: scaleX(0);
		transform-origin: right;
		transition: var(--hover);
	}
	#global-header .nav-wrap .nav-list>li>a::after {
		content: "";
		width: 2em;
		aspect-ratio: 1/1;
		background-color: var(--key);
		background-image: url(../img/common/icon-arrow.svg);
		background-repeat: no-repeat;
		background-size: 0.75em;
		background-position: center;
		border-radius: 100%;
	}
	#global-header .nav-wrap .drop_menu-list li a {
		padding: 0.625em;
		padding-right: 0.9375em;
	}
	#global-header .nav-wrap .drop_menu-list li a::after {
		width: 1.5em;
		background-size: 0.625em;
	}
	#global-header .nav-btn_wrap {
		padding-inline: 0.625em;
	}
	#global-header .nav-btn_wrap .nav-btn {
		width: 100%;
	}
	#global-header .nav_icon-list {
		margin-inline: 0 1.25em;
	}
	@media (hover: hover) and (pointer: fine),
	(hover: none) and (pointer: coarse) {
		#global-header .nav-wrap .nav-list>li>a:hover {
			color: var(--key);
		}
	}
}
@media screen and (max-width:767px) {
	#global-header #site_ttl {
		margin: 1.214em 0.5em;
		max-width: 136px;
	}
	#global-header .nav-wrap {
		padding-block: 0.25em;
		padding-right: 0.25em;
	}
	#global-header .nav-wrap label {
		appearance: none;
		display: flex;
		cursor: pointer;
		width: 3.75em;
		height: 3.75em;
		aspect-ratio: 1/1;
		background: #fff;
		border-radius: 100%;
		padding-block: 1.25em;
	}
	#global-header .nav-wrap label::before {
		position: fixed;
		z-index: -100;
		content: "";
		display: inline-block;
		inset: 0;
		width: 100vw;
		height: 100vh;
		visibility: hidden;
	}
	#global-header .nav-wrap:has(#switch:checked) label::before {
		visibility: visible;
	}
	#global-header .nav-wrap label b {
		display: block;
		position: relative;
		height: 100%;
		width: 100%;
		transition: transform .2s;
		max-width: 1.5rem;
		margin: auto;
	}
	#global-header .nav-wrap label b::before,
	#global-header .nav-wrap label b::after,
	#global-header .nav-wrap label b span {
		display: block;
		position: absolute;
		inset: 0;
		margin: auto 0;
		width: 100%;
		height: 2px;
		background: var(--key);
		transition: transform .2s, inset .2s;
	}
	#global-header .nav-wrap label b::before {
		content: "";
		inset: 0 0 auto;
	}
	#global-header .nav-wrap label b::after {
		content: "";
		inset: auto 0 0;
		width: 66.69%;
	}
	#global-header .nav-wrap:has(#switch:checked) label b {
		transform: rotate(135deg);
	}
	#global-header .nav-wrap:has(#switch:checked) label b::before {
		transform: rotate(90deg);
		inset: 50% auto auto 50%;
		translate: -50% -50%;
	}
	#global-header .nav-wrap:has(#switch:checked) label b::after {
		opacity: 0;
	}
	#global-header #global-nav {
		width: 100%;
		height: calc(100svh - var(--header));
	}
	#global-header .nav-wrap .scroll_warp {
		flex-direction: column-reverse;
		gap: 1.5em;
	}
	#global-header .nav-wrap .nav-list>li> :is(a, p) {
		font-size:1.25rem;
	}
	#global-header .nav-wrap .drop_menu-list li a {
		font-size:1.25rem;
	}
	#global-header .nav-btn_wrap {
		padding-inline: 15px;
	}
	#global-header .nav-btn_wrap .nav-btn {
		font-size:1.125rem;
	}
	#global-header .nav_icon-list {
		margin-inline: 0 0.75em;
		gap: 0.4em;
	}
	#global-header .nav_icon-list li a img{
		width:1.5em;
		aspect-ratio:1/1;
		object-fit:contain;
	}
}
/* content
-------------------------------------------------------------------*/
.section,
section {
	position: relative;
}
.fixed_banner {
	position:fixed;
	z-index:1000;
	bottom: 2em;
	right:2%;
}
.fixed_banner .banner_chara{
	margin-inline: auto 0;
	width: 110px;
}
.fixed_banner a {
	position:relative;
	display:block;
	margin-top:1em;
}
.fixed_banner a:has(input[type="radio"]:checked) {
	display:none;
}
.fixed_banner a input[type="radio"] {
	appearance: none;
	width: 1px;
	height: 1px;
	position: absolute;
	z-index: -1;
	border: none;
	background: none;
}
.fixed_banner a label {
	position:absolute;
	z-index:10;
	display:inline-flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
	width:1.714285714285714em;
	aspect-ratio:1/1;
	font-size:0.875rem;
	line-height:0.75;
	color:#fff;
	background:#262c48;
	border:1px solid #fff;
	border-radius:100%;
	top:-0.5em;
	right:-0.75em;
}
@media (hover: hover) and (pointer: fine),
(hover: none) and (pointer: coarse) {
	.fixed_banner a:hover img {
		opacity:0.6;
	}
}
@media screen and (max-width: 1400px) {
	.fixed_banner .banner_chara{
		width:90px;
	}
}
@media screen and (max-width:767px) {
	.fixed_banner {
		bottom: 2em;
		right:15px;
	}
	.fixed_banner a {
		width:200px;
	}
	.fixed_banner .banner_chara{
		width:70px;
	}
}
/* footer
-------------------------------------------------------------------*/
#footer {
	position: relative;
	z-index: 10;
	color:#fff;
	background: var(--gradation);
	padding-block: 6.875em 2.5em;
	margin-top: 22.625em;
}
#footer::before {
	position: absolute;
	content: "";
	display: inline-block;
	width: 100%;
	height: 20.625em;
	inset: -20.3em 0 auto;
	background: url(../img/common/bg-contact.png) no-repeat;
	background-position: center bottom;
}
#footer .sitewrap {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0 2em;
}
#footer #contact .sitewrap {
	gap: 0;
	border-bottom: 1px solid #fff;
	padding-bottom: 6em;
	margin-bottom: 5em;
}
#footer #contact .sitewrap > *{
	flex:1;
}
#footer #contact .lead {
	font-size:1.125rem;
	margin-top:1.5em;
	padding-right: 1.25em;
}
#footer #contact .contact-btn_list {
	display:flex;
	justify-content:space-between;
	align-items:stretch;
	gap: 1.25em;
	margin-bottom:1.5em;
}
#footer #contact .contact-btn {
	flex:1;
	display:inline-flex;
	justify-content:center;
	align-items:center;
	gap:0.5em;
	min-height:4.5em;
	font-size:1.25rem;
	letter-spacing: -0.01em;
	font-weight:bold;
	line-height:1.2;
	background:#06c755;
	border-radius:5px;
	padding:.5em;
	word-break:auto-phrase;
	text-decoration:none;
}
#footer #contact .contact-btn.btn_contact {
	color:var(--fontcolor);
	background:#fff;
}
#footer #contact .contact-btn:not(.btn_contact) img {
	filter:var(--white);
}
#footer #contact .contact-tel_box{
	text-align:center;
}
#footer #contact .tel_number {
	font-size:2rem;
	font-weight:500;
	line-height:0.75;
}
#footer #contact .tel_number a {
	font-size:1.25em;
}
#footer #contact .tel_reception {
	margin-top:0.75em;
}
#footer .company-data .logo {
	margin-bottom: 1.5em;
}
#footer .company-data :is(p, address) {
	line-height:2;
}
#footer .company-wrap{
	margin-top:1em;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 0.5em;
	flex-wrap:wrap;
}
#footer .company-wrap em{
	display:block;
	width:100%;
	font-size:1rem;
	font-weight:600;
}
#footer .company-wrap a{
	background:#fff;
	display:block;
	padding:0.5em;
	border-radius:5px;
}
#footer .company-wrap .company-item img{
	max-height: 35px;
	width:auto;
}
#footer #footer-nav {
	width: min(100%,600px);
}
#footer #footer-nav .nav-list {
	display: flex;
	justify-content: flex-start;
	align-content: space-between;
	flex-direction:column;
	flex-wrap:wrap;
	gap: 1em;
	height: 11em;
	align-items: flex-start;
}
#footer #footer-nav .nav-list li {
	flex:inherit;
}
#footer #footer-nav .drop_menu-list {
	display: flex;
	flex-direction:column;
	gap: 0.625em;
	margin-top:1.375em;
}
#footer #footer-nav .drop_menu-list li {
	display:flex;
	opacity:0.7;
	gap:0.3125em;
}
#footer #footer-nav .drop_menu-list li::before {
	content:"-" / "";
}
#footer .foot_copy {
	width: 100%;
	display:flex;
	justify-content:space-between;
	text-align: center;
	font-size: 0.875rem;
	opacity:0.7;
	margin-top: 4em;
}
#footer .foot_copy a {
	text-decoration:underline;
}
#footer .foot_copy small {
	font-size: 1em;
}
a.pagetop{
	position: fixed;
	z-index: 100;
	bottom: 2em;
	right:2%;
	display: flex !important;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	color:#fff;
	border: 1px solid;
	aspect-ratio:1 / 1;
	width:5em;
	border-radius:50%;
	rotate:-90deg;
	transition:var(--hover),width .2s;
	box-shadow:1px 1px 10px rgb(44 73 175);
	display: none !important;
}
a.pagetop img{
	
	filter: drop-shadow(1px 1px 4px  rgb(44 73 175));
}
a.pagetop:hover{
	background:var(--key);
	width:5.1875em;
}

@media (hover: hover) and (pointer: fine),
(hover: none) and (pointer: coarse) {
	#footer .company-wrap .company-item a:hover{
		opacity:0.7;
	}
}
@media screen and (max-width:767px) {
	#footer {
		padding-block: 4em 12em;
		margin-top: 13.625em;
	}
	#footer::before {
		height: 10.625em;
		inset: -10.5em 0 auto;
		background-size:200%;
	}
	#footer .sitewrap {
		justify-content: center;
	}
	#footer #contact .sitewrap {
		padding-bottom: 3em;
		margin-bottom: 2.5em;
		gap:2em;
	}
	#footer #contact .lead {
		margin-top:1em;
		padding-right: 0;
	}
	#footer #contact .contact-btn_list {
		gap: 0.75em;
	}
	#footer #contact .contact-btn {
		min-height:4em;
		font-size:1rem;
	}
	#footer #contact .contact-btn img {
		width: 1.25em;
	}
	#footer #contact .tel_number {
		font-size:1.5rem;
	}
	#footer #contact .tel_number a {
		font-size:1.75em;
	}
	#footer .company-data .logo {
		margin-bottom: 1.5em;
	}
	#footer .company-data :is(p, address) {
		line-height:2;
	}
	#footer .company-data .logo {
		max-width: 186px;
		margin-bottom: 1em;
	}
	#footer .company-data :is(p, address) {
		font-size: 0.875rem;
		font-weight: 500;
	}
	#footer #footer-nav {
		display: none;
	}
	#footer .foot_copy {
		flex-direction:column;
		gap:0.75em;
		margin-top: 1em;
	}
	a.pagetop{
		display:none !important;
	}
	#footer .company-wrap .company-item img{
		max-height:30px;
	}
	#footer .company-wrap .company-item:last-child img{
		max-height:30px;
	}
	#footer .company-wrap .company-item{
		width:40%;
	}
	#footer .company-wrap .company-item:last-child{
		width:55%;
	}
}
/* print
-------------------------------------------------------------------*/
@media print {
	*html body {
		zoom: 60%;
	}
	#global-header {
		position: relative;
	}
}