@charset "utf-8";

/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
/* h1 */
.heading {
	width: 100%;
	margin-bottom: 60px;
	text-align: center;
}
.heading h1,
.heading p {
	font-size: 4.2rem;
	line-height: 1;
	font-weight: bold;
}
.heading h1::after,
.heading p::after {
	content: "";
	display: block;
	width: 40px;
	height: 12px;
	margin: 20px auto 0;
	background: url(../img/h1_decoration.svg) no-repeat 0 0 / cover;
}
/* コース詳細 h1 */
.courseDetailBlock h1 {
	width: calc(100% - 46px);
	margin: -6px 0 5px;
	font-size: 3.8rem;
	line-height: 1.3;
	font-weight: bold;
}
/* 新着情報 h1 */
.mainContents h1 {
	margin: 20px 0 28px;
	padding-bottom: 20px;
	border-bottom: 1px solid #ddd;
	font-size: 3.2rem;
	line-height: 1.5;
	font-weight: bold;
}
/* h2 */
.contents h2,
.contentsWide h2 {
	margin-bottom: 25px;
	padding-left: 12px;
	border-left: 5px solid #c11920;
	font-size: 2.6rem;
	line-height: 1.25;
	font-weight: bold;
}
.contents h2 span,
.contentsWide h2 span {
	display: inline-block;
	margin-left: 1em;
	font-size: 1.6rem;
	font-weight: 500;
}
/* H3 */
.contents h3,
.contentsWide h3 {
	margin-bottom: 10px;
	padding-left: 1em;
	font-size: 1.8rem;
	line-height: 1.5;
	font-weight: bold;
	text-indent: -1em;
}
/* H4 */
.contents h4,
.contentsWide h4 {
	margin-bottom: 5px;
	font-weight: bold;
}
/* 大見出し */
.headlineText {
	font-size: 3.3rem;
	font-weight: bold;
	text-align: center;
}
/* 帯 */
.barText {
	position: relative;
	padding: 26px 30px 24px 55px;
	border-top: 1px solid #d8d8d8;
	background-color: #f3f2f1;
	font-size: 2.4rem;
	font-weight: bold;
}
.barText::before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 38px;
	left: 30px;
	width: 16px;
	height: 16px;
	margin: 0 5px 5px 0;
	border: 5px solid #c11920;
	border-radius: 50%;
	box-sizing: border-box;
	vertical-align: middle;
}
.barText > p {
	font-size: 1.5rem;
	font-weight: normal;
}
@media print, screen and (min-width: 768px) {
	/* 帯 */
	.barText > p {
		display: block;
		float: right;
		margin-top: 8px;
	}
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* h1 */
	.heading {
		margin-top: 158px;
		margin-bottom: 40px;
		padding: 0 5%;
	}
	.heading h1,
	.heading p {
		font-size: 2.8rem;
	}
	.heading h1::after,
	.heading p::after {
		margin-top: 16px;
	}
	/* コース詳細 h1 */
	.courseDetailBlock h1 {
		font-size: 2.5rem;
	}
	/* 新着情報 h1 */
	.mainContents h1 {
		margin: 15px 0 23px;
		padding-bottom: 15px;
		font-size: 2.2rem;
	}
	/* H2 */
	.contents h2,
	.contentsWide h2 {
		margin-bottom: 20px;
		padding-left: 10px;
		border-left: 4px solid #c11920;
		font-size: 2.2rem;
	}
	.contents h2 span,
	.contentsWide h2 span {
		font-size: 1.3rem;
	}
	/* H3 */
	.contents h3,
	.contentsWide h3 {
		font-size: 1.7rem;
	}
	/* 大見出し */
	.headlineText {
		font-size: 2.2rem;
		line-height: 1.5;
	}
	.headlineText span {
		display: block;
	}
	/* 帯 */
	.barText {
		padding: 26px 8.7% 24px;
		padding-left: calc(8.7% + 25px);
		font-size: 2.1rem;
		line-height: 1.4;
	}
	.barText::before {
		top: 32px;
	}
	.barText > span {
		display: block;
	}
	.barText > p {
		margin: 7px 0 0 -28px;
	}
}

