/*!
Theme Colors
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=Noto+Sans+JP:wght@400;600&display=swap');

:root {
	--main-color: #217FC4;
	--main-color-rgb: 33, 127, 196;
	--sub-color: #5BA6D8;
	--sub-color-rgb: 91, 166, 216;
	--point-color: #6EB92B;
	--point-color-rgb: 110, 185, 43;
	--bg-color: #F7FAFC;
	--bg-color-rgb: 247, 250, 252;
	--bg-sub-color: #EAF3F9;
	--bg-sub-color-rgb: 234, 243, 249;
	--radius-s: 0;
	--radius-l: 0.5rem;
	--font-color: #1C2733;
	--font-color-rgb: 28, 39, 51;
	--font-ja: "Noto Sans JP", "Inter", sans-serif;
	--font-ja-regular: 400;
	--font-ja-bold: 600;
	--font-en: "Inter", "Noto Sans JP", sans-serif;
	--font-en-regular: 400;
	--font-en-bold: 600;
	--font-en-light: 300;
}

.header--overlay {
	color: var(--font-color);
}
.fv {
	display: grid;
	padding-block: 0;
}
.fv__video {
	width: 100%;
	inset: 0;
	grid-area: 1/1/1/1;
}
.fv__video_on_contents {
	grid-area: 1/1/1/1;
}
.fv__main {
	margin-bottom: 1rem;
	letter-spacing: 0.5em;
	font-size: 1.75em;
}
.fv__sub {
	font-family: var(--font-en);
	font-weight: var(--font-en-light);
	font-style: italic;
	font-size: 8em;
	margin-bottom: 2rem;
	line-height: 1;
	color: var(--main-color);
}
.section_title__heading {
	flex-direction: column-reverse;
}
.section_title__en {
	font-weight: var(--font-en-light);
	font-style: italic;
	font-size: 5em;
	letter-spacing: 0;
	transform: none;
	line-height: 1;
}
.section_title__en::before {
	display: none;
}
.section_title__ja,
body:not(.home) .section_title__ja {
	font-size: 1.125em;
}
.advantage__content::before {
	font-weight: var(--font-en-light);
	font-style: italic;
	letter-spacing: 0;
}
.link_icon, .sitemap__link>i {
	background: var(--point-color);
}
.cta {
	color: var(--font-color);
}
.cta::before {
	display: none;
}
.fixed_banner {
	width: auto;
}
.fixed_banner__link {
	background-color: var(--point-color);
	color: #fff;
	border: none;
}
.fixed_banner--has_image.fixed_banner--has_content :is(.fixed_banner__link, .fixed_banner__content) {
	grid-template-columns: 6rem 1fr;
}
.fixed_banner__text {
	padding: 0 1.5rem;
}
.fixed_banner__title {
	font-size: 1.5em;
	line-height: 1.5;
}
.fixed_banner__close {
	background: #fff;
	color: var(--point-color);
	border-color: var(--point-color);
}
.content_title__en {
	font-weight: var(--font-en-light);
	font-style: italic;
	font-size: 12.5em;
}
.content_title__ja {
	gap: 0.5em;
}
.content_title__ja::before {
	width: 0.3em;
	height: 0.3em;
	background: var(--point-color);
}
.btn {
	background: transparent;
	color: var(--main-color);
}
.btn__icon {
	background-color: transparent;
	border: 1px solid var(--main-color);
	height: 2em;
}
.title_for_product {
	font-family: var(--font-en);
	font-weight: var(--font-en-light);
	font-style: italic;
	font-size: 9em;
	letter-spacing: 0;
	line-height: 1;
}
.check_list {
	grid-template-columns: repeat(2, 1fr);
}
.service_detail__point_content {
	grid-template-columns: 3.5rem 1fr;
	gap: 1rem;
}
.service_detail__point_content::before {
	font-weight: var(--font-en-light);
	font-style: italic;
	letter-spacing: 0;
	border-right: 0.0625rem solid;
}
.hs-form-frame-wrap {
	padding: 2rem;
	background-color: var(--bg-sub-color);
	border-radius: var(--radius-l);
}
.gtranslate_wrapper a[data-gt-lang="zh-CN"] {
	font-size: 0;
}
.gtranslate_wrapper a[data-gt-lang="zh-CN"]::after {
	content: "ZH";
	font-size: 0.9375rem;
}
.gtranslate_wrapper .glink,
.gtranslate_wrapper .glink + .glink::before {
	font-size: 0.9375rem;
}

@media screen and (max-width: 960px) {
	.header--overlay,
	.header--overlay.scrolled {
		position: sticky;
		background: rgba(var(--bg-color-rgb), 0.8);
	}
	.header__toggle {
		background-color: var(--main-color);
		border-radius: 100%;
	}
	.header__toggle i {
		width: 1.45rem;
		background: var(--bg-color);
	}
	.gtranslate_wrapper .glink,
	.gtranslate_wrapper .glink + .glink::before {
		font-size: 1rem;
	}
	.fv {
		min-height: 0;
		padding-block: 15rem;
	}
	.fv:not(.fv--small) .fv__content {
		max-width: none;
	}
	.fv__main,
	.fv__sub {
		transform: translateY(-11rem);
	}
	.fv__text,
	.fv__cta {
		transform: translateY(12rem);
	}
	.section_title__en {
		font-size: 4em;
	}
	.section_title__ja,
	body:not(.home) .section_title__ja {
		font-size: 1em;
	}
	.advantage__item h3 {
		font-size: 1.25em;
	}
	.advantage__content::before {
		font-size: 2.5em;
	}
	.cta__text.contents {
		font-size: 0.875em;
	}
	.service_detail__point_list,
	.product_detail__point_list,
	.guide__point_list {
		gap: 1.5rem;
	}
	.service_detail__content--has_image,
	.org_detail__greeting_inner--has_image.org_detail__greeting_inner--has_content,
	.org_detail__philosophy_inner--has_image.org_detail__philosophy_inner--has_content,
	.org_detail__access_item--has_map {
		gap: 1.5rem;
	}
	.footer__main_menu,
	.footer__sub_menu {
		grid-template-columns: repeat(2, 1fr);
	}
	.org_detail__table th {
		white-space: nowrap;
	}
}

@media screen and (max-width: 632px) {
	.header__cta .cta_link {
		font-size: 1em;
	}
	.fv {
		padding-block: 2rem 9rem;
	}
	.fv__main,
	.fv__sub {
		transform: translateY(-1rem);
	}
	.fv__main {
		font-size: 1.1429em;
	}
	.fv__sub {
		font-size: 5.1429em;
	}
	.fv__text,
	.fv__cta {
		transform: translateY(10rem);
	}
	.fv__text {
		font-size: 0.8571em;
	}
	.section_title__en {
		font-size: 2.5em;
	}
	.section_title__ja,
	body:not(.home) .section_title__ja {
		font-size: 0.85714286em;
	}
	.btn__icon {
		height: 1.2rem;
		line-height: 1.2rem;
		flex-basis: 1.2rem;
	}
	.btn,
	.section_title--has_link .btn {
		gap: 0.5em;
		padding: 1em;
		min-height: auto;
	}
	.content_title__en {
		font-size: 7em;
	}
	.service_detail__intro,
	.issue_detail__intro,
	.works_detail__intro {
		text-align: justify;
	}
	.title_for_product {
		font-size: 5.5em;
	}
	.check_list {
		grid-template-columns: repeat(1, 1fr);
	}
	.service_detail__point_list,
	.product_detail__point_list,
	.guide__point_list {
		gap: 0rem;
	}
	.product_detail__table_wrap table,
	.recruit__table,
	.guide__table,
	.staff_detail__history_table,
	.org_detail__table {
		table-layout: auto;
	}
	.product_detail__table_wrap th,
	.recruit__table th,
	.guide__table th,
	.staff_detail__history_table th,
	.org_detail__table th {
		width: auto;
	}
	.hs-form-frame-wrap {
		padding: 0rem;
	}
}
