@charset "utf-8";
/* ----------------------------------------------------------------------------------------------
setup
---------------------------------------------------------------------------------------------- */

*,
::before,
::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-display: swap;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: inherit;
	font-weight: inherit;
	margin: 0;
}

a {
	background-color: transparent;
	text-decoration: none;
	color: #e73828;
	transition: all 0.3s;
}

a:hover,
a:active {
	opacity: 0.7;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

img {
	-webkit-backface-visibility: hidden;
	vertical-align: bottom;
	max-width: 100%;
}

/* ----------------------------------------------------------------------------------------------
MARK:common
---------------------------------------------------------------------------------------------- */
html {
	font-size: 62.5%; /* 16px x 0.625 = 10px(=1rem) */
}

body {
	font-size: 1.8rem;
	font-family: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Helvetica Neue',
		'Helvetica', 'Arial', 'Meiryo', sans-serif;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.8;
	color: #000;
	font-feature-settings: 'palt' 1;
	-webkit-font-feature-settings: 'palt';
}

section {
	position: relative;
}

.all-wrap {
	position: relative;
	width: 100%;
	overflow-x: hidden;
	background-color: #00b19d;
}

.sp_only {
	display: none !important;
}

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

.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.container {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding: 0 20px;
	position: relative;
}

.flex_box {
	display: flex;
}

.flex_box > * {
	min-width: 0;
}

.flex_column {
	flex-direction: column;
}

.col-left {
	order: 1;
	min-width: 0;
}

.col-right {
	order: 2;
	min-width: 0;
}

.btn {
	display: inline-block;
	text-align: center;
	letter-spacing: 0.2em;
	padding: 0.5em;
	transition: all 0.5s;
}

.btn:hover {
	opacity: 0.7;
}

.section_head h3 {
	font-size: 3.3rem;
	margin-bottom: 0.5rem;
}

.box_rounded {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #fff;
	border-radius: 90px;
	padding: 50px;
	margin: 1.5em 0 3em;
}

.box_rounded .box_txt {
	padding-right: 30px;
}

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

/* --------------------------------------------------------------------
MARK: footer
---------------------------------------------------------------------------------------------- */

.footer {
	position: relative;
	padding-top: 80px;
	color: #fff;
}

.footer .contact {
	margin: 0 auto;
	background: #fff;
	color: #00b19d;
	padding: 5px 10px;
	text-align: center;
	font-size: 1.7rem;
	border-radius: 50em;
	font-weight: 500;
}

.footer .contact a {
	color: inherit;
}

.footer .contact span {
	display: inline-block;
	background: url(../images/icon_ex.png) no-repeat;
	background-size: contain;
	width: 0.8em;
	height: 0.8em;
	vertical-align: baseline;
}

.footer h5 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	font-size: 2rem;
	font-weight: 600;
	margin-block: 30px 10px;
}

.footer h5 span {
	display: block;
	background: #fff;
	border-radius: 10px;
	padding: 7px;
	width: 55px;
}

.footer .flex_box {
	align-items: center;
	justify-content: center;
	gap: 10px 40px;
}

.footer .tell {
	font-size: 3rem;
	font-weight: 600;
}

.footer .tell span {
	display: inline-block;
	background: url(../images/icon_tell.svg) no-repeat;
	background-size: contain;
	width: 1.5em;
	height: 1.5em;
	vertical-align: middle;
	padding-bottom: 5px;
	margin-right: 15px;
}

.footer .address {
	font-size: 1.6rem;
}

.footer-copyright {
	font-size: 1.2rem;
	padding: 8rem 0 3rem;
}

/* --------------------------------------------------------------------
top
---------------------------------------------------------------------------------------------- */

main {
	height: 100%;
}

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

/* ----------------------------
MARK: mv
------------------------------- */

.top_sendai {
	position: absolute;
	top: 40px;
	left: 50px;
	width: clamp(76px, calc(137vw / 19), 137px);
	z-index: 100;
}

.top_sendai img {
	filter: drop-shadow(0px 0px 11px rgba(0, 109, 127, 0.2));
}

.mv_wrap {
	position: relative;
	background-image: url(../images/mv_bg.jpg);
	background-repeat: no-repeat;
	background-position: bottom;
	background-size: cover;
	padding-top: 20px;
}

.top-mv {
	position: relative;
}

.mv-ttl {
	position: relative;
	margin-inline: auto;
}

