/* #region CSS Reset and Setup --------------- */
html, body, div,
p, a, img, figure,
dl, dt, dd,
ul, ol, li,
button,
h1, h2, h3, h4, h5, h6,
hr, header, footer, section, article {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
}

/* Document setup */
html {
	font-size: 62.5%; /* 1rem = 10px */
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	font-size: 1.6em; /* default 16px */
	background: #fff;
	color: #3e3a39;
	text-align: center;
}

#bodybox {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 100vh;
	margin: 0 auto;
	overflow-x: hidden;
}

a {
	color: inherit;
	text-decoration: none;
}


h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
}

ol, ul {
	list-style: none;
}

img {
	border: none;
	max-width: 100%;
	vertical-align: middle
}

svg {
	fill: currentcolor;
}

* {
	box-sizing: border-box;
}

@media (min-width: 1025px) {
    a[href*="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
}

.inner {
	display: block;
	position: relative;
	max-width: 1320px;
	padding: 0 35px;
	margin: 0 auto;
}
@media print {
	body {
		width: 1000px;
		-webkit-transform: scale(0.79);
		transform: scale(0.79);
		-webkit-transform-origin: 0 0;
		transform-origin: 0 0;
	}
}

@media only screen and (max-width: 1024px) {
	body {
		-webkit-text-size-adjust: 100%;
	}
}

/* Clearfix  */
.clearfix::after {
	content: '';
	display: block;
	clear: both;
}

/* pc mb */
@media only screen and (min-width: 1025px) {
	.pc {
		display: block;
	}
	.pc-ib {
		display: inline-block;
	}
	.mb, .mb-ib {
		display: none!important;
	}
}
@media only screen and (max-width: 1024px) {
	.pc, .pc-ib {
		display: none!important;
	}
	.mb {
		display: block;
	}
	.mb-ib {
		display: inline-block;
	}
}
.wrapper {
	display: inline-block;
	position: relative;
}
/* img-box */
.img-box {
	position: relative;
	overflow: hidden;
}
.img-box img {
	position: absolute;
	height: 100%;
	width: 100%;
	margin: auto;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	object-fit: cover;
}
/* #endregion -------------------------------- */


/* #region General --------------------------- */

.link-btn01 {
	display: block;
	position: relative;
	height: 55px;
	background: #e40012;
	color: #fff;
	border-radius: 50px;
	font-weight: 500;
	font-size: 17px;
	letter-spacing: 0.02em;
	line-height: 17px;
	padding: 19px 38px;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}

.link-btn01::before {
	content: url('../images/common/icon-arrow1.svg');
	position: absolute;
	top: 19px;
	right: 19px;
	width: 9px;
	height: 20px;
}
.link-btn01:hover {
	opacity: 0.6;
}
/* go-to-top */
.go-to-top {
	display: none;
	position: fixed;
	right: 65px;
	bottom: 65px;
	width: 42px;
	height: 42px;
	background: #fff;
	z-index: 25;
}
.go-to-top-btn {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	color: #fff;
	border: none;
	background: #3e3a39;
	transition: 0.2s;
	cursor: pointer;
}
.go-to-top-btn:focus {
	outline: none;
}
.go-to-top-btn:hover {
	opacity: 0.7;
}
@media only screen and (max-width: 1024px) {
	.go-to-top {
		right: 25px;
		bottom: 25px;
	}
}
/* #endregion -------------------------------- */

/* #region Header ---------------------------- */
.global-header {
	position: absolute;
	left: 0;
	width: 100%;
	padding: 73px 0 60px;
	background: #fff;
	z-index: 99;
}
.global-header.is-slim {
	position:fixed;
	top: -203px;
	padding-bottom: 15px;
	transform: translateY(0);
	transition: transform 0.2s ease-in-out, padding-bottom 0.2s ease-in-out;
}
.global-header.is-slim.is-fixed {
	transform: translateY(145px);
	transition: transform 0.6s ease-in-out;
}
.global-header.is-slim .header-logo {
	width: min(200px, 45vw);
}
.top .global-header {
	background: transparent;
}
.top .global-header.is-slim {
	background: #fff;
}

.global-nav {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
.header-logo {
	width: min(266px, 45vw);
}
.header-logo .is-fixed {
	transition: width 0.2s ease-in-out;
}
.logo-link {
	display: block;
}
.logo-link img {
	width: 100%;
}
.logo-link .red {
	transform-origin: 29px;
}
.logo-link.is-anime .red {
	animation: flip 1s cubic-bezier(0.4, 0.6, 0.6, 1);
}
@keyframes flip {
	0% {
		transform: rotateY(0deg);
	}
	100% {
		transform: rotateY(360deg);
	}
}

.global-nav-btn {
	display: none;
	cursor: pointer;
	z-index: 99;
}
.global-nav-btn #menuiconbar1 {
	transform-origin: 50% 50%;
	transform: translateY(-12px);
}
.global-nav-btn #menuiconbar3 {
	transform-origin: 50% 50%;
	transform: translateY(12px);
}
.nav-list {
	display: inline-block;
}
.nav-list li {
	display: inline-block;
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.075em;
}
.nav-list li:not(:last-of-type) {
	margin-right: 2em;
}
.global-nav .nav-list li {
	margin-bottom: 10px;
}
.nav-list .nav-link {
	display: block;
	position: relative;
}
.global-nav .nav-list .nav-link::after {
	content: '';
	position: absolute;
	width: 8px;
	height: 8px;
	bottom: -18px;
	right: 0;
	left: 0;
	margin: 0 auto;
	background: #e40012;
	border-radius: 50%;
	opacity: 0;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.global-nav .nav-list .nav-link:hover::after {
	opacity: 1;
}
.global-nav .contact-btn {
	display: block;
	max-width: 400px;
	margin: 0 auto;
	padding: 12px 24px;
	border-radius: 40px;
	background: #e40012;
	color: #fff;
	line-height: 1;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.global-nav .contact-btn:hover {
	opacity: 0.6;
}
@media only screen and (max-width: 1024px) {
	.global-header {
		padding: 15px 0;
	}
	.global-header.is-slim {
		top: -90px;
	}
	.global-header.is-slim.is-fixed {
		transform: translateY(85px);
	}
	.global-header.is_open {
		top: 0;
		transition: none;
	}
	.global-header.is_open.is-slim.is-fixed {
		transform: translateY(0);
		transition: none;
	}
	.header-logo {
		width: 200px;
	}
	.global-nav-btn {
		display: block;
	}
	.global-nav .nav-list {
		display: none;
	}
	.global-header.is_open .nav-list {
		display: flex;
		align-content: center;
		flex-wrap: wrap;
		position: absolute;
		width: 100%;
		height: 100vh;
		padding: 60px;
		top: 0;
		left: 0;
		background: #fff !important;
		z-index: 10;
	}
	.global-header.is_open .nav-list li {
		display: block;
		flex: 0 0 100%;
		margin: 0;
		margin-bottom: 40px;
	}
}
/* #endregion -------------------------------- */

/* #region Footer ---------------------------- */
.global-footer {
	padding: 50px 0 30px;
}
.footer-info-box {
	max-width: 962px;
	width: 100%;
	margin-bottom: 110px;
	text-align: left;
}
.footer-logo {
	display: inline-block;
	max-width: 258px;
}
.footer-logo .logo-link {
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.footer-logo .logo-link:hover {
	opacity: 0.6;
}
.footer-nav {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 27px;
	padding-bottom: 35px;
	border-bottom: 1px solid rgba(71, 56, 46, 0.38);
}
.footer-nav .nav-list .nav-link {
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.footer-nav .nav-list .nav-link:hover {
	opacity: 0.3;
}
.footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
.footer-address {
	border-collapse: collapse;
}
.footer-address th, .footer-address td {
	font-weight: 400;
	font-size: 13px;
	padding-right: 1em;
}
.footer-sub-nav {
	margin-top: 40px;
	margin-left: -1.5em;
}
.footer-sub-nav .link {
	display: inline-block;
	margin-left: 1.5em;
	font-weight: 500;
	font-size: 12px;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.footer-sub-nav .link:hover {
	opacity: 0.3;
}
.copyright {
	font-family: 'Poppins', sans-serif;
	font-size: 12px;
	letter-spacing: 0.075em;
}
@media only screen and (max-width: 1024px) {
	.footer-info-box {
		margin-bottom: 40px;
		text-align: center;
	}
	.footer-nav {
		display: block;
	}
	.footer-nav .nav-list {
		display: none;
	}
	.footer-bottom {
		display: block;
	}
	.footer-address {
		margin: 0 auto;
		text-align: left;
	}
	.footer-address th, .footer-address td {
		display: block;
		padding-right: 0;
	}
	.footer-address td:last-of-type {
		display: block;
	}
}
/* #endregion -------------------------------- */

/* #region Main ------------------------------ */
.sub-header {
	padding-top: 365px;
	padding-bottom: 35px;
	background: #e40012;
	text-align: left;
}
.sub-header .title {
	color: #fff;
}
.sub-header .title .en {
	margin-bottom: 10px;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 51px;
	letter-spacing: 0.025em;
	line-height: 1;
}
.sub-header .title .ja {
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.05em;
	line-height: 1;
}
.sub-header .title .ja-only {
	padding-bottom: 28px;
	font-weight: 700;
	font-size: 51px;
	letter-spacing: 0.05em;
	line-height: 1;
}
@media only screen and (max-width: 1024px) {
	.sub-header {
		padding-top: 150px;
	}
	.sub-header .title .en {
		font-size: 42px;
	}
	.sub-header .title .ja-only {
		font-size: 42px;
	}
}
.sub-main-block {
	background: #fbfbfb;
}
@media only screen and (max-width: 1024px) {
	.sub-main-block .inner {
		max-width: 700px;
	}
}

.semi-footer-block {
	padding-top: 1px;
	padding-bottom: 63px;
	background: #f1f1f1;
}
.semi-footer-block .semi-footer-cont-box {
	display: flex;
	justify-content: space-between;
	margin: -88px -6px 55px;
}
.semi-footer-cont {
	flex: 1 1 50%;
	margin: 0 6px;
	padding: 68px min(80px, 7vw) 55px;
	border-radius: 28px;
	background: #fff;
	box-shadow : 1px 1px 6px rgba(0, 0, 0, 0.12);
}
.semi-footer-cont .title {
	margin-bottom: 32px;
}
.semi-footer-cont .title .en {
	margin-bottom: 15px;
	color: #e40012;
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: min(38px, 9vw);
	letter-spacing: 0.075em;
	line-height: 1;
}
.semi-footer-cont .title .ja {
	font-weight: 500;
	font-size: 17px;
	letter-spacing: 0.02em;
	line-height: 1;
}
.semi-footer-cont .dl-link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 435px;
	padding: 20px 40px;
	margin: 0 auto;
	border-radius: 40px;
	background: #f1f1f1;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.02em;
	line-height: 1;
	text-align: left;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.semi-footer-cont .dl-link::after {
	content: url(../images/common/icon-arrow2.svg);
	width: 8px;
}
.semi-footer-cont .dl-link:not(:last-of-type) {
	margin-bottom: 11px;
}
.semi-footer-cont .dl-link:hover {
	opacity: 0.4;
}
.semi-footer-cont .dl-link::before {
	content: url(../images/common/icon-pdf.svg);
	display: inline-block;
	flex: 0 0 19px;
	margin-right: 1em;
}
.semi-footer-cont .dl-link .text {
	flex: 1	1	100%;
	line-height: 1.3;
	padding-right: 1em;
}
.semi-footer-cont.column {
	text-align: left;
}
.semi-footer-cont .column-link {
	display: block;
	width: 100%;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.semi-footer-cont .column-link:hover {
	opacity: 0.4;
}
.semi-footer-block .campaign-box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	column-gap: 13px;
	margin-bottom: 60px;
}
.semi-footer-block .campaign-box .banner-link {
	display: inline-block;
	max-width: 612px;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.semi-footer-block .campaign-box .banner-link:hover {
	opacity: 0.6;
}
.semi-footer-block .banner-box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	column-gap: 13px;
	/* margin: 0 -13px; */
}
.semi-footer-block .banner-box .banner-link {
	display: inline-block;
	max-width: 612px;
	border-radius: 2.5% 2.5% / 8.6% 8.6%;
	box-shadow : 1px 1px 6px rgba(0, 0, 0, 0.12);
	overflow: hidden;
	transition: box-shadow 0.3s cubic-bezier(0.4, 0.6, 0.6, 1), transform 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.semi-footer-block .banner-box .banner-link:hover {
	box-shadow : 1px 4px 12px rgba(0, 0, 0, 0.3);
	transform: translate(0px, -3px)
}
@media only screen and (max-width: 1024px) {
	.semi-footer-block .semi-footer-cont-box {
		display: block;
	}
	.semi-footer-cont {
		max-width: 612px;
		margin: 0 auto;
	}
	.semi-footer-cont:not(:last-of-type) {
		margin-bottom: 20px;
	}
	.semi-footer-cont .dl-link {
		font-size: 14px;
	}
	.semi-footer-block .campaign-box {
		display: block;
	}
	.semi-footer-block .banner-box {
		display: block;
	}
	.banner-link:not(:last-of-type) {
		margin-bottom: 20px;
	}
}
/* #endregion -------------------------------- */


/* #region about ----------------------------- */
.about .global-header {
	background: transparent;
}
.about .global-header.is-slim {
	background: #fff;
}

.about-header {
	background: url(../images/top/top-main-bg.jpg);
	height: 1098px;
	padding-top: 455px;
}
.about-intro {
	display: flex;
	justify-content: space-between;
	padding-left: 70px;
}
.about-intro .cont-box {
	flex: 0 0 640px;
	align-items: flex-start;
	padding-bottom: 45px;
	text-align: left;
}
.about-intro .cont-box .logo {
	display: block;
	width: 443px;
	margin-bottom: 90px;
}
.about-intro .cont-box .headline {
	margin-bottom: 25px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 41px;
	line-height: 1.39;
	letter-spacing: 0.05em;
}
.about-intro .cont-box .text {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.78;
	letter-spacing: 0.02em;
	text-align: justify;
}
.about-intro .photo-box {
	position: relative;
	flex: 1 1 50%;
	aspect-ratio: 2.01 / 1;
}
.about-intro .photo-box .img-box {
	position: absolute;
	width: 55%;
	aspect-ratio: 1.42 / 1;
	box-shadow : 1.06px 1.06px 6.37px rgba(0, 0, 0, 0.12);
}
.about-intro .photo-box .img-box.ph01 {
	width: 75%;
	top: -9.5%;
	left: 0;
}
.about-intro .photo-box .img-box.ph02 {
	width: 68%;
	top: 44.8%;
	left: 31%;
}
@media only screen and (max-width: 1024px) {
	.about-header {
		padding-top: 200px;
		padding-bottom: 200px;
		height: auto;
	}
	.about-intro {
		display: block;
		padding: 0;
	}
	.about-intro .cont-box {
		margin-bottom: 60px;
		text-align: center;
	}
	.about-intro .cont-box .logo {
		margin: 0 auto 80px;
	}
	.about-intro .cont-box .headline {
		display: inline-block;
		margin-right: -0.8em;
        font-size: max(26px, 4vw);
		text-align: left;
	}
	.about-intro .cont-box .text {
		max-width: max(68vw, 460px);
		margin: 0 auto;
	}
	.about-intro .photo-box {
		max-width: max(68vw, 460px);
		width: 100%;
		margin: 0 auto;
		aspect-ratio: 1.7 / 1;
	}
	.about-intro .photo-box .img-box {
	}
	.about-intro .photo-box .img-box.ph01 {
		width: 60%;
		top: 0;
		left: 0;
	}
	.about-intro .photo-box .img-box.ph02 {
		width: 60%;
		top: auto;
		bottom: 0;
		left: auto;
		right: 0;
	}
}
.sub-main-block.about {
	padding-top: 200px;
	padding-bottom: 270px;
	background: #fff;
}
.sc-about {
	display: flex;
	justify-content: space-between;
	position: relative;
	margin-bottom: 165px;
	min-height: 573px;
}
.sc-about .img-box {
    position: absolute;
    top: 0;
    width: 48.6%;
    height: 100%;
}
.sc-about .cont-box {
	width: 100%;
	padding: 20px 0;
}
.sc-about .cont-box .inner {
	max-width: 1180px;
	height: 100%;
}
.sc-about .cont-box .cont-main {
	display: inline-flex;
	align-items: center;
	position: relative;
	width: 470px;
	height: 100%;
	text-align: left;
}
.sc-about .cont-box .cont-main .wrapper {
	width: 100%;
}
.sc-about .cont-box .icon-box {
	position: absolute;
	bottom: 0px;
	width: 245px;
	height: 245px;
	padding-top: 50px;
	border-radius: 50%;
	background: #fff;
	box-shadow : 0.81px 0.81px 4.86px rgba(0, 0, 0, 0.12);
	text-align: center;
}
.sc-about .cont-box .icon-box .icon {
	width: 116px;
	height: 116px;
}
.sc-about .cont-box .icon-box .title {
	font-weight: 700;
	font-size: 19px;
	letter-spacing: 0.02em;
}
.sc-about .cont-box .icon-box {
	text-align: center;
}
.sc-about .cont-box .title-box {
	margin-bottom: 25px;
	color: #e40012;
}
.sc-about .cont-box .title-box .ja {
	margin-bottom: 15px;
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.05em;
	line-height: 1;
}
.sc-about .cont-box .title-box .en {
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: min(65px, 12vw);
	letter-spacing: 0.025em;
	line-height: 1;
}
.sc-about .cont-box .headline {
	margin-right: -1em;
	margin-bottom: 25px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 38px;
	line-height: 1.3684;
	letter-spacing: 0.05em;
}
.sc-about .cont-box .text {
	margin-bottom: 65px;
	font-size: 14px;
	line-height: 2.0714;
	letter-spacing: 0.02em;
	text-align: justify;
}
.sc-about .cont-box .link-btn01 {
}
@media only screen and (min-width: 1025px) {
	.sc-about:nth-last-of-type(even) {
		text-align: right;
	}
	.sc-about:nth-last-of-type(odd) {
		text-align: left;
	}
	.sc-about:nth-last-of-type(even) .img-box {
		left: 0;
		clip-path: polygon(0 0, 100% 0, calc(100%  - 116px) 100%, 0 100%);
	}
	.sc-about:nth-last-of-type(odd) .img-box {
		right: 0;
		clip-path: polygon(0 0, 100% 0, 100% 100%, 116px 100%);
	}
	.sc-about:nth-last-of-type(even) .cont-box .icon-box {
		left: -347px;
	}
	.sc-about:nth-last-of-type(odd) .cont-box .icon-box {
		right: -347px;
	}
}
@media only screen and (max-width: 1024px) {
	.sub-main-block.about {
		padding-top: 0px;
		padding-bottom: 170px;
	}
	.sc-about {
		display: block;
	}
	.sc-about .img-box {
		position: relative;
		display: inline-block;
		top: 0;
		width: 100%;
		height: 300px;
	}
	.sc-about .cont-box .cont-main {
		display: block;
		width: 100%;
		max-width: 800px;
		margin: 0 auto;
	}
	.sc-about .cont-box .icon-box {
		position: relative;
		margin: -100px auto 40px;
	}
	.sc-about .cont-box .title-box {
		margin-bottom: 0;
		text-align: center;
	}
	.sc-about .cont-box .title-box .en {
		margin-bottom: 1em;
	}
	.sc-about .cont-box .headline {
		margin-right: 0;
	}
	.sc-about .cont-box .headline {
		font-size: 26px;
	}
}

/* #endregion -------------------------------- */

/* #region service --------------------------- */
.sub-main-block.service {
	padding-top: 160px;
	padding-bottom: 150px;
}
.sc-service {
	margin-bottom: 205px;
}
.sc-service .service-header {
	display: flex;
	align-items: flex-start;
	margin-bottom: 80px;
}
.sc-service .service-header .icon-box {
	flex: 0 0 252px;
	width: 252px;
	height: 252px;
	padding-top: 45px;
	margin-right: 65px;
	background: #fff;
	border-radius: 12px;
	box-shadow : 0.83px 0.83px 5px rgba(0, 0, 0, 0.12);
}
.sc-service .service-header .icon-box .icon {
	display: inline-block;
	width: 128px;
	height: 128px;
}
.sc-service .service-header .icon-box .title {
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.02em;
}
.sc-service .service-header .cont-box {
	flex: 0 1 650px;
	padding-top: 5px;
	text-align: left;
}
.sc-service .service-header .cont-box .title {
	margin-bottom: 20px;
	color: #e40012;
	font-weight: 700;
	font-size: 32px;
	letter-spacing: 0.025em;
	line-height: 1;
}
.sc-service .service-header .cont-box .head-line {
	margin-bottom: 15px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 38px;
	line-height: 1.3684;
	letter-spacing: 0.05em;
}
.sc-service .service-header .cont-box .text {
	font-size: 14px;
	line-height: 1.9286;
	letter-spacing: 0.02em;
	text-align: justify;
}
.sc-service .service-list {
	display: flex;
	justify-content: space-between;
	text-align: justify;
	flex-wrap: wrap;
	row-gap: 22px;
	column-gap: 30px;
}
.sc-service .service-cont {
	flex: 0 1 48%;
	display: flex;
	align-items: flex-start;
	padding: 45px;
	background: #fff;
	border-radius: 12px;
	box-shadow : 0.79px 0.79px 4.77px rgba(0, 0, 0, 0.12);
	text-align: left;
}
.sc-service .service-cont .img-box {
	display: block;
	flex: 0 0 42%;
	width: 100%;
	margin-right: 40px;
}
.sc-service .service-cont .img-box img {
	position: relative;
	height: auto;
	object-fit: contain;
}
.sc-service .service-cont .cont-box {
}
.sc-service .service-cont .cont-box .title {
	margin-bottom: 20px;
	color: #e40012;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.2083;
}
.sc-service .service-cont .cont-box .text {
	font-size: 14px;
	line-height: 1.8571;
	text-align: justify;
}
.sc-service .service-footer {
	margin-top: 90px;
}
.sc-service .service-footer .link-btn {
	display: block;
	position: relative;
	max-width: 534px;
	padding: 22px 50px;
	margin: 0 auto;
	border-radius: 7px;
	background: #e40012;
	color: #fff;
	box-shadow : 0.62px 0.62px 3.72px rgba(0, 0, 0, 0.12);
	font-weight: 700;
	font-size: 23px;
	line-height: 1;
	text-align: left;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.sc-service .service-footer .link-btn::after {
	content: url(../images/common/icon-arrow1.svg);
	position: absolute;
	top: 22px;
	right: 25px;
	width: 11px;
	height: 24px;
}
.sc-service .service-footer .link-btn:hover {
	opacity: 0.4;
}
@media only screen and (max-width: 1024px) {
	.sc-service .service-header {
		display: block;
	}
	.sc-service .service-header .icon-box {
		width: 200px;
		height: 200px;
		padding-top: 19px;
		margin: 0 auto;
		margin-bottom: 20px;
	}
	.sc-service .service-header .cont-box .title {
		margin-bottom: 40px;
		text-align: center;
	}
	.sc-service .service-header .cont-box .head-line {
		font-size: 26px;
	}
	.sc-service .service-list {
		display: block;
	}
	.sc-service .service-cont {
		display: block;
		margin-bottom: 40px;
	}
	.sc-service .service-cont .img-box {
		width: 220px;
		margin: 0 auto;
		margin-bottom: 30px;
	}
	.sc-service .service-cont .cont-box .title {
		margin-bottom: 10px;
		font-size: 22px;
		text-align: center;
	}
	.sc-service .service-footer .link-btn {
		font-size: 20px;
	}
}
/* #endregion -------------------------------- */

/* #region renovation ------------------------ */
.sub-main-block.renovation {
	padding-bottom: 236px;
}
.renovation-header {
	position: relative;
	height: 615px;
}
.renovation-header .cont-box {
	height: 100%;
	text-align: left;
}
.renovation-header .cont-box .inner {
	height: 100%;
}
.renovation-header .intro-box {
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	height: 100%;
	width: min(50%, 480px);
}
.renovation-header .intro-box .head-line {
	margin-top: 20px;
	margin-bottom: 20px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 38px;
	line-height: 1.3684;
	letter-spacing: 0.05em;
}
.renovation-header .intro-box .text {
	font-size: 14px;
	line-height: 2.0714;
	letter-spacing: 0.02em;
	text-align: justify;
}
.renovation-header .img-box {
	position: absolute;
	top: 0;
	right: 0;
	width: 52%;
	height: 100%;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 124px 100%);
}
@media only screen and (max-width: 1024px) {
	.renovation-header {
		height: auto;
		padding-top: 120px;
	}
	.renovation-header .intro-box {
		display: block;
		width: 100%;
		margin-bottom: 120px;
	}
	.renovation-header .img-box {
		position: relative;
		width: 100%;
		height: 300px;
		clip-path: none;
	}
}

.sc-problems {
	padding-top: 160px;
	padding-bottom: 130px;
	background: url(../images/renovation/bg.png);
}
.sc-problems .intro-box {
	margin-bottom: 65px;
}
.sc-problems .intro-box .speech-bubble {
	position: relative;
	max-width: 675px;
	padding: 24px 55px 32px;
	margin: 0 auto 45px;
	border-radius: 14px;
	background: #e40012;
	color: #fff;
}
.sc-problems .intro-box .speech-bubble::after {
	content: '';
	position: absolute;
	width: 38px;
	height: 38px;
	bottom: -35px;
	right: 32%;
	background: #e40012;
	clip-path: polygon( 31% 0, 100% 0, 0 100%);
}
.sc-problems .intro-box .speech-bubble .headline {
	margin-bottom: 7px;
	font-weight: 700;
	font-size: 42px;
	letter-spacing: 0.03em;
	line-height: 1.3;
}
.sc-problems .intro-box .speech-bubble .text {
	font-weight: 700;
	font-size: 18px;
	line-height: 1.3;
}
.sc-problems .intro-box .icon-box {
	display: inline-block;
	padding: 19px 25px 31px;
	border-radius: 90px;
	background: #fff;
	box-shadow : 0.81px 0.81px 4.86px rgba(0, 0, 0, 0.12);
}
.sc-problems .intro-box .icon-box .icon {
	display: block;
	width: 112px;
	height: 112px;
}
.sc-problems .problem-list {
	max-width: 850px;
	margin: 0 auto;
}
.sc-problems .problem-item {
	margin-bottom: 50px;
	text-align: left;
}
.sc-problems .problem-description {
	padding: 23px 55px;
	margin-bottom: 32px;
	border-radius: 55px;
	background: #fff;
	box-shadow : 0.83px 0.83px 5px rgba(0, 0, 0, 0.12);
}
.sc-problems .problem-description .num {
	display: inline-block;
	margin-right: 1em;
	color: #e40012;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 60px;
	letter-spacing: 0.025em;
	line-height: 1;
	vertical-align: middle;
}
.sc-problems .problem-description .text {
	display: inline-block;
	font-weight: 700;
	font-size: 22px;
	line-height: 1.3;
	vertical-align: middle;
}
.sc-problems .problem-solution {
	position: relative;
	display: flex;
	justify-content: space-between;
	padding: 45px 52px;
	border-radius: 12px;
	background: #fff;
	box-shadow : 0.83px 0.83px 5px rgba(0, 0, 0, 0.12);
}
.sc-problems .problem-solution::before {
	content: '';
	position: absolute;
	width: 90px;
	height: 23px;
	top: -12px;
	right: 0;
	left: 0;
	margin: 0 auto;
	background: #e40012;
	clip-path: polygon( 0 0, 100% 0, 50% 100%);
}
.sc-problems .problem-solution .cont-box {
	max-width: 452px;
	margin-right: 20px;
}
.sc-problems .problem-solution .title {
	margin-bottom: 5px;
	color: #e40012;
	font-weight: 700;
	font-size: 24px;
}
.sc-problems .problem-solution .text {
	line-height: 1.875;
	text-align: justify;
}
.sc-problems .problem-solution .img-box {
	width: 199px;
	aspect-ratio: 1.124 / 1;
}
@media only screen and (max-width: 1024px) {
	.sc-problems .problem-description {
		border-radius: 12px;
	}
	.sc-problems .intro-box .speech-bubble {
		padding: 20px 30px 28px;
	}
	.sc-problems .intro-box .speech-bubble .headline {
		font-size: 34px;
		margin-bottom: 10px;
	}
	.sc-problems .intro-box .speech-bubble .text {
		display: inline-block;
		font-size: 16px;
		text-align: justify;
	}
	.sc-problems .problem-description {
		padding: 23px 35px;
		text-align: center;
	}
	.sc-problems .problem-description .num {
		display: block;
		margin: 0;
		margin-bottom: 10px;
	}
	.sc-problems .problem-description .text {
		display: inline-block;
		text-align: justify;
	}
	.sc-problems .problem-solution {
		display: block;
		padding: 40px 35px;
	}
	.sc-problems .problem-solution .cont-box {
		max-width: 100%;
		margin-right: 0;
		margin-bottom: 40px;
	}
	.sc-problems .problem-solution .title {
		text-align: center;
	}
	.sc-problems .problem-solution .img-box {
		margin: 0 auto;
	}
}


.sc-renovation {
	padding-top: 95px;
	padding-bottom: 120px;
	background: #fff;
}
.sc-renovation .headline-box {
	display: flex;
	justify-content: center;
	margin-bottom: 48px;
	color: #e40012;
}
.sc-renovation .headline-box .title {
	font-weight: 700;
	font-size: 40px;
}
.sc-renovation .headline-box .text {
	font-weight: 700;
	font-size: 24px;
}
.sc-renovation .headline-box .sticker {
	display: inline-block;
	width: 85px;
	height: 85px;
	margin-left: 25px;
	padding-top: 15px;
	border-radius: 50px;
	background: #e40012;
	color: #fff;
	font-weight: 700;
	font-size: 26px;
	line-height: 1;
}
.sc-renovation .highlight-list {
	margin-bottom: 110px;
	margin-right: -60px;
	color: #e40012;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.4167;
}
.sc-renovation .highlight-cont {
	display: inline-block;
	margin-right: 60px;
	padding-left: 18px;
	border-left: 6px solid #e40012;
	text-align: left;
}
.sc-renovation .renovation-list {
	max-width: 1150px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 120px;
}
.sc-renovation .renovation-item {
	flex: 1 1 43%;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}
.sc-renovation .renovation-item .img-box {
	flex: 0 0 43.4%;
	aspect-ratio: 1.12;
	margin-right: 40px;
}
.sc-renovation .renovation-item .cont-box {
	text-align: left;
}
.sc-renovation .renovation-item .cont-box .title {
	margin-bottom: 20px;
	color: #e40012;
	font-weight: 700;
	font-size: 24px;
	line-height: 1;
}
.sc-renovation .renovation-item .cont-box .text {
	font-size: 14px;
	line-height: 1.8571;
	text-align: justify;
}
@media only screen and (max-width: 1024px) {
	.sc-renovation .headline-box {
		display: block;
	}
	.sc-renovation .headline-box .title {
		margin-bottom: 10px;
		font-size: 30px;
	}
	.sc-renovation .headline-box .text {
		margin-bottom: 20px;
		font-size: 18px;
	}
	.sc-renovation .headline-box .sticker {
		display: inline-block;
		width: auto;
		height: auto;
		margin: 0;
		padding: 10px 40px;
	}
	.sc-renovation .highlight-list {
		display: inline-block;
		margin: 0;
		margin-bottom: 110px;
	}
	.sc-renovation .highlight-cont {
		display: block;
		margin: 0;
		margin-bottom: 20px;
		font-size: 20px;
	}
	.sc-renovation .renovation-list {
		display: block;
	}
	.sc-renovation .renovation-item {
		display: block;
		margin-bottom: 100px;
	}
	.sc-renovation .renovation-item .img-box {
		width: 222px;
		margin: 0 auto 30px;
	}
	.sc-renovation .renovation-item .cont-box {
		text-align: center;
	}

}

.renovation-footer {
	padding-top: 130px;
	color: #e40012;
}
.renovation-footer .headline {
	margin-bottom: 30px;
	font-weight: 700;
	font-size: 26px;
	line-height: 1.3;
}
.renovation-footer .contact-box {
	display: flex;
	justify-content: space-between;
	max-width: 710px;
	margin: 0 auto;
	font-weight: 700;
}
.renovation-footer .contact-box .tel-link {
	display: inline-block;
	margin-top: 5px;
}
.renovation-footer .contact-box .tel-link .num {
	margin-bottom: 10px;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 39px;
	line-height: 1;
}
.renovation-footer .contact-box .tel-link .hour {
	font-size: 13px;
	line-height: 1;
}
.renovation-footer .contact-box .mail-link {
	display: block;
	width: 320px;
	padding: 22px;
	background: #e40012;
	color: #fff;
	border-radius: 7px;
	font-size: 22px;
	line-height: 1;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.renovation-footer .contact-box .mail-link:hover {
	opacity: 0.4;
}
@media only screen and (max-width: 1024px) {
	.renovation-footer .headline {
		font-size: 23px;
	}
	.renovation-footer .contact-box {
		display: flex;
		display: block;
	}
	.renovation-footer .contact-box .tel-link {
		margin-bottom: 40px;
	}
	.renovation-footer .contact-box .tel-link .num {
		font-size: 34px;
	}
	.renovation-footer .contact-box .mail-link {
		margin: 0 auto;
	}
}
/* #endregion -------------------------------- */

/* #region company --------------------------- */
.sub-main-block.company {
	padding-bottom: 300px;
	text-align: left;
}
.company-intro {
	padding-top: 150px;
	padding-bottom: 125px;
	background: #fff;
	text-align: center;
}
.company-intro .logomark {
	display: block;
	width: 162px;
	margin: 0 auto 40px;
}
.company-intro .text {
	font-size: 14px;
	line-height: 2;
}
@media only screen and (max-width: 1024px) {
	.company-intro {
		padding-top: 100px;
		padding-bottom: 80px;
		text-align: justify
	}
}

.sc-company {
	max-width: 920px;
	margin: 0 auto;
}
.sc-company .sc-title {
	margin-bottom: 20px;
	color: #e40012;
	font-weight: 700;
	font-size: 24px;
	line-height: 1;
	letter-spacing: 0.01em;
}

.sc-company.greeting {
	display: flex;
	justify-content: space-between;
	margin-top: 165px;
	margin-bottom: 140px;
}
.sc-company.greeting .cont-box {
	flex: 1 1 525px;
}
.sc-company.greeting .text {
	margin-bottom: 35px;
	font-size: 14px;
	line-height: 1.9286;
	text-align: justify;
}
.sc-company.greeting .signature {
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 13px;
	line-height: 1.6923;
	text-align: right;
}
.sc-company.greeting .signature span {
	font-size: 18px;
}
.sc-company.greeting .img-box {
	flex: 0 1 300px;
	aspect-ratio: 1 / 1.185;
	margin-left: min(100px, 7vw);
}
@media only screen and (max-width: 1024px) {
	.sc-company.greeting {
		display: block;
		margin-top: 100px;
	}
	.sc-company.greeting .cont-box {
		margin-bottom: 40px;
	}
	.sc-company.greeting .img-box {
		max-width: 300px;
		margin: 0 auto;
	}
}

.sc-company.profile {
	margin-bottom: 250px;
}
.sc-company.profile .profile-table {
	margin-bottom: 60px;
	width: 100%;
	border-top: 1px solid rgba(179, 179, 179, 0.5);
	border-collapse: collapse;
}
.sc-company.profile .profile-table th, .sc-company.profile .profile-table td {
	padding: 20px;
	padding-left: 60px;
	border-bottom: 1px solid rgba(179, 179, 179, 0.5);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
}
.sc-company.profile .profile-table th {
	width: 186px;
	padding-left: 40px;
	padding-right: 40px;
	background: #f1f1f1;
	white-space: nowrap;
}
.sc-company.profile .map-box {
	height: 460px;
}
.sc-company.profile .map-box iframe {
	width: 100%;
	height: 100%;
}
@media only screen and (max-width: 1024px) {
	.sc-company.profile .profile-table th, .sc-company.profile .profile-table td {
		padding: 20px;
	}
	.sc-company.profile .profile-table th {
		width: auto;
	}
	.sc-company.profile .map-box {
		height: 380px;
	}
}

.sc-company.office {
	margin-bottom: 190px;
}
.sc-company.office .office-table {
	width: 100%;
	border-top: 1px solid rgba(179, 179, 179, 0.5);
	border-collapse: collapse;
}
.sc-company.office .office-table th, .sc-company.office .office-table td {
	padding: 30px 20px;
	border-bottom: 1px solid rgba(179, 179, 179, 0.5);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
}
.sc-company.office .office-table th {
	width: 230px;
	padding-left: 40px;
	padding-right: 40px;
	color: #e40012;
	font-weight: 700;
}
.sc-company.office .sign-btn, .sc-company.office .btn {
	display: inline-block;
	padding: 5px 15px;
	margin-left: 5px;
	border: 1px solid rgba(62, 58, 57, 0.5);
	font-size: 12px;
	line-height: 1;
	white-space: nowrap;
	transition: background 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.sc-company.office .sign-btn:hover, .sc-company.office .btn:hover {
	background: #ddd;
}
@media only screen and (max-width: 1024px) {
	.sc-company.office .office-table tr {
		display: block;
		padding: 20px;
		border-bottom: 1px solid rgba(179, 179, 179, 0.5);
	}
	.sc-company.office .office-table th, .sc-company.office .office-table td {
		display: block;
		padding: 0;
		margin-bottom: 10px;
		border-bottom: 0;
	}
	.sc-company.office .office-table th {
		width: auto;
	}
	.sc-company.office .office-table td:nth-of-type(n+2) {
		display: inline-block;
		margin-right: 10px;
	}
}

.sc-company.history {

}
.sc-company.history .history-table {
	width: 100%;
	border-top: 1px solid rgba(179, 179, 179, 0.5);
	border-collapse: collapse;
}
.sc-company.history .history-table th, .sc-company.history .history-table td {
	padding: 20px;
	border-bottom: 1px solid rgba(179, 179, 179, 0.5);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
}
.sc-company.history .history-table th {
	width: 230px;
	padding-left: 40px;
	padding-right: 40px;
}
@media only screen and (max-width: 1024px) {
	.sc-company.history .history-table tr {
		display: block;
		padding: 20px;
		border-bottom: 1px solid rgba(179, 179, 179, 0.5);
	}
	.sc-company.history .history-table th, .sc-company.history .history-table td {
		display: block;
		padding: 0;
		margin-bottom: 5px;
		border-bottom: 0;
	}
	.sc-company.history .history-table th {
		width: auto;
	}
}

/* #endregion -------------------------------- */

/* #region faq ------------------------------- */
.sub-main-block.faq {
	padding-top: 110px;
	padding-bottom: 300px;
}
.faq-section-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 15px 20px;
	margin-bottom: 170px;
	text-align: left;
}
.faq-section-nav a {
	display: inline-block;
	padding: 0 30px;
	height: 42px;
	border-radius: 50px;
	background: #e40012;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height: 42px;
	transition: opacity 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.faq-section-nav a:hover {
	opacity: 0.6;
}
.faq-section {
	margin-bottom: 100px;
	text-align: left;
}
.faq-section .title {
	margin-bottom: 25px;
	color: #e40012;
	font-size: 24px;
	font-weight: 700;
}
.faq-section .faq-cont {
	margin-bottom: 45px;
	padding: min(55px, 7vw);
	border-radius: 12px;
	box-shadow : 0.85px 0.85px 5.11px rgba(0, 0, 0, 0.12);
	background: #fff;
	text-align: justify;
}
.faq-section .faq-cont .question {
	position: relative;
	padding-left: 65px;
	padding-bottom: min(30px, 4vw);
	font-size: 18px;
	line-height: 1.5;
}
.faq-section .faq-cont .question::before {
	content: 'Q';
	position: absolute;
	left: 5px;
	top: -15px;
	color: #e40012;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 34px;
}
.faq-section .faq-cont .answer {
	position: relative;
	padding-left: 65px;
	padding-top: min(30px, 4vw);
	border-top : 1px solid rgba(179, 179, 179, 0.5);
	font-size: 14px;
	line-height: 2;
}
.faq-section .faq-cont .answer::before {
	content: 'A';
	position: absolute;
	left: 5px;
	top: 12px;
	color: #e40012;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 34px;
}
@media only screen and (max-width: 1024px) {
	.sub-main-block.faq {
		padding-bottom: 200px;
	}
	.faq-section-nav {
		margin-bottom: 100px;
	}
	.faq-section-nav a {
		padding: 0 15px;
		height: 30px;
		font-size: 13px;
		line-height: 30px;
	}
	.faq-section .faq-cont .question {
		padding-left: 50px;
	}
	.faq-section .faq-cont .answer {
		padding-left: 50px;
	}
	.faq-section .faq-cont .answer::before {
		top: calc(min(30px, 4vw) - 18px);
	}
}
/* #endregion -------------------------------- */

/* #region paperless =================================== */
.sub-main-block.paperless {
	padding-bottom: 250px;
	text-align: left;
}
.sub-main-block.paperless .inner {
	max-width: 1110px;
}
.sub-main-block.paperless .sc-title {
	color: #e40012;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.3;
	letter-spacing: 0.01em;
}
@media only screen and (max-width: 1024px) {
	.sub-main-block.paperless {
		padding-bottom: 150px;
	}
	.sub-main-block.paperless .inner {
		max-width: 700px;
	}
}

.paperless-intro {
	padding-top: 160px;
	padding-bottom: 160px;
}
.paperless-intro .sc-title {
	margin-bottom: 60px;
}
.paperless-intro .cont-block {
	display: flex;
	gap: 40px;
}
.paperless-intro .cont-block .right-box {
	flex: 0 0 50%;
	order: 2;
	text-align: center;
}
.paperless-intro .cont-block .right-box img {
	display: inline-block;
	max-width: 372px;
	width: 100%;
}
.paperless-intro .text {
	margin-bottom: 2em;
	font-size: 14px;
	line-height: 2;
	text-align: justify;
}
.paperless-intro .note {
	font-size: 12px;
	line-height: 1.5;
	text-align: justify;
}
@media only screen and (max-width: 1024px) {
	.paperless-intro {
		padding-top: 100px;
	}
	.paperless-intro .cont-block {
		display: block;
	}
	.paperless-intro .cont-block .right-box {
		margin-bottom: 40px;
	}
}
.paperless-merit {
	margin-bottom: 160px;
}
.paperless-merit .sc-title {
	margin-bottom: 35px;
}
.paperless-merit .merit-list {
	display: flex;
	justify-content: space-between;
	gap: 20px;
}
.paperless-merit .merit-list li {
	flex: 1 1 243px;
	padding: 32px 5px 32px;
	border-radius: 12px;
	box-shadow : 0.83px 0.83px 5px rgba(0, 0, 0, 0.12);
	background: #fff;
	text-align: center;
}
.paperless-merit .merit-list li img {
	display: inline-block;
	width: 100px;
	margin-bottom: 20px;
}
.paperless-merit .merit-list li .text {
	margin-bottom: 5px;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.375;
}
.paperless-merit .merit-list li .note {
	font-size: 10px;
}
@media only screen and (max-width: 1024px) {
	.paperless-merit .merit-list {
		flex-wrap: wrap;
	}
	.paperless-merit .merit-list li {
		padding: 20px 5px;
	}
	.paperless-merit .merit-list li img {
		width: 70px;
		margin-bottom: 10px;
	}
}

.paperless-flow {
	margin-bottom: 100px;
}
.paperless-flow .sc-title {
	margin-bottom: 30px;
}
.paperless-flow .flow-item {
	display: flex;
	justify-content: space-between;
	gap: 40px;
}
.paperless-flow .left-box {
	flex: 0 0 550px;
}
.paperless-flow .right-box {
}
.paperless-flow .text {
	margin-bottom: 2em;
	font-size: 14px;
	line-height: 2;
	text-align: justify;
}
.paperless-flow .note {
	font-size: 12px;
	line-height: 1.5;
	text-align: justify;
}
.paperless-flow .btn-box {
	padding-top: 7em;
}
@media only screen and (max-width: 1024px) {
	.paperless-flow .flow-item {
		display: block;
	}
	.paperless-flow .left-box {
		margin-bottom: 30px;
	}
	.paperless-flow .btn-box {
		padding-top: 20px;
	}
	.paperless-flow .link-btn01 {
		font-size: 14px;
	}
}

/* #endregion paperless -------------------------------- */

/* #region recruit --------------------------- */
.recruit-header	{
	position: relative;
	height: 546px;
	margin-top: 210px;
	background: #ddd;
	color: #fff;
}
.recruit-header	.img-box {
	width: 100%;
	height: 100%;
}
.recruit-header	.cont-box {
	position: absolute;
	display: flex;
	align-items: center;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.recruit-header	.title {
	margin-top: 0.6em;
	font-size: min(100px, 11vw);
	line-height: 1;
}
.recruit-header	.text {
	margin-bottom: 15px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	font-size: 0.34em;
}
.recruit-header	.en {
	margin-bottom: 10px;
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	letter-spacing: 0.025em;
}
.recruit-header	.ja {
	font-weight: 700;
	font-size: 0.42em;
	letter-spacing: 0.075em;
}
.sub-main-block.recruit {
	padding-top: 105px;
	padding-bottom: 325px;
}
.sub-main-block.recruit .sc-title {
	margin-bottom: 50px;
	color: #e40012;
	font-weight: 700;
	font-size: 24px;
	letter-spacing: 0.01em;
	line-height: 1;
}
.sub-main-block.recruit .recruit-box {
	max-width: 1050px;
	margin: 0 auto;
	padding: 74px 65px 100px;
	border-radius: 34px;
	box-shadow : 0.79px 0.79px 4.77px rgba(0, 0, 0, 0.12);
	background: #fff;
	text-align: left;
}
.sub-main-block.recruit .recruit-table {
	width: 100%;
	border-top: 1px solid rgba(179, 179, 179, 0.5);
}
.sub-main-block.recruit .recruit-table th, .sub-main-block.recruit .recruit-table td {
	padding: 30px;
	border-bottom: 1px solid rgba(179, 179, 179, 0.5);
	font-size: 14px;
	line-height: 1.9286;
	vertical-align: top;
}
.sub-main-block.recruit .recruit-table th {
	padding-left: 55px;
	padding-right: 45px;
	color: #e40012;
	font-weight: 700;
	white-space: nowrap;
}
@media only screen and (max-width: 1024px) {
	.recruit-header	{
		margin-top: 90px;
		height: auto;
		aspect-ratio: 1.875 / 1;
	}
	.sub-main-block.recruit {
		padding-top: 80px;
		padding-bottom: 200px;
	}
	.sub-main-block.recruit .recruit-box {
		padding: 80px 30px;
	}
	.sub-main-block.recruit .recruit-table tr {
		display: block;
		padding: 20px 10px;
		border-bottom: 1px solid rgba(179, 179, 179, 0.5);
	}
	.sub-main-block.recruit .recruit-table th, .sub-main-block.recruit .recruit-table td {
		display: block;
		padding: 0;
		border-bottom: 0;
	}
}

/* #endregion -------------------------------- */

/* #region contact --------------------------- */
.sub-main-block.contact {
	padding: 140px 0 290px;
}
.sub-main-block.contact .intro-box {
	margin-bottom: 80px;
}
.sub-main-block.contact .intro-text {
	display: inline-block;
	margin-bottom: 75px;
	font-size: 16px;
	line-height: 2;
	text-align: left;
}
.sub-main-block.contact .intro-text span {
	font-size: 14px;
}
.sub-main-block.contact .intro-text a {
	display: inline-block;
	text-decoration: underline;
}
.sub-main-block.contact .intro-text a:hover {
	text-decoration: none;
}
.sub-main-block.contact .tel-info {
	color: #e40012;
}
.sub-main-block.contact .tel-info .title {
	margin-bottom: 20px;
	font-weight: 700;
	font-size: 25px;
	line-height: 1;
}
.sub-main-block.contact .tel-info .tel-link {
	display: inline-block;
	margin-bottom: 10px;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 36px;
	line-height: 1;
}
.sub-main-block.contact .tel-info .tel-link .num {
	font-size: 1.41em;
}
.sub-main-block.contact .tel-info .hour {
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.025em;
}
.sub-main-block.contact .contact-box {
	max-width: 1050px;
	margin: 0 auto;
	padding: 90px 95px 135px;
	border-radius: 12px;
	background: #fff;
	box-shadow : 0.79px 0.79px 4.77px rgba(0, 0, 0, 0.12);
}
.sub-main-block.contact .contact-box .sc-title {
	margin-bottom: 70px;
	color: #e40012;
	font-weight: 700;
	font-size: 25px;
}
@media only screen and (max-width: 1024px) {
	.sub-main-block.contact {
		padding: 100px 0 200px;
		background: #fbfbfb;
	}
	.sub-main-block.contact .tel-info .tel-link {
		font-size: 24px;
	}
	.sub-main-block.contact .contact-box {
		padding: 80px 40px;
	}
	.sub-main-block.contact .contact-box .sc-title {
		font-size: 22px;
	}
}
/* #endregion -------------------------------- */

/* #region privacy-policy -------------------- */
.privacy-policy-cont {
	max-width: 940px;
	margin: 0 auto;
	padding-top: 150px;
	padding-bottom: 300px;
	font-size: 14px;
	line-height: 1.9286;
	text-align: justify;
}
.privacy-policy-cont dl {
	margin-top: 60px;
}
.privacy-policy-cont dt {
	color: #e40012;
	font-weight: 700;
}
.privacy-policy-cont dd {
}
.privacy-policy-cont dd a {
	text-decoration: underline;
}
.privacy-policy-cont dd a:hover {
	text-decoration: none;
}
.privacy-policy-cont dd > ul > li > ul {
	margin-bottom: 15px;
	padding-left: 1.5em;
	line-height: 1.5;
}
/* #endregion -------------------------------- */

/* #region TOP ------------------------------- */
.hero-block {
	width: 100%;
	padding-top: 230px;
	padding-bottom: 76px;
	background : linear-gradient(180deg, rgba(255, 255, 255, 1) 18.51%, rgba(237, 237, 238, 1) 52.98%);
}
.hero-slider {
	position: relative;
}
.hero-slider .slide-cont {
	display: block;
	position: relative;
	max-width: 1250px;
	aspect-ratio: 2.2 / 1;
	border-radius: 2.7% 2.7% / 6% 6%;
	margin: 5px 33px;
	box-shadow : 0px 0px 3px rgba(0, 0, 0, 0.35);
}
.hero-slider .img-wrap {
	border-radius: 2.7% 2.7% / 6% 6%;
	overflow: hidden;
}
.hero-slider .img-wrap img {
	width: 100%;
}
.slick-arrow {
	position: absolute;
	display: flex;
	align-items: center;
	max-width: 1402px;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
	padding-bottom: 65px;
	background: transparent;
	pointer-events: none;
	z-index: 5;
}
.prev-arrow {
	justify-content: flex-start;
}
.next-arrow {
	text-align: right;
	justify-content: flex-end;
}
.slick-arrow .slider-arrow {
	width: 86px;
	pointer-events: all;
	cursor: pointer;
}
.prev-arrow .slider-arrow {
	transform: rotateY(180deg);
}
.slick-dots {
	margin-top: 40px;
}
.slick-dots li {
	display: inline-block;
	position: relative;
	width: 28px;
	height: 28px;
	padding: 11px;
	margin: 0 4px;
	border-radius: 50%;
}
.slick-dots .slick-active {
	background: #e40012;
}
.slick-dots li button {
	font-size: 0;
    line-height: 0;
    display: block;
    width: 6px;
	height: 6px;
	border-radius: 50%;
    cursor: pointer;
    color: transparent;
    border: 0;
    outline: none;
    background: #878787;
}
.slick-dots li.slick-active button {
	background: #fff;
	pointer-events: none;
}

@media only screen and (max-width: 1024px) {
	.hero-block {
		padding-top: 100px;
		padding-bottom: 40px;
	}
	.hero-slider .slide-cont {
		margin: 5px min(40px, 3vw);
	}
	.slick-dots {
		margin-top: 0;
	}
	.slick-dots li {
		width: 18px;
		height: 18px;
		padding: 6px;
	}
}

.top-head-block {
	padding-top: 125px;
	padding-bottom: 160px;
}

.top-head-block .news-box {
	position: relative;
	display: flex;
	justify-content: space-between;
	gap: 80px;
	margin-bottom: 100px;
	text-align: left;
}
.top-head-block .news-box .title-box {
	min-height: 150px;
}
.top-head-block .news-box .title-box .title .en {
	margin-bottom: 10px;
	color: #e40012;
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 38px;
	letter-spacing: 0.075em;
	line-height: 1;
}
.top-head-block .news-box .title-box .title .ja {
	font-weight: 500;
	font-size: 17px;
	letter-spacing: 0.02em;
	line-height: 1;
}
.top-head-block .news-box .news-list {
	flex: 1 1 870px;
	border-top: 1px solid rgba(71, 56, 46, 0.5);
}
.top-head-block .news-box .news-list li {
	border-bottom: 1px solid rgba(71, 56, 46, 0.5);
}
.top-head-block .news-box .news-list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	column-gap: 30px;
	padding: 25px;
}
.top-head-block .news-box .news-list a:hover {
	background: #fbfbfb;
}
.top-head-block .news-box .news-list a::after {
	content: url(../images/common/icon-arrow3.svg);
}
.top-head-block .news-box .news-list .date {
	color: #878787;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.1em;
}
.top-head-block .news-box .news-list .cat {
	flex: 0 0 130px;
	height: 30px;
	border-radius: 50px;
	background: #ededee;
	color: #878787;
	font-size: 13px;
	font-weight: 700;
	line-height: 30px;
	text-align: center;
}
.top-head-block .news-box .news-list .title {
	flex-grow: 1;
	font-size: 15px;
	letter-spacing: 0.1em;
}
.top-head-block .news-box .btn-box {
	position: absolute;
	left: 0;
	bottom: 0;
}
.top-head-block .news-box .btn-box .link-btn01 {
	width: 300px;
}
@media only screen and (max-width: 1024px) {
	.top-head-block .news-box {
		display: block;
		max-width: 500px;
		margin: 0 auto;
	}
	.top-head-block .news-box .title-box {
		margin-bottom: 40px;
		min-height: 0;
	}
	.top-head-block .news-box .news-list {
		margin-bottom: 60px;
	}
	.top-head-block .news-box .news-list a {
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: 10px;
		padding: 20px 0;
	}
	.top-head-block .news-box .news-list a::after {
		display: none;
	}
	.top-head-block .news-box .news-list .title {
		flex: 1 0 100%;
	}
	.top-head-block .news-box .btn-box {
		position: relative;
	}
	.top-head-block .news-box .btn-box .link-btn01 {
		margin: 0 auto 80px;
	}
}

.top-head-block .paperless-banner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 860px;
	padding: 20px 60px;
	margin: 0 auto;
	border-radius: 12px;
	box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.12);
	background: #fff;
	transition: box-shadow 0.3s cubic-bezier(0.4, 0.6, 0.6, 1), transform 0.3s cubic-bezier(0.4, 0.6, 0.6, 1), background 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.top-head-block .paperless-banner:hover {
	background: #f7f7f7;
	box-shadow : 1px 4px 12px rgba(0, 0, 0, 0.3);
	transform: translate(0px, -3px)
}
.top-head-block .paperless-banner .title-box img {
	display: inline-block;
	width: 42px;
	margin-right: 40px;
	line-height: 1;
	vertical-align: middle;
}
.top-head-block .paperless-banner .title-box p {
	display: inline-block;
	margin-bottom: 10px;
	color: #e40012;
	font-weight: 700;
	font-size: 30px;
	letter-spacing: 0.05em;
	vertical-align: middle;
}
.top-head-block .paperless-banner .text {
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.02em;
	text-align: left;
}
@media only screen and (max-width: 1024px) {
	.top-head-block .banner-box {
		max-width: 500px;
		margin: 0 auto;
	}
	.top-head-block .paperless-banner {
		display: block;
	}
	.top-head-block .paperless-banner .title-box img {
		margin: 0;
		margin-bottom: 5px;
	}
	.top-head-block .paperless-banner .text {
		font-size: 14px;
		text-align: center;
	}
	.top-head-block .paperless-banner svg {
		display: none;
	}
}

.top-main-block {
	position: relative;
	padding-top: 170px;
	padding-bottom: 160px;
	background: url('../images/top/top-main-bg.jpg') no-repeat center / cover;
}
.top-main-block .circles {
	position: absolute;
}
.top-main-block .circles.c1 {
	bottom: 458px;
	right: -124px;
}
.top-main-block .circles.c2 {
	bottom: -496px;
	right: -124px;
}
.top-main-block .circles.c3 {
	transform: rotate(-225deg);
	bottom: 115px;
	left: -180px;
}
.top-intro {
	margin-bottom: 180px;
	text-align: left;
}
.top-intro-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-right: max(-115px, -6vw);
}
.top-intro .cont-box {
	width: 470px;
}
.top-intro .headline {
	margin-bottom: 25px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 41px;
	line-height: 1.5;
	letter-spacing: 0.05em;
}
.top-intro .text {
	margin-bottom: 75px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.75;
	letter-spacing: 0.02em;
}
.top-intro .photo-box {
	position: relative;
	flex: 1 1 50%;
	aspect-ratio: 2.01 / 1;
	margin-left: 90px;
	/* background: #000; */
}
.top-intro .photo-box .img-box {
	position: absolute;
	width: 55%;
	aspect-ratio: 1.24 / 1;
	box-shadow : 1.19px 1.19px 7.16px rgba(0, 0, 0, 0.12);
}
.top-intro .photo-box .img-box.ph01 {
	bottom: -15.5%;
	left: 0;
}
.top-intro .photo-box .img-box.ph02 {
	bottom: 21.5%;
	right: 0;
}
@media only screen and (max-width: 1024px) {
	.top-main-block {
		padding-top: 100px;
	}
	.top-main-block .circles {
		display: none;
	}
	.top-intro-wrapper {
		display: block;
		margin-right: 0;
	}
	.top-intro .cont-box, .top-intro .photo-box {
		max-width: 700px;
		width: 100%;
		margin: 0 auto;
	}

	.top-intro .headline {
		font-size: min(41px, 8.5vw);
	}
	.top-intro .photo-box {
		margin-top: 100px;
	}
}

.top-service-block {

}
.top-service-block .title {
	margin-bottom: 45px;
	text-align: left;
}
.top-service-block .title .en {
	margin-bottom: 15px;
	color: #e40012;
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 38px;
	letter-spacing: 0.075em;
	line-height: 1;
}
.top-service-block .title .ja {
	font-weight: 500;
	font-size: 17px;
	letter-spacing: 0.02em;
	line-height: 1;
}
.top-service-block .service-list {
	display: flex;
	justify-content: space-between;
	margin: 0 -6px;
}
.top-service-block .service-link {
	display: block;
	flex: 1 1 25%;
	margin: 0 6px;
	padding: min(47px, 4vw);
	padding-top: min(56px, 4.8vw);
	border-radius: 28px;
	background: #fff;
	box-shadow : 1px 1px 6px rgba(0, 0, 0, 0.12);
	font-size: min(21px, 4vw);
	transition: box-shadow 0.3s cubic-bezier(0.4, 0.6, 0.6, 1), transform 0.3s cubic-bezier(0.4, 0.6, 0.6, 1), background 0.3s cubic-bezier(0.4, 0.6, 0.6, 1);
}
.top-service-block .service-link:hover {
	background: #f7f7f7;
	box-shadow : 1px 4px 12px rgba(0, 0, 0, 0.3);
	transform: translate(0px, -3px)
}
.top-service-block .service-link .img {
	width: 128px;
	margin-bottom: 1.25em;
}
.top-service-block .service-link .name {
	margin-bottom: 0.5em;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.top-service-block .service-link .name-en {
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 0.6em;
	letter-spacing: 0.075em;
	color: #b3b3b4;
}
@media only screen and (max-width: 1024px) {
	.top-service-block .service-cont {
		max-width: 700px;
		width: 100%;
		margin: 0 auto;
	}
	.top-service-block .service-list {
		flex-wrap: wrap;
	}
	.top-service-block .service-link {
		flex: 1 1 40%;
		margin-bottom: 12px;
	}
}
.top-semi-footer-cont-box-cover {
	padding-top: 1px;
	padding-bottom: 180px;
	background: url(../images/top/top-semifooter-bg.jpg) no-repeat center / cover;
}
.top-semi-footer-cont-box-cover .semi-footer-cont-box {
	margin-top: -115px;
	margin-bottom: 0;
}

/* #endregion -------------------------------- */