@charset "utf-8";

@media screen and (max-width: 1279px) {
	.bs_post_cols {
		gap: 40px 40px;
	}
	.bs_post_cols > li {width: calc(100% / 2 - 40px / 2);}

}


@media screen and (max-width: 767px) {

/* reset
--------------------------------------------------------------------------- */
	html {
		/* font-size: 56.25%; /* 9px */
		font-size: 53.125%; /* 8.5px */
	}

	a[href^="tel:"] {
		pointer-events: auto;
	}

	h1 {font-size: 3rem;}

	h2 {
		font-size: 2.2rem;
		font-weight: var(--fw-semibold);
	}
	h2 span {font-size: 1.6rem;}

	h3 ,
	h4 ,
	h5 ,
	h6 {
		font-weight: var(--fw-semibold);
	}

	time {font-size: 1.4rem;}

	.float_l_bl ,
	.float_r_bl {
		float: none;
		display: block;
		margin: 0px auto 15px;
	}

	.sp_block {display: block;}
	.sp_none {display: none;}

/* li
------------------------------------- */
	.bs_check_list01 li::before {font-size: 1.9rem;}


/* dl
---------------- ----------------- */
	.bs_dl_basic div > dt {
		width: 100%;
		margin-bottom: 0.5rem;
	}
	.bs_dl_basic div > dd {
		width: 100%;
	}


/* table
---------------- ----------------- */
	.bs_table01 th ,
	.bs_table01 td {
		padding: 10px 0;
	}
	.bs_table01 th {
		width: 120px;
	}

	.bs_l_text, .bs_l_text p, .bs_l_text a {font-size: 1.7rem;}
	.bs_m_text, .bs_m_text p, .bs_m_text a {font-size: 1.4rem;}
	.bs_s_text, .bs_s_text p, .bs_s_text a {font-size: 1.2rem;}


/* header
----------------------------------------------------------------------------- */
	.header {
		min-width: 100%;
	}

	.bs_header_copy {
		font-size: 1rem;
		margin-bottom: 5px;
	}

	h1.bs_header_logo {font-size: 1rem;}
	.bs_header_logo img {max-height: 26px;}

	header#scroll{background-color: rgba(255,255,255,0.95);}
	header#scroll .bs_header_copy ,
	header#scroll .bs_header_logo {
		display: none;
	}

	/* hamburger_menu */
	.menu_checkbox {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		border: 0;
		white-space: nowrap;
	}

	.bs_hamburger_menu {
		position: fixed;
		top: 16px;
		right: 10px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 56px;
		cursor: pointer;
		z-index: 200;
		background: none;
		border: none;
		padding: 0;
	}
	.bs_hamburger_bar {
		display: block;
		width: 32px;
		height: 2px;
		background-color: var(--color-primary);
		border-radius: 2px;
		transition: all 0.4s ease;
	}

	/* メニュー開閉時のバー変形 */
	.menu_checkbox:checked + .bs_hamburger_menu .bs_hamburger_bar {
		background-color: #FFF;
	}
	.menu_checkbox:checked + .bs_hamburger_menu .top {transform: translateY(10px) rotate(-45deg);}
	.menu_checkbox:checked + .bs_hamburger_menu .middle {opacity: 0;}
	.menu_checkbox:checked + .bs_hamburger_menu .bottom {transform: translateY(-10px) rotate(45deg);}

	/* メニュー本体 */
	.bs_hamburger_open {
		position: fixed;
		inset: 0;
	/*	background-color: #C0C4C8; */
		background: #90959A;
		display: flex;
		justify-content: center;
		gap: 40px 0px;
		flex-wrap: wrap;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 50px 15px 15px;
		opacity: 0;
		pointer-events: none;
		transition: all 0.3s ease;
	}

	/* チェックが入ったときに表示 */
	.menu_checkbox:checked ~ .bs_hamburger_open {
		opacity: 1;
		pointer-events: auto;
	}

	.bs_hamburger_open * {text-align: left;}

	.bs_hamburger_open_box {
		width: 100%;
	}

	.bs_hamburger_open_menu {
		gap: 10px 20px;
		width: 100%;
		margin: 0 auto 5px;
	}
	.bs_hamburger_open_menu li {
		width: calc(100% / 2 - 20px * 1 / 2);
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.bs_hamburger_open_menu li a {
		width: 100%;
		height: 50px;
		line-height: 50px;
		background-color: #FFFFFF;
		border-radius: 6px;
		padding: 0px 10px;
		text-align: center;
	}


/* contents
----------------------------------------------------------------------------- */
	.contents{
		padding:56px 0 0;
	}

	.bs_full_wrap {
		padding: 40px 0;
	}
	.bs_inner_wrap00 {
		padding: 0 15px;
	}
	.bs_inner_wrap01 {
		padding: 0 15px;
	}
	.bs_inner_wrap02 {
		padding: 0 15px;
	}
	.bs_inner_wrap03 {
		padding: 0 15px;
	}
	.bs_inner_wrap04 {
		padding: 0 15px;
	}


/*--- column Start ---*/
	.bs_2col ,
	.bs_3col ,
	.bs_4col ,
	.bs_5col {
		gap: 20px 0;
	}
	.bs_2col > :is(div, li, article) ,
	.bs_3col > :is(div, li, article) ,
	.bs_4col > :is(div, li, article) ,
	.bs_5col > :is(div, li, article) {
		width: 100%;
	}

	.sp_2col > :is(div, li, article) {width: calc(100% / 2 - 20px / 2);}

	.bs_three_thirds {
		display: block;
	}
	.bs_one_third {
		width: 100%;
		margin: 0 auto 15px;
		padding: 0;
	}
	.bs_two_thirds {
		width: 100%;
	}

	/* 子要素を任意の順に並び替え */
	.sp_flex_order1 {order: 1;}
	.sp_flex_order2 {order: 2;}


/* title
------------------------------------- */
	.bs_pagetitle_in {
		height: 180px;
	}

	.bs_title01::after {
		max-width: 180px;
	}

	.bs_main_copy01 {font-size: 2.2rem;}

	.bs_copy01 {
		font-size: 2rem;
		margin-bottom: 35px;
	}

/* form
------------------------------------- */
	input ,
	textarea ,
	select ,
	label {
		font-size: 1.5rem;
	}

/* ボタン
--------------------------- */
	.bs_menu01 {
		margin: 40px auto 30px;
	}

	.bs_menu01 li a {
		height: 60px;
		padding: 10px 5px 10px;
		border-radius: 10px;
		font-size: 1.5rem;
	}

	.bs_gmap {
		height: 200px;
	}


/* top page
----------------------------------------------------------------------------- */
	#me_top_swiper .swiper-slide {
		height: 65vh;
	}

	.me_top_slide01 a span {font-size: 2.4rem;}

	.me_top_slide_in {
		padding: 0 15px;
	}

	.me_top_slide02 .me_top_slide_in p {
		min-width: 135px;
		font-size: 15px;
	}
	.me_top_slide02 .me_top_slide_in figure {max-width: 260px;}


	.bs_post_cols {
		gap: 20px 15px;
	}
	.bs_post_cols > li {width: calc(100% / 2 - 15px / 2);}

	.bs_post_thumb {
		margin-bottom: 10px;
		aspect-ratio: 16 / 11;
	}
	.bs_post_icon {
		margin-bottom: 5px;
	}
	.bs_post_title {
		max-height: 48px;
		overflow: hidden;
	}
	.bs_post_time {letter-spacing: 0;}
	.bs_post_time i {padding-right: 0;}

	.me_top_column_title {font-size: 1.3rem;}

	.me_top_inner_wrap01 {
		padding: 0 15px;
	}

	.me_top_aboutus {
		text-align: left;
	}

	.me_top_service_list01 li {
		margin-bottom: 50px;
	}
	.me_top_service_list01 figure {
		max-height: auto;
	}

	.me_top_news01 .bs_2col > div:nth-child(1) {
		margin-bottom: 40px;
	}
	.me_top_news_title01 {
		margin-bottom: 0;
	}
	.me_top_news01 .bs_article_list02 {margin-bottom: 10px;}


	/* 採用情報 */
	.me_top_recruit01 {
		background-attachment: scroll;
	}

	/* メンバー一覧 */
	.me_staff_media_wrap{
		display :block;
		padding: 30px 12px 10px;
		border-radius: 20px;
	}

	.me_staff_media_wrap h3 {font-size: 2.2rem;}

	.me_author_name01{font-size:86%;}

	.me_top_blog_date{font-size:12px;}