.mv-bottom {
	position: absolute;
	bottom: 4%;
	right: 15%;
}

.soudan_btn {
	width: 9vw;
}

/* ----------------------------
MARK: content
------------------------------- */

#section01 {
	background: #238271;
}

.section_lead {
	background: #d7f1ee;
	border-radius: 10vw 10vw 0 0;
	padding: 7rem 0 2rem;
}

#section01 .ttl {
	max-width: 480px;
	line-height: 1;
	margin-inline: auto;
}

.section_lead .illust {
	margin-top: 4rem;
	gap: 40px 90px;
}

#section02 {
	margin-top: -1px;
}

.section_main_lead {
	background: #a1e1da;
	padding-top: 15%;
}

.custom-shape-divider-top-1719916299 {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
	line-height: 0;
}

.custom-shape-divider-top-1719916299 svg {
	position: relative;
	display: block;
	width: calc(100% + 1.3px);
	height: min(13vw, 150px);
	filter: drop-shadow(0px 3px 4px rgba(62, 58, 57, 0.1));
}

.custom-shape-divider-top-1719916299 .shape-fill {
	fill: #d7f1ee;
}

.section_main_lead .ttl img {
	max-width: 505px;
}

.section_main_lead .lead_txt {
	margin-top: 4rem;
	font-weight: 500;
}

.section_main_lead .illust {
	margin-top: 2rem;
}

.section_main_lead .illust img {
	max-width: 465px;
}

.section_structure {
	background: #a1e1da;
}

.structure-ttl {
	background: #59bbaa;
	border-radius: 10vw 10vw 0 0;
	padding: 9rem 0;
}

.structure-ttl h3 {
	max-width: 684px;
	margin-inline: auto;
}

.section_structure .inner {
	background: #fff;
	background-image: url(../images/wave.png);
	background-repeat: repeat-x;
	background-size: 17%;
	background-position: 0 0;
	padding: 7rem 0 8rem;
	margin-top: -1px;
}

.section_structure .inner h3 {
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin-bottom: 4rem;
}

.section_structure .inner img {
	display: block;
	max-width: 755px;
	margin-inline: auto;
}

.section_structure .note {
	margin-top: 1.5rem;
	font-size: 12px;
	margin-bottom: 5rem;
}

.btn-wrap {
	text-align: center;
}

.btn-wrap .btn {
	position: relative;
	display: inline-block;
	padding: 0.8em 4em;
	background-color: #f29600;
	box-shadow: 0 8px 0 #b57920;
	border-radius: 50em;
	color: #fff;
	cursor: pointer;
	text-decoration: none;
	letter-spacing: 0.1em;
	font-size: 24px;
	font-weight: 500;
}

.btn-wrap .btn span {
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	width: 0.8em;
}

.btn-wrap .btn span img {
	display: block;
}

.section_merit .merit-ttl {
	background: #d35a37;
	padding: 5rem 0;
}
.section_merit .merit-ttl img {
	max-width: 478px;
}

.section_merit {
	background: #f0ccc1;
	padding-bottom: 30px;
}

.merit-list {
	padding-inline: 20px;
	margin-bottom: 50px;
}

.merit-list.text-center {
	margin-top: 6rem;
}

.example {
	margin-block: 3rem 5rem;
	background: #fff;
	border-radius: 30px;
	padding: 45px;
}

.example h4 {
	font-size: 2.2rem;
	font-weight: 900;
	background: #fbe1df;
	border-radius: 50em;
	padding: 5px 0;
}

.profile {
	margin: 30px auto 0;
	gap: 30px;
}

.profile .illust {
	width: 90px;
}

.profile .explanation {
	flex: 1;
}

.explanation p span {
	color: #e73828;
}

.sub_info.flex_box {
	margin-top: 30px;
}
.image_table {
	flex-basis: 57%;
	padding-right: 30px;
}
.summary {
	flex: 1;
	font-size: 1.6rem;
	line-height: 1.5;
}

.summary .flex_box {
	align-items: stretch;
	flex-direction: column;
	gap: 15px;
}

.summary .flex_box p {
	font-weight: 500;
	font-size: 14px;
}

.conditions {
	color: #fff;
	background: #e73828;
	border-radius: 50em;
	text-align: center;
	padding: 5px 5px;
}

.example p.indent1em {
	margin-top: 15px;
	font-size: 1.6rem;
}

