/* フレックスボックス */
.row_box {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: center;
	align-items: center;
}

a {
	text-decoration: none;
	cursor: pointer;
}

button {
	cursor: pointer;
}

img {
	display: block;
	width: 100%;
}

html {
	height: 100%;
	overflow-y: auto;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	font-size: 62.5%;
	overflow-x: hidden;
}

body {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 16px;
	/*font-size: 1.5em;*/
	font-weight: 400;
	font-style: normal;
	line-height: 1.5;
	letter-spacing: 0;
	color: #005e3c;
	counter-reset: number 0;
	background: #fff;
	margin: 0 !important;
	width: 100%;
	overflow: hidden;
	box-sizing: border-box;
	position: relative;
	z-index: 999;
	border: 15px solid #00a33e;
}

.contents_inner {
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
}

.en {
	font-family: 'Barlow', sans-serif;
}

.orange {
	color: #e99100;
}

.pc {
	display: block;
}

.sp {
	display: none;
}

.tiny {
	display: none;
}

@keyframes bounceIn {
	0% {
		opacity: 0;
		transform: scale(0.3);
		/* 最初はすごく小さく */
	}

	50% {
		opacity: 1;
		transform: scale(1.05);
		/* 勢い余ってちょっと大きく(1.05倍)なる */
	}

	70% {
		transform: scale(0.95);
		/* 反動でちょっと小さく(0.95倍)なる */
	}

	100% {
		transform: scale(1);
		/* 元のサイズに落ち着く */
		opacity: 1;
	}
}


/*==== btn ====*/

