@charset "utf-8";

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body { min-width: 0px; 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;}

/* margin */
.mb30-15 { margin-bottom: 15px !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;}
.mb160-80 { margin-bottom: 80px !important;}


/* ------------------------
	ヘッダー
------------------------ */

body { padding-top: 0;}

.header { position: static; padding: 0 20px; min-width: 0;}
.header h1, .sp-navi .logo { width: 100%; line-height: 70px; padding-right: 70px;}
.header h1 img, .sp-navi .logo img { max-height: 36px; width: auto; vertical-align: middle;}


/* ------------------------
	グローバルナビ
------------------------ */

/* ハンバーガーメニュー */
.humberger {
	cursor: pointer;
	display: block;
	position: fixed;
  background: #011F88;
  border-radius: 5px;
	top: 10px;
	right: 10px;
	width: 50px;
	height: 50px;
	z-index: 1001;
}
.humberger span {
	background: #fff;
	border-radius: 15px;
	position: absolute;
	left: 9px;
	width: 32px;
	height: 3px;
	transition: 0.4s;
}
.humberger span:nth-of-type(1) { top: 16px;}
.humberger span:nth-of-type(2) { top: 24px;}
.humberger span:nth-of-type(3) { top: 32px;}
.is-open .humberger span:nth-of-type(1) { transform: translateY(7px) rotate(-45deg);}
.is-open .humberger span:nth-of-type(2) { opacity: 0;}
.is-open .humberger span:nth-of-type(3) { transform: translateY(-9px) rotate(45deg);}

/* ナビ本体 */
.sp-navi { -webkit-text-size-adjust: 100%;}
.sp-navi.is-open .sp-navi-inner {
	opacity: 1;
	visibility: visible;
	z-index: 100;
}
.sp-navi .sp-navi-inner {
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
  background: #fff;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	transition: .5s;
	padding: 0 20px 50px;
}

