@charset "UTF-8";
/* CSS Document */

@import url('reset.css');

/*================================
フォント
================================*/
/*Noto Snas CDN*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
/*zen-maru-gothic*/
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500&display=swap');



/*--以下設定 (importの後に書くこと)*/
body {
    font-family: "Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", "YuGothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	-webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
	font-weight: 400;
	font-feature-settings: "plat" 1;/*文字詰め有効な場合 plat|pwid|pkna*/
	letter-spacing: 0;
}
/*zen-maru-gothic*/
.maru-gothic {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-style: normal;
}


/*================================
初期設定
================================*/
/*body.narrow時に表示*/
.display-narrow {
	display:none;
}
.width-narrow .display-narrow {
	display:block;
}
/**/
main a:hover,
main button:hover,
main input:hover {
	opacity: 0.7;
}
main a {
	color:var(--theme-color);
	text-decoration: underline;
}
main ul {/*クラス無しのリスト、マージン調整*/
	margin-top: 0;
	padding-left: 1.5em;
}

/*================================
カスタムプロパティ　変数
適用例 .class{color:var(--color);}
================================*/
:root {
	--theme-color: #f864a3;
	--header-height: 220px;/*wide画面初期値*/
	--text-color:#606060;
}
.theme-color {
	color:var(--theme-color);
}

/*================================
汎用クラス
================================*/
.bold {font-weight: bold;}
small,.small {font-weight: normal;font-size: 75%;}
/*マージン*/
.mgb0 {margin-bottom: 0!important;}
.mgb1em {margin-bottom: 1em!important;}
.mgb2em {margin-bottom: 2em!important;}
.mgb3em {margin-bottom: 3em!important;}
.mgb5em {margin-bottom: 5em!important;}
.mgt10px{margin-top: 10px!important;}
.mgt0d5em{margin-top: 0.5em!important;}
.mgt2em {margin-top: 2em!important;}
.mgt4em {margin-top: 4em!important;}
.mgr1em {margin-right: 1em;!important;}
.mgl1em {margin-left: 1em;!important;}
.mgr0d5em {margin-right: 0.5em;!important;}
.pdl-r-2em {padding-left:2em!important;padding-right: 2em!important;}
/*フォントサイズ*/
.font-size150pct {font-size: 150%;}
.font-size135pct {font-size: 135%;}
.font-size75pct  {font-size: 75%; vertical-align: middle; margin-left: 0.1em; margin-right: 0.1em;}
.font-size50pct  {font-size: 50%; vertical-align: middle; margin-left: 0.1em; margin-right: 0.1em;}
/*配置*/
.float-right {float: right;margin:0 0 1em 1em;}
.float-left {float: left;margin:0 1em 1em 0;}
.align-right {text-align: right;}
.align-left {text-align: left;}
.center{text-align: center;margin-left:auto;margin-right:auto;}
/*narrow _show _hide*/
.narrow_show {display: none!important;}
.width-narrow .narrow_show{display: inherit!important;}
.narrow_hide {display: inherit!important;}
.width-narrow .narrow_hide {display: none!important;}
/*改行するならここ指定 <span class="ibr">なるべく改行しないブロック</span>*/
.ibr{display: inline-block;}
/*プレーンなブロック*/
.block {display: block;}
.inline-block {display: inline-block;}

/*htmlタグ*/
section {
	display: block;
	clear: both;
}
h4 {
	margin-bottom: 0.25em;
	line-height: 1.2;
}
p,table {
	font-size: 0.9375rem;/*15px相当*/
	line-height: 2;
}

/*汎用テーブル 枠無し*/
table {
    margin-bottom: 2em;
}
table th,table td {
    font-weight: normal;
    text-align: left;
    padding: 0;
}

/*リスト*/
ul[class] {
	font-size: 0.875rem;
	line-height: 2;
	margin-bottom: 2em;
	margin-left: 0;
}
ul[class] li {
	padding:1em 2.5em;
	list-style-position: inside;
	padding-left: 1rem;
	padding-right: 1rem;
}
ul.bl_list.-odd li:nth-child(odd) {
	background-color: #fbfbfb;
	border-radius: 4px;
}
ul.bl_list.-mark {
	margin-left: 0;
	padding-left: 0;
}
ul.bl_list.-mark li {
	list-style: none;
	background-image: url("../../../images/common/list-mark.svg");
	background-size: auto 16px;
	background-repeat: no-repeat;
	background-position: 2em 1.5em;
	padding-left: 4em;
	margin-left: 0;
}
ul.bl_list li:has(.date,.text){
	display: flex;
}
ul.bl_list li .date {
	display: inline-block;
	margin-right: 3em;
	text-wrap:nowrap;
}
@media screen and (max-width:480px){
	ul.bl_list.-mark li {
		padding-left: 2.5em;
		padding-right: 1em;
		background-position: 1em 1.5em;
	}
	ul.bl_list li:has(.date,.text){
		display: block;
	}
	ul.bl_list li .date {
		display: block;
	}
}


