@charset "utf-8";

/* CSS Document */
/*================================================
*  CSSリセット
================================================*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, main, menu, nav.gnav, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	font-weight: normal;
}

body {
	line-height: 1
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav.gnav, section {
	display: block
}

ul,ol {
	list-style: none
}

blockquote, q {
	quotes: none
}

blockquote:before, blockquote:after, q:before, q:after {
	content: none
}

a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent
}

del {
	text-decoration: line-through
}

abbr[title], dfn[title] {
	border-bottom: 1px dotted;
	cursor: help
}

table {
	border-collapse: collapse;
	border-spacing: 0
}

hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #ccc;
	margin: 1em 0;
	padding: 0
}

input, select {
	vertical-align: middle
}

/*================================================
*  一般・共通設定
================================================*/
body {
	font-size: 16px;
	font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	line-height: 1.6;
	-webkit-text-size-adjust: 100%;
}

* {
	min-width: 0;
	min-height: 0;
	box-sizing: border-box;
}

img {
	image-rendering: -webkit-optimize-contrast;
	vertical-align: top;
}

a {
	color: #111;
}

a:link {
	text-decoration: none;
}

a:visited {
	color: inherit;
}


/*-- レイアウト --*/
#wrap {
	width: 100%;
	overflow: hidden;
	margin: 0 auto;
}

.contents {
	width: 1000px;
	margin: 0 auto;
}

.yel {
	background: #ffffc3;
}

@media only screen and (max-width: 999px) {
	.contents {
		width: 100%;
		padding: 0 10px;
	}
}

@media only screen and (max-width: 896px) {
	.contents.no-padding {
		width: 100%;
		padding: 0;
	}

	.bg {
		background: none;
	}
}

/*-- pc sp表示切替 --*/
.pc {
	display: block !important;
}
.sp {
	display: none !important;
}

@media only screen and (max-width: 896px) {
	.pc {
		display: none !important;
	}
	.sp {
		display: block !important;
	}
}

/*-- スマホで画像が横幅に合う --*/
.spimg{width:100%}


/*================================================
 *  ヘッダー
 ================================================*/
/* ロゴ */
header h1 img {
	width: 17%;
	height: auto;
	margin: 0.5rem 0;
}


/*================================================
 *  フッター
 ================================================*/
footer {
	clear: both;
	padding-bottom: 30px;
	margin-top: 80px;
	font-size: 0.9rem;
}

.copyright {
	padding: 10px;
	text-align: center;
}

@media screen and (max-width:750px) {
	footer {
		margin-top: 40px;
		padding-bottom: 0;
	}

	.copyright {
		font-size: 0.7rem;
	}
}


/*================================================
 *  ページトップへの戻り
 ================================================*/
#page-top {
	position: fixed;
	bottom: 15px;
	right: 15px;
	z-index: 1;
}

#page-top a {
	display: block;
	text-decoration: none;
}

#page-top img {
	background: #111;
}

#page-top img:hover {
	background: #222;
}


/*================================================
 *  コンテンツ
 ================================================*/
 /*----- キービジュアル -----*/
h2 {
	width: 100%;
	margin: 0 auto 1.5rem;
	text-align: center;
}

/*----- 見出し -----*/
h3 {
	margin: 2.0rem 0 1.0rem;
}

.cp h3 {
	margin: 0 0 1.0rem;
}

@media only screen and (max-width: 896px) {
	h2 {
		margin: 0 auto 1.0rem;
		min-height: auto;
	}
	h3 {
		margin: 2.0rem 0 1.5rem;
	}	
	h2 img,
	h3 img {
		max-width: 100%;
	}
}


/* オンデマンド講座とは
-------------------------------------*/
.ondemand {
	position: relative;
	display: inline-block;
	background: #b9dff5;
	border-radius: 10px;
	width: calc(100% - 3.0rem);
	padding: 1.0rem;
	margin: 1.0rem 1.0rem 1.0rem 2.0rem;
}

.ondemand::before {
	content: "";
	position: absolute;
	top: -30px;
	left: 10%;
	margin-left: -10px;
	border: 10px solid transparent;
	border-bottom: 20px solid #b9dff5;
}

.ondemand::after {
	content: url("../images/about_ill.png");
	position: absolute;
	top: 0;
	left: -2.0rem;
}

