@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 {
	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;
}

#wrap {
	width: 100%;
	overflow: hidden;
	margin: 0 auto;
}

.contents {
	width: 1000px;
	margin: 0 auto;
}

@media only screen and (max-width: 896px) {
	.contents {
		width: 100%;
		padding: 0 20px;
	}

	.contents.no-padding {
		width: 100%;
		padding: 0;
	}
}

a {
	color: #111;
}

a:link {
	text-decoration: none;
}

/* pc sp表示切替 */
.pc {
	display: block !important;
}

.sp {
	display: none !important;
}

.pc480 {
	display: block !important;
}

.sp480 {
	display: none !important;
}

@media only screen and (max-width: 896px) {
	.pc {
		display: none !important;
	}

	.sp {
		display: block !important;
	}
}

@media only screen and (max-width: 480px) {
	.pc480 {
		display: none !important;
	}

	.sp480 {
		display: block !important;
	}
}


/*================================================
 *  ヘッダー
 ================================================*/
header {
	padding: 0.5rem 0;
}

header h1 {
	line-height: 1;
}


header h1 img {
	width: 17%;
	height: auto;
}

/*ヘッダー　キービジュアル */
.mainvisual {
	text-align: center;
	margin: 0 auto 1.0rem;
}

@media only screen and (max-width: 599px) {
	.mainvisual img {
		max-width: 100%;
	}
}

/* ヘッダー下ボタン*/
.btn-heading{
    display: flex;
    justify-content: space-between;
}

.btn-heading .left{
    display: block;
    width: 55%;
}
.btn-heading .right{
    display: block;
    width: 40%;
}

.btn-heading a {
	display: block;
	background-color: #eff0e3;
    border: 1px solid #cbcdb5;
	border-radius: 10px;
	-webkit-transition: .4s;
	transition: .4s;
	margin: 1.0rem 0 0;
}

.btn-heading a:hover {
	background: #ff5400;
}

.btn-heading a:hover p {
	color: #fff;
}


.btn-heading a .btn-headingJisseki {
	color: #000;
	font-size: 0.7em;
	text-align: right;
    display: block;
    margin-top: -2rem;
}

.btn-heading p {
	padding: 0.5rem 2.0rem;
	font-size: 1rem;
	line-height: 130%;
    text-align: center;
}

.btn-heading p span{
	font-weight: bold;
}



.kouzaThisWeek{
    text-align: center;
    margin: 3rem 0 -1rem;
}
.introcopy {
    position: relative;
    display: inline-block;
    padding: 0 45px;
    font-weight: bold;
    font-size: 1.6rem;
}
.introcopy:before{
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 44px;
    height: 2px;
    background-color: black;
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
}
.introcopy:before {
    left:0;
}
.introcopy:after {
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 44px;
    height: 2px;
    background-color: black;
    -webkit-transform: rotate(-60deg);
    transform: rotate(-60deg);
}
.introcopy:after {
    right: 0;
}



@media only screen and (max-width: 540px) {
	header h1 img {
		width: 25%;
	}
	
    .btn-heading p {
        padding: 0.5rem 2.0rem;
        font-size: 0.7rem;
        line-height: 120%;
        text-align: center;
    }
    .btn-heading a .btn-headingJisseki {
        color: #000;
        font-size: 0.7em;
        text-align: right;
        display: block;
        margin-top: -1rem;
    }

    .kouzaThisWeek{
        text-align: center;
        margin: 2rem 0 0rem;
    }
	.introcopy {
		display: block;
		width: 100%;
		margin-bottom: 0.3rem;
		font-size: 1.2rem;
	}
}

@media only screen and (max-width: 375px) {
	.introcopy {
		font-size: 1rem;
	}
    .introcopy:before{
        width: 22px;
        height: 2px;
    }

    .introcopy:after {
        width: 22px;
        height: 2px;
    }
}


/* NHKカルチャーとは*/
.heading {
	width: 1000px;
	display: block;
	margin: 0 auto;
	font-size: 0.9rem;
}