/* article
----------------------------------------------------------------------------- */
	.bs_article_list01 figure {
		width: 100px;
		margin-right: 15px;
	}
	.bs_article_cont01 {
		width: calc(100% - (100px + 15px));
	}
	.bs_article_list01 > li a::after {
		width: 38px;
		height: 38px;
		line-height: 38px;
	}
	.bs_article_title01 {font-size: 1.5rem;}
	.bs_article_time01 {margin-bottom: 10px;}

	/* article category */
	.bs_article_category ,
	.bs_article_category_list li {
		width: 60px;
		height: 20px;
		line-height: 20px;
		font-size: 1.4rem;
		margin-bottom: 15px;
	}

	/* .bs_article_list02 */
	.bs_article_list02 {
		height: auto;
	}
	.bs_article_list02 li a {
		padding: 15px 0px;
	}


/* about
----------------------------------------------------------------------------- */

/* about/index
------------------------------------- */
	#me_about_index02 {
		background-size: auto 85%;
	}
	#me_about_index03 {
		background-position: -160px center;
	}
	.me_about_index_inner {
		height: 260px;
		padding: 0 15px;
		justify-content: center;
	}
	.me_about_index_inner_l {justify-content: center;}
	.me_about_index_inner p {
		text-align: center;
	}
	.me_about_index_inner .bs_btn {justify-content: center;}


