@charset "utf-8";

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

	グローバル

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

body { font-size: 0.9em;}

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

.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;}

/* ------------------------
	ヘッダー
------------------------ */

.header { padding: 0px 50px 0px 0px; display: block;}
.header h1 { width: auto;}
.header h1 img { width: auto; height: 100%; max-height: 60px; margin-top: -10px; margin-left: -2px; vertical-align: bottom;}


/* ------------------------
	フッター
------------------------ */
 
.footer.under { margin-top: 30px;}

.footer .bg01 { padding-top: 12%;}

.footer .il_bg01 { width: 60px; top: -6%;}
.footer .il_bg02 { width: 60px; right: 2%; bottom: 5%;}

.footer .bg02 h2 img { width: 200px; margin-bottom: -10px;}

.footer .logo img { max-width: 280px; width: 100%;}
.footer .copy img { max-height: 25px;}

.pagetop { right: 15px; padding-bottom: 30px; width: 60px;}

@media only screen and (max-width: 640px) {
  .footer .bg01 .text_box { font-size: min(3vw,1em);}
  .footer .bg01 .text01 .show_sp { display: inline;}
}


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

	トップページ

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

.mainimage { flex-flow: column; margin-top: -25px; padding: 0;}
.mainimage .text_area { width: auto; margin: 7% 15px 0px; gap: 20px;}
.mainimage figure { width: auto; margin: 5% 0 7%;}

.top_ttl { font-size: min(9.5vw,2.5em);}
.text_bg { font-size: min(12vw,4em);}

.top_sec01 .bg03 { width: 60px; top: 50%;}
.top_sec01 .bg04 { width: 60px;}

.top_sec02 h2 { padding: 0px 20%;}
.top_sec02 .box01 { flex-flow: column; gap: 30px; font-size: 1em;}
.top_sec02 .box01 section { width: 100%; max-width: 600px; margin: auto;}
.top_sec02 .num_box .num { font-size: 2.5em;}

.top_sec04 .bg01 { width: 60px; top: -2%;}
.top_sec04 .bg02 { width: 60px; right: -10px; bottom: -35px;}
.top_sec04 .box01 { flex-flow: column; gap: 45px; font-size: 1em;}
.top_sec04 .box01 .img01 { padding: 0px 25%;}
.top_sec04 .box01 section { width: 100%; max-width: 450px; margin: auto; padding: 0px 20px 30px;}

.top_sec05 { padding: 40px 0px 13vw;}
.top_sec05 .top_ttl { font-size: min(8vw,2.5em)}
.top_sec05 .text_bg { bottom: -13vw;}
.top_sec05 .num_box { left: -0.6em;}

.top_sec06 .top_ttl { font-size: min(7.2vw,2.5em)}
.top_sec06 .box01 { display: block;}
.top_sec06 .box01 .box_inner { width: auto; font-size: 1.05em !important; line-height: 2 !important;}
.top_sec06 .box01 .img_box { width: auto; margin: 30px 6% 0px 11%;}
.top_sec06 .box01 p.break_keep:not(.text01) { word-break: normal;}
.top_sec06 .bg01 { width: 60px; top: -2%;}
.top_sec06 .bg02 { width: 60px; left: 2%; bottom: -6.5%;}
.top_sec06 .bg03 { width: 60px; bottom: 1%;}

.top_sec07 .box01 .box_inner { margin: 40px -2em 0px 0px; padding: 40px 0px;}
.top_sec07 .box01 .map iframe { height: 350px;}
.top_sec07 .text_bg { bottom: 0px; right: 0px; transform: translateY(50%);}

@media only screen and (max-width: 640px) {
  .top_sec01 .box02 { flex-flow: column; font-size: min(3.5vw,1em); gap: 30px;}
  .top_sec01 .box02 > div { margin: auto;}
  .top_sec01 .bg02 { margin-top: -4%;}

  .top_sec05 { padding-bottom: 70px;}
  .top_sec05 .box01 section { width: 100%;}
  .top_sec05 .box01 .hide_sp { display: none;}
  .top_sec05 .text_bg { bottom: -70px;}
  
  .top_sec07 .box01 { flex-flow: column-reverse;}
  .top_sec07 .box01 .map { width: 100%; margin: 15px 0px;}
  .top_sec07 .box01 .box_inner { width: auto; margin: 0px; padding-bottom: 60px;}

  .top_sec08 .list01 a { padding: 1.5em 2em 1.5em 1em;}
}

