@charset "utf-8";
#hero {
	width: 100%;
	height: 100vh;
}
	.hero__inner {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		height: 100%;
		overflow: hidden;
	}
		.hero__mark {
			width: 8vw;
			height: auto;
		}
			.hero__mark svg {
				width: 100%;
				height: auto;
				fill: var(--color--white);
				filter: var(--dropshadow_s);
			}

#about {
	width: 100%;
	height: auto;
	padding: 0 0 calc((250 / 1280) * 100vw);
}
	.about__inner {
		width: 100%;
		height: auto;
	}
		#about .section__heading {
			width: calc((794.9 / 1280) * 100vw);
			height: auto;
			margin: 0 auto calc((100 / 1280) * 100vw) calc((30 / 1280) * -100vw);
		}
		.about__txt_wrap {
			width: calc((1160 / 1280) * 100vw);
			height: auto;
			margin: 0 auto calc((100 / 1280) * 100vw);
		}
			.about__txt {
				display: flex;
				justify-content: flex-start;
				align-items: center;
				flex-wrap: wrap;
				gap: calc((40 / 1280) * 100vw);
				width: 100%;
				height: auto;
				margin: 0 auto;
				font-size: calc((128 / 1280) * 100vw);
				font-weight: 800;
				line-height: 1;
				letter-spacing: 0em;
				color: var(--color--tairai_red);
			}
			.about__txt:not(:last-of-type) {
				margin-bottom: calc((40 / 1280) * 100vw);
			}
				.about__txt span {
					display: flex;
					justify-content: center;
					align-items: center;
					width: calc((160 / 1280) * 100vw);
					height: calc((160 / 1280) * 100vw);
					padding: 0 0 calc((14 / 1280) * 100vw);
					border-radius: calc((10 / 1280) * 100vw);
					background-color: var(--color--white);
					filter: var(--dropshadow_s);
				}
		.about__philosophy {
			width: calc((800 / 1280) * 100vw);
			height: auto;
			margin: 0 auto;
			color: var(--color--tairai_red);
		}
			.about__philosophy__heading {
				width: 100%;
				height: auto;
				margin: 0 auto calc((60 / 1280) * 100vw);
				font-size: var(--36px);
				font-weight: 800;
				line-height: 1.4;
				letter-spacing: 0.05em;
				}
			.about__philosophy__txt {
				width: 100%;
				height: auto;
				font-size: var(--20px);
				font-weight: 700;
				line-height: 1.8;
				letter-spacing: -0.05em;
			}

#service {
	width: 100%;
	height: auto;
	padding: 0 0 calc((250 / 1280) * 100vw);
}
	.service__inner {
		width: 100%;
		height: auto;
	}
		#service .section__heading {
			width: calc((962.15 / 1280) * 100vw);
			height: auto;
			margin: 0 auto calc((100 / 1280) * 100vw) calc((30 / 1280) * -100vw);
		}
		.service__list_wrap {
			width: calc((1180 / 1280) * 100vw);
			height: auto;
			margin: 0 auto;
		}
			.service__list {
				display: flex;
				justify-content: space-between;
				align-items: flex-start;
				flex-wrap: wrap;
				row-gap: calc((38 / 1280) * 100vw);
				width: 100%;
				height: auto;
			}
				.service__list__item {
					display: flex;
					justify-content: flex-start;
					flex-direction: column;
					align-items: center;
					width: calc((372 / 1280) * 100vw);
					height: auto;
					padding: calc((6 / 1280) * 100vw) 0 0;
					aspect-ratio: 372 / 381;
					border-radius: calc((10 / 1280) * 100vw);
					background-color: var(--color--white);
					filter: var(--dropshadow_s);
				}
					.service__list__item__en {
						width: 100%;
						height: auto;
						padding-left: calc((5 / 1280) * 100vw);
						font-family: "Roboto", sans-serif;
						font-size: var(--20px);
						font-weight: 800;
						line-height: 1.4;
						letter-spacing: 0em;
						color: var(--color--tairai_red);
					}
					.service__list__item__contents {
						display: flex;
						justify-content: space-between;
						align-items: flex-start;
						width: 100%;
						flex: 1;
					}
						.service__list__item__image {
							width: 72%;
							height: 100%;
							border-radius: calc((10 / 1280) * 100vw);
							background-color: var(--color--tairai_red);
						}
						.service__list__item__ja {
							display: flex;
							align-items: center;
							flex: 1;
							height: auto;
							font-size: var(--32px);
							font-weight: 800;
							line-height: 1.1;
							letter-spacing: 0em;
							color: var(--color--tairai_red);
							-webkit-writing-mode: vertical-rl;
							-moz-writing-mode: vertical-rl;
							-ms-writing-mode: tb-rl;
							-ms-writing-mode: vertical-rl;
							writing-mode: vertical-rl;
						}

