@charset "UTF-8";

main {
	overflow-x: hidden;
}

.p-front-hero-wrapper {
	position: relative;
	overflow: hidden
}
.p-front-hero {
	display: flex;
	position: relative;
	padding-top: 137px;
}
.p-front-hero__visual {
	width: calc(728 / 1280 * 100%);
}
.p-front-hero__visual img {
	width: 100%;
}
.p-front-hero__copy {
	width: calc(552 / 1280 * 100%);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: url("../images/front/bg_hero.webp") no-repeat right top / cover;
}
.p-front-hero__copy p {
	width: calc(161 / 552 * 100%);
}
.p-front-hero__copy h2 {
	width: calc(246 / 552 * 100%);
	margin: calc(48 / 552 * 100%) 0 calc(72 / 552 * 100%);
}
.p-front-hero__copy h3 {
	width: calc(246 / 552 * 100%);
}
.p-front-hero__copy img {
	width: 100%;
}
.p-front-hero__copy h3 img {
	width: calc(209 / 246 * 100%);
	display: block;
}
@media(max-width:1105px) {
	.p-front-hero {
		padding-top: 126px;
	}
}
@media(max-width:768px) {
	.p-front-hero {
		padding-top: 63px;
		flex-direction: column;
	}
	.p-front-hero__visual {
		width: 100%;
	}
	.p-front-hero__copy {
		width: 100%;
		padding: 4rem 0;
		display: none;
	}
	.p-front-hero__copy p {
		width: calc(161 / 480 * 100%);
	}
	.p-front-hero__copy h2 {
		width: calc(246 / 480 * 100%);
	}
	.p-front-hero__copy h3 {
		width: calc(246 / 480 * 100%);
	}
	.p-front-hero__copy h3 img {
		width: 100%;
	}
}

.p-front-intro {
	background: linear-gradient(178deg,  rgba(22,119,163,1.00) 0%,rgba(4,83,120,1.00) 100%);
	padding: 2.9rem 0;
}
.p-front-intro__list {
	display: flex;
	justify-content: center;
	column-gap: 6.6rem;
}
.p-front-intro__list li {
	display: flex;
	align-items: center;
	position: relative;
	column-gap: 1rem;
}
.p-front-intro__list li + li::before {
	content: "";
	display: block;
	width: 1px;
	height: 100%;
	background: rgba(255,255,255,.35);
	position: absolute;
	top: 0;
	left: -3.3rem;
}
.p-front-intro__list li * {
	color: #fff;
}
.p-front-intro__list li p {
	font-size: 2.6rem;
	text-align: center;
	line-height: 1.4;
}
.p-front-intro__list li p small {
	display: block;
	font-size: 1.4rem;
}
.p-front-intro__list li p strong {
	font-size: 4rem;
	font-weight: 300;
	line-height: 1;
}
.p-front-intro__list li:last-of-type p strong {
	padding: 0 .1em;
}
.p-front-intro__list li p + p {
	font-size: 1.4rem;
	margin-top: -4px;
}
.p-front-intro__list li p + p small {
	font-size: 1rem;
}
@media(max-width:1091px) {
	.p-front-intro__list {
		column-gap: 5rem;
	}
	.p-front-intro__list li + li::before {
		content: "";
		display: block;
		width: 1px;
		height: 100%;
		background: rgba(255,255,255,.35);
		position: absolute;
		top: 0;
		left: -2.5rem;
	}
	.p-front-intro__list li p {
		font-size: 2.4rem;
	}
	.p-front-intro__list li p strong {
		font-size: 3.8rem;
	}
}
@media(max-width:768px) {
	.p-front-intro {
		padding: 2.9rem 0;
	}
	.p-front-intro__list {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		row-gap: 3rem;
	}
	.p-front-intro__list li {
		width: 100%;
		justify-content: center;
	}
	.p-front-intro__list li + li::before {
		width: 80%;
		height: 1px;
		top: -1.5rem;
		left: 10%;
	}
	.p-front-intro__list li p {
		font-size: 2rem;
	}
	.p-front-intro__list li p small {
		font-size: 1.2rem;
	}
	.p-front-intro__list li p strong {
		font-size: 3.4rem;
	}
	.p-front-intro__list li p + p {
		font-size: 1.2rem;
	}
	.p-front-intro__list li p + p small {
		font-size: .9rem;
	}
}

.p-front-intro_mystyle {
	text-align: center;
	background: #E4E9ED;
	padding: 3.8rem 0 4.2rem;
}
.p-front-intro_mystyle p {
	color: #1B252F;
	font-size: 1.7rem;
	line-height: 1.4;
}
.p-front-intro_mystyle p strong {
	color: #1B252F;
	font-size: 4rem;
	font-weight: 400;
}
@media(max-width:768px) {
	.p-front-intro_mystyle {
		padding: 2.4rem 0 2.6rem;
	}
	.p-front-intro_mystyle p {
		font-size: 1.4rem;
	}
	.p-front-intro_mystyle p strong {
		display: block;
		font-size: 3rem;
	}
}