@media only screen and (max-width: 896px) {
	.heading {
		width: 95%;
	}
}


.heading01 {
	display: flex;
	justify-content: center;
	margin-bottom: 0.6rem;
}

.heading01 span {
	display: inline-block;
	position: relative;
	background: rgb(255,51,0);
	background: linear-gradient(90deg, rgba(255,51,0,1) 0%, rgba(252,147,53,1) 33%, rgba(252,147,53,1) 66%, rgba(255,51,0,1) 100%);
	box-sizing: border-box;
	height: 38px;
	line-height: 38px;
	text-align: center;
	padding: 0 4.0rem;
	color: #fff;
	font-size: 1.3rem;
	font-weight: bold;
}

.heading01 span:before, .heading01 span:after {
	position: absolute;
	content: '';
	width: 0px;
	height: 0px;
	z-index: 1;
}

.heading01 span:before {
	top: 0;
	left: 0;
	border-width: 19px 0px 19px 1.5rem;
	border-color: transparent transparent transparent #fff;
	border-style: solid;
}

.heading01 span:after {
	top: 0;
	right: 0;
	border-width: 19px 1.5rem 19px 0px;
	border-color: transparent #fff transparent transparent;
	border-style: solid;
}

.features {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.features dl {
	display: block;
	position: relative;
	width: 31%;
	background-color: #e9f4ea;
	padding: 0.5rem 0;
}

.features dt {
	display: inline-block;
	position: relative;
	box-sizing: border-box;
	background: linear-gradient(90deg, rgba(255,120,174,1) 0%, rgba(255,64,144,1) 100%);
	padding: 0.5rem 1.0rem 0.3rem;
	margin: 0 0 0 -10px;
	width: calc(100% + 10px);
	color: #fff;
	font-size: 1.4rem;
	font-weight: bold;
	line-height: 1;
}

.features dt:before {
	position: absolute;
	content: '';
	top: 100%;
	left: 0;
	border: none;
	border-bottom: solid 5px transparent;
	border-right: solid 10px #c03871;
}

.features dd {
	padding: 0.5rem 0.5rem 0.2rem;
	color: #510f1e;
	font-size: 0.85rem;
}

@media only screen and (max-width: 540px) {
	.heading01 span {
		width: 100%;
		padding-right: 1.0rem;
		padding-left: 1.0rem;
		font-size: 0.9rem;
	}
	.heading01 span:before {
		border-width: 19px 0px 19px 1.0rem;
	}
	.heading01 span:after {
		border-width: 19px 1.0rem 19px 0px;
	}
	.features {
		margin-left: 2.5%;
	}
	.features dl {
		display: flex;
		align-items: flex-start;
		width: 100%;
		margin-bottom: 2%;
	}
	.features dt {
		width: 30%;
		padding: 0.3rem 0.5rem;
		font-size: 0.8rem;
	}
	.features dt span {
		margin-right: 0.3rem;
		font-size: 1.1rem;
	}
	.features dd {
		width: 70%;
		padding: 0 0 0 0.5rem;
		line-height: 1.4;
		font-size: 0.75rem;
	}
}

@media only screen and (max-width: 320px) {
	.heading01 span {
		font-size: 0.8rem;
	}
	.heading01 span:before {
		border-width: 19px 0px 19px 0.6rem;
	}
	.heading01 span:after {
		border-width: 19px 0.6rem 19px 0px;
	}
}



/*================================================
 *  フッター
 ================================================*/
footer {
	clear: both;
	padding-bottom: 30px;
	margin-top: 80px;
}

.fnav {
	margin: 0 auto;
}

.fnav>ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

.fnav>ul li {
	text-align: center;
	margin: 1.0rem;
}

.fnav>ul li img {
	width: 50px;
	height: auto;
}

.copyright {
	padding: 10px;
	text-align: center;
}

@media screen and (max-width:750px) {
	footer {
		margin-top: 40px;
		padding-bottom: 0;
	}

	.fnav {
		display: block;
		margin: 0;
	}

	.fnav img {
		width: 50%;
	}

	.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;
}


/*================================================
 *  タブ
 ================================================*/
.tab {
	position: relative;
	background: #fff;
	width: 100%;
	margin: 5.0rem 0 2.0rem;
}

.tab::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	border-bottom: 1px solid #00489c;
	width: 100%;
	z-index: 0;
}

