@charset "utf-8";

body {
	-webkit-text-size-adjust: 100%;
}

/*-----------------------------------------------------------
RESET
-----------------------------------------------------------*/
.h1_section {
	display: none;
}

#contents,
.l-main {
	width: 100%;
	padding-bottom: 0;
}

/*-----------------------------------------------------------
LAYOUT
-----------------------------------------------------------*/
.l-contents * {
    font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "verdana", sans-serif;
}

.l-contents {
	background-color: #fafafa;
}

.l-main {
	background-color: #fff;
	position: relative;
    z-index: 1;
}

/*-----------------------------------------------------------
COMPONENTS
-----------------------------------------------------------*/
.page-inner {
	width: 1140px;
	margin: 0 auto;
}


/*-----------------------------------------------------------
MV
-----------------------------------------------------------*/
.mv h1 {
	width: 100%;
	height: 500px;
}

.mv h1 img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/*-----------------------------------------------------------
CTA
-----------------------------------------------------------*/
.cta {
	padding-block: 60px;
}

.cta__banner {
	width: fit-content;
	margin: 0 auto;
}

/*-----------------------------------------------------------
WORRIES
-----------------------------------------------------------*/
.worries {
	background-color: #f8f8f8;
	padding: 80px 0;
}

.worries__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.worries__title {
	margin: 0;
	font-size: 26px;
	font-weight: bold;
	line-height: 1.5;
	color: #333;
	text-align: center;
}

.worries__title-highlight {
	color: #3d9e38;
}

.worries__title-sub {
	font-size: 14px;
	font-weight: normal;
	line-height: 1.5;
	color: #3d9e38;
	letter-spacing: 3.08px;
	display: block;
    margin-top: 10px;
}

.worries__list {
	display: flex;
	gap: 20px;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.worries__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	width: 270px;
}

.worries__item-image {
	width: 199px;
	height: 199px;
}

.worries__item-image img {
	display: block;
	width: 199px;
	height: 199px;
	object-fit: cover;
	border-radius: 50%;
}

.worries__item-text {
	margin: 0;
	font-size: 18px;
	font-weight: bold;
	line-height: 1.6;
	color: #333;
	text-align: center;
}

.worries-lead {
	position: relative;
	min-height: 420px;
}

.worries-lead::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 2;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 30px solid transparent;
	border-right: 30px solid transparent;
	border-top: 27px solid #f8f8f8;
	border-bottom: 0;
	pointer-events: none;
}

.worries-lead__bg {
	position: absolute;
	inset: 0;
}

.worries-lead__bg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.worries-lead__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	padding: 80px 0;
}

.worries-lead__title {
	margin: 0;
	font-size: 40px;
	font-weight: bold;
	line-height: 1.6;
	color: #fff;
	letter-spacing: 0.8px;
	text-align: center;
	white-space: nowrap;
}

.worries-lead__text {
	margin: 0;
	font-size: 22px;
	font-weight: bold;
	line-height: 2;
	color: #fff;
	text-align: center;
}

/*-----------------------------------------------------------
REASON
-----------------------------------------------------------*/
.reason {
	background: url(../images/bg_reason.webp) no-repeat center center / cover;
	padding: 80px 0;
}

.reason__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.reason__title {
	margin: 0;
	gap: 10px;
	font-size: 26px;
	font-weight: bold;
	line-height: 1.5;
	color: #333;
	text-align: center;
}

.reason__title-number {
	font-size: 30px;
	color: #3d9e38;
}

.reason__title-highlight {
	color: #3d9e38;
}

.reason__title-sub {
	font-size: 14px;
	font-weight: normal;
	line-height: 1.5;
	color: #3d9e38;
	letter-spacing: 3.08px;
	display: block;
    margin-top: 10px;
}

.reason__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.reason__item {
    width: 1140px;
    background-color: #fff;
    border-radius: 10px;
    padding: 20px 30px 20px 20px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.reason__item--reverse {
	flex-direction: row-reverse;
	gap: 30px;
	padding: 20px 30px 20px 0;
}

.reason__item-image {
	width: 439px;
	height: 243px;
	border-radius: 10px;
	overflow: hidden;
	flex: 0 0 auto;
}

.reason__item-image img {
	display: block;
	width: 439px;
	height: 243px;
	object-fit: cover;
}

.reason__item-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 1px;
}

