@charset "UTF-8";
*,
*:before,
*:after {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	height: 100%;
	scroll-behavior: smooth;
}

body {
	color: #142460;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	line-height: 1.5;
}

/* bodyがこのクラスを持っている時、スクロールを禁止する */

body.is-fixed {
	height: 100%;
	overflow: hidden;
}

img,
video,
object {
	border: none;
	display: block;
	height: auto;
	max-width: 100%;
}

a {
	cursor: pointer;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

a:hover {
	opacity: 0.7;
}

/*===================================================================
# Header
===================================================================*/

.header__wrapper {
	background-color: #494949;
	left: 0;
	position: fixed;
	top: 0;
	transition: background-color 0.3s ease;
	width: 100%;
	z-index: 100;
}

.header {
	background-color: #F8F8F8;
	border-radius: 1.25rem 1.25rem 0 0;
	height: 5.875rem;
}

.header__inner {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: space-between;
	margin-inline: auto;
	max-width: 83.75rem;
}

.header__logo-img {
	height: auto;
	width: 20rem;
}

.header__nav {
	display: flex;
}

.header__list {
	align-items: center;
	display: flex;
}

.header__list li {
	margin-inline-end: 1.375rem;
}

.header__list li:nth-last-child(3) {
	margin-inline-end: 1.625rem;
}

.header__list li:nth-last-child(2) {
	margin-inline-end: 0.625rem;
}

.header__list li:last-child {
	margin-inline-end: 0;
}

.header__list li a {
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.0375rem;
}

.header__list .header__btn a {
	border-radius: 0.375rem;
	box-sizing: border-box;
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 3.25rem;
	transition: all 0.3s ease;
}

.header__list .header__btn--recruit a {
	background-clip: padding-box, border-box;
	background-color: #fff;
	background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #ADE4E7, #26A8E2);
	background-origin: border-box;
	background-repeat: no-repeat;
	border: 0.125rem solid transparent;
	color: #26A8E2;
	letter-spacing: -0.0175rem;
	padding-inline: 1.125rem;
}

.header__list .header__btn--contact a {
	background-color: #142460;
	border: 0.125rem solid #142460;
	color: #fff;
	padding-inline: 1rem;
}

.header.is-scrolled {
	background-color: rgba(255, 255, 255, 0.8);
	-webkit-backdrop-filter: blur(0.25rem);
	backdrop-filter: blur(0.25rem);
	height: 3.75rem;
}

/*===================================================================
# Footer
===================================================================*/

.footer__wrapper {
	background-color: #494949;
}

.footer {
	border-radius: 0 0 1.25rem 1.25rem;
	overflow: hidden;
}

.footer__upper {
	background: url(../../assets/img/footer_bg.jpg) center center/cover no-repeat;
	padding-block: 6.3125rem 6.25rem;
	text-align: center;
}

.footer__title {
	color: #FFF;
	font-family: Alexandria, sans-serif;
	font-size: 3.75rem;
	font-weight: 400;
	letter-spacing: 0.1875rem;
	line-height: 100%;
	text-transform: uppercase;
}

.footer__sub-title {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	line-height: 100%;
	margin-block-start: 1.125rem;
	opacity: 0.5;
}

.footer__lead {
	color: #FFF;
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block: 1.4375rem;
}

.footer__link {
	background-clip: padding-box, border-box;
	background-color: #fff;
	background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #ADE4E7, #26A8E2);
	background-origin: border-box;
	background-repeat: no-repeat;
	border: 0.125rem solid transparent;
	border-radius: 0.375rem;
	box-sizing: border-box;
	color: #26A8E2;
	display: inline-block;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.0225rem;
	line-height: 3.25rem;
	padding-inline: 4.25rem;
	transition: all 0.3s ease;
}

.footer__lower {
	background-color: #142460;
	padding-block: 3.375rem 3.8125rem;
}

.footer__lower-content {
	display: flex;
	-moz-column-gap: 11.6875rem;
	column-gap: 11.6875rem;
}

.footer__title-wrapper {
	flex: 0 0 20rem;
}

.footer__logo {
	height: auto;
	width: 20rem;
}

.footer__menu {
	flex: 1;
}

.footer__nav-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	row-gap: 1.625rem;
}

.footer__nav-list li {
	margin-inline-end: 1.375rem;
}

.footer__nav-list li:nth-last-child(3) {
	margin-inline-end: 0;
}

.footer__nav-list li:nth-last-child(2) {
	margin-inline-end: 0.625rem;
}

.footer__nav-list li:last-child {
	margin-inline-end: 0;
}

.footer__nav-link {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.0375rem;
}

.footer__nav-btn a {
	border-radius: 0.375rem;
	box-sizing: border-box;
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 2.875rem;
	transition: all 0.3s ease;
}

.footer__nav-btn--recruit a {
	background-clip: padding-box, border-box;
	background-color: #fff;
	background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #ADE4E7, #26A8E2);
	background-origin: border-box;
	background-repeat: no-repeat;
	border: 0.125rem solid transparent;
	color: #26A8E2;
	letter-spacing: -0.0175rem;
	padding-inline: 3.46875rem;
}