.ondemand p {
	margin: 0;
	padding: 0;
}

.ondemand dl {
	display: flex;
	align-items: center;
	margin: 0 0 0 30px;
}

.ondemand dt {
	background-color: #fff;
	border-radius: 10px;
	padding: 0.5rem;
	color: #e90089;
	font-weight: bold;
}

.ondemand dd {
	margin-left: auto;
}

.ondemand dd b {
	font-weight: bold;
}

.ondemand dd span {
	background:linear-gradient(transparent 50%, #ffb4c6 50%);
}

@media only screen and (max-width: 896px) {
		.ondemand::before {
			left: 50%;
		}
		.ondemand::after {
			top: auto;
			bottom: 0;
		}
		.ondemand dl {
			display: block;
			align-items:flex-start;
		}
		.ondemand dt {
			padding: 0.2rem 0.2rem 0.2rem 1rem;

		}

}

/*================================================
 *  カセット
 ================================================*/
 .cstContainer {
	display: flex;
  flex-wrap: wrap;
  justify-content:space-between;
	width: 100%;
	margin: 0 auto 2.0rem;
}
.cstContainer::after,
.cstContainer::before { /* 空カセット */
	content:"";
	display: block;
	width: 32%;
}
.cstContainer::before {
	order: 1;
}

.cst {
	display: flex;
  flex-direction: column;
	background-color: #fff;
	width: 32%;
	height: auto;
	padding-bottom: 1.0rem;
	margin-bottom: 1.5rem;
}

/* 2カラム */
.cstContainer.col2 .cst {
	width: 49%;
}

@media only screen and (max-width: 896px) {
	.cstContainer::after,
	.cstContainer::before {
		display: none;
	}
	.cst,
	.cstContainer.col2 .cst {
		width: 49%;
	}
}
@media only screen and (max-width: 480px) {
	.cst,
	.cstContainer.col2 .cst {
		width: 100%;
		height: auto;
	}
}

/*-- 推しポイント --*/
.cst .point {
	position: relative;
	background-color: #e90089;
	border-radius: 10px 10px 0 0;
	padding: 0 0.5rem 0.5rem;
	margin-bottom: 0.5rem;
}

.cst .point::before{
	position: absolute;
	content: url("../images/point.png");
	top: -15px;
	left: 0;
}

.cst .point p {
	margin-top: 30px;
	line-height: 1.4;
	color: #fff;
	font-weight: bold;
}


/*-- 講座名 --*/
.cst .koza_title {
	padding: 0 0.5rem 0.3rem;
	line-height: 1.4;
	color: #09c;
	font-size: 1.1em;
	font-weight: bold;
}

/*-- 講師名 --*/
.cst .name {
	padding: 0 0.5rem 0.5rem;
	line-height: 1.4;
}
.cst .name .katagaki {
	font-size: 0.75rem;
}
.cst .name .katagaki::before {
	content: "（";
}
.cst .name .katagaki::after {
	content: "）";
}

/*-- 講座説明 --*/
.cst .detail {
	display: flex;
	padding: 0 0.5rem 0.5rem;
}
/* 画像 */
.cst .detail .ph {
	position: relative;
	width: 150px;
	height: 150px;
}
.cst .detail .ph img {
	width: 150px;
	height: 150px;
	object-fit: cover;
	font-family: "object-fit: cover;";
}
.cst .detail .ph p {
	position: absolute;
	bottom: 0;
	left: 0;
	background:rgba(0,0,0,0.5);
	padding: 0.2rem;
	color: #fff;
	font-size: 0.65rem;
	line-height: 1;
}

/* 講座案内文 */
.cst .detail .about {
	flex: 1;
	padding-left: 0.5rem;
	font-size: 0.75rem;
}

/*-- 再生時間 --*/
.cst .time {
	padding: 0 0.5rem 0.5rem;
	color: #e90089;
	font-size: 0.85rem;
}

/*-- ボタン --*/
.cstContainer .btn {
	margin-top: auto;
}
.cstContainer .btn a {
	display: block;
	background-color: #09c;
	border-radius: 100px;
	padding: 0.3rem 0.5rem 0.1rem;
	margin: 0 2.0rem;
	text-align: center;
	color: #fff100;
	font-size: 1.1rem;
	font-weight: bold;
}
.cstContainer .btn a:hover {
	background-color: #171b1f;
	transition: .4s;
}


/*================================================
 *  キャンペーン内容について
 ================================================*/
.cp {
	background-color: #fff;
	padding: 2.0rem 0 0.5rem;
	margin-bottom: 3.0rem;
}

.cp_ex {
	width: 1000px;
	margin: 0 auto;
	text-align: left;
}
@media only screen and (max-width: 999px) {
	.cp {
		padding-top: 1.0rem;
	}
	.cp_ex {
		width: 100%;
		padding: 0 10px;
	}
}


.cp_ex ul {
	margin: 0 5.0rem 2.0rem;
}

.cp_ex li {
	margin-bottom: 0.3rem;
}
.cp_ex li::before {
	content: url("../images/arrow.png");
	text-indent: 1.0rem;
	margin-left: -1.0rem;
	position: relative;
	top:0.2rem;
}

.cp_ex li span {
	color: #09c;
	font-weight: bold;
}

.cp_ex .period {
	display: flex;
	justify-content: center;
}
.cp_ex .period dl {
	display: flex;
	margin: 0.5rem 1rem 1.5rem ;
	color: #fff;
}
.cp_ex .period dt,dd{
	padding: 0.5rem 1rem;
	align-content: center;
}
.cp_ex .period .col01a{
	background-color: #f3082e;
}
.cp_ex .period .col01b{
	background-color: #f92e6c;
}
.cp_ex .period .col02a{
	background-color: #fb2f00;
}
.cp_ex .period .col02b{
	background-color: #fd6d03;
}
.cp_ex .period .col03a{
	background-color: #02712a;
}
.cp_ex .period .col03b{
	background-color: #19aa67;
}
.cp_ex .period dt{
	font-size: 1.1rem;
}
.cp_ex .period dd{
	font-size: 1.3rem;
}

@media only screen and (max-width: 896px) {
	.cp {
		padding-top: 0rem;
	}
	.cp_ex ul {
		margin: 0 2.0rem 2.0rem;
	}
	.cp_ex li::before {
		text-indent: 0rem;
		margin-left: -1.4rem;
		top:0.3rem;
		background-size:contain;
		transform: scale(0.7);
		display: inline-block;
	}
	
	.cp_ex .period {
		display: block;
	}
	.cp_ex .period dl {
		margin: 0.5rem 1rem;
	}
	.cp_ex .period dt,dd{
		padding: 0.3rem 0.7rem;
	}
	.cp_ex .period dt{
		font-size: 0.9rem;
	}
	.cp_ex .period dd{
		font-size: 1.1rem;
		width:60%;
	}
}

@media only screen and (max-width: 480px) {
	.cp_ex li {
		font-size: 0.8rem;
	}
}

/*-- ボタン --*/
.cp_ex .btn {
	text-align: center;
}
.cp_ex .btn a {
	position: relative;
	display: inline-block;
	background-color: #5abf00;
	border-radius: 100px;
	padding: 0.7rem 5.0rem 0.5rem;
	margin: 1.0rem auto 1.5rem;
	color: #fff;
	font-size: 1.5rem;
	font-weight: bold;
}

.cp_ex .btn a::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 20px;
	width: 30px;
	height: 30px;
	margin: auto;
	border-radius: 20px;
	background-color: #fff;
}