@media only screen and (max-width: 480px) {
  .top_sec02 .box02 .box_inner { display: table; margin: auto;}
  .top_sec02 .box02 h3.fo19 { font-size: min(6vw,1.9em) !important;}
  .top_sec02 .box02 figure { position: static; width: auto !important; margin: 20px 0px -2%;}

  .top_sec03 .sec02 { padding: 10% 6% 17%;}
  .top_sec03.about > section { padding: 50px 15px 60px;}
}


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

	下層ページ

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

.more_btn a { font-size: 1.05em; letter-spacing: 0.05em; padding: 0.25em 1em 0.25em 2.3em;}


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

.pagettl h1 { font-size: min(7.5vw,2.2em);}
.pagettl .bg01 { width: 12%; max-width: 50px; right: -10px;}
.pagettl .bg02 { width: 14%; max-width: 55px; left: -0px;}
.pagettl .bg03 { width: 13%; max-width: 55px; right: 10px;}

.main_contents { padding: 0px 20px;}

.pt_box .num_box { font-size: 1.4em !important;}
.pt_box .ttl { font-size: 1.6em !important;}

.voice_box .box01 { display: block;}
.voice_box .box01 .box_inner { width: auto;}
.voice_box .box01 .img_box { width: auto !important; max-width: 380px; margin: 30px auto 60px;}
.voice_box.tate .img_box { max-width: 300px;}
.voice_box .bg01 { width: 55px; top: -25px; left: -10%;}
.voice_box .bg02 { width: 50px; bottom: -15px; right: -15%;}
.voice_box .bg03 { width: 55px; bottom: 5%; left: -15%;}

.arrow_box { background-position: 0.55em top; padding-left: 4.2em;}

.faq_dl dt { padding: 1em 3em 1em 3.8rem;}
.faq_dl dd { padding: 1em 0.5em 0 3.8rem;}
.faq_dl dt:before, .faq_dl dd:before { left: 0.8rem; top: 0.8rem}


@media only screen and (max-width: 480px) {
  .pt_box .ttl_box { flex-flow: column;}
}


/* ------------------------
	contact
------------------------ */

@media only screen and (max-width: 570px) {
	.contact_sec01 h3 .show_sp { display: inline;}

	.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;
	}
}

/* ------------------------
	投稿
------------------------ */

.blog_wrap { display: block;}
.contents, .rNavi { width: auto;}
.rNavi { max-width: 500px; margin: auto;}

.archive_art h1 { font-size: 1.45em;}

.blog_header h1 { font-size: min(7vw,2em);}

/* 本文 */
.blog_content h1 { font-size: 2em;}
.blog_content h2.num_ttl { font-size: 1.6em;}
.blog_content h6 { font-size: 1.6em;}

.single_sns { gap: 0.7em; font-size: min(3.2vw,1em);}
.single_sns li a:after { right: 0.7em;}

.archive_list { gap: 40px 1.5em;}
.archive_list li { width: calc((100% - 3em) / 3);}

@media only screen and (max-width: 640px) {
  .blog_content .table_wrap { overflow-x: scroll;}
  .blog_content .table_wrap:before { content: "※横にスクロールしてご覧ください。"; font-size: 0.85em; margin-bottom: 0.7em;}
  .blog_content .table_wrap table { min-width: 640px;}
}

@media only screen and (max-width: 480px) {
  .archive_list li { width: calc((100% - 1.5em) / 2);}
}


/* ブロックエディタ用 */
.reverse_sp { display: flex; flex-direction: column-reverse;}


/* 調整用 */
.extend02 { margin-right: 0;}
.aco_content { padding-top: 60px;}

