@charset "UTF-8";

/************************************
** スマホ用CSS 780以下
************************************/
@media screen and (max-width: 780px){
/**/

body{
	min-width: 100%;
}

/**********************
 * 全体
 **********************/
* {
	font-size: 4vw;
}

.inner{
	width: 100%;
	max-width: 100%;
	padding: 0 4vw;
}

.wrap{
	width: 100%;
}

.article ul, .article ol {
	padding-left: 0;
}

h2, h3 {
	font-size: 5.33vw;
}

/**********************
 * 固定ページ
 **********************/
/* h1 */
.article-header{
	margin: 70px 0 0;
}

/* パンくず */
.breadcrumbs{
	max-width: 100%;
	margin: 7px 10px;
}

.breadcrumbs span{
	font-size: 13px;
}

/* content */
.home .content .main{
	padding: 0;
}
.content .main{
	padding: 0 4% 0;
}

/**********************
 * header
 **********************/
#header{
	height: 70px;
	width: 100%;
	position: fixed;
	top: 0;
}

#header-in .logo{
	width: 210px;
	padding: 20px 20px 0;
	height: 70px;
}

#header-in .nav{
	display: none;
}

#header-in .sp-nav-btn{
	position: fixed;
	z-index: 9999;
	top: 7px;
	right: 5px;
	cursor: pointer;
	width: 60px;
	height: 60px;
	display: block;
}

#header-in .sp-nav-btn .menu-txt{
	font-size: 14px;
	line-height: 1;
	color: #fff;
	letter-spacing: 0;
	text-align: center;
	padding: 36px 0 0;
}

#header-in .sp-nav-btn span {
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 19px;
	height: 2px;
	border-radius: 2px;
	background-color: #fff;
	width: 35%;
}

#header-in .sp-nav-btn span:nth-of-type(1) {
	top: 12px;
}

#header-in .sp-nav-btn span:nth-of-type(2) {
	top: 20px;
}

#header-in .sp-nav-btn span:nth-of-type(3) {
	top: 28px;
}

#header-in .sp-nav-btn.active {
	background: #333;
}

#header-in .sp-nav-btn.active span {
	background-color: #fff;
}

#header-in .sp-nav-btn.active span:nth-of-type(1) {
	top: 15px;
	left: 18px;
	transform: translateY(6px) rotate(-45deg);
	width: 40%;
}

#header-in .sp-nav-btn.active span:nth-of-type(2) {
	opacity: 0;
}

#header-in .sp-nav-btn.active span:nth-of-type(3) {
	top: 27px;
	left: 18px;
	transform: translateY(-6px) rotate(45deg);
	width: 40%;
}

#header-in .nav_sp {
	position: fixed;
	z-index: 999;
	top: 0;
	right: -120%;
	width: 100%;
	height: 100%;
	transition: all 0.3s;
	background: url(img/sp-nav-bg-red.png) no-repeat top center / cover;
	display: block;
	color: #fff;
	padding: 110px 10% 100px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

#header-in .nav_sp.active {
	right: 0;
}

ul.top_main_btn{
	justify-content: center;
}

ul.top_main_btn li a{
	width: 100%;
	height: auto;
}

ul.top_main_btn li a:hover::before{
	right: 3vw;
	bottom: 3vw;
}

ul.top_main_btn li a p.top_main_btn_img {
	width: 30%;
}

ul.top_main_btn li a p.top_main_btn_txt{
	width: 70%;
	font-size: 5.7vw;
	padding: 3.3vw 0 6vw;
}

ul.top_main_btn li a p.top_main_btn_txt span{
	font-size: 4.3vw;
}

ul.top_main_btn li a p.top_main_btn_txt span::before,
ul.top_main_btn li a p.top_main_btn_txt span::after{
	top: 1vw;
}

.nav_sp_in{
	margin-top: 7vw;
}

.nav_sp_in ul{
	margin-bottom: 10vw;
}

.nav_sp_in li{
	margin-bottom: 3vw;
}

.nav_sp_in li a{
	color: #fff;
	font-size: 4vw;
	position: relative;
	padding: 0 0 0 4vw;
	display: block;
}

