@charset "utf-8";

/* basic layout */

/*全体の設定
---------------------------------------------------------------------------*/
body {
	background-color: #fff;
	margin: 0px 0px 30px 0px;
	padding: 0px;
	font-family: 'ヒラギノ角ゴ', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
	font-weight: 400;
	color: #1C293F;
}

@media screen and (max-width: 768px) {
	body {
		/*background-image: url(../img/cmn/bg-cnts-sp.png);*/
		background-size: 100% auto;
		background-repeat: repeat-y;
		font-size: 3.8vw;
	}
}

@supports (-ms-accelerator: true) {
	body {
		letter-spacing: -.03em;
	}
}

h1,
h2,
h3,
h4,
h5,
p,
ul,
ol,
li,
dl,
dt,
dd,
form,
figure {
	margin: 0px;
	padding: 0px;
}

ul {
	list-style-type: none;
}

img {
	max-width: 100%;
	min-width: 100%;
	border: none;
	margin: 0;
	padding: 0;
	vertical-align: bottom;
}

img.cstm-img-size01 {
	max-width: 70%;
	min-width: 70%;
}

@media screen and (max-width:640px) {
	img {
		max-width: 100%;
		min-width: 100%;
		height: auto;
		/*width /***/
		/*:auto;*/
	}

	img.cstm-img-size01 {
		max-width: 70%;
		min-width: 70%;
	}
}

@media screen and (max-width: 768px) {
	input[type="submit"] {
		/* -webkit-appearance: none; */
		border-radius: 0;
	}
}

input,
textarea,
select {
	font-size: .16em;
}

form {
	margin: 0px;
}

table {
	border-collapse: collapse;
	font-size: .16rem;
	border-spacing: 0;
}

@media screen and (max-width: 768px) {
	html {
		font-size: 550%;
	}
}

h1,
h2,
h3,
h4,
h5,
h6,
th {
	font-weight: 400;
}

/* chromeで表示される謎の青枠を消す */
*:focus {
	outline: none;
}


/*リンク（全般）設定
---------------------------------------------------------------------------*/
a {
	transition-property: all;
	transition: 0.3s linear;
	color: inherit;
}

a:hover {
	cursor: pointer;
	opacity: 0.5;
	/* IE8 over, Opera, Safari, CSS3 over */
	transition-property: all;
	transition: 0.3s linear;
	text-decoration: none;
	color: inherit;
}

.trns {
	transition-property: all;
	transition: 0.3s linear;
}

/* 共通設定
---------------------------------------------------------------------------*/
.wrapper {
	width: 100%;
	margin: 0 auto;
	overflow: hidden;
}

/* @media screen and (max-width: 768px) {
	.wrapper {}
} */

/* clearfix */
.cf {
	zoom: 1
}

.cf:before,
.cf:after {
	display: table;
	content: "";
}

.cf:after {
	clear: both;
}

.clear {
	clear: both;
}

/* flexbox */
.flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content: center;
}