/*================================
構造
================================*/
html {
	/*scroll-padding-top: 220px; ヘッダ固定廃止*/
}
html:has(.width-narrow) {
    /*scroll-padding-top: 110px; ヘッダ固定廃止*/
}
body {
	/*overflow-x: hidden; /*scroll-behavior:smooth;を阻害するかも*/
	color:var(--text-color);
}
.bodyWrap {
	overflow-x: hidden;
}


/*==========
header
==========*/
.ly_header {
	display:block;
	position:relative;/*fixed ヘッダ固定廃止*/
	width: 100%;
	height: var(--header-height);
	z-index: 50;
	margin-top: 0;
	background-color:#fff;
}
.ly_header::before {
	content: "";
	width: 100%;
	height: 5px;
	background-color: var(--theme-color);
	position: absolute;
	top:7;
}
.js_scrolled .ly_header {
	box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
	background-color:#fff;
}
/*em*/
.ly_header > em {
	display: block;
	max-width: 1180px;
	margin: 0 auto;
	padding-left: 30px;
	padding-right: 30px;
	font-size: 0.69rem;
	letter-spacing: 0.1em;
	font-style: normal;
	line-height: 1;
	position: absolute;
	top:24px;left:0;right:0;
}
/*line1*/
.ly_header .line1 {
	display: flex;
	max-width: 1180px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 50px;
	padding-right: 50px;
	position: absolute;
	top: 60px;
	left: 0;right: 0;
}
.ly_header .bl_logo img {
	width: 296px;
	height: auto;
}
.ly_header .line1 > div {
	width:auto;
	margin-right: auto;
}
.ly_header .line1 > div:first-of-type {
	margin-left: 0;
	margin-right: auto;
}
/*-お問い合わせ*/
.ly_header .line1 > div:last-of-type {
	margin-left: auto;
	margin-right: 0;
}
.ly_header .line1 .bl_tel h2 {
	display: block;
	font-size: 1rem;
	background-color: var(--theme-color);
	color:#fff;
	font-size: 12px;
	line-height: 1;
	letter-spacing: 0.1em;
	padding: 9px;
	border-radius: 4px;
	width: auto;
	text-align: center;
	margin-bottom: 12px;
}

/*グロナビ*/
.bl_gNaviWrap {
	display: block;
	max-width: 1180px;
	margin: auto;
	padding-left:50px;
	padding-right: 50px;
	position: absolute;
	bottom:0;
	left: 0;right:0;
}
.bl_gNavi {
}
/*narrow時のメニュー .bodyWrap.width-narrow*/
.bl_narrow-show {
	display: none;
}
.bodyWrap.width-narrow .ly_header {
	height: 110px;
}
.bodyWrap.width-narrow .ly_header > em {
	top:10px;
	letter-spacing: 0;
	padding-left: 3vw;
	padding-right: 0;
	font-size: 9px;
}
.bodyWrap.width-narrow .ly_header .line1 {
	display: block;
	top:40px;
	padding-left: 20px;
	padding-right: 20px;
    /*20250806*/
    z-index: 11;
    width: 300px;
    margin-left: 0;
}
.bodyWrap.width-narrow .ly_header .line1 .bl_logo img {
	width: 234px;
}
.bodyWrap.width-narrow .ly_header .line1 .bl_tel {
	display: none;
}

/*メインコンテンツのオフセット headSpacer*/
.bl_headSpacer {
	position: static;
	display: block;
	/*高さはheaderの状態によ変化*/
	/*height: var(--header-height);ヘッダ固定廃止*/
	content: "";
}
.bodyWrap.width-narrow .bl_headSpacer {
	/*height: 110px;ヘッダ固定廃止*/
}


/*==========
アンカーのズレ補正
==========*/
/*margin-padding設定で調整しているが、scroll-paddingでも良い*/
.el_anchor {
	display: block;
	/*margin-top: -105px; ヘッダ固定廃止*/
	/*padding-top: 105px; ヘッダ固定廃止*/
	height: 0;
	line-height: 0;
}
.bodyWrap.width-narrow .el_anchor {
	margin-top: 10px;/*10*/
	padding-top: 0;/*0*/
}