/* ------------------------------
 横幅（PC）
------------------------------ */
.w3em {
	width: 3em !important;
}
.w10em {
	width: 10em !important;
}
/* その他 */
.w208 {
	width: 208px;
}
@media print, screen and (min-width: 768px) {
	/* 1/2 */
	.w546,
	.w1-2 {
		width: 47.89473%;
	}
	/* 1/3 */
	.w358,
	.w1-3 {
		width: 31.4035%;
	}
	.w358.cms_fl + .w358.cms_fl,
	.w358.fl + .w358.fl,
	.w1-3.cms_fl + .w1-3.cms_fl,
	.w1-3.fl + .w1-3.fl {
		margin-left: 2.89473%;
	}
	.w358.cms_fl + .w358.cms_fl.ml0 {
		margin-left: 0;
	}
	/* 2/3 */
	.w749,
	.w2-3 {
		width: 65.70175%;
	}
	/* 1/4 */
	.w246,
	.w1-4 {
		width: 21.57894%;
	}
	.w246.cms_fl + .w246.cms_fl,
	.w246.fl + .w246.fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w1-4.fl + .w1-4.fl {
		margin-left: 4.5614%;
	}
	/* 3/4 */
	.w842,
	.w3-4 {
		width: 73.85964%;
	}
	/* 新着情報 */
	.mainContents .w390,
	.mainContents .w1-2 {
		width: 47.21549%;
	}
	/* その他 */
	.cms_block.w700,
	.contentsWide > .inBlock > .cms_block.w700,
	.cms_text.w700 {
		width: 700px;
	}
	.cms_block.w900,
	.contentsWide > .inBlock > .cms_block.w900,
	.cms_text.w900 {
		width: 900px;
	}
}
/* ----------------------
 横幅（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.w246,
	.w1-4 {
		width: 47.25%;
	}
	.w246.cms_fl,
	.w1-4.cms_fl {
		float: left !important;
	}
	.w246.cms_fl + .w246.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w246.cms_fl + .w246.cms_fl + .w246.cms_fl + .w246.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl {
		margin-left: 5.5%;
	}
	.w246.cms_fl + .w246.cms_fl + .w246.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl {
		margin-bottom: 0;
		margin-left: 0;
	}
}

/* ------------------------------
 ボックス（PC）
------------------------------ */
/* 背景グレー角丸 */
.bgrBox {
	padding: 40px;
	border-radius: 10px;
	background-color: #f3f2f1;
}
/* 枠線 */
.lineBox {
	padding: 35px 40px;
	border: 1px solid #ddd;
}
/* 横並び */
.flexBox {
	display: flex !important;
	flex-wrap: wrap;
}
.cms_block.flexBox::after {
	content: none;
}
/* 横並び センター揃え */
.flexBox.jc-c {
	justify-content: center;
}
/* 横並び 端揃え */
.flexBox.jc-sb {
	justify-content: space-between;
}
/* 横並び 縦センター揃え */
.flexBox.ai-c {
	align-items: center;
}
/* 横並び4列（SP横並び2列） */
.flexBox.div4 {
	flex-wrap: wrap;
	gap: 40px 4.5614%;
}
/* 横並びで写真キャプションが上 */
.flexBox.capTop > * {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
/* gap */
.cgap2em {
	column-gap: 2em;
}
.rgap0 {
	row-gap: 0 !important;
}
@media print, screen and (min-width: 768px) {
	/* 横並び2列 */
	.flexBox.div2 {
		flex-wrap: wrap;
		gap: 40px 4.21052%;
	}
	.flexBox.div2 > * {
		width: 47.89473%;
		margin-bottom: 0;
	}
	/* 横並び3列 */
	.flexBox.div3 {
		flex-wrap: wrap;
		gap: 40px 2.89473%;
	}
	.flexBox.div3 > * {
		width: 31.4035%;
		margin-bottom: 0;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 > * {
		width: 21.57894%;
		margin-bottom: 0;
	}
}
/* ------------------------------
 ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 背景グレー角丸 */
	.bgrBox {
		padding: 30px;
	}
	/* 枠線 */
	.lineBox {
		padding: 15px 20px;
	}
	/* 横並び2列・横並び3列 */
	.flexBox.div2,
	.flexBox.div3 {
		display: block !important;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		flex-wrap: wrap;
		gap: 25px 5.5%;
	}
	.flexBox.div4 > * {
		width: 47.25%;
		margin-bottom: 0;
	}
}

/* ------------------------------
 テーブル（PC）
------------------------------ */
/* デフォルト */
.contents table,
.contentsWide table {
	width: 100%;
	border-top: 1px solid #ddd;
}
.contents table tr,
.contentsWide table tr {
	border-bottom: 1px solid #ddd;
}
.contents table th,
.contentsWide table th {
	padding: 20px 0;
	font-weight: bold;
}
.contents table td,
.contentsWide table td {
	padding: 20px 0;
}
/* スクロール */
.cms_text.scroller {
	overflow-y: hidden !important;
}
.cms_text.scroller table td + td {
	padding-left: 20px
}
/* ラインなし */
.contents .noline table,
.contentsWide .noline table {
	border-top: none;
}
.contents .noline table tr,
.contentsWide .noline table tr {
	border-bottom: none;
}

@media print, screen and (min-width: 768px) {
	.contents table th,
	.contentsWide table th {
		width: 24%;
	}
	.contents table th.w28p,
	.contentsWide table th.w28p {
		width: 28%;
	}
	.contents table th.w32p,
	.contentsWide table th.w32p {
		width: 32%;
	}
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents table th,
	.contentsWide table th {
		padding: 14px 0 6px;
	}
	.contents table td,
	.contentsWide table td {
		padding: 0 0 12px;
	}
	/* レスポンシブ */
	.contents .res table th,
	.contentsWide .res table th,
	.contents .res table td,
	.contentsWide .res table td {
		width: auto !important;
		display: block;
	}
	/* スクロール */
	.cms_text.scroller table {
		width: 1140px !important;
	}
	.mainContents .cms_text.scroller table {
		width: 826px !important;
	}
	.cms_text.scroller table th {
		width: 24%;
	}
	/* ラインなし */
	.contents .noline table th,
	.contentsWide .noline table th {
		padding: 14px 0 12px;
	}
}

/* ------------------------------
 リスト（PC）
------------------------------ */
/* ノーマルリスト●付き */
.cms_text ul > li,
.cms_image ul > li {
	position: relative;
	padding-left: 1em;
}
.cms_text ul > li::before,
.cms_image ul > li::before {
	content: "●";
	position: absolute;
	top: .85em;
	left: 0;
	color: #c11920;
	font-size: 50%;
}
/* 横並び */
.inline ul li {
	display: inline-block;
	margin-right: 2em;
}
.cms_text.listSpace ul > li:not(:last-child),
.cms_image.listSpace ul > li:not(:last-child) {
	margin-bottom: 5px;
}
/* チェック */
.cms_text.check ul > li,
.cms_image.check ul > li {
	padding-left: 21px;
	font-weight: bold;
}
.cms_text.check ul > li:not(:last-child),
.cms_image.check ul > li:not(:last-child) {
	margin-bottom: 5px;
}
.cms_text.check ul > li::before,
.cms_image.check ul > li::before {
	content: "";
	display: block;
	position: absolute;
	top: .7em;
	left: 0;
	width: 14px;
	height: 14px;
	background: url(../img/icon_check.svg) no-repeat 0 0 / cover;
}
/* 数字 */
.cms_text > ol > li {
	counter-increment: count 1;
	position: relative;
	padding-left: 1.5em;
}
.cms_text > ol > li:before {
	content: counter(count) ".";
	position: absolute;
	top: 0;
	left: 0;
}
/* 数字（）付き */
.cms_text.brackets > ol > li {
	position: relative;
	padding-left: 3em;
}
.cms_text.brackets > ol > li:not(:last-child) {
	margin-bottom: 5px;
}
.cms_text.brackets > ol > li:before {
	counter-increment: item;
	content: "（"counter(count)"）";
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	width: auto;
	height: auto;
	background-color: transparent;
}
/* 横並び2列・3列 */
@media print, screen and (min-width: 768px) {
	.div2 ul,
	.div3 ul {
		display: flex;
		flex-wrap: wrap;
	}
	.div2 ul li,
	.div3 ul li {
		padding-right: 2em;
	}
	.div2 ul li {
		width: 50%;
	}
	.div3 ul li {
		width: 33.3333333%;
	}
}
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並び */
	.inline ul li {
		margin-right: 1em;
	}
}