.p-front-cta {
}
.p-front-cta * {
	color: inherit;
	letter-spacing: 0;
}
.p-front-cta__box {
	background: #25313D;
	color: #fff;
	text-align: center;
	padding: 7.8rem 2rem 8.9rem;
}
.p-front-cta__box h2 {
	font-size: 4rem;
	font-weight: 300;
	margin-bottom: 1.6rem;
}
.p-front-cta__box__lead {
	font-size: 2rem;
	margin-bottom: 5.7rem;
}
.p-front-cta__box__txt {
	max-width: 101.6rem;
	margin: 0 auto 5rem;
	background: #E4E9ED;
	color: #000;
	font-size: 1.6rem;
	line-height: 2;
	padding: 4rem 2rem 3.7rem;
}
.p-front-cta .m-cv__btns a {
	padding: 1.8rem;
}
.p-front-cta__merit {
	max-width: 1016px;
	margin: 40px auto;
}
.p-front-cta__merit h3 {
	font-size: 25px;
	letter-spacing: .05em;
	text-align: center;
	width: fit-content;
	margin: 0 auto 29px;
	padding: 0 21px;
	position: relative;
}
.p-front-cta__merit h3::before,
.p-front-cta__merit h3::after {
	content: '';
	display: block;
	width: 1px;
	height: 48px;
	background: #4682BE;
	position: absolute;
	bottom: 5px;
	right: 0;
	transform: rotate(24.5deg);
}
.p-front-cta__merit h3::before {
	left: 0;
	right: auto;
	transform: rotate(-24.5deg);
}
.p-front-cta__merit h3 span {
	font-family: "EB Garamond", serif;
	color: #4682BE;
	font-size: 72px;
	font-style: italic;
	font-weight: 400;
	line-height: 1;
	vertical-align: -.14em;
	margin: 0 10px 0 -2px;
}
.p-front-cta__merit__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.p-front-cta__merit__number {
	font-family: "EB Garamond", serif;
	color: #4682BE;
	font-size: 72px;
	font-style: italic;
	line-height: 1;
	margin: -48px 0 -6px;
	position: relative;
}
.p-front-cta__merit__txt {
	font-size: 17px;
	line-height: 1.7059;
	margin-right: -5px;
}
.p-front-cta__note {
	font-size: 13px;
	letter-spacing: .05em;
	text-align: right;
	margin: 25px 0 39px;
}
.p-front-cta__schedule {
	max-width: 1015px;
	margin: 98px auto 0;
}
.p-front-cta__schedule h3 {
	border-bottom: 1px solid #707070;
	text-align: center;
	font-size: 25px;
	letter-spacing: .05em;
	padding-bottom: 31px;
	margin-bottom: 8px;
}
.p-front-cta__schedule table {
	font-family: inherit;
	text-align: center;
	width: 100%;
}
.p-front-cta__schedule table td {
	width: calc( 100% / 7 );
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	font-size: 40px;
	text-align: center;
	vertical-align: middle;
	padding: .8em 0;
	line-height: 1;
	color: #707070;
}
.p-front-cta__schedule table td:nth-child(1),
.p-front-cta__schedule table th:nth-child(1) {
	border-left: 1px solid #ccc;
}
.p-front-cta__schedule table td.closed {
	font-size: 20px;
	font-weight: normal;
}
.p-front-cta__schedule table .dow td {
	font-size: 19px;
	border: none;
	border-bottom: 1px solid #ccc;
	padding: .5em 0 .8em;
	color: #707070;
}
.p-front-cta__schedule table th {
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	font-size: 22px;
	font-weight: 500;
	letter-spacing: .01em;
	padding: 4px 0 5px;
	background: #eee;
	text-align: center;
	color: #707070;
}
.p-front-cta__schedule table th.Sunday,
.p-front-cta__schedule table th.holiday {
	background: #928236;
	color: #fff;
}
.p-front-cta__schedule table td.Sunday,
.p-front-cta__schedule table td.holiday {
	color: #928236;
}
.p-front-cta__schedule table th.Saturday,
.p-front-cta__schedule table th.Saturday {
	background: #5380A2;
	color: #fff;
}
.p-front-cta__schedule table td.Saturday,
.p-front-cta__schedule table td.Saturday {
	color: #5380A2;
}
.p-front-cta__schedule_txt {
	text-align: center;
	font-size: 18px;
	letter-spacing: .05em;
	margin-top: 15px;
}
.p-front-cta__schedule_note {
	font-size: 15px;
	line-height: 1.4;
	letter-spacing: .05em;
	margin-top: 24px;
}
@media(max-width:1150px) {
	.p-front-cta__box {
		padding: calc(52 / 1150 * 100vw) calc(20 / 1150 * 100vw) calc(89 / 1150 * 100vw);
	}
	.p-front-cta__box h2 {
		font-size: calc(62 / 1150 * 100vw);
		margin-bottom: calc(8 / 1150 * 100vw);
	}
	.p-front-cta__box__lead {
		font-size: calc(20 / 1150 * 100vw);
		margin-bottom: calc(44 / 1150 * 100vw);
	}
	.p-front-cta__box__txt {
		max-width: calc(1016 / 1150 * 100vw);
		margin: 0 auto calc(50 / 1150 * 100vw);
		font-size: calc(16 / 1150 * 100vw);
		padding: calc(35 / 1150 * 100vw) calc(60 / 1150 * 100vw) calc(32 / 1150 * 100vw) calc(20 / 1150 * 100vw);
	}
	.p-front-cta .m-cv__btns a {
		padding: calc(18 / 1150 * 100vw);
	}
	.p-front-cta__merit {
		max-width: calc(1016 / 1150 * 100vw);
		margin: calc(40 / 1150 * 100vw) auto;
	}
	.p-front-cta__merit h3 {
		font-size: calc(25 / 1150 * 100vw);
		margin: 0 auto calc(29 / 1150 * 100vw);
		padding: 0 calc(21 / 1150 * 100vw);
	}
	.p-front-cta__merit h3::before,
	.p-front-cta__merit h3::after {
		height: calc(48 / 1150 * 100vw);
		bottom: calc(5 / 1150 * 100vw);
	}
	.p-front-cta__merit h3 span {
		font-size: calc(72 / 1150 * 100vw);
		margin: 0 calc(10 / 1150 * 100vw) 0 calc(-2 / 1150 * 100vw);
	}
	.p-front-cta__merit__list {
		gap: calc(24 / 1150 * 100vw);
	}
	.p-front-cta__merit__number {
		font-size: calc(72 / 1150 * 100vw);
		margin: calc(-48 / 1150 * 100vw) 0 calc(-6 / 1150 * 100vw);
	}
	.p-front-cta__merit__txt {
		font-size: calc(17 / 1150 * 100vw);
		margin-right: calc(-5 / 1150 * 100vw);
	}
	.p-front-cta__note {
		font-size: calc(13 / 1150 * 100vw);
		margin: calc(25 / 1150 * 100vw) 0 calc(39 / 1150 * 100vw);
	}
	.p-front-cta__schedule {
		max-width: calc(1015 / 1150 * 100vw);
		margin: calc(98 / 1150 * 100vw) auto 0;
	}
	.p-front-cta__schedule h3 {
		font-size: calc(25 / 1150 * 100vw);
		padding-bottom: calc(31 / 1150 * 100vw);
		margin-bottom: calc(8 / 1150 * 100vw);
	}
	.p-front-cta__schedule table td {
		font-size: calc(40 / 1150 * 100vw);
	}
	.p-front-cta__schedule table td.closed {
		font-size: calc(20 / 1150 * 100vw);
	}
	.p-front-cta__schedule table .dow td {
		font-size: calc(19 / 1150 * 100vw);
	}
	.p-front-cta__schedule table th {
		font-size: calc(22 / 1150 * 100vw);
		padding: calc(4 / 1150 * 100vw) 0 calc(5 / 1150 * 100vw);
	}
	.p-front-cta__schedule_txt {
		font-size: calc(18 / 1150 * 100vw);
		margin-top: calc(15 / 1150 * 100vw);
	}
	.p-front-cta__schedule_note {
		margin-top: calc(24 / 1150 * 100vw);
	}
}
@media(max-width:768px) {
	.p-front-cta {
		overflow: hidden;
	}
	.p-front-cta__box {
		padding: 30px 20px 40px;
	}
	.p-front-cta__box h2 {
		font-size: 30px;
		margin-bottom: 5px;
	}
	.p-front-cta__box__lead {
		font-size: 13px;
		text-align: left;
		margin-bottom: 20px;
	}
	.p-front-cta__box__txt {
		max-width: none;
		margin: 0 auto 30px;
		font-size: 12px;
		text-align: left;
		padding: 20px;
	}
	.p-front-cta .m-cv__btns a {
		padding: 18px;
	}
	.p-front-cta__merit {
		max-width: none;
		margin: 40px 20px;
	}
	.p-front-cta__merit h3 {
		font-size: 20px;
		margin: 0 auto 29px;
		padding: 0;
		line-height: 2.2;
	}
	.p-front-cta__merit h3::before,
	.p-front-cta__merit h3::after {
		width: 1px;
		height: 48px;
		bottom: 5px;
	}
	.p-front-cta__merit h3 span {
		font-size: 72px;
		line-height: .7;
		margin: 0 10px 0 -2px;
	}
	.p-front-cta__merit__list {
		grid-template-columns: repeat(1, 1fr);
		gap: 24px;
	}
	.p-front-cta__merit__number {
		font-size: 72px;
		margin: -48px 0 0;
	}
	.p-front-cta__merit__txt {
		font-size: 14px;
		margin-right: 0;
	}
	.p-front-cta__note {
		font-size: 12px;
		margin: 25px 0 30px;
	}
	.p-front-cta__schedule {
		max-width: none;
		margin: 50px 20px 0;
	}
	.p-front-cta__schedule h3 {
		font-size: 24px;
		padding-bottom: 15px;
		margin-bottom: 8px;
	}
	.p-front-cta__schedule table { margin-bottom: 1.0em; }
	.p-front-cta__schedule table td { font-size: 25px; }
	.p-front-cta__schedule table th { font-size: 14px; }
	.p-front-cta__schedule table .dow td { font-size: 16px; }
	.p-front-cta__schedule table td.closed { font-size: 14px; }
	.p-front-cta__schedule_txt {
		font-size: 16px;
		text-align: left;
		margin-top: 15px;
	}
	.p-front-cta__schedule_note {
		font-size: 14px;
		margin-top: 20px;
	}
}
@media only screen and (max-width: 420px) {
	.p-front-cta__schedule table td { font-size: 22px; }
	.p-front-cta__schedule table th { font-size: 12px; }
	.p-front-cta__schedule table .dow td { font-size: 14px; }
	.p-front-cta__schedule table td.closed { font-size: 11px; }
}