.nav_sp_in li a::before {
	content: '';
	background: #fff;
	position: absolute;
	width: 10px;
	height: 1px;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}

.nav_sp_in .nav-con a {
	background: linear-gradient(90deg, rgba(255, 177, 42, 1) 0%, rgba(255, 118, 51, 1) 100%);
	color: #fff;
	font-size: 6vw;
	font-weight: bold;
	display: block;
	width: 100%;
	height: auto;
	text-align: center;
	padding: 7vw 0;
	position: relative;
	overflow: hidden;
	line-height: 1.2;
}

.nav_sp_in .nav-con a::before {
	content: '';
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: -100%;
	background-image: linear-gradient(130deg, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 75%);
	-webkit-transition: 0.3s;
	transition: 0.3s;
}

.nav_sp_in .nav-con a span {
	font-size: 5vw;
	display: block;
	position: relative;
	padding: 0 0 7px;
}

.nav_sp_in .nav-con a span::before {
	content: '';
	background: url(img/nav-con-catch01.png) no-repeat top center / auto;
	position: absolute;
	width: 9px;
	height: 14px;
	top: 2.7vw;
	left: 21vw;
}

.nav_sp_in .nav-con a span::after {
	content: '';
	background: url(img/nav-con-catch02.png) no-repeat top center / auto;
	position: absolute;
	width: 9px;
	height: 14px;
	top: 2.7vw;
	right: 21vw;
}

/**********************
 * フッター
 **********************/
#footer{
	padding: 60px 0;
}

#footer-in{
	flex-direction: column;
	margin-bottom: 40px;
}

.f_box01{
	margin: 0 0 40px;
}

.f_box01 p.ttl{
	text-align: center;
}

.f_box01 p.ttl a{
	font-size: 7vw;
}

.f_box01 p.access {
	font-size: 4vw;
}

.f_box02 ul{
	width: 100%;
}

.copyright p{
	font-size: 3.3vw;
}

/**********************
 * メインイメージ
 **********************/
.top_main{
	height: auto;
	min-height: auto;
	z-index: 0;
}

.top_main::before{
	width: 100%;
	height: 40vh;
	left: auto;
	top: 0;
	background-color: #f2f2f2; /* 背景色 */
	background-image: url(img/top-mv-line.png); /* 画像 */
	background-repeat: no-repeat;
	background-position: top left;
	background-size: cover;
}

.top_main .txt_box{
	top: auto;
	left: auto;
	position: relative;
	padding: 43vw 7vw 0;
}

.top_main .txt_box h2 span{
	font-size: 11vw;
}

.top_main .txt_box p.txt {
	width: 100%;
	margin-bottom: 30px;
}

.top_main .txt_box p.ttl {
	margin-bottom: 20px;
}

.top_main .txt_box p.ttl span{
	font-size: 8vw;
}

.top_main .img_box{
	width: 70%;
	max-width: 100%;
	min-height: auto;
	height: 40vh;
}

/**********************
 * TOP 固定ページ
 **********************/

.page-id-159 .main {
    padding-left: 0;
    padding-right: 0;
}

.school_page h3 {
	line-height: 2;
}

/* top_about */
.top_about{

}

.top_about h2{
	font-size: 8vw;
}

.top_about p{
	font-size: 4vw;
}

.top_about p.link a{
	font-size: 4vw;
	padding: 5.3vw 13vw;
}

/* top_bglink */
.top_bglink{

}

.top_bglink ul{
	flex-direction: column;
}

.top_bglink ul li{
	width: 100%;
}

.top_bglink ul li a{
	height: auto;
	padding: 20vw 0 17vw;
}

h2.top_bglink_h2 span{
	font-size: 4.3vw;
	padding: 3vw 7vw;
}

.top_bglink_in p{
	font-size: 4.8vw;
	margin: 0 0 10px;
}

.top_bglink_in h3 {
	font-size: 7.7vw;
	margin: 0 0 10px;
}

/* top_online */
.top_online{
	padding: 70px 0;
}

.top_online_ttl{
	flex-direction: column;
}