.cp_ex .btn a::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 30px;
	width: 0;
	height: 0;
	margin: auto;
	border-top: 8px solid transparent;
	border-right: 0 solid transparent;
	border-left: 12px solid #5abf00;
	border-bottom: 8px solid transparent;
	box-sizing: border-box;
}

.cp_ex .btn a:hover {
	background-color: #39b2dc;
	transition: .4s;
}
.cp_ex .btn a:hover::after {
	border-left: 12px solid #39b2dc;
	transition: .4s;
}


@media only screen and (max-width: 896px) {
	.cp_ex .btn a {
		padding: 0.7rem 3.0rem 0.5rem;
		font-size: 1.1rem;
	}

	.cp_ex .btn a::before {
		left: 15px;
		width: 20px;
		height: 20px;
	}
	.cp_ex .btn a::after {
		left: 21px;
		border-top: 6px solid transparent;
		border-left: 9px solid #5abf00;
		border-bottom: 6px solid transparent;

	}
}


/*================================================
 *  注意事項
 ================================================*/

.caution{
	background-color: #e8e8e8;
	border-radius: 10px;
	width: 1000px;
	margin: 0 auto;
	text-align: left;
	padding: 1rem;
	background: url("../images/caution_ill.png") no-repeat bottom 0.5rem right 3rem #e8e8e8;
}

