@charset "utf-8";
body{
	font-size: 17px;
    line-height: 1.5em;
    font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
    overflow-wrap: break-word;
	word-break: normal;
	color: #333;
	font-feature-settings: "palt";
}
:root {
	--maincolor: #a58a53;
	--subcolor: #1d95aa;
	--sub2color: #BDA040;
	--bgcolor: #f9f4ea;
	--redcolor: #d52b2b;
	--yecolor: #FFEB2E;
	--gdcolor: linear-gradient(130deg, rgba(91, 47, 32, 1) 0%, rgba(172, 119, 50, 1) 50%, rgba(91, 47, 32, 1) 100%);

	--serif: 'Shippori Mincho B1', serif;
	--italic: "Lugrasimo", cursive;

	--shadow: drop-shadow(2px 2px 10px #ddd);

	--_radius-base: 10px;
	--_padding: 8px;
	--_radius-inner: calc(var(--_radius-base) - var(--_padding));
}
::selection {
	background: #333;
	color: #FFF;
}
::-webkit-scrollbar {width: 12px;}
::-webkit-scrollbar-track {background: #eee;}
::-webkit-scrollbar-thumb {background: var(--maincolor);}

/******共通******/
.sp{display: none!important;}
img{width:auto; height: auto;max-width:100%;}
p{line-height: 1.7em; margin-bottom: 1.7em;}

.right{
  width: 300px;
  display: block;
  float: right;
  padding: 0 1%;
}
.center{text-align: center;}
.img_b{
	text-align: center;
	margin: 0 auto 1.7em auto;
	display: block;
	display: block;
}

.refl{
	-webkit-box-reflect: below 2px -webkit-gradient(linear, left bottom, left 90%, from(rgba(255, 255, 255, 0.3)), to(transparent));
	margin-bottom: 2em;
}

.btn{
	margin: 5% auto 0 auto;
	text-align: center;
}
.btn img{transition: all .5s;}
.btn img:hover{transform: translateY(-10px);}

:is(p,.img_b,.btn,.box,.movie,.timer):last-child{margin-bottom: 0;}

/***テキスト***/
.big{font-size: 1.3em;}
.small{font-size: .8em;}
.b{font-weight: 800;}
.u{text-decoration:underline;}
.red{color: var(--redcolor);}
.ita{font-family: var(--italic);}
.c_txt{
	text-align: center;
	font-size: 1.4em;
}

/*追従*/
.cont{
  width: 170px;
  height: auto;
  position:fixed;
  bottom :5px;
  right: 5px;
  z-index: 1000;
  transition: opacity 0.3s;
}

/*********
header
*********/
header .top{
	text-align: center;
	color: #fff;
	margin: 0 auto;
	padding: .5em;
	background: var(--maincolor);
	font-size: 1.5em;
	line-height: 1.4em;
}
header .top span{
	font-size: 1.2em;
	font-weight: 600;
}
header h1{
	padding: 2% 0;
	/* background: url(../img/head_bg.png)center/cover; */
	text-align: center;
	position: relative;
}
header h1 .head_b{
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: -80px;
}

/************
main
************/
.bg{background: var(--bgcolor);}
.wrap{
	max-width: 900px;
	margin: 0 auto;
	padding: 3% 2%;
}

/************/
h2,h3{
	text-align: center;
	font-weight: 700;
	line-height: 1.4em;
	font-family: var(--serif);
	margin: 1em auto;
	font-size: 1.5em;
}
h2{
	min-height: 85px;
	font-size: 1.8em;
	background: url(../img/h2_l.png),url(../img/h2_r.png);
	background-position: 0 90%,100% 90%;
	background-repeat: no-repeat;
	color: var(--maincolor);
	display: flex;
    justify-content: center;
    align-items: center;
}
h2 span:not([class]) {
	font-size: 1.2em;
	color: var(--redcolor);
}
h3 span:not([class]) {
	font-size: 1.2em;
    color: var(--maincolor);
    position: relative;
    background-image: var(--gdcolor);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
h4{
	background: var(--maincolor);
	background: var(--gdcolor);
	color: #fff;
	text-align: center;
	font-size: 1.4em;
	padding: .5em .8em;
	border-radius: var(--_radius-base);
	margin-bottom: .5em;
}
h5{
	font-size: 1.3em;
	font-weight: 600;
	margin-bottom: .8em;
}

:is(h2,h3):first-child{margin-top: 0;}

/*******
リスト
*******/
ul:not(ul:last-child),ol:not(ol:last-child){margin-bottom: 1.5em;}
ul:not([class]) li{
    position: relative;
    padding-left: 1.3em;
	margin-bottom: .3em;
}
ul:not([class]) li:before{
    border-radius: 50%;
    width: 7px;
    height: 7px;
    display: block;
    position: absolute;
    left: 5px;
    top: 10px;
    content: "";
	background: var(--maincolor);
}

ul.notes li {
    text-indent: -1em;
    padding-left: 1em;
    margin-bottom: .2em;
	line-height: 1.5em;
	font-size: .9em;
}
ul.notes li::before {content: "※";}

ol:not([class]) li {
	font-weight: 600;
    position: relative;
    padding-left: 30px;
    line-height: 1.5em;
    padding: 0.3em 0 0.3em 30px;
    counter-increment: my-counter; /* li要素ごとにカウンターをインクリメント */
}
ol:not([class]) li:before {
    position: absolute;
    content: counter(my-counter);
    display:inline-block;
    background: var(--maincolor);
    color: white;
    font-weight:bold;
    font-size: 12px;
    border-radius: 50%;
    left: 0;
    width: 23px;
    height: 23px;
    line-height: 20px;
    text-align: center;
    top: 20px;
    transform: translateY(-50%);
}

/******/
.movie{
	width: 100%;
    aspect-ratio: 16/9;
	margin: 0 0 3% 0;
}
.movie iframe {
	width: 100%;
	height: 100%;
}

/******/
.intro{padding-top: 7%;}
.seminar{background: url(../img/head_bg.png)center/cover;}

.tktn{
	background: url(../img/tktn_bg.png) center / cover;
    background-attachment: fixed;
}
.tktn .box:has(.num){margin-top: 4em;}
.tktn .box .num {
    margin: -4em auto .5em auto;
    display: block;
}

/******/
.box {
    background: #fff;
    padding: 3%;
    margin-bottom: 1.3em;
    box-sizing: border-box;
}
.box:after {
    display: block;
    content: '';
    clear: both;
}

.reason{  
	filter: var(--shadow);
    border: solid 1px var(--maincolor);
    box-shadow: 0 0 0 10px #fff;
    margin-bottom: 2em;
}

.msg{
	background: url(../img/msg_bg.png)center/cover;
	padding: 5%;
}
.r_name {
    font-family: var(--serif);
	font-weight: 700;
    text-align: right;
}
/******/
.session .num{
	background: var(--gdcolor);
	color: #fff;
	font-family: var(--serif);
	width: fit-content;
	padding: .3em 1em;
	border-radius: 500px;
	margin: 0 auto;
	font-size: 1.2em;
}
.session h3{
	margin-top: .5em;
    border-bottom: solid 1px var(--maincolor);
    padding-bottom: .8em;
}

/******/
.v_box{
	display: flex;
	gap: 20px;
	align-items: center;
	margin-bottom: 1.3em;
}
.v_img{
	object-fit: cover;
	height: 200px;
	width: 200px;
	border-radius: 500px;
}
.v_inner h3{
	width: 100%;
	display: block;
	margin: 0 auto .3em auto;
	text-align: left;
}
.v_inner .name{
	display: flex;
	align-items: center;/* 縦位置の調整 */
	text-align: right;
	color: var(--maincolor);
	font-size: .7em;
	gap: 10px;
}
.v_inner .name::before{
	content: '';
	flex-grow: 1;
	height: 2px;
	background: var(--gdcolor);
}
.voice .name span{font-size:.8em;}

/***/
.prof .v_img{
	height: 300px;
	width: 300px;
}
.prof h3{text-align: left;}

/********
セミナー申し込みフォーム
********/
.sch{list-style:none;
	padding:0;
	margin: 0 auto;
	width:100%;
	font-size:0;
}
.sch:not(.top){margin-bottom: 5%;}

.sch li{list-style: none;}
.sch .li{
  list-style:none;
	box-sizing:border-box;
	width:100%;
	padding:15px 0;
	border-bottom: dashed 1px var(--maincolor);
}

.sch .li2{
	box-sizing:border-box;
	width:100%;
	padding:8px 0!important;
	border-bottom: dashed 1px var(--maincolor);
	list-style:none;
}
ul.top .li{
	padding:10px 0;
	font-size:18px;
	color:var(--maincolor);
	font-weight: normal;
	border-bottom: none;
	list-style:none;
}
.t-locate,.t-date,.t-time,.t-over{
	display:inline-block;
	text-align: center;
	vertical-align: middle;}
.t-locate{width:18%;}
.t-date{width:10%;}
.t-time{width:25%;}
.t-over{width:10%;}

.locate,.date,.time,.over,.button{display:inline-block;
	margin:0;
	padding:0;
	vertical-align: middle;}
.locate{
	font-size:20px;
	font-weight: bold;
	width:15%;
}
.date{font-size:25px;
	width:17%;
	font-weight: bold;}

.time{font-size:20px;
	font-weight: bold;
	width:25%;
	letter-spacing: 4px;}
.dow{
	color:#FFF;
	font-size:13px;
	margin-left:10px;
	padding:4px 7px;
	background:#333;
	border-radius: 100px;
	vertical-align: middle;
}
.dow_Sat{background: #1e63bd;}
.dow_Sun{background: var(--redcolor);}

.over{font-size:23px; width:8%;}
.over span{color: var(--redcolor);}

.button{
	font-size:20px;
	width:35%;
	height:100%;
	text-align: center;
}
.button a{
	display:block;
	padding:4% 0;
	width:90%;
	background:var(--redcolor);
	margin:0 auto;
	color:#FFF;
	text-decoration: none;
	border-radius: 10px;
	border: solid 2px #d7d7d7;
}

.button span{
	display:block;
	padding:4% 0;
	width:90%;
	background:#a2a2a2;
	margin:0 auto;
	color:#fff;
	border-radius: 5px;
}
.app dl {
	display: flex;
	flex-flow: row wrap;
	width: 100%;
	margin-bottom: 3%;
}
.app dt {
	flex-basis: 15%;
	padding: 2%;
	background: #ebf5fa;
	border: 1px solid var(--redcolor);
	box-sizing: border-box;
}
.app dd {
	flex-basis: 85%;
	padding: 2%;
	box-sizing: border-box;
	background: #fff;
	border-top: 1px solid var(--redcolor);
	border-right: 1px solid var(--redcolor);
	border-bottom: 1px solid var(--redcolor);
}

.app ul.li{
	margin-bottom: 3%;
	list-style: disc;
	padding: 0 0 0 30px;
}
.app ul.li li{
	border-bottom: solid 1px #ebf5fa;
	margin-bottom: 2%;
}
.app h4{
	background: #9E8035;
	font-size: 1.2em;
	font-weight: 600;
	color: #fff;
	padding: 1% 2%;
	margin-bottom: 3%;
}
.app ul li{
    margin-bottom: 1%;
    padding: 0 0 0 1.5em;
	font-size: 1em;
    text-indent: -1.8em;
    /*line-height: 1.4em;*/
}

/***********
form
************/
form{
	background: #fff;
	padding: 3%;
	max-width: 700px;
	margin: 0 auto;
	border: 3px solid var(--maincolor);
	border-image: var(--gdcolor);
	border-image-slice: 1;
}
.form-mail p{
	text-align: center;
	font-size: 1.2em;
	margin-bottom: 1%;
}
form p{
	margin: 0 auto;
	text-align: center;
	line-height: 1.5em;
	margin-top: 1%;
}
.label{width: 120px;}
.form-item {
    padding-bottom: 2%;
    width: 95%;
    display: flex;
    align-items: center;
	margin: 0 auto;
	gap: 15px;
}
.input {
    border: 2px solid #d7d7d7;
    padding: 0 1em;
    height: 48px;
    flex: 1;
    width: 100%;
    max-width: 530px;
	border-radius: 5px;
}

.form_btn{
	display: block;
	margin: 3% auto;
	-webkit-animation: anime_pulse 1.5s infinite;
	animation: anime_pulse 1.5s infinite;
	border-radius: 5px;
}
/*アニメーション*/
@-webkit-keyframes anime_pulse {
	0% { -webkit-transform: scale(0.95);
	transform: scale(0.95); }
	70% { -webkit-transform: scale(1);
	transform: scale(1) }
	100% { -webkit-transform: scale(0.95);
	transform: scale(0.95);}
}

.flash{
    -webkit-animation:blink 1s ease-in-out infinite alternate;
    -moz-animation:blink 1s ease-in-out infinite alternate;
    animation:blink 1s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}@-moz-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}

.rule{
	background: #eee;
	padding: 3%;
	overflow-y: scroll;
	height: 100px;
	margin-top: 3%;
	font-size: .8em;
	font-family: 'Noto Sans JP', sans-serif;
	color: #333;
}
.rule a{color: var(--redcolor);}

/*タイマー*/
.timer{
	text-align: center;
	padding: 1% 2%;
	font-family: var(--serif);
	font-size: 1.2em;
	font-weight: 800;
	filter: var(--shadow);
	margin: 1em auto 2em auto;
}
.timer:last-child{margin-bottom: 0;}
.timer p{margin-bottom: 0;}
.counter span{
	font-size: 1.4em;
	padding: .3em .3em;
	margin: 0 .2em;
	border-radius: 5px;
	background: var(--gdcolor);
	color: #fff;
}


/********/
table.table {
	width:100%;
	border-right:var(--maincolor) solid 1px;
	border-collapse: collapse;
	margin-bottom: 1.5em;
	font-size: .8em;
}
table.table thead th {
	background:var(--maincolor);
	padding:10px 13px;
	border-right:#FFF solid 1px;
	border-bottom:#FFF solid 1px;
	color: #FFF;
	text-align: center;
	vertical-align: middle;
}
table.table thead th:first-child{width: 30%;}
table.table thead th:nth-child(2){width: 15%;}
table.table thead th:nth-child(3){width: 20%;}
table.table thead th:last-child {border-right:var(--maincolor) solid 1px;}
table.table tbody th {
	background:var(--maincolor);
	padding:10px 13px;
	border-bottom:#FFF solid 1px;
	color: #FFF;
	vertical-align: middle;
	font-size: 1.1em;
	width: 15%;
	box-sizing: border-box;
}
table.table tbody tr:last-child th {border-bottom:var(--maincolor) solid 1px;}
table.table tbody td {
	background:#FFF;
	padding:10px 13px;
	border-left:var(--maincolor) solid 1px;
	border-bottom:var(--maincolor) solid 1px;
	box-sizing: border-box;
	vertical-align: middle;
}

/*footer*/
footer{
	background: var(--maincolor);
	padding: 30px 2%;
	text-align:center;
	font-size:14px;
}
footer p{
    line-height: 1em;
	color:#fff;
}
footer a{
	font-size:13px;
	color:#fff;
	margin: 0 .5%;
}

@media screen and (max-width: 768px) {
   /*--- 表示領域が768px以下の場合に適用するスタイル ---*/

}/*///media*/

@media screen and (max-width: 640px) {
   /*--- 表示領域が640px以下の場合に適用するスタイル ---*/
	.sp{display: block!important;}
	.pc{display: none!important;}

	.text p br{display: none;}
	.text p.br br{display: block;}

	.right{
		float: none;
		width: 90%;
		margin: 0 auto 5%;
	}

	/*追従*/
	.cont{width: 130px;}

	/*********
	header
	*********/
	header .top{font-size: 1.2em;}
	header h1 .head_b {height: 120px;}

	/*main*/
	.big{font-size: 1.2em;}
	.c_txt{font-size: 1.3em;}

	h2{
		font-size: 1.5em;
		background-size: 60px;
	}
	h3{font-size: 1.3em;}

	/******/
	.v_box {flex-direction: column;}
	.v_inner h3{text-align: center;}

	/******/
	.sch{list-style:none;
		padding:0;
		margin: 0 auto;
		width:96%;
		font-size:0;
		line-height: 40px;
    }

	.sch li{box-sizing:border-box;
		width:100%;
		padding:10px 0;
		position: relative;}
    
    .sch2 li .li2{box-sizing:border-box;
		width:100%;
		padding:0px 0;
		position: relative;}

	.locate,.date,.time,.over,.button{display:inline-block;
		margin:0;
		padding:0;
		text-align: left;
		vertical-align: middle;
	}

	.locate{font-size:19px;
		font-weight: normal;
		width:auto;
		position: absolute;
		right:0;
		padding:3px 10px;
		color:#FFF;
	}
	.date{font-size:32px;
		width:100%;
		font-weight: bold;}

	.time{font-size:17px;
		font-weight: normal;
		width:80%;
		letter-spacing: 4px;
		padding-bottom:12px;}
	.tok{
		background: #9E8035;
		color:#FFF;
		padding: 0 2%;
		font-size: 16px;
	}

	.over{font-size:25px;
		width:17%;
		text-align: right;}
	
	.button{font-size:20px;
		width:100%;
		height:100%;}
	
	.button a{display:block;
		padding:4% 0;
		width:100%;
		margin:0 auto;
		text-align: center;}
	
	.button span{display:block;
		padding:4% 0;
		width:100%;
		margin:0 auto;
	}

	/*form*/
	.form-mail p{font-size: 1.1em;}
	.form-item {width: 100%;}
	.label{display: none;}
	.input {margin: 1% auto;}
	.form_btn{width: 100%;}

	/*タイマー*/
	.counter{display: block; margin-top: .5em;}

	/********/
	table.table thead {display:none;}
	table.table tbody th,table.table tbody td {display:block; width: 100%;}
	table.table tbody td::before {
		content: attr(label);
		float: left;
		clear:both;
		font-weight:600;
	}
	table.table tbody td {
		display: block;
		position: relative;
		padding: .625em .625em .625em 7em;
		border-right: none;
	}
	table.table td::before {
		content: attr(data-label);
		font-weight: bold;
		position: absolute;
		left: 10px;
	}

}/*///media*/