/*  about/information/
------------------------------------- */
	.me_about_table01 th {
		width: 100px;
	}

/*  about/service/
------------------------------------- */
	.me_about_service_title01 {
		font-size: 1.7rem;
	}

	.me_about_service_contents li {
		max-width: 400px;
		margin: 0 auto;
	}
	.me_about_service_contents li p {
		font-size: 1.4rem;
	}


/* -------------------------------------------------
   works
   ------------------------------------------------- */


/* -------------------------------------------------
   works single
   ------------------------------------------------- */
	.bs_works_header {
		width: calc(100% - 4.8rem);
		margin-bottom: 30px;
		padding: 25px 15px;
	}
	.me_works_header_copy {
		font-size: 2.1rem;
	}

	.me_works_main_image {
		margin: 0 auto 40px;
	}

	.me_works_wrap {
		margin-bottom: 40px;
	}

	.me_works_table th ,
	.me_works_table td {padding: 10px 0;}
	.me_works_table th {width: 80px;}

	.me_works_content h4 {
		margin-top: 30px;
		margin-bottom: 20px;
	}
	.me_works_content h5 {
		font-size: 1.9rem;
	}
	.me_works_content ul ,
	.me_works_content ol {
		margin-bottom: 30px;
	}


/* recruit
----------------------------------------------------------------------------- */
	.me_recruit_index {
		height: 280px;
	}
	.me_recruit_inner01 ,
	.me_recruit_inner01_l {
		justify-content: center;
		padding: 20px 15px;
	}
	.me_recruit_index_title {
		width: 100%;
	}
	.me_recruit_title01 {
		font-size: 1.9rem;
	}


/* footer
----------------------------------------------------------------------------- */
	.bs_info_lead01 {
		font-size: 1.6rem;
	}
	.bs_info_tel dd a {font-size: 1.7rem;}
	.bs_info_time01 {font-size: 1.4rem;}

	.gotop {
		max-width: 10%;
	}


/* Instagram
----------------------------------------------------------------------------- */
	ul.bs_insta_ul {
		margin-bottom: 30px;
	}
	ul.bs_insta_ul > li {
		width: calc(100% / 2 - 20px * 1 / 2);
	}
	ul.bs_insta_ul > li ,
	ul.bs_insta_ul > li:nth-child(5n) {
		margin: 0 20px 20px 0;
	}
	ul.bs_insta_ul > li:last-child ,
	ul.bs_insta_ul > li:nth-child(2n) {
		margin: 0 0 20px 0;
	}


}