.caution h5{
	position: relative;
	width: 960px;
	margin: 0 auto;
	padding: 2px;
	border-bottom: 2px solid #4e4e4e;
	text-align: center;
}
.caution h5:before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 300px;
	height: inherit;
	border-bottom: 2px solid #d90000;
}
.caution ul {
	margin: 1.5rem 3.0rem 0;
}

.caution li {
	margin-bottom: 0.3rem;
}

@media only screen and (max-width: 896px) {
	
		.caution{
			width: 95%;
			background: url("../images/caution_ill.png") no-repeat bottom 0.5rem right 0.5rem #e8e8e8;
		}

		.caution h5{
			width: 95%;
			padding: 0;
		}
		.caution h5 img{
			width: 18%;
		}
		.caution h5:before {
			width: 120px;
		}
		.caution ul {
			margin: 0.8rem 1.0rem 0;
			font-size: 0.8rem;
		}
		.caution li {
			text-indent: -0.8rem;
		}
}

















/*================================================
 *  おうち時間
 ================================================*/
.ouchi {
	text-align: center;
}

.ouchi p:last-of-type a {
	position: relative;
	display: inline-block;
	background-color: #00465e;
	border-radius: 100px;
	padding: 0.7rem 5.0rem 0.5rem;
	margin: 1.0rem auto 1.5rem;
	color: #fff;
	font-size: 1.5rem;
	font-weight: bold;
}
.ouchi p:last-of-type a::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 2.0rem;
	width: 0;
	height: 0;
	margin: auto;
	border-top: 6px solid transparent;
	border-right: 0 solid transparent;
	border-left: 12px solid #fff;
	border-bottom: 6px solid transparent;
	box-sizing: border-box;
}
.ouchi p:last-of-type a:hover {
	background-color: #000;
	transition: .4s;
}

@media only screen and (max-width: 896px) {
	.ouchi p:last-of-type a  {
		padding: 0.7rem 4.0rem 0.5rem;
		font-size: 1.1rem;
	}
}


/*================================================
 *  ポップアップ
 ================================================*/
.modal-wrapper {
	z-index: 999;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 40px 10px;
	text-align: center;
}

.modal-wrapper:not(:target) {
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, visibility .3s;
}

.modal-wrapper:target {
	opacity: 1;
	visibility: visible;
	transition: opacity .4s, visibility .4s;
}

.modal-wrapper::after {
	display: inline-block;
	height: 100%;
	margin-left: -.05em;
	vertical-align: middle;
	content: ""
}

.modal-wrapper .modal-window {
	box-sizing: border-box;
	display: inline-block;
	z-index: 20;
	position: relative;
	width: 90%;
	max-width: 600px;
	padding: 10px 30px 25px;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 0 30px rgba(0, 0, 0, .6);
	vertical-align: middle
}

.modal-wrapper .modal-window .modal-content {
	max-height: 80vh;
	overflow-y: auto;
	text-align: left
}

.modal-content p {
	margin: 10px 0 0 0;
}

.modal-overlay {
	z-index: 10;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0, 0, 0, .8)
}

.modal-wrapper .modal-close {
	z-index: 20;
	position: absolute;
	top: -30px;
	right: 10px;
	width: 25px;
}

.modal-wrapper .modal-close img {
	width: 25px;
}


/*================================================
 *  キャンペーン終了
 ================================================*/
.end{
    font-size: 1.4rem;
    text-align: center;
    font-weight: bold;
    margin-bottom: 3rem;
    display: block;
    background-color: #fff;
    padding: 1rem 0;
}
@media only screen and (max-width: 896px) {
    .end{
        font-size: 1.1rem;
        margin-bottom: 1.4rem;
        margin-top: 1rem;
    }
}



