@charset "utf-8";

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body { font-size: 0.9em;}

.ta_right-s_center { text-align: center !important;}
.ta_left-s_center { text-align: center !important;}
.ta_center-s_left { text-align: left !important;}

.hidden_s { display: none !important;}

.mb40-20 { margin-bottom: 20px !important;}
.mb60-30, .mb50-30 { margin-bottom: 30px !important;}
.mb80-40 { margin-bottom: 40px !important;}
.mb100-60 { margin-bottom: 60px !important;}
.mb120-60 { margin-bottom: 60px !important;}
.mb120-80 { margin-bottom: 80px !important;}
.mb160-80 { margin-bottom: 80px !important;}


/* ------------------------
	フッター
------------------------ */
 
.footer_contact { flex-wrap: wrap; gap: 1em 2em; font-size: 1.1em; padding: 0 20px;}
.list_sns { padding: 0 20px; flex-wrap: wrap; gap: 1em 2em;}

.footer .logo01 img { width: 160px;}
.footer .box01 { flex-flow: column; align-items: center; gap: 25px;}
.footer .box01 .logo02 { margin-right: 5%;}
.footer .logo03 img { width: 9em;}

.pagetop { width: 45px; right: 15px;}


/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.viewer { width: 150%; margin-left: -50%;}
.slider_wrap .logo { width: 25%; left: 5%;}

.top_sec03 .box01 { flex-flow: column; gap: 60px;}
.top_sec03 .list01 { max-width: 18.8em; margin: auto; font-size: min(4.7vw,1.15em) !important;}
.top_sec03 .box01 figure { padding: 0 13%;}

.c_slider_wrap { aspect-ratio: 1000 / 600;}
.c_slider_wrap:before, .c_slider_wrap:after { height: 10px;}

.top_sec04 { padding: 70px 0;}
.top_sec04 .list01 { gap: 20px 2.5em;}
.top_sec04 .list01 img { max-height: 2.5em; width: auto;}

@media only screen and (max-width: 640px) {
  .top_sec01 dl { flex-wrap: wrap;}
  .top_sec01 dd:nth-of-type(2) { flex-basis: calc(100% - (55px + 1.5em));}
}



/*------------------------------------------------------

	下層ページ

------------------------------------------------------*/

.heading_middle { font-size: 1.8em; letter-spacing: 0;}
.heading_large { font-size: 2em; letter-spacing: 0.1em;}

.heading_wave { font-size: min(8vw,2em); letter-spacing: 0.1em;}

.pagettl { padding: 15% 15px;}
.pagettl:after { height: 10%;}
.pagettl h1 { font-size: 2em;}

.breadcrumb { background-position: 20px 0.5em; background-size: 2.3em auto; padding-left: 4.5em;}

/* ----------------------------
	固定ページテンプレート
---------------------------- */

.catch { font-size: 1.9em;}

.blog_content h2 { font-size: 1.8em;}
.blog_content h3 { font-size: 1.7em; padding: 0.4em 0 0.4em 1.3em;}
.blog_content h4 { font-size: 1.6em;}

.blog_content blockquote { background-position: 1.1em 1.1em, calc(100% - 1.4em) calc(100% - 1.4em); background-size: 1em auto; padding: 2.5em 3em 3em 2.5em;}

.box30.center > * { width: auto !important;}
.blog_content .btn01 a, .blog_content .btn02 a, .page_nav a { min-width: 280px;}

.table_box { flex-flow: column; gap: 30px;}
.table_box .box_inner { width: auto;}
.table_box .img_box { flex-flow: row; gap: 1.5em;}

.img_sec { flex-flow: column !important; align-items: center; gap: 30px;}
.img_sec.reverse { flex-flow: column-reverse !important;}
.img_sec .box_inner { width: auto;}

.ttl_sec { flex-flow: column !important; gap: 30px;}
.ttl_sec .ttl_box { width: auto;}

.bg_sec { flex-flow: column !important; gap: 30px; padding: 50px 20px;}
.bg_sec figure { width: auto; max-width: 65%;}

.step_sec { flex-flow: column !important; gap: 30px;}
.step_sec .box_inner { width: auto;}
.step_sec figure { max-width: 500px; margin: auto;}
.step_sec figcaption { left: -0.2em;}
.step_sec.img_right figcaption { left: auto; right: -0.2em;}

.box25 { gap: 0 5%;}
.box25 > * { width: calc(95% / 2);}

.box50 > *, .box30 > * { width: 100%;}

.link_pad { padding-top: 50px; margin-top: -50px;}


@media only screen and (max-width: 570px) {
	.contact_sec dl { display: block;}
	.contact_sec dt, .contact_sec dd {
		display: block;
		border-bottom: none;
		padding: 0px;
	}
	.contact_sec dt {
		width: 100%;
		margin-bottom: 10px;
	}
	.contact_sec dt span {
		display: inline-block;
		vertical-align: middle;
		padding: 3px 5px;
		float: none;
		margin-left: 10px;
	}
}


