/* リキッドレイアウト対応 */

:root {
	--padding-pc: 25px;
	--padding-sp: 20px;
	--base-font-family: "Noto Sans JP", sans-serif;
	--regular: 400;
	--normal: 500;
	--semi-bold: 600;
	--bold: 700;
	--black: #111;
	--white: #fff;
	--base-color: #121212;
	--gray: #E7E7E7;
	--primary-gradient: linear-gradient(180deg, rgba(227, 11, 11, 1) 0%, rgba(125, 6, 6, 1) 100%);
	--primary-gradient-h: linear-gradient(90deg, rgba(227, 11, 11, 1) 0%, rgba(125, 6, 6, 1) 100%);
}

body {
	font-family: var(--base-font-family);
	color: var(--base-color);
}

html {
	font-size: 16px;
}

/* スクロール固定（ドロワー開時） */

html.is-fixed {
	overflow: hidden;
}

/* ヘッダーは全ページ透明スタートのためpadding不要 */

/* works詳細ページは通常ヘッダーのためpadding必要 */

.single-works main {
	padding-top: 3.75rem;
}

.home main {
	overflow: hidden;
}

/* pcの電話番号発信対応 */

a[href^="tel:"] {
	pointer-events: none;
}

/* 電話アイコン反転 */

.fa-phone {
	transform: scaleX(-1);
}

/* ホバー */

a {
	text-decoration: none;
	color: inherit;
	transition: opacity 0.3s;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Remove default padding */

ul,
ol {
	padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

/* Set core root defaults */

html {
	scroll-behavior: smooth;
}

/* Set core body defaults */

body {
	min-height: 100vh;
	text-rendering: optimizeSpeed;
	line-height: 1.5;
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
	list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
	max-width: 100%;
	display: block;
	width: 100%;
	height: 100%;
}

/* Natural flow and rhythm in articles by default */

article > * + * {
	margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
	font: inherit;
}

/* Blur images when they have no alt attribute */

img:not([alt]) {
	filter: blur(10px);
}

/* フォームリセット */

input,
button,
select,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}

textarea {
	resize: vertical;
}

input[type=checkbox],
input[type=radio] {
	display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

html {
	overflow-wrap: break-word;
}

.contact-banner {
	position: relative;
	background: var(--primary-gradient);
	padding: 4rem 0 3.375rem;
}

.contact-banner__inner {
	max-width: 71.875rem;
	padding: 0 var(--padding-pc);
	margin-inline: auto;
}

.contact-banner__inner {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.contact-banner__left {
	display: flex;
	flex-direction: column;
	gap: 5.625rem;
}

.contact-banner__titles {
	display: flex;
	align-items: center;
	gap: 2rem;
}

.contact-banner__en {
	font-size: 5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1;
}

.contact-banner__ja {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
}

.contact-banner__text {
	font-size: 1.125rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.78;
}

.contact-banner__right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2.375rem;
}

.contact-banner__tel {
	width: 100%;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 0.5rem;
	border-radius: 6.25rem;
	color: #fff;
}

.contact-banner__tel i {
	font-size: 2.5rem;
	transform: scaleX(-1);
}

.contact-banner__tel span {
	font-size: 3rem;
	font-weight: var(--bold);
	line-height: 1.75;
	white-space: nowrap;
}

.contact-banner__btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 25.375rem;
	height: 8.25rem;
	background: #fff;
	border-radius: 1.5rem;
	padding: 1.5rem;
}

.contact-banner__btn {
	transition: opacity 0.3s;
}

.contact-banner__btn-label {
	font-size: 1rem;
	font-weight: var(--regular);
	color: #e40000;
	line-height: 1.75;
}

.contact-banner__btn-main {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	width: 18.5625rem;
	height: 3.5rem;
}

.contact-banner__btn-main i {
	font-size: 2rem;
	color: #e40000;
}

.contact-banner__btn-main span {
	font-size: 1.75rem;
	font-weight: var(--bold);
	color: #e40000;
	line-height: 1.71;
}

.contact-banner__btn-arrow {
	width: 2rem;
	height: 2rem;
}

.contact-form span,
.contact-form input {
	width: 100%;
}

.contact-form input {
	border: 0.0625rem solid #a0a0a0;
	padding: 0.325rem 0.75rem;
	font-size: 1rem;
	line-height: 1.75;
	background: #fff;
	border-radius: 0;
}

.contact-form textarea {
	width: 100%;
	border: 0.0625rem solid #a0a0a0;
	padding: 0.625rem 0.75rem;
	font-size: 1rem;
	line-height: 1.75;
	height: 12.5rem;
	background: #fff;
	border-radius: 0;
	resize: vertical;
	overflow: auto;
}

.contact-form .contact-form__label {
	display: block;
	margin-bottom: 0.5rem;
	width: -moz-fit-content;
	width: fit-content;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
}

.contact-form .need {
	position: relative;
	padding-right: 4.3125rem;
}

.contact-form .need::after {
	content: "必須";
	display: block;
	font-size: 0.875rem;
	position: absolute;
	top: 50%;
	right: 1rem;
	transform: translateY(-50%);
	padding: 0.125rem 0.625rem;
	background: #e40000;
	color: #fff;
	font-weight: var(--regular);
	line-height: 1.4;
}

.contact-form .wpcf7-submit {
	display: block;
	width: 14.625rem;
	font-size: 1rem;
	color: #fff;
	font-weight: var(--regular);
	line-height: 1;
	background: #e40000;
	padding: 0.875rem 1.5rem;
	border-radius: 0.5rem;
	border: 0.125rem solid #e40000;
	cursor: pointer;
	transition: 0.3s ease-in-out all;
	margin: 0 auto;
}

.contact-form .contact-form__row {
	margin-bottom: 1.25rem;
}

.contact-form .contact-form__row--submit {
	margin-top: 3.5rem;
}

.contact-form .contact-form__privacy-label {
	display: block;
	font-size: 1rem;
	font-weight: var(--bold);
	color: var(--base-color);
}

.contact-form .contact-form__privacy-link {
	display: inline-block;
	color: #115ffb;
	font-size: 1rem;
	font-weight: var(--regular);
	margin-bottom: 0.5rem;
	text-decoration: none;
}

.contact-form .wpcf7-spinner {
	margin: 0;
	display: none;
}

.contact-form .wpcf7-acceptance input[type=checkbox] {
	display: inline-block !important;
	width: 1rem !important;
	height: 1rem !important;
	min-width: 1rem;
	min-height: 1rem;
	border: 0.0625rem solid var(--base-color);
	background: #fff;
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	vertical-align: middle;
	margin: 0;
	padding: 0;
	flex-shrink: 0;
	box-sizing: content-box;
	position: relative;
}

.contact-form .wpcf7-acceptance input[type=checkbox]:checked {
	background: #e40000;
	border-color: #e40000;
}

.contact-form .wpcf7-acceptance input[type=checkbox]:checked::after {
	content: "";
	position: absolute;
	top: 0.125rem;
	left: 0.3125rem;
	width: 0.3125rem;
	height: 0.5625rem;
	border: solid #fff;
	border-width: 0 0.125rem 0.125rem 0;
	transform: rotate(45deg);
}

.contact-form .wpcf7-list-item {
	display: inline-block;
	margin: 0;
}

.contact-form .wpcf7-form-control-wrap[data-name=acceptance-privacy] {
	width: auto;
	display: inline;
}

.contact-form .wpcf7-acceptance {
	display: inline-block;
	transform: translateY(-0.125rem);
}

.contact-form .contact-form__consent {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	margin-top: 0.125rem;
}

.drawer {
	display: none;
}

.drawer.is-open {
	opacity: 1;
	visibility: visible;
}

.drawer__close {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	width: 2rem;
	height: 1.75rem;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

.drawer__close span {
	display: block;
	position: absolute;
	width: 1.75rem;
	height: 0.125rem;
	background: #000;
	top: 50%;
	left: 50%;
}

.drawer__close span:nth-child(1) {
	transform: translate(-50%, -50%) rotate(45deg);
}

.drawer__close span:nth-child(2) {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.drawer__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
}

.drawer__nav-list {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem;
}

.drawer__nav-item a {
	font-size: 1rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.fit-banner-mob {
	position: fixed;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 3.75rem;
	z-index: 100;
	visibility: visible;
}

.fit-banner-mob__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 100%;
	background: #fff;
	padding: 0 0 0 0.75rem;
}

.fit-banner-mob__item {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	height: 100%;
	text-decoration: none;
}

.fit-banner-mob__item--tel {
	flex: 1;
	padding: 1rem 0.3125rem;
	color: var(--base-color);
}

.fit-banner-mob__item--tel i {
	font-size: 1rem;
	color: var(--base-color);
}

.fit-banner-mob__item--contact {
	flex: 1;
	padding: 1rem 0.3125rem;
	color: var(--base-color);
}

.fit-banner-mob__item--contact i {
	font-size: 1rem;
	color: var(--base-color);
}

.fit-banner-mob__item--insta {
	width: 3.75rem;
	padding: 0.5rem;
	background: linear-gradient(135deg, rgb(104, 33, 245) 12%, rgb(235, 71, 92) 90%);
	color: #fff;
	flex-shrink: 0;
}

.fit-banner-mob__item--insta i {
	font-size: 2rem;
	line-height: 1;
}

.fit-banner-mob__item-text {
	font-size: 1rem;
	font-weight: var(--bold);
	line-height: 1.75;
	white-space: nowrap;
}

.footer__main {
	background: var(--gray);
	padding: 3rem 0;
}

.footer__inner {
	display: flex;
	justify-content: space-between;
	max-width: 74.125rem;
	padding: 0 var(--padding-pc);
	margin-inline: auto;
}

.footer__left {
	display: flex;
	flex-direction: column;
}

.footer__logo {
	display: block;
	width: 20rem;
}

.footer__logo img {
	width: 100%;
	height: auto;
}

.footer__company-name {
	font-size: 1.125rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.78;
	margin-top: 2.625rem;
}

.footer__address {
	font-size: 1.125rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.78;
	margin-top: 1rem;
}

.footer__buttons {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: 3rem;
}

.footer__contact-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	width: 11rem;
	padding: 0.5rem 1.5rem;
	background: var(--base-color);
	border-radius: 6.25rem;
	font-size: 1rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
	transition: background 0.3s, color 0.3s;
}

.footer__insta-btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	width: 11rem;
	padding: 0.5rem 1.5rem;
	background: linear-gradient(135deg, rgb(104, 33, 245) 12%, rgb(235, 71, 92) 90%);
	border-radius: 6.25rem;
	font-size: 1rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
	transition: color 0.3s;
}