.f-center {
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.f-end {
	-webkit-box-pack: end;
	-ms-flex-pack: end;
	justify-content: flex-end;
}

.f-start {
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
}

.f-middle {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.f-bottom {
	-webkit-align-items: flex-end;
	align-items: flex-end;
}

.f-between {
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.f-wrap {
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.f-column {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

.f-reverse {
	-webkit-box-orient: horizontal;
	-webkit-box-direction: reverse;
	-ms-flex-direction: row-reverse;
	flex-direction: row-reverse;
}

@media screen and (max-width: 768px) {
	.sp-flex {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
	}

	.sp-f-row {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		-ms-flex-direction: row;
		flex-direction: row;
	}

	.sp-f-between {
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
	}

	.sp-f-column {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	.sp-f-column>*,
	.sp-f-column-reverse>* {
		width: 100% !important;
	}

	.sp-f-column-reverse {
		-webkit-flex-direction: column-reverse;
		flex-direction: column-reverse;
	}

	.sp-f-wrap {
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}

	.sp-f-center {
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
	}

	.sp-f-middle {
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
	}

	.sp-f-start {
		-webkit-box-pack: start;
		-ms-flex-pack: start;
		justify-content: flex-start;
	}
}

/* 文字配置 */
.al-cnt {
	text-align: center;
}

.al-lft {
	text-align: left;
}

.al-rit {
	text-align: right;
}

/* レスポンシブ ブロック要素 */
.spver {
	display: none;
}

@media screen and (max-width: 768px) {
	.pcver {
		display: none;
	}

	.spver {
		display: block;
	}
}

/* レスポンシブ インライン要素 */
.inline_spver {
	display: none;
}

@media screen and (max-width: 768px) {
	.inline_pcver {
		display: none;
	}

	.inline_spver {
		display: inline-block;
	}
}


/* header
---------------------------------------------------------------------------*/
header {
	position: relative;
	width: 100%;
	background-color: #f4f4f2;
}

.sitettl {
	padding: 32px 25px;
	font-size: .24rem;
	line-height: 1.1;
	font-family: 'Playfair Display SC', serif;
}

.articlesubttl {
	margin-bottom: 0;
	font-size: .16rem;
	font-weight: 700;
	text-decoration: underline;
	line-height: 1.4;
}

.box-articlehd {
	position: relative;
	width: 75%;
	padding: 35px 25px 35px;
}

.box-articlehd h1 {
	font-size: .3rem;
	line-height: 1.4;
	font-weight: 700;
}

.date-artclehd {
	padding: 12px 28px 0 0;
	font-size: .16rem;
	line-height: 1.8;
	color: #1C293F;
}

.comlink-articlehd {
	padding: 0 40px 0 0;
	text-align: right;
	color: #8f8f8f;
	font-size: .12rem;
	line-height: 16px;
}

.comlink-articlehd span {
	display: inline-block;
	padding: 1.5px 5px;
	border: 1px solid #8f8f8f;
	color: #8f8f8f;
	border-radius: 5px;
}

.articlehd {
	margin-bottom: 28px;
	padding: 18px 40px 13px;
	border-top: 1px solid #000;
	border-bottom: 1px solid #ccc;
}

.articlettl {
	font-size: 25px;
	font-weight: 700;
	color: #333333;
	line-height: 1.4;

}

@media screen and (max-width: 1220px) {
	.sitettl {
		font-size: 20px;
	}
}

@media screen and (max-width: 768px) {
	header {
		margin-bottom: 0vw;
		background-color: #e7e7e7;
	}

	.sitettl {
		padding: 3.0vw 5vw;
		font-size: 18px;
		letter-spacing: .08em;
		font-weight: 700;
	}

	.box-articlehd {
		padding: 8vw 5vw 3vw;
	}

	.box-articlehd h1 {
		font-size: 3.8vw;
		line-height: 1.4;
	}

	.date-artclehd {
		position: absolute;
		margin-bottom: 0;
		padding-left: 0;
		font-size: 13px;
		font-weight: 700;
		text-align: left;
		bottom: 1vw;
		line-height: 24px;
	}

	.comlink-articlehd {
		position: absolute;
		margin-bottom: 0;
		padding-top: 2vw;
		padding-right: 2vw;
		font-size: 13px;
		right: 0;
		bottom: 1vw;
		line-height: 24px;
	}

	.comlink-articlehd span {
		font-size: 12px;
		line-height: 1;
		padding: 3px 3.3px;
	}

	.comlink-articlehd a {
		text-decoration: none;
		color: inherit;
	}

	.articlesubttl {
		font-size: 14px;
		font-weight: 700;
		line-height: 1.4;
		margin-bottom: 1vw;
	}

	.articlehd {
		position: relative;
		margin-bottom: 4vw;
		padding: 0vw 4.5vw 3vw;
		border-top: 0px solid #000;
	}

	.articlettl {
		font-size: 19px;
		font-weight: 700;
		margin-bottom: 1vw;
	}
}

/* article
---------------------------------------------------------------------------*/
article {
	max-width: 768px;
	width: 100%;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.6;
}

.articlebd {
	padding: 0 35px;
}

article figure {
	margin-bottom: 1em;
	text-align: center;
}

article figure.right {
	float: right;
	width: 45%;
	margin: 0 0 1em 20px;
}

article figure.left {
	float: left;
	width: 45%;
	margin: 0 20px 1em 0;
}

article p {
	margin-bottom: 2em;
}

article h2 {
	position: relative;
	margin: 2em calc(-700px * .05) 1.5em;
	padding: .5em;
	font-size: 18px;
	line-height: 1.4;
	color: #4da2f4;
	font-weight: 700;
}

article h2::after {
	position: absolute;
	content: "";
	left: 0;
	bottom: -5px;
	height: 10px;
	width: 100%;
	background: repeating-linear-gradient(-45deg, #ccc, #ccc 3px, #fff 3px, #fff 6px);
}

article h2.q-num {
	position: relative;
	margin: 2em 0 0;
	padding: .5em;
	font-size: 150%;
	line-height: 1.4;
	color: black;
	text-align: center;
	font-weight: 700;
}

article h2.q-num::after {
	display: none;
}

article .q-ttl {
	font-size: 150%;
}

@media screen and (max-width: 768px) {
	article h2.q-num {
		font-size: 100%;
	}

	article .q-ttl {
		font-size: 100%;
	}
}

article video {
	width: 100%;
	margin-bottom: 1em;
}

article .underline {
	background: linear-gradient(transparent 60%, #ffff66 60%);
}

article .red {
	color: #f60000;
}

article .blue {
	color: #115b98;
}

article .bold {
	font-weight: 700;
}

article .small {
	font-size: 50%;
}

article .small2 {
	font-size: 70%;
}

article .big {
	font-size: 130%;
}

@font-face {
	font-family: Meiryo;
	src: local('Meiryo'), local('メイリオ');
}

.italic {
	font-family: Meiryo, "メイリオ", sans-serif;
	font-style: italic;
}

article a {
	color: #0c419a;
	text-decoration: underline;
}

article .col {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

article .col>* {
	width: 50%;
}

article .col>*+* {
	padding-left: 20px;
}

@media screen and (max-width: 768px) {
	article {
		margin: 3vw 0;
		padding: 0 0;
		font-size: 16px;
		line-height: 1.6;
	}

	article h2 {
		margin: 2em -5vw 1.5em;
		padding: 0 5vw 3vw;
		font-size: 18px;
		line-height: 1.6;
	}

	article .col {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	article .col>* {
		width: 100%;
	}

	article .col>*+* {
		padding-left: 0;
	}

	article figure.right {
		float: right;
		width: 45%;
		margin: 0 0 1em 3vw;
	}

	article figure.left {
		float: left;
		width: 45%;
		margin: 0 3vw 1em 0;
	}

	article figure.right.sprow,
	article figure.left.sprow {
		float: none;
		width: 100%;
		margin: 0 0 1em 0;
	}

	.articlebd {
		padding: 0 4.5vw;
	}
}

.mb0 {
	margin-bottom: 0em;
}

.mb1 {
	margin-bottom: 2em;
}

.mb2 {
	margin-bottom: 4em;
}

.mb3 {
	margin-bottom: 5em;
}

.mb4 {
	margin-bottom: 8em;
}

.mb5 {
	margin-bottom: 10em;
}

.mt1 {
	margin-top: 2em;
}

.mt2 {
	margin-top: 4em;
}

.mt3 {
	margin-top: 6em;
}

/* SNSボタン */
ul.sns {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	margin-top: 20px;
}

ul.sns li+li {
	margin-left: 5px;
}

#twitter-widget-0 {
	vertical-align: bottom;
}

@media screen and (max-width: 768px) {
	ul.sns {
		margin-top: 5vw;
	}

	ul.sns li+li {
		margin-left: 2vw;
	}
}

/* バナーを並べる */
.banners {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 1em;
}

.banners li {
	width: calc(99%/2);
	box-sizing: border-box
}

.banners li img {
	height: auto;
	max-width: 100%;
	min-width: 100%;
}

.banners li+li {
	margin-left: 1%;
}

@media screen and (max-width: 768px) {
	.banners li {
		width: 100%;
	}

	.banners li+li {
		margin-top: 1%;
		margin-left: 0;
	}
}

/* ライター紹介 */

.writer {
	border: 2px solid #ccc;
	display: block;
	min-height: 72px;
	padding: 16px 15px 16px;
}

.writer-thumbnail {
	float: left;
	width: 60px;
	margin: auto 15px auto 0px;
}

.writer-img {
	border-radius: 100%;
	border: 2px solid #ccc;
}

.writer-txt {
	margin-bottom: 0.5em;
	overflow: hidden;
}

@media screen and (max-width: 768px) {
	.writer-img {
		width: 50px;
	}

	.writer-txt {
		font-size: 12px;
	}
}

/* Youtube */

.frame-wrapper_player {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 56.25%;
	overflow: hidden;
	margin-bottom: 1em;
}

.frame-wrapper_player iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	border-width: 0px;
}

/* マウスオーバーで画像揺らす */

.shake-img-4:hover {
	display: inline-block;
	animation: animation-shake-img-4 .1s infinite;
}

@keyframes animation-shake-img-4 {
	0% {
		transform: rotateZ(0deg)
	}

	25% {
		transform: rotateZ(1deg)
	}

	50% {
		transform: rotateZ(0deg)
	}

	75% {
		transform: rotateZ(-1deg)
	}

	100% {
		transform: rotateZ(0deg)
	}
}

/* 定期的に画像を揺らす */

.shake-img-20 {
	display: inline-block;
	animation: animation-shake-img-20 1s infinite;
}

@keyframes animation-shake-img-20 {
	0% {
		transform: rotateZ(1deg)
	}

	3% {
		transform: rotateZ(0deg)
	}

	6% {
		transform: rotateZ(-1deg)
	}

	9% {
		transform: rotateZ(0deg)
	}

	12% {
		transform: rotateZ(1deg)
	}

	15% {
		transform: rotateZ(0deg)
	}

	18% {
		transform: rotateZ(-1deg)
	}

	21% {
		transform: rotateZ(0deg)
	}

	24% {
		transform: rotateZ(1deg)
	}

	27% {
		transform: rotateZ(0deg)
	}

	30% {
		transform: rotateZ(-1deg)
	}

	100% {
		transform: rotateZ(0deg)
	}
}

/* 定期的に画像を横に揺らす */

.shake-img-20-side {
	display: inline-block;
	animation: animation-shake-img-20-side 1s infinite;
}

@keyframes animation-shake-img-20-side {
	0% {
		transform: translate(0px, 0px)
	}

	3% {
		transform: translate(5px, 0px)
	}

	6% {
		transform: translate(-5px, 0px)
	}

	9% {
		transform: translate(5px, 0px)
	}

	12% {
		transform: translate(-5px, 0px)
	}

	15% {
		transform: translate(5px, 0px)
	}

	18% {
		transform: translate(-5px, 0px)
	}

	21% {
		transform: translate(5px, 0px)
	}

	24% {
		transform: translate(-5px, 0px)
	}

	100% {
		transform: translate(0px, 0px)
	}
}

.bn-relative {
	position: relative;
}

.bn-absolute {
	position: absolute;
	left: 3%;
	min-width: 1%;
	width: 94%;
	bottom: 2%;
}

/*カルーセル*/

/* .swiper {
	width: 100%;
	margin-bottom: 1em;
} */

/* .swiper-slide {
	text-align: center;
	font-size: 18px;
	background: #fff; */


/* Center slide text vertically */
/* display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
} */

.swiper-slide img {
	display: block;
	width: 100%;
	object-fit: cover;
}

/* .swiper {
	margin-left: auto;
	margin-right: auto;
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
} */

.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after,
.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
	/* color: #fff; */
	color: #5ABEC8
}

.swiper-wrapper {
	height: initial !important;
}

@media screen and (max-width: 768px) {

	.swiper-button-next::after,
	.swiper-button-prev::after {
		font-size: 35px;
		transform: translateY(-35%);
	}
}


/* カルーセル追記 START */

.swiper-container {
	height: auto;
	width: 698px;
	max-width: 100%;
	position: relative;
}

.swiper {
	height: auto;
	width: 80%;
	padding-bottom: 2.5em;
}

.swiper-wrapper {
	width: 80%;
}

.swiper-slide img {
	width: 100%;
	display: inline-block;
}

.swiper-pagination-bullet {
	background-color: #5ABEC8;
}

#swiper3 img {
	border: 1px solid #5ABEC8;
	border-radius: 20px;
	padding: 10px 15px;
}

#swiper img {
	height: auto;
}

#swiper3 {
	text-align: center;
}

@media screen and (max-width: 768px) {

	/* .swiper-container {
		height: auto;
		width: 698px;
		max-width: 100%;
		position: relative;
	} */

	.swiper {
		/* height: auto; */
		width: 100%;
		/* padding-bottom: 2.5em; */
	}

	.swiper-wrapper {
		width: 100%;
	}

	.swiper-slide img {
		width: 100%;
		display: inline-block;
	}

	/* .swiper-pagination-bullet {
		background-color: #5ABEC8;
	} */

	/* #swiper3 img {
		border: 1px solid #5ABEC8;
		border-radius: 20px;
		padding: 10px 15px;
	} */

	#swiper img {
		height: auto;
	}

	#swiper3 {
		text-align: center;
	}

}

/* カルーセル追記 END */







@media screen and (max-width: 768px) {

	.swiper-btn .swiper-button-next,
	.swiper-btn .swiper-button-prev {
		top: 40% !important;
	}
}

/* ラジオボタンの基本スタイルを非表示 */
input[type="radio"] {
	display: none;
}

/* ボタンのスタイル */
.radio-container {
	display: inline-block;
	margin-right: 20px;
	position: relative;
}

.radio-button {
	margin-top: 1em;
	margin-bottom: 2em;
	display: inline-block;
	background: #ffffff;
	/* グラデーション */
	color: #8fd0e2;
	font-size: 18px;
	width: 100px;
	padding: 3px 5px;
	border-radius: 30px;
	/* 楕円形 */
	text-align: center;
	cursor: pointer;
	transition: background-color 0.3s ease;
	letter-spacing: 3px;
	font-family: "MS Mincho", serif;
	/* 明朝体 */
	border: 2px solid #8fd0e2;
}

input[type="radio"]:checked+.radio-button {
	/* opacity: 70%; */
	background: linear-gradient(to bottom, #8fd0e2, #5fb0bf);
	/* グラデーション */
	color: #ffffff;
}

input[type="radio"]:hover+.radio-button {
	opacity: 70%;
	background: linear-gradient(to bottom, #8fd0e2, #5fb0bf);
	/* グラデーション */
	color: #ffffff;
}

.w_400 {
	gap: 25px;
	width: 400px;
	margin: 0 auto;
}

@media screen and (max-width: 768px) {

	.w_400 {
		width: 250px;
		margin: 0 auto;
	}
}


/* 基本設定: チェックボックスのスタイル */
input[type="checkbox"] {
	display: none;
	/* デフォルトチェックボックスを隠す */
}

/* チェックマークの色変更 */

input[type="radio"]+label::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid #86cadb;
	/* 枠線の色 */
	border-radius: 3px;
	/* 四角形に丸みを加える */
	background-color: #fff;
	/* 背景色 */
	vertical-align: middle;
	margin-right: 10px;
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

form {
	margin-bottom: 2em;
	margin-top: 2em;
}

/* チェックされた時の状態 */
input[type="radio"]:checked+label::before {
	background-color: #86cadb;
	/* チェック時の背景色 */
	border-color: #86cadb;
	/* チェック時の枠線の色 */
}

input[type="radio"]:checked+label {
	color: #333;
	/* ラベルの色（必要なら変更） */
}

.checkbox-container {
	display: flex;
	align-items: baseline;

}

.checkbox-container {
	display: flex;
	align-items: baseline;
	/* チェックボックスとテキストを上揃え */
	/* gap: 10px; */
}

.checkbox-container label {
	display: inline-block;
	line-height: 1.5;
	/* 行間を調整 */
	margin: 0;
	/* 余白をリセット */
	word-break: break-word;
	/* 長いテキストを折り返す */
}


input[type="checkbox"]+label::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid #86cadb;
	/* 枠線の色 */
	border-radius: 3px;
	/* 四角形に丸みを加える */
	background-color: #fff;
	/* 背景色 */
	vertical-align: middle;
	margin-right: 10px;
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

/* チェックされた時の状態 */
input[type="checkbox"]:checked+label::before {
	background-color: #86cadb;
	/* チェック時の背景色 */
	border-color: #86cadb;
	/* チェック時の枠線の色 */
}

input[type="checkbox"]:checked+label {
	color: #333;
	/* ラベルの色（必要なら変更） */
}

/* ラベルのスタイル */
.checkbox-container label {
	display: inline-block;
	color: #333;
	/* テキスト色 */
	font-size: 16px;
	cursor: pointer;
	padding: 5px;
}

/* 全体のスタイル */
.checkbox-container {
	margin-bottom: 10px;
}





.fs-18 {
	font-size: 18px;
}

.comlink {
	text-decoration: none;
}

@media screen and (max-width: 768px) {
	.comlink {
		font-size: 10px;
	}
}



.bg {
	/* background: url(../img/img_340.png )center center/cover; */
	border: 1.5px solid;
	border-color: #e7e7e7;
	padding: 30px 0 0 0;
	position: relative;
}

.next {
	position: absolute;
	/* z-index: 10; */
	width: 50px;
	height: 100px;
	background: #51b1bf;
	top: 52%;
	left: 3%;
	transform: translate(-50%, -50%);
	border-radius: 0 100% 100% 0% / 50%;
	margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
}

.prev {
	position: absolute;
	/* z-index: 10; */
	width: 7.5%;
	height: 100px;
	background: #51b1bf;
	top: 52%;
	right: -4%;
	transform: translate(-50%, -50%);
	border-radius: 100% 0 0 100% / 50%;
	margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
}

@media screen and (max-width: 768px) {
	.next {
		position: absolute;
		width: 50px;
		height: 100px;
		background: #51b1bf;
		top: 52%;
		left: 3.5%;
		transform: translate(-50%, -50%);
		border-radius: 0 100% 100% 0% / 50%;
		margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
	}

	.prev {
		position: absolute;
		width: 50px;
		height: 100px;
		background: #51b1bf;
		top: 52%;
		right: -4%;
		transform: translate(-50%, -50%);
		border-radius: 100% 0 0 100% / 50%;
		margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
	}

}

@media screen and (max-width: 680px) {
	.next {
		top: 52.5%;
		left: 4%;
	}

	.prev {
		top: 52.5%;
		right: -4.5%;
	}
}

@media screen and (max-width: 585px) {
	.next {
		top: 53%;
		left: 4%;
	}

	.prev {
		top: 53%;
		right: -5%;
	}
}

@media screen and (max-width: 525px) {
	.next {
		/* position: absolute;
		width: 50px;
		height: 100px;
		background: #51b1bf; */
		top: 53%;
		left: 5%;
		/* transform: translate(-50%, -50%);
		border-radius: 0 100% 100% 0% / 50%;
		margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); */
	}

	.prev {
		top: 53%;
		right: -6%;
	}
}

@media screen and (max-width: 450px) {
	.next {
		top: 54%;
		left: 6%;
	}

	.prev {
		top: 54%;
		right: -7%;
	}
}

@media screen and (max-width: 400px) {
	.next {
		top: 54.5%;
		left: 7%;
	}

	.prev {
		top: 54.5%;
		right: -8%;
	}
}

@media screen and (max-width: 345px) {
	.next {
		top: 54.5%;
		left: 7%;
	}

	.prev {
		top: 54.5%;
		right: -9%;
	}

}

/* ラジオボタン用: 四角の中に✔を表示 */
input[type="radio"]+label::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid #86cadb;
	border-radius: 3px;
	background-color: #fff;
	vertical-align: middle;
	margin-right: 10px;
	transition: background-color 0.3s ease, border-color 0.3s ease;
	text-align: center;
	line-height: 18px;
	font-size: 16px;
	font-weight: bold;
	box-sizing: border-box;
}

/* ✔ を表示させる */
input[type="radio"]:checked+label::before {
	content: "✔";
	color: white;
	background-color: #86cadb;
	border-color: #86cadb;
}

/* チェックボタン用: 四角の中に✔を表示 */
input[type="checkbox"]+label::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid #86cadb;
	border-radius: 3px;
	/* 四角（角丸） */
	background-color: #fff;
	vertical-align: middle;
	margin-right: 10px;
	transition: background-color 0.3s ease, border-color 0.3s ease;
	text-align: center;
	line-height: 18px;
	font-size: 16px;
	font-weight: bold;
	box-sizing: border-box;
}

/* ✔ を表示させる */
input[type="checkbox"]:checked+label::before {
	content: "✔";
	color: white;
	background-color: #86cadb;
	border-color: #86cadb;
}

/*クリックで表示非表示*/
#toggleInfo {
	color: blue;
	text-decoration: underline;
	cursor: pointer;
}

#toggleInfo:hover {
	text-decoration: none;
}