.link_box {
	gap: 20px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.green_link a {
	width: 100%;
	display: block;
	background-color: #e5f6ec;
	padding: 30px;
	box-sizing: border-box;
	position: relative;
	z-index: 9;
	font-size: 18px;
	color: #00a33e;
	font-weight: 700;
	border-radius: 10px;
	transition: 0.2s;
}

.green_link a:hover {
	transition: 0.2s;
	background-color: #d1eedc;
}

.green_link a::after {
	content: "";
	background-image: url(../img/link_btn_01.svg);
	display: block;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	width: 44px;
	height: 44px;
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
}

.green_link a:hover::after {
	background-image: url(../img/link_btn_02.svg);
	transition: 0.2s;
}


/*==== title ====*/
.green_ttl {
	text-align: center;
}

.green_ttl h3 {
	display: inline-block;
	font-size: 34px;
	color: #fff;
	font-weight: 700;
	background-color: #00a33e;
	padding: 5px 0 10px;
	width: 80%;
	max-width: 633px;
	border-radius: 0 0 18px 18px;
}

.green_ttl p {
	font-size: 24px;
	font-weight: 700;
	color: #005e3c;
	width: 90%;
	margin: 0 auto;
}

.number_ttl {
	font-size: 34px;
	color: #00a33e;
	text-align: center;

}

.number_ttl span {
	-webkit-text-stroke: 1.5px #00a33e;
	color: #fff;
	position: relative;
	font-size: 40px;
	line-height: 1;
	padding-right: 1em;
}

.number_ttl span::after {
	position: absolute;
	content: "";
	height: 38px;
	width: 1.5px;
	background-color: #00a33e;
	bottom: 3px;
	margin-left: 0.5em;

}

@media screen and (max-width: 840px) {
	.green_ttl h3 {
		font-size: 28px;
		padding: 10px 45px 15px;
	}

	.green_ttl p {
		font-size: 21px;
		width: 100%;
	}

	body {
		border: 10px solid #00a33e;
	}
		.number_ttl {
		font-size: 24px;
		text-align: left;
	padding-left: 2em;
	/* 全体を右に2文字分ずらす */
	text-indent: -2em;
	/* 1行目だけを左に2文字分戻す */
	}

	.number_ttl span {
		font-size: 24px;
		-webkit-text-stroke: 0.7px #00a33e;
	}

	.number_ttl span::after {
		height: 19px;
		width: 0.7px;
		bottom: 4px;
	}
}

@media screen and (max-width: 640px) {
	html {
		font-size: 14px;
	}

	body {
		border: 8px solid #00a33e;
	}

	.pc {
		display: none;
	}

	.sp {
		display: block;
	}

	.green_ttl h3 {
		font-size: 17px;
		padding: 10px 20px 15px;
		width: 80%;
		box-sizing: border-box;

	}

	.green_ttl p {
		font-size: 16px;
		width: 100%;
	}

	.link_box {
		gap: 10px;
	}

	.green_link a {
		padding: 15px 56px 15px 15px;
		font-size: 13px;
	}

	.green_link a::after {
		width: 32px;
		height: 32px;
		right: 15px;
	}

	.number_ttl {
		font-size: 17px;
		text-align: left;
	padding-left: 2.5em;
	/* 全体を右に2文字分ずらす */
	text-indent: -2.25em;
	/* 1行目だけを左に2文字分戻す */
	}

	.number_ttl span {
		font-size: 20px;
		-webkit-text-stroke: 0.7px #00a33e;
	}

	.number_ttl span::after {
		height: 19px;
		width: 0.7px;
		bottom: 1px;
	}

}

@media screen and (max-width: 400px) {
	.tiny {
		display: block;
	}


}

/*==== スクロールバー ====*/

.scroll_hint {
	display: none;
}

@media screen and (max-width: 840px) {
	.green_ttl h3 {
		padding: 10px 20px 15px;
	}

	.mobile-scroll {
		width: 100%;
		overflow-x: scroll;
		-webkit-overflow-scrolling: touch;
		text-align: left;
	}

	.scroll_wrap {
		position: relative;
		width: 100%;
	}

	.scroll_hint {
		display: inline-block ;
		position: absolute;
		bottom: 20px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 5;
		color: #b3b3b3;
		font-size: 15px;
		font-weight: 700;
		border-radius: 20px;
		white-space: nowrap;
		pointer-events: none;
		display: flex;
		align-items: center;
		gap: 10px;
		/* 文字と画像の隙間 */
	}

	.scroll_hint::before,
	.scroll_hint::after {
		content: "";
		display: block;
		width: 40px;
		height: 12px;
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;

	}

	.scroll_hint::before {
		background-image: url(../img/sp/flow_prev.svg);
	}

	.scroll_hint::after {
		background-image: url(../img/sp/flow_next.svg);
	}

	/* ▼ 3. スクロールエリア */
	.mobile-scroll {
		width: 100%;
		overflow-x: scroll;
		-webkit-overflow-scrolling: touch;
		text-align: left;
		padding-bottom: 50px;
		/* バーとの隙間 */
	}

	/* ▼ 4. 画像の設定（ここが修正のキモ） */
	.mobile-scroll img {
		max-width: none;
		width: 1157px;
	}


	/* 純正のスクロールバーを完全に見えなくする */
	.mobile-scroll::-webkit-scrollbar {
		display: none;
	}

	/* --- 2. 自作バーのデザイン --- */
	/* レール（背景・グレー） */
	/* --- 1. 画像エリアの設定 --- */
	.mobile-scroll {
		overflow-x: scroll;
		-webkit-overflow-scrolling: touch;
		/* iPhone純正の慣性スクロールを有効化 */
		padding-bottom: 0;
		/* OS標準のバーを隠す */
		scrollbar-width: none;
		/* Firefox用 */
	}

	.mobile-scroll::-webkit-scrollbar {
		display: none;
		/* Chrome/Safari用 */
	}

	/* --- 2. 自作バーのデザイン --- */
	/* 背景のレール */
	.custom-scrollbar-track {
		width: 95%;
		height: 8px;
		/* 太さ */
		background: #e6e6e6;
		/* グレー */
		border-radius: 6px;
		/* 丸み */
		margin: 50px auto 0;
		/* 画像との隙間 */
		position: relative;
		overflow: hidden;
		/* はみ出し防止 */
	}

	/* 動くつまみ（緑） */
	.custom-scrollbar-thumb {
		width: 100px;
		/* ★ここがつまみの長さ（好きな長さに変更可） */
		height: 100%;
		/* レールと同じ太さ */
		background: #005e3c;
		/* 緑色 */
		border-radius: 6px;
		/* 丸み */
		position: absolute;
		top: 0;
		left: 0;
		cursor: pointer;
	}

	/* PC/SP画像の出し分け用 */
	.flow .pc {
		display: none;
	}

	.flow .sp {
		display: block;
	}
}


/*********************

      header

*********************/
header {
	top: 15px;
	/* 上の枠線の分下げる */
	left: 15px;
	/* 左の枠線の分ずらす */
	width: calc(100% - 30px);
	/* 左右の枠線分(15px*2)を引く */
	z-index: 2;

	padding: 15px 0px;
	box-sizing: border-box;
	/* これも必須 */

}

header .contents_inner {
	justify-content: space-between;
}

header .logo_area {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	z-index: 2;
	position: relative;
}

header .sendai_logo {
	transition: 0.2s;
}

header .sendai_logo:hover {
	transition: 0.2s;
	opacity: 0.6;
}

header .logo_area h1 {
	width: 144px;
	margin-left: 20px;
}

header .campaign_txt {
	width: 34px;
	position: fixed;
	right: 30px;
	opacity: 0;
	animation: bounceIn 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) 0.8s forwards;
}

header #nav,
header .menu_btn_wrap {
	display: none;
}