#section04 {
	background: #f9ede9;
	margin-top: -1px;
	filter: blur(0);
}

#section04 .custom-shape-divider-top-1719916299 .shape-fill {
	fill: #f0ccc1;
}

.section_introduction {
	padding-top: 15%;
	padding-bottom: 100px;
}

.introduction-ttl h3 {
	font-size: 3.6rem;
	font-weight: 800;
}

.introduction-list li {
	display: flex;
	align-items: center;
	column-gap: 45px;
	font-size: 2.2rem;
	position: relative;
	padding: 40px 60px;
	background: #fff;
	border-radius: 40px;
	margin-top: 100px;
	filter: drop-shadow(2px 2px 3px rgba(62, 58, 57, 0.15));
}
.introduction-list li:nth-child(1) {
	margin-top: 80px;
}
.introduction-list li::before {
	position: absolute;
	top: -0.95em;
	left: 50%;
	transform: translateX(-50%);
	display: block;
	text-align: center;
	background-color: #e73828;
	color: #fff;
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1;
	padding: 10px 30px;
	border-radius: 50em;
}
.introduction-list li:nth-child(1):before {
	content: 'STEP 1';
}
.introduction-list li:nth-child(2):before {
	content: 'STEP 2';
}
.introduction-list li:nth-child(3):before {
	content: 'STEP 3';
}
.introduction-list li:nth-child(4):before {
	content: 'STEP 4';
}

.introduction-list li::after {
	content: '';
	display: block;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	width: clamp(36px, 7vw, 90px);
	height: 100%;
	background-image: url(../images/triangle.svg);
	background-size: contain;
	background-position: 0 0;
	background-repeat: no-repeat;
}
.introduction-list li:nth-child(4)::after {
	content: none;
}

.introduction-list li .txt {
	flex: 1;
}

.introduction-list li .ttl {
	font-size: 2.8rem;
	font-weight: 700;
	margin-bottom: 2rem;
}

.introduction-list li .ttl + p {
	letter-spacing: normal;
}

.introduction-list li .icon {
	width: 175px;
}

.btn_consultation {
	margin-top: 90px;
}

.btn_consultation .btn {
	color: #fff;
	background: #e73828;
	border-radius: 50em;
	font-size: 3rem;
	font-weight: 500;
	position: relative;
	padding: 35px 15% 35px;
	letter-spacing: 0.1em;
}

.btn_consultation .btn span {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	display: inline-block;
	background: url(../images/arrow.png) no-repeat;
	background-size: contain;
	width: 2em;
	height: 2em;
}

.btn_consultation .btn:hover {
	opacity: 1;
}

.service-ttl {
	background: #59bbaa;
	padding: 55px 0;
}

.service-ttl img {
	width: max(223px, 45%);
}

.contact {
	color: #fff;
	font-weight: 700;
	font-size: 24px;
	margin-block: 40px 60px;
}

.contact a {
	color: #fff;
	text-decoration: underline;
}

.section_footer {
	background: #fff;
	font-size: 2rem;
	border-radius: 0 0 10vw 10vw;
	padding: 90px 0;
}

.section_footer .illust {
	margin-top: 60px;
}

/* ----------------------------
toTop
------------------------------- */
.btn_toTop {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	padding: 0;
}

.button-020 {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 50px;
	height: 50px;
	border: none;
	border-radius: 50%;
	background-color: #e83829;
	cursor: pointer;
}

.co2 {
	font-size: 70%;
}