.sp-navi .list01 { font-size: min(5vw,1.3em);}
.sp-navi .list01 > li { border-bottom: solid 1px #333;}
.sp-navi .list01 > li > a, .sp-navi .list01 .aco { color: #003686; text-decoration: none; font-weight: bold; display: block; padding: 0.6em 3em 0.6em 1.5em;}
.sp-navi .list01 > li ul { font-size: 0.9em; padding: 0 0 1em 1.65em; line-height: 2; display: none;}
.sp-navi .list01 > li li { padding-left: 1.2em; position: relative;}
.sp-navi .list01 > li li:before { content: ""; position: absolute; background: #333; width: 0.65em; height: 1px; top: 47%; left: 0;}

.sp-navi .list01 .aco { cursor: pointer; background: url("../images/common/ico_plus.svg") no-repeat right center; background-size: 1.2em auto;}
.sp-navi .list01 .aco.open { background-image: url("../images/common/ico_minus.svg");}

.sp-navi .cta_list a { background-color: #E2F0FF !important;}


.cta_list a { width: 100%; max-width: 20rem; margin: auto; padding-left: 2em;}
.cta_list li { width: 100%; font-size: min(5vw,1.2em);}
.cta_list li:first-child a { background-position: 2em center;}
.cta_list li:last-child a { font-size: 0.85em; background-position: 2.5em center; background-size: 2.3em auto; padding-left: 3em;}

/* ------------------------
	フッター
------------------------ */

.footer .bg01 .box01 { flex-flow: column; align-items: center;}

.cta_list { width: 100%; margin-top: 20px;}
.footer .cta_list { flex-flow: row; justify-content: center;}
.footer .cta_list li { width: auto; min-width: 20rem;}

@media only screen and (max-width: 680px) {
  .footer .bg01 .box02 { flex-flow: column; align-items: center;}
  .footer .cta_list { flex-flow: column;}
  .footer .cta_list li { width: 100%; min-width: initial;}
}


/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.mainimage .text01 { font-size: min(7.5vw,2.9em); padding: 1.5em 0; line-height: 2;}

.top_sec01 { background-size: 200% auto; padding: 50px 0 23%;}
.top_sec01 .ttl_box { max-width: 550px; font-size: min(5.1vw,1.7em); padding: 0.7em 1em;}
.top_sec01 .img01 { bottom: -30px; left: auto; right: 20px; width: 55%;}

.top_sec02 { padding: 70px 0 50px;}
.top_sec02 .en_ttl { font-size: 3em;}
.top_sec02 .list01 { justify-content: center; margin-top: 30px; gap: 30px 5%;}
.top_sec02 .list01 li { width: 47%; max-width: 292px; margin: 0 !important; order: 0 !important;}

@media only screen and (max-width: 640px) {
  .top_sec03 { margin-top: -40px;}
  .top_sec03 section { padding: 20px 0; margin-bottom: 0 !important;}
  .top_sec03 .back_white { margin: auto !important;}
  .top_sec03 section:before { width: 100vw; background-size: cover !important; left: -15px !important; right: -15px !important;}
  .top_sec03 section:nth-of-type(1):before { background: url("../images/top/top_sec03_bg01_sp.jpg") no-repeat center center;}
  .top_sec03 section:nth-of-type(2):before { background: url("../images/top/top_sec03_bg02_sp.jpg") no-repeat center center;}

  .top_sec04 .box01 { padding: 25px 20px; flex-flow: column;}
  .top_sec04 .box01 .ttl_box { display: flex; align-items: center; justify-content: space-between;}
  .top_sec04 .box01 .ttl_box .mb40-20 { margin-bottom: 0 !important;}
  .top_sec04 .box01 .main_box { width: 100%;}
}

@media only screen and (max-width: 480px) {
  .art_dl { flex-flow: column; align-items: flex-start;}
  .art_dl dd { width: 100%; white-space: normal; overflow: visible; text-overflow: clip;}
}

@media only screen and (max-width: 380px) {
  .top_sec03 .hide_sp { display: none;}
}


/*------------------------------------------------------

	コンテンツ

------------------------------------------------------*/

.pagettl { padding: 3em 0;}

/* ------------------------
	company
------------------------ */

.com_sec02 .text01.fo17 { font-size: min(5.7vw,1.7em) !important;}

.com_sec04 th { width: 7em;}
.com_sec05 td:nth-of-type(1) { width: 5.5em;}
.com_sec06 th { width: 9em;}

.com_sec07 .list01 li { max-width: calc((100% - 1em) / 2);}

@media only screen and (max-width: 480px) {
  .com_sec07 .list01 li { max-width: initial; margin: auto;}
}


/* ------------------------
	sales
------------------------ */

.sales_sec01 .heading_back { font-size: min(6vw,2.1em);}
.under_box01 { padding: 30px 20px;}
.under_box01 .under_ttl01 { margin-left: -20px; padding: 0.5em 20px;}

.sales_btn01 a { max-width: 42em; padding-right: 1.5em;}
.sales_btn01 figure { width: 40%;}
.sales_btn01 a p { background-size: 2em auto; padding: 1em 3em 1em 0;}

@media only screen and (max-width: 640px) {
  .sales_sec01 .box01, .pur_sec02 .box01 { flex-flow: column;}
  .sales_sec01 .box01 > figure, .pur_sec02 .box01 > figure { width: 100%;}
}

@media only screen and (max-width: 480px) {
  .sales_btn01 a { font-size: min(3.4vw,1em); padding: 0.6em;}
  .sales_btn01 figure { width: 33%; aspect-ratio: 4/3;}
  .sales_btn01 figure img { width: 100%; height: 100%; object-fit: cover;}
}


/* ------------------------
	insurance
------------------------ */

.ins_sec01 .heading_back { font-size: min(6.2vw,1.7em);}
.ins_sec01 .box01 { flex-flow: column;}
.ins_sec01 .box01 .box_inner { width: auto;}

.ins_sec01 .sec02 .list01 { flex-wrap: wrap; gap: 1em 2em; font-size: min(2.8vw,1em) !important; max-width: 650px; margin: auto;}
.ins_sec01 .sec02 .list01 li { flex: initial; width: calc((100% - 4em) / 3); max-width: 170px;}

.ins_sec01 .sec03 .list01 img { width: 10em;}

.ins_sec01 .box02 { padding: 1.5em;}

@media only screen and (max-width: 480px) {
  .ins_sec01 .sec04 dl { flex-flow: column; gap: 0.5em; padding: 1.5em 2.5em; align-items: flex-start; margin: auto;}
  .ins_sec01 .sec04 dd:nth-child(2) { display: none;}
}


/* ------------------------
	ss
------------------------ */

.ss_sec01 .btn_area { position: static; text-align: right; margin-top: 0.5em;}

.ss_sec01 .box01 { flex-flow: column;}
.ss_sec01 .box01 .img_box { width: 100%; font-size: min(4vw,1em);}
.ss_sec01 .box01 .img_box figure:last-child img { max-width: 100%; width: auto; max-height: 3.5em;}
.ss_sec01 .box01 .table_box { width: auto;}


.ss_under_sec01 { padding-bottom: 20%;}
.ss_under_sec01 .img01 { width: 25%; bottom: -1.5%; right: 3%;}
.ss_under_sec01 h3 { font-size: min(6.7vw,2em);}
.ss_under_sec01 .box01 { flex-flow: column;}
.ss_under_sec01 .box01 .box_inner { width: 100%;}

.ss_under_sec01 .box02 .list01 { gap: 3em 1.5em;}
.ss_under_sec01 .box02 .list01 li { padding: 1.5em; max-width: initial !important;}
.ss_under_sec01 .box02 .list01 li:nth-child(1) { margin-right: 2em;}
.ss_under_sec01 .box02 .list01 li:nth-child(2) { margin: 0 0 0 2em !important;}
.ss_under_sec01 .box02 .list01 li:nth-child(3) { margin: 0 1.5em;}

.ss_under_sec02 .box01 { padding: 1em 2em;}
.ss_under_sec02 th { width: 10em;}
.ss_under_sec02 .btn_area { position: static; margin-top: 0.8em;}

.ss_under_sec02 .more_btn a { font-size: min(4vw,1.5em); padding: 0.8em 3em 0.8em 1.5em; background-position: calc(100% - 1.3em) center;}

@media only screen and (max-width: 560px) {
  .ss_under_sec02 table, .ss_under_sec02 tbody, .ss_under_sec02 tr, .ss_under_sec02 th, .ss_under_sec02 td { display: block; width: 100%;}
  .ss_under_sec02 th { padding-bottom: 0; font-size: 1.1em;}
  .ss_under_sec02 td { padding-top: 0.2em;}
}


/* ------------------------
	maintenance
------------------------ */

.main_sec01 .box01 { flex-flow: column;}
.main_sec01 .box01 .box_inner { width: auto;}

.main_sec01 .under_box01 .main_box01 { flex-flow: column;}


/* ------------------------
	purchase
------------------------ */

.pur_sec01 h4.fo18 { font-size: min(5.5vw,1.8em) !important;}

@media only screen and (max-width: 640px) {
  .pur_sec01 .list01 { flex-flow: column;}
}


/* ------------------------
	coating
------------------------ */

.coat_sec01 .box01 { flex-flow: column;}
.coat_sec01 .box01 img { max-width: 13em;}

@media only screen and (max-width: 640px) {
  .coat_sec02 .box01 { flex-flow: column;}
}


/* ------------------------
	rental
------------------------ */

.rent_sec01 .list01 { flex-wrap: wrap; justify-content: center;}
.rent_sec01 .list01 li { flex: initial; width: calc((100% - 0.7em) / 2); display: flex; flex-flow: column;}
.rent_sec01 .list01 h4 { margin: auto; flex: 1;}
.rent_sec01 .list01 img { width: 130px;}

@media only screen and (max-width: 640px) {
  .rent_sec01 .list01 li { width: 100%; max-width: 400px;}
  
  .rent_sec01 .under_box01 section { flex-flow: column;}
  .rent_sec01 .under_box01 .map { width: 100%;}
}


/* ------------------------
	recruit
------------------------ */

.rec_header { margin-bottom: 100px !important;}
.rec_header h3 { font-size: min(8vw,2em);}
.rec_header .page_nav ul { flex-wrap: wrap;}
.rec_header .page_nav li { width: calc((100% - 1.3em) / 2);}
.rec_header .page_nav a { font-size: min(3vw,1.25em);}

.entry_btn a { font-size: min(5.3vw,1.75em);}

.rec_sec .box01 { flex-flow: column;}
.rec_sec .box01 > figure { width: 100%; max-width: 400px; margin: 0 auto 30px; order: 2;}
.rec_sec .box01 .box_inner { display: contents;}
.rec_sec .box01 h3.back_blue { font-size: 2.1em; order: 1;}
.rec_sec .box01 p.mb80-40 { order: 3;}
.rec_sec .box01 .list01 { order: 4;}
.rec_sec#junior .box01 .list01 li { width: 46%;}

.rec_sec dl { border-radius: 2em; padding: 2em;}

.more_btn.big a { font-size: min(6vw,1.6em);  padding: 0.6em 4em 0.6em 2.5em;}

@media only screen and (max-width: 480px) {
  .rec_header .page_nav li { width: 100%;}
  .rec_header .page_nav a { font-size: min(4.7vw,1.25em); max-width: 16em; margin: auto; padding: 1.1em 3em 1.1em 0.3em;}
}


/* ------------------------
	contact
------------------------ */

.con_nav li { flex: initial; font-size: min(3.7vw,1em);}

.link_pad { padding-top: 50px; margin-top: -50px !important;}

.con_sec01 .box01, .con_sec01 h4 { max-width: 700px; margin: auto;}
.con_sec01 .box_inner01 { width: 100%; font-size: min(1.9vw,1em);}
.con_sec01 .back_blue { border-radius: 1.5em; padding: 1.5em 2rem;}
.con_sec01 .back_blue .list01 { flex-flow: row; justify-content: center; gap: 1em 2em; flex-wrap: wrap; align-items: center;}
.con_sec01 .back_blue .list01 a, .con_sec01 .back_blue .list01 li > span { margin: auto;}

.contact_sec { padding: 2em;}
.contact_sec dt { width: 13em;}

@media only screen and (max-width: 640px) {
  .con_sec01 .box_inner01 { width: 100%; font-size: min(3.6vw,1em);}
  .con_sec01 .back_blue { padding: 1.5em 1.5rem;}
  .con_sec01 .back_blue h5:before { left: -1.5rem;}

  .contact_sec dl { flex-flow: column;}
  .contact_sec dt { justify-content: flex-start; gap: 1em;}
  .contact_sec .privacy dt { gap: 0;}
  .contact_sec dd { width: 100%;}
}

@media only screen and (max-width: 480px) {
  .con_sec01 .list01 { font-size: min(4vw,1em);}
  .con_sec01 .list01 li { width: 100%; max-width: 350px;}
}


/* ------------------------
	topics
------------------------ */

.archive_art dl { flex-flow: column; align-items: flex-start;}
.archive_art dd { width: 100%;}

.single_head { flex-flow: column; align-items: flex-start;}

.blog_content table { font-size: 0.9em;}

img.aligncenter, img.alignright, img.alignleft { display: block; margin: 20px auto; float: none;}