.p-front-news {
	display: flex;
	justify-content: space-between;
	max-width: 1016px;
	margin: 0 auto;
	padding: 87px 0 95px;
	font-family: 'Noto Serif JP', serif;
}
.p-front-news * {
	color: inherit;
	font-family: inherit;
	letter-spacing: 0;
}
.p-front-news__head h2 {
	color: #25313D;
	font-size: 25px;
	font-weight: 400;
	letter-spacing: .05em;
	width: 205px;
}
.p-front-news__body {
	flex: 1;
}
.p-front-news__body li {
	display: flex;
	align-items: flex-start;
	padding: 2px 0 16px;
	margin-bottom: 15px;
	border-bottom: 1px dotted #000;
}
.p-front-news__body time {
	color: #25313D;
	font-size: 16px;
	width: 137px;
	letter-spacing: .02rem;
	font-weight: 400;
}
.p-front-news__body h3 {
	flex: 1;
	font-size: 16px;
	font-weight: 400;
}
@media(max-width:1150px) {
	.p-front-news {
		max-width: calc(1016 / 1150 * 100vw);
		padding: calc(87 / 1150 * 100vw) 0 calc(95 / 1150 * 100vw);
	}
	.p-front-news__head h2 {
		font-size: calc(25 / 1150 * 100vw);
		width: calc(205 / 1150 * 100vw);
	}
	.p-front-news__body li {
		padding: calc(2 / 1150 * 100vw) 0 calc(16 / 1150 * 100vw);
		margin-bottom: calc(15 / 1150 * 100vw);
	}
	.p-front-news__body time {
		font-size: calc(16 / 1150 * 100vw);
		width: calc(137 / 1150 * 100vw);
	}
	.p-front-news__body h3 {
		font-size: calc(16 / 1150 * 100vw);
	}
}
@media(max-width:768px) {
	.p-front-news {
		display: block;
		max-width: none;
		margin: 0 20px;
		padding: 50px 0;
	}
	.p-front-news__head h2 {
		text-align: center;
		font-size: 25px;
		width: auto;
		margin-bottom: 20px;
	}
	.p-front-news__body li {
		display: block;
		padding: 2px 0 16px;
		margin-bottom: 15px;
	}
	.p-front-news__body time {
		font-size: 15px;
		width: auto;
	}
	.p-front-news__body h3 {
		font-size: 15px;
	}
}