/* ------------------------------
 アイコン（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
 アイコン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
}

/* ------------------------------
 ボタン（PC）
------------------------------ */
.btn a,
a.btn {
	display: inline-block;
	position: relative;
	padding: 16px;
	border-radius: 30px;
	background-color: #c11920;
	color: #fff;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
}
.btn a:after,
a.btn::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	width: 18px;
	height: 10px;
	margin: auto 0;
	background: url(../img/icon_arrow_r_white.svg) no-repeat 0 0 / cover;
}
.cms_link.btn a::before {
	content: none;
}
.cms_link.btn a::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	width: 18px;
	height: 10px;
	margin: auto 0;
	border: none;
	background: url(../img/icon_arrow_r_white.svg) no-repeat 0 0 / cover;
	transform: none;
}
.btn.download a:after,
a.btn.download::after {
	right: 22px;
	width: 14px;
	height: 17px;
	background: url(../img/icon_download.svg) no-repeat 0 0 / cover;
}
.contentsWide .btn.download a[target="_blank"]:after,
.contentsWide a.btn.download[target="_blank"]::after {
	margin: auto 0;
}
.btn.list a:after,
a.btn.list::after {
	right: 23px;
	width: 15px;
	height: 15px;
	background: url(../img/icon_list.svg) no-repeat 0 0 / cover;
}
@media print, screen and (min-width: 768px) {
	.btn a,
	a.btn {
		min-width: 260px;
		transition: .3s ease-in-out;
	}
	.btn a:hover,
	a.btn:hover {
		opacity: .7;
	}
	.cms_link.btn a:hover {
		color: #fff;
	}
}
/* ------------------------------
 ボタン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.btn a,
	a.btn {
		min-width: 230px;
		padding: 10px;
		border-radius: 24px;
	}
}

/* ------------------------------
 ページ内リンク（PC）
------------------------------ */
.cms_block.pageLink {
	display: flex;
	background-color: #f3f2f1;
}
.cms_block.pageLink::after {
	content: none;
}
.cms_block.pageLink > .cms_link a {
	padding-right: 21px;
	font-size: 1.5rem;
}
.cms_block.pageLink > .cms_link a::before {
	top: 2px;
	width: 16px;
	height: 16px;
}
.cms_block.pageLink > .cms_link a::after {
	top: 0;
	right: 5px;
	width: 4px;
	height: 4px;
	transform: rotate(45deg);
}
@media print, screen and (min-width: 768px) {
	.cms_block.pageLink {
		flex-wrap: wrap;
		align-items: center;
		gap: 10px 25px;
		padding: 35px 90px;
		border-radius: 15px;
	}
}
/* ------------------------------
 ページ内リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_block.pageLink {
		flex-direction: column;
		row-gap: 10px;
		padding: 30px;
		border-radius: 10px
	}
}

/* ------------------------------
 角R（PC）
------------------------------ */
.r10,
.r10 img {
	border-radius: 10px;
}
.r25,
.r25 img {
	border-radius: 25px;
}
/* ------------------------------
 角R（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.r10,
	.r10 img {
		border-radius: 6px;
	}
	.r25,
	.r25 img {
		border-radius: 15px;
	}
}

/* ------------------------------
 span
------------------------------ */
@media print, screen and (min-width: 768px) {
	.cms_text.pc_tac span {
		display: block;
	}
}