#works {
	width: 100%;
	height: auto;
	padding: 0 0 calc((250 / 1280) * 100vw);
}
	.works__inner {
		width: 100%;
		height: auto;
	}
		#works .section__heading {
			width: calc((869.47 / 1280) * 100vw);
			height: auto;
			margin: 0 auto calc((100 / 1280) * 100vw) calc((30 / 1280) * -100vw);
		}
		.works__contents {
			width: 100%;
			height: auto;
		}
			.works__contents__section {
				width: 100%;
				height: auto;
			}
			.works__contents__section:not(:last-of-type) {
				margin-bottom: calc((180 / 1280) * 100vw);
			}
				.works__contents__section__heading {
					display: inline-block;
					width: auto;
					height: auto;
					padding: calc((18 / 1280) * 100vw) calc((120 / 1280) * 100vw) calc((24 / 1280) * 100vw) calc((88 / 1280) * 100vw);
					border-radius: 0 calc((10 / 1280) * 100vw) calc((10 / 1280) * 100vw) 0;
					margin-bottom: calc((15 / 1280) * 100vw);
					background-color: var(--color--white);
					filter: var(--dropshadow_s);
					font-size: var(--42px);
					font-weight: 800;
					line-height: 1;
					letter-spacing: 0em;
					color: var(--color--tairai_red);
				}
				.works__contents__swiper_wrap {
					width: 100%;
					height: auto;
					overflow: hidden;
				}
					.works__swiper {
						padding: calc((15 / 1280) * 100vw) calc((15 / 1280) * 100vw);
					}
						.works__contents__swiper_wrap .swiper-wrapper {
							overflow: initial !important;
						}
							.works__swiper__slider {
								padding: 0 calc((15 / 1280) * 100vw);
							}
								.works__swiper__slider__inner {
									width: 100%;
									height: auto;
									border-radius: calc((10 / 1280) * 100vw);
									background-color: var(--color--white);
									filter: var(--dropshadow_s);
									overflow: hidden;
								}
									.works__swiper__slider__etc {
										display: flex;
										justify-content: center;
										align-items: center;
										width: 100%;
										height: auto;
										aspect-ratio: 300 / 300;
									}
										.works__swiper__slider__etc svg {
											width: calc((170 / 1280) * 100vw);
											height: auto;
											fill: var(--color--tairai_red);
										}
									.works__swiper__slider__image {
										display: flex;
										justify-content: center;
										align-items: center;
										width: 100%;
										height: auto;
										aspect-ratio: 300 / 162;
										overflow: hidden;
									}
									.works__swiper__slider__details {
										display: flex;
										flex-direction: column;
										justify-content: space-between;
										width: 100%;
										height: auto;
										padding: calc((1 / 1280) * 100vw);
										aspect-ratio: 300 / 138;
									}
										.works__name {
											width: 100%;
											height: auto;
											font-size: var(--24px);
											font-weight: 800;
											line-height: 1.2;
											letter-spacing: -0.05em;
											color: var(--color--tairai_red);
										}
										.works__client {
											width: 100%;
											height: auto;
											font-size: var(--14px);
											font-weight: 800;
											line-height: 1.2;
											letter-spacing: -0.05em;
											color: var(--color--tairai_red);
										}
						.works__swiper__arrow {
							display: flex;
							justify-content: space-between;
							align-items: center;
							width: calc((1220 / 1280) * 100vw);
							height: auto;
							margin: calc((25 / 1280) * 100vw) auto 0;
						}
							.works__swiper__arrow .swiper-button-prev,
							.works__swiper__arrow .swiper-button-next {
								width: calc((60 / 1280) * 100vw);
								height: auto;
								margin: 0 !important;
								filter: var(--dropshadow_s);
								position: initial !important;
								transition: .3s;
							}
							.works__swiper__arrow .swiper-button-prev.swiper-button-disabled,
							.works__swiper__arrow .swiper-button-next.swiper-button-disabled {
								opacity: 1 !important;
								filter: none;
							}
								.works__swiper__arrow .swiper-button-prev .arrow,
								.works__swiper__arrow .swiper-button-next .arrow {
									width: 100%;
									height: auto;
								}
									.works__swiper__arrow .swiper-button-prev .arrow svg,
									.works__swiper__arrow .swiper-button-next .arrow svg {
										fill: var(--color--white);
									}
									.works__swiper__arrow .swiper-button-prev .arrow svg {
										transform: scale(-1,1);
									}
								.works__swiper__arrow .swiper-button-prev::after,
								.works__swiper__arrow .swiper-button-next::after {
									content: initial;
									display: none;
								}