.p-front-eirgeni {
	background: url("../images/front/bg_eirgeni.webp") no-repeat right top / 100% auto;
	background-color: #0A1218;
	padding: 15rem 0;
	overflow-x: hidden;
}
.p-front-eirgeni__inner {
	max-width: 105.6rem;
	margin: 0 auto;
	padding: 0 2rem;
}
.p-front-eirgeni__read {
	text-align: center;
	margin-bottom: 15rem;
}
.p-front-eirgeni__read h2 {
	width: calc(258 / 1016 * 100%);
	margin: 9.2rem auto 9.3rem;
}
.p-front-eirgeni__read p {
	color: #fff;
	font-size: 2.3rem;
	font-family: "Inter", sans-serif;
	position: relative;
}
.p-front-eirgeni__read p:nth-child(1) {
	padding-bottom: 1rem;
}
.p-front-eirgeni__read p:nth-child(1)::after {
	content: "";
	width: 6.2rem;
	height: 0.5px;
	background: #FFFFFF;
	position: absolute;
	left: calc(50% - 3.1rem);
	bottom: 0;
}
.p-front-eirgeni__point {
	display: flex;
	background: #262B31;
	margin-bottom: 13.7rem;
}
.p-front-eirgeni__point li {
	width: calc(100% / 3);
}
.p-front-eirgeni__point li p {
	color: #FFF;
	font-size: 2rem;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 22.6rem;
}
.p-front-eirgeni__concept01 {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 14.8rem;
}
.p-front-eirgeni__concept02 {
	display: flex;
	align-items: center;
	margin-bottom: 15rem;
}
.p-front-eirgeni__concept01 figure,
.p-front-eirgeni__concept02 figure {
	width: calc(640 / 1016 * 100%);
}
.p-front-eirgeni__concept01 div,
.p-front-eirgeni__concept02 div {
	width: calc(376 / 1016 * 100%);
}
.p-front-eirgeni__concept02 div {
	padding-left: calc(60 / 1016 * 100%);
}
.p-front-eirgeni__concept01 h3 {
	width: calc(287 / 376 * 100%);
}
.p-front-eirgeni__concept02 h3 {
	width: calc(272 / 376 * 100%);
}
.p-front-eirgeni__concept01 p,
.p-front-eirgeni__concept02 p {
	color: #FFF;
	font-size: 2.6rem;
	letter-spacing: 0.07em;
	margin-top: 4rem;
}
.p-front-eirgeni__end {
	margin-bottom: 10rem;
}
.p-front-eirgeni__end h3 {
	width: calc(232 / 1016 * 100%);
	margin: 0 auto 5rem;
}
.p-front-eirgeni__end p {
	color: #FFF;
	font-size: 3rem;
	letter-spacing: 0.07em;
	text-align: center;
}
.p-front-eirgeni__end p span {
	color: #fff;
}
.p-front-eirgeni__end p .sp {
	display: none;
}
@media(max-width:768px) {
	.p-front-eirgeni {
		padding: 8rem 0;
	}
	.p-front-eirgeni__read {
		text-align: center;
		margin-bottom: 6rem;
	}
	.p-front-eirgeni__read h2 {
		width: 40%;
		margin: 6rem auto;
	}
	.p-front-eirgeni__read p {
		font-size: 1.8rem;
	}
	.p-front-eirgeni__read p:nth-child(1) {
		padding-bottom: 1rem;
	}
	.p-front-eirgeni__read p:nth-child(1)::after {
		content: "";
		width: 6.2rem;
		height: 0.5px;
		background: #FFFFFF;
		position: absolute;
		left: calc(50% - 3.1rem);
		bottom: 0;
	}
	.p-front-eirgeni__point {
		flex-direction: column;
		margin-bottom: 6rem;
	}
	.p-front-eirgeni__point li {
		width: 100%;
		display: flex;
	}
	.p-front-eirgeni__point li figure {
		width: 50%;
	}
	.p-front-eirgeni__point li p {
		width: 50%;
		font-size: 2.8vw;
		letter-spacing: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		min-height: inherit;
		padding: 0 .4em;
	}
	.p-front-eirgeni__concept01 {
		flex-direction: column;
		align-items: flex-start;
		margin-bottom: 6rem;
		row-gap: 3rem;
	}
	.p-front-eirgeni__concept02 {
		flex-direction: column;
		align-items: flex-start;
		row-gap: 3rem;
		margin-bottom: 8rem;
	}
	.p-front-eirgeni__concept01 figure,
	.p-front-eirgeni__concept02 figure {
		width: 100%;
	}
	.p-front-eirgeni__concept01 div,
	.p-front-eirgeni__concept02 div {
		width: 100%;
	}
	.p-front-eirgeni__concept02 div {
		padding-left: 0;
	}
	.p-front-eirgeni__concept01 h3 {
		width: calc(287 / 480 * 100%);
		margin: 0 auto;
	}
	.p-front-eirgeni__concept02 h3 {
		width: calc(272 / 480 * 100%);
		margin: 0 auto;
	}
	.p-front-eirgeni__concept01 p,
	.p-front-eirgeni__concept02 p {
		font-size: 2rem;
		margin-top: 2rem;
		text-align: center;
	}
	.p-front-eirgeni__end {
		margin-bottom: 8rem;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 4rem;
	}
	.p-front-eirgeni__end h3 {
		width: calc(232 / 480 * 80%);
		margin: 0;
	}
	.p-front-eirgeni__end p {
		font-size: 1.9rem;
		writing-mode: vertical-rl;
	}
	.p-front-eirgeni__end p .pc {
		display: none;
	}
	.p-front-eirgeni__end p .sp {
		display: inline;
	}
}

