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

@media (max-width: 1280px){
	.top_slider .slider li.top03{
		background-position: right;
	}
	.top_slider .slider li.top04{
		background-position: right;
	}
	.slide_catch .c02{
		position: absolute;
		right: 90px;
		top: 50px;
	}
	.slide_catch .c03{
		position: absolute;
		right: 180px;
		top:100px;
	}
	section.contents{
		padding: 50px 0;
	}

	.w1366{
		width: 100%;
		margin: auto;
	}
	.greeting{
		width: calc(100% - 30px);
	}
	.bg_inner_w,.bg_inner_ivory{
		width: calc(100% - 30px);
		margin: auto;
	}
}
@media (max-width: 959px){
	.pc{
		display: none !important;
	}
	.w960{
		padding: 0 10px;
	}
	.bg_inner_w{
		padding: 20px;
	}
	/* flex-box==================== */
	.card002{
		flex-direction: column;
		justify-content: center;
		align-items: center;
		margin-bottom: 30px;
	}
	.card001_e figure.event{
		width: calc(100% / 3 - 20px);
		padding: 8px;
		align-self: stretch;
	}
	.reverse{
		flex-direction: column-reverse;
	}
	header h2{
		font-size: 2em;
		line-height: 100%;
		margin-top: auto;
		margin-bottom: auto;
		padding-right: 80px;
	}
	footer h2 img{
		width: 200px;
	}
	.top_slider .slider li.top04{
		background-position: right 10% center;
	}
	.slide_catch img{
		width: 50px;
	}
	.slide_catch .c02{
		position: absolute;
		right: 70px;
		top: 30px;
	}
	.slide_catch .c03{
		position: absolute;
		right: 140px;
		top:60px;
	}

	.bg_img_deko_c{
		background-size: 60px;
	}
	.slide_wrap::after{
		background-size: 60px;
	}

	.top_copy{
		top:50%;
	}
	.figure-slide-01{
		height: 500px;
		background-position: left center;
	}
	section.contents{
		padding: 50px 0;
	}

	.contents_in{
		padding: 0 10px;
	}
	
	.greeting{
		width: calc(100% - 30px);
		background-size:30% ,35%,10%;
		background-position: top right,bottom right,bottom left 30px;
	}
	.grid figure{
		margin: 10px;
		width: calc(100% / 2 - 20px);
	}
	.subtitle .inner{
		background-size: 250px;
	}
	.subtitle h2{
		font-size: 1.2rem;
	}
	.sub_chara img{
		height: 60%;
	}
	
	.btn_wrap{
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}
	.btn_wrap .btn02{
		max-width: 400px;
	}
	
	.timeline{
		padding: 0 15px;
	}

	.contents_mail{
		padding: 10px;
	}
	.tel_button{
		width: 95%;
	}

	input[type='text'] ,input[type='date'] , textarea{
		width: 100% !important;
	}
	#mailform table th,
	#mailform table td{
		display: block;
		width: 100%;
	}
}

@media (max-width: 750px){
	.pctb{
		display: none !important;
	}
	.txt_lv02 span{
		font-size: 200%;
	}
	.txt_catch01{
		font-size: 1.2em;
		line-height: 150%;
	}
	.greeting{
		width: calc(100% - 30px);
		background-size:45% ,55%,20%;
		background-position: top right,bottom right,bottom left 30px;
	}
	.wrap80{
		padding: 0;
	}
	.footer_in{
		display: block;
		width: 100%;
		margin: auto;
	}
	.bg_img_deko_c{
		background-size: 50px;
	}
	.slide_wrap::after{
		background-size: 50px;
	}
	.top_slider .slider li .catch{
		right: 15px;
	}
	section.contents{
		padding: 50px 0;
	}
	
	.grid {
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}


	.flex_contents{
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}
	.flex_services{
		flex-direction: column;
		align-items: center;
	}
	.services_txt{
		width: 100%;
		padding: 1em 0;
	}
	.services_img{
		min-width: 250px;
	}
	.services table{
		margin: 0 0 10px;
	}
	.subtitle .inner{
		width: calc(100% - 30px);
	}
	.qa-list dl{
		padding: 28px 40px 28px 15px;
	}
	.qa-list dl::before{
		right: 15px;
	}
	.qa-list dl dt {
		padding: 0 0 0 40px;
		font-size: 1.1em;
	}
	.qa-list dl dd{
		padding: 0 0 0 40px;
	}
	
	/* table======================================== */
	
	.line02 table th,.line02 table td{
		display: block;
		width: 100%;
	}
	.line02 table th{
		border-bottom: none;
		padding-bottom: 0.5em;
		text-align: left;
		font-weight: 700;
	}
	.line02 table td{
		padding-top: 0.5em;
		position: relative;
	}
	.line02 table td::after{
		position: absolute;
		content: "";
		left: 0;
		bottom: -2px;
		width: 100px;
		height: 2px;
		background-color: #008000;
	}
	
	.card001_e figure.event{
		width: calc(100% / 2 - 10px);
		padding: 8px;
		align-self: stretch;
	}
	
	/* メールフォーム======================================== */
	.mailform{
		padding: 10px;
	}
	input[type='text'] ,input[type='date'] , textarea{
		width: 100% !important;
	}
	.tel_button{
		width: 100%;
		max-width: 600px;
	}
	.tel_button a{
		width: 100%;
	}
	
	.bg_img_deko_c{
		background-size: 60px;
	}
	.slide_wrap::after{
		background-size: 60px;
	}
	/* フッター固定ボタン======================================== */
	.line_footer{
		display: block;
		position: fixed;
		width: 60px;
		height: 50px;
		border-radius: 0 60px 60px 0;
		overflow: hidden;
		left: 0;
		bottom: 60px;
		cursor: pointer;
	}
	.line_footer img{
		width: 100%;
		height: 50px;
		object-fit: cover;
		object-position: center;
	}
	.line_footer:hover{
		opacity: 0.5;
	}
}
@media (max-width: 450px){
	#header h1 img{
		width: 250px;
	}
	.bg_img_deko_c{
		background-size: 40px;
	}
	.slide_wrap::after{
		background:url("../img/bg_deco_ch.png") no-repeat;
		background-size: 100%;
		background-position: bottom 10px center;
		opacity: 0.8;
	}
	.timeline{
		width: calc(100% - 10px);
		margin: 0 auto 0 0;
	}
	.card001_e{
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}
	.card001_e figure.event{
		width: calc(100% - 10px);
		padding: 8px;
		align-self: stretch;
	}
	.subtitle .inner{
		width: calc(100% - 15px);
	}
	.subtitle h2{
		width: 10em;
		left: calc(50% + 1em);
	}
	.sub_chara img{
		left: 20px;
		height: 50%;
	}

}