.footer__insta-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	border-radius: 6.25rem;
	opacity: 0;
	transition: opacity 0.3s;
}

.footer__insta-btn i,
.footer__insta-btn span {
	position: relative;
	z-index: 1;
}

.footer__nav-columns {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 41rem;
}

.footer__nav-column {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0 0.5rem 1rem;
	border-bottom: 1px solid var(--base-color);
}

.footer__nav-heading {
	width: 10rem;
	font-size: 1rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	flex-shrink: 0;
}

.footer__nav-list {
	display: flex;
	gap: 2rem;
}

.footer__nav-list li a {
	font-size: 0.875rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.71;
}

.footer__bottom {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 2rem;
	background: #e40000;
}

.footer__copyright {
	font-size: 0.875rem;
	font-weight: var(--regular);
	color: #fff;
	line-height: 1.71;
	text-align: center;
}

.header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 3.75rem;
	background: rgba(255, 255, 255, 0.8);
	backdrop-filter: blur(8px);
	z-index: 100;
	transition: background 0.3s, backdrop-filter 0.3s;
}

.header--transparent {
	background: transparent;
	backdrop-filter: none;
}

.header--transparent .header__nav-link {
	color: #fff;
}

.header--transparent .header__nav-link::after {
	background: #fff;
}

.header--transparent .header__tel {
	color: #fff;
}

.header--transparent .header__contact-btn {
	color: #fff;
}

.header--transparent .header__hamburger span {
	background: #fff;
}

.header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	padding: 0 0 0 3.125rem;
}

.header__logo {
	display: block;
	width: 11.3125rem;
}

.header__logo img {
	width: 100%;
	height: auto;
	transition: filter 0.3s;
}

.header--transparent .header__logo img {
	filter: brightness(0) invert(1);
}

.header__right {
	display: flex;
	align-items: center;
	gap: 1rem;
	height: 100%;
}

.header__nav-list {
	display: flex;
	align-items: center;
	gap: 1.125rem;
}

.header__nav-link {
	position: relative;
	font-size: 0.875rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.71;
	transition: color 0.3s;
}

.header__nav-link::after {
	content: "";
	position: absolute;
	bottom: -0.125rem;
	left: 0;
	width: 100%;
	height: 0.0625rem;
	background: var(--base-color);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s;
}

.header__buttons {
	display: flex;
	align-items: center;
	height: 100%;
}

.header__tel {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	padding: 1rem 1.5rem;
	font-size: 1rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	white-space: nowrap;
}

.header__contact-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	padding: 1rem 1.5rem;
	font-size: 1rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	transition: background 0.3s, color 0.3s;
}

.header__insta-btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 3.75rem;
	height: 3.75rem;
	background: linear-gradient(135deg, rgb(104, 33, 245) 12%, rgb(235, 71, 92) 90%);
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	transition: color 0.3s;
}

.header__insta-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	opacity: 0;
	transition: opacity 0.3s;
}

.header__insta-btn i {
	position: relative;
	z-index: 1;
}

.header__hamburger {
	position: relative;
	width: 2.5rem;
	height: 2.5rem;
	background: none;
	border: none;
	cursor: pointer;
	z-index: 110;
}

.header__hamburger span {
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 1.5rem;
	height: 0.125rem;
	background: var(--base-color);
	transition: transform 0.3s, opacity 0.3s;
}

.header__hamburger span:nth-child(1) {
	top: 0.625rem;
}

.header__hamburger span:nth-child(2) {
	top: 1.1875rem;
}

.header__hamburger span:nth-child(3) {
	top: 1.75rem;
}

.header__hamburger.is-open span:nth-child(1) {
	top: 1.1875rem;
	transform: translateX(-50%) rotate(45deg);
}

.header__hamburger.is-open span:nth-child(2) {
	opacity: 0;
}

.header__hamburger.is-open span:nth-child(3) {
	top: 1.1875rem;
	transform: translateX(-50%) rotate(-45deg);
}

.drawer {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 99;
	pointer-events: none;
}

.drawer.is-open {
	pointer-events: auto;
}

.drawer__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	opacity: 0;
	transition: opacity 0.3s;
}

.drawer.is-open .drawer__overlay {
	opacity: 1;
}

.drawer__content {
	position: absolute;
	top: 0;
	right: 0;
	width: 80%;
	max-width: 25rem;
	height: 100%;
	background: #fff;
	padding: 5rem 1.5rem 2.5rem;
	transform: translateX(100%);
	transition: transform 0.3s;
	overflow-y: auto;
}

.drawer.is-open .drawer__content {
	transform: translateX(0);
}

.drawer__nav-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.drawer__nav-item a {
	display: block;
	font-size: 1rem;
	font-weight: var(--bold);
	color: var(--base-color);
	padding: 0.5rem 0;
}

.drawer__buttons {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 2rem;
}

.drawer__tel {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	font-size: 1rem;
	font-weight: var(--bold);
	color: var(--base-color);
	border: 1px solid var(--base-color);
	border-radius: 6.25rem;
}

.drawer__contact-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	font-size: 1rem;
	font-weight: var(--bold);
	color: #fff;
	background: #e40000;
	border-radius: 6.25rem;
}

.inner {
	max-width: 74rem;
	padding: 0 var(--padding-pc);
	margin-inline: auto;
}

.more-btn {
	position: relative;
	display: flex;
	align-items: center;
	width: 15.125rem;
	height: 3.25rem;
	background: #E40000;
	border-radius: 6.25rem;
	padding: 0 1.5rem;
	overflow: hidden;
	transition: background 0.3s;
}

.more-btn__text {
	font-size: 1rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
}

.more-btn__arrow {
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 2rem;
	height: 2rem;
}

.page-header-simple {
	position: relative;
	width: 100%;
	height: 25rem;
	background: linear-gradient(to left, rgb(227, 11, 11) 0%, rgb(125, 6, 6) 100%);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.page-header-simple__inner {
	width: 100%;
}

.page-header-simple__titles {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding-bottom: 3rem;
}

.page-header-simple__title-en {
	font-size: 7.5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1;
}

.page-header-simple__title-ja {
	font-size: 2rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
}

.page-header {
	position: relative;
	width: 100%;
	height: 45rem;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.page-header::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.1);
}

.page-header__inner {
	position: relative;
	z-index: 1;
	width: 100%;
}

.page-header__titles {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding-bottom: 3rem;
}

.page-header__title-en {
	font-size: 7.5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1;
}

.page-header__title-ja {
	font-size: 2rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
}

.breadcrumb-wrap {
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}

.page-header__breadcrumb {
	position: relative;
	z-index: 1;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}

.breadcrumb {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.875rem;
	font-weight: var(--regular);
	line-height: 1.71;
}

.breadcrumb__link {
	color: #115ffb;
}

.breadcrumb__separator {
	color: var(--base-color);
}

.breadcrumb__current {
	color: var(--base-color);
}

.pagetop {
	position: fixed;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 100;
}

.pagetop__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	background: var(--primary-gradient);
	border: 1px solid #fff;
	cursor: pointer;
}

