@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;
	margin: 0;
	padding: 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;
}

@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;
	}

}

/*-- pc sp表示切替 --*/
.pc { display: block !important; }
.sp { display: none !important; }
@media only screen and (max-width: 599px) {
	.pc { display: none !important; }
	.sp { display: block !important; } 
}

.pc480 { display: block !important; }
.sp480 { display: none !important; }
@media only screen and (max-width: 480px) {
	.pc480 { display: none !important; }
	.sp480 { display: block !important; }
}
.pc768 { display: block !important; }
.sp768 { display: none !important; }
@media only screen and (max-width: 768px) {
	.pc768 { display: none !important; }
	.sp768 { display: block !important; }
}
.txtS {
	font-size: 0.85rem;
}

em {
	font-weight: bold;
}



/*================================================
 *  ヘッダー
 ================================================*/
/* ロゴ */
header h1 img {
	width: 17%;
	height: auto;
	margin: 0.5rem 0;
}

/*-- キービジュアル --*/
.mainvisual {
	width: 100%;
	margin: 0 auto 1.0rem;
	text-align: center;
}
@media only screen and (max-width: 896px) {
	.mainvisual {
		margin: 0 auto 0.5rem;
		min-height: auto;
	}
	.mainvisual img{
		width: 100%;
	}
}


/*================================================
 *  フッター
 ================================================*/
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;
}


/*================================================
 *  コンテンツ
 ================================================*/
 /*-- リード文 --*/
 .lead {
	margin-bottom: 1.0rem;
	text-align: center;
	font-size: 1.2rem;
	font-weight: bold;
	font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
 }
@media screen and (max-width: 480px) {
	 .lead {
		font-size: 0.8rem;
		text-align: left;
		font-weight: normal;
	 }
}

/*-- ナビエリア --*/
.navi{
	background:url("../images/navi_bg.png") no-repeat center #f2e8cd;
}
.navi-cap{
	padding-top: 0.5rem;
	font-size: 1.4rem;
	font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.navi-cap::before,
.navi-cap::after {
  content: '';
  display: block;
  width: 10%; /* 線の長さ */
  height: 1px; /* 線の太さ */
  background-color: #333; /* 線の色 */
}

.navi-cap::before {
  margin-right: 1em; /* 文字と左の線の間隔 */
}

.navi-cap::after {
  margin-left: 1em; /* 文字と右の線の間隔 */
}


@media screen and (max-width: 480px) {
	.navi{
		background:url("../images/navi_bg_sp.png") no-repeat center #f2e8cd;
	}
	.navi-cap{
		padding-top: 0.5rem;
		font-size: 1.0rem;
	}
}

/*-- タブ --*/
.tab {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;

	max-width: 1000px;
	width: 100%;

	margin: 0 auto;
	padding: 0.5rem 0 1.0rem;

	list-style: none;
	gap: 16px;
}

.tab li {
	width: calc((100% - 48px) / 4);
}

.tab li a {
	display: block;
}

.tab li a img {
	display: block;
	width: 100%;
	height: auto;
}

.tab li a img:hover {
	transition: .4s;
	opacity: .6;
}

/* Tablet */
@media screen and (max-width: 768px) {
	.tab {
		gap: 10px;
	}
}
/* Smartphone */
@media screen and (max-width: 480px) {
	.tab {
		justify-content:center;
		gap: 15px 8px;
		padding: 0.5rem 10px 1.0rem;
	}
	.tab li {
		width: calc((90% - 8px) / 2);
		margin: 0 auto;
	}
}


/*-- 特別展バナー --*/
.banner {
	margin: 0 auto 1.0rem;
	text-align: center;
}
.banner img {
	box-shadow: 3px 3px 3px 0px rgba(0, 0, 0, 0.2);
}
.banner img:hover {
	transition: .4s;
	opacity: .6;
}

@media screen and (max-width: 999px) {
	.banner img{
		width: 100%;
	}
}



/* ==========================
   ナビ下ページ内リンク開催教室から探すボタン
========================== */
.school-search-wrap {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	max-width: 1200px;
	margin: 1.0rem auto 0;
	padding: 0 20px;
	box-sizing: border-box;
}

.school-search-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;

	padding: 12px 24px;

	background: #f4eedc;
	border: 0;
	border-radius: 9999px;

	color: #3a3126;
	cursor: pointer;

	font-family:"Yu Mincho","Hiragino Mincho ProN",serif;

	font-size: clamp(18px, 1.3vw, 22px);
	line-height: 1;
	letter-spacing: .05em;
	box-shadow: 2px 2px 4px gray;
}