.footer__nav-btn--contact a {
	background-clip: border-box;
	background-color: transparent;
	background-image: linear-gradient(transparent, transparent), linear-gradient(to right, #71E4FF, #005BBF);
	background-origin: border-box;
	background-repeat: no-repeat;
	border: 0.125rem solid transparent;
	border-color: rgba(255, 255, 255, 0.5);
	color: #fff;
	letter-spacing: -0.0175rem;
	padding-inline: 2.75rem;
}

.footer__policy-link {
	color: #FFF;
	font-size: 0.8125rem;
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.0325rem;
	line-height: normal;
	text-decoration-line: underline;
	text-decoration-style: solid;
	-webkit-text-decoration-skip: ink;
	margin-block-start: 2.375rem;
	opacity: 0.6;
	text-decoration-skip-ink: auto;
	text-decoration-thickness: auto;
	text-underline-offset: auto;
	text-underline-position: from-font;
}

.footer__policy-link--pc {
	display: inline-block;
}

.footer__policy-link--sp {
	display: none;
}

.footer__copyright {
	color: #FFF;
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.03rem;
	margin-block-start: 1.875rem;
	opacity: 0.6;
	text-align: right;
}

.webp .footer__upper {
	background-image: url(../../assets/img/footer_bg.webp);
}

/*===================================================================
# Common（下層ヘッダー・アニメーション・フローティングボタン他）
===================================================================*/

.page-header {
	background: url(../../assets/img/page_header_bg.webp) bottom center/cover no-repeat;
	position: relative;
	text-align: center;
	z-index: 2;
}

.page-header--illust {
	background-image: url(../../assets/img/page_header_bg_illust.webp);
}

.page-header--dot {
	background-image: url(../../assets/img/page_header_bg_dot.webp);
}

.page-header--project,
.page-header--company,
.page-header--manufacturers,
.page-header--services,
.page-header--news {
	padding-block: 7.0625rem 8.375rem;
}

.page-header--contact,
.page-header--policy {
	padding-block: 5.375rem 5.75rem;
}

.page-header--about {
	padding-block: 5.6875rem 6.4375rem;
}

.page-header__title-wrapper {
	position: relative;
	z-index: 2;
}

.page-header__title {
	color: #FFF;
	font-family: Alexandria, sans-serif;
	font-size: 5rem;
	font-weight: 400;
	letter-spacing: 0.25rem;
	line-height: 100%;
	text-transform: uppercase;
}

.page-header__sub-title {
	color: #FFF;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 100%;
	margin-block-start: 1rem;
	opacity: 0.5;
	text-align: center;
}

.breadcrumb {
	border-top: 0.0625rem solid #E3E3E3;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.03rem;
	line-height: 100%;
	padding-block: 0.6875rem;
	padding-inline-start: 1.625rem;
}

.breadcrumb__separator {
	margin-inline: 0.5em;
}

.breadcrumb--about {
	color: #FFF;
	margin-block-start: 10.125rem;
	opacity: 0.5;
}

.pagination__lists {
	align-items: center;
	display: flex;
	gap: 0.625rem;
	justify-content: center;
}

.pagination__link {
	align-items: center;
	background: #fff;
	border-radius: 0.1875rem;
	color: #142460;
	display: flex;
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	height: 2.375rem;
	justify-content: center;
	transition: color 0.3s ease, background-color 0.3s ease;
	width: 2.375rem;
}

.pagination__link--active {
	background-color: #142460;
	border: 0.09375rem solid #142460;
	color: #fff;
}

.pagination__dot {
	font-size: 0.75rem;
}

.pagination__label {
	align-items: center;
	display: inline-flex;
	justify-content: center;
}

.pagination__label svg {
	flex-shrink: 0;
	height: 0.8125rem;
	width: 0.8125rem;
}

.pagination__label--prev {
	margin-inline-end: 0.4375rem;
}

.pagination__label--next {
	margin-inline-start: 0.4375rem;
}

.pagination__label--disabled {
	color: #757575;
	cursor: default;
	opacity: 0.7;
	pointer-events: none;
	text-decoration: none;
}

.pagination__label--disabled::before,
.pagination__label--disabled::after {
	background-color: #757575;
}

/* トップへ戻るボタン */

.to-top {
	display: none;
}

.to-top__link {
	align-items: center;
	background-color: #142460;
	border: 0.0625rem solid #FFF;
	border-radius: 50%;
	display: flex;
	height: 2.375rem;
	justify-content: center;
	transition: opacity 0.3s ease;
	width: 2.375rem;
	z-index: 101;
}

.to-top__link:active {
	opacity: 0.8;
}

.to-top__link svg {
	height: 0.8125rem;
	width: 0.8125rem;
}

/* 出現アニメーション：ふわっと表示 */

.js-fadein {
	opacity: 0;
	transform: translateY(0.625rem);
	transition: opacity 0.5s ease, transform 0.5s ease;
	will-change: opacity, transform;
}

.js-fadein.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.js-fadein-sp { /* SPのみ */
}

/* floating-button */

.floating-btn {
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease, visibility 0.4s ease;
	visibility: hidden;
	z-index: 90;
}

.floating-btn.is-active {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.floating-btn__link {
	background-color: #0034D2;
	border-radius: 62.5rem;
	bottom: 1.5rem;
	display: block;
	display: flex;
	left: 50%;
	margin-inline: auto;
	opacity: 0.9;
	padding: 1.5625rem 1rem 1.5625rem 2.3125rem;
	position: fixed;
	translate: -50%;
	width: calc(100% - 1.25rem);
	-moz-column-gap: 0.9375rem;
	align-items: center;
	column-gap: 0.9375rem;
}

.floating-btn__text {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 0.4375rem;
}

.floating-btn__text-sub {
	color: #FFE500;
	font-weight: 700;
	line-height: 110%;
}

.floating-btn__text-main {
	color: #FFFFFF;
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 110%;
}

.floating-btn__arrow {
	height: auto;
	width: 1.625rem;
}

.floating-btn__arrow svg {
	height: 100%;
	width: 100%;
}

/*===================================================================
# Inner
===================================================================*/

.inner {
	margin-inline: auto;
	width: 100%;
}

.inner--1200 {
	max-width: 75rem;
}

.inner--1100 {
	max-width: 68.75rem;
}

.inner--1000 {
	max-width: 62.5rem;
}

.inner--800 {
	max-width: 50rem;
}

/*===================================================================
# ドロワー
===================================================================*/

.drawer {
	background-color: #fff;
	height: 100vh; /* svhに対応しないスマホ用 */
	height: 100svh; /* 画面下のメニューを考慮する */
	overflow-y: scroll;
	position: fixed;
	right: 0;
	top: 3.125rem;
	transition: translate 0.5s ease;
	translate: 101%;
	width: 100%;
	z-index: 101;
}

.drawer.js-show {
	translate: 0%;
}

.drawer__body {
	height: -moz-fit-content;
	height: fit-content;
	padding-block: 2.5rem;
	width: 100%;
}

.drawer__list {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 1.5625rem;
}

.drawer__list li a {
	color: #142460;
}

.drawer__list .header__btn a {
	border-radius: 62.4375rem;
	box-sizing: border-box;
	display: inline-block;
	display: flex;
	font-size: 0.875rem;
	font-weight: 600;
	justify-content: center;
	line-height: 3.25rem;
	transition: all 0.3s ease;
	width: 10rem;
}

.drawer__list .header__btn--recruit a {
	background-clip: padding-box, border-box;
	background-color: #fff;
	background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #ADE4E7, #26A8E2);
	background-origin: border-box;
	background-repeat: no-repeat;
	border: 0.125rem solid transparent;
	color: #26A8E2;
	letter-spacing: -0.0175rem;
}

.drawer__list .header__btn--contact a {
	background-color: #142460;
	border: 0.125rem solid #142460;
	color: #fff;
	padding-inline: 1rem;
}

.drawer__icon {
	align-items: center;
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	border-radius: 50%;
	display: none;
	flex-direction: column;
	height: 2.25rem;
	justify-content: space-between;
	padding: 0.75rem 0.625rem;
	width: 2.25rem;
	z-index: 102;
}

.drawer__icon--bar {
	background-color: #fff;
	height: 0.0625rem;
	transition: rotate 0.5s ease, translate 0.5s ease, opacity 0.5s ease, background-color 0.5s ease;
	width: 1rem;
}

/* メニューが開いている時 */

.drawer__icon.js-show .drawer__icon--bar {
	background-color: #fff;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(1) {
	rotate: 45deg;
	translate: 0 5.5px;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(2) {
	display: none;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(3) {
	rotate: -45deg;
	translate: 0 -5.5px;
}

/*===================================================================
# Top - Fv
===================================================================*/

.top {
	overflow-x: hidden;
}

.top-fv {
	background: url(../../assets/img/top_fv_bg.png) bottom center/cover no-repeat;
	height: 56.1875rem;
	padding-block-start: 8.0625rem;
	position: relative;
	z-index: 2;
}

.top-fv__img-wrapper {
	display: flex;
	justify-content: center;
	-moz-column-gap: 2.25rem;
	column-gap: 2.25rem;
	position: relative;
}

.top-fv__img {
	border-radius: 0.625rem;
	display: block;
	height: 34.8125rem;
	overflow: hidden;
	position: relative;
	width: 23.5rem;
}

.top-fv__img img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.top-fv__img--1 {
	z-index: 3;
}

.top-fv__img--2 {
	z-index: 3;
}

.top-fv__img--3 {
	z-index: 1;
}

.top-fv__dot {
	height: 50.625rem;
	left: 0.5625rem;
	position: absolute;
	top: 1.875rem;
	top: -6.3125rem;
	width: 86rem;
	z-index: 3;
}

.top-fv__line {
	height: 39.125rem;
	left: 0;
	position: absolute;
	top: -3.9375rem;
	width: 95.0625rem;
	z-index: 2;
}

.top-fv__text-inner {
	margin-inline: auto;
	max-width: 90rem;
	position: relative;
	z-index: 5;
}

.top-fv__text-wrapper {
	bottom: -6rem;
	left: 6.25rem;
	position: absolute;
}

.top-fv__main-message span {
	background-color: #fff;
	display: inline-block;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2.5rem;
	font-weight: 700;
	letter-spacing: 0.125rem;
	line-height: 1.4;
	padding-block: 0.15625rem;
}

.top-fv__text-pad {
	padding-inline: 1.25rem 0;
}

.top-fv__text-pad--10 {
	padding-inline: 0.625rem 0;
}

.top-fv__text-small {
	color: #142460 !important;
	font-size: 2.125rem !important;
	letter-spacing: 0.10625rem !important;
}

.top-fv__text-gradient {
	background: var(--Linear, linear-gradient(180deg, #71E4FF 3.28%, #005BBF 96.28%));
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.top-fv__text-gradient--small {
	font-size: 2.125rem !important;
	letter-spacing: 0.10625rem !important;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-image: inherit;
}

.top-fv__sub-message {
	display: flex;
	flex-direction: column;
	margin-block-start: 0.625rem;
}

.top-fv__sub-message span {
	background-color: #fff;
	display: inline;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	line-height: 190%;
	padding-inline: 0.625rem;
	width: -moz-fit-content;
	width: fit-content;
}

.top-fv__text-comma {
	letter-spacing: -0.21375rem;
	padding-inline: 0 !important;
}

.webp .top-fv {
	background-image: url("../../assets/img/top_fv_bg.webp");
}

/*===================================================================
# Top - About
===================================================================*/

.top-about {
	background: url(../../assets/img/top_about_bg.webp) bottom center/cover no-repeat;
	margin-block-start: -6.875rem;
	overflow-x: hidden;
	padding-block: 16.4375rem 17.6875rem;
	position: relative;
	z-index: 1;
}

.top-about__inner {
	display: flex;
	justify-content: space-between;
}

.top-about__texts {
	flex: 0 0 36.0625rem;
}

.top-about__title {
	align-items: center;
	display: flex;
	-moz-column-gap: 1.8125rem;
	column-gap: 1.8125rem;
}

.top-about__title-en {
	color: #FFF;
	font-family: Alexandria, sans-serif;
	font-size: 3.75rem;
	font-weight: 400;
	letter-spacing: 0.1875rem;
	line-height: 100%;
}

.top-about__title-jp {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	line-height: 100%;
	opacity: 0.5;
}

.top-about__main-message {
	color: #FFF;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2.125rem;
	font-weight: 700;
	letter-spacing: 0.10625rem;
	line-height: 3.75rem;
	margin-block-start: 3.25rem;
}

.top-about__message-yellow {
	color: #FDF9B9;
}

.top-about__sub-message {
	color: #FFF;
	letter-spacing: 0.05rem;
	line-height: 211%;
	margin-block-start: 2.0625rem;
}

.top-about__btn {
	align-items: center;
	display: flex;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	-moz-column-gap: 0.625rem;
	background-color: #FFF;
	border: 0.125rem solid #142460;
	border-radius: 0.375rem;
	column-gap: 0.625rem;
	margin-block-start: 2.0625rem;
	margin-block-start: 2.375rem;
	padding: 0.78125rem 4.21875rem;
	transition: color 0.3s ease, background-color 0.3s ease;
}

.top-about__btn span {
	color: #142460;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.0225rem;
}

.top-about__btn svg {
	height: 1rem;
	margin-block-start: 0.15625rem;
	transition: transform 0.3s ease;
	width: 1rem;
}

.top-about__diagram {
	margin-inline-end: 3.6875rem;
}

.top-about__triangle {
	height: 27.625rem;
	margin-block-start: 0.125rem;
	position: relative;
	width: 29.4375rem;
}

.top-about__triangle::before {
	border: 0.125rem solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	content: "";
	height: 14rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 14rem;
}

.top-about__circle {
	position: absolute;
}

.top-about__circle--top {
	left: 50%;
	top: 0.75rem;
	transform: translateX(-50%);
}

.top-about__circle--left {
	bottom: 0.75rem;
	left: 0.75rem;
}

.top-about__circle--right {
	bottom: 0.75rem;
	right: 0.75rem;
}

.top-about__diagram-text {
	align-items: center;
	background: linear-gradient(226deg, #ADE4E7 1.92%, #028CC9 85.39%);
	border-radius: 50%;
	color: #FFF;
	display: flex;
	flex-direction: column;
	height: 12.75rem;
	justify-content: center;
	position: relative;
	width: 12.75rem;
}

.top-about__diagram-text::before {
	backdrop-filter: blur(1.6875rem);
	background: rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	content: "";
	height: 14.25rem;
	left: 50%;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: 14.25rem;
	-webkit-backdrop-filter: blur(1.6875rem);
	pointer-events: none;
	z-index: -1;
}

.top-about__diagram-text-sub {
	font-family: "Noto Serif JP";
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: 0.06875rem;
	line-height: 3.5625rem;
}

.top-about__diagram-text-main {
	font-family: "Noto Serif JP";
	font-size: 1.875rem;
	font-weight: 700;
	letter-spacing: 0.09375rem;
	line-height: 3.5625rem;
}

.top-about__curve-top {
	bottom: -0.0625rem;
	display: block;
	height: 6.25rem;
	left: 50%;
	position: absolute;
	translate: -50%;
	width: 100vw;
}

.top-about__curve-top img {
	height: 100%;
	width: 100% !important;
}

/*===================================================================
# Top - Services
===================================================================*/

.top-services {
	padding-block: 4.3125rem 7.125rem;
	position: relative;
	z-index: 2;
}

.top-services__upper {
	position: relative;
	z-index: 2;
}

.top-services__title-wrapper {
	text-align: center;
}

.top-services__title-en {
	font-family: Alexandria, sans-serif;
	font-size: 3.75rem;
	font-weight: 400;
	letter-spacing: 0.1875rem;
	line-height: 100%;
	text-transform: uppercase;
}

.top-services__title-jp {
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	line-height: 100%;
	margin-block-start: 1.125rem;
	opacity: 0.5;
}

.top-services__main-message {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 3.75rem;
	margin-block-start: 3.1875rem;
	text-align: center;
}

.top-services__sub-message {
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 0.8125rem;
	text-align: center;
}

.top-services__cards {
	display: flex;
	flex-wrap: wrap;
	gap: 2.1875rem 1.21875rem;
	justify-content: center;
	margin-block-start: 2.875rem;
}

.top-services__card {
	padding: 8.75rem 1.5625rem 1.5625rem;
	position: relative;
	width: 24.1875rem;
}

.top-services__card::after {
	background: url(../../assets/img/top_services_card_arrow.svg) center center/cover no-repeat;
	border-bottom-right-radius: 0.625rem;
	bottom: 0;
	box-shadow: -0.125rem -0.125rem 0.625rem rgba(0, 0, 0, 0.1);
	content: "";
	height: 2.625rem;
	position: absolute;
	right: 0;
	width: 2.625rem;
	z-index: 2;
}

.top-services__card-img {
	border-radius: 0.625rem;
	height: 100%;
	left: 0;
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	z-index: -1;
}

.top-services__card-label {
	background-color: #FDF9B9;
	border-radius: 1.875rem;
	display: inline-block;
	font-family: Barlow, sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.040625rem;
	line-height: 100%;
	padding: 0.375rem 0.875rem;
	text-transform: uppercase;
}

.top-services__card-title {
	color: #FFF;
	font-size: 1.625rem;
	font-weight: 700;
	letter-spacing: 0.08125rem;
	line-height: 140%;
	margin-block-start: 0.6875rem;
}

.top-services__card-sub-message {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 170%;
}

.top-services__btn {
	align-items: center;
	display: flex;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	-moz-column-gap: 0.625rem;
	background-color: transparent;
	border: 0.125rem solid #142460;
	border-radius: 0.375rem;
	color: #142460;
	column-gap: 0.625rem;
	margin-block-start: 2.0625rem;
	margin-block-start: 2.625rem;
	margin-block-start: 4.49375rem;
	margin-inline: auto;
	padding: 0.78125rem 4.21875rem;
	transition: background-color 0.3s ease;
}

.top-services__btn span {
	color: inherit;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.0225rem;
}

.top-services__btn svg {
	color: inherit;
	height: 1rem;
	transition: transform 0.3s ease;
	width: 1rem;
}

.top-services__middle {
	margin-block-start: 6.3125rem;
	position: relative;
	z-index: 2;
}

.top-services__middle-loop {
	animation: loop-animation 30s linear infinite;
	display: flex;
	width: -moz-max-content;
	width: max-content;
}

.top-services__middle-inner {
	align-items: center;
	display: flex;
	justify-content: center;
}

.top-services__middle-text {
	color: #142460;
	flex-wrap: nowrap;
	font-family: Alexandria, sans-serif;
	font-size: 8.125rem;
	font-weight: 200;
	letter-spacing: 0.1625rem;
	line-height: 100%;
	text-transform: uppercase;
}

.top-services__middle-img {
	border-radius: 3.84375rem;
	height: 7.6875rem;
	margin-inline: 0.6875rem 1.125rem;
	width: 11.875rem;
}

.top-services__lower {
	position: relative;
	z-index: 4;
}

.top-services__banners {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-block-start: 8.3125rem;
	margin-inline: auto;
	row-gap: 1.6875rem;
}

.top-services__banner {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	border-radius: 0.625rem;
	height: auto;
	overflow: hidden;
	padding: 3.25rem 3.75rem;
	position: relative;
	width: 100%;
}

.top-services__banner--project {
	background-image: url(../../assets/img/top_services_banner1.png);
}

.top-services__banner--manufacturers {
	background-image: url(../../assets/img/top_services_banner2.png);
}

.top-services__banner-title-en {
	color: #FFF;
	font-family: Barlow, sans-serif;
	font-size: 2.625rem;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.13125rem;
	line-height: 100%;
}

.top-services__banner-title-jp {
	color: #FFF;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04375rem;
	line-height: 140%;
	margin-block-start: 0.3125rem;
	opacity: 0.5;
}

.top-services__banner-message {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 170%;
	margin-block-start: 1.0625rem;
}

.top-services__banner-arrow {
	align-items: center;
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	border-top-left-radius: 0.625rem;
	bottom: 0;
	display: flex;
	height: 3.4375rem;
	justify-content: center;
	position: absolute;
	right: 0;
	width: 3.4375rem;
}

.top-services__banner-arrow svg {
	height: 1.3125rem;
	width: 1.3125rem;
}

.top-services__dot {
	height: auto;
	left: 50%;
	position: absolute;
	top: 0.6875rem;
	translate: -50%;
	width: 84rem;
	z-index: 1;
}

.top-services__line {
	bottom: -9.8125rem;
	height: 39.125rem;
	left: 0;
	position: absolute;
	width: 95.0625rem;
	z-index: 3;
}

.webp .top-services__banner--project {
	background-image: url(../../assets/img/top_services_banner1.webp); /* webp対応ブラウザ用の画像設定 */
}

.webp .top-services__banner--manufacturers {
	background-image: url(../../assets/img/top_services_banner2.webp); /* webp対応ブラウザ用の画像設定 */
}

/*===================================================================
# Top Company
===================================================================*/

.top-company {
	background: url(../../assets/img/top_company_bg.png) bottom center/cover no-repeat;
	padding-block: 15.125rem 22.5rem;
	position: relative;
	z-index: 1;
}

.top-company__curve-bottom {
	display: block;
	height: 6.25rem;
	left: 50%;
	position: absolute;
	top: -0.0625rem;
	transform: translateX(-50%) rotate(180deg);
	width: 100vw;
	z-index: 2;
}

.top-company__curve-bottom img {
	height: 100%;
	width: 100% !important;
}

.top-company__inner {
	display: flex;
	max-width: 67.5rem;
	-moz-column-gap: 3.125rem;
	column-gap: 3.125rem;
}

.top-company__texts {
	flex: 0 0 29.9375rem;
	margin-block-start: 0.5625rem;
	padding-inline-start: 0.6875rem;
}

.top-company__title-en {
	color: #FFF;
	font-family: Alexandria, sans-serif;
	font-size: 3.75rem;
	font-weight: 400;
	letter-spacing: 0.1875rem;
	line-height: 100%;
	text-transform: uppercase;
}

.top-company__title-jp {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	line-height: 100%;
	margin-block-start: 1rem;
	opacity: 0.5;
}

.top-company__main-message {
	margin-block-start: 3rem;
}

.top-company__main-message span {
	background-color: #fff;
	display: inline;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2.3125rem;
	font-weight: 700;
	letter-spacing: 0.1148125rem;
	line-height: 1.4;
}

.top-company__text-pad {
	padding-inline-start: 1.0625rem;
}

.top-company__text-small {
	color: #142460 !important;
	font-size: 1.9375rem !important;
	letter-spacing: 0.097625rem !important;
}

.top-company__text-period {
	letter-spacing: -0.2em !important;
}

.top-company__text-gradient {
	background: var(--Linear, linear-gradient(180deg, #71E4FF 3.28%, #005BBF 96.28%));
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.top-company__sub-message {
	color: #FFF;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.5rem;
}

.top-company__btn {
	align-items: center;
	display: flex;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	-moz-column-gap: 0.625rem;
	background-color: transparent;
	border: 0.125rem solid #fff;
	border-radius: 0.375rem;
	column-gap: 0.625rem;
	margin-block-start: 2.0625rem;
	margin-block-start: 2.625rem;
	padding: 0.78125rem 4.21875rem;
	transition: background-color 0.3s ease;
}

.top-company__btn span {
	color: #FFF;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.0225rem;
}

.top-company__btn svg {
	transition: transform 0.3s ease;
}

.top-company__imgs {
	flex: 1;
}

.top-company__img-container {
	height: 34.375rem;
	position: relative;
	width: 35.25rem;
}

.top-company__img {
	border-radius: 0.625rem;
	display: block;
	height: auto;
	overflow: hidden;
	position: absolute;
}

.top-company__img--1 {
	left: 0;
	top: 4.125rem;
	width: 15.0625rem;
}

.top-company__img--2 {
	right: 0;
	top: 0;
	width: 18.625rem;
}

.top-company__img--3 {
	bottom: 0;
	left: 50%;
	translate: -50%;
	width: 23rem;
}

/*===================================================================
# Top - News
===================================================================*/

.top-news {
	background-color: #F3F3F3;
	padding-block: 8.4375rem;
}

.top-news__inner {
	display: flex;
	-moz-column-gap: 5.0625rem;
	column-gap: 5.0625rem;
}

.top-news__title-en {
	font-family: Alexandria, sans-serif;
	font-size: 3.75rem;
	font-weight: 400;
	letter-spacing: 0.1875rem;
	line-height: 100%;
	text-transform: uppercase;
}

.top-news__title-jp {
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	line-height: 100%;
	margin-block-start: 1.25rem;
	opacity: 0.5;
}

.top-news__btn {
	align-items: center;
	display: flex;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	-moz-column-gap: 0.625rem;
	background-color: transparent;
	border: 0.125rem solid #142460;
	border-radius: 0.375rem;
	column-gap: 0.625rem;
	margin-block-start: 2.0625rem;
	margin-block-start: 10.8125rem;
	padding: 0.875rem 0.875rem;
	transition: color 0.3s ease, background-color 0.3s ease;
}

.top-news__btn span {
	color: #142460;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: -0.02rem;
}

.top-news__btn svg {
	height: 1rem;
	margin-block-start: 0.15625rem;
	transition: transform 0.3s ease;
	width: 1rem;
}

.top-news__list {
	display: flex;
	flex-direction: column;
	row-gap: 0.75rem;
}

.top-news__item {
	background-color: #FFF;
	border-radius: 0.625rem;
	padding: 1.3125rem 1.875rem;
	position: relative;
	transition: background-color 0.3s ease;
	width: 58.125rem;
}

.top-news__link {
	color: inherit;
	display: block;
}

.top-news__link::after {
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.top-news__date {
	color: #142460;
	font-family: "Barlow", sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	text-transform: uppercase;
	transition: color 0.3s ease;
}

.top-news__category {
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	border-radius: 62.5rem;
	color: #FFF;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 100%;
	margin-inline-start: 0.3125rem;
	padding: 0.1875rem 0.6875rem;
	transition: all 0.3s ease;
}

.top-news__post-title {
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0.05625rem;
	line-height: 190%;
	transition: color 0.3s ease;
}

.top-news__deco {
	color: #68C2EB;
	height: 1.125rem;
	position: absolute;
	right: 2.1875rem;
	top: 50%;
	transition: color 0.3s ease;
	translate: 0 -50%;
	width: 1.125rem;
}

.webp .fv__upper {
	background-image: url(../../assets/img/fv_upper_bg.webp);
}

/*===================================================================
# Top Recruit
===================================================================*/

.top-recruit {
	background: #F3F3F3;
	overflow-x: hidden;
	padding-block-end: 3.5625rem;
}

.top-recruit__inner {
	background: url(../../assets/img/top_recruit_bg.png) center center/cover no-repeat;
	display: flex;
	max-width: 88.25rem;
	padding-inline: 6.625rem;
}

.top-recruit__title-block {
	padding-block-start: 5.3125rem;
}

.top-recruit__title-en {
	color: #FFF;
	font-family: Alexandria, sans-serif;
	font-size: 3.75rem;
	font-weight: 400;
	letter-spacing: 0.1875rem;
	line-height: 100%;
	text-transform: uppercase;
}

.top-recruit__title-jp {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	line-height: 100%;
	margin-block-start: 1.1875rem;
}

.top-recruit__text-main {
	margin-inline: 3.5rem 4rem;
}

.top-recruit__main-message {
	color: #FDF9B9;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.1rem;
	line-height: 3.75rem;
	margin-block-start: 5.4375rem;
	margin-inline-start: 0.75rem;
}

.top-recruit__sub-message-wrapper {
	margin-block-start: 1.8125rem;
	margin-inline-start: 0.75rem;
}

.top-recruit__sub-message {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 190%;
}

.top-recruit__sub-message + .top-recruit__sub-message {
	margin-block-start: 1.8125rem;
}

.top-recruit__btn {
	align-items: center;
	display: flex;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	-moz-column-gap: 0.625rem;
	background-color: #FFF;
	border: 0.125rem solid #ADE4E7;
	border-radius: 0.375rem;
	color: #26A8E2;
	column-gap: 0.625rem;
	margin-block-start: 2.375rem;
	padding: 0.78125rem 5.3125rem;
	transition: color 0.3s ease, background-color 0.3s ease;
}

.top-recruit__btn span {
	color: inherit;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.0225rem;
}

.top-recruit__btn svg {
	color: inherit;
	height: 0.875rem;
	transform: translateY(0.09375rem);
	transition: transform 0.3s ease;
	width: 0.875rem;
}

.top-recruit__imgs {
	display: flex;
	flex-direction: column;
	row-gap: 1rem;
}

.top-recruit__img {
	display: block;
	height: auto;
	overflow: hidden;
	width: 21.375rem;
}

.top-recruit__img--1 {
	border-radius: 0 0 0.625rem 0.625rem;
}

.top-recruit__img--2 {
	border-radius: 0.625rem;
}

.top-recruit__img--3 {
	border-radius: 0.625rem 0.625rem 0 0;
}

.webp .top-recruit__inner {
	background-image: url(../../assets/img/top_recruit_bg.webp); /* webp対応ブラウザ用の画像設定 */
}

/*===================================================================
# Project
===================================================================*/

.project {
	background-color: #F3F3F3;
	margin-block-start: 5.875rem;
	overflow-x: hidden;
	position: relative;
}

.project__inner {
	padding-block: 5.875rem 8.4375rem;
}

.project__lead {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 170%;
	text-align: center;
}

.project__list {
	display: flex;
	flex-direction: column;
	margin-block-start: 4.125rem;
	position: relative;
	row-gap: 3.125rem;
	z-index: 2;
}

.project__item {
	display: flex;
	-moz-column-gap: 1.75rem;
	background-color: #FFF;
	border-radius: 0.625rem;
	column-gap: 1.75rem;
	width: 100%;
}

.project__item-img {
	aspect-ratio: 490/309;
	display: block;
	flex: 0 0 30.625rem;
}

.project__item-img img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.project__item-body {
	flex: 1;
	padding: 3.625rem 3.4375rem 3.5625rem 0;
}

.project__item-title {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.1225rem;
	line-height: 100%;
}

.project__item-text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 200%;
	margin-block-start: 1.125rem;
}

.project__item-btn {
	align-items: center;
	display: flex;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	-moz-column-gap: 0.625rem;
	background-color: #FFF;
	border: 0.125rem solid #142460;
	border-radius: 0.375rem;
	column-gap: 0.625rem;
	margin-block-start: 2.375rem;
	padding: 0.625rem 4.375rem;
	transition: color 0.3s ease, background-color 0.3s ease;
}

.project__item-btn span {
	color: #142460;
	font-weight: 600;
	letter-spacing: -0.02rem;
}

.project__item-btn svg {
	margin-block-start: 0.15625rem;
	transition: transform 0.3s ease;
}

.project__dot {
	display: block;
	height: auto;
	left: 50%;
	position: absolute;
	top: 24.3125rem;
	translate: -50%;
	width: 84rem;
	z-index: 1;
}

/*===================================================================
# Company
===================================================================*/

.company {
	background-color: #F3F3F3;
	margin-block-start: 5.875rem;
}

.company__inner {
	display: flex;
	margin-block: 5.625rem 6.875rem;
}

.company__main {
	flex: 1;
	z-index: 1;
}

.company__title-wrapper {
	margin-inline-start: 0;
}

.company__title-wrapper--message {
	margin-inline-start: 1.25rem;
}

.company__title-en {
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	opacity: 0.5;
	text-transform: uppercase;
}

.company__title-jp {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 160%;
	margin-block-start: 0.25rem;
}

.company-menu__list {
	display: flex;
	flex: 0 0 10.5rem;
	flex-direction: column;
	height: -moz-fit-content;
	height: fit-content;
	position: sticky;
	row-gap: 1.4375rem;
	top: 12.5rem;
}

.company-menu__item a {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.75rem;
	column-gap: 0.75rem;
}

.company-menu__item a span {
	color: #343434;
	display: inline-block;
	font-weight: 600;
	line-height: 1;
	padding-block-end: 0.125rem;
}

.company-menu__item a svg {
	display: block;
	flex-shrink: 0;
	height: 1.125rem;
	width: 1.125rem;
}

.company-message__content {
	display: flex;
	margin-block-start: 1.875rem;
	-moz-column-gap: 3.125rem;
	column-gap: 3.125rem;
}

.company-message__img-wrapper {
	flex: 0 0 24.3125rem;
}

.company-message__img {
	display: block;
	height: auto;
	width: 100%;
}

.company-message__name-wrapper {
	align-items: center;
	display: flex;
	-moz-column-gap: 1.125rem;
	column-gap: 1.125rem;
	margin-block-start: 1.0625rem;
	margin-inline-start: 4.5625rem;
}

.company-message__role {
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 200%;
}

.company-message__name {
	display: block;
	height: 3.8125rem;
	width: 6.5625rem;
}

.company-message__text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 200%;
}

.company .company-policy__container {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-block-start: 1.25rem;
	margin-inline: auto 0;
	max-width: 63.3125rem;
}

.company .company-policy__inner {
	padding: 2.8125rem 3.75rem 4.0625rem;
}

.company .company-policy__list {
	display: flex;
	flex-direction: column;
	margin-block-start: 2.5rem;
}

.company .company-policy__item {
	align-items: center;
	border-top: 0.0625rem solid rgba(20, 36, 96, 0.1);
	display: flex;
	padding-block: 2.625rem;
	-moz-column-gap: 2.125rem;
	column-gap: 2.125rem;
}

.company .company-policy__item:last-child {
	align-items: flex-start;
	padding-block-end: 0;
}

.company .company-policy__item-label {
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	border-radius: 3.5rem;
	color: #FFF;
	display: block;
	flex-shrink: 0;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8125rem;
	text-align: center;
	width: 6.9375rem;
}

.company .company-policy__item-text {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.625rem;
	font-weight: 700;
	letter-spacing: 0.11375rem;
	line-height: 160%;
}

.company .company-policy__mission-list {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 2.5rem;
}

.company .company-policy__mission-item {
	display: flex;
	-moz-column-gap: 1.1875rem;
	column-gap: 1.1875rem;
}

.company .company-policy__mission-img {
	border-radius: 0.625rem;
	display: block;
	flex: 0 0 8.75rem;
	overflow: hidden;
	width: 100%;
}

.company .company-policy__mission-text {
	flex: 0 0 12.1875rem;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 180%;
}

.company .company-outline__container {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-block-start: 3.75rem;
	margin-inline: auto 0;
	max-width: 63.3125rem;
}

.company .company-outline__inner {
	padding: 2.8125rem 3.75rem 4.0625rem;
}

.company .company-outline__office-list {
	display: flex;
	-moz-column-gap: 2.4375rem;
	column-gap: 2.4375rem;
	margin-block-start: 2.5rem;
}

.company .company-outline__office-img {
	border-radius: 0.75rem;
	display: block;
	overflow: hidden;
	width: 100%;
}

.company .company-outline__office-info {
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.125rem;
}

.company .company-outline__office-info--pc {
	display: block;
}

.company .company-outline__office-info--sp {
	display: none;
}

.company .company-outline__list {
	display: flex;
	flex-direction: column;
	margin-block-start: 3.3125rem;
}

.company .company-outline__item {
	border-bottom: 0.125rem solid rgba(20, 36, 96, 0.1);
	display: grid;
	grid-template-columns: 10rem 1fr;
	padding-block: 1.875rem;
	position: relative;
}

.company .company-outline__item:first-child {
	border-top: 0.125rem solid rgba(20, 36, 96, 0.1);
}

.company .company-outline__item::after {
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	bottom: -0.125rem;
	content: "";
	height: 0.125rem;
	left: 0;
	position: absolute;
	width: 8.5rem;
}

.company .company-outline__item-label {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.03375rem;
	line-height: 180%;
}

.company .company-outline__item-content {
	font-weight: 500;
	letter-spacing: 0.03rem;
	line-height: 180%;
}

.company .company-area__container {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-block-start: 3.75rem;
	margin-inline: auto 0;
	max-width: 63.3125rem;
}

.company .company-area__inner {
	padding: 2.8125rem 3.75rem 4.0625rem;
}

.company .company-area__list {
	display: flex;
	flex-direction: column;
	margin-block-start: 2.5rem;
}

.company .company-area__item {
	border-top: 0.0625rem solid rgba(20, 36, 96, 0.1);
	display: flex;
	justify-content: space-between;
	padding-block: 2.625rem;
}

.company .company-area__item:last-child {
	border-bottom: 0.0625rem solid rgba(20, 36, 96, 0.1);
}

.company .company-area__item-title {
	color: #142460;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.1225rem;
	line-height: 100%;
	margin-block: 1.375rem;
}

.company .company-area__item-row {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.8125rem;
	column-gap: 0.8125rem;
	margin-block-end: 0.875rem;
}

.company .company-area__item-label {
	background-color: #DFDFDF;
	border-radius: 3.5rem;
	display: inline-block;
	flex-shrink: 0;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 1.6875rem;
	padding-inline: 1.609375rem;
	text-transform: uppercase;
}

.company .company-area__item-text {
	letter-spacing: 0.05rem;
	line-height: 1.6875rem;
}

.company .company-area__item-img {
	border-radius: 0.625rem;
	display: block;
	flex: 0 0 20.8125rem;
	overflow: hidden;
}

.company .company-history__container {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-block-start: 3.75rem;
	margin-inline: auto 0;
	max-width: 63.3125rem;
}

.company .company-history__inner {
	padding: 2.8125rem 3.75rem 4.0625rem;
}

.company .company-history__list {
	display: flex;
	flex-direction: column;
	margin-block-start: 1rem;
}

.company .company-history__item {
	border-bottom: 0.125rem solid rgba(20, 36, 96, 0.1);
	display: grid;
	grid-template-columns: 10rem 1fr;
	padding-block: 1.5rem;
	position: relative;
}

.company .company-history__item::after {
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	bottom: -0.125rem;
	content: "";
	height: 0.125rem;
	left: 0;
	position: absolute;
	width: 8.5rem;
}

.company .company-history__item-year {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.03375rem;
	line-height: 180%;
}

.company .company-history__item-content {
	font-weight: 500;
	letter-spacing: 0.03rem;
	line-height: 180%;
}

#message,
#policy,
#outline,
#area,
#history {
	scroll-margin-top: 7.5rem;
}

/*===================================================================
# Services 一覧
===================================================================*/

.services {
	background: url(../../assets/img/services_bg.png) center center/cover no-repeat;
	margin-block-start: 5.875rem;
	overflow-x: clip;
	position: relative;
}

.services__intro {
	display: flex;
	justify-content: space-between;
	margin-block-start: 4.0625rem;
}

.services__intro-texts {
	flex: 1;
	margin-block-start: 2rem;
}

.services__intro-title {
	display: flex;
	flex-direction: column;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 160%;
	position: relative;
	row-gap: 0.625rem;
}

.services__intro-underline1,
.services__intro-underline2 {
	height: auto;
	left: 0;
	position: absolute;
}

.services__intro-underline1 {
	top: 3rem;
	width: 15.9375rem;
}

.services__intro-underline2 {
	bottom: -0.875rem;
	width: 29.8125rem;
}

.services__intro-lead {
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 2.25rem;
}

.services__intro-img {
	display: block;
	flex: 0 0 33.125rem;
	height: auto;
	width: 100%;
}

.services__menu {
	padding-block: 3.75rem 4.0625rem;
	position: sticky;
	top: 5.875rem;
	transition: background-color 0.3s ease, padding 0.3s ease;
	z-index: 3;
}

.services__menu-list {
	display: grid;
	gap: 0.875rem;
	grid-template-columns: repeat(5, 1fr);
	position: relative;
	width: 100%;
	z-index: 3;
}

.services__menu-item {
	display: flex;
	width: auto;
}

.services__menu-item-title {
	align-items: center;
	background-color: #26A8E2;
	border-radius: 0.625rem;
	color: #FFF;
	display: flex;
	font-weight: 600;
	height: 3.875rem;
	justify-content: center;
	letter-spacing: 0.05rem;
	line-height: 130%;
	padding-inline: 2.5rem 3.125rem;
	position: relative;
	text-align: center;
	transition: background-color 0.3s;
	width: 100%;
}

.services__menu-item-title:hover {
	background-color: #198abc;
}

.services__menu-item-title span {
	white-space: nowrap;
}

.services__menu-item-title svg {
	height: 0.875rem;
	pointer-events: none;
	position: absolute;
	right: 1.125rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0.875rem;
}

.services .services-division__list {
	display: flex;
	flex-direction: column;
	margin-block-end: 6.875rem;
	row-gap: 3.75rem;
}

.services .services-division__inner {
	background-color: #fff;
	border: 0.0625rem solid rgba(20, 36, 96, 0.2);
	border-radius: 1.25rem;
	overflow: hidden;
	position: relative;
	z-index: 2;
}

.services .services-division__upper-inner {
	padding: 3.375rem 4.5rem 0.375rem;
}

.services .services-division__lower-inner {
	background-color: #F3F3F3;
	padding: 4.125rem 4.5rem 4.125rem;
}

.services .services-division__head {
	border-bottom: 0.0625rem solid rgba(20, 36, 96, 0.1);
	display: flex;
	justify-content: space-between;
	padding-block-end: 2.125rem;
}

.services .services-division__label {
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	opacity: 0.5;
	text-transform: uppercase;
}

.services .services-division__title {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 160%;
}

.services .services-division__lead {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 200%;
}

.services .services-division__main-visual {
	display: flex;
	-moz-column-gap: 2.9375rem;
	column-gap: 2.9375rem;
	padding-block: 2.125rem 3.75rem;
}

.services .services-division__img {
	border-radius: 0.625rem;
	display: block;
	flex: 0 0 19.875rem;
	height: auto;
	overflow: hidden;
	width: 100%;
}

.services .services-division__info-term {
	background-color: #fff;
	border: 0.0625rem solid rgba(20, 36, 96, 0.2);
	border-radius: 3.5rem;
	color: rgba(20, 36, 96, 0.6);
	display: inline-block;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.5625rem;
	padding-inline: 0.9375rem;
}

.services .services-division__info-description {
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 150%;
	margin-block: 0.875rem 1.5rem;
}

.services .services-division__info-divider {
	color: rgba(20, 36, 96, 0.2);
}

.services .services-division__check-list {
	margin-block-start: 0.875rem;
}

.services .services-division__check-list li {
	display: block;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 220%;
	padding-inline-start: 1.75rem;
	position: relative;
}

.services .services-division__check-list li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='15' viewBox='0 0 20 15' fill='none'%3E%3Cpath d='M1.76758 3.76782L8.76758 10.7678L17.7676 1.76782' stroke='url(%23paint0_linear_1_6822)' stroke-width='5'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_1_6822' x1='1.7677' y1='6.26774' x2='17.7676' y2='6.26774' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0.02' stop-color='%23ADE4E7'/%3E%3Cstop offset='1' stop-color='%2326A8E2'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 0.9375rem;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 1.25rem;
}

.services .services-division__info-note {
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 160%;
	margin-block: 0.5rem 1.5rem;
}

.services .services-division__sub-title {
	border-bottom: 0.0625rem solid rgba(20, 36, 96, 0.2);
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.06875rem;
	line-height: 100%;
	padding-block-end: 1.25rem;
}

.services .services-division__balloon-list {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	padding-block: 1.375rem 2.625rem;
}

.services .services-division__balloon-list li {
	background-color: #26A8E2;
	border-radius: 1.59375rem 1.59375rem 1.59375rem 0;
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.046875rem;
	line-height: 170%;
	padding: 0.75rem 1.5rem;
}

.services .services-division__case-card {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-block: 1.328125rem 2.640625rem;
	padding: 1.25rem 1.5rem 1.25rem 8rem;
	position: relative;
}

.services .services-division__case-icon {
	bottom: 0;
	height: auto;
	left: 1.5rem;
	position: absolute;
	width: 5.25rem;
}

.services .services-division__case-text {
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 170%;
}

.services .services-division__flow-list {
	display: flex;
	margin-block-start: 1.375rem;
}

.services .services-division__flow-list li {
	background-color: #fff;
	border-radius: 0.625rem;
	font-size: 0.9375rem;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 170%;
	padding: 0.875rem 1.5rem;
	position: relative;
}

.services .services-division__flow-list li:not(:last-child) {
	margin-inline-end: 2.625rem;
}

.services .services-division__flow-list li:not(:last-child)::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='27' viewBox='0 0 22 27' fill='none'%3E%3Cpath d='M22 13.1143L10.5254 26.2285V21.3105H0V4.91797H10.5254V0L22 13.1143Z' fill='url(%23paint0_linear_1_6907)'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_1_6907' x1='2' y1='13.114' x2='21' y2='13.114' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0.02' stop-color='%23ADE4E7'/%3E%3Cstop offset='1' stop-color='%2326A8E2'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 1.6875rem;
	position: absolute;
	right: -2rem;
	top: 50%;
	translate: 0 -50%;
	width: 1.375rem;
}

.services__dot {
	display: block;
	height: auto;
	left: 0;
	position: absolute;
	top: 16.25rem;
	width: 85.3125rem;
	z-index: 1;
}

#wholesale,
#electrical,
#housing,
#solution,
#operation {
	scroll-margin-top: 7.5rem;
}

.webp .services {
	background-image: url("../../assets/img/services_bg.webp");
}

/*===================================================================
# Manufacturers
===================================================================*/

.manufacturers {
	background-color: #F3F3F3;
	margin-block-start: 5.875rem;
	overflow: hidden;
	position: relative;
}

.manufacturers__menu-list {
	display: grid;
	gap: 0.875rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-block-start: 5.8125rem;
	position: relative;
	width: 100%;
	z-index: 2;
}

.manufacturers__menu-item {
	display: flex;
	width: auto;
}

.manufacturers__menu-item-title {
	align-items: center;
	background-color: #26A8E2;
	border: 0.0625rem solid #26A8E2;
	border-radius: 0.625rem;
	color: #FFF;
	display: flex;
	font-weight: 600;
	height: 3.875rem;
	justify-content: center;
	letter-spacing: 0.05rem;
	line-height: 130%;
	padding-inline: 2.5rem 3.125rem;
	position: relative;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.3s ease, color 0.3s ease;
	width: 100%;
}

.manufacturers__menu-item-title:hover {
	background-color: #fff;
	color: #26A8E2;
}

.manufacturers__menu-item-title span {
	white-space: nowrap;
}

.manufacturers__menu-item-title svg {
	color: inherit;
	height: 0.875rem;
	pointer-events: none;
	position: absolute;
	right: 1.125rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0.875rem;
}

.manufacturers__menu-item-title svg path {
	transition: stroke 0.3s ease;
}

.manufacturers__list {
	display: flex;
	flex-direction: column;
	margin-block: 3.625rem 5.8125rem;
	position: relative;
	row-gap: 1.875rem;
	z-index: 2;
}

.manufacturers__item {
	background-color: #fff;
	border-radius: 0.625rem;
	display: flex;
	min-height: 18.1875rem;
	overflow: hidden;
	scroll-margin-top: 6.25rem;
}

.manufacturers__item-img {
	flex-shrink: 0;
	height: auto;
	width: 25.125rem;
	-o-object-fit: cover;
	object-fit: cover;
}

.manufacturers__item-texts {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	padding-inline: 2.0625rem 2.5rem;
}

.manufacturers__item-title {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.1225rem;
	line-height: 100%;
}

.manufacturers__item-makers {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 200%;
	margin-block-start: 1.125rem;
}

.manufacturers__dot {
	display: block;
	height: auto;
	left: 50%;
	position: absolute;
	top: 23.3125rem;
	translate: -50%;
	width: 84rem;
	z-index: 1;
}

/*===================================================================
# Contact
===================================================================*/

.contact {
	background-color: #F3F3F3;
	margin-block-start: 5.875rem;
}

.contact__form-container {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-block: 5.25rem 7.25rem;
	padding: 3.9375rem 6.25rem 3.875rem;
}

.contact__form-title {
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.0875rem;
	line-height: 150%;
	text-align: center;
}

.contact__form-lead {
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 0.6875rem;
	text-align: center;
}

.contact__form {
	display: flex;
	flex-direction: column;
	margin-block-start: 2.1875rem;
	row-gap: 1.5rem;
	width: 100%;
}

.contact__form-must {
	background-color: #26A8E2;
	border-radius: 0.25rem;
	color: #FFF;
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.6875rem;
	margin-inline-start: 0.5rem;
	padding-inline: 0.4375rem;
}

.contact__head {
	font-size: 1.125rem; /* 項目名 */
	font-weight: 600;
	letter-spacing: 0.05625rem;
	line-height: 150%;
}

.contact__btn {
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	border-radius: 0.375rem;
	color: #FFF;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 3.1875rem;
	margin-inline: auto; /* 送信ボタン */
	padding-inline: 7.3125rem;
	transition: opacity 0.3s ease;
	width: -moz-fit-content;
	width: fit-content;
}

.contact__btn:disabled,
.contact__btn[disabled] {
	background-color: #c9c9c9;
	cursor: not-allowed;
	opacity: 0.7;
}

.contact__btn:focus-visible {
	outline: none; /* デフォルト青枠を消す */ /* フォーカス時 */
	outline: 0.0625rem solid #26A8E2; /* あなたのテーマ色に変更 */
}

input[type=text],
input[type=tel],
input[type=email],
textarea {
	background: #F1F1F1;
	border: 0.0625rem solid rgba(20, 36, 96, 0.2);
	border-radius: 0.375rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 150%;
	margin-block-start: 0.5rem;
	padding: 0.875rem 1.0625rem;
	width: 100%;
}

input[type=text]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=email]::-moz-placeholder,
textarea::-moz-placeholder {
	color: #DDD;
}

input[type=text]::placeholder,
input[type=tel]::placeholder,
input[type=email]::placeholder,
textarea::placeholder {
	color: #DDD;
}

/* フォーカス時 */

input[type=text]:focus,
input[type=email]:focus,
textarea:focus {
	outline: 0.0625rem solid #26A8E2;
}

textarea {
	height: 16.1875rem;
	resize: vertical;
}

.contact__acceptance {
	margin-block: 1.0625rem 0.375rem;
	text-align: center;
}

/* CF7特有のリストアイテムの回り込みを解除 */

.wpcf7-list-item {
	display: inline-block; /* これでtext-align: centerが効くようになります */
	margin: 0;
}

.contact__underline-btn-link {
	color: #26A8E2;
	font-weight: 500;
	line-height: 180%;
	text-decoration-line: underline;
	text-decoration-style: solid;
	-webkit-text-decoration-skip-ink: none;
	text-decoration-skip-ink: none;
	text-decoration-thickness: auto;
	text-underline-offset: 0.1875rem;
	text-underline-position: from-font;
}

input[type=checkbox] {
	height: 0.0625rem;
	position: absolute;
	width: 0.0625rem; /* デフォルトのものを消す */
	clip: rect(0, 0, 0, 0);
}

/* フォーカス時 */

input[type=checkbox]:focus + span::before {
	outline: 0.0625rem solid #26A8E2;
}

/* チェックされた時の挙動 */

input[type=checkbox]:checked + span::before {
	background-color: #26A8E2;
}

input[type=checkbox]:checked + span::after {
	opacity: 1;
}

.wpcf7-list-item-label {
	cursor: pointer;
	display: inline-block;
	font-weight: 500;
	line-height: 180%;
	padding-left: 1.875rem;
	position: relative;
	text-align: left;
}

.wpcf7-list-item-label::before {
	background-color: #F1F1F1;
	border: 0.0625rem solid rgba(20, 36, 96, 0.2);
	border-radius: 0.1875rem;
	content: ""; /* ボックス */
	height: 1.125rem;
	left: 0;
	position: absolute;
	top: 0.34375rem;
	width: 1.25rem;
	z-index: 1;
}

.wpcf7-list-item-label::after {
	border-bottom: 0.15625rem solid #fff;
	border-right: 0.15625rem solid #fff;
	content: ""; /* チェックマーク */
	height: 0.75rem;
	left: 0.4375rem;
	opacity: 0;
	position: absolute;
	rotate: 45deg;
	top: 0.46875rem;
	transition: opacity 0.3s ease;
	width: 0.375rem;
	z-index: 2;
}

input[type=checkbox]:checked + .wpcf7-list-item-label::before {
	background-color: #26A8E2;
	border-color: #26A8E2;
}

input[type=checkbox]:checked + .wpcf7-list-item-label::after {
	opacity: 1;
}

/* 送信ボタンを指カーソルに */

.contact__confirm-btn,
#js-submit,
input[type=submit].wpcf7-submit {
	cursor: pointer;
}

/* スピナー */

.wpcf7-spinner {
	height: 0;
	margin: 0;
	padding: 0;
	position: absolute;
	width: 0;
}

/*===================================================================
# Privacy-Policy
===================================================================*/

.policy {
	background-color: #F3F3F3;
	margin-block-start: 5.875rem;
}

.policy__inner {
	border-radius: 0.625rem;
	max-width: 62.5rem;
	padding-block-start: 5rem;
}

.policy__content {
	background-color: #FFF;
	display: flex;
	flex-direction: column;
	margin-block-end: 9.75rem;
	padding: 3.9375rem 6.25rem 5rem;
	row-gap: 3.1875rem;
}

.policy__header-title {
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.1rem;
	line-height: 150%;
}

.policy__header-lead {
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.125rem;
}

.policy__article-title {
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.075rem;
	line-height: 150%;
	position: relative;
}

.policy__article-title::before {
	background-color: rgba(20, 36, 96, 0.1);
	bottom: -1.125rem;
	content: "";
	height: 0.1875rem;
	left: 0;
	position: absolute;
	width: 100%;
}

.policy__article-title::after {
	background-color: #142460;
	bottom: -1.125rem;
	content: "";
	height: 0.1875rem;
	left: 0;
	position: absolute;
	width: 4.625rem;
}

.policy__article-text {
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 2.75rem;
}

/*===================================================================
# About
===================================================================*/

.about {
	background-color: #fff;
	margin-block-start: 5.875rem;
	position: relative;
	z-index: 1;
}

.about__upper {
	margin-block-start: -9.75rem;
	overflow-x: hidden;
	padding-block: 18.75rem 17.375rem;
	position: relative;
	text-align: center;
	z-index: 1;
}

.about__upper-imgs-top {
	display: none;
	height: auto;
	left: 50%;
	position: absolute;
	top: 9.5rem;
	translate: -50%;
	width: 100%;
	z-index: 3;
}

.about__upper-imgs-top img {
	height: auto;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.about__upper-imgs-bottom {
	display: none;
	height: auto;
	left: 50%;
	position: absolute;
	top: 51.3125rem;
	translate: -50%;
	width: 100%;
	z-index: 3;
}

.about__upper-imgs-bottom img {
	height: auto;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.about__upper-message-wrapper {
	position: relative;
	z-index: 3;
}

.about__upper-sub-message {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	line-height: 100%;
}

.about__upper-main-message {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.625rem;
	font-weight: 700;
	letter-spacing: 0.08125rem;
	line-height: 100%;
	margin-block-start: 1.6875rem;
}

.about__upper-main-message--strong {
	font-size: 1.875rem;
	letter-spacing: 0.09375rem;
}

.about__upper-svg-pc {
	display: block;
	height: 1.4375rem;
	margin-block-start: 0.6875rem;
	position: relative;
	width: 31.75rem;
	z-index: 3;
}

.about__upper-svg-sp {
	display: none;
	height: 0.875rem;
	margin-block-start: 0.1875rem;
	position: relative;
	width: 21rem;
	z-index: 3;
}

.about__upper-lead {
	letter-spacing: 0.05rem;
	line-height: 230%;
	margin-block-start: 1.625rem;
	position: relative;
	z-index: 3;
}

.about__upper-imgs {
	height: auto;
	position: absolute;
	z-index: 2;
}

.about__upper-imgs--left {
	left: -0.125rem;
	top: 0.9375rem;
	width: 22.46875rem;
}

.about__upper-imgs--right {
	right: 0.125rem;
	top: 1.375rem;
	width: 20.8125rem;
}

.about__upper-bg {
	display: block;
	height: 173rem;
	left: 50%;
	position: absolute;
	top: -16.375rem;
	translate: -50%;
	width: 100%;
	z-index: 1;
}

.about__upper-bg img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center bottom;
	object-position: center bottom;
}

.about__dot {
	height: auto;
	left: 50%;
	position: absolute;
	top: 7.4375rem;
	translate: -50%;
	width: 86.375rem;
}

.about__job {
	border: 0.0625rem solid rgba(20, 36, 96, 0.2);
	border-radius: 1.25rem;
	margin-block-start: 8.6875rem;
	margin-inline: auto;
	overflow: hidden;
	position: relative;
	width: 75rem;
	z-index: 3;
}

.about__job-upper-inner {
	padding: 4.8125rem 4.6875rem;
}

.about__job-upper {
	background-color: #fff;
}

.about__job-upper__head {
	display: flex;
	-moz-column-gap: 2.625rem;
	column-gap: 2.625rem;
	text-align: left;
}

.about__job-upper-img {
	display: block;
	flex: 0 0 25.78125rem;
	height: auto;
	margin-inline-start: -0.5625rem;
	width: 100%;
}

.about__job-upper-texts {
	flex: 1;
	margin-block-start: 1.125rem;
}

.about__job-upper-title-en {
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	opacity: 0.5;
	text-transform: uppercase;
}

.about__job-upper-title-jp {
	color: #142460;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 160%;
	margin-block-start: 0.25rem;
}

.about__job-upper-catch {
	color: var(--4, #142460);
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 100%;
	margin-block-start: 1.625rem;
}

.about__job-upper-text {
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.375rem;
}

.about__job-upper-list {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-block-start: 3rem;
	-moz-column-gap: 5.5625rem;
	column-gap: 5.5625rem;
}

.about__job-upper-item {
	border: 0.0625rem solid rgba(20, 36, 96, 0.2);
	border-radius: 0.625rem;
	padding-block: 1.9375rem;
	width: 100%;
}

.about__job-upper-item--1,
.about__job-upper-item--2 {
	position: relative;
}

.about__job-upper-item--1::after,
.about__job-upper-item--2::after {
	background: url(../../assets/img/about_arrows.svg) center center/cover no-repeat;
	content: "";
	height: 9rem;
	position: absolute;
	right: -4.625rem;
	top: 50%;
	translate: 0 -50%;
	width: 3.65625rem;
	z-index: 3;
}

.about__job-upper-illust {
	height: auto;
	margin-inline: auto;
}

.about__job-upper-illust--1 {
	width: 10.3125rem;
}

.about__job-upper-illust--2 {
	width: 9.1875rem;
}

.about__job-upper-illust--3 {
	width: 9.4375rem;
}

.about__job-upper-item-title {
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: 0.0625rem;
	line-height: 200%;
}

.about__job-upper-item-title--1,
.about__job-upper-item-title--2 {
	padding-block: 0.875rem 0.75rem;
}

.about__job-upper-item-title--3 {
	padding-block: 2.4375rem 0.75rem;
}

.about__job-upper-item-list li + li {
	margin-block-start: 0.3125rem;
}

.about__job-upper-item-list li {
	background-color: #DDF3F9;
	border-radius: 0.875rem;
	font-size: 0.9375rem;
	height: 1.75rem;
	letter-spacing: 0.046875rem;
	line-height: 170%;
	margin-inline: auto;
	width: 13.4375rem;
}

.about__job-lower {
	background-color: #F3F3F3;
}

.about__job-lower-inner {
	padding: 4.5625rem 4.5625rem 4.875rem;
}

.about__job-lower-message {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.1225rem;
	line-height: 160%;
}

.about__job-lower-lead {
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.375rem;
}

.about__job-lower-list {
	display: flex;
	justify-content: space-between;
	margin-block-start: 2.5rem;
}

.about__job-lower-item {
	background-color: #fff;
	border-radius: 0.625rem;
	min-width: 20.75rem;
	padding: 1.6875rem 2.125rem 1.6875rem 2rem;
}

.about__job-lower-item-head {
	display: flex;
	-moz-column-gap: 0.875rem;
	align-items: center;
	column-gap: 0.875rem;
}

.about__job-lower-item-img {
	display: block;
	flex: 0 0 4.25rem;
	height: auto;
	width: 100%;
}

.about__job-lower-item-title {
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: 0.0625rem;
	line-height: 200%;
}

.about__job-lower-item-text {
	margin-block-start: 0.625rem;
}

.about__job-lower-item-text li {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 170%;
	text-align: left;
}

.about-strength {
	padding-block-end: 0.625rem;
}

.about-strength__title-en {
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	opacity: 0.5;
	text-align: center;
	text-transform: uppercase;
}

.about-strength__title-jp {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 160%;
	margin-block-start: 0.1875rem;
	text-align: center;
}

.about-strength__message-title {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 100%;
	margin-block-start: 1.5625rem;
	text-align: center;
}

.about-strength__message-text {
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.375rem;
	text-align: center;
}

.about-strength__list {
	display: flex;
	flex-direction: column;
	margin-block-start: 3.375rem;
	row-gap: 5rem;
}

.about-strength__item {
	display: flex;
	width: 100%;
	-moz-column-gap: 2.625rem;
	column-gap: 2.625rem;
}

.about-strength__item:nth-child(even) {
	flex-direction: row-reverse;
}

.about-strength__img {
	border-radius: 0.625rem;
	display: block;
	flex: 0 0 32.5rem;
	height: auto;
	overflow: hidden;
	width: 100%;
}

.about-strength__item-title-wrapper {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.75rem;
	column-gap: 0.75rem;
}

.about-strength__item-label {
	background-color: #142460;
	border-radius: 3.5rem;
	color: #FFF;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.04375rem;
	line-height: 100%;
	padding: 0.3125rem 0.6875rem;
}

.about-strength__item-title {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.105rem;
	line-height: 160%;
}

.about-strength__item-message {
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	line-height: 100%;
	margin-block-start: 1.9375rem;
}

.about-strength__item-text {
	font-size: 1rem;
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.5rem;
}

.about-strength__note {
	background-color: #F3F3F3;
	border-radius: 0.625rem;
	display: flex;
	padding: 1.0625rem 1.625rem;
	-moz-column-gap: 0.9375rem;
	align-items: center;
	column-gap: 0.9375rem;
	margin-block-start: 1.5rem;
}

.about-strength__note svg {
	height: 0.9375rem;
	width: 1.25rem;
}

.about-strength__note-text {
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 160%;
}

.about-philosophy {
	padding-block: 6.0625rem 0.625rem;
}

.about-philosophy__inner {
	background: url(../../assets/img/about_philoshphy_bg.png) center center/cover no-repeat;
	border-radius: 0.625rem;
	padding-block: 4.25rem 7.8125rem;
	text-align: center;
}

.about-philosophy__title-en {
	color: #FFF;
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	opacity: 0.5;
	text-transform: uppercase;
}

.about-philosophy__title-jp {
	color: #FFF;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 160%;
	margin-block-start: 0.1875rem;
}

.about-philosophy__svg-pc {
	display: block;
	height: 0.875rem;
	margin-block-start: 0.5rem;
	margin-inline: auto;
	width: 22.6875rem;
}

.about-philosophy__svg-sp {
	display: none;
}

.about-philosophy__message-title {
	color: #FFF;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.06875rem;
	line-height: 100%;
	margin-block-start: 1.5rem;
}

.about-philosophy__message-text {
	color: #FFF;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 200%;
	margin-block-start: 1.125rem;
}

.about-vision {
	background: url(../../assets/img/about_vision_bg.jpg) center center/cover no-repeat;
	margin-block-start: 7.5625rem;
	padding-block: 12rem 0.625rem;
}

.about-vision__title-en {
	color: #FFF;
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	opacity: 0.5;
	text-transform: uppercase;
}

.about-vision__title-jp {
	color: #FFF;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14rem;
	line-height: 160%;
}

.about-vision__message-title {
	color: #FDF9B9;
	font-family: "Noto Serif JP", sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 100%;
	margin-block-start: 2.1875rem;
}

.about-vision__message-text {
	color: #FFF;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 200%;
	margin-block-start: 1.5rem;
}

.webp .about-philosophy__inner {
	background-image: url(../../assets/img/about_philoshphy_bg.webp);
}

.webp .about-vision {
	background-image: url(../../assets/img/about_vision_bg.webp);
}

/*===================================================================
# News 一覧
===================================================================*/

.news {
	background-color: #F3F3F3;
	margin-block-start: 5.875rem;
}

.news__list {
	display: flex;
	flex-direction: column;
	margin-block: 5.75rem 7.0625rem;
	row-gap: 0.75rem;
}

.news__list > .pagination {
	margin-block-start: 2.9375rem;
}

.news__item {
	background-color: #fff;
	border-radius: 0.625rem;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.news__item-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1.21875rem 1.875rem 1rem;
	row-gap: 0.125rem;
	text-decoration: none;
}

.news__item-link svg.news__item-icon {
	color: #68C2EB;
}

.news__item-link svg.news__item-icon path {
	fill: currentColor;
	transition: fill 0.3s ease;
}

.news__item-icon {
	height: 1.125rem;
	pointer-events: none;
	position: absolute;
	right: 2.1875rem;
	top: 50%;
	translate: 0 -50%;
	width: 1.125rem;
}

.news__item-date {
	font-family: Barlow, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.046875rem;
	line-height: 94%;
	text-transform: uppercase;
}

.news__item-category {
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	border-radius: 0.625rem;
	color: #FFF;
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.4375rem;
	margin-inline-start: 0.4375rem;
	padding-inline: 0.6875rem;
}

.news__item-title {
	border-bottom: 0.0625rem solid transparent;
	display: inline-block;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0.05625rem;
	line-height: 190%;
	width: -moz-fit-content;
	width: fit-content;
}

/*===================================================================
# News - Post 詳細
===================================================================*/

.news-post {
	background-color: #F3F3F3;
	margin-block-start: 5.875rem;
}

.news-post__content-inner {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-block: 5.625rem 9.75rem;
	margin-inline: auto;
	padding: 5rem 6.25rem;
}

.news-post__meta {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.4375rem;
	column-gap: 0.4375rem;
	margin-block-start: 1rem;
}

.news-post__date {
	font-family: Barlow, sans-serif;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1;
	text-transform: uppercase;
}

.news-post__cats {
	display: flex;
	flex-wrap: wrap;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	list-style: none !important;
	margin: 0;
	padding-inline-start: 0 !important;
}

.news-post__cats li {
	align-items: center;
	display: flex;
	letter-spacing: normal;
	line-height: 1;
	margin: 0; /* 基本の li 指定を打ち消す */
	padding: 0;
}

.news-post__cats li::before {
	content: none !important;
}

.news-post__cat-link {
	background: linear-gradient(180deg, #142460 0%, #183E9F 100%);
	border-radius: 0.625rem;
	color: #FFF;
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.375rem;
	padding-block-end: 0.0625rem;
	padding-inline: 0.6875rem;
}

.news-post__title {
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.1rem;
	line-height: 150%;
	margin-block: 0.5rem 0.875rem;
}

.news-post__content {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.news-post__btn {
	align-items: center;
	display: flex;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	-moz-column-gap: 0.625rem;
	background-color: transparent;
	border: 0.125rem solid #142460;
	border-radius: 0.375rem;
	column-gap: 0.625rem;
	margin: 3.75rem auto 0;
	padding: 0.78125rem 3.125rem;
	transition: color 0.3s ease, background-color 0.3s ease;
}

.news-post__btn span {
	color: #142460;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.0225rem;
}

.news-post__btn svg {
	height: 1rem;
	margin-block-start: 0.15625rem;
	transition: transform 0.3s ease;
	width: 1rem;
}

.news-post figure {
	border-radius: 0.625rem;
	display: block;
	margin-inline: auto;
	max-width: -moz-fit-content;
	max-width: fit-content;
	overflow: hidden;
}

.news-post h2 {
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.075rem;
	line-height: 150%;
	margin-block-start: 1.9375rem;
	padding-block-end: 1.5rem;
	position: relative;
}

.news-post h2::before {
	background-color: rgba(20, 36, 96, 0.1);
	bottom: 0;
	content: "";
	height: 0.1875rem;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: 1;
}

.news-post h2::after {
	background-color: #142460;
	bottom: 0;
	content: "";
	height: 0.1875rem;
	left: 0;
	position: absolute;
	width: 4.625rem;
	z-index: 2;
}

.news-post h3 {
	background-color: #26A8E2;
	border-radius: 0.375rem;
	color: #fff;
	display: inline-block;
	font-size: 1.375rem;
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.06875rem;
	line-height: 150%;
	margin-block-start: 2.5rem;
	padding: 0.46875rem 0.875rem;
}

.news-post h4 {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	margin-block-start: 2.0625rem;
	padding-inline-start: 1.5625rem;
	position: relative;
}

.news-post h4::before { /* グラデーションを維持したSVGデータ */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M9 0C13.9706 0 18 4.02944 18 9C18 13.9706 13.9706 18 9 18C4.02944 18 0 13.9706 0 9C0 4.02944 4.02944 0 9 0ZM9 5C6.79086 5 5 6.79086 5 9C5 11.2091 6.79086 13 9 13C11.2091 13 13 11.2091 13 9C13 6.79086 11.2091 5 9 5Z' fill='url(%23paint0_linear_1_3555)'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_1_3555' x1='9' y1='0' x2='9' y2='18' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23142460'/%3E%3Cstop offset='1' stop-color='%23183E9F'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 1.125rem;
	left: 0;
	position: absolute;
	top: 1rem;
	translate: 0 -50%;
	width: 1.125rem;
}

.news-post p {
	letter-spacing: 0.05rem;
	line-height: 200%;
}

.news-post ul {
	list-style: none;
	padding-inline-start: 1.1875rem;
}

.news-post ul li {
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.05rem;
	line-height: 2rem;
	position: relative;
}

.news-post ul li::before {
	background-color: #26A8E2;
	border-radius: 50%;
	content: "";
	height: 0.625rem;
	left: -1.1875rem;
	position: absolute;
	top: 0.6875rem;
	width: 0.625rem;
}

.news-post ol {
	counter-reset: my-counter;
}

.news-post ol.wp-block-list li {
	counter-increment: my-counter;
	display: block;
	font-weight: 600;
	letter-spacing: 0.05rem;
	line-height: 2rem;
	padding-inline-start: 1.5625rem;
	padding-inline-start: 1.1875rem;
	position: relative;
}

.news-post ol.wp-block-list li::before {
	color: #26A8E2;
	content: counter(my-counter) ".";
	font-size: 1rem;
	font-weight: 700;
	left: 0;
	position: absolute;
	top: 0;
}

.news-post h1 + h2 {
	margin-block-start: 1.125rem;
}

.news-post h2 + p {
	margin-block-start: 0.4375rem;
}

.news-post h4 + ul,
.news-post h4 + ol {
	margin-block-start: -0.3125rem;
}

/*===================================================================
# ブレークポイントによる表示 / 非表示
===================================================================*/

.show__sp-only {
	display: none; /* spのみ表示 */
}

.show__sp-only--flex {
	display: none;
}

.show__pc-only {
	display: block; /* pcのみ表示 */
}

.show__pc-only--flex {
	display: flex;
}

@media (any-hover: hover) {

.header__list .header__btn--recruit a:hover {
	background-color: #26A8E2;
	background-image: none;
	border-color: #26A8E2;
	color: #fff;
	opacity: 1;
}

.header__list .header__btn--contact a:hover {
	background-color: #fff;
	color: #142460;
	opacity: 1;
}

.footer__link:hover {
	background-color: #26A8E2;
	background-image: none;
	border-color: #26A8E2;
	color: #fff;
	opacity: 1;
}

.footer__nav-btn--recruit a:hover {
	background-image: linear-gradient(transparent, transparent), linear-gradient(to right, #ADE4E7, #26A8E2);
	border-color: rgba(255, 255, 255, 0.5);
	color: #fff;
	opacity: 1;
}

.footer__nav-btn--contact a:hover {
	background-clip: padding-box, border-box;
	background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #71E4FF, #005BBF);
	border-color: transparent;
	color: #26A8E2;
	opacity: 1;
}

.footer__policy-link:hover {
	opacity: 1;
}

.breadcrumb span a:hover {
	text-decoration: underline;
}

.pagination__link:hover {
	background-color: #142460;
	color: #fff;
}

.drawer__list .header__btn--recruit a:hover {
	background-color: #26A8E2;
	background-image: none;
	border-color: #26A8E2;
	color: #fff;
	opacity: 1;
}

.drawer__list .header__btn--contact a:hover {
	background-color: #fff;
	color: #142460;
	opacity: 1;
}

.top-about__btn:hover {
	background-color: #142460;
	color: #FFF;
	opacity: 1;
}

.top-about__btn:hover span {
	color: inherit;
}

.top-about__btn:hover svg {
	transform: translateX(0.3125rem);
}

.top-services__btn:hover {
	background-color: #142460;
	color: #fff;
	opacity: 1;
}

.top-services__btn:hover svg {
	transform: translateX(0.3125rem);
}

.top-company__btn:hover {
	background-color: #26A8E2;
	opacity: 1;
}

.top-company__btn:hover svg {
	transform: translateX(0.3125rem);
}

.top-news__btn:hover {
	background-color: #142460;
	color: #FFF;
	opacity: 1;
}

.top-news__btn:hover span {
	color: inherit;
}

.top-news__btn:hover svg {
	transform: translateX(0.3125rem);
}

.top-news__item:hover {
	background-color: #26A8E2;
}

.top-news__item:hover .top-news__link {
	opacity: 1;
}

.top-news__item:hover .top-news__post-title {
	color: #fff;
}

.top-news__item:hover .top-news__date {
	color: #fff;
}

.top-news__item:hover .top-news__category {
	background: #fff;
	color: #26A8E2;
}

.top-news__item:hover .top-news__deco {
	color: #fff;
}

.top-recruit__btn:hover {
	background-color: #26A8E2;
	color: #FFF;
	opacity: 1;
}

.top-recruit__btn:hover svg {
	transform: translateX(0.3125rem);
}

.project__item-btn:hover {
	background-color: #142460;
	color: #FFF;
	opacity: 1;
}

.project__item-btn:hover span {
	color: inherit;
}

.project__item-btn:hover svg {
	transform: translateX(0.3125rem);
}

.contact__btn:hover {
	opacity: 0.7;
}

.contact__btn:disabled:hover,
.contact__btn[disabled]:hover {
	background-color: #c9c9c9;
	border: 0.10625rem solid #c9c9c9;
	color: #fff;
	opacity: 0.7;
}

.news__item-link:hover {
	opacity: 1;
}

.news__item-link:hover .news__item-title {
	border-bottom: 0.0625rem solid #142460;
}

.news__item-link:hover svg.news__item-icon {
	color: #142460;
}

.news-post__btn:hover {
	background-color: #142460;
	color: #FFF;
	opacity: 1;
}

.news-post__btn:hover span {
	color: inherit;
}

.news-post__btn:hover svg {
	transform: translateX(-0.3125rem);
}

}

@media screen and (min-width: 768px) and (max-width: 1440px) and (max-width: 1440px) {

html {
	font-size: calc(16 / 1440 * 100vw);
}

}

@media (min-width: 768px) {

.floating-btn {
	display: none;
}

.services__menu.is-sticky {
	background-clip: padding-box;
	background-color: rgb(248, 248, 248);
	box-shadow: 0 0.25rem 0.625rem rgba(0, 0, 0, 0.1);
	margin-inline: calc(50% - 50vw);
	padding-block: 1.25rem;
	padding-inline: calc(50vw - 50%);
}

}

@media screen and (max-width: 767px) {

html {
	font-size: clamp(14px, 4.2666666667vw, 32.72px);
}

.header {
	border-radius: 0;
	height: 3.125rem;
}

.header__inner {
	padding-inline: 0.625rem 1.25rem;
}

.header__logo-img {
	width: 13.0625rem;
}

.header__nav {
	display: none;
}

.footer {
	border-radius: 0;
}

.footer__upper {
	background-image: url(../../assets/img/footer_bg_sp.jpg);
	padding-block: 5.0625rem 5rem;
}

.footer__title {
	font-size: 2.5rem;
}

.footer__sub-title {
	margin-block-start: 0.75rem;
}

.footer__lead {
	margin-block-start: 1.5625rem;
}

.footer__link {
	padding-inline: 4.125rem;
	padding-inline: 0;
	width: 100%;
}

.footer__lower {
	padding-block: 3.75rem 6.25rem;
}

.footer__lower-content {
	flex-direction: column;
}

.footer__logo {
	margin-inline: auto;
	width: 13.25rem;
}

.footer__nav-list {
	justify-content: flex-start;
	margin-block-start: 50px;
	row-gap: 0;
}

.footer__nav-list li {
	border-bottom: 0.0625rem solid rgba(95, 205, 255, 0.21);
	margin-inline-end: 0;
	padding-block: 20px;
	width: 100%;
}

.footer__nav-list li:first-child {
	padding-block-start: 0;
}

.footer__nav-list li:nth-last-child(2) {
	border-bottom: none;
	margin-inline-end: 0;
	padding-block: 1.875rem 0;
}

.footer__nav-list li:last-child {
	border-bottom: none;
	padding-block: 1.875rem 0;
}

.footer__nav-list li.footer__nav-btn {
	margin-inline-end: 0;
	width: calc(50% - 0.3125rem);
}

.footer__nav-btn a {
	width: 100%;
}

.footer__nav-btn--recruit a {
	display: flex;
	justify-content: center;
	padding-inline: 0;
	width: 100%;
}

.footer__nav-btn--contact a {
	display: flex;
	justify-content: center;
	margin-inline-start: 0.4375rem;
	padding-inline: 0;
	width: 100%;
}

.footer__lower-links {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-block-start: 1.75rem;
}

.footer__policy-link--pc {
	display: none;
}

.footer__policy-link--sp {
	display: inline-block;
	margin-block-start: 0;
}

.webp .footer__upper {
	background-image: url(../../assets/img/footer_bg_sp.webp);
}

.page-header {
	background-image: url(../../assets/img/page_header_bg_sp.webp);
}

.page-header--illust {
	background-image: url(../../assets/img/page_header_bg_illust_sp.webp);
}

.page-header--dot {
	background-image: url(../../assets/img/page_header_bg_dot_sp.webp);
}

.page-header--project,
.page-header--company,
.page-header--manufacturers,
.page-header--services,
.page-header--news {
	padding-block: 3.875rem 3.8125rem;
}

.page-header--contact,
.page-header--policy {
	padding-block: 3.75rem 3.875rem;
}

.page-header--about {
	padding-block: 3.75rem 3.875rem;
}

.page-header--manufacturers .page-header__title {
	font-size: 2.1875rem;
	letter-spacing: 0.04375rem;
}

.page-header__title {
	font-size: 2.5rem;
	letter-spacing: -0.025rem;
}

.page-header__sub-title {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	margin-block-start: 0.6875rem;
}

.breadcrumb {
	padding-inline: 1.25rem;
}

.breadcrumb--about {
	margin-block-start: 3.8125rem;
}

.to-top {
	bottom: 1.875rem;
	position: fixed;
	right: 0.9375rem;
	z-index: 100;
}

.to-top.is-show {
	animation: fadeIn 0.3s ease forwards;
	display: block;
}

.js-fadein-sp {
	opacity: 0;
	transform: translateY(0.625rem);
	transition: opacity 0.5s ease, transform 0.5s ease;
	will-change: opacity, transform;
}

.js-fadein-sp.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.inner {
	padding-inline: 1.25rem;
}

.drawer__icon {
	display: flex;
}

.top-fv {
	background-image: url(../../assets/img/top_fv_bg_sp.png);
	height: 36.5rem;
	padding-block-start: 3.25rem;
	z-index: 3;
}

.top-fv__img-wrapper {
	justify-content: flex-start;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
	margin-inline-start: 1.1875rem;
}

.top-fv__img {
	height: auto;
}

.top-fv__img--1 {
	width: 17.3125rem;
	z-index: 5;
}

.top-fv__img--2 {
	height: 20.5625rem;
	width: 4.0625rem;
}

.top-fv__img--2 img {
	-o-object-position: top;
	object-position: top;
}

.top-fv__img--3 {
	display: none;
}

.top-fv__dot {
	height: 24.6875rem;
	left: -0.5rem;
	top: 5.875rem;
	width: 26.625rem;
	z-index: 6;
}

.top-fv__line {
	height: 17.25rem;
	left: -0.5rem;
	top: 13.9375rem;
	width: 25.0625rem;
	z-index: 4;
}

.top-fv__text-inner {
	z-index: 7;
}

.top-fv__text-wrapper {
	bottom: -4.3125rem;
	left: 1rem;
}

.top-fv__main-message span {
	font-size: 1.875rem;
	letter-spacing: 0.09375rem;
	padding-block: 0.15625rem;
}

.top-fv__text-small {
	font-size: 1.5rem !important;
	letter-spacing: 0.075rem !important;
}

.top-fv__text-gradient--small {
	font-size: 1.5rem !important;
	letter-spacing: 0.075rem !important;
}

.top-fv__sub-message span {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.webp .top-fv {
	background-image: url("../../assets/img/top_fv_bg_sp.png");
}

.top-about {
	background-image: url(../../assets/img/top_about_bg_sp.webp);
	padding-block: 11.9375rem 9.375rem;
}

.top-about__inner {
	flex-direction: column;
}

.top-about__texts {
	flex: 1;
}

.top-about__title {
	flex-direction: column;
}

.top-about__title-en {
	font-size: 2.5rem;
	letter-spacing: 0.125rem;
}

.top-about__title-jp {
	margin-block-start: 0.75rem;
}

.top-about__main-message {
	font-size: 1.5rem;
	letter-spacing: 0.075rem;
	line-height: 2.5rem;
	margin-block-start: 3.1875rem;
}

.top-about__sub-message {
	line-height: 180%;
	margin-block-start: 1.8125rem;
}

.top-about__btn {
	margin-inline: auto;
	-moz-column-gap: 0.875rem;
	column-gap: 0.875rem;
	margin-block-start: 1.875rem;
	padding: 0.875rem 4.4375rem;
}

.top-about__btn span {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: -0.01875rem;
}

.top-about__btn svg {
	height: 0.875rem;
	width: 0.875rem;
}

.top-about__diagram {
	margin-block-start: 2.5rem;
	margin-inline: auto;
}

.top-about__triangle {
	height: 18.75rem;
	width: 19.875rem;
}

.top-about__triangle::before {
	height: 9.625rem;
	width: 9.625rem;
}

.top-about__circle--top {
	top: 0.5rem;
}

.top-about__circle--left {
	bottom: 0.5rem;
	left: 0.5rem;
}

.top-about__circle--right {
	bottom: 0.5rem;
	right: 0.5rem;
}

.top-about__diagram-text {
	height: 8.625rem;
	padding-block-end: 0.625rem;
	width: 8.625rem;
}

.top-about__diagram-text::before {
	height: 9.625rem;
	width: 9.625rem;
}

.top-about__diagram-text-sub {
	font-size: 1rem;
	letter-spacing: 0.05rem;
	line-height: 100%;
}

.top-about__diagram-text-main {
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	line-height: 100%;
	margin-block-start: 0.5625rem;
}

.top-about__curve-top {
	height: 1.875rem;
}

.top-services {
	padding-block: 3.1875rem 3.125rem;
}

.top-services__title-en {
	font-size: 2.5rem;
	letter-spacing: 0.125rem;
}

.top-services__title-jp {
	margin-block-start: 0.75rem;
}

.top-services__main-message {
	font-size: 1.25rem;
	letter-spacing: 0.05625rem;
	line-height: 100%;
}

.top-services__sub-message {
	letter-spacing: 0.04375rem;
	line-height: 180%;
	margin-block-start: 1.8125rem;
	text-align: left;
}

.top-services__cards {
	margin-block-start: 3.125rem;
	row-gap: 0.875rem;
}

.top-services__card {
	padding: 6.625rem 1rem 1rem;
}

.top-services__card {
	width: 100%;
}

.top-services__card-label {
	font-size: 0.75rem;
	padding: 0.28125rem 0.6875rem;
}

.top-services__card-title {
	font-size: 1.375rem;
	letter-spacing: 0.06875rem;
}

.top-services__btn {
	-moz-column-gap: 0.875rem;
	column-gap: 0.875rem;
	margin-block-start: 1.875rem;
	padding: 0.9375rem 4.625rem;
}

.top-services__btn span {
	font-size: 0.9375rem;
	letter-spacing: -0.01875rem;
}

.top-services__btn svg {
	height: 0.875rem;
	width: 0.875rem;
}

.top-services__middle {
	margin-block-start: 4.4375rem;
}

.top-services__middle-text {
	font-size: 4.625rem;
	letter-spacing: 0.0925rem;
}

.top-services__middle-img {
	height: 4.625rem;
	margin-inline: 1.1875rem;
	width: 7.6875rem;
}

.top-services__banners {
	margin-block-start: 4.375rem;
	row-gap: 0.875rem;
}

.top-services__banner {
	padding: 2rem 1.875rem 9.5625rem;
}

.top-services__banner--project {
	background-image: url(../../assets/img/top_services_banner1_sp.png);
}

.top-services__banner--manufacturers {
	background-image: url(../../assets/img/top_services_banner2_sp.png);
}

.top-services__banner-title-en {
	font-size: 1.75rem;
	letter-spacing: 0.0875rem;
}

.top-services__banner-message {
	margin-block-start: 1rem;
}

.top-services__banner-arrow {
	height: 2.625rem;
	width: 2.625rem;
}

.top-services__banner-arrow svg {
	height: 1rem;
	width: 1rem;
}

.top-services__dot {
	left: 0;
	top: 0;
	translate: 0 0;
	width: 24rem;
}

.top-services__line {
	bottom: -1.8125rem;
	height: 16.3125rem;
	width: 39.6875rem;
}

.webp .top-services__banner--project {
	background-image: url(../../assets/img/top_services_banner1_sp.webp);
}

.webp .top-services__banner--manufacturers {
	background-image: url(../../assets/img/top_services_banner2_sp.webp);
}

.top-company {
	background-image: url(../../assets/img/top_company_bg_sp.png);
	padding-block: 7.375rem 4.25rem;
}

.top-company__curve-bottom {
	height: 1.875rem;
}

.top-company__inner {
	flex-direction: column;
}

.top-company__texts {
	flex: 1;
	margin-block-start: 0;
	padding-inline-start: 0;
}

.top-company__title-en {
	font-size: 2.5rem;
	letter-spacing: 0.125rem;
}

.top-company__title-jp {
	margin-block-start: 0.75rem;
}

.top-company__main-message {
	margin-block-start: 3.1875rem;
}

.top-company__main-message span {
	display: inline-block;
	font-size: 1.5rem;
	letter-spacing: 0.075rem;
	padding-block: 0.1rem;
}

.top-company__text-pad {
	padding-inline-start: 0.625rem;
}

.top-company__text-small {
	font-size: 1.125rem !important;
	letter-spacing: 0.05625rem !important;
}

.top-company__sub-message {
	letter-spacing: 0.04375rem;
	line-height: 160%;
	margin-block-start: 2rem;
}

.top-company__btn {
	margin-block-start: 2rem;
}

.top-company__img-container {
	height: 15.8125rem;
	margin-block-start: 1.875rem;
	width: 100%;
}

.top-company__img--1 {
	left: 1.6875rem;
	top: 1.5rem;
	width: 7rem;
}

.top-company__img--2 {
	right: 1.6875rem;
	width: 8.6875rem;
}

.top-company__img--3 {
	width: 10.75rem;
}

.top-news {
	padding-block: 80px 5rem;
}

.top-news__inner {
	flex-direction: column;
	-moz-column-gap: 0;
	column-gap: 0;
}

.top-news__title-block {
	display: contents;
	text-align: center;
}

.top-news__title {
	border-block-end: 30px;
	order: 1;
}

.top-news__title-en {
	font-size: 2.5rem;
	letter-spacing: 0.125rem;
}

.top-news__title-jp {
	margin-block-start: 1rem;
}

.top-news__btn {
	margin-block-start: 1.875rem;
	margin-inline: auto;
	order: 3;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	padding: 0.9375rem 2.96875rem;
}

.top-news__btn span {
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: -0.01875rem;
}

.top-news__btn svg {
	height: 0.875rem;
	width: 0.875rem;
}

.top-news__post-block {
	margin-block-start: 50px;
	order: 2;
}

.top-news__item {
	padding: 1rem 2.5rem 1rem 1rem;
	width: 100%;
}

.top-news__date {
	font-size: 0.75rem;
	letter-spacing: 0.0375rem;
}

.top-news__post-title {
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	margin-block-start: 0.1875rem;
}

.top-news__deco {
	height: 0.875rem;
	right: 1rem;
	width: 0.875rem;
}

.webp .fv__upper {
	background-image: url(../../assets/img/fv_upper_bg_sp.webp);
}

.top-recruit__inner {
	background-image: url(../../assets/img/top_recruit_bg_sp.png);
	border-radius: 1.1875rem;
	flex-direction: column;
	margin-inline: auto;
	max-width: 21.5625rem;
	overflow: hidden;
	padding-block-end: 2.53125rem;
	padding-inline: 0;
	width: 100%;
}

.top-recruit__title-block {
	padding-block-start: 3.0625rem;
	padding-inline-start: 1.875rem;
}

.top-recruit__title-en {
	font-size: 2.5rem;
	letter-spacing: 0.125rem;
}

.top-recruit__title-jp {
	margin-block-start: 0.9375rem;
}

.top-recruit__text-main {
	margin-inline: 0;
}

.top-recruit__main-message {
	font-size: 1.5rem;
	letter-spacing: 0.075rem;
	line-height: 160%;
	margin-block-start: 2.5rem;
	margin-inline-start: 0;
	padding-inline-start: 1.875rem;
}

.top-recruit__sub-message-wrapper {
	margin-block-start: 1.75rem;
	margin-inline-start: 0;
	padding-inline: 1.875rem 2.5rem;
}

.top-recruit__sub-message {
	font-size: 0.875rem;
	letter-spacing: 0.04375rem;
	line-height: 160%;
}

.top-recruit__sub-message + .top-recruit__sub-message {
	margin-block-start: 0;
}

.top-recruit__btn {
	font-size: 0.9375rem;
	margin-block-start: 2.125rem;
	margin-inline: auto;
	padding: 0.921875rem 3.828125rem;
}

.top-recruit__btn span {
	font-size: 0.9375rem;
}

.top-recruit__imgs {
	flex-direction: row;
	justify-content: center;
	-moz-column-gap: 0.375rem;
	column-gap: 0.375rem;
	margin-block-start: 2.3125rem;
}

.top-recruit__img {
	height: 8.375rem;
	width: auto;
}

.top-recruit__img--1 {
	border-radius: 0 0.625rem 0.625rem 0;
}

.top-recruit__img--3 {
	border-radius: 0.625rem 0 0 0.625rem;
}

.webp .top-recruit__inner {
	background-image: url(../../assets/img/top_recruit_bg_sp.webp);
}

.project {
	margin-block-start: 3.125rem;
}

.project__inner {
	padding-block: 3.6875rem 3.75rem;
}

.project__lead {
	font-size: 1rem;
	letter-spacing: 0.05rem;
	text-align: left;
}

.project__list {
	margin-block-start: 2.5625rem;
	row-gap: 1.25rem;
}

.project__item {
	flex-direction: column;
}

.project__item-img {
	aspect-ratio: auto;
	flex: 1;
	height: auto;
	width: 100%;
}

.project__item-body {
	padding: 1.5625rem 1.1875rem 1.875rem;
}

.project__item-title {
	font-size: 1.125rem;
	letter-spacing: 0.07875rem;
}

.project__item-text {
	line-height: 180%;
	margin-block-start: 1.0625rem;
}

.project__item-btn {
	margin-block-start: 1.25rem;
	margin-inline: auto;
	padding: 0.875rem 4.625rem;
}

.project__dot {
	height: 59.0625rem;
	left: -0.1875rem;
	top: 11.875rem;
	translate: 0;
	width: 24.28125rem;
}

.company {
	margin-block-start: 3.125rem;
}

.company__inner {
	flex-direction: column;
	margin-block: 1.875rem 3.75rem;
	padding-inline: 0.625rem;
}

.company__title-wrapper--message {
	margin-block-start: 3.125rem;
	margin-inline-start: 0.625rem;
}

.company__title-jp {
	font-size: 1.5rem;
	letter-spacing: 0.105rem;
}

.company-menu__list {
	background-color: #F3F3F3;
	display: grid;
	flex: 1;
	grid-template-columns: repeat(2, 1fr);
	padding-block: 1.875rem;
	padding-inline: 0.625rem;
	position: static;
	-moz-column-gap: 1.1875rem;
	column-gap: 1.1875rem;
	row-gap: 2.125rem;
}

.company-menu__item {
	border-bottom: 0.0625rem solid rgba(104, 194, 235, 0.3);
	padding-block-end: 1.4375rem;
	position: relative;
}

.company-menu__item::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M12.707 5.92471L6.70703 11.9247L0.70703 5.92471' stroke='%2368C2EB' stroke-width='2'/%3E%3Cpath d='M6.70703 12.0001L6.70703 1.38283e-05' stroke='%2368C2EB' stroke-width='2'/%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 0.75rem;
	position: absolute;
	right: 2.75rem;
	top: 0.1875rem;
	width: 0.75rem;
}

.company-message__content {
	flex-direction: column;
	margin-block-start: 1.4375rem;
	padding-inline: 0.625rem;
	row-gap: 1.25rem;
}

.company-message__img-wrapper {
	flex: 1;
}

.company-message__img {
	margin-inline-start: 0.25rem;
	width: 20.25rem;
}

.company-message__name-wrapper {
	justify-content: center;
	margin-block-start: 0;
	margin-inline: auto;
}

.company-message__name {
	height: 3rem;
	width: 5.125rem;
}

.company-message__text {
	line-height: 180%;
}

.company .company-policy__container {
	margin-block-start: 3.75rem;
}

.company .company-policy__inner {
	padding: 2.5rem 1.25rem 2.5rem;
}

.company .company-policy__list {
	margin-block-start: 1.8125rem;
}

.company .company-policy__item {
	align-items: flex-start;
	flex-direction: column;
	padding-block: 22px;
}

.company .company-policy__item-text {
	font-size: 1.125rem;
	letter-spacing: 0.07875rem;
	margin-block-start: 0.625rem;
}

.company .company-policy__mission-list {
	margin-block-start: 0.625rem;
	row-gap: 0.625rem;
}

.company .company-policy__mission-item {
	-moz-column-gap: 1rem;
	align-items: center;
	column-gap: 1rem;
}

.company .company-policy__mission-img {
	flex: 0 0 7.625rem;
}

.company .company-policy__mission-text {
	flex: 1;
	line-height: 130%;
}

.company .company-outline__container {
	margin-block-start: 1.75rem;
}

.company .company-outline__inner {
	padding: 2.5rem 1.25rem 2.5rem;
}

.company .company-outline__office-list {
	flex-direction: column;
	margin-block-start: 1.8125rem;
	row-gap: 0.375rem;
}

.company .company-outline__office-item {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
}

.company .company-outline__office-img {
	flex: 0 0 9.1875rem;
}

.company .company-outline__office-info {
	line-height: 160%;
	margin-block-start: 0;
	white-space: nowrap;
}

.company .company-outline__office-info--pc {
	display: none;
}

.company .company-outline__office-info--sp {
	display: block;
}

.company .company-outline__list {
	margin-block-start: 1.875rem;
}

.company .company-outline__item {
	grid-template-columns: 5.375rem 1fr;
	padding-block: 1.375rem;
}

.company .company-outline__item::after {
	width: 3rem;
}

.company .company-outline__item-label {
	font-size: 1rem;
	letter-spacing: 0.03rem;
}

.company .company-area__inner {
	padding: 2.5rem 1.25rem 2.5rem;
}

.company .company-area__list {
	margin-block-start: 1.875rem;
}

.company .company-area__item {
	flex-direction: column-reverse;
	padding-block: 1.5rem 0.875rem;
}

.company .company-area__item-title {
	font-size: 1.125rem;
	letter-spacing: 0.07875rem;
	margin-block: 1.0625rem 1rem;
}

.company .company-area__item-row {
	margin-block-end: 0.625rem;
}

.company .company-area__item-img {
	flex: 1;
}

.company .company-history__inner {
	padding: 2.5rem 1.25rem 2.5rem;
}

.company .company-history__list {
	margin-block-start: 0.3125rem;
}

.company .company-history__item {
	grid-template-columns: 6.9375rem 1fr;
}

.company .company-history__item::after {
	width: 5.9375rem;
}

.company .company-history__item-year {
	font-size: 1rem;
	letter-spacing: 0.03rem;
}

#message,
#policy,
#outline,
#area,
#history {
	scroll-margin-top: 21.25rem;
}

.services {
	margin-block-start: 3.125rem;
}

.services__inner {
	padding-inline: 0.625rem;
}

.services__intro {
	align-items: center;
	flex-direction: column-reverse;
	margin-block-start: 0.625rem;
}

.services__intro-texts {
	margin-block-start: 0.375rem;
	padding-inline: 1.25rem;
}

.services__intro-title {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
	line-height: 220%;
	text-align: center;
}

.services__intro-underline1,
.services__intro-underline2 {
	left: 50%;
	translate: -50%;
}

.services__intro-underline1 {
	top: 2.4375rem;
	width: 10rem;
}

.services__intro-underline2 {
	bottom: -0.625rem;
	width: 17.8125rem;
}

.services__intro-lead {
	line-height: 160%;
	margin-block-start: 1.25rem;
}

.services__intro-img {
	flex: 1;
	width: 95.5%;
}

.services__menu {
	padding-block: 1.875rem 2.625rem;
	position: static;
	z-index: 3;
}

.services__menu-list {
	gap: 0.1875rem;
	grid-template-columns: repeat(2, 1fr);
}

.services__menu-item-title {
	justify-content: flex-start;
	padding-inline: 0.5rem;
	text-align: left;
}

.services__menu-item-title svg {
	height: 0.75rem;
	right: 0.5rem;
	width: 0.75rem;
}

.services .services-division__list {
	margin-block-end: 3.75rem;
	row-gap: 1rem;
}

.services .services-division__upper-inner {
	padding: 2.375rem 1.25rem 0.5625rem;
}

.services .services-division__lower-inner {
	padding: 2.5rem 1.25rem;
}

.services .services-division__head {
	border-bottom: none;
	flex-direction: column;
	padding-block-end: 0;
}

.services .services-division-title-wrapper {
	border-bottom: 0.0625rem solid rgba(20, 36, 96, 0.1);
	padding-block-end: 1.125rem;
}

.services .services-division__title {
	font-size: 1.25rem;
	letter-spacing: 0.0875rem;
	margin-block-start: 0.375rem;
}

.services .services-division__lead {
	line-height: 160%;
	margin-block-start: 1.375rem;
}

.services .services-division__main-visual {
	flex-direction: column;
	padding-block: 1.8125rem 0;
}

.services .services-division__img {
	flex: 1;
}

.services .services-division__info {
	margin-block-start: 1.875rem;
}

.services .services-division__info-description {
	margin-block: 0.3125rem 1.3125rem;
}

.services .services-division__check-list {
	margin-block-start: 0.4375rem;
}

.services .services-division__check-list li {
	line-height: 160%;
}

.services .services-division__info-note {
	margin-block: 0.3125rem 1.3125rem;
}

.services .services-division__sub-title {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
}

.services .services-division__balloon-list {
	padding-block: 1.375rem 1.875rem;
	row-gap: 0.625rem;
}

.services .services-division__balloon-list li {
	line-height: 140%;
}

.services .services-division__case-card {
	margin-block: 1.375rem 1.875rem;
	padding: 1.25rem 1.5rem 1.25rem 4.25rem;
}

.services .services-division__case-icon {
	bottom: auto;
	left: 0.75rem;
	top: 50%;
	translate: 0 -50%;
	width: 2.6875rem;
}

.services .services-division__flow-list {
	flex-wrap: wrap;
	row-gap: 0.375rem;
}

.services .services-division__flow-list li {
	padding: 0.625rem 0.75rem;
	white-space: nowrap;
}

.services .services-division__flow-list li:not(:last-child) {
	margin-inline-end: 1.875rem;
}

.services .services-division__flow-list li:not(:last-child)::after {
	height: 1.3125rem;
	right: -1.46875rem;
	width: 1.0625rem;
}

.services .services-division__flow-list li.is-electrical.step-3 {
	font-size: 0.875rem;
	padding-inline: 0.375rem;
}

.services .services-division__flow-list li.is-electrical.step-4 {
	font-size: 0.75rem;
	padding-inline: 0.375rem;
}

.services .services-division__flow-list li.is-solution.step-3 {
	font-size: 0.8125rem;
	padding-inline: 0.375rem;
}

.services .services-division__flow-list li.is-solution.step-4 {
	font-size: 0.875rem;
	padding-inline: 0.375rem;
}

.services .services-division__flow-list li.is-operation.step-4 {
	padding-inline: 0.4375rem;
}

.services .services-division__flow-list li.is-operation.step-5 {
	padding-inline: 0.5rem;
}

.services__dot {
	top: 12.375rem;
	width: 25.125rem;
}

.manufacturers {
	margin-block-start: 3.125rem;
}

.manufacturers__menu-list {
	gap: 0.1875rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-block-start: 3.6875rem;
}

.manufacturers__menu-item:nth-child(4) .manufacturers__menu-item-title {
	font-size: 0.9375rem;
	letter-spacing: -0.03125rem;
}

.manufacturers__menu-item:nth-child(6) .manufacturers__menu-item-title {
	font-size: 0.9375rem;
	letter-spacing: -0.03125rem;
}

.manufacturers__menu-item:nth-child(11) .manufacturers__menu-item-title {
	font-size: 0.9375rem;
	letter-spacing: -0.03125rem;
}

.manufacturers__menu-item:nth-child(11) svg {
	bottom: 0.3125rem;
	top: auto;
	translate: 0 0;
}

.manufacturers__menu-item-title {
	justify-content: flex-start;
	padding-inline: 0.5rem;
	text-align: left;
}

.manufacturers__menu-item-title svg {
	height: 0.75rem;
	right: 0.5rem;
	width: 0.75rem;
}

.manufacturers__list {
	margin-block: 1.875rem 3.125rem;
	row-gap: 0.75rem;
}

.manufacturers__item {
	flex-direction: column;
	min-height: auto;
}

.manufacturers__item-img {
	width: 100%;
}

.manufacturers__item-texts {
	padding: 0.625rem 1.25rem 1.5rem;
}

.manufacturers__item-title {
	font-size: 1.125rem;
	letter-spacing: 0.07875rem;
}

.manufacturers__dot {
	left: 0.125rem;
	top: 11.5rem;
	translate: 0;
	width: 24.625rem;
}

.contact {
	margin-block-start: 3.125rem;
}

.contact__inner {
	padding-inline: 0.625rem;
}

.contact__form-container {
	margin-block: 3.75rem 3.75rem;
	padding: 2.0625rem 1.25rem 1.4375rem;
}

.contact__form-title {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
}

.contact__form-lead {
	letter-spacing: -0.0625rem;
	line-height: 160%;
}

.contact__form {
	row-gap: 1.125rem;
}

.contact__acceptance {
	-moz-text-align-last: left;
	margin-block: 0.9375rem 0.75rem;
	text-align-last: left;
}

.policy {
	margin-block-start: 3.125rem;
}

.policy__inner {
	padding-block-start: 2.5rem;
	padding-inline: 0.8125rem;
}

.policy__content {
	margin-block-end: 3.75rem;
	padding: 2.0625rem 1.25rem 2.5rem;
	row-gap: 2.625rem;
}

.policy__header-title {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
}

.policy__header-lead {
	line-height: 160%;
	margin-block-start: 1.5625rem;
}

.policy__article-title {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
}

.policy__article-title::after {
	width: 1.875rem;
}

.policy__article-text {
	line-height: 160%;
	margin-block-start: 1.875rem;
}

.about {
	margin-block-start: 3.125rem;
}

.about__upper {
	background-image: url(../../assets/img/about_upper_bg_sp.webp);
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: 100% auto;
	padding-block: 20.0625rem 4.375rem;
}

.about__upper-imgs-top {
	display: block;
}

.about__upper-imgs-bottom {
	display: block;
}

.about__upper-sub-message {
	line-height: 180%;
}

.about__upper-main-message {
	font-size: 1.0625rem;
	letter-spacing: 0.05rem;
	line-height: 150%;
	margin-block-start: 0.375rem;
	white-space: nowrap;
}

.about__upper-main-message--strong {
	font-size: 1.375rem;
}

.about__upper-svg-pc {
	display: none;
}

.about__upper-svg-sp {
	display: block;
}

.about__upper-lead {
	line-height: 160%;
	margin-block-start: 1.75rem;
	text-align: left;
}

.about__upper-imgs {
	display: none;
}

.about__upper-bg {
	display: none;
	height: 213.4375rem;
	top: -6.125rem;
}

.about__dot {
	top: 10.375rem;
	width: 23.4375rem;
}

.about__job {
	margin-block-start: 14.625rem;
	width: 22.1875rem;
}

.about__job-upper-inner {
	padding: 2.375rem 1.25rem 3.75rem;
}

.about__job-upper__head {
	display: grid;
	grid-template-columns: 1fr;
}

.about__job-upper-img {
	flex: 1;
	margin-block-start: 1.1875rem;
	margin-inline: auto;
	order: 2;
	transform: scale(1.07);
}

.about__job-upper-texts {
	display: contents;
}

.about__job-upper-title {
	order: 1;
	text-align: center;
}

.about__job-upper-title-jp {
	font-size: 1.5rem;
	letter-spacing: 0.105rem;
	margin-block-start: 0.1875rem;
}

.about__job-upper-catch {
	font-size: 1.125rem;
	line-height: 160%;
	margin-block-start: 0.9375rem;
	order: 3;
	text-align: center;
}

.about__job-upper-text {
	line-height: 160%;
	margin-block-start: 1.3125rem;
	order: 4;
}

.about__job-upper-list {
	flex-direction: column;
	margin-block-start: 2.5625rem;
	row-gap: 2.5625rem;
}

.about__job-upper-item {
	align-items: center;
	display: flex;
	-moz-column-gap: 1.0625rem;
	column-gap: 1.0625rem;
	padding: 0.625rem 0.9375rem 1.375rem 1rem;
}

.about__job-upper-item--1::after,
.about__job-upper-item--2::after {
	background-image: url(../../assets/img/about_arrows_sp.svg);
	bottom: -2.3125rem;
	height: 2.051875rem;
	left: 50%;
	right: auto;
	top: auto;
	translate: -50%;
	width: 5.045rem;
}

.about__job-upper-illust--1 {
	width: 5.5rem;
}

.about__job-upper-illust--2 {
	width: 5.5rem;
}

.about__job-upper-illust--3 {
	width: 5.5rem;
}

.about__job-upper-item-texts {
	flex: 1;
	min-width: 0;
}

.about__job-upper-item-title--1,
.about__job-upper-item-title--2 {
	padding-block: 0 0.1875rem;
}

.about__job-upper-item-title--3 {
	padding-block: 0 0.1875rem;
}

.about__job-upper-item-list li {
	padding-inline: 0;
	width: 100%;
}

.about__job-lower-inner {
	padding: 3.875rem 1.25rem 3.75rem;
}

.about__job-lower-message {
	font-size: 1.125rem;
	letter-spacing: 0.07875rem;
}

.about__job-lower-lead {
	line-height: 160%;
}

.about__job-lower-list {
	flex-direction: column;
	margin-block-start: 2.1875rem;
	row-gap: 0.5rem;
}

.about__job-lower-item {
	min-width: auto;
	padding: 1.25rem;
}

.about__job-lower-item-img {
	flex: 0 0 4.0625rem;
}

.about__job-lower-item-title {
	font-size: 1.125rem;
	font-weight: 700;
}

.about__job-lower-item-text {
	margin-block-start: 0.6875rem;
}

.about__job-lower-item-text li {
	line-height: 160%;
}

.about-strength {
	margin-block-start: 3.75rem;
	padding-block-end: 0;
}

.about-strength__title-jp {
	font-size: 1.5rem;
	letter-spacing: 0.105rem;
	margin-block-start: 0.3125rem;
}

.about-strength__message-title {
	font-size: 1.125rem;
	letter-spacing: 0.0375rem;
	line-height: 160%;
}

.about-strength__message-text {
	line-height: 160%;
	-moz-text-align-last: left;
	font-weight: 400;
	text-align-last: left;
}

.about-strength__list {
	margin-block-start: 2.4375rem;
	row-gap: 4.375rem;
}

.about-strength__item {
	flex-direction: column;
}

.about-strength__item:nth-child(even) {
	flex-direction: column;
}

.about-strength__img {
	flex: 1;
}

.about-strength__item-title-wrapper {
	align-items: flex-start;
	flex-direction: column;
	margin-block-start: 1.25rem;
	row-gap: 0.3125rem;
}

.about-strength__item-title {
	font-size: 1.25rem;
	letter-spacing: 0.0875rem;
	line-height: 160%;
}

.about-strength__item-message {
	line-height: 160%;
	margin-block-start: 1.25rem;
}

.about-strength__item-text {
	line-height: 160%;
	margin-block-start: 1rem;
}

.about-strength__note {
	margin-block-start: 1.25rem;
	padding: 0.75rem;
	white-space: nowrap;
}

.about-philosophy {
	padding-block: 4.375rem 0;
}

.about-philosophy__inner {
	background-image: url(../../assets/img/about_philoshphy_bg_sp.png);
	margin-inline: auto;
	padding-block: 3.8125rem 8rem;
	width: 20.9375rem;
}

.about-philosophy__title-jp {
	font-size: 1.5rem;
	letter-spacing: 0.105rem;
	margin-block-start: 0.25rem;
}

.about-philosophy__svg-pc {
	display: none;
}

.about-philosophy__svg-sp {
	display: block;
	height: 0.75rem;
	margin-block-start: 0.4375rem;
	margin-inline: auto;
	width: 16.25rem;
}

.about-philosophy__message-title {
	font-size: 1.0625rem;
	line-height: 160%;
	margin-block-start: 1.9375rem;
}

.about-philosophy__message-text {
	line-height: 160%;
	margin-block-start: 1.3125rem;
}

.about-vision {
	background-image: url(../../assets/img/about_vision_bg_sp.jpg);
	margin-block-start: 4.375rem;
	padding-block: 3.8125rem 0;
}

.about-vision__title-jp {
	font-size: 1.5rem;
	letter-spacing: 0.105rem;
	margin-block-start: 0.25rem;
}

.about-vision__message-title {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	margin-block-start: 2.125rem;
}

.about-vision__message-text {
	line-height: 160%;
}

.webp .about-philosophy__inner {
	background-image: url(../../assets/img/about_philoshphy_bg_sp.webp);
}

.webp .about-vision {
	background-image: url(../../assets/img/about_vision_bg_sp.webp);
}

.news {
	margin-block-start: 3.125rem;
}

.news__list {
	margin-block: 3.75rem;
	row-gap: 0.5rem;
}

.news__list > .pagination {
	margin-block-start: 2rem;
}

.news__item-link {
	padding: 1rem 2.875rem 0.8125rem 1rem;
}

.news__item-icon {
	height: 0.875rem;
	right: 1rem;
	width: 0.875rem;
}

.news__item-date {
	font-size: 0.75rem;
	letter-spacing: 0.0375rem;
}

.news__item-category {
	padding-inline: 0.625rem;
}

.news-post {
	margin-block-start: 3.125rem;
}

.news-post__inner {
	padding-inline: 0.625rem;
}

.news-post__content-inner {
	margin-block: 3.125rem 3.75rem;
	padding: 1.875rem 1.25rem 3.75rem;
}

.news-post__meta {
	margin-block-start: 1.5625rem;
}

.news-post__title {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
	line-height: 120%;
	margin-block: 1.25rem 1.75rem;
}

.news-post__btn {
	-moz-column-gap: 0.625rem;
	column-gap: 0.625rem;
	padding: 0.9375rem 2.9375rem;
}

.news-post__btn span {
	font-size: 0.9375rem;
}

.news-post__btn svg {
	height: 0.875rem;
	width: 0.875rem;
}

.news-post h2 {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	line-height: 120%;
	margin-block-start: 2.25rem;
}

.news-post h3 {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	line-height: 120%;
	padding-block: 0.75rem;
}

.news-post h4 {
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0.05625rem;
	line-height: 120%;
}

.news-post h4::before {
	top: 0.8125rem;
}

.news-post p {
	line-height: 180%;
}

.news-post h4 + ul,
.news-post h4 + ol {
	margin-block-start: -0.6875rem;
}

.show__sp-only {
	display: block;
}

.show__sp-only--flex {
	display: flex;
}

.show__pc-only {
	display: none;
}

.show__pc-only--flex {
	display: none;
}

}

@media screen and (max-width: 767px) and (max-width: 767px) {

.manufacturers__item:nth-of-type(11) .manufacturers__item-title {
	line-height: 130%;
}

}

@keyframes fadeIn {

from {
	opacity: 0;
}

to {
	opacity: 1;
}

}

@keyframes loop-animation {

from {
	transform: translateX(0);
}

to {
	transform: translateX(-50%);
}

}