/* ------------------------------
 区切り線（PC）
------------------------------ */
.separation  {
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid #dcdcdc;
}
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
  区切り線（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.separation  {
		margin-bottom: 16px;
		padding-bottom: 16px;
	}
}

/* ------------------------------
 下部リンク（PC）
------------------------------ */
.searchLink {
	font-size: 1.4rem;
	line-height: 1;
}
.cms_text .searchLink li {
	position: static;
	padding-left: 0;
}
.cms_text .searchLink li::before {
	content: none;
}
.searchLink > li:not(:last-child) {
	margin-bottom: 1em;
}
.searchLink > li > p {
	font-weight: bold;
}
.searchLink > li > ul {
	display: flex;
	flex-wrap: wrap;
}
.searchLink > li > ul > li:not(:last-child)::after {
	content: "|";
	display: inline-block;
	margin: 0 .75em;
	color: #dcdcdc;
}
@media print, screen and (min-width: 768px) {
	.searchLink > li {
		display: flex;
	}
	.searchLink > li > p {
		width: 185px;
	}
}
/* ------------------------------
 下部リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.searchLink > li > p {
		margin-bottom: 10px;
	}
	.searchLink > li > ul > li {
		margin-bottom: 10px;
	}
	.searchLink > li > ul > li:not(:last-child)::after {
		margin: 0 .5em;
	}
}

/* ------------------------------
 新着情報一覧（PC）
------------------------------ */
.newsList {
	border-top: solid 1px #ddd;
}
.newsList li {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	border-bottom: solid 1px #ddd;
}
.newsList a[target="_blank"]::after {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: .3em;
	background: url(../img/icon_blank_s.svg) no-repeat 0 0 / cover;
}
.date {
	width: 100px;
	color: #606060;
	font-family: "Poppins", sans-serif;
	line-height: 24px;
	font-weight: 600;
}
.cate {
	width: 132px;
	height: 24px;
	margin-right: 23px;
	border-radius: 3px;
	background: #7d94a8;
	color: #fff;
	text-align: center;
	font-size: 1.2rem;
	font-weight: bold;
	line-height: 24px;
	text-align: center;
}
.cate1 .cate {
	background: #7d94a8;
}
.cate2 .cate {
	background: #dd837c;
}
.newsList li.new .headline::before {
	content: "NEW";
	display: inline-block;
	width: 44px;
	height: 20px;
	margin: 0 10px 1px 0;
	border-radius: 10px;
	background-color: #c11920;
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-size: 1.2rem;
	line-height: 20px;
	font-weight: bold;
	text-align: center;
	vertical-align: middle;
}
@media print, screen and (min-width: 768px) {
	.newsList li {
		padding: 22px 0;
	}
	.headline {
		overflow: hidden;
		line-height: 24px;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}
/* ----------------------
 新着情報一覧（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.newsList li {
		padding: 22px 0 14px;
	}
	.headline {
		width: 100%;
		margin-top: 10px;
	}
}

/* ------------------------------
 講座ボックス（PC）
------------------------------ */
.courseBox {
	display: block;
	position: relative;
	height: 100%;
	border-radius: 12px;
	box-shadow: 0 0 15px 5px rgba(0,0,0,.15);
	background-color: #fff;
}
.p-courseGroup .courseBox {
	height: calc(100% - 33px);
	margin-top: 33px;
}
/* ランキング */
.rank {
	position: absolute;
	top: -33px;
	left: 0;
	height: 33px;
	color: #333;
	font-family: "Poppins", sans-serif;
	font-size: 2.4rem;
	line-height: 1;
	font-weight: 700;
}
.rank::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 17px;
	margin: 0 8px 8px 0;
	background: url(../img/icon_rank.svg) no-repeat 0 0 / cover;
	vertical-align: middle;
}
.rank.gold {
	color: #fbae17;
}
.rank.gold::before {
	background: url(../img/icon_rank_gold.svg) no-repeat 0 0 / cover;
}
.rank.silver {
	color: #808080;
}
.rank.silver::before {
	background: url(../img/icon_rank_silver.svg) no-repeat 0 0 / cover;
}
.rank.bronze {
	color: #dd873a;
}
.rank.bronze::before {
	background: url(../img/icon_rank_bronze.svg) no-repeat 0 0 / cover;
}
.courseBox img {
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
}
.courseBoxIn {
	position: relative;
	padding: 28px;
	font-weight: bold;
}
/* 日程 */
.courseSchedule {
	width: calc(100% - 46px);
	margin-bottom: 7px;
	font-size: 1.8rem;
	line-height: 20px;
}
/* 終了 */
.end {
	display: inline-block;
	width: 40px;
	height: 20px;
	margin-right: 10px;
	border-radius: 3px;
	background-color: #1a1a1a;
	color: #fff;
	font-size: 1.2rem;
	text-align: center;
}
/* 講座名 */
.courseName {
	width: calc(100% - 46px);
	margin-bottom: 15px;
	font-size: 2.2rem;
	line-height: 1.3;
}
.courseName a {
	color: #2b2b2b;
	text-decoration: none;
}
/* カテゴリー */
.categoryList {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 15px;
}
.categoryList li a {
	display: block;
	padding: 0 5px;
	border: 1px solid #2c3391;
	border-radius: 3px;
	color: #2c3391;
	font-size: 1.2rem;
	line-height: 18px;
	font-weight: bold;
	text-decoration: none;
}
.teacherBox .categoryList {
	margin-bottom: 0;
}
/* ハッシュタグ */
.tagList {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.tagList li a {
	color: #6c7889;
	font-size: 1.4rem;
	line-height: 1;
	font-weight: bold;
	text-decoration: none;
}
/* いいねボタン */
.counter {
	position: absolute;
	top: 28px;
	right: 28px;
	width: 36px;
	text-align: center;
}
.likeBtn {
	overflow: hidden;
	width: 36px;
	height: 36px;
	margin-bottom: 5px;
	border-radius: 50%;
	background: #ccc url(../img/icon_like.svg) no-repeat center center / 13px 17px;
	text-indent: 100%;
	white-space: nowrap;
	cursor: pointer;
}
.likeBtn.click {
	background-color: #ea725e;
}
.likeCount {
	color: #999;
	font-family: "Poppins", sans-serif;
	font-size: 1.4rem;
	line-height: 1;
	font-weight: 600;
}
/* NEW */
.courseBox.new::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 56px;
	height: 56px;
	border-top-left-radius: 12px;
	background: url(../img/icon_new.svg) no-repeat 0 0 / 56px 56px;
}
@media print, screen and (min-width: 768px) {
	/* カテゴリー */
	.categoryList li a:hover {
		opacity: 1;
		color: #fff;
		background-color: #2c3391;
	}
	/* いいねボタン */
	.likeBtn {
		opacity: .7;
	}
	.likeBtn:hover {
		background-color: #ea725e;
	}
}
/* ----------------------
 講座ボックス（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.courseBox {
		box-shadow: 0 0 12px 4px rgba(0,0,0,.1);
	}
	.courseBoxIn {
		padding: 23px;
	}
	/* 日程 */
	.courseSchedule {
		width: calc(100% - 40px);
		margin-bottom: 7px;
		font-size: 1.7rem;
	}
	/* 講座名 */
	.courseName {
		width: calc(100% - 40px);
		margin-bottom: 10px;
		font-size: 1.9rem;
	}
	/* カテゴリー */
	.categoryList li a {
		max-width: 100%;
	}
	/* いいねボタン */
	.counter {
		top: 23px;
		right: 23px;
		width: 30px;
	}
	.likeBtn {
		width: 30px;
		height: 30px;
		margin-bottom: 5px;
	}
	.likeCount {
		font-size: 1.2rem;
	}
}