#wrap>.tab:first-of-type {
	margin-top: 1.5rem;
}

.tab ul {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	list-style: none;
	width: 1000px;
	margin: 0 auto;
}

.tab li {
	background-color: #d2ddea;
	border-radius: 5px 5px 0 0;
	width: calc(16.666% - 5px);
	/*width: calc(14.2857% - 5px);*/
	text-align: center;
}

.tab li:last-child {
	margin-right: 0;
}

.tab li.active,
.tab li:hover {
	border: 1px solid #00489c;
	border-bottom: 0;
	background-color: #fff;
	color: #fff;
	font-weight: bold;
	z-index: 1;
}

.tab li a {
	display: block;
	padding: 0.8rem 0.5rem;
}

@media screen and (max-width:896px) {
	.tab {
		margin: 3.0rem 0 1.5rem;
	}

	#wrap>.tab:first-of-type {
		margin-top: 2.0rem;
	}

	.tab ul {
		width: 100%;
		padding: 0 0.5rem;
		font-size: 0.9rem;
	}
}

@media screen and (max-width:480px) {
	.tab {
		margin: 2.0rem auto 0.5rem;
	}

	.tab::after {
		border-bottom: 0;
	}

	#wrap>.tab:first-of-type {
		margin-top: 0.5rem;
	}

	.tab ul {
		align-items: center;
		font-size: 0.8rem;
	}

	.tab li {
		border-radius: 5px;
		width: calc(33.333% - 5px);
		/*width: calc(25% - 5px);*/
		padding: 0.5rem 0;
		margin-bottom: 0.5rem;
	}

	.tab li.active,
	.tab li:hover {
		border: 1px solid #00489c;
	}

	.tab li a {
		padding: 0.5rem 0.2rem;
		line-height: 1.2;
	}
}


/*================================================
 *  カセット
 ================================================*/
.cstContainer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0 auto;
}