/*==========
main
==========*/
.ly_main {
	display: block;
	background-color:#fff;
	padding-bottom: 2em;
	min-height: calc(100vh - var(--header-height));
	margin-top: 0;
	margin-left: auto;
	margin-right: auto;
}
.ly_main p {
	margin-bottom: 2em;
}
/*inner周り設定*/
/*main > .innerの設定は廃止。
指定フリーのブロックとして、inner,wrapなど使用可*/
.ly_main .inner-width-full,
.ly_main .inner-default {
	/*sectionに適用、左右padding無し／有り兼用設定*/
	display: block;
	margin: auto;
	padding-left: 0;
	padding-right: 0;
	padding-top: 0;
	padding-bottom: 5.5rem;
	overflow: hidden;
	box-sizing: content-box;
}
.ly_main .inner-width-full {
	/*幅100％のinner設定*/
	width: 100%;
}
.ly_main .inner-default {
	/*左右padding有りのinner設定*/
	box-sizing: border-box;
	max-width: calc(1180px + 100px);
	padding-left: 50px;
	padding-right: 50px;
	margin-left: auto;
	margin-right: auto;
}

/*--narrow*/
/*.width-narrow .ly_main .inner-width-full .inner*/
.width-narrow .ly_main .inner-default {
	padding-left: 25px;
	padding-right: 25px;
}

/*-----
パンくずメニュー
-----*/
.ly_main .nav_breadcrumb {
	background-color: #feeef5;
	font-size: 0.6875rem;
	color: var(--text-color);
	height: 35px;
	border-top: solid #dedede 1px;
	vertical-align: middle;
	line-height: 1.2;
	padding-bottom: 0;
}
.nav_breadcrumb .wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding-left: 50px;
	padding-right: 50px;
	height: 35px;
}
/*width-narrow*/
.width-narrow .nav_breadcrumb .wrap {
	padding-left: 20px;
	padding-right: 20px;
}
.nav_breadcrumb ul {
	box-sizing: border-box;
	display: block;
	width: 100%;
	padding-left: 0;
	list-style: none;
	display: flex;
	gap:1em;
	letter-spacing: 0.1em;
	margin-top: 10px;
}
.nav_breadcrumb ul li {
	position: relative;
	padding-right: 1.4em;
}
.nav_breadcrumb ul li::before {
	content:">";
	position: absolute;
	left:-1.5em;
}
.nav_breadcrumb ul li:first-child {
	background-image: url("../../../images/common/ic_home.svg");
	background-repeat: no-repeat;
	padding-left: 2em;
	margin-left: 0;
}
.nav_breadcrumb ul li:first-child::before {
	content:none;
	position: absolute;
	left:0;
	
}
/**/
.ly_main figure figcaption {
	font-size: 0.875rem;
	font-weight: normal;
	margin-top: 1em;
}

/*--- 子ページ　パーツ ---*/

/*子ページ標準見出し（ + frontPageでのセクション見出し）*/
.bl_pageTitle,
.bl_sectionTitle {
	display: block;
	position: static;
	text-align: center;
	padding-top: 58px;
	margin-top: 60px;
	margin-bottom: 60px;
	background-image: url("../../../images/common/mark.png");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 45px;
	line-height: 1;
	color:var(--theme-color);
	letter-spacing: 0.5em;
	font-size: 1rem;
}
.bl_pageTitle {
	border-bottom: solid #dedede 1px;
	padding-bottom: 40px;
	margin-bottom: 80px;
}
.width-narrow .bl_pageTitle,
.width-narrow .bl_sectionTitle {
	margin-top: 30px;
	margin-bottom: 30px;
}
.bl_pageTitle .title,
.bl_sectionTitle .title {
	margin-bottom: 0.15em;
	font-size: 1.375rem;/*22px*/
	/*丸ゴの場合*/
	font-size: 1.6rem;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 500;
	font-style: normal;
}
.bl_pageTitle small,
.bl_sectionTitle small {
	font-size: 11px;
	font-weight: bold;
	letter-spacing: 0.15em;
	color:#838383;
}
/*見出し　アンダーライン2色*/
.el_title01 {
	display: block;
	color:var(--theme-color);
	font-size:1.4rem;
	line-height: 1.1;
	padding-bottom: 16px;
	border-bottom: solid #ebebeb 2px;
	margin-bottom: 30px;
	position: relative;
}
.el_title01::before{
	position: absolute;
	bottom:-2px;
	content:"";
	width: 74px;
	border-bottom: solid var(--theme-color) 2px;
}
/*見出し　ピンク*/
.el_title02 {
	font-size:1.0625rem;
	color:var(--theme-color);
	font-weight: bold;
	margin-bottom: 0.5em;
    line-height: 1.5;
}
/*見出し　ピンク+ドットライン*/
.el_title02.dotline {
	border-bottom: 1px dotted #c5c5c5;
    padding-bottom: 0.4em;
}
/*見出し　グレー*/
.el_title03 {
    font-size:1.0625rem;
	color:#666;
	font-weight: bold;
	margin-bottom: 0.5em;
}
.el_title03.bullet::before {
    content:"・";
    color:var(--theme-color);
}