.p-front-concept {
	position: relative;
	overflow: hidden;
}
.p-front-concept__inner {
	max-width: 105.6rem;
	padding: 0 2rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 2;
}
.p-front-concept__inner h2 {
	width: calc(240 / 1016 * 100%);
}
.p-front-concept__inner h3 {
	width: calc(209 / 1016 * 100%);
	margin: 7.2rem 0 15rem;
}
.p-front-concept__inner h2 img,
.p-front-concept__inner h3 img {
	max-width: none;
	width: 100%;
}
.p-front-concept__inner a {
	color: #FFF;
	font-size: 2.2rem;
	font-family: "Inter", sans-serif;
	position: relative;
	width: 17.6rem;
}
.p-front-concept__inner a::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	right: 0;
	background: url(../images/_common/icon_arrow_white.svg) no-repeat center / contain;
	width: 10px;
	height: 19px;
}
@media(max-width:768px) {
	.p-front-concept {
		background: url("../images/front/bg_concept_sp.webp") no-repeat top right / contain;
		background-color: #0d141c;
		padding: 6rem 0 0;
	}
	.p-front-concept > figure {
		width: 90%;
		margin: 0 0 0 auto;
	}
	.p-front-concept__inner {
		position: static;
		margin-bottom: 2rem;
	}
	.p-front-concept__inner h2 {
		width: calc(300 / 480 * 100%);
		margin: 0 auto;
	}
	.p-front-concept__inner h3 {
		width: calc(300 / 480 * 100%);
		margin: 5rem auto 3rem;
	}
	.p-front-concept__inner a {
		font-size: 1.6rem;
		width: 13.6rem;
	}
	.p-front-concept__inner a::after {
		width: 8px;
		height: 17px;
	}
	.p-front-concept > figure + a {
		color: #FFF;
		font-family: "Inter", sans-serif;
		position: relative;
		font-size: 1.6rem;
		width: 13.6rem;
		margin: 3rem auto;
	}
	.p-front-concept > figure + a::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		margin: auto;
		right: 0;
		background: url(../images/_common/icon_arrow_white.svg) no-repeat center / contain;
		width: 8px;
		height: 17px;
	}
}

.p-front-life {
	background: #25313D;
	padding: 13rem 0 10rem;
}
.p-front-life__sec01 {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	position: relative;
	padding: 0 2rem;
	margin: 0 0 13rem auto;
}
.p-front-life__sec01 div:nth-child(1) {
	position: absolute;
	left: calc(50% - 508px);
	top: 0;
	bottom: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	z-index: 2;
}
.p-front-life__sec01 div:nth-child(1) h2 {
	color: #FFF;
	font-size: 6.9rem;
	font-weight: 300;
	font-family: "Inter", sans-serif;
	letter-spacing: .05em;
	margin-bottom: 6rem;
}
.p-front-life__sec01 div:nth-child(1) h3 {
	color: #FFF;
	font-size: 2.4rem;
	font-weight: 400;
	letter-spacing: .07em;
	margin-bottom: 3rem;
}
.p-front-life__sec01 div:nth-child(1) p {
	color: #FFF;
	font-size: 1.5rem;
	letter-spacing: .07em;
	line-height: 2.66;
}
.p-front-life__sec01 div:nth-child(2) {
	max-width: 50%;
	width: calc(655 / 1016 * 100%);
	display: flex;
	justify-content: flex-end;
	gap: 1.6rem;
}
.p-front-life__sec01 div:nth-child(2) figure {
	width: calc(211 / 655 * 100%);
}
.p-front-life__inner {
	width: 101.6rem;
	margin: 0 auto;
}
.p-front-life__inner h3 {
	color: #FFF;
	font-size: 3rem;
	font-weight: 400;
	text-align: center;
	margin-bottom: 5.5rem;
}
.p-front-life__inner ul {
	margin-bottom: 10rem;
	display: flex;
	justify-content: space-between;
}
.p-front-life__inner li {
	width: 50rem;
}
.p-front-life__inner li h4 {
	color: #FFF;
	font-size: 2rem;
	font-weight: 300;
	font-family: "Inter", sans-serif;
	text-align: center;
	letter-spacing: .1em;
	margin-bottom: 1.6rem;
}
.p-front-life__inner li figcaption {
	color: #FFF;
	font-size: 1.5rem;
	text-align: center;
}
.p-front-life__inner li figcaption span {
	color: #FFF;
	font-size: 2.5rem;
}
@media(max-width:1016px) {
	.p-front-life__sec01 div:nth-child(1) {
		left: 20px;
	}
	.p-front-life__sec01 div:nth-child(2) {
		max-width: none;
		width: 520px;
	}
}
@media(max-width:768px) {
	.p-front-life {
		background: #25313D;
		padding: 8rem 0;
	}
	.p-front-life__sec01 {
		display: block;
		margin: 0 0 8rem;
	}
	.p-front-life__sec01 div:nth-child(1) {
		position: static;
		margin-bottom: 2rem;
	}
	.p-front-life__sec01 div:nth-child(1) h2 {
		font-size: 4rem;
		margin-bottom: 1rem;
	}
	.p-front-life__sec01 div:nth-child(1) h3 {
		font-size: 1.8rem;
		margin-bottom: 1rem;
	}
	.p-front-life__sec01 div:nth-child(1) p {
		font-size: 1.3rem;
		line-height: 2;
	}
	.p-front-life__sec01 div:nth-child(2) {
		max-width: none;
		width: 100%;
	}
	.p-front-life__sec01 div:nth-child(2) figure {
		width: calc(211 / 655 * 100%);
	}
	.p-front-life__inner {
		width: 100%;
		padding: 0 2rem;
	}
	.p-front-life__inner h3 {
		font-size: 2rem;
		margin-bottom: 3rem;
	}
	.p-front-life__inner ul {
		margin-bottom: 6rem;
		flex-direction: column;
		row-gap: 3rem;
	}
	.p-front-life__inner li {
		width: 100%;
	}
	.p-front-life__inner li h4 {
		font-size: 1.6rem;
		margin-bottom: 1rem;
	}
	.p-front-life__inner li figcaption {
		font-size: 1.1rem;
	}
	.p-front-life__inner li figcaption span {
		font-size: 1.8rem;
	}
}