/* ----- モーダル設定 START ----- */

/* モーダル用CSS START*/
.modalArea {
	display: none;
	position: fixed;
	z-index: 10;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.modalBg {
	width: 100%;
	height: 100%;
	background-color: rgba(30, 30, 30, 0.5);
}

.modalWrapper {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 70%;
	max-width: 500px;
	background-color: #fff0;
}

.modalWrapper figure {
	margin-bottom: 0px;
}

.modalWrapper a:hover {
	cursor: pointer;
	opacity: 1;
	/* IE8 over, Opera, Safari, CSS3 over */
	transition-property: all;
	transition: 0.3s linear;
	text-decoration: none;
	color: inherit;
}

.closeModal {
	position: absolute;
	top: -15px;
	right: -15px;
	font-size: 18px;
	cursor: pointer;
	border-radius: 100%;
	width: 30px;
	height: 30px;
	text-align: center;
	vertical-align: middle;
}


#openModal {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* モーダル用CSS END*/

/* モーダル */
/* ボタン */
.open-btn {
	font-size: 70%;
	color: #1c293f;
	text-decoration: underline;
	border: none;
	cursor: pointer;
	margin: 0 0 16px 16px;
	display: block;
	margin-left: auto;
	background: transparent;
	/* 背景が不要なら透明に */
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
}

.open-btn:focus,
.close-btn:focus {
	outline: none;
}

.open-btn:hover {
	color: #b8b5b5;
}

.close-btn {
	position: absolute;
	top: 10px;
	right: 15px;
	font-size: 30px;
	background: transparent;
	border: none;
	cursor: pointer;
	transition: transform 0.3s ease;
}

/* モーダル背景 */
.modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	background: rgba(79, 79, 79, 0.5);
	z-index: 150;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

/* モーダル表示状態 */
.modal.active {
	display: flex;
	opacity: 1;
	pointer-events: auto;
}

/* モーダルの中身*/
.modal-content {
	background: #fff;
	padding: 50px 30px;
	border-radius: 5px;
	width: 80%;
	max-width: 100%;
	text-align: left;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
	position: relative;
	opacity: 0;
	transform: scale(0.8);
	transition: all 0.3s ease;
	max-height: 80vh;
	overflow-y: auto;
	z-index: 999;
}

/* アニメーション*/
.modal.active .modal-content {
	animation: fadeInScale 0.4s ease forwards;
}

@keyframes fadeInScale {
	0% {
		opacity: 0;
		transform: scale(0.8);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}


/* ----- モーダル設定 END ----- */

p {
	line-height: 1.7;
	letter-spacing: 0.1px;
	color: #3c3c3c;
}

.title-small {
	display: flex;
	justify-content: space-between;
}

.title-small a {
	color: #3c3c3c;
}

ul,
ol {
	margin-bottom: 2em;
}

ul li {
	list-style: disc;
	list-style-position: inside;
}

ul {
	padding-left: 1em;
}

.video-url {
	display: flex;
	justify-content: end;
	height: 1em;
	position: relative;
}

@media screen and (max-width: 768px) {
	.video-url {
		font-size: 12px;
		margin-bottom: 1em;
	}
}

.video-url a {
	position: absolute;
	top: -0.5em;
}

.vireo-url-mb {
	margin-bottom: 2.2em;
}

.ml_1 {
	margin-left: 1em;
}

.lh_1-5 p {
	line-height: 1.5;
}

.tyuusyaku p {
	font-size: 10px;
	line-height: 1.5;
	color: #555;
	margin-bottom: 0;
}

.fs12 {
	font-size: 12px;
}

.mt02 {
	margin-top: 0.2em;
}