#news {
	width: 100%;
	height: auto;
	padding: 0 0 calc((250 / 1280) * 100vw);
}
	.news__inner {
		width: 100%;
		height: auto;
	}
		#news .section__heading {
			width: calc((674.59 / 1280) * 100vw);
			height: auto;
			margin: 0 auto calc((100 / 1280) * 100vw) calc((30 / 1280) * -100vw);
		}
		.news__list_wrap {
			width: calc((1220 / 1280) * 100vw);
			height: auto;
			margin: 0 auto;
		}
			.news__list {
				display: flex;
				flex-direction: column;
				row-gap: 10px;
				width: 100%;
				height: auto;
			}
				.news__list__item {
					width: 100%;
					height: auto;
					background-color: var(--color--white);
					border-radius: calc((10 / 1280) * 100vw);
					filter: var(--dropshadow_s);
				}
					.news__list__item__inner {
						display: block;
						width: 100%;
						height: auto;
						padding: calc((12 / 1280) * 100vw);
					}
						.news__list__item__date {
							display: block;
							width: 100%;
							height: auto;
							margin: 0 auto calc((3 / 1280) * 100vw);
							font-size: var(--14px);
							font-weight: 800;
							line-height: 1.2;
							letter-spacing: -0.05em;
							text-align: center;
							color: var(--color--tairai_red);
						}
						.news__list__item__ttl {
							display: block;
							width: calc((1088 / 1220) * 100%);
							height: auto;
							margin: 0 auto;
							font-size: var(--36px);
							font-weight: 800;
							line-height: 1.4;
							letter-spacing: -0.05em;
							text-align: center;
							color: var(--color--tairai_red);
						}
		.news__more_btn_wrap {
			width: calc((1220 / 1280) * 100vw);
			height: auto;
			margin: calc((20 / 1280) * 100vw) auto 0;
		}
			.news__more_btn {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 100%;
				height: calc((50 / 1280) * 100vw);
				padding: calc((2 / 1280) * 100vw) 0 0;
				border-radius: calc((10 / 1280) * 100vw);
				background-color: var(--color--white);
				filter: var(--dropshadow_s);
				font-size: var(--36px);
				font-weight: 800;
				line-height: 1.4;
				letter-spacing: 0em;
				text-align: center;
				color: var(--color--tairai_red);
			}
		@media (any-hover: hover) {
			.news__more_btn {
				transition: .3s;
			}
			.news__more_btn:hover {
				background-color: var(--color--tairai_red);
				color: var(--color--white);
			}
		}