.top_online_ttl h2 span.span01{
	font-size: 10vw;
}

.top_online_ttl h2 span.span02 {
    font-size: 7vw;
}

.top_online_ttl h2 span.span_jp {
    font-size: 4.8vw;
}

.top_online_ttl div.txt_box {
	width: 100%;
	margin: 20px 0 0;
}

.top_online_ttl div.txt_box p.p_ttl{
	font-size: 8vw;
	margin: 0 0 10px;
}

ul.top_online_ul li {
    width: 100%;
}

ul.top_online_ul li a{
	flex-direction: row;
}

ul.top_online_ul li .img_box{
	width: 40%;
}

ul.top_online_ul li .txt_box{
	width: 60%;
}

ul.top_online_ul .img_box {
    width: 100%;
}

ul.top_online_ul .txt_box{
	padding: 3.7vw;
	width: 100%;
}

ul.top_online_ul .txt_box h3{
	font-size: 5.3vw;
}

ul.top_online_ul .txt_box p.cate span{
	font-size: 3.4vw;
}

/**********************
* アンチエイジング認定サロン
**********************/
.course_intro{
	flex-direction: column;
}

.course_intro .img_box {
    width: 100%;
}

.course_intro .txt_box {
    width: 100%;
}

.course_recommend{
	flex-direction: column;
	padding: 20px;
}

.course_recommend .img_box {
    width: 100%;
}

.course_recommend .img_box p{
	text-align: center;
}

.course_recommend .txt_box {
    width: 100%;
}

.course_point{
	flex-direction: column;
	gap: 30px;
}

.course_point_child{
	width: 100%;
}

.course_point_child p.ttl{
	padding: 14px 0;
}

.course_point_child h3{
	margin-bottom: 10px;
}

.course_curriculum{
	flex-direction: column;
	gap: 30px;
}

.course_curriculum_child{
	width: 100%;
}

.dialogue_box_teacher .img_box {
    width: 20%;
}

.dialogue_box_teacher .txt_box{
	width: 70%;
}

.dialogue_box_teacher .txt_box::after{
	left: -33px;
	border-width: 17px;
}

.dialogue_box01 .img_box,
.dialogue_box02 .img_box{
    width: 20%;
}

.dialogue_box01 .txt_box,
.dialogue_box02 .txt_box{
	width: 70%;
}

.dialogue_box01 .txt_box::after{
	left: -33px;
	border-width: 17px;
}
.dialogue_box02 .txt_box::after{
	right: -33px;
	border-width: 17px;
}

/**********************
* 理事紹介
**********************/
.boardmember{
	margin: 0 0 50px;
	padding: 0 0 10px;
}

.boardmember_box01{
	flex-direction: column;
	gap: 0px;
}

.boardmember_box01 .img_box {
	width: auto;
	max-width: 60%;
	margin: auto;
}

.boardmember_box01 .img_box p {
	text-align: center;
}

/**********************
* 協会概要
**********************/
table.association_table th{
	width: 30%;
}

table.association_table th,
table.association_table td{
	padding: 30px 15px;
	font-size: 3.4vw;
}

table.association_table td p,
table.association_table td ol li{
	font-size: 3.4vw;
}

/**********************
* 代表メッセージ
**********************/
.greeting_message p {
	text-align: left;
	font-size: 4vw;
}

.greeting_message p.ttl_img{
    width: 60%;
}

/**********************
* 月脚さん追加
**********************/
body {
	min-width: initial;
}

.sp_br {
	display: block;
}

.contents p {
	font-size: max(3.721vw, 16px);
}

.wrapper {
	padding: 25px 0;
	width: 90%;
	max-width: 1200px;
	margin: auto;
}

.toppage h2 {
	font-size: max(5.581vw, 24px);
	margin: 2.325vw 0 6.976vw 0;
	padding-bottom: 4.651vw;
}

.top_about .contents {
	flex-direction: column;
}

.top_about_left,
.top_about_right {
	width: 90%;
}

.top_about_right p:last-child {
	margin-bottom: 0;
}

.toppage h2 span {
	font-size: max(3.721vw, 16px);
}