/* ------------------------------
 受講者ボックス（PC）
------------------------------ */
.speechBubble {
	display: block;
	position: relative;
	height: 100%;
	margin-bottom: 33px;
	padding: 28px 38px;
	border-radius: 12px;
	background-color: #fff;
	box-shadow: 0 0 15px 5px rgba(0,0,0,.15);
}
.speechBubble::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -16px;
	left: 0;
	right: 0;
	width: 0;
	height: 0;
	margin: 0 auto;
	border-style: solid;
	border-width: 16px 12px 0 12px;
	border-color: #ffffff transparent transparent;
	filter: drop-shadow(0px 4px 3px rgba(0,0,0,.1));
}
.speechBubble > a {
	color: #2b2b2b;
	text-decoration: none;
}
.voiceTitle {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2; /* 制限したい行数が2の場合 */
	overflow: hidden;
	height: 67px;
	margin-bottom: 10px;
	font-size: 2.1rem;
	line-height: 1.6;
	font-weight: bold;
}
.voiceText {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3; /* 制限したい行数が3の場合 */
	overflow: hidden;
	height: 84px;
	margin-bottom: 15px;
}
/* カテゴリー */
.voiceBox .categoryList {
	overflow: hidden;
	height: 46px;
}
/* ハッシュタグ */
.voiceBox .tagList {
	overflow: hidden;
	height: 28px;
}
/* 受講者 */
.student {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 15px;
}
.student img {
	width: 150px;
	height: 150px;
	border-radius: 50%;
}
.student > div > a {
	color: #2b2b2b;
	font-weight: bold;
	text-decoration: none;
}
.student .occupation,
.voiceDetailBlock .occupation {
	margin-top: 5px;
	color: #6c7889;
	font-size: 1.4rem;
	line-height: 1;
	font-weight: bold;
}
.student .occupation a,
.voiceDetailBlock .occupation a {
	color: #6c7889;
	text-decoration: none;
}
/* ------------------------------
 受講者ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.speechBubble {
		padding: 28px;
		box-shadow: 0 0 12px 4px rgba(0,0,0,.1);
	}
	.speechBubble::after {
		filter: drop-shadow(0px 4px 3px rgba(0,0,0,.06));
	}
	.voiceTitle {
		height: 58px;
		font-size: 1.8rem;
	}
}

/* ------------------------------
 講師ボックス（PC）
------------------------------ */
.teacherBox a {
	color: #2b2b2b;
	text-decoration: none;
}
.teacherBox img {
	display: block;
	width: 246px;
	height: 246px;
	margin: 0 auto 25px;
	border-radius: 50%;
}
.teacherName {
	margin-bottom: 7px;
	font-size: 2.2rem;
	line-height: 1;
	font-weight: bold;
}
.teacherBox a p:nth-of-type(2) {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2; /* 制限したい行数が2の場合 */
	overflow: hidden;
	height: 56px;
}
.teacherText {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3; /* 制限したい行数が2の場合 */
	overflow: hidden;
	height: 100px;
	margin: 12px 0 17px;
	padding-top: 15px;
	border-top: 1px solid #2b2b2b;
}
/* ------------------------------
 講師ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
}

/* ------------------------------
 講座検索（PC）
------------------------------ */
.searchBlock {
	position: relative;
	padding-bottom: 70px;
	background-color: #fff;
	box-shadow: 0 0 15px 5px rgba(0,0,0,.15);
}
.searchBlock::after {
	content: "";
	display: block;
	position: absolute;
	top: -75px;
	right: 40px;
	width: 160px;
	height: 82px;
	background: url(../img/img_squirrel.png) no-repeat 0 0 / cover;
}
.search_box {
	padding: 30px 50px;
}
.search_box:not(:last-of-type) {
	border-bottom: 1px solid #ddd;
}
.searchItem,
.searchContent {
	line-height: 1;
}
.searchItem {
	font-weight: bold;
}
.searchContent {
	display: flex;
	flex-wrap: wrap;
}
.searchContent input[type='text'] {
	width: 100%;
	height: 56px;
	padding: 0 25px;
	background-color: #f2f2f2;
	border-radius: 28px;
	line-height: 56px;
}
.searchBlock > form > .tac {
	margin-top: 50px;
}
.more_btn {
	display: inline-block;
	position: relative;
	padding-right: 30px;
	background-color: transparent;
	color: #2b2b2b;
	line-height: 22px;
	font-weight: bold;
	cursor: pointer;
}
.more_btn::before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	right: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background-color: #c11920;
}
.more_btn::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 6px;
	right: 7px;
	width: 6px;
	height: 6px;
	border: 0;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(135deg);
}
.more_btn.close::after {
	top: 8px;
	transform: rotate(-45deg);
}
.more_btn:focus {
	background-color: transparent;
}
@media print, screen and (min-width: 768px) {
	.searchBlock {
		width: 1140px;
		margin-left: auto;
		margin-right: auto;
		border-radius: 15px;
	}
	.search_box {
		display: flex;
	}
	.search_box:first-of-type {
		align-items: center;
		padding: 35px 50px;
	}
	.searchItem {
		width: 170px;
	}
	.searchContent {
		width: 870px;
		gap: 1em 3.5em;
	}
}
/* ----------------------
 講座検索（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.searchBlock {
		padding-bottom: 60px;
		box-shadow: 0 0 12px 4px rgba(0,0,0,.1);
	}
	.searchBlock::after {
		top: -38px;
		right: 8.7%;
		width: 80px;
		height: 41px;
	}
	.search_box {
		padding: 30px 8.7%;
	}
	.searchItem {
		margin-bottom: 15px;
	}
	.searchContent {
		gap: 10px 1.5em;
		line-height: 1.5;
	}
	.searchContent input[type='text'] {
		height: 46px;
		line-height: 46px;
	}
	.searchBlock > form > .tac {
		margin-top: 40px;
	}
	/* 下層用 */
	.contentsWide > .inBlock > .cms_block.searchBlock {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
}