.reason__ribbon {
    margin: 0;
    position: relative;
    width: fit-content;
    background-color: #f85d01;
    color: #f9ffc8;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    padding: 10px 32px 10px 30px;
}

.reason__ribbon::after {
	content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-top: 25px solid transparent;
    border-bottom: 25px solid transparent;
    border-right: 10px solid #fff;
}

.reason__text {
	margin: 0;
	padding-left: 30px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
	color: #263238;
}

/*-----------------------------------------------------------
CONTACT
-----------------------------------------------------------*/
.contact {
	position: relative;
	padding: 80px 0;
}

.contact::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url(../images/bg_contact.webp) no-repeat center bottom / cover;
	z-index: 0;
}

.contact::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(255, 143, 76, 0.3);
	z-index: 0;
}

.contact__inner {
	position: relative;
	z-index: 1;
}

.contact__card {
	width: 1140px;
	margin: 0 auto;
	background-color: #fff;
	border-radius: 10px;
	padding: 50px 0;
	display: flex;
	flex-direction: column;
	gap: 29px;
}

.contact__head {
	display: flex;
	gap: 30px;
	align-items: center;
	justify-content: center;
}

.contact__title {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	font-size: 26px;
	font-weight: bold;
	line-height: 1.5;
	color: #263238;
	text-align: center;
	white-space: nowrap;
	position: relative;
}

.contact__title-sub {
	font-size: 14px;
	font-weight: normal;
	line-height: 1.5;
	color: #3d9e38;
	letter-spacing: 3.08px;
}

.contact__title::after {
	content: "";
	position: absolute;
	top: 0;
	right: -30px;
	width: 1px;
	height: 100%;
	background-color: #FFC2C3;
}

.contact__lead {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	color: #263238;
}

.contact__lead-strong {
	font-weight: 500;
}

.contact__body {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 50px;
}