.cstContainer::after,
.cstContainer::before {
	/* 空カセット */
	content: "";
	display: block;
	background: linear-gradient(0deg, #fff 0%, #fff 1.5rem, #ececec 1.5rem, #ececec 100%);
	width: 32%;
}

.cstContainer::before {
	order: 1;
}

.cst {
	position: relative;
	background-color: #ffece3;
	width: 32%;
	height: auto;
	margin-bottom: 1.5rem;
}

.cst::after {
	/* 右下三角 */
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 0;
	height: 0;
	border-left: 20px solid transparent;
	border-bottom: 20px solid #ff5400;
}

.cst:nth-child(even) {
	background-color: #e4eadf;
}

.cst:nth-child(even)::after {
	border-bottom: 20px solid #639632;
}

.cst:hover {
	background-color: #ff9;
	transition: .4s;
}


@media only screen and (max-width: 896px) {

	.cstContainer::after,
	.cstContainer::before {
		display: none;
	}

	.cst {
		width: 49%;
	}
}

@media only screen and (max-width: 480px) {
	.cst {
		width: 100%;
		height: auto;
	}
}

/*-- 開催日時・回数 --*/
.cst .date {
	display: flex;
	background-color: #ffa97f;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
}

.cst .date dt {
	padding: 0.1rem 0.8rem;
	background-color: #ff5400;
	color: #fff;
}

.cst .date dt span {
	font-size: 0.75rem;
}

.cst .date dt span::before {
	content: "／";
}

.cst .date dd {
	padding: 0.1rem 0.5rem;
}

.cst:nth-child(even) .date {
	background-color: #b2d98c;
}

.cst:nth-child(even) .date dt {
	background-color: #639632;
}

/*-- 講座名 --*/
.cst .koza_title {
	padding: 0 0.5rem 0.3rem;
	line-height: 1.4;
	color: #00489c;
	font-size: 1.0em;
	font-weight: bold;
}

/*-- 講師名 --*/
.cst .name {
	padding: 0 0.5rem 0.5rem;
	font-size: 0.9rem;
	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: 120px;
	height: 120px;
}
.cst .detail .ph img {
	width: 120px;
	height: 120px;
	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;
}


/*================================================
 *  ジャンルへ飛ぶボタン
 ================================================*/
.btn-goto-NCUL li {
	margin-bottom: 1.0rem;
}

.btn-goto-NCUL a {
	display: block;
	width: 50%;
	margin-left: auto;
	background-color: #fff;
	border: 1px solid #00489c;
	border-radius: 5px;
	padding: 0.8rem 1.0rem;
	margin: 0 0 0 auto;
	text-align: center;
	color: #00489c;
	font-weight: bold;
}

.btn-goto-NCUL a:hover {
	background: #00489c;
	color: #fff;
	transition: .4s;
}

@media only screen and (max-width: 896px) {
	.btn-goto-NCUL a {
		width: 100%;
	}
}

@media only screen and (max-width: 480px) {
	.btn-goto-NCUL a {
		margin: 0 0 0 auto;
		font-size: 0.9rem;
	}
}


/*================================================
 *  お申込み方法
 ================================================*/
.howtoentry {
	margin: 5.0rem auto;
}

.howtoentry .easyentry {
	color: #6fba2c;
	display: flex;
	align-items: center;
	font-size: 1.6rem;
	justify-content: center;
}

.howtoentry .easyentry:before,
.howtoentry .easyentry:after {
	content: "";
	height: 1px;
	flex-grow: 1;
	background-color: #6fba2c;
}

.howtoentry .easyentry:before {
	margin-right: 1.0rem;
}

.howtoentry .easyentry:after {
	margin-left: 1.0rem;
}

@media screen and (max-width:480px) {
	.howtoentry {
		margin: 3.0rem auto 2.0rem;
	}

	.howtoentry .easyentry {
		text-align: center;
		font-size: 1.2rem;
		font-weight: bold;
		line-height: 120%;
	}
}

.howtoentry .tejyun {
	display: flex;
	flex-wrap: wrap;
	margin: 30px auto 20px;
	justify-content: space-between;
}

.howtoentry .tejyun .tejyun_inner {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	flex-basis: 300px;
	width: 300px;
	padding: 5px;
	border: 1px solid #6fba2c;
	align-items: center;
}

.newentry a {
	position: relative;
	background: rgba(253, 255, 196, 1.00);
}

.newentry a:hover {
	background: rgba(128, 205, 255, 1.00);
}

.howtoentry .tejyun .tejyun_inner .entry_title {
	flex-basis: 100%;
	font-size: 1.1rem;
	font-weight: bold;
	padding: 0.2em;
	text-align: center;
	color: #000;
}

.howtoentry .tejyun .tejyun_inner .entry_txt {
	border-top: 1px dashed #6fba2c;
	font-size: 0.8rem;
	padding: 0.3em;
	color: #000;
}

.howtoentry .tejyun .sankaku {
	color: #6fba2c;
	font-size: 1.2rem;
	margin-top: 30px;
}

.howtoentry .entryInfo {
	text-align: right;
	font-size: 0.9rem;
	font-weight: bold;
}

.howtoentry .entryInfo a {
	color: #043771;
}

.howtoentry .entryInfo a:hover {
	background-color: #FFF06D;
}

.howtoentry .entryInfo a:visited {
	color: #043771;
}

@media screen and (max-width:896px) {
	.howtoentry .tejyun {
		margin: 1.0rem auto 2.0rem;
	}

	.howtoentry .tejyun .tejyun_inner {
		flex-basis: 30%;
		width: 30%;
	}

	.howtoentry .tejyun .sankaku {
		margin-top: 3.0rem;
	}
}

@media screen and (max-width:480px) {
	.howtoentry .tejyun {
		justify-content: center;
		flex-flow: column;
		height: auto;
		margin: 1.0em auto;
	}

	.howtoentry .tejyun .tejyun_inner {
		flex-basis: 100%;
		width: 100%;
	}

	.howtoentry .tejyun .tejyun_inner .entry_txt {
		display: block;
		text-align: center;
		width: 100%;
	}

	.howtoentry .tejyun .sankaku {
		margin-top: 0;
		text-align: center;
	}
}

/*----- よくあるご質問 -----*/
.faq {
	background-color: #DAE8EF;
	width: 100%;
	padding: 20px;
	position: relative;
	margin: 60px auto;
}

.faq h5.faqTitle {
	text-align: center;
	color: #E56868;
	border-bottom: 2px solid #65BBDF;
	font-size: 1.4rem;
	font-weight: bold;
	padding-bottom: 20px;
	margin: 30px auto;
}

.faq div {
	width: 896px;
}

.faq .faqQ dt {
	background-color: #fff;
	font-size: 1.4rem;
	padding: 0.2em 1em 0.2em 0.7em;
	margin: 0 0.5em 1em 0;
	color: #4996B5;
	float: left;
	width: 3rem;
}

.faq .faqQ dd {
	background-color: #EBF4F7;
	padding: 0.5em;
	line-height: 1.8em;
}

.faq .faqA {
	display: block;
	margin: 0.5rem 0 0;
	padding-bottom: 2em;
	padding-left: 4rem;
}

@media screen and (max-width:896px) {
	.faq div {
		width: 100%;
	}

	.faq .faqQ dt {
		font-size: 1.2rem;
		padding: 0.5rem;
		margin: 0 1.0rem 1.1rem 0.5rem;
		width: 2.0rem;
	}

	.faq .faqQ dd {
		display: block;
		line-height: 140%;
	}

	.faq .faqA {
		padding-left: 0;
	}
}

@media screen and (max-width:480px) {
	.faq {
		padding: 1.0rem 0;
		margin: 0;
	}

	.faq h5.faqTitle {
		padding-bottom: 0;
		margin: 0 auto 1.0rem;
	}
}


/*================================================
 *  カテゴリ見出し
 ================================================*/

h4 {
    position: relative;
    padding: 5px 5px 2px 45px;
    background: linear-gradient(to right, #007CFF, #fff);
    font-size: 1.3rem;
    color: white;
    line-height: 1.4;
    width:100%;
    font-weight: bold;
    margin-bottom: 10px;
}

h4:before {
  position: absolute;
  content: '';
  left: -2px;
  top: -2px;
  border: none;
  border-left: solid 40px #fff;
  border-bottom: solid 40px transparent;
}

h4.shinchaku {
    background: linear-gradient(to right, #FF0067, #FFF0A7);
}
h4.shinchaku:before {
  border-left: solid 40px #FFF0A7;
}


h5.cate {
	position: relative;
	padding: 0.5rem 0 0.5rem 2.0rem;
	font-size: 1.5rem;
	font-weight: bold;
}

h5.cate::before,
h5.cate::after {
	display: inline-block;
	position: absolute;
	transform: translateY(-50%);
	width: 12px;
	height: 12px;
	border: 2px solid #007CFF;
	content: '';
}

h5.cate::before {
	top: calc(50% - 3px);
	left: 0;
}
h5.cate::after {
	top: calc(50% + 3px);
	left: 5px;
}

@media only screen and (max-width: 599px) {
	h5.cate {
		font-size: 1.2rem;
	}
}


/*================================================
 *  新着の背景
 ================================================*/
.shinchakuBG{
    background-color: #FFF0A7;
	margin-bottom: 2.0rem;
    padding-top: 1rem;
}

.shinchakuBG .cst:hover {
	background-color: #fff;
	transition: .4s;
}


.shinchakuBG .cstContainer::after,
.shinchakuBG .cstContainer::before { /* 空カセット */
	content:"";
	display: block;
	background: linear-gradient(0deg,#FFF0A7 0%,#FFF0A7 1.5rem,#ececec 1.5rem,#ececec 100%);
	width: 32%;
}