/* ------------------------------
 検索結果一覧（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	.courseResults {
		display: flex;
		flex-wrap: wrap;
		gap: 33px
	}
	.courseResults > li {
		width: 358px;
	}
}
/* ----------------------
 検索結果一覧（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.courseResults > li {
		margin-bottom: 25px;
	}
}

/* ------------------------------
 検索結果一覧ページャー（PC）
------------------------------ */
.pager {
	display: flex;
	justify-content: center;
	gap: 1em;
}
.pager > li {
	font-size: 1.7rem;
	line-height: 22px;
	font-weight: bold;
}
.pager > li > a {
	display: block;
	position: relative;
	padding: 0 .5em;
	color: #2b2b2b;
	line-height: 22px;
	text-decoration: none;
}
.pager > li.on > a {
	color: #c11920;
}
.pager > li:first-child > a,
.pager > li:last-child > a {
	overflow: hidden;
	position: relative;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background-color: #606060;
	text-indent: 250%;
	white-space: nowrap;
}
.pager > li:first-child > a::after,
.pager > li:last-child > a::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 8px;
	width: 6px;
	height: 6px;
	margin: auto 0;
	border-right: solid 2px #fff;
	border-bottom: solid 2px #fff;
	transform: rotate(135deg);
}
.pager > li:last-child > a::after {
	left: auto;
	right: 8px;
	transform: rotate(-45deg);
}
.pager > li.none > a {
	visibility: hidden;
}
@media print, screen and (min-width: 768px) {
	.courseResults > li {
		width: 358px;
	}
	.pager > li > a:hover {
		opacity: 1;
		color: #c11920;
	}
	.pager > li:first-child > a:hover,
	.pager > li:last-child > a:hover {
		background-color: #c11920;
	}
}