/* ----------------------------
MARK: responsive
------------------------------- */
@media (max-width: 960px) {
	body {
		font-size: 1.6rem;
	}

	.pc_only {
		display: none !important;
	}

	.sp_only {
		display: block !important;
	}

	.container {
		padding: 0 20px;
	}

	/* ----------------------------
	MARK: MV
	------------------------------- */
	.top_sendai {
		position: absolute;
		top: 10px;
		left: 10px;
		width: clamp(61px, calc(137vw / 19), 137px);
	}

	.top-mv {
		padding: 0;
		margin-bottom: -1px;
	}

	.section_lead {
		padding: 4rem 0 2rem;
	}

	#section01 .ttl {
		width: 85%;
	}

	.section_main_lead .lead_txt {
		font-size: 18px;
	}

	.section_lead .illust {
		flex-direction: column;
		margin-top: 3rem;
		gap: 20px 90px;
		padding: 0 30px;
	}

	.section_main_lead {
		padding-top: 25%;
	}

	.section_main_lead .ttl img {
		max-width: 100%;
	}

	.section_main_lead .illust {
		margin-top: 3rem;
		padding: 0 10px;
	}

	.structure-ttl {
		padding: 5rem 0 3rem;
	}

	.section_structure .inner {
		background-size: 31%;
		padding: 4rem 0 6rem;
	}

	.section_structure .inner h3 {
		font-size: 24px;
		margin-bottom: 3rem;
	}

	.section_structure .inner .flex_box {
		flex-direction: column;
	}

	.btn-wrap .btn {
		padding: 0.8em 1em;
		font-size: 18px;
		width: 100%;
	}

	.section_merit .merit-ttl img {
		width: 70%;
	}

	.section_merit .merit-ttl {
		padding: 2rem 0 1rem;
	}

	.merit-list {
		padding-inline: 0;
	}

	.merit-sub {
		padding-inline: 20px;
	}

	.merit-list.text-center {
		margin-top: 2rem;
	}

	.example {
		margin-top: 3rem;
		border-radius: 15px;
		padding: 30px 15px;
	}

	.example h4 {
		font-size: 1.8rem;
	}

	.profile {
		flex-direction: column;
		align-items: center;
		margin-top: 25px;
		gap: 15px;
	}

	.illust {
		flex-basis: 40%;
	}

	.explanation p {
		line-height: 1.7;
	}

	.sub_info.flex_box {
		flex-direction: column;
	}

	.image_table {
		padding-right: 0;
	}

	.summary {
		margin-top: 20px;
		font-size: 1.2rem;
	}

	.summary .items p {
		font-size: 1.6rem;
		margin-top: 0;
	}

	.section_introduction {
		padding-top: 18%;
		padding-bottom: 40px;
	}

	.introduction-ttl h3 {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.introduction-list li::before {
		font-size: 1.4rem;
		padding: 6px 20px;
	}
	.introduction-list li:nth-child(1) {
		margin-top: 40px;
	}
	.introduction-list li {
		font-size: 1.5rem;
		column-gap: 15px;
		padding: 20px 15px;
		border-radius: 15px;
		margin-top: 50px;
	}
	.introduction-list li .ttl {
		font-size: 1.6rem;
		margin-bottom: 1rem;
	}

	.introduction-list li .icon {
		width: 65px;
	}

	.introduction-list li .ttl + p {
		font-size: 14px;
	}

	.btn_consultation {
		margin-top: 30px;
	}

	.btn_consultation .btn {
		font-size: 2rem;
		padding: 25px 20%;
		width: 100%;
	}

	.service-ttl {
		padding-block: 35px 50px;
	}

	.service-ttl img {
		width: 100%;
	}

	.contact {
		margin-block: 30px 50px;
		font-size: 18px;
	}

	.attention {
		font-size: 1.2rem;
	}

	.section_footer {
		padding: 30px 0;
	}

	.section_footer p {
		text-align: left;
		font-size: 1.6rem;
	}

	.section_footer p:nth-child(2) {
		margin-top: 2em;
	}

	.section_footer .illust {
		margin-top: 20px;
		text-align: center;
	}

	.section_footer .illust img {
		width: 60%;
	}

	.footer {
		padding-block: 30px 60px;
	}

	.footer .contact {
		font-size: 1.6rem;
	}

	.footer h5 {
		font-size: 1.7rem;
		margin-top: 15px;
	}

	.footer .flex_box {
		flex-direction: column;
		align-items: center;
		margin-top: 1rem;
	}

	.footer .tell {
		font-size: 2.6rem;
	}

	.footer a {
		color: #fff;
		text-decoration: underline;
	}

	.footer-copyright {
		font-size: 1rem;
		padding: 4rem 0 3rem;
	}

	.btn_toTop {
		position: fixed;
		right: 1rem;
		bottom: 7rem;
		padding: 0;
	}

	.button-020 {
		width: 35px;
		height: 35px;
	}

	.sp-soudan .soudan_btn {
		width: 100%;
		position: fixed;
		bottom: 0;
		left: 0;
		text-align: center;
	}

	.sp-soudan .soudan_btn a {
		display: inline-block;
		padding: 13px 2rem;
		width: 100%;
		background: #d35a37;
	}
}