#company {
	width: 100%;
	height: auto;
	padding: 0 0 calc((250 / 1280) * 100vw);
}
	.company__inner {
		width: 100%;
		height: auto;
	}
		#company .section__heading {
			width: calc((1143.49 / 1280) * 100vw);
			height: auto;
			margin: 0 auto calc((100 / 1280) * 100vw) calc((30 / 1280) * -100vw);
		}
		.company__list_wrap {
			width: calc((1088 / 1280) * 100vw);
			height: auto;
			padding: calc((76 / 1280) * 100vw);
			margin: 0 auto;
			border-radius: calc((10 / 1280) * 100vw);
			background-color: var(--color--white);
			filter: var(--dropshadow_s);
		}
			.company__list {
				width: 100%;
				height: auto;
			}
				.company__list__item {
					display: flex;
					justify-content: flex-start;
					align-items: flex-start;
					width: 100%;
					height: auto;
				}
				.company__list__item:not(:last-of-type) {
					margin-bottom: calc((40 / 1280) * 100vw);
				}
					.company__list__item dt,
					.company__list__item dd {
						font-size: var(--24px);
						font-weight: 700;
						line-height: 1.6;
						letter-spacing: 0em;
						color: var(--color--tairai_red);
					}
					.company__list__item dt {
						width: calc((200 / 1280) * 100vw);
					}
					.company__list__item dd {
						flex: 1;
					}
						.company__list__item dd .company__list__item__business_list {
							width: 100%;
							height: auto;
							counter-reset: number 0;
						}
							.company__list__item__business_list li {
								width: 100%;
								height: auto;
								padding-left: calc((34 / 1280) * 100vw);
								position: relative;
							}
								.company__list__item__business_list li::before {
									counter-increment: number 1;
									content: counter(number) ".";
									position: absolute;
									left: 0;
								}

#contact {
	width: 100%;
	height: auto;
	padding: 0 0 calc((60 / 1280) * 100vw);
}
	.contact__inner {
		width: 100%;
		height: auto;
	}
		.contact__btn_wrap {
			width: calc((1088 / 1280) * 100vw);
			height: auto;
			margin: 0 auto;
		}
			.contact__btn {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 100%;
				height: auto;
				padding: calc((30 / 1280) * 100vw) 0;
				border-radius: calc((10 / 1280) * 100vw);
				background-color: var(--color--white);
				filter: var(--dropshadow_s);
			}
				.contact__btn svg {
					width: calc((874 / 1280) * 100vw);
					margin: 0 auto;
					fill: var(--color--white);
					filter: var(--dropshadow_s);
				}
			@media (any-hover: hover) {
				.contact__btn svg {
					transition: .3s;
				}
				.contact__btn:hover svg {
					fill: var(--color--tairai_red);
				}
			}

/* PC ================================================== */
@media all and (min-width: 769px){

}

/* Tablet ================================================== */
@media all and (max-width: 768px){
#hero {
	height: 100svh;
}
		.hero__mark {
			width: 40vw;
		}

#about {
	padding: 0 0 calc((150 / 375) * 100vw);
}
		#about .section__heading {
			width: calc((240.27 / 375) * 100vw);
			margin: 0 auto calc((50 / 375) * 100vw) calc((10 / 375) * -100vw);
		}
		.about__txt_wrap {
			width: calc((346 / 375) * 100vw);
			margin: 0 auto calc((50 / 375)* 100vw);
		}
			.about__txt {
				gap: calc((11.6 / 375) * 100vw);
				font-size: var(--36px);
			}
			.about__txt:not(:last-of-type) {
				margin-bottom: calc((11.6 / 375) * 100vw);
			}
				.about__txt span {
					width: calc((48 / 375) * 100vw);
					height: calc((48 / 375) * 100vw);
					padding: 0;
					border-radius: calc((6 / 375) * 100vw);
				}
		.about__philosophy {
			width: calc((346 / 375) * 100vw);
		}
			.about__philosophy__heading {
				margin: 0 auto calc((25 / 375) * 100vw);
				font-size: var(--24px);
				line-height: 1.6;
			}
			.about__philosophy__txt {
				font-size: var(--16px);
			}

#service {
	padding: 0 0 calc((150 / 375) * 100vw);
}
		#service .section__heading {
			width: calc((290.83 / 375) * 100vw);
			margin: 0 auto calc((50 / 375) * 100vw) calc((10 / 375) * -100vw);
		}
		.service__list_wrap {
			width: calc((346 / 375) * 100vw);
		}
			.service__list {
				row-gap: calc((10 / 375) * 100vw);
			}
				.service__list__item {
					width: calc((168 / 375) * 100vw);
					padding: calc((3 / 375) * 100vw) 0 0;
					border-radius: calc((6 / 375) * 100vw);
				}
					.service__list__item__en {
						padding-left: calc((3 / 375) * 100vw);
						font-size: var(--10px);
					}
						.service__list__item__image {
							border-radius: calc((6 / 375) * 100vw);
						}
						.service__list__item__ja {
							font-size: var(--16px);
						}