/* ------------------------------
 検索結果一覧ページャー（SP）
------------------------------ */
@media screen and (max-width: 359px) {
	.pager > li > a {
		padding: 0 .3em;
	}
}

/* ------------------------------
 コメント一覧（PC）
------------------------------ */
.commentBox {
	display: flex;
}
.commentBox > .w1-2 {
	position: relative;
	padding: 33px 40px 40px;
	border-radius: 10px;
	background-color: #fff;
	box-shadow: 0px 0px 15px 5px rgba(0,0,0,.15);
}
.commentBox > .w1-2::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -18px;
	left: 0;
	right: 0;
	width: 0;
	height: 0;
	margin: 0 auto;
	border-style: solid;
	border-width: 18px 13px 0 13px;
	border-color: #fff transparent transparent transparent;
	filter: drop-shadow(0 4px 3px rgba(0,0,0,.1));
}
.commentBox > .w1-2 > a {
	display: inline-block;
	margin-bottom: 15px;
	font-weight: bold;
	text-decoration: none;
}
.commentBox > .w1-2 > a::after {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 0 3px 5px;
	border-top: 1px solid #6c7889;
	border-right: 1px solid #6c7889;
	vertical-align: middle;
	transform: rotate(45deg);
}
.commentBox > .w1-2 > p + p {
	margin-top: 10px;
}
@media print, screen and (min-width: 768px) {
	.commentBox {
		flex-wrap: wrap;
		gap: 48px;
	}
}
/* ------------------------------
 コメント一覧（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.commentBox {
		flex-direction: column;
		row-gap: 38px;
	}
	.commentBox > .w1-2 {
		padding: 24px 25px 22px;
		box-shadow: 0px 0px 12px 4px rgba(0,0,0,.1);
	}
	.commentBox > .w1-2::after {
		filter: drop-shadow(0 4px 3px rgba(0,0,0,.06));
	}
	.commentBox > .w1-2 > p + p {
		margin-top: 5px;
	}
}

/* ------------------------------
 バナーリンク（PC）
------------------------------ */
.bannerLink > a {
	display: block;
	position: relative;
	margin: 0 auto;
	border-radius: 15px;
	background-color: #fff;
	color: #fff;
	text-decoration: none;
	text-align: center;
}
.bannerLink > a > img {
	border-radius: 15px;
}
.bannerLink > a > div {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: -31px auto 0;
	z-index: 1;
}
.bannerLink > a p {
	position: relative;
	line-height: 1;
}
.bannerLink > a p:first-of-type::before,
.bannerLink > a p:first-of-type::after {
	content: "/";
	display: inline-block;
	margin: 0 5px;
}
.bannerLink > a p:first-of-type::before {
	transform: scale(-1, 1);
}
.bannerLink > a p:last-of-type {
	display: inline-block;
	margin-top: 15px;
	padding-right: 32px;
	font-size: 2.6rem;
	font-weight: bold;
}
.bannerLink > a p:last-of-type::before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 24px;
	height: 24px;
	margin: auto 0;
	border-radius: 50%;
	background-color: #c11920;
}
.bannerLink > a p:last-of-type::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 9px;
	width: 6px;
	height: 6px;
	margin: auto;
	border-right: solid 2px #fff;
	border-bottom: solid 2px #fff;
	transform: rotate(-45deg);
}
@media print, screen and (min-width: 768px) {
	.bannerLink > a,
	.bannerLink > a > img {
		width: 780px;
		height: 280px;
		transition: .3s ease-in-out;
	}
}
/* ------------------------------
 バナーリンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.bannerLink > a,
	.bannerLink > a > img {
		border-radius: 10px;
	}
	.bannerLink > a > div {
		margin: -26px auto 0;
	}
	.bannerLink > a p:last-of-type {
		margin-top: 10px;
		padding-right: 28px;
		font-size: 2.1rem;
	}
	.bannerLink > a p:last-of-type::before {
		width: 20px;
		height: 20px;
	}
	.bannerLink > a p:last-of-type::after {
		right: 8px;
		width: 4px;
		height: 4px;
	}
}
@media screen and (max-width: 359px) {
	.bannerLink > a p:last-of-type {
		font-size: 1.8rem;
	}
}