.contact__phone {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.contact__number {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 42px;
	font-weight: bold;
	line-height: 1;
	letter-spacing: 0.015em;
	color: #383838;
	white-space: nowrap;
}

.contact__tel-icon {
	display: inline-flex;
	width: 38px;
	height: 38px;
}

.contact__tel-icon img {
	display: block;
	width: 38px;
	height: 38px;
}

.contact__note {
	margin: 0;
	font-size: 14px;
	line-height: 1.3;
	color: #383838;
	text-align: center;
	white-space: nowrap;
}

.contact__buttons {
	display: flex;
	gap: 12px;
}

.contact__btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 29px;
	width: 290px;
	height: 60px;
	border: 2px solid transparent;
	border-radius: 9999px;
	box-sizing: border-box;
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	line-height: 1;
	text-decoration: none;
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.contact__btn--mail {
	background-color: #f85d01;
	border-color: #f85d01;
}

.contact__btn--mail:hover {
	opacity: 1;
	background-color: #fff;
	color: #f85d01;
}

.contact__btn--line {
	background-color: #09ba53;
	border-color: #09ba53;
}

.contact__btn--line:hover {
	opacity: 1;
	background-color: #fff;
	color: #09ba53;
}

.contact__btn-arrow {
	position: absolute;
	top: 19px;
	left: 253px;
	width: 21px;
	height: 21px;
	line-height: 0;
}

.contact__btn-arrow svg {
	display: block;
}

.contact__btn-arrow-circle {
	transition: fill 0.3s ease;
}

.contact__btn-arrow-path {
	fill: none;
	transition: stroke 0.3s ease;
}

.contact__btn--mail .contact__btn-arrow-circle {
	fill: #fff;
}

.contact__btn--mail .contact__btn-arrow-path {
	stroke: #f85d01;
}

.contact__btn--mail:hover .contact__btn-arrow-circle {
	fill: #f85d01;
}

.contact__btn--mail:hover .contact__btn-arrow-path {
	stroke: #fff;
}

.contact__btn--line .contact__btn-arrow-circle {
	fill: #fff;
}

.contact__btn--line .contact__btn-arrow-path {
	stroke: #09ba53;
}

.contact__btn--line:hover .contact__btn-arrow-circle {
	fill: #09ba53;
}

.contact__btn--line:hover .contact__btn-arrow-path {
	stroke: #fff;
}

/*-----------------------------------------------------------
BUSINESS
-----------------------------------------------------------*/
.business {
	background-color: #fff;
	padding: 80px 0;
}

.business__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.business__title {
	margin: 0;
	gap: 10px;
	font-size: 26px;
	font-weight: bold;
	line-height: 1.5;
	color: #333;
	text-align: center;
}

.business__title-highlight {
	color: #3d9e38;
}

.business__title-sub {
	font-size: 14px;
	font-weight: normal;
	line-height: 1.5;
	color: #3d9e38;
	letter-spacing: 3.08px;
	display: block;
    margin-top: 10px;
}

.business__content {
	width: 1140px;
	display: flex;
	align-items: center;
	gap: 60px;
}

/* 左：円形図 */
.business__figure {
	width: 482px;
	height: 481px;
	position: relative;
	flex: 0 0 auto;
}

.business__ring {
	position: absolute;
	inset: 0;
}

.business__ring-inner {
    position: absolute;
    top: 7px;
    left: -9px;
    bottom: 0;
    right: 0;
    margin: auto;
    width: 398px;
    height: 398px;
    border-radius: 50%;
    border: 5px solid #D1EEDE;
}

.business__center {
    position: absolute;
    top: -32px;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    width: fit-content;
    height: fit-content;
}

.business__center img {
	display: block;
	width: 209px;
	height: auto;
}

.business__circle {
	position: absolute;
	width: 120px;
	height: 120px;
	border-radius: 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	color: #fff;
	font-weight: bold;
	text-align: center;
}

.business__circle-number {
	font-size: 24px;
	line-height: 1;
	color: #fff;
}

.business__circle-label {
	font-size: 16px;
	line-height: 1.3;
	white-space: nowrap;
	color: #fff;
}

.business__circle-label--multi {
	white-space: normal;
}

.business__circle--01 { left: 180.61px; top: 0.39px; background-color: #3d9e38; }
.business__circle--02 { left: 307.61px; top: 53.39px; background-color: #3c9637; }
.business__circle--03 { left: 360.61px; top: 180.39px; background-color: #398f34; }
.business__circle--04 { left: 307.61px; top: 307.39px; background-color: #378733; }
.business__circle--05 { left: 180.61px; top: 360.39px; background-color: #358231; }
.business__circle--06 { left: 53.61px; top: 307.39px; background-color: #337b2f; }
.business__circle--07 { left: 0.61px; top: 180.39px; background-color: #2f762d; }
.business__circle--08 { left: 53.61px; top: 53.39px; background-color: #2d6e2a; }

/* 右：リスト（SimpleBar） */
.business__list-wrap {
	width: 598px;
	height: 482px;
	overflow: hidden;
}

.business__list {
    max-height: 482px;
    display: flex;
    flex-direction: column;
    gap: 22px;
    padding-right: 35px;
}

.business__list-wrap .simplebar-track.simplebar-vertical {
	right: 0;
	width: 3px;
	background-color: #d9d9d9;
	border-radius: 0;
}

.business__list-wrap .simplebar-scrollbar:before {
	background: #3d9e38;
	opacity: 1;
}

.business__list-wrap .simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
	top: 0;
	bottom: 0;
	left: 0;
	width: 3px;
	border-radius: 0;
	opacity: 1;
	background: #3d9e38;
}

.business__item {
	padding-bottom: 14px;
	border-bottom: 1px solid #e2e2e2;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.business__item:not(:first-child) {
	padding-top: 21px;
}

.business__item-head {
	display: flex;
	align-items: center;
	gap: 7px;
}

.business__point {
	width: 26px;
	height: 26px;
	border-radius: 60px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: #3d9e38;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	line-height: 1;
	flex: 0 0 auto;
}

.business__point--02 { background-color: #3c9637; }
.business__point--03 { background-color: #398f34; }
.business__point--04 { background-color: #378733; }
.business__point--05 { background-color: #358231; }
.business__point--06 { background-color: #337b2f; }
.business__point--07 { background-color: #2f762d; }
.business__point--08 { background-color: #2d6e2a; }

.business__item-title {
	flex: 1 1 auto;
	font-size: 16px;
	font-weight: bold;
	line-height: 1.6;
	color: #1b1b1b;
}

.business__item-text {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	color: #7c7c7c;
}

/*-----------------------------------------------------------
FLOW
-----------------------------------------------------------*/
.flow {
	background-color: #f6fff4;
	padding: 80px 0;
}

.flow__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.flow__title {
	margin: 0;
	gap: 10px;
	font-size: 26px;
	font-weight: bold;
	line-height: 1.5;
	color: #333;
	text-align: center;
}

.flow__title-highlight {
	color: #3d9e38;
}

.flow__title-sub {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 3.08px;
	color: #3d9e38;
	display: block;
    margin-top: 10px;
}

.flow__list {
	width: 1140px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.flow__panel {
	width: 1140px;
	height: 113px;
	position: relative;
	display: flex;
	align-items: center;
	padding-left: 210px;
	border-radius: 10px;
}

.flow__img {
	position: absolute;
	top: 0;
	left: 0;
	width: 237px;
	height: 113px;
	border-radius: 5px;
	overflow: hidden;
}

.flow__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: bottom;
	display: block;
	border-radius: 5px;
}

.flow__panel-body {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
}

.flow__num {
	width: 52px;
	height: 52px;
	border-radius: 9999px;
	background-color: #f85d01;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: bold;
	line-height: 1;
	color: #fff;
	flex: 0 0 auto;
	z-index: 1;
}

.flow__txt {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.flow__panel-title {
	font-size: 20px;
	font-weight: bold;
	line-height: 1.6;
	color: #f85d01;
}

.flow__panel-text {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	color: #2e3142;
}

/*-----------------------------------------------------------
OWNER VOICE
-----------------------------------------------------------*/
.voice {
	background-color: #fff;
	padding: 80px 0;
}

.voice__headline {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.voice__title {
	margin: 0;
	gap: 10px;
	font-size: 26px;
	font-weight: bold;
	line-height: 1.5;
	color: #333;
	text-align: center;
}

.voice__title-highlight {
	color: #3d9e38;
}

.voice__title-sub {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 3.08px;
	color: #3d9e38;
	display: block;
    margin-top: 10px;
}

.voice__slider {
	width: 100%;
	margin-top: 30px;
	overflow: hidden;
}

.voice__swiper {
	width: 100%;
	overflow: hidden;
}

.voice__swiper .swiper-slide {
	width: 319px;
	height: auto;
}

.voice__card {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 10px;
	border-radius: 10px;
}

.voice__card:hover {
	opacity: 1;
}

.voice__card-img {
	width: 100%;
	height: 211px;
	border-radius: 5px;
	overflow: hidden;
}

.voice__card-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.voice__card:hover .voice__card-img img {
	transform: scale(1.05);
}

.voice__card-body {
	display: flex;
	flex-direction: column;
	gap: 5px;
	line-height: 1.6;
	color: #2e3142;
}

.voice__card-name {
	margin: 0;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.voice__card-text {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	height: 52px;
	overflow: hidden;
}

.voice__footer {
	margin-top: 30px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

.voice__pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}

.voice__arrow {
	border: 0;
	padding: 0;
	background: transparent;
	line-height: 1;
	cursor: pointer;
	flex-shrink: 0;
	width: 30px;
	height: 30px;
}

/* Swiper が navigation / pagination に付与するクラスを上書き */
.voice__pager .voice__arrow.swiper-button-prev,
.voice__pager .voice__arrow.swiper-button-next {
	position: static;
	top: auto;
	left: auto;
	right: auto;
	margin: 0;
	width: 30px;
	height: 30px;
	color: transparent;
}

.voice__pager .voice__arrow.swiper-button-prev::after,
.voice__pager .voice__arrow.swiper-button-next::after {
	display: none;
}

.voice__arrow img {
	display: block;
	width: 30px;
	height: 30px;
}

.voice__arrow--prev img {
	transform: rotate(180deg);
}

.voice__pagination {
	position: static;
	width: auto;
	height: 10px;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	flex-shrink: 0;
}

.voice__pagination.swiper-pagination-horizontal {
	width: auto;
	left: auto;
	bottom: auto;
}

.voice__pagination .voice__dot {
	width: 10px;
	height: 10px;
	border-radius: 9999px;
	background-color: #e9f5ee;
	opacity: 1;
	margin: 0;
}

.voice__pagination .voice__dot.is-active {
	background-color: #3d9e38;
}

.voice__arrow.swiper-button-disabled {
	opacity: 0.35;
	cursor: default;
}

.voice__more {
	width: 218px;
	height: 45px;
	border-radius: 9999px;
	background-color: #3d9e38;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	line-height: 1.5;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	position: relative;
}

.voice__more-arrow {
	position: absolute;
	top: 12px;
	left: 185px;
	width: 21px;
	height: 21px;
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.voice__more-arrow img {
	display: block;
	width: 21px;
	height: 21px;
}