.school-search-btn:hover {
	transition: 0.4s;
	background: #BD91CD;
	color: #fff;
}

.school-search-btn__icons img {
	display: block;
	width: 58px;
	height: auto;
}

.school-search-btn__text {
	white-space: nowrap;
}

.school-search-btn__arrow {
	width: 0;
	height: 0;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-top: 16px solid #000;
}

/* SP */
@media (max-width: 768px) {
	.school-search-wrap {
		margin: 0.8rem auto;
		padding: 0 15px;
	}

	.school-search-btn {
		padding: 10px 16px;
		gap: 8px;
	}

	.school-search-btn__icons img {
		width: 40px;
	}

	.school-search-btn__text {
		font-size: 15px;
	}

	.school-search-btn__arrow {
		border-left-width: 8px;
		border-right-width: 8px;
		border-top-width: 13px;
	}
}


/*-- 見出し --*/
.contents h2 {
	padding: 2.0rem 0 1.0rem;
}
.contents h2.kankeisha {
	padding: 1.0rem 0 1.0rem;
}

.contents h3 {
	margin-bottom: 1.0rem;
}

@media only screen and (max-width: 999px) {
	.contents h2 {
		padding: 1.0rem 0 1.0rem;
	}
	.contents h2 img,
	.contents h3 img {
		max-width: 100%;
	}
}


/*================================================
 *  講座カセット　グリッドレイアウト
 ================================================*/
 .cstContainer {
	display : flex;
  flex-wrap : wrap;
  justify-content:space-between;
	width: 100%;
	margin: 0 auto;
}
.cstContainer::after{
  content:"";
  display: block;
  width:32%;
}