.p-front-mystyle {
	padding: 15rem 0;
	position: relative;
}
.p-front-mystyle div {
	position: absolute;
	left: calc(50% - 508px);
	top: 0;
	bottom: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	z-index: 2;
}
.p-front-mystyle div h2 {
	color: #015175;
	font-size: 6.9rem;
	font-weight: 300;
	font-family: "Inter", sans-serif;
	letter-spacing: .05em;
	margin-bottom: 6rem;
}
.p-front-mystyle div h3 {
	font-size: 2.4rem;
	font-weight: 300;
	margin-bottom: 3rem;
}
.p-front-mystyle div p {
	width: 38rem;
	font-size: 1.5rem;
	line-height: 2;
}
.p-front-mystyle figure {
	max-width: 50%;
	width: calc(745 / 1016 * 100%);
	margin: 0 0 0 auto;
}
@media(max-width:1016px) {
	.p-front-mystyle div {
		left: 20px;
	}
	.p-front-mystyle figure {
		max-width: none;
		width: 600px;
	}
}
@media(max-width:768px) {
	.p-front-mystyle {
		padding: 8rem 2rem;
	}
	.p-front-mystyle div {
		position: static;
		margin-bottom: 2rem;
	}
	.p-front-mystyle div h2 {
		font-size: 4rem;
		margin-bottom: 1rem;
	}
	.p-front-mystyle div h3 {
		font-size: 1.8rem;
		margin-bottom: 1rem;
	}
	.p-front-mystyle div p {
		width: 100%;
		font-size: 1.3rem;
	}
	.p-front-mystyle figure {
		max-width: none;
		width: 100%;
		margin: 0;
	}
}


.p-front-zeh {
	background: url("../images/front/bg_zeh.webp") no-repeat center bottom / 100% auto;
	padding: 0 0 53rem;
	margin-bottom: 14rem;
}
.p-front-zeh__inner h2 {
	color: #015175;
	font-size: 6.9rem;
	font-weight: 300;
	font-family: "Inter", sans-serif;
	letter-spacing: .05em;
	text-align: center;
	margin-bottom: 1.3rem;
}
.p-front-zeh__inner h2 small {
	color: #015175;
	font-size: 2rem;
}
.p-front-zeh__inner h3 {
	font-size: 2.2rem;
	font-weight: 300;
	text-align: center;
	margin-bottom: 3rem;
}
.p-front-zeh__inner p {
	font-size: 1.3rem;
	line-height: 1.8;
	text-align: center;
	/*margin-bottom: 6.5rem;*/
}
.p-front-zeh__inner figure {
	width: 45rem;
	margin: 0 auto 3rem;
}
.p-front-zeh__inner .m-cv__btns a {
	border: 1px solid #FFFFFF;
}
@media(max-width:768px) {
	.p-front-zeh {
		background: url("../images/front/bg_zeh.webp") no-repeat center bottom / 140% auto;
		padding: 0 0 52vw;
		margin-bottom: 8rem;
	}
	.p-front-zeh__inner h2 {
		font-size: 3.8rem;
		letter-spacing: 0.01em;
		line-height: 1.2;
		margin-bottom: 2rem;
	}
	.p-front-zeh__inner h2 small {
		font-size: 1.4rem;
		display: block;
	}
	.p-front-zeh__inner h3 {
		font-size: 20px;
		margin-bottom: 2rem;
	}
	.p-front-zeh__inner p {
		font-size: 1.6rem;
		text-align: left;
		padding: 0 20px;
		margin-bottom: 4.5rem;
	}
	.p-front-zeh__inner figure {
		max-width: 45rem;
		width: 90%;
		margin: 0 auto 3rem;
	}
	.p-front-zeh__inner .m-cv__btns a {
		max-width: 90%;
		margin: 0 auto;
	}
}