.top_feature h2 span span {
	font-size: max(6.976vw, 30px);
}

.box {
	flex-direction: column;
}

.feature_item {
	width: 100%;
}

.feature_item:last-child {
	margin-top: 50px;
}

.feature_item_txt h3 {
	font-size: max(4.651vw, 20px);
}

.feature_item_num {
	font-size: max(8.837vw, 38px);
	left: 0;
	right: 0;
	top: -15vw;
}

.feature_item_img img {
	width: 100%;
	height: 50vw;
	max-height: initial;
}

.feature_item_line {
	font-size: 12px;
	right: -3%;
	width: 100px;
	height: 100px;
	padding: 20px 10px 10px;
}

.feature_item_line div {
	font-size: 16px;
	width: 60px;
	padding: 0px 10px;
}

.feature_item_line p {
	font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
}

.top_recommend h2 img {
	width: 80%;
}

.top_recommend .contents {
	padding: 15% 6%;
}

.top_recommend .contents::before {
	border-color: #7BB1F3 #7BB1F3 #0E2652 #0E2652;
}

.top_recommend_item {
	flex-direction: column;
	gap: 3vw;
}

.top_recommend_item.reverse {
	flex-direction: column;
}

.top_recommend_item_img, .top_recommend_item_txt {
	width: 100%;
}

.top_recommend_item_img img {
	height: 45vw;
}

.top_recommend_item_txt h3 {
	font-size: max(4vw, 18px);
	margin-bottom: 2vw;
}

.top_recommend_item_txt h3 span {
	font-size: max(5.581vw, 24px);
}

.top_recommend_item_txt ul li {
	font-size: max(3.721vw, 16px);
}

.top_recommend_item_txt ul li::before {
	top: 2vw;
}

.top_recommend_bottom p {
	font-size: max(4vw, 18px);
}

.top_recommend_bottom p span {
	font-size: max(4.651vw, 20px);
}

.top_recommend_bottom::before {
	border-width: 12vw 50vw 0 50vw;
	bottom: -10vw;
}

.top_merit h2 div {
	font-size: max(3.721vw, 16px);
}

.top_merit h2 span {
	margin-top: 5vw;
	font-size: max(5.581vw, 24px);
}

.top_merit_box {
	gap: 20px 4%;
}

.top_merit_box li {
	width: 48%;
}

.top_merit_icon {
	width: 70%;
	margin: auto;
}

.top_merit_box li h3 {
	font-size: max(3.255vw, 14px);
}

.top_merit_box li p {
	font-size: max(3.255vw, 14px);
}

.top_course_txt {
	font-size: max(3.721vw, 16px)!important;
}

.txt_red {
	font-size: max(4.651vw, 20px);
}

.top_course_box {
	margin-top: 10vw;
}

.top_course_item {
	flex-direction: column;
	padding: 10% 6%;
	gap: 20px;
}

.top_course_item_img, .top_course_item_txt {
	width: 100%;
}

.top_course_item_img {
	height: 55vw;
}

.top_course_item_num {
	width: 18vw;
	height: 18vw;
	top: -9vw;
	left: -5vw;
}

.top_course_item_num p {
	font-size: max(2.790vw, 12px);
}

.top_course_item_num span {
	font-size: max(4.651vw, 20px);
}

.top_course_item_txt h3 {
	font-size: max(5.581vw, 24px);
	padding-bottom: 2.325vw;
	margin-bottom: 2.325vw;
}

.top_course_item_detail h4 span {
	width: 22vw;
	font-size: max(3.255vw, 14px);
	padding: 1vw
}

.top_course_item_detail p {
	font-size: max(3.255vw, 14px);
}

.top_course_item_link a {
	font-size: max(3.255vw, 14px);
}

.top_supervision h2,
.top_supervision h2 span {
	font-size: max(4.651vw, 20px);
}

.top_supervision_name {
	font-size: max(3.255vw, 14px);
}

/* 780px終了 */
}
/* 780px終了 */

/* 500px */
@media screen and (max-width: 780px){
	.feature_item_num {
		top: -21vw;
	}
}