#works {
	padding: 0 0 calc((150 / 375) * 100vw);
}
		#works .section__heading {
			width: calc((262.81 / 375) * 100vw);
			margin: 0 auto calc((50 / 375) * 100vw) calc((10 / 375) * -100vw);
		}
			.works__contents__section:not(:last-of-type) {
				margin-bottom: calc((60 / 375) * 100vw);
			}
				.works__contents__section__heading {
					width: 95%;
					padding: calc((12 / 375) * 100vw) 0 calc((12 / 375) * 100vw) calc((15 / 375) * 100vw);
					border-radius: 0 calc((6 / 375) * 100vw) calc((6 / 375) * 100vw) 0;
					margin-bottom: calc((20 / 375) * 100vw);
					font-size: var(--20px);
				}
					.works__swiper {
						padding: calc((15 / 375) * 100vw) calc((15 / 375) * 100vw);
					}
							.works__swiper__slider {
								padding: 0 calc((15 / 375) * 100vw);
							}
								.works__swiper__slider__inner {
									border-radius: calc((6 / 375) * 100vw);
								}
										.works__swiper__slider__etc svg {
											width: calc((70 / 375) * 100vw);
										}
									.works__swiper__slider__details {
										padding: calc((1 / 375) * 100vw);
										aspect-ratio: 300 / 138;
									}
										.works__name {
											font-size: var(--24px);
										}
										.works__client {
											font-size: var(--14px);
										}
						.works__swiper__arrow {
							width: calc((346 / 375) * 100vw);
							margin: calc((20 / 375) * 100vw) auto 0;
						}
							.works__swiper__arrow .swiper-button-prev,
							.works__swiper__arrow .swiper-button-next {
								width: calc((36 / 375) * 100vw);
							}

#news {
	padding: 0 0 calc((150 / 375) * 100vw);
}
		#news .section__heading {
			width: calc((203.91 / 375) * 100vw);
			margin: 0 auto calc((50 / 375) * 100vw) calc((10 / 375) * -100vw);
		}
		.news__list_wrap {
			width: calc((346 / 375) * 100vw);
		}
				.news__list__item {
					border-radius: calc((6 / 375) * 100vw);
				}
					.news__list__item__inner {
						padding: calc((8 / 375) * 100vw);
					}
						.news__list__item__date {
							margin: 0 auto calc((3 / 375) * 100vw);
							font-size: var(--14px);
						}
						.news__list__item__ttl {
							width: 90%;
							font-size: var(--18px);
						}
		.news__more_btn_wrap {
			width: calc((346 / 375) * 100vw);
			margin: calc((30 / 375) * 100vw) auto 0;
		}
			.news__more_btn {
				height: calc((40 / 375) * 100vw);
				padding: calc((2 / 375) * 100vw) 0 0;
				border-radius: calc((6 / 375) * 100vw);
				font-size: var(--24px);
			}

#company {
	padding: 0 0 calc((100 / 375) * 100vw);
}
	.company__inner {
		width: 100%;
		height: auto;
	}
		#company .section__heading {
			width: calc((345 / 375) * 100vw);
			margin: 0 auto calc((50 / 375) * 100vw) calc((10 / 375) * -100vw);
		}
		.company__list_wrap {
			width: calc((346 / 375) * 100vw);
			padding: calc((24 / 375) * 100vw) calc((20 / 375) * 100vw);
			border-radius: calc((6 / 375) * 100vw);
		}
				.company__list__item {
					display: block;
				}
				.company__list__item:not(:last-of-type) {
					margin-bottom: calc((24 / 375) * 100vw);
				}
					.company__list__item dt {
						width: 100%;
						margin-bottom: calc((2 / 375) * 100vw);
						font-size: var(--18px);
					}
					.company__list__item dd {
						flex: initial;
						width: 100%;
						font-size: var(--16px);
					}
							.company__list__item__business_list li {
								padding-left: calc((16 / 375) * 100vw);
							}

#contact {
	padding: 0 0 calc((40 / 375) * 100vw);
}
		.contact__btn_wrap {
			width: calc((346 / 375) * 100vw);
		}
			.contact__btn {
				padding: calc((15 / 375) * 100vw) 0;
				border-radius: calc((6 / 375) * 100vw);
			}
				.contact__btn svg {
					width: calc((280 / 375) * 100vw);
				}
}

/* SP ================================================== */
@media all and (max-width: 575px){

}