.p-front-plan {
	margin-bottom: 12rem;
}
.p-front-plan div:not(.m-cv__btns) {
	position: relative;
}
.p-front-plan div:not(.m-cv__btns) div {
	position: absolute;
	left: calc(50% - 508px);
	top: 0;
	bottom: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	z-index: 2;
}
.p-front-plan div h2 {
	color: #015175;
	font-size: 6.9rem;
	font-weight: 300;
	font-family: "Inter", sans-serif;
	letter-spacing: .05em;
	margin-bottom: 6rem;
}
.p-front-plan div h3 {
	font-size: 2.4rem;
	font-weight: 300;
	margin-bottom: 3rem;
}
.p-front-plan div p {
	width: 36rem;
	font-size: 1.5rem;
	line-height: 2;
}
.p-front-plan figure {
	max-width: 50%;
	width: calc(745 / 1016 * 100%);
	margin: 0 0 0 auto;
}
.p-front-plan .m-cv__btns {
	margin-top: 10rem;
}
@media(max-width:1016px) {
	.p-front-plan div:not(.m-cv__btns) div {
		left: 20px;
	}
	.p-front-plan figure {
		max-width: none;
		width: 600px;
	}
}
@media(max-width:768px) {
	.p-front-plan {
		padding: 0 2rem;
		margin-bottom: 8rem;
	}
	.p-front-plan div:not(.m-cv__btns) div {
		position: static;
		margin-bottom: 2rem;
	}
	.p-front-plan div h2 {
		font-size: 4rem;
		margin-bottom: 1rem;
	}
	.p-front-plan div h3 {
		font-size: 1.8rem;
		margin-bottom: 1rem;
	}
	.p-front-plan div p {
		width: 100%;
		font-size: 1.3rem;
	}
	.p-front-plan figure {
		max-width: none;
		width: 100%;
		margin: 0;
	}
	.p-front-plan .m-cv__btns {
		margin-top: 4rem;
	}
}

.p-front-eirplamning {
	position: relative;
	margin-bottom: 12rem;
}
.p-front-eirplamning div {
	position: absolute;
	left: calc(50% - 508px);
	top: 0;
	bottom: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	z-index: 2;
}
.p-front-eirplamning div h2 {
	color: #015175;
	font-size: 6.9rem;
	font-weight: 300;
	font-family: "Inter", sans-serif;
	line-height: 1.3;
	letter-spacing: .05em;
	margin-bottom: 3.5rem;
}
.p-front-eirplamning div h3 {
	font-size: 2.4rem;
	font-weight: 300;
	margin-bottom: 3rem;
}
.p-front-eirplamning div p {
	width: 36rem;
	font-size: 1.5rem;
	line-height: 2;
}
.p-front-eirplamning figure {
	max-width: 50%;
	width: calc(745 / 1016 * 100%);
	margin: 0 0 0 auto;
}
@media(max-width:1016px) {
	.p-front-eirplamning div {
		left: 20px;
	}
	.p-front-eirplamning figure {
		max-width: none;
		width: 600px;
	}
}
@media(max-width:768px) {
	.p-front-eirplamning {
		padding: 0 2rem;
		margin-bottom: 8rem;
	}
	.p-front-eirplamning div {
		position: static;
		margin-bottom: 2rem;
	}
	.p-front-eirplamning div h2 {
		font-size: 4rem;
		margin-bottom: 1rem;
	}
	.p-front-eirplamning div h3 {
		font-size: 1.8rem;
		margin-bottom: 1rem;
	}
	.p-front-eirplamning div p {
		width: 100%;
		font-size: 1.3rem;
	}
	.p-front-eirplamning figure {
		max-width: none;
		width: 100%;
		margin: 0;
	}
}

.p-front-system {
	width: 105.6rem;
	padding: 0 2rem;
	margin: 0 auto 6rem;
}
.p-front-system h3 {
	color: #FFF;
	font-size: 2.3rem;
	font-weight: 300;
	text-align: center;
	background: #293452;
	padding: 1rem;
	margin-bottom: 2rem;
}
.p-front-system__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-direction: row-reverse;
}
.p-front-system__inner div {
	width: 48.8rem;
}
.p-front-system__inner div h4 {
	font-size: 1.4rem;
	font-weight: 300;
	text-align: center;
	margin-bottom: 2rem;
}
.p-front-system__inner div ul + h4 {
	margin-top: 4rem;
}
.p-front-system__inner div ul {
	display: flex;
	justify-content: space-between;
}
.p-front-system__inner div ul li {
	width: 15rem;
}
.p-front-system__inner div ul li h5 {
	color: #FFF;
	font-size: .9rem;
	font-weight: 300;
	letter-spacing: 0;
	background: #003875;
	text-align: center;
	border-radius: 1rem;
}
.p-front-system__inner div ul p {
	font-size: 1rem;
	line-height: 1.8;
	margin-top: 1rem;
}
.p-front-system__inner > figure {
	width: 50.8rem;
}
@media(max-width:768px) {
	.p-front-system {
		width: 100%;
		margin: 0 auto 8rem;
	}
	.p-front-system h3 {
		font-size: 1.8rem;
		line-height: 1.4;
		padding: 1rem;
	}
	.p-front-system__inner {
		flex-direction: column;
	}
	.p-front-system__inner div {
		width: 100%;
	}
	.p-front-system__inner div h4 {
		font-size: 1.5rem;
		margin-bottom: 1.5rem;
	}
	.p-front-system__inner div ul + h4 {
		margin-top: 4rem;
	}
	.p-front-system__inner div ul {
		flex-wrap: wrap;
		row-gap: 1.8rem;
	}
	.p-front-system__inner div ul li {
		max-width: 30rem;
		width: 48%;
	}
	.p-front-system__inner div ul li figure {
		text-align: center;
	}
	.p-front-system__inner div ul p {
		margin-top: 1rem;
	}
	.p-front-system__inner > figure {
		width: 100%;
		margin-bottom: 3rem;
	}
}

