@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=Zen+Kaku+Gothic+New:wght@400;500;600&family=Shippori+Mincho&display=swap');

:root {
	--primary-color: #004598;
	--secondary-color: #d6e9f6;
	--tertiary-color: #d5d5d5;
	--white-color: #ffffff;
	/*--pink-color: #ff83a6;*/
	--blue-color: #e8f0f9;
	--font-color: #000000;
	font-size: 9px;

	@media screen and (min-width: 1100px) {
		font-size: 10px;
	}
}

/**
 * reset
 */
* {
	box-sizing: border-box;
}

body {
	margin: 0;
	position: relative;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	font-style: normal;
	font-size: 1.9rem;
	line-height: 1.0remm;

	@media screen and (min-width: 1100px) {
	}
}

h1, h2, h3, p, ul, ol, dl, dt, dd {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

a {
	text-decoration: none;
	color: inherit;
}

img {
	max-width: 100%;
}

.lg {
	display: none !important;
}
@media screen and (min-width: 1100px) {
	.sm {
		display: none !important;
	}
	.lg {
		display: inline !important;
	}
}

/**
 * component
 */
.c-link {
	position: relative;
	z-index: 1;

	&::after {
		content: '';
		position: absolute;
		left: 0;
		bottom: -2px;
		width: 0%;
		height: 2px;
		background: var(--primary-color);
		z-index: -1;
		transition: all 0.5s;
	}
	&:hover::after {
		width: 100%;
	}

	.c-link__icon {
		float: right;
		top: 16px;
	}

	&:hover {
		.c-link__icon {
			&::before {
				border-color: #000000;
			}
			&::after {
				transform: translate(-50%, -50%) scale(1.2, 1.2);
				background-color: var(--primary-color);
			}
		}
	}
}

dl.c-horizontal {
	display: flex;
	flex-wrap: wrap;

	dt, dd {
		min-height: 12.0rem;
		align-content: center;
		margin-bottom: 1px;
		padding: 1.0rem;

		@media screen and (min-width: 1100px) {
			padding: 4.2rem 7.6rem;
		}
	}
	dt {
		background-color: var(--secondary-color);
		color: var(--primary-color);
		font-size: 2.1rem;
		flex-basis: 30%;
		text-align: center;

		@media screen and (min-width: 1100px) {
			flex-basis: 26.0rem;
		}
	}
	dd {
		background-color: var(--blue-color);
		font-size: 2.0rem;
		flex-basis: 70%;

		@media screen and (min-width: 1100px) {
			flex-basis: calc(100% - 26.0rem);
			padding: 4.2rem 3.8rem 4.2rem 7.6rem;
		}
	}
}

/**
 * common
 */
header {
	position: absolute;
	z-index: 10;
	width: 100%;
	padding: 2.0rem 4%;
	display: flex;
	justify-content: space-between;

	@media screen and (min-width: 1100px) {
		width: calc(100% - 140px);
		padding: 40px 70px;
	}

	> p.p-menu {
		flex-basis: 52px;

		@media screen and (min-width: 1100px) {
			display: none;
		}

		button {
			background-color: #ffffff;
			border: none;
			color: var(--primary-color);
			border-radius: 10px;
			cursor: pointer;
			position: static;
			z-index: 10;
			right: 4%;

			&.active {
			}

			i {
				font-size: 4.4rem;
			}
		}
	}

	> nav {
		display: none;
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: 100vh;
		background-color: var(--primary-color);
		z-index: 9;

		@media screen and (min-width: 1100px) {
			display: block;
			/*display: flex;
			flex-basis: calc(100% - 300px);
			align-items: center;
			justify-content: flex-end;*/

			position: static;
			width: unset;
			height: unset;
			background-color: unset;
		}

		ul {
			flex-wrap: wrap;
			list-style-type: none;
			line-height: 4.1rem;
			letter-spacing: 1.0px;
			margin-top: 9.0rem;
			margin: 9.0rem 4% 0;

			@media screen and (min-width: 1100px) {
				font-size: 1.4rem;
				display: flex;
				flex-wrap: nowrap;
				margin: 0;
			}
		}

		li {
			flex-basis: 100%;
			background-color: #ffffff;
			padding: 0 2%;

			&:first-child {
				border-radius: 15px 15px 0 0;
			}
			&:last-child {
				border-radius: 0 0 15px 15px;

				a {
					border-bottom: none;
				}
			}

			@media screen and (min-width: 1100px) {
				margin-left: 30px;
				flex-basis: unset;
				background-color: unset;
				padding: 0;
			}

			a {
				display: block;
				padding: 15px;
				color: var(--primary-color);
				border-bottom: 2px solid var(--tertiary-color);
				position: relative;

				@media screen and (min-width: 1100px) {
					display: unset;
					padding: 0;
					border-bottom: 0;
					font-weight: 600;
				}

				i {
					position: absolute;
					right: 2%;
					font-size: 2.8rem;

					@media screen and (min-width: 1100px) {
						display: none;
					}
				}
			}
		}
	}
}

footer {
	background-color: var(--primary-color);
	color: #ffffff;
	padding: 80px 0 30px;
	text-align: center;

	@media screen and (min-width: 1100px) {
		text-align: left;
	}

	p.label {
		font-size: 2.2rem;
		margin-bottom: 6.0rem;

		@media screen and (min-width: 1100px) {
			margin-bottom: 3.0rem;
		}

		img {
			vertical-align: middle;
			margin-right: 30px;
		}
	}

	div.box {
		display: flex;
		flex-wrap: wrap;
		font-size: 1.7rem;

		div.address {
			flex-basis: 100%;
			letter-spacing: 1px;
			margin-bottom: 3.0rem;

			@media screen and (min-width: 1100px) {
				flex-basis: 470px;
				margin-bottom: 0;
			}

			p {
				margin-bottom: 2.0rem;
				line-height: 2.3rem;

				span {
					margin-right: 3.0rem;
				}
			}
		}
		div.contact {
			flex-basis: 30.0rem;
			display: flex;
			flex-wrap: wrap;
			align-content: flex-start;
			text-align: left;
			margin: 0 auto;

			@media screen and (min-width: 1100px) {
				flex-basis: calc(100% - 470px);
				margin: 0;
			}

			p {
				flex-basis: 100%;
				line-height: 3.0rem;
				margin-bottom: 2.0rem;

				@media screen and (min-width: 1100px) {
					flex-basis: 310px;
					margin-bottom: 0;
				}

				a {
					display: block;
				}

				b {
					font-size: 3.0rem;
					font-weight: 500;
					display: block;
				}

				&.form {
					font-size: 2.0rem;
					align-self: center;
					line-height: 5.5rem;
				}

				span {
					display: flex;
					justify-content: center;
					align-items: center;
					border: 2px solid #ffffff;
					border-radius: 3.0rem;
					width: 5.5rem;
					height: 5.5rem;
					float: left;
					margin-right: 0.8rem;
				}

				i {
					font-size: 3.0rem;
				}
			}

			ul {
				flex-basis: 100%;
				font-size: 1.8rem;
				margin-top: 50px;
				display: none;

				@media screen and (min-width: 1100px) {
					display: flex;
				}

				li {
					margin-right: 30px;
					line-height: 2.8rem;
				}

				a {
					display: block;

					&:hover {
						i {
							right: -0.8rem;
						}
					}
				}

				span {
					font-size: 2.6rem;
					display: block;
					color: #103982;
				}

				i {
					display: inline-block;
					line-height: 1.0;
					margin-left: 0.8rem;
					position: relative;
					right: 0;
					transition: all 0.3s;
				}
			}
		}
	}

	p.copy {
		font-size: 1.4rem;
		margin-top: 6.0rem;

		@media screen and (min-width: 1100px) {
			margin-top: 3.0rem;
		}
	}
}

.font-zenkaku {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	font-style: normal;
}
.font-zenkaku__bold {
	font-weight: 600;
}

.font-poppins {
	font-family: "Poppins", serif;
	font-weight: 600;
	font-style: normal;
}

.container {
	width: 100%;
	margin: 0 auto;
	padding: 0 4%;

	@media screen and (min-width: 1100px) {
		width: 1100px;
		padding: 0;
	}
}

@keyframes text-bg {
	from {
		background-position: 0 bottom;
	}

	to {
		background-position: 100% bottom;
	}
}

/**
 * index
 */
body.index {
	nav > ul > li > a {
		@media screen and (min-width: 1100px) {
			color: #ffffff;
			font-weight: 400;
		}
	}
	> section {
		position: relative;

		h2 {
			color: var(--primary-color);
			font-size: 2.8rem;
			line-height: 6.0rem;
			letter-spacing: 3px;

			@media screen and (min-width: 1100px) {
				font-size: 3.1rem;
			}

			> span {
				display: block;
				opacity: 0;

				span {
					display: inline-block;
					opacity: 0;
				}
			}
			> span.sub {
				font-size: 7.9rem;
			}

			&::before {
				content: "";
				border-top: 2px solid var(--primary-color);
				position: relative;
				width: 50vw;
				display: block;
				left: -51vw;
				top: 3.0rem;
			}
		}
	}
	/**
	 * div.visual
	 */
	div.visual {
		position: relative;
		width: 100%;
		height: 100vw;
		overflow: hidden;

		@media screen and (min-width: 1100px) {
			height: 100vh;
		}

		&::before, &::after {
			content: "";
			display: block;
			width: 100%;
			position: absolute;
			background-color: var(--primary-color);
			z-index: 7;
		}

		&::before {
			width: 8%;
			height: 100%;
			top: 0;
			right: 0;

			@media screen and (min-width: 1100px) {
				width: 5%;
			}
		}

		&::after {
			height: 10%;
			bottom: 0;
			left: 0;
		}

		div.bg {
			position: absolute;
			top: 0;
			left: 0;
			z-index: 6;
			width: 100%;
			height: 90%;

			&::before, &::after {
				content: "";
				display: block;
				width: 100%;
				height: 100%;
				position: absolute;
				background-repeat: no-repeat;
				background-size: 60%;

				@media screen and (min-width: 1100px) {
					background-size: auto;
				}
			}

			&::before {
				bottom: 0;
				left: 0;
				background-image: url('../img/visual-bg1-sm.webp');
				background-position: bottom left;

				@media screen and (min-width: 1100px) {
					background-image: url('../img/visual-bg1.webp');
				}
			}

			&::after {
				top: 0;
				right: 8%;
				background-image: url('../img/visual-bg2-sm.webp');
				background-position: right top;

				@media screen and (min-width: 1100px) {
					right: 5%;
					background-image: url('../img/visual-bg2.webp');
				}
			}
		}

		> p {
			color: #ffffff;
			position: absolute;
			bottom: 4%;
			left: 4%;
			z-index: 8;
			font-size: 8vw;
			line-height: 1.4;
			overflow: hidden;

			@media screen and (min-width: 1100px) {
				bottom: 60px;
				left: 120px;
				font-size: 5.4rem;
				line-height: 7.0rem;
			}

			span {
				display: inline-block;
				opacity: 0;
				transform: translateY(140px);
			}
		}

		ul.js-slick {
			list-style-type: none;
			height: 90%;

			li.slick-slide {
				/*position: absolute;
				left: 0;
				top: 0;
				width: 100%;
				height: 100%;*/
				z-index: 5;
				overflow: hidden;
				max-height: 90vh;
				text-align: center;

				@media screen and (min-width: 1100px) {
					max-height: 100vh;
				}

				img {
					
				}
			}
		}
	}

	/**
	 * section.about
	 */
	section.about {
		color: var(--primary-color);
		text-align: center;
		margin-bottom: 27.0rem;
		padding: 12.0rem 4% 13.0rem;

		background-image: url('../img/object-01.webp');
		background-position: 0 bottom;
		background-repeat: repeat-x;
		animation: text-bg 60s infinite linear;

		@media screen and (min-width: 1100px) {
			padding: 12.0rem 0 13.0rem;
		}

		h2 {
			font-size: 3.0rem;
			margin-bottom: 8.0rem;

			@media screen and (min-width: 1100px) {
				font-size: 3.9rem;
			}

			&::before {
				display: none;
			}
		}
		p {
			font-size: 2.2rem;
			line-height: 4.3rem;

			br {
				display: none;

				@media screen and (min-width: 1100px) {
					display: inline;
				}
			}
		}
	}

	/**
	 * section.business
	 */
	section.business {
		margin-bottom: 18.0rem;

		h2 {
			margin-bottom: 10.0rem;
		}
		ul {
			display: flex;
			flex-wrap: wrap;

			li {
				flex-basis: 100%;
				margin-bottom: 100px;

				@media screen and (min-width: 1100px) {
					flex-basis: calc((100% - 90px) / 3);

					&:nth-of-type(3n - 1) {
						margin: 0 45px;
					}
				}

				&.noimage a {
					border-bottom: 2px solid var(--tertiary-color);
				}

				> a {
					display: flex;
					flex-wrap: wrap;
					justify-content: center;

					p {
						position: relative;
						flex-basis: 100%;


						&.label {
							color: var(--primary-color);
							font-size: 2.6rem;
							font-weight: 600;
							order: 2;
							margin-bottom: 1.7rem;

							@media screen and (min-width: 1100px) {
								min-height: 8.4rem;
								font-size: 2.9rem;
							}

							span {
								font-size: 2.0rem;
							}

							i {
								position: absolute;
								right: 1.0rem;
								top: 0.4rem;
								font-size: 3.6rem;
								line-height: 1.0;
							}
						}
						&.image {
							order: 1;
							max-width: 336px;
							max-height: 291px;
							border-radius: 1.5rem;
							overflow: hidden;
							margin-bottom: 2.4rem;

							img {
								transition: 0.3s;
							}
						}
						&.description {
							line-height: 2.9rem;
							order: 3;
						}
					}

					&:hover img {
						transform: scale(1.1);
					}
				}
			}
		}

		p.link {
			margin: 11.0rem 4% 0;
			color: #505050;
			background: linear-gradient(to left, #b9d9be 0%, #d7e6da 100%);
			border-radius: 1.5rem;

			@media screen and (min-width: 1100px) {
				margin: 6.0rem 11.0rem 0;
			}

			a {
				display: block;
				border-radius: 1.5rem;
				font-size: 2.0rem;
				padding: 3.0rem;
				background-image: url(../img/business/fukase-bg.png);
				background-position: right bottom;
				background-repeat: no-repeat;
				background-size: 40%;

				@media screen and (min-width: 1100px) {
					padding: 3.0rem 6.0rem;
					background-size: 25%;
				}

				span {
					font-size: 2.8rem;
					line-height: 5.2rem;
					font-weight: 600;
					display: block;
					margin-bottom: 10px;

					@media screen and (min-width: 1100px) {
						font-size: 3.5rem;
						margin-bottom: 0;
					}
				}
				b {
					display: block;
					color: #1da081;
					font-family: "Shippori Mincho", serif;
					font-size: 4.3rem;
					line-height: 7.2rem;
					font-weight: 500;
				}
			}
		}
	}

	/**
	 * section.company
	 */
	section.company {
		margin-bottom: 18.5rem;
		padding-bottom: 32.0rem;

		background-image: url('../img/object-02.webp');
		background-position: bottom right;
		background-repeat: no-repeat;

		h2 {
			margin-bottom: 9.0rem;
		}
		ul {
			color: var(--primary-color);
			font-size: 2.6rem;
			line-height: 8.0rem;
			font-weight: 600;
			width: 100%;

			@media screen and (min-width: 1100px) {
				width: 440px;
				font-size: 2.9rem;
			}

			li {
				border-bottom: 2px solid var(--tertiary-color);
				position: relative;

				a {
					display: block;
				}

				i {
					position: absolute;
					right: 0.8rem;
					top: 0;
					bottom: 0;
					font-size: 3.2rem;
					line-height: 1.0;
					display: flex;
					align-items: center;
				}
			}
		}
	}

	/**
	 * section.recruit
	 */
	section.recruit {
		color: #ffffff;
		background-image: url(../img/recruit-sm.webp);
		background-size: auto 93%;
		background-repeat: no-repeat;
		background-position: center center;
		border-radius: 40px;
		text-align: center;
		font-size: 2.2rem;
		margin: 0 4% 31.0rem;
		width: auto;
		position: relative;
		overflow: hidden;

		@media screen and (min-width: 1100px) {
			background-image: url(../img/recruit.webp);
			background-size: 93%;
			width: 1100px;
			margin: 0 auto 31.0rem;
		}

		&::after {
			position: absolute;
			top: 0;
			left: 0;
			content: "";
			display: block;
			width: 100%;
			height: 100%;
			background-image: linear-gradient(to left, #0070bd 0%, #0070bd 15%, #77b2e6, #0070bd 85%, #0070bd 100%);
			z-index: -1;
		}

		a {
			display: block;
			padding: 120px 4% 90px;

			@media screen and (min-width: 1100px) {
				padding: 120px 0 90px;
			}

			h2 {
				color: inherit;

				> span.sub {
					font-size: 6.6rem;
				}

				&::before {
					display: none;
				}
			}

			p {
				margin-top: 40px;

				&.link {
					font-size: 2.0rem;

					i {
						font-size: 4rem;
						line-height: 1.0;
						color: var(--primary-color);
						vertical-align: sub;
					}
				}
			}
		}
	}

	/**
	 * section.news
	 */
	section.news {
		margin-bottom: 21.0rem;

		h2 {
			margin-bottom: 8.0rem;
		}

		dl {
			border-top: 2px solid var(--tertiary-color);
			display: flex;
			flex-wrap: wrap;
			padding: 0;

			dt, dd {
				@media screen and (min-width: 1100px) {
					padding: 50px 0;
				}
			}
			dt {
				flex-basis: 100%;
				font-size: 2.2rem;
				color: var(--primary-color);
				font-weight: 500;
				padding-top: 2.0rem;

				@media screen and (min-width: 1100px) {
					flex-basis: 200px;
					border-bottom: 2px solid var(--tertiary-color);
					text-align: center;
					padding-top: 50px;
				}
			}
			dd {
				flex-basis: 100%;
				font-size: 2.1rem;
				border-bottom: 2px solid var(--tertiary-color);
				padding-bottom: 2.0rem;

				@media screen and (min-width: 1100px) {
					flex-basis: calc(100% - 200px);
					padding-bottom: 50px;
					padding-left: 70px;
				}
			}
		}
	}
}

/**
 * seconary
 */
body.secondary {
	background-image: url(../img/visual-bg.webp);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: auto 60vh;

	@media screen and (min-width: 1100px) {
		background-size: contain;
	}

	header {
		nav {
			ul {
				color: var(--primary-color);
			}
		}
	}

	main {
		padding-bottom: 180px;

		div.visual {
			padding-top: 25vh;

			@media screen and (min-width: 1100px) {
				min-height: 500px;
				padding-top: 190px;
			}

			h1 {
				font-size: 2.4rem;
				font-weight: 600;
				color: var(--primary-color);
				letter-spacing: 1.5px;
				line-height: 1.1;
				position: relative;
				margin-bottom: 35vh;

				@media screen and (min-width: 1100px) {
					margin-bottom: 0;
					font-size: 3.1rem;
				}

				span {
					font-size: 5.5rem;
					display: block;

					@media screen and (min-width: 1100px) {
						font-size: 7.9rem;
					}
				}
			}

			&::before {
				content: "";
				border-top: 2px solid var(--primary-color);
				position: relative;
				width: 50vw;
				display: block;
				left: -51vw;
				top: 2.0rem;
			}
		}

		> section {
			margin-top: 16.0rem;

			@media screen and (min-width: 1100px) {
				margin-top: 22.0rem;
			}

			h2 {
				color: var(--primary-color);
				font-size: 3.1rem;
				font-weight: 600;
				line-height: 9.2rem;
				margin-bottom: 6.0rem;

				background-position: left 80px center;
				background-repeat: no-repeat;

				@media screen and (min-width: 1100px) {
					margin-bottom: 8.0rem;
				}
			}
			p {
				line-height: 3.1rem;
			}
		}
	}
}

/**
 * company
 */
body.company {
	background-image: url(../img/company/title.webp);

	section.message {
		h2 {
			background-image: url(../img/company/object-02.webp);
		}

		div.signature {
			margin-top: 5.0rem;
			display: flex;
			flex-wrap: wrap;
			justify-content: flex-end;

			@media screen and (min-width: 1100px) {
				justify-content: space-between;
			}

			p {
				margin-bottom: 20px;

				@media screen and (min-width: 1100px) {
					margin-bottom: 0;
				}
			}
		}
	}
	section.about {
		h2 {
			background-image: url(../img/company/object-03.webp);
		}
	}
	section.works {
		h2 {
			background-image: url(../img/company/object-04.webp);
			margin-bottom: 3.0rem;

			@media screen and (min-width: 1100px) {
				margin-bottom: 6.0rem;
			}
		}
		table {
			width: 100%;
			border-collapse: collapse;

			tr {
				display: block;

				@media screen and (min-width: 1100px) {
					display: table-row;
				}
			}

			thead {
				display: none;

				@media screen and (min-width: 1100px) {
					display: table-header-group;
				}

				th {
					color: var(--primary-color);
					font-size: 2.7rem;
					padding: 0 0 3.0rem 2.0rem;
					text-align: left;

					&:nth-of-type(1) {
						padding-left: 0;
					}
				}
			}
			tbody {
				td {
					padding: 0 0 2.0rem 2.0rem;
					border-left: 1px solid var(--tertiary-color);
					display: block;
					vertical-align: top;

					@media screen and (min-width: 1100px) {
						display: table-cell;
					}

					&.annual {
						color: var(--primary-color);
						padding-left: 0;
						border-left: none;
						margin-top: 25px;
						width: 100%;

						@media screen and (min-width: 1100px) {
							width: 12.8rem;
						}
					}
					&.name {
						width: 100%;

						@media screen and (min-width: 1100px) {
							width: 39.4rem;
						}
					}
					&.description {
						padding-left: 4.5rem;
						width: 100%;

						@media screen and (min-width: 1100px) {
							padding-left: 2.0rem;
							width: auto;
						}
					}
				}
			}
		}
	}
	section.policy {
		h2 {
			background-image: url(../img/company/object-05.webp);
		}
		ul {
			li {
				display: flex;
				flex-wrap: wrap;
				margin-top: 3.6rem;
				background-color: var(--blue-color);
				border-radius: 1.5rem;
				padding: 0 4% 4.0rem;

				@media screen and (min-width: 1100px) {
					flex-wrap: nowrap;
					padding: 0;
				}

				p {
					&:nth-of-type(1) {
						flex-basis: 100%;
						font-size: 2.7rem;
						line-height: 4.1rem;
						color: var(--primary-color);
						align-content: center;
						text-align: center;
						border-bottom: 3px dotted var(--primary-color);
						padding: 3.0rem 0;
						margin-bottom: 3.0rem;

						@media screen and (min-width: 1100px) {
							flex-basis: 25.0rem;
							border-right: 3px dotted var(--primary-color);
							border-bottom: none;
							padding: 0;
							margin: 3.0rem 0;
						}

						br {
							display: none;

							@media screen and (min-width: 1100px) {
								display: inline;
							}
						}
					}
					&:nth-of-type(2) {
						flex-basis: 100%;

						@media screen and (min-width: 1100px) {
							flex-basis: calc(100% - 25.0rem);
							padding: 5.0rem 4.0rem;
						}
					}
				}
			}
		}
		> p {
			margin: 6.0rem 0 0;
			color: var(--primary-color);
			text-align: center;

			@media screen and (min-width: 1100px) {
				margin: 6.0rem 0 0;
				text-align: left;
			}

			a {
				display: inline-block;
				border: 2px solid var(--primary-color);
				border-radius: 1.5rem;
				font-size: 2.4rem;
				line-height: 5.2rem;
				font-weight: 600;
				padding: 3.0rem;
				text-align: center;

				@media screen and (min-width: 1100px) {
					padding: 2.4rem 6.0rem;
					font-size: 3.0rem;
				}
			}
		}
	}
}

/**
 * business
 */
body.business {
	background-image: url(../img/business/title.webp);

	main {
		padding-bottom: 0;

		> p {
			margin-top: 16.0rem;
			font-weight: 600;
			font-size: 2.6rem;
			text-align: center;
			color: var(--primary-color);
			letter-spacing: 2px;

			@media screen and (min-width: 1100px) {
				margin-top: 22.0rem;
			}
		}
	}
	section.flow {
		h2 {
			background-image: url(../img/business/object-02.webp);
		}
		ol {
			display: flex;
			flex-wrap: wrap;

			li {
				flex-basis: 100%;
				background-color: var(--primary-color);
				color: var(--white-color);
				text-align: center;
				padding: 4.0rem 4% 3.0rem;
				border-radius: 1.5rem;
				position: relative;
				margin-bottom: 4.0rem;

				@media screen and (min-width: 1100px) {
					flex-basis: calc((100% - 120px) / 4);
					margin-left: 4.0rem;
					margin-bottom: 0;
					padding: 4.0rem 0 3.0rem;
				}

				&::before {
					position: absolute;
					content: "";
					width: 4.0rem;
					height: 4.0rem;
					display: block;
					background-image: url(../img/business/object-04.webp);
					background-repeat: no-repeat;
					background-position: center center;
					transform: rotate(90deg);
					top: -4.0rem;
					right: 0;
					left: 0;
					margin: 0 auto;

					@media screen and (min-width: 1100px) {
						height: 100%;
						transform: none;
						top: 0;
						right: unset;
						left: -4.0rem;
					}
				}

				&:nth-of-type(1) {
					margin-left: 0;

					&::before {
						content: none;
					}
				}

				p {
					&:nth-of-type(1) {
						margin-bottom: 5.0rem;
					}
					&:nth-of-type(2) {
						font-size: 2.1rem;
						margin-bottom: 2.0rem;
					}
					&:nth-of-type(3) {
						br {
							display: none;

							@media screen and (min-width: 1100px) {
								display: inline;
							}
						}
					}
				}
			}
		}
	}
	section.business {
		h2 {
			background-image: url(../img/business/object-03.webp);
		}

		> section {
			margin-bottom: 8.0rem;

			h3 {
				font-size: 3.5rem;
				color: var(--primary-color);
				margin-bottom: 4.0rem;
			}
			> div {
				font-size: 2.0rem;
				line-height: 3.4rem;
				display: flex;
				flex-wrap: wrap;

				p {
					flex-basis: 100%;

					@media screen and (min-width: 1100px) {
						flex-basis: 50%;
					}

					&:nth-of-type(1) {
						margin-bottom: 25px;

						@media screen and (min-width: 1100px) {
							padding-right: 1%;
							margin-bottom: 0;
						}
					}
					&:nth-of-type(2) {
						@media screen and (min-width: 1100px) {
							padding-left: 4.0rem;
							padding-left: 1%;
						}

						img {
							border-radius: 2.0rem;
						}
					}
				}
			}
		}

		aside.link {
			margin: 16.0rem 0 0;
			border-radius: 1.5rem;
			background: linear-gradient(to left, #b9d9be 0%, #d7e6da 100%);

			@media screen and (min-width: 1100px) {
				margin: 22.0rem 11.0rem 0;
			}

			> div {
				background-image: url(../img/business/fukase-bg.png);
				background-position: right bottom;
				background-repeat: no-repeat;
				background-size: 50%;
				padding: 3.0rem 4%;

				@media screen and (min-width: 1100px) {
					background-size: 30%;
					padding: 3.0rem 5.5rem 5.0rem;
				}
			}

			p.label {
				font-size: 2.0rem;

				span {
					font-size: 2.8rem;
					line-height: 5.2rem;
					font-weight: 600;
					display: block;
					margin-bottom: 10px;
					color: #505050;

					@media screen and (min-width: 1100px) {
						margin-bottom: 0;
						font-size: 3.5rem;
					}
				}
			}
			h3 {
				color: #1da081;
				font-family: "Shippori Mincho", serif;
				font-size: 4.3rem;
				font-weight: 500;
				margin-bottom: 3.0rem;
			}
			ul {
				font-size: 2.0rem;
				padding: 2.0rem;
				margin-bottom: 2.0rem;
				border-bottom: 1px solid #000000;
			}
			table {
				margin: 0 2.0rem 5.0rem;

				th, td {
					text-align: left;

					@media screen and (min-width: 1100px) {
						width: 28.0rem;
					}
				}
				th {
					font-size: 2.0rem;
					color: #1da081;
					font-weight: 600;
					padding-bottom: 1.0rem;

					@media screen and (min-width: 1100px) {
						font-size: 2.2rem;
					}
				}
				td {
					@media screen and (min-width: 1100px) {
						font-size: 2.0rem;
					}
				}
				a {
					text-decoration: underline;
				}
			}
			p.button {
				text-align: center;

				@media screen and (min-width: 1100px) {
					text-align: left;
				}

				a {
					display: inline-block;
					background-color: #1ca080;
					color: #ffffff;
					border-radius: 1.0rem;
					padding: 2.0rem 7.0rem 2.0rem 4.0rem;
					font-size: 2.2rem;
					letter-spacing: 1px;
					position: relative;

					@media screen and (min-width: 1100px) {
						padding: 2.0rem 11.0rem 2.0rem 4.0rem;
						font-size: 2.4rem;
					}

					i {
						position: absolute;
						right: 2.0rem;
						font-size: 2.8rem;
					}
				}
			}
		}
	}
	> div.contact {
		background-color: var(--blue-color);
		margin-top: 22.0rem;

		p {
			padding: 7.0rem 0;

			a {
				display: block;
				border-radius: 1.5rem;
				font-size: 2.2rem;
				padding: 3.0rem;
				margin: 0 4%;
				background: linear-gradient(to left, #0070bd 0%, #0070bd 15%, #77b2e6, #0070bd 85%, #0070bd 100%);
				color: var(--white-color);
				text-align: center;

				@media screen and (min-width: 1100px) {
					padding: 3.0rem 6.0rem;
					margin: 0 11.0rem;
				}

				> span {
					display: block;
					width: 32.0rem;
					margin: 0 auto;
					text-align: left;
					letter-spacing: 3px;

					b {
						display: block;
						font-size: 4.5rem;
						line-height: 4.5rem;
					}

					span {
						display: flex;
						justify-content: center;
						align-items: center;
						border: 2px solid #ffffff;
						border-radius: 3.5rem;
						width: 6.5rem;
						height: 6.5rem;
						float: left;
						margin-right: 1.6rem;
						margin-top: 10px;
					}

					i {
						font-size: 3.5rem;
					}
				}
			}
		}
	}
}
/**
 * recruit
 */
body.recruit {
	background-image: url(../img/recruit/title.webp);

	section.recruit {
		text-align: center;

		p {
			font-size: 2.2rem;
			line-height: 4.3rem;
			color: var(--primary-color);
		}
	}

	section.description {
		margin-top: 16.0rem;

		@media screen and (min-width: 1100px) {
			margin-top: 22.0rem;
		}

		h2 {
			background-image: url(../img/recruit/object-02.webp);
			margin-bottom: 4.0rem;
		}
	}
}

/**
 * contact
 */
body.contact {
	form {
		margin-top: 22.0rem;

		@media screen and (min-width: 1100px) {
			padding: 0 80px;
		}

		dl {
			display: flex;
			flex-wrap: wrap;
			font-size: 2.0rem;

			dt, dd {
				&.vertical-max {
					flex-basis: 100%;
					padding: 7px 0;
				}
			}
			dt {
				flex-basis: 100%;
				color: var(--primary-color);
				padding: 14px 0;

				@media screen and (min-width: 1100px) {
					flex-basis: 270px;
				}

				&.vertical-max {
					margin-top: 9.0rem;
					color: var(--font-color);
				}

				span.required {
					display: inline-block;
					background-color: #ff0000;
					color: #ffffff;
					font-size: 1.6rem;
					padding: 0 0.8rem;
					border-radius: 1.5rem;
					margin-left: 0.6rem;
				}
			}
			dd {
				flex-basis: 100%;
				padding: 0 0 14px 0;

				@media screen and (min-width: 1100px) {
					flex-basis: calc(100% - 270px);
					padding: 14px 0;
				}

				&.vertical-max {
					text-align: center;

					> div {
						border: 1px solid var(--tertiary-color);
						border-radius: 5px;
						padding: 1.0rem;
						margin-bottom: 1.4rem;
						text-align: left;
					}
				}

				a {
					color: var(--primary-color);
					text-decoration: underline;
				}
			}
		}

		input[type=text], input[type=email], input[type=tel]
		, select, textarea {
			border: 1px solid var(--tertiary-color);
			border-radius: 5px;
			font-size: 1.8rem;
			padding: 1.0rem;

			&.input-max {
				width: 100%;
			}
		}
		input[type="checkbox"] {
			border: 1px solid var(--tertiary-color);
			border-radius: 5px;
		}

		> p {
			text-align: center;
			margin-top: 9.0rem;

			span {
				display: inline-block;
				position: relative;

				input[type="submit"] {
					border: none;
					border-radius: 50px;
					background-color: var(--primary-color);
					color: #ffffff;
					display: inline-block;
					padding: 3.0rem 0;
					min-width: 37.0rem;
					font-family: inherit;
					font-size: 2.2rem;
					letter-spacing: 2.0px;
					cursor: pointer;
					position: relative;
					background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" fill="%23ffffff" class="bi bi-play-circle-fill" viewBox="0 0 16 16"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M6.79 5.093A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814z"/></svg>');
					background-position: right 2.0rem center;
					background-repeat: no-repeat;
					background-size: 5.0rem 5.0rem;
				}

				i {
				}
			}
		}
	}
}

/**
 * privacy
 */
body.privacy {
	main {
		section {
			margin-bottom: 3.0rem;
			line-height: 3.4rem;
		}
		h2 {
			font-size: 2.2rem;
			color: var(--primary-color);
			margin-bottom: 1.0rem;
		}
		p {
			margin-bottom: 1.5rem;
		}
		ol {
			margin-bottom: 1.5rem;
			list-style-type: decimal;
			padding-left: 3.0rem;
		}
	}
}