@media screen and (max-width: 840px) {
	header .campaign_txt {
		width: 25px;
		position: fixed;
		right: 16px;

	}
}


@media screen and (max-width: 640px) {
	header {
		padding: 10px 0;
	}

	header .logo_area h1 {
		width: 94px;
		margin-left: 10px;
	}

	header .campaign_txt {
		display: none;
	}

	header .menu_btn_wrap {
		display: block !important;
		z-index: 999;
		position: fixed;
		right: 0;
		top: 0;
	}

	header .menu_btn_wrap .menu_btn {
		width: 58px;
		height: 58px;
		cursor: pointer;
		position: relative;
		background: #00a33e;
		border-radius: 0 0 0 10px;
		z-index: 1000;
	}

	header .menu_btn_wrap .menu_btn::before {
		content: "";
		position: absolute;
		background-image: url(../img/menu_btn_01.svg);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		width: 33px;
		height: 38px;
		display: block;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		transition: 0.2s;
		z-index: 100;
	}

	header .menu_btn_wrap .menu_btn.active::before {
		content: "";
		position: absolute;
		background-image: url(../img/menu_btn_02.svg);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		width: 33px;
		height: 38px;
		display: block;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	header #nav {
		width: 308px;
		height: auto;
		max-height: 100vh;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		background: #00a33e;
		position: fixed;
		top: 0;
		right: 0;
		z-index: 90;
		display: none;
		padding: 60px 0 35px;
		border-bottom-left-radius: 20px;
	}

	header #nav ul.gnav {
		padding: 0;
		margin: 0 0 20px 0;
		list-style: none;
	}

	header #nav ul.gnav li {
		width: 90%;
		margin: 0 auto;
	}

	header #nav ul.gnav li a {
		display: block;
		color: #fff;
		padding: 10px 0px 10px 32px;
		transition: 0.3s;
		text-decoration: none;
		font-size: 13px;
		font-weight: 700;
		color: #fff;
		position: relative;
		margin: 0 auto;
		line-height: 1.5;
		z-index: 9;
	}

	header #nav .gnav li a:hover::before {
		background-image: url(../img/nav_icon_hover.svg);
		transition: 0.2s;
	}

	header #nav .gnav li a::before {
		content: "";
		display: block;
		background-image: url(../img/nav_icon.svg);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		width: 20px;
		height: 20px;
		position: absolute;
		left: 5px;
		top: 50%;
		transform: translateY(-50%);
		cursor: pointer;
	}

	header #nav .gnav li a:hover::before {
		background-image: url(../img/nav_icon_hover.svg);
		transition: 0.2s;
	}

	header #nav .cta_box {
		width: 100%;
		text-align: center;
		box-sizing: border-box;
		border-radius: 25px;
		position: relative;
	}

	header #nav .cta_box .cta_ttl {
		font-size: 13px;
		color: #fff;
		font-weight: 700;
		margin-bottom: 10px;
	}

	header #nav .tel_box p {
		font-size: 12px;
		font-weight: 700;
		color: #fff;
	}

	header #nav .tel_box a img {
		width: 17px;
		margin-right: 5px;
		margin-top: 5px;
	}

	header #nav .tel_box a {
		font-size: 30px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.06em;
		color: #fff;
	}

	header #nav .time {
		margin-top: 20px;
	}

	header #nav .time .txt {
		display: inline-block;
		border: 1px solid #fff;
		padding: 4px 7px;
		margin-right: 10px;
		border-radius: 50px;
		line-height: 1;
		font-size: 10px;
		color: #fff;
	}

	header #nav .time .en {
		font-size: 17px;
		line-height: 1;
		font-weight: 500;
		color: #fff;
	}

	header #nav .holiday {
		font-size: 10px;
		font-weight: 700;
		color: #fff;
		margin-top: 5px;
	}
}


/*********************

    footer

*********************/
footer {
	padding: 90px 0px 90px;
	text-align: center;
	border-top: 5px solid #00a33e;
}

footer .logo_area h1 {
	margin: 0;
	line-height: 0;
}

footer .logo_area a {
	display: inline-block;
	text-decoration: none;
}

footer .logo_area img {
	max-width: 180px;
	height: auto;
	display: block;
}
footer .sendai_logo {
	transition: 0.2s;
}

footer .sendai_logo:hover {
	transition: 0.2s;
	opacity: 0.6;
}
footer .Utilization_txt {
	text-align: center;
	font-size: 15px;
	color: #005e3c;
	font-weight: 500;
	margin-bottom: 45px;
}


@media screen and (max-width: 640px) {
	footer {
		padding: 60px 0px 60px;
	}

	footer .logo_area img {
		max-width: 144px;
	}

	footer .Utilization_txt {
		font-size: 13px;
		width: 90%;
		margin: 0 auto 45px;
	}
}