.p-front-equipment {
	margin-bottom: 12rem;
}
.p-front-equipment h3 {
	font-size: 2.3rem;
	font-weight: 300;
	text-align: center;
	margin-bottom: 4rem;
}
.p-front-equipment__slide .swiper-wrapper {
	-webkit-transition-timing-function: linear;
	transition-timing-function: linear;
}
.p-front-equipment__slide p {
	font-size: 1.6rem;
	line-height: 1.4;
	text-align: center;
	margin: 1.5rem 0 0;
}
@media(max-width:768px) {
	.p-front-equipment {
		margin-bottom: 8rem;
	}
	.p-front-equipment h3 {
		font-size: 1.8rem;
		padding: 0 2rem;
		margin-bottom: 3rem;
	}
	.p-front-equipment__slide p {
		font-size: 1.3rem;
		margin: 1rem 0 0;
	}
}

.p-front-brand {
	padding: 9.5rem 0 0;
	font-family: 'Noto Serif JP', serif;
	position: relative;
	letter-spacing: 0;
}
.p-front-brand * {
	color: inherit;
	font-family: inherit;
}
.p-front-brand:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 109.6rem;
	background: url(../images/front/ph_brand_bg.webp) no-repeat center top / cover;
}
.p-front-brand__intro {
	max-width: 101.6rem;
	margin: 0 auto 23rem;
	padding: 5rem 0 8rem;
	background: rgba(255, 255, 255, .86);
	position: relative;
	z-index: 2
}
.p-front-brand__head {
	color: #015175;
	font-size: 6.9rem;
	font-weight: 300;
	font-family: "Inter", sans-serif;
	letter-spacing: .05em;
	text-align: center;
	margin: 0 0 2rem;
}
.p-front-brand__head span {
	display: block;
	margin: 2rem 0 0;
	font-size: 2.4rem;
	font-family: Noto Serif JP, "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", Hiragino Mincho ProN, "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	letter-spacing: .2em;
	font-weight: 500
}
.p-front-brand__caption {
	text-align: center;
	font-size: 3.8rem;
	line-height: 1.7895;
	margin-bottom: 1.5rem;
}
.p-front-brand__caption span {
	color: #015175;
	font-size: 4.8rem;
	line-height: 1;
	letter-spacing: .01em;
}
.p-front-brand__note {
	text-align: center;
	font-size: 1.6rem;
	font-weight: 700;
	margin-bottom: 41px;
}
.p-front-brand__txt {
	text-align: center;
	font-size: 1.7rem;
	font-weight: 500;
	line-height: 2.3529;
	letter-spacing: .05em;
}
.p-front-brand__slide {
	overflow: hidden;
	margin-bottom: 4rem;
}
.p-front-brand__slide p {
	text-align: center;
	margin: 1rem 0 0;
	font-size: 1.2rem;
}
.p-front-brand__slide .swiper-wrapper {
	-webkit-transition-timing-function: linear;
	transition-timing-function: linear;
}
@media(max-width:1150px) {
	.p-front-brand {
		padding: calc(95 / 1150 * 100vw) 0 0;
	}
	.p-front-brand:before {
		height: calc(1096 / 1150 * 100vw);
	}
	.p-front-brand__intro {
		max-width: calc(1016 / 1150 * 100vw);
		margin: 0 auto calc(238 / 1150 * 100vw);
		padding: calc(60 / 1150 * 100vw) 0 calc(70 / 1150 * 100vw);
	}
	.p-front-brand__head span {
		margin: calc(35 / 1150 * 100vw) 0 0;
		font-size: calc(24 / 1150 * 100vw);
	}
	.p-front-brand__caption {
		font-size: calc(38 / 1150 * 100vw);
		margin-bottom: calc(15 / 1150 * 100vw);
	}
	.p-front-brand__caption span {
		font-size: calc(48 / 1150 * 100vw);
	}
	.p-front-brand__note {
		font-size: calc(16 / 1150 * 100vw);
		margin-bottom: calc(41 / 1150 * 100vw);
	}
	.p-front-brand__txt {
		font-size: calc(17 / 1150 * 100vw);
	}
	.p-front-brand__slide p {
		margin: calc(10 / 1150 * 100vw) 0 0;
		font-size: calc(12 / 1150 * 100vw);
	}
}
@media(max-width:768px) {
	.p-front-brand {
		padding: 40px 0;
	}
	.p-front-brand .m-cv__btns {
		padding: 0 20px;
	}
	.p-front-brand:before {
		height: 600px;
	}
	.p-front-brand__intro {
		max-width: none;
		margin: 0 20px 38px;
		padding: 40px 0;
	}
	.p-front-brand__head {
		font-size: 4rem;
		margin: 0 0 1rem;
	}
	.p-front-brand__head span {
		margin: 0;
		font-size: 1.6rem;
	}
	.p-front-brand__caption {
		font-size: 2.1rem;
		margin-bottom: 10px;
	}
	.p-front-brand__caption span {
		font-size: 26px;
	}
	.p-front-brand__note {
		font-size: 14px;
		margin-bottom: 20px;
	}
	.p-front-brand__txt {
		font-size: 13px;
		line-height: 2;
		text-align: left;
		padding: 0 15px;
	}
	.p-front-brand__slide p {
		margin: 10px 0 0;
		font-size: 12px;
	}
}