html,
body {
	scroll-padding-top: 6.875rem;
}

.section-title {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.section-title__en {
	font-size: 7.5rem;
	font-weight: var(--bold);
	background: var(--primary-gradient-h);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	line-height: 1.3;
}

.section-title__en--white {
	color: #fff;
	background: none;
	-webkit-background-clip: unset;
	-webkit-text-fill-color: #fff;
	background-clip: unset;
}

.section-title__en--red {
	color: #e40000;
	background: none;
	-webkit-background-clip: unset;
	-webkit-text-fill-color: #e40000;
	background-clip: unset;
}

.section-title__ja {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	margin-top: -0.75rem;
}

.section-title__ja--white {
	color: #fff;
}

.wysiwyg > * + * {
	margin-top: 1.5rem;
}

.wysiwyg p {
	font-size: inherit;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.78;
}

.wysiwyg h2 {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	padding-bottom: 0.5rem;
	border-bottom: 0.125rem solid var(--base-color);
}

.wysiwyg h3 {
	font-size: 1.25rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	padding-left: 0.75rem;
	border-left: 0.25rem solid #e40000;
}

.wysiwyg ul {
	list-style: disc;
	padding-left: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.wysiwyg ol {
	list-style: decimal;
	padding-left: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.wysiwyg li {
	font-size: inherit;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.78;
}

.wysiwyg table {
	width: 100%;
	border-collapse: collapse;
}

.wysiwyg table td,
.wysiwyg table th {
	padding: 0.75rem 1rem;
	font-size: inherit;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	border: 0.0625rem solid #ccc;
}

.wysiwyg table th {
	font-weight: var(--bold);
	background: #f5f5f5;
}

.company-breadcrumb {
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}

.company-wrapper {
	margin-top: -1.875rem;
	overflow: hidden;
}

.company-philosophy {
	position: relative;
	padding-bottom: 2.5rem;
}

.company-philosophy__title {
	width: 100vw;
	margin-left: calc(-50vw + 50%);
}

.company-philosophy__title-en {
	margin-left: 5rem;
	width: -moz-fit-content;
	width: fit-content;
	position: relative;
	transform: rotate(90deg) translateX(-3.125rem);
	transform-origin: bottom left;
	z-index: 2;
	mix-blend-mode: darken;
	font-size: 7.5rem;
	font-weight: var(--bold);
	color: #e40000;
	line-height: 1;
	text-transform: uppercase;
}

.company-philosophy__bg img {
	min-width: 84.375rem;
	transform: translateX(calc(70.875rem - 100%));
	width: 85vw;
	max-width: unset;
	max-height: 56.25rem;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1324/640;
}

.company-philosophy__content {
	display: flex;
	justify-content: flex-end;
	margin-top: -9.375rem;
	position: relative;
	margin-right: -1vw;
	z-index: 2;
}

.company-philosophy__content-inner {
	background: #fff;
	border-radius: 3rem 0 0 0;
	padding: 2.5rem;
	width: 100%;
	max-width: 53rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.company-philosophy__heading {
	display: flex;
	align-items: center;
	gap: 1rem;
	position: relative;
	z-index: 2;
}

.company-philosophy__heading-line {
	display: block;
	width: 2rem;
	height: 0;
	border-top: 0.25rem solid #e40000;
	flex-shrink: 0;
}

.company-philosophy__heading-text {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.company-philosophy__texts {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.company-philosophy__text {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	font-size: 1.25rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.7;
	max-width: 48rem;
}

.company-philosophy__label {
	font-weight: var(--bold);
	flex-shrink: 0;
}

.company-greeting {
	position: relative;
}

.company-greeting__title {
	text-align: right;
	position: relative;
	mix-blend-mode: darken;
	z-index: 4;
}

.company-greeting__title-en {
	transform-origin: top right;
	transform: rotate(90deg) translateX(calc(100% + 3.75rem));
	margin-left: auto;
	width: -moz-fit-content;
	width: fit-content;
	z-index: 4;
	mix-blend-mode: darken;
	font-size: 7.5rem;
	font-weight: var(--bold);
	color: #e40000;
	line-height: 1;
	text-transform: uppercase;
}

.company-greeting__bg img {
	width: 85vw;
	min-width: 84.375rem;
	max-width: unset;
	max-height: 56.25rem;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1324/640;
	margin-left: auto;
	display: block;
}

.company-greeting__content {
	display: flex;
	justify-content: flex-start;
	width: -moz-fit-content;
	width: fit-content;
	margin-top: -8.4375rem;
	position: relative;
	margin-left: -1px;
	z-index: 2;
}

.company-greeting__content-inner {
	background: #fff;
	border-radius: 0 3rem 0 0;
	padding: 2.5rem;
	max-width: 53rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.company-greeting__content-inner::after {
	content: "";
	display: block;
	position: absolute;
	inset: 0 0 0 -50vw;
	background-color: white;
	z-index: 1;
	border-radius: 0 3rem 0 0;
}

.company-greeting__heading {
	display: flex;
	align-items: center;
	gap: 1rem;
	position: relative;
	z-index: 2;
}

.company-greeting__heading-line {
	display: block;
	width: 2rem;
	height: 0;
	border-top: 0.25rem solid #e40000;
	flex-shrink: 0;
}

.company-greeting__heading-text {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.company-greeting__body {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1rem;
	position: relative;
	z-index: 2;
}

.company-greeting__text {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	max-width: 48rem;
}

.company-greeting__sign {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.company-greeting__sign-title {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
}

.company-greeting__sign-name {
	font-size: 1.25rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.7;
}

.company-profile {
	padding: 2.25rem 0 0;
}

.company-profile__tables {
	display: flex;
	gap: 1rem;
	margin-top: 1.25rem;
}

.company-profile__table {
	flex: 1;
	border-collapse: collapse;
}

.company-profile__table tr {
	display: flex;
	align-items: stretch;
}

.company-profile__table th {
	width: 11rem;
	flex-shrink: 0;
	padding: 1.5rem 0.5rem;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	text-align: left;
	border-bottom: 0.125rem solid var(--base-color);
}

.company-profile__table td {
	flex: 1;
	padding: 1.5rem 0.5rem;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	border-bottom: 0.0625rem solid var(--base-color);
}

.company-access {
	padding: 5rem 0 2rem;
}

.company-access__content {
	display: flex;
	gap: 5.5rem;
	margin-top: 2rem;
}

.company-access__map {
	width: 41rem;
	aspect-ratio: 656/493;
	flex-shrink: 0;
}

.company-access__map iframe {
	width: 100%;
	height: 100%;
}

.company-access__info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.5rem;
}

.company-access__info-text {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
}

.company-equipment-banner {
	padding: 2.5rem 0 5rem;
}

.company-equipment-banner__link {
	position: relative;
	display: block;
	aspect-ratio: 1134/280;
	overflow: hidden;
}

.company-equipment-banner__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.company-equipment-banner__overlay {
	position: absolute;
	inset: 0;
	background: rgba(18, 18, 18, 0.2);
	transition: background 0.3s;
}

.company-equipment-banner__content {
	position: absolute;
	left: 2.5rem;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	gap: 2rem;
}

.company-equipment-banner__en {
	font-size: 5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1;
}

.company-equipment-banner__ja {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
}

.company-equipment-banner__arrow {
	width: 2rem;
	height: 2rem;
}

.contact-page {
	padding: 1.5rem 0 3.4rem;
}

.contact-page__notes {
	margin-top: 1.5rem;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
}

.contact-page__form {
	max-width: 47rem;
	margin-inline: auto;
	margin-top: 3.5rem;
}

.contact-phone {
	max-width: 74rem;
	padding: 0 var(--padding-pc) 5rem;
	margin-inline: auto;
}

.contact-phone__content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--primary-gradient);
	border-radius: 2rem;
	padding: 4rem;
}

.contact-phone__left {
	display: flex;
	align-items: center;
	gap: 2rem;
}

.contact-phone__en {
	font-size: 5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1;
}

.contact-phone__ja {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
}

.contact-phone__tel {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	color: #fff;
	white-space: nowrap;
}

.contact-phone__tel i {
	font-size: 2.5rem;
}

.contact-phone__tel span {
	font-size: 3rem;
	font-weight: var(--bold);
	line-height: 1.75;
}

.equipment-list {
	padding-top: 1.2rem;
}

.equipment-list__lead {
	margin-top: 1.5rem;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
}

.equipment-list__table {
	margin-top: 3.5rem;
}

.equipment-list__row {
	display: flex;
	align-items: stretch;
}

.equipment-list__cell {
	display: flex;
	align-items: center;
	padding: 0.5rem;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	flex-grow: 1;
}

.equipment-list__cell--category {
	width: 28.5rem;
	flex-shrink: 0;
	border-bottom: 0.0625rem solid #808080;
}

.equipment-list__cell--category:empty {
	border-color: transparent;
}

.equipment-list__cell--category-bold {
	font-weight: var(--bold);
}

.equipment-list__cell--name {
	width: 28.9375rem;
	flex-shrink: 0;
	border-bottom: 0.0625rem solid #808080;
	color: var(--base-color);
}

.equipment-list__cell--count {
	width: 10.4375rem;
	flex-shrink: 0;
	border-bottom: 0.0625rem solid #808080;
}

.equipment-list__link {
	color: #115ffb;
	text-decoration: none;
}

.equipment-detail {
	margin-top: 7.7rem;
}

.equipment-detail__inner {
	max-width: 91.375rem;
	padding: 0 var(--padding-pc);
	margin-inline: auto;
}

.equipment-detail__card {
	margin-bottom: 5rem;
	position: relative;
}

.equipment-detail__card:nth-of-type(odd) {
	margin-left: 8.75rem;
}

.equipment-detail__card:nth-of-type(odd) .equipment-detail__body {
	left: 0;
}

.equipment-detail__card:nth-of-type(even) {
	margin-right: 8.75rem;
}

.equipment-detail__card:nth-of-type(even) .equipment-detail__body {
	right: 0;
}

.equipment-detail__card:last-child {
	padding-bottom: 0;
}

.equipment-detail__image {
	width: 59.0625rem;
	aspect-ratio: 945/632;
	overflow: hidden;
}

.equipment-detail__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.equipment-detail__card:nth-of-type(odd) .equipment-detail__image {
	margin-left: auto;
}

.equipment-detail__card:nth-of-type(even) .equipment-detail__image {
	margin-right: auto;
}

.equipment-detail__body {
	position: absolute;
	bottom: -1px;
	z-index: 1;
	width: 38.25rem;
}

.equipment-detail__card:nth-of-type(even) .equipment-detail__body {
	margin-left: auto;
}

.equipment-detail__label {
	display: block;
	font-size: 4.5rem;
	font-weight: var(--bold);
	color: #d0d0d0;
	opacity: 0.8;
	line-height: 1.1666666667;
	white-space: nowrap;
}

.equipment-detail__card:nth-of-type(odd) .equipment-detail__label {
	text-align: left;
}

.equipment-detail__card:nth-of-type(even) .equipment-detail__label {
	text-align: right;
}

.equipment-detail__info {
	background: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.equipment-detail__card:nth-of-type(odd) .equipment-detail__info {
	padding: 1.5rem 3rem 1.5rem 0;
	border-radius: 0 1.5rem 0 0;
}

.equipment-detail__card:nth-of-type(even) .equipment-detail__info {
	padding: 1.5rem 0 1.5rem 3rem;
	border-radius: 1.5rem 0 0 0;
}

.equipment-detail__title {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: #000000;
	line-height: 1.75;
}

.equipment-detail__specs {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.equipment-detail__spec-list {
	display: flex;
	flex-direction: column;
	gap: 0.0625rem;
}

.equipment-detail__spec-row {
	display: flex;
	align-items: stretch;
}

.equipment-detail__spec-label {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding: 0.25rem 0.5rem;
	width: 10.875rem;
	flex-shrink: 0;
	background: #284d6b;
	font-size: 1rem;
	font-weight: var(--regular);
	color: #ffffff;
	line-height: 1.75;
}

.equipment-detail__spec-value {
	display: flex;
	align-items: center;
	padding: 0.25rem 0.5rem;
	flex: 1;
	background: #e7e7e7;
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
}

.partners-list {
	padding-top: 1.25rem;
	padding-bottom: 5.375rem;
}

.partners-list__desc {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	margin-top: 1.5rem;
}

.partners-list__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	-moz-column-gap: 1.25rem;
	column-gap: 1.25rem;
	row-gap: 6rem;
	margin-top: 3.5rem;
}

.partners-list__group {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.partners-list__group-header {
	width: 100%;
	height: 3rem;
	background-color: #595959;
	display: flex;
	align-items: center;
	padding-left: 1.125rem;
}

.partners-list__group-label {
	font-size: 1.25rem;
	font-weight: var(--regular);
	color: #fff;
	line-height: 1.7;
}

.partners-list__names {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.partners-list__names li {
	font-size: 1.125rem;
	font-weight: var(--regular);
	color: #000000;
	line-height: 1.7777777778;
}

.partners-list__names li a {
	color: inherit;
	text-decoration: none;
}

.partners-list__names li a:hover {
	text-decoration: underline;
}

.privacy {
	padding-top: 1.0625rem;
	padding-bottom: 5rem;
}

.privacy__intro {
	font-size: 1.25rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.7;
	text-align: justify;
	max-width: 71rem;
}

.privacy__grid {
	display: grid;
	grid-template-columns: 34.5rem 34.5rem;
	gap: 2rem;
	margin-top: 2.5rem;
}

.privacy__section {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.privacy__section-title {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: #e40000;
	line-height: 1.75;
}

.privacy__section-text {
	font-size: 1.25rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.7;
	text-align: justify;
}

.privacy__section-text--indent {
	padding-left: 1em;
	text-indent: -1em;
}

.privacy__contact {
	position: relative;
	margin-top: 3rem;
	border: 2px solid #717171;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: 35.0625rem;
}

.privacy__contact-inner {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.privacy__contact-title {
	font-size: 1.25rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.7;
}

.privacy__contact-text {
	font-size: 1.125rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.7777777778;
}

.privacy__contact-link {
	font-size: 1.125rem;
	font-weight: var(--regular);
	color: #115ffb;
	line-height: 1.7777777778;
}

.tools-list {
	padding: 1.5rem 0 5rem;
}

.tools-list__desc {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	margin-top: 1.5rem;
}

.tools-list__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem 1rem;
	margin-top: 3.5rem;
}

.tools-list__card {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 1.25rem;
	background: var(--gray);
	border-radius: 1rem;
	box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25);
	transition: opacity 0.3s;
}

.tools-list__card-icon {
	width: 5rem;
	aspect-ratio: 1/1;
	flex-shrink: 0;
}

.tools-list__card-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tools-list__card-name {
	font-size: 1.25rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.7;
	text-align: center;
	flex: 1;
	min-width: 0;
}

.tools-list__card-name--sm {
	font-size: 1rem;
}

.tools-list__btn-wrap {
	margin-top: 4.3125rem;
}

.tools-list__btn {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
	width: 100%;
	height: 5rem;
	background: var(--primary-gradient);
	border-radius: 6.25rem;
	transition: opacity 0.3s;
}

.tools-list__btn-text {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.75;
}

.tools-list__btn-arrow {
	width: 2rem;
	height: 2rem;
}

.top-mv {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.top-mv__swiper {
	width: 100%;
	height: 100svh;
}

.top-mv__swiper-sp {
	width: 100%;
	height: 100svh;
}

.top-mv__pagination-sp {
	display: none;
}

.top-mv__slide {
	position: relative;
	width: 100%;
	height: 100%;
}

.top-mv__slide--split {
	display: flex;
}

.top-mv__slide--full {
	display: block;
}

.top-mv__slide-left {
	width: 50%;
	height: 100%;
	overflow: hidden;
}

.top-mv__slide-left img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.top-mv__slide-right {
	width: 50%;
	height: 100%;
	overflow: hidden;
}

.top-mv__slide-right img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.top-mv__slide-bg {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.top-mv__text {
	position: absolute;
	left: 5.25rem;
	top: 14.5rem;
	display: flex;
	gap: 0.875rem;
	z-index: 5;
}

.top-mv__text-col {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	gap: 0.5rem;
	padding: 1rem;
}

.top-mv__text-line {
	writing-mode: vertical-rl;
	font-size: 1.25rem;
	font-weight: var(--bold);
	color: #fff;
	line-height: 1.2;
	letter-spacing: 0.2em;
	text-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.4);
}

.top-mv__pagination {
	display: none;
}

.top-catch {
	padding: 3.5rem 0;
}

.top-catch__inner {
	max-width: 87.5rem;
	padding: 0 var(--padding-pc);
	margin-inline: auto;
	display: flex;
	justify-content: center;
}

.top-catch__text {
	font-size: 1.5rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	text-align: center;
	max-width: 40.5rem;
}

.top-catch__text span {
	font-size: 1.75rem;
}

.top-strengths {
	position: relative;
	padding-bottom: 2.5rem;
}

.top-strengths__title-en {
	width: -moz-fit-content;
	width: fit-content;
	margin-left: auto;
	position: relative;
	z-index: 2;
	mix-blend-mode: darken;
	font-size: 7.5rem;
	font-weight: var(--bold);
	color: #e40000;
	line-height: 1;
	text-transform: uppercase;
	margin-right: 1.5rem;
}

.top-strengths__bg {
	margin-top: -11.875rem;
}

.top-strengths__bg img {
	width: 85vw;
	max-width: unset;
	min-width: 84.375rem;
	max-height: 56.25rem;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1324/800;
	transform: translateX(calc(70.875rem - 100%));
}

.top-strengths__content {
	display: flex;
	justify-content: flex-end;
	margin-top: -18.1rem;
	position: relative;
	margin-right: -1vw;
	z-index: 2;
}

.top-strengths__content-inner {
	background: #fff;
	border-radius: 3rem 0 0 0;
	padding: 2.5rem;
	width: 100%;
	max-width: 45.8rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.top-strengths__head {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.top-strengths__head-line {
	display: block;
	width: 2rem;
	height: 0.25rem;
	background: #e40000;
	flex-shrink: 0;
}

.top-strengths__head-title {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.top-strengths__text {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	max-width: 40rem;
	position: relative;
	z-index: 2;
}

.top-works {
	position: relative;
	padding-bottom: 2.5rem;
}

.top-works__title {
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	text-align: right;
	mix-blend-mode: darken;
}

.top-works__title-en {
	transform-origin: top right;
	transform: rotate(90deg) translateX(calc(100% + 3.75rem));
	margin-left: auto;
	margin-right: 5rem;
	width: -moz-fit-content;
	width: fit-content;
	z-index: 4;
	mix-blend-mode: darken;
	font-size: 7.5rem;
	font-weight: var(--bold);
	color: #e40000;
	line-height: 1;
	text-transform: uppercase;
}

.top-works__gallery-list {
	display: flex;
	gap: 0;
	width: 89vw;
	max-width: unset;
	margin-left: auto;
}

.top-works__gallery-item {
	width: 33.333%;
	aspect-ratio: 442/640;
	overflow: hidden;
}

.top-works__gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.top-works__content {
	display: flex;
	justify-content: flex-start;
	margin-top: -9.7rem;
	position: relative;
	margin-left: -1px;
	z-index: 2;
}

.top-works__content-inner {
	background: #fff;
	border-radius: 0 3rem 0 0;
	padding: 2.5rem;
	max-width: 53rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.top-works__head {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.top-works__head-line {
	display: block;
	width: 2rem;
	height: 0.25rem;
	background: #e40000;
	flex-shrink: 0;
}

.top-works__head-title {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.top-works__desc {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	max-width: 30.125rem;
	position: relative;
	z-index: 2;
}

.top-works__btn {
	margin-top: 1rem;
	position: relative;
	z-index: 2;
}

.top-about {
	position: relative;
	padding-top: 0;
	padding-bottom: 2.5rem;
}

.top-about__head {
	margin-bottom: 2.5rem;
	position: relative;
	z-index: 3;
	mix-blend-mode: darken;
}

.top-about__title-en {
	font-size: 7.5rem;
	font-weight: var(--bold);
	background: var(--primary-gradient-h);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	line-height: 1;
	mix-blend-mode: darken;
}

.top-about__title-ja {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.top-about__bg-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 1512/450;
	overflow: hidden;
	margin-top: -8.75rem;
}

.top-about__bg {
	width: 100%;
	height: 100%;
}

.top-about__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.6;
}

.top-about__bg-gradient {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 11.25rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 79%);
}

.top-about__banners {
	display: flex;
	gap: 1rem;
	margin-top: -19rem;
	position: relative;
	z-index: 2;
}

.top-about__banner {
	position: relative;
	flex: 1;
	aspect-ratio: 560/560;
	overflow: hidden;
	display: block;
}

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

.top-about__banner-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.2);
	transition: background 0.3s;
}

.top-about__banner-btn {
	position: absolute;
	left: 2rem;
	bottom: 2rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 12.5rem;
	height: 12.5rem;
	background: #fff;
	border-radius: 50%;
	gap: 0.5rem;
	padding: 1.5rem 1rem;
	transition: box-shadow 0.3s;
}

.top-about__banner-btn-ja {
	font-size: 1.75rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.7142857143;
}

.top-about__banner-btn-en {
	font-size: 1rem;
	font-weight: var(--bold);
	color: #e40000;
	line-height: 1.75;
}

.top-about__banner-btn-arrow {
	width: 1.5rem;
	aspect-ratio: 1/1;
}

.top-recruit {
	position: relative;
	padding-bottom: 5.5rem;
}

.top-recruit__title {
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	text-align: right;
}

.top-recruit__title-en {
	transform-origin: top right;
	transform: rotate(90deg) translateX(calc(100% + 3.75rem));
	margin-left: auto;
	margin-right: 5rem;
	width: -moz-fit-content;
	width: fit-content;
	z-index: 4;
	mix-blend-mode: darken;
	font-size: 7.5rem;
	font-weight: var(--bold);
	background: var(--primary-gradient);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	line-height: 1;
	text-transform: uppercase;
}

.top-recruit__bg img {
	width: 85vw;
	max-width: unset;
	min-width: 84.375rem;
	max-height: 56.25rem;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1324/640;
	margin-left: auto;
	display: block;
}

.top-recruit__content {
	display: flex;
	justify-content: flex-start;
	margin-top: -10.3rem;
	position: relative;
	margin-left: -1px;
	z-index: 2;
}

.top-recruit__content-inner {
	background: #fff;
	border-radius: 0 3rem 0 0;
	padding: 2.5rem;
	max-width: 53rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.top-recruit__head {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.top-recruit__head-line {
	display: block;
	width: 2rem;
	height: 0.25rem;
	background: #e40000;
	flex-shrink: 0;
}

.top-recruit__head-title {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.top-recruit__text {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	position: relative;
	z-index: 2;
}

.top-recruit__btn {
	margin-top: 1rem;
	position: relative;
	z-index: 2;
}

.works-list {
	padding-top: 1rem;
	padding-bottom: 5rem;
}

.works-list__desc {
	font-size: 1rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.75;
	margin-top: 1.5rem;
}

.works-list__tabs {
	display: flex;
	gap: 1rem;
	margin-top: 3.5rem;
}

.works-list__tab {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 23rem;
	height: 4.5rem;
	background: var(--primary-gradient);
	border-radius: 6.25rem;
	color: #fff;
}

.works-list__tab-text {
	font-size: 1.125rem;
	font-weight: var(--bold);
	line-height: 1.7777777778;
}

.works-list__tab-arrow {
	width: 1.75rem;
	transform: rotate(90deg);
	height: 1.75rem;
}

.works-list__category {
	margin-top: 4rem;
}

.works-list__category-head {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.works-list__category-title {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
}

.works-list__category-line {
	width: 100%;
	height: 0.25rem;
	background: var(--primary-gradient-h);
}

.works-list__grid {
	display: grid;
	grid-template-columns: repeat(3, 23rem);
	gap: 3rem;
	margin-top: 2rem;
}

.works-list__item {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.works-list__item-thumb {
	width: 100%;
	aspect-ratio: 1/1;
	overflow: hidden;
}

.works-list__item-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.works-list__item-title {
	font-size: 1.25rem;
	font-weight: var(--regular);
	color: var(--base-color);
	line-height: 1.7;
}

.works-list__empty {
	font-size: 1rem;
	color: var(--base-color);
	text-align: center;
	padding: 5rem 0;
}

.works-single__breadcrumb {
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}

.works-single__title-bar {
	position: relative;
}

.works-single__title-bar-inner {
	position: relative;
	background: #e7e7e7;
	display: flex;
	align-items: center;
	min-height: 4rem;
}

.works-single__title-accent {
	position: absolute;
	left: 0;
	top: 0;
	width: 1.25rem;
	height: 100%;
	background: linear-gradient(180deg, rgb(227, 11, 11) 0%, rgb(125, 6, 6) 100%);
}

.works-single__title {
	font-size: 2rem;
	font-weight: var(--bold);
	color: var(--base-color);
	line-height: 1.75;
	padding-left: 2.5rem;
}

.works-single__gallery {
	margin-top: 2.75rem;
	margin-bottom: 2.5rem;
}

.works-single__main-wrap {
	display: flex;
	align-items: center;
	gap: 1.25rem;
}

.works-single__inner {
	max-width: 59.625rem;
	padding: 0 var(--padding-pc);
	margin-inline: auto;
}

.works-single__main-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1.25rem;
	height: 2.5rem;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

.works-single__main-arrow svg {
	width: 1.25rem;
	height: 2.5rem;
}

.works-single__main-image {
	flex: 1;
	min-width: 0;
	aspect-ratio: 904/602.67;
	overflow: hidden;
	background: #f5f5f5;
}

.works-single__main-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.works-single__slider {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.works-single__slider-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.25rem;
	height: 2.5rem;
	flex-shrink: 0;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

.works-single__slider-arrow svg {
	width: 0.375rem;
	height: 0.75rem;
}

.works-single__thumbs {
	display: flex;
	gap: 0.9375rem;
	overflow-x: auto;
	flex: 1;
	min-width: 0;
	scroll-behavior: smooth;
}

.works-single__thumb {
	flex-shrink: 0;
	width: 6.25rem;
	aspect-ratio: 100/66.48;
	overflow: hidden;
	border: 0.0625rem solid #e7e7e7;
	cursor: pointer;
	background: none;
	padding: 0;
	opacity: 0.6;
	transition: opacity 0.3s;
}

.works-single__thumb.is-active {
	opacity: 1;
	border-color: var(--base-color);
}

.works-single__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.works-single__content {
	max-width: 56.5rem;
	margin-inline: auto;
	font-size: 1.125rem;
	font-weight: var(--regular);
	color: #000000;
	line-height: 1.78;
	margin-bottom: 3.5rem;
}

.works-single__content p + p {
	margin-top: 1rem;
}

.works-single__back {
	display: flex;
	justify-content: center;
	margin-bottom: 5rem;
}

@media (any-hover: hover) {

.contact-banner__btn:hover {
	opacity: 0.5;
}

.contact-form .wpcf7-submit:hover {
	color: #e40000;
	background: #fff;
}

.contact-form .contact-form__privacy-link:hover {
	text-decoration: underline;
}

.fit-banner-mob__item:hover {
	opacity: 0.8;
}

.footer__contact-btn:hover {
	background: #fff;
	color: #e40000;
}

.footer__insta-btn:hover {
	color: #e40000;
}

.footer__insta-btn:hover::before {
	opacity: 1;
}

.footer__nav-heading:hover {
	opacity: 0.7;
}

.footer__nav-list li a:hover {
	opacity: 0.7;
}

.header__nav-link:hover::after {
	transform: scaleX(1);
}

.header__contact-btn:hover {
	background: #fff;
	color: #E40000;
}

.header__insta-btn:hover {
	color: #E40000;
}

.header__insta-btn:hover::before {
	opacity: 1;
}

.more-btn:hover {
	background: #121212;
}

.breadcrumb__link:hover {
	text-decoration: underline;
}

.pagetop__link:hover {
	opacity: 0.8;
}

.company-equipment-banner__link:hover .company-equipment-banner__overlay {
	background: rgba(18, 18, 18, 0.5);
}

.equipment-list__link:hover {
	text-decoration: underline;
}

.privacy__contact-link:hover {
	text-decoration: underline;
}

.tools-list__card:hover {
	opacity: 0.8;
}

.tools-list__btn:hover {
	opacity: 0.85;
}

.top-about__banner:hover .top-about__banner-overlay {
	background: rgba(255, 255, 255, 0.5);
}

.top-about__banner:hover .top-about__banner-btn {
	box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.25);
}

.works-list__tab:hover {
	opacity: 0.8;
}

.works-list__item:hover {
	opacity: 0.8;
}

.works-single__main-arrow:hover {
	opacity: 0.6;
}

.works-single__slider-arrow:hover {
	opacity: 0.6;
}

.works-single__thumb:hover {
	opacity: 1;
}

}

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

.sp {
	display: none !important;
}

}

@media (min-width: 768px) {

html {
	font-size: 1.1428571429vw;
}

}

@media (min-width: 1400px) {

html {
	font-size: 16px;
}

}

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

.pc {
	display: none !important;
}

}

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

a[href^="tel:"] {
	pointer-events: all;
}

a:hover {
	opacity: 0.8;
}

.contact-banner {
	padding: 2.5rem 0;
}

.contact-banner__inner {
	max-width: 37.5rem;
	padding: 0 var(--padding-sp);
}

.contact-banner__inner {
	flex-direction: column;
	gap: 0.5rem;
	align-items: center;
}

.contact-banner__left {
	gap: 1.5rem;
	align-items: center;
	text-align: left;
}

.contact-banner__titles {
	width: 100%;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.5rem;
}

.contact-banner__en {
	font-size: 3rem;
}

.contact-banner__ja {
	font-size: 1.125rem;
}

.contact-banner__text {
	font-size: 0.875rem;
}

.contact-banner__right {
	align-items: center;
	gap: 1.25rem;
	width: 100%;
}

.contact-banner__tel {
	justify-content: center;
}

.contact-banner__tel i {
	font-size: 2rem;
}

.contact-banner__tel span {
	font-size: 2.25rem;
}

.contact-banner__btn {
	width: 100%;
	height: auto;
	padding: 1.25rem;
}

.contact-banner__btn-label {
	font-size: 0.875rem;
}

.contact-banner__btn-main {
	width: 100%;
	height: 3rem;
}

.contact-banner__btn-main i {
	font-size: 1.75rem;
	transform: translateY(1px);
}

.contact-banner__btn-main span {
	font-size: 1.5rem;
}

.contact-banner__btn-arrow {
	width: 1.5rem;
	height: 1.5rem;
}

.contact-form textarea {
	font-size: 0.875rem;
}

.contact-form .need {
	padding-right: 3.75rem;
}

.contact-form .need::after {
	right: 0.5rem;
}

.contact-form .contact-form__row--submit {
	margin-top: 2.5rem;
}

.drawer {
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 200;
	background: #fff;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}

.footer__main {
	padding: 1.25rem 0 0;
}

.footer__inner {
	max-width: 37.5rem;
	flex-direction: column;
	gap: 3rem;
	padding: 0 var(--padding-sp);
}

.footer__left {
	order: 1;
	align-items: center;
	text-align: center;
}

.footer__logo {
	width: 15rem;
}

.footer__company-name {
	min-width: 16.625rem;
	text-align: left;
	font-size: 1rem;
	line-height: 1.75;
	margin-top: 1.5rem;
}

.footer__address {
	text-align: left;
	font-size: 1rem;
	line-height: 1.75;
	margin-top: 0.5rem;
	margin-bottom: 4.25rem;
}

.footer__buttons {
	display: none;
}

.footer__nav {
	order: 0;
}

.footer__nav-columns {
	width: 100%;
}

.footer__nav-column {
	flex-wrap: wrap;
	gap: 0.5rem;
}

.footer__nav-heading {
	width: 100%;
}

.footer__nav-list {
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
}

.footer__bottom {
	margin-bottom: 3.75rem;
}

.footer__copyright {
	font-size: 0.75rem;
	line-height: 1.75;
}

.header {
	height: 3.75rem;
}

.header__inner {
	padding: 0 1.25rem 0 1.25rem;
}

.header__logo {
	width: 8.75rem;
}

.inner {
	max-width: 37.5rem;
	padding: 0 var(--padding-sp);
}

.more-btn {
	width: 12.5rem;
	height: 2.75rem;
	padding: 0 1rem;
}

.more-btn__text {
	font-size: 0.875rem;
}

.more-btn__arrow {
	right: 1rem;
	width: 1.5rem;
	height: 1.5rem;
}

.page-header-simple {
	justify-content: unset;
	padding-top: 6.75rem;
	height: 20rem;
}

.page-header-simple__titles {
	padding-bottom: 3.75rem;
}

.page-header-simple__title-en {
	font-size: 3.5rem;
}

.page-header-simple__title-ja {
	font-size: 1.25rem;
}

.page-header {
	height: 25rem;
}

.page-header__titles {
	padding-bottom: 1.5rem;
}

.page-header__title-en {
	font-size: 3rem;
}

.page-header__title-ja {
	font-size: 1.75rem;
}

.breadcrumb-wrap {
	padding-top: 1rem;
}

.breadcrumb {
	overflow-x: auto;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
}

.pagetop {
	right: 1rem;
	bottom: 4.75rem;
}

html,
body {
	scroll-padding-top: 6.25rem;
}

.section-title__en {
	line-height: 1;
	font-size: 3rem;
}

.section-title__ja {
	font-size: 1.5rem;
}

.wysiwyg > * + * {
	margin-top: 1.25rem;
}

.wysiwyg h2 {
	font-size: 1.25rem;
}

.wysiwyg h3 {
	font-size: 1.125rem;
}

.wysiwyg table td,
.wysiwyg table th {
	padding: 0.5rem 0.75rem;
}

.wysiwyg figure {
	overflow-x: auto;
}

.company-page .page-header {
	height: 28.125rem;
}

.company-breadcrumb {
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.company-wrapper {
	margin-top: unset;
	padding-top: 2rem;
}

.company-philosophy {
	padding-bottom: 0;
	margin-bottom: 2.25rem;
}

.company-philosophy__title {
	width: auto;
	margin-left: 0;
}

.company-philosophy__title-en {
	margin-left: 0;
	transform: none;
	transform-origin: initial;
	font-size: 2.625rem;
	margin-bottom: -1.25rem;
}

.company-philosophy__bg {
	transform: translateX(-50vw);
	margin-left: 50%;
	width: 100vw;
}

.company-philosophy__bg img {
	width: 100%;
	min-width: unset;
	max-width: 100%;
	max-height: unset;
	transform: none;
	aspect-ratio: 375/320;
}

.company-philosophy__content {
	margin-top: -4rem;
	margin-right: 0;
	justify-content: flex-end;
}

.company-philosophy__content-inner {
	border-radius: 3rem 0 0 0;
	padding: 1.5rem;
	padding-right: unset;
	max-width: none;
	margin-left: 1.5625rem;
	position: relative;
}

.company-philosophy__content-inner::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	inset: 0 -50vw 0 0;
	border-radius: 3rem 0 0 0;
	background-color: white;
}

.company-philosophy__heading-line {
	width: 1.5rem;
}

.company-philosophy__heading-text {
	font-size: 1.5rem;
	position: relative;
	z-index: 2;
}

.company-philosophy__texts {
	position: relative;
	z-index: 2;
}

.company-philosophy__text {
	max-width: unset;
	flex-direction: column;
	gap: unset;
	font-size: 1rem;
	position: relative;
	z-index: 2;
}

.company-philosophy__label {
	font-size: 1.125rem;
	position: relative;
	z-index: 2;
}

.company-greeting__title {
	text-align: left;
}

.company-greeting__title-en {
	transform: none;
	transform-origin: initial;
	margin-left: 0;
	width: auto;
	font-size: 3rem;
	margin-bottom: -1.5rem;
}

.company-greeting__bg {
	transform: translateX(-50vw);
	margin-left: 50%;
	width: 100vw;
}

.company-greeting__bg img {
	width: 100%;
	min-width: unset;
	max-width: 100%;
	max-height: unset;
	margin-left: 0;
	aspect-ratio: 375/320;
}

.company-greeting__content {
	width: 100%;
	margin-top: -4rem;
	margin-left: 0;
	padding-left: 0;
}

.company-greeting__content-inner {
	border-radius: 0 3rem 0 0;
	padding: 1.5rem;
	width: 100%;
	max-width: none;
	margin-right: 1.5625rem;
	padding-left: unset;
	position: relative;
}

.company-greeting__heading-line {
	width: 1.5rem;
}

.company-greeting__heading-text {
	font-size: 1.5rem;
	position: relative;
	z-index: 2;
}

.company-greeting__text {
	font-size: 0.875rem;
	position: relative;
	z-index: 2;
}

.company-greeting__sign-title {
	font-size: 0.875rem;
}

.company-greeting__sign-name {
	font-size: 1.125rem;
}

.company-profile {
	padding: 2.5rem 0;
}

.company-profile__tables {
	flex-direction: column;
	gap: 0;
	margin-top: 1.5rem;
}

.company-profile__table th {
	width: 6.25rem;
	font-size: 0.875rem;
	padding: 1rem 0.5rem;
}

.company-profile__table td {
	font-size: 0.875rem;
	padding: 1rem 0.5rem;
}

.company-access {
	padding: 0 0 2.5rem;
}

.company-access__content {
	flex-direction: column;
	gap: 1rem;
	margin-top: 1.5rem;
}

.company-access__map {
	width: 100%;
	aspect-ratio: 335/252;
}

.company-access__info {
	max-width: 17.5625rem;
	margin-inline: auto;
	gap: 1rem;
}

.company-access__info-text {
	font-size: 0.875rem;
	line-height: 1.71;
}

.company-equipment-banner {
	padding: 1.5rem 0 2.5rem;
}

.company-equipment-banner__link {
	aspect-ratio: 335/280;
}

.company-equipment-banner__content {
	left: 1.5rem;
	flex-wrap: wrap;
	gap: 1.5rem;
}

.company-equipment-banner__en {
	width: 100%;
	font-size: 2.5rem;
}

.company-equipment-banner__ja {
	font-size: 1.25rem;
}

.contact-page {
	padding: 2rem 0 3.125rem;
}

.contact-page__notes {
	margin-top: 1rem;
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.contact-page__form {
	max-width: 100%;
	margin-top: 2.5rem;
}

.contact-phone {
	max-width: 37.5rem;
	padding: 0 var(--padding-sp) 3rem;
}

.contact-phone__content {
	flex-direction: column;
	justify-content: center;
	gap: 0.5rem;
	padding: 1.5625rem 1.375rem;
}

.contact-phone__left {
	flex-direction: column;
	gap: 0.5rem;
	text-align: center;
}

.contact-phone__en {
	font-size: 3rem;
}

.contact-phone__ja {
	font-size: 1.125rem;
	line-height: 1.7777777778;
}

.contact-phone__tel i {
	font-size: 2rem;
}

.contact-phone__tel span {
	font-size: 2rem;
}

.equipment-list {
	padding-top: 2rem;
}

.equipment-list__lead {
	margin-top: 1rem;
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.equipment-list__table {
	margin-top: 1.5rem;
}

.equipment-list__row {
	flex-wrap: wrap;
}

.equipment-list__row--header .equipment-list__cell--category {
	padding-bottom: 0;
}

.equipment-list__row--header .equipment-list__cell--name {
	border-bottom: 0.0625rem solid #808080;
}

.equipment-list__row--header .equipment-list__cell--count {
	border-bottom: 0.0625rem solid #808080;
}

.equipment-list__cell {
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.equipment-list__cell--category {
	margin-bottom: 0.5rem;
	width: 100%;
	border-bottom: none;
	padding: 0.5rem 0.5rem 0;
}

.equipment-list__cell--category:empty {
	display: none;
}

.equipment-list__cell--name {
	width: calc(100% - 3.9375rem);
	border-bottom: 0.0625rem solid #808080;
}

.equipment-list__cell--count {
	width: 3.9375rem;
	border-bottom: 0.0625rem solid #808080;
}

.equipment-detail {
	margin-top: 3rem;
}

.equipment-detail__inner {
	max-width: 37.5rem;
	padding: 0 var(--padding-sp);
}

.equipment-detail__card {
	margin-bottom: 3rem;
}

.equipment-detail__card:nth-of-type(odd) {
	margin-left: unset;
}

.equipment-detail__card:nth-of-type(even) {
	margin-right: unset;
}

.equipment-detail__image {
	width: 100%;
	margin-bottom: -5rem;
	aspect-ratio: 335/224;
}

.equipment-detail__card:nth-of-type(odd) .equipment-detail__image {
	margin-left: 0;
}

.equipment-detail__body {
	position: static;
	width: 100%;
	margin-top: 0;
}

.equipment-detail__label {
	font-size: 3rem;
	white-space: normal;
	margin-left: 0.75rem;
}

.equipment-detail__label--sm {
	margin-top: -6.25rem;
	font-size: 2rem;
}

.equipment-detail__card:nth-of-type(even) .equipment-detail__label {
	text-align: left;
}

.equipment-detail__info {
	position: relative;
	z-index: 3;
	margin-inline: auto;
	border-radius: 1rem 1rem 0 0;
	width: calc(100% - 1.5rem);
	gap: 0.5rem;
	padding: 1rem;
}

.equipment-detail__card:nth-of-type(odd) .equipment-detail__info {
	padding: 1rem;
	border-radius: 1rem 1rem 0 0;
}

.equipment-detail__card:nth-of-type(even) .equipment-detail__info {
	padding: 1rem;
	border-radius: 1rem 1rem 0 0;
}

.equipment-detail__title {
	font-size: 1.25rem;
	line-height: 1.7;
}

.equipment-detail__spec-row {
	flex-direction: column;
}

.equipment-detail__spec-label {
	font-size: 0.875rem;
	line-height: 1.7142857143;
	width: 100%;
	justify-content: center;
}

.equipment-detail__spec-value {
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.partners-list {
	padding-top: 2rem;
	padding-bottom: 3.75rem;
}

.partners-list__desc {
	font-size: 0.875rem;
	line-height: 1.7142857143;
	margin-top: 1rem;
}

.partners-list__grid {
	grid-template-columns: 1fr;
	row-gap: 2rem;
	margin-top: 2rem;
}

.partners-list__group-label {
	font-size: 1.125rem;
	line-height: 1.7777777778;
}

.partners-list__names li {
	font-size: 1rem;
	line-height: 1.75;
}

.privacy {
	padding-top: 2rem;
	padding-bottom: 3rem;
}

.privacy__intro {
	font-size: 1rem;
	line-height: 1.75;
	max-width: none;
}

.privacy__grid {
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 2rem;
}

.privacy__section-title {
	font-size: 1.25rem;
	line-height: 1.7;
}

.privacy__section-text {
	font-size: 1rem;
	line-height: 1.75;
}

.privacy__contact {
	margin-top: 2rem;
	padding: 1.25rem;
	max-width: none;
}

.privacy__contact-title {
	font-size: 1.125rem;
	line-height: 1.7777777778;
}

.privacy__contact-text {
	font-size: 1rem;
	line-height: 1.75;
	max-width: 18.4375rem;
}

.privacy__contact-link {
	font-size: 1rem;
	line-height: 1.75;
}

.tools-list {
	padding: 2rem 0 3rem;
}

.tools-list__desc {
	font-size: 0.875rem;
	margin-top: 1rem;
}

.tools-list__grid {
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem 1.0625rem;
	margin-top: 1rem;
}

.tools-list__card {
	padding: 0.5rem;
	border-radius: 0.5rem;
	gap: 0.25rem;
}

.tools-list__card-icon {
	width: 4rem;
}

.tools-list__card-name {
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.tools-list__card-name--sm {
	font-size: 0.875rem;
}

.tools-list__btn-wrap {
	margin-top: 2.5rem;
}

.tools-list__btn {
	height: 4.5rem;
	gap: 1rem;
}

.tools-list__btn-text {
	font-size: 1.125rem;
	line-height: 1.7777777778;
}

.tools-list__btn-arrow {
	width: 1.5rem;
	height: 1.5rem;
}

.top-mv__slide--split {
	display: block;
}

.top-mv__slide-left {
	width: 100%;
	height: 100%;
}

.top-mv__slide-right {
	display: none;
}

.top-mv__text {
	left: 1.25rem;
	top: 8rem;
	gap: 0;
}

.top-mv__text-col {
	width: 2.5rem;
	padding: 1rem;
}

.top-mv__text-line {
	font-size: 1.125rem;
	line-height: 1.1111111111em;
	width: 1.25rem;
}

.top-catch {
	padding: 1rem 0 1.5rem;
}

.top-catch__inner {
	padding: 0 1.25rem;
}

.top-catch__text {
	font-size: 1rem;
	line-height: 1.7;
	text-align: center;
	max-width: none;
}

.top-catch__text span {
	font-size: 1.25rem;
	text-align: center;
}

.top-strengths {
	padding-bottom: 3rem;
}

.top-strengths__title-en {
	transform: none;
	transform-origin: initial;
	font-size: 3rem;
	margin-left: 0;
	margin-right: 0;
	margin-bottom: -2.875rem;
}

.top-strengths__bg {
	aspect-ratio: 375/320;
	margin-top: unset;
	transform: translateX(-50vw);
	margin-left: 50%;
	width: 100vw;
}

.top-strengths__bg img {
	width: 100%;
	min-width: unset;
	max-height: unset;
	transform: none;
	aspect-ratio: 375/320;
}

.top-strengths__content {
	margin-top: -4rem;
	margin-right: 0;
	justify-content: flex-end;
}

.top-strengths__content-inner {
	border-radius: 3rem 0 0 0;
	padding: 1.5rem;
	padding-right: unset;
	max-width: none;
	margin-left: 1.5625rem;
	position: relative;
}

.top-strengths__content-inner::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	inset: 0 -50vw 0 0;
	border-radius: 3rem 0 0 0;
	background-color: white;
}

.top-strengths__head-title {
	font-size: 1.5rem;
}

.top-strengths__text {
	font-size: 0.875rem;
	line-height: 1.7142857143em;
}

.top-works {
	padding-bottom: 0;
}

.top-works__title {
	width: auto;
	margin-left: 0;
	text-align: left;
	position: relative;
	z-index: 4;
}

.top-works__title-en {
	transform: none;
	transform-origin: initial;
	mix-blend-mode: normal;
	margin-left: 0;
	margin-right: 0;
	width: auto;
	font-size: 3rem;
	margin-bottom: -1.5rem;
}

.top-works__gallery-list {
	flex-direction: column;
	transform: translateX(-50vw);
	margin-left: 50%;
	width: 100vw;
}

.top-works__gallery-item {
	width: 100%;
	aspect-ratio: 375/200;
}

.top-works__content {
	margin-top: -4rem;
	justify-content: flex-start;
}

.top-works__content-inner {
	border-radius: 0 3rem 0 0;
	padding: 1.5rem;
	padding-left: unset;
	width: 100%;
	max-width: none;
	margin-right: 1.5625rem;
	position: relative;
}

.top-works__content-inner::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	inset: 0 0 0 -50vw;
	border-radius: 0 3rem 0 0;
	background-color: white;
}

.top-works__head-title {
	font-size: 1.5rem;
}

.top-works__desc {
	font-size: 0.875rem;
	line-height: 1.7142857143em;
}

.top-works__btn {
	margin-top: 1rem;
}

.top-about {
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

.top-about__head {
	margin-bottom: -4.1875rem;
}

.top-about__title-en {
	font-size: 3rem;
	line-height: 1;
}

.top-about__title-ja {
	font-size: 1.5rem;
	line-height: 1.75;
}

.top-about__bg-wrap {
	aspect-ratio: 375/479;
	margin-top: 0;
}

.top-about__bg img {
	opacity: 0.24;
}

.top-about__banners {
	flex-direction: column;
	align-items: center;
	gap: 6.5625rem;
	margin-top: -24.5rem;
}

.top-about__banner {
	flex: none;
	width: 20.9375rem;
	aspect-ratio: 335/335;
	overflow: visible;
}

.top-about__banner-btn {
	left: 50%;
	top: auto;
	bottom: 0;
	transform: translate(-50%, 50%);
	width: 11.25rem;
	height: 11.25rem;
}

.top-about__banner-btn-ja {
	font-size: 1.5rem;
	line-height: 1.75;
}

.top-about__banner-btn-en {
	font-size: 0.875rem;
	line-height: 1.7142857143em;
}

.top-about__banner-btn-arrow {
	width: 2rem;
}

.top-recruit {
	padding-top: 6.25rem;
	padding-bottom: 0;
}

.top-recruit__title {
	width: auto;
	margin-left: 0;
	text-align: left;
	position: relative;
	z-index: 4;
}

.top-recruit__title-en {
	transform: none;
	transform-origin: initial;
	margin-left: 0;
	margin-right: 0;
	width: auto;
	font-size: 3rem;
	margin-bottom: -1.5rem;
}

.top-recruit__bg {
	aspect-ratio: 375/320;
	transform: translateX(-50vw);
	margin-left: 50%;
	width: 100vw;
}

.top-recruit__bg img {
	width: 100%;
	max-width: 100%;
	min-width: unset;
	max-height: unset;
	margin-left: 0;
	aspect-ratio: 375/320;
}

.top-recruit__content {
	margin-top: -4rem;
	margin-left: 0;
	justify-content: flex-start;
}

.top-recruit__content-inner {
	border-radius: 3rem 0 0 0;
	padding: 1.5rem;
	padding-right: unset;
	max-width: none;
	margin-left: 1.5625rem;
	margin-right: 0;
	gap: 1rem;
	position: relative;
}

.top-recruit__content-inner::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	inset: 0 -50vw 0 0;
	border-radius: 3rem 0 0 0;
	background-color: white;
}

.top-recruit__head-title {
	font-size: 1.5rem;
}

.top-recruit__text {
	font-size: 0.875rem;
	line-height: 1.7142857143em;
}

.top-recruit__btn {
	margin-top: 1rem;
}

.works-list {
	padding-bottom: 3rem;
}

.works-list__desc {
	line-height: 1.7142857143;
	margin-top: 1rem;
}

.works-list__tabs {
	flex-wrap: wrap;
	margin-top: 2rem;
}

.works-list__tab {
	width: calc((100% - 1rem) / 2);
	height: 3.25rem;
}

.works-list__tab-text {
	font-size: 1rem;
	line-height: 1.75;
}

.works-list__tab-arrow {
	width: 1.5rem;
	height: 1.5rem;
}

.works-list__category {
	margin-top: 3rem;
}

.works-list__category-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.works-list__grid {
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem 0.875rem;
	margin-top: 1rem;
}

.works-list__item-title {
	font-size: 1rem;
	line-height: 1.75;
}

.works-single__breadcrumb {
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.works-single__title-bar-inner {
	min-height: 3.25rem;
}

.works-single__title-accent {
	width: 0.75rem;
}

.works-single__title {
	font-size: 1.25rem;
	padding-left: 1.5rem;
}

.works-single__gallery {
	margin-top: 1.25rem;
	margin-bottom: 1.5rem;
}

.works-single__main-wrap {
	gap: 0.5rem;
}

.works-single__inner {
	max-width: 37.5rem;
	padding: 0 var(--padding-sp);
}

.works-single__main-arrow {
	width: 1rem;
	height: 2rem;
}

.works-single__main-arrow svg {
	width: 1rem;
	height: 2rem;
}

.works-single__main-image {
	aspect-ratio: 335/225;
}

.works-single__slider {
	margin-top: 1rem;
}

.works-single__slider-arrow {
	width: 1rem;
	height: 2rem;
}

.works-single__content {
	max-width: 100%;
	font-size: 1rem;
	margin-bottom: 2rem;
}

.works-single__back {
	margin-bottom: 2.5rem;
}

}

@media (max-width: 375px) {

html {
	font-size: 4.2666666667vw;
}

}