.cst {
	background-color: #fff;
	border: 1px solid #1f5869;
	width: 32%;
	height: auto;
	margin-bottom: 2rem;
}
.cate02 .cst { border-color: #791c2c; }
.cate03 .cst { border-color: #2f452a; }
.cate04 .cst { border-color: #36346b; }

@media only screen and (max-width: 896px) {
	.cst {
		width: 48%;
	}
}
@media only screen and (max-width: 480px) {
	.cst {
		width: 100%;
	}
}

/*----- 講座名 -----*/
.koza_title {
	display: block;
	overflow: hidden;
	background-color: #1f5869;
	padding: 0.5rem;
	line-height: 1.2;
	color: #fff;
	font-size: 1.15rem;
	font-weight: bold;
}
.cate02 .koza_title { background-color: #791c2c;}
.cate03 .koza_title { background-color: #2f452a;}
.cate04 .koza_title { background-color: #36346b;}


/*----- 講師名 -----*/
.name {
	padding: 0.2rem 0.5rem 0;
	font-weight: bold;
	line-height: 1.3;
}
.name span {
	font-size: 0.75rem;
}

/*----- 講座詳細 -----*/
.cst-in {
	display: flex;
	padding: 0.2rem 0.5rem 0;
}

/*-- 画像 --*/
.koza_ph {
	position: relative;
	width: 140px;
	height: 140px;
}
.koza_ph img {
	width: 140px;
	height: 140px;
	object-fit: cover;
	border: 1px solid #ccc;
}
.koza_ph p { /*注釈*/
	position: absolute;
	bottom: 0;
	left: 0;
	background:rgba(0,0,0,0.5);
	padding: 0.2rem;
	color: #fff;
	font-size: 0.7rem;
	line-height: 1;
}

/*-- テキスト --*/
.detail {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 0 0 0 0.5rem;
}
/* コピー */
.detail p {
	font-size: 0.85rem;
	line-height: 1.5;
}

/*-- 開催日時 --*/
.koza_date {
	display: flex;
	align-items: stretch;
	background-color: #b8d1d8;
	padding: 0 0.5rem;
	margin: 0.5rem 0;
}

.koza_date span,
.koza_date p {
	display: flex;
	align-items: center;
}
.koza_date p {
	line-height: 1.15rem;
}
.koza_date span {
	width: 3.0rem;
	background-color: #53757f;
	padding: 0.5rem 0;
	margin-right: 0.5rem;
	color: #fff;
	font-size: 1.0rem;
	justify-content: center;
}
.cate02 .koza_date { background-color: #dfc4c9; }
.cate02 .koza_date span { background-color: #a15f6b; }
.cate03 .koza_date { background-color: #d6e2d3; }
.cate03 .koza_date span { background-color: #5f7c58; }
.cate04 .koza_date { background-color: #bebed5; }
.cate04 .koza_date span { background-color: #535273; }

/* 複数行 */
.koza_date dl {
	margin: 0.2rem 0;
}
.koza_date dt {
	font-size: 0.9rem;
	font-weight: bold;
}
.koza_date dd {
	font-size: 0.9rem;
	line-height: 0.9;
	padding-bottom: 0.3rem;
}

/* 途中回 */
.tochu {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	display: inline-block;
	background: #CACF18;
	border-radius: 50px;
	padding: 0.3rem 2.0rem 0.1rem;
	margin-bottom: 0.5rem;
}
.tochu:before {
	content: "";
  position: absolute;
  top: -11px;
  left: 50%;
  z-index: 0;
  border: 3px solid transparent;
  border-bottom: 8px solid #CACF18;
  margin-left: -3px;
}
.tochu p {
	color: #3E3E3E;
	font-size: 0.85rem;
	font-weight: bold;
}

/*-- 開催日時（画像横ver）_文化体験 --*/
.edobunka.taiken .cst-in {
	margin-bottom: 0.5rem;
}
.edobunka.taiken .detail .koza_date {
	display: block;
	margin-top: 0;
}
.edobunka.taiken .detail .koza_date span {
	display: block;
	margin: 0 auto;
	text-align: center;
	line-height: 1;
}
.edobunka.taiken .detail p {
	font-size: 1.0rem;
}
.edobunka.taiken .detail .tochu {
	margin: 0.5rem 0 0;
}
.edobunka.taiken .detail .tochu p {
	text-align: center;
	line-height: 1.15;
	font-size: 0.85rem;
    padding:0.1rem 0;
}


/*-- ボタン --*/
.btn {
	margin: 0 0.5rem;

}
.btn li {
	margin-bottom: 0.5rem;
}
.btn li a {
	position: relative;
	display: block;
	background-color: #655f3d;
	border-radius: 5px;
	padding: 0.5rem 0 0.4rem 1.3rem;
	color: #fff;
	font-weight: bold;
	transition: all 0.3s ease 0s;
}
.btn li a:before {
	position: absolute;
	top: 50%;
	left: 0.5rem;
	transform: translateY(-50%);
	content: "";
	border: 5px solid transparent;
	border-left: 6px solid #fff;
}
.btn li a::after {
	position: absolute;
	top: 50%;
	right: 1.0rem;
	transform: translateY(-50%);
	display: block;
	content: "| 詳細はこちら";
	text-align: right;
	font-size: 0.85rem;
	font-weight: normal;
}

.btn li a:hover {
	background-color: #87C8FF;
	color: #000;
	transition: 0.4s;
}

.btn li a span { /*補足文*/
	font-weight: normal;
	font-size: 0.75rem;
}



@media only screen and (max-width: 896px) {
	.btn li a {
		padding: 1.0rem 0 0.8rem 1.3rem;
	}
}

.btn3col {
	display: flex;
	justify-content: space-between;
}
.btn3col li {
	width: 32%;
}
@media only screen and (max-width: 480px) {
	.btn3col {
		display: block;
		width: 95%;
		margin: 0 auto;
	}
	.btn3col li {
		width: 100%;
	}
}




/* 特別展カセット
------------------------------------------*/
 .tokubetsu {
	background-color: #ece0ee;
	width: 100%;
	padding: 1.5rem 0;
	margin: 1.5rem auto 0;
}

.cstWide {
	background-color: #fff;
	border: none;
	width: 100%;
	height: auto;
	padding-bottom: 0.5rem;
	margin-bottom: 0;
}

.cstWide .koza_title {
	display: flex;
	align-items: center;
	gap: 1.0rem;
	background-color: #fff;
	padding: 0.5rem 0 0;
	color: #1f7e3c;
	font-size: 1.0rem;
}

.cstWide .koza_title span:nth-child(2) {
	font-size: 1.5rem;
	font-weight: bold;
}

.cstWide .koza_title span:last-of-type {
	background-color: #fff562;
	border-radius: 5px;
	padding: 0.5rem 1.0rem 0.3rem;
	margin: 0 0.5rem 0 auto;
	color: #000;
}
.cstWide .koza_title span:last-of-type em {
	display: block;
	text-align: center;
	font-size: 1.3rem;
	font-style: normal;
}

.cstWide .cst-in {
	padding-top: 0;
}

.cstWide .name {
	display: flex;
	justify-content: flex-end;
	gap: 2rem;
	margin-bottom: 0.5rem;
}

.cstWide .name p {
	font-size: 1.0rem;
	font-weight: bold;
	line-height: 1.3;
}

.cstWide .name p span {
	padding-right: 0.5rem;
	font-size: 0.75rem;
}

.cstWide .koza_date {
	align-items: center;
}

.cstWide .koza_date p {
	display: block;
	padding: 0.3rem 0.5rem;
	font-size: 1.0rem;
}

/*-- 画像 --*/
.cstWide .koza_ph {
	position: relative;
	width: 320px;
	height: auto;
	margin-top: 0.5rem;
}

.cstWide .koza_ph img {
	width: 320px;
	height: auto;
	object-fit: cover;
	border: 1px solid #ccc;
}

/*-- テキスト --*/
.cstWide .detail {
	border-top: 1px dashed #1f7e3c;
	padding: 0.5rem 0 0;
	margin-left: 1.5rem;
}

/*-- ボタン --*/
.cstWide .btn {
	display: flex;
	justify-content: space-between;
	gap: 1.0rem;
	margin: 1.0rem 0 0;
}

.cstWide .btn li {
	width: 50%;
	margin-bottom: 0.5rem;
}

.cstWide .btn li a {
	background-color: #1f7e3c;
}
.cstWide .btn li a:hover {
	background-color: #87C8FF;
	color: #000;
	transition: 0.4s;
}

@media only screen and (max-width: 896px) {
	.cstWide .koza_title,
	.cstWide .koza_title span,
	.cstWide .cst-in,
	.cstWide .name,
	.cstWide .btn {
		display: block;
	}
	.cstWide .koza_title span {
		padding: 0 1.0rem;
	}
	.cstWide .koza_title span:first-of-type {
		padding: 0 0 0.5rem;
	}
	.cstWide .koza_title span:nth-child(2) {
		font-size: 1.3rem;
	}
	.cstWide .koza_title span:last-of-type {
		text-align: center;
		padding: 0.2rem 0.5rem;
		margin: 0.3rem 1.0rem 0;
	}
	.cstWide .koza_title span:last-of-type em {
		display: inline;
		padding-right: 0.5rem;
		font-size: 1.1rem;
	}
	.cstWide .koza_ph {
		margin: 0.5rem auto 0;
	}
	.cstWide .detail {
		border-top: none;
		margin: 0;
	}
	.cstWide .btn li {
		width: 100%;
	}
}






/*-- カセット　2つ分の横幅 --*/
.cstDouble {
	background-color: #fff;
	border: 1px solid #f8b400;
	width: 66%;
	height: auto;
	margin-bottom: 2rem;
}


@media only screen and (max-width: 896px) {
	.cstDouble {
		width: 100%;
	}
}
@media only screen and (max-width: 480px) {
	.cstDouble {
		width: 100%;
	}
}

/*-- ほんの少し行間を開けたい --*/
.sukima025{
    margin-top: 0.25rem; 
    display: block;
}












/*-- マップうえ --*/
.ueline{
	display: block;
}
@media only screen and (max-width: 896px) {
	.ueline img{
		width:100%;
	}
}


/*================================================
 * マップエリア
 ================================================*/

.school-map-area{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:30px;
	padding:0 1.0rem;
	background:#f7f1e8;
	border-radius:30px;
	max-width:1200px;
	margin:1.0rem auto;
}

/* ---------------------------
   マップのコピーエリア
--------------------------- */

.school-copy{
	width:45%;
	padding-left:1.0rem;
}

.school-copy h2 img{
	max-width:100%;
	height:auto;
}

.school-copy .lead{
	font-size:1.1.0rem;
	line-height:2;
	text-align:left;
}

/* ---------------------------
   地図エリア
--------------------------- */

.map-wrapper{
	position:relative;
	width:55%;
	min-height:480px;
	background:url("../images/map_japan.png") no-repeat center center;
	background-size:cover;
}

/* ---------------------------
   地域共通
--------------------------- */

.map-region{
	position:absolute;
}

.map-region h3{
	display:inline-block;
	padding:0 35px;
	margin-bottom:0.2rem;
	font-weight:bold;
}

.map-region h3 img{
	display:block;
	max-width:100%;
	height:auto;
}

.map-region ul{
	list-style:none;
	margin:0;
	padding:0;
	font-size:1.0rem;
}

.map-region li{
	margin-left:2rem;
	line-height:1.6;
}

.map-region a{
	display:inline-block;
	text-decoration:none;
	font-size:1.0rem;
	font-weight:bold;
	color:#222;
	transition:.3s;
}

.map-region a::before{
	content:"▶";
	margin-right:5px;
}

.map-region a:hover{
	color:#4AAAB5;
}

/* ---------------------------
   中部・信越
--------------------------- */

.chubu{
	left:0;
	top:70px;
}

.chubu a::before{
	color:#b34343;
}

/* ---------------------------
   関東
--------------------------- */

.kanto{
	right:0;
	top:100px;
}

.kanto a::before{
	color:#6740a8;
}

/* ---------------------------
   関西
--------------------------- */

.kansai{
	left:190px;
	bottom:0;
}

.kansai a::before{
	color:#6cb236;
}

/*================================================
 * Tablet
 ================================================*/

@media screen and (max-width:896px){

	.school-map-area{
		flex-direction:column;
		align-items:stretch;
		gap:30px;
		padding:20px;
	}

	.school-copy,
	.map-wrapper{
		width:100%;
	}

	.school-copy{
		padding-left:0;
	}

	.school-copy .lead{
		text-align:center;
		font-size:1.0rem;
		line-height:1.8;
	}

	.map-wrapper{
		min-height:420px;
		background-size:90%;
	}
/* ---------------------------
   中部・信越
--------------------------- */

	.chubu{
		left:30px;
		top:0px;
	}

/* ---------------------------
   関東
--------------------------- */

	.kanto{
		right:0;
		top:50px;
	}

/* ---------------------------
   関西
--------------------------- */

	.kansai{
		left:300px;
		bottom:0;
	}	
	
}

/*================================================
 * Smartphone
 ================================================*/

@media screen and (max-width:480px){

	.school-map-area{
		flex-direction:column;
		gap:20px;
		padding:15px;
	}

	.school-copy,
	.map-wrapper{
		width:100%;
	}

	.school-copy{
		padding-left:0;
	}

	.school-copy .lead{
		font-size:0.9rem;
		line-height:1.8;
		text-align:left;
	}

	/* 一覧エリア */
	.map-wrapper{
		position:relative;

		display:flex;
		flex-direction:column;

		min-height:auto;
		padding-bottom:10px;

		background:none;
	}

	/* 順番 */
	.kanto{
		order:1;
	}

	.chubu{
		order:2;
	}

	.kansai{
		order:3;
	}

	/* PCの絶対配置解除 */
	.map-region{
		position:static;
		margin-bottom:24px;
	}

	.map-region:last-child{
		margin-bottom:0;
	}

	.map-region h3{
		display:block;
		padding:0;
		margin-bottom:8px;
		text-align:left;
	}

	.map-region h3 img{
		max-width:140px;
		height:auto;
	}

	.map-region ul{
		font-size:0.9rem;
	}

	.map-region li{
		margin-left:0;
		line-height:1.8;
	}

	.map-region a{
		display:block;
	}

	/* 地図背景 */
	.map-wrapper::after{
		content:"";
		position:absolute;
		left:70%;
		top:300px;
		bottom:0;
		width:100%;
		height:auto;
		transform:translateX(-50%);
		background:url("../images/map_japan.png") no-repeat center center;
		background-size:cover;
		opacity:.45;
		pointer-events:none;
	}
}

/*================================================
 * Small Smartphone
 ================================================*/

@media screen and (max-width:375px){

	.map-wrapper{
		padding-bottom:20px;
	}

	.map-wrapper::after{
		left:70%;
		width:80%;
		height:auto;
	}

	.map-region h3 img{
		max-width:120px;
	}

	.map-region ul{
		font-size:0.8rem;
	}
}