/*時間表*/
table.bl_timeTable {
    line-height: 1.25;
}
table.bl_timeTable th, table.bl_timeTable td {
    vertical-align: top;
    padding:0 0.5em 0.5em 0;
}
table.bl_timeTable th {
    text-wrap:nowrap;
}
/*週間時間表*/
.bl_weekTable {
    width: 100%;/*改*/
    min-width: 350px;/*改*/
}
.bl_weekTable table {
	border-collapse: collapse;
}
.bl_weekTable th,
.bl_weekTable td {
	border: solid var(--theme-color) 1px;
	padding: clamp(5px,0.6vw,9px);/*改*/
	text-align: center;
	color: var(--theme-color);
    line-height: 1.5;
    /*word-break: keep-all;/*改 wbr*/
}
.bl_weekTable th {
	font-weight: normal;
}
.bl_weekTable th.head {
	background-color: var(--theme-color);
	color:#fff;
}
.bl_weekTable tr:nth-child(even) th {
	background-color: #ff92b1;
}
.bl_weekTable td {
	font-weight: bold;
}
.bl_weekTable tr:nth-child(even) td {
	background-color: #fceaee;
}
@media screen and (max-width:480px){
    .bl_weekTable {
        min-width: inherit;
        max-width: 100%;
        overflow-x: scroll;
    }
    .bl_weekTable th,
    .bl_weekTable td {
        padding: 0.5em;
    }
}

/*==========
footer（およびfooter付近の追加要素）
==========*/

/*ly_footer*/
.ly_footer {
	background-color: var(--theme-color);
	background-image: url("../../../images/common/footer_bg.jpg");
	background-position: bottom;
	background-size: cover;
	color:#fff;
}
.ly_footer .inner {
	display: block;
	overflow: hidden;
	max-width: 1180px;
	padding-left: 50px;
	padding-right: 0;
	padding-top: 32px;
	margin: auto;
}
/*wrap -block1 -block2*/
.ly_footer .wrap {
	display: flex;
	gap:4em;
	margin-bottom: 4em;
}
.ly_footer .block1 {
	flex-grow:1;
    min-width: 280px;
}
.ly_footer .block1 h1 {
	margin-bottom: 35px;
}
/*ロゴ画像*/
.ly_footer .block1 h1 img {
    min-width: 200px;
}
.ly_footer .block1 b {
	font-weight: normal;
	line-height: 1.8;
}
/* block2 -list*/
.ly_footer .block2 {
	width: 25em;
}
.ly_footer .list {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.8em;
	line-height: 1.1em;
	margin-top: 38px;
	list-style: none;
    justify-content: flex-start;
    flex-grow:1;
}
.ly_footer .list li {
	width: 7.5em;
	margin-bottom: 1.25em;
	margin-left: 14px;
	position: relative;
	letter-spacing: 0.2em;
	padding: 0;
}
.ly_footer .list li::before {
	content: "";
	position: absolute;
	left: -14px;
	top: 4px;
	width: 5px;
	border-top: 3px solid transparent;
	border-bottom: 3px solid transparent;
	border-left: 5px solid #fff;
}
.ly_footer .list li a {
	color: #fff;
	text-decoration: none;
}
/**/
.ly_footer .copy {
	display: block;
	font-size: 0.75rem;
	margin-bottom: 90px;
}
/*スマホ*/
@media screen and (max-width:570px){
    .ly_footer .inner {
        padding-left: 1.5em;
        padding-right: 1.5em;
    }
    .ly_footer .wrap {
        display:flex;
        flex-flow: column;
        gap:0;
    }
    .ly_footer .block1,
    .ly_footer .block2 {
        width: auto;
        min-width: inherit;
    }
}

/*================================
ページ固有
================================*/

/*各CSSに分岐*/

