/*
Theme Name: prpl
Description: 2021S
Author: promotion plus
*/

/*------------------------------
style.css
------------------------------*/

html { font-size: 62.5%; }
body,
input,
textarea,
select,
button { 	
	color : #342a21;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	font-size: 14px; font-size: 1.4rem; font-weight: 500; line-height: 1.5;
}
@media all and (-ms-high-contrast:none) {
  body,
  input,
  textarea,
  select,
  button {
    font-family: "メイリオ",Meiryo,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
  }
}
input,
textarea,
select,
button { font-size: 1.6rem; }
a,
button { color: #333; text-decoration: underline; transition: all 0.3s; }
a:hover,
button:hover { opacity: 0.8; }

button { background: transparent; }
button:hover { cursor: pointer; }
@media screen and (max-width:375px){
  body { font-size: 1.3rem; }
}
@media screen and (min-width:688px){
	body { font-size: 1.6rem; }
	input,
	textarea,
	select,
	button { font-size: 1.6rem; }
}

/*
layout
-------------------*/
.body { overflow-x: hidden; }
.wrapper { box-sizing: border-box; width: 90%; margin-left: auto; margin-right: auto; }
.wrapper-m { box-sizing: border-box; width: 90%; max-width: 1260px; margin-left: auto; margin-right: auto; }
.wrapper-s { box-sizing: border-box; width: 90%; max-width: 800px; margin-left: auto; margin-right: auto; }
.section-block { padding-top: 5em; padding-bottom: 5em; }
.section-block.pt0 { padding-top: 0; }
.clearfix { clear: both; zoom: 1; }
.clearfix:after {content: ""; height: 0; display: block; clear: both;}
.row { display: -webkit-box; display:-ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-wrap: wrap; flex-wrap: wrap; }
.inlineblock { display: inline-block; }
@media screen and (max-width:687px){
  .forpc { display: none; }
}
@media screen and (min-width:688px){
  .forsp {display: none;}
  .section-block { padding-top: 6.8em; padding-bottom: 6.8em; }
}
@media screen and (min-width:990px){
	.wrapper,
	.wrapper-m,
	.wrapper-s { width: 86%; }
}


/*
parts
-------------------*/
.img-fix { width: 100%; height: auto; -webkit-backface-visibility: hidden; }
.img-fit { width: 100%; height: 100%; object-fit: cover; font-family: 'object-fit: cover;'; -webkit-backface-visibility: hidden; }

.contents-paragraph { margin-bottom: 1.5em; line-height: 2; }
.contents-paragraph:last-of-type { margin-bottom: 0; }

.contents-list { margin-top: 1em; }
.contents-list li { margin-left: 1em; list-style: disc outside; }

.section-header { text-align: center; font-size: 125%; font-weight: 700; margin-bottom: 2.5em; }
.section-header-ja,
.section-header-en { display: block; }
.section-header-ja { font-size: 150%; }
.section-header-en { color: #0d91d7; }

.btn { 
	background-color: #cb0b20; color: #fff; font-weight: 700; text-decoration: none;
	display: inline-block; box-sizing: border-box; cursor: pointer; padding: 1.2em 2em;
}
.btn i { padding-right: 1em; }

.basic-table { width: 100%; }
.basic-table tr { border-bottom: #ddd 1px solid; }
.basic-table tr:first-of-type { border-top: #ddd 1px solid; }
.basic-table th,
.basic-table td { padding: 1.5em 0; vertical-align: top; }
.basic-table th { padding-right: 1em; }

.bgf { background-color: #fff; }
.bg1 { background-color: #f3f6f7; }
.bg2 { background-color: #f1f8fc; }

.fcf { color: #fff; }
.fce { color: #cd0a1f; }
.fcb { color: #04348f; }
.roboto { font-family: 'Roboto', sans-serif; }
.mincho { /*font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, serif;*/font-family: 'Noto Serif JP', serif;  }
.mark { display: block; padding-left: 1em; text-indent: -1em; }

.tac { text-align: center; }
.tal { text-align: left; }
.tar { text-align: right; }
.bold { font-weight: 700; }
.regular { font-weight: 400; }

.fz75 { font-size: 75%; }
.fz87 { font-size: 87.5%; }
.fz112 { font-size: 112.5%; }
.fz125 { font-size: 125%; }
.fz137 { font-size: 137.5%; }
.fz150 { font-size: 150%; }
.fz166 { font-size: 166%; }
.fz175 { font-size: 175%; }
.fz187 { font-size: 187.5%; }
.fz200 { font-size: 200%; }
.fz225 { font-size: 225%; }
.fz287 { font-size: 287.5%; }
.fz300 { font-size: 300%; }

.mb05 { margin-bottom: 0.5em; }
.mb1 { margin-bottom: 1em; }
.mb2 { margin-bottom: 2em; }
.mb3 { margin-bottom: 3em; }
.mb4 { margin-bottom: 4em; }
.mb5 { margin-bottom: 5em; }
.mb6 { margin-bottom: 6em; }
.mb7 { margin-bottom: 7em; }
.mb8 { margin-bottom: 8em; }
.mb9 { margin-bottom: 9em; }
.mb10 { margin-bottom: 10em; }
.mt05 { margin-top: 0.5em; }
.mt1 { margin-top: 1em; }
.mt2 { margin-top: 2em; }
.mt3 { margin-top: 3em; }
.mt4 { margin-top: 4em; }
.mt5 { margin-top: 5em; }
.mt6 { margin-top: 6em; }
.mt7 { margin-top: 7em; }
.mt8 { margin-top: 8em; }
.mt9 { margin-top: 9em; }
.mt10 { margin-top: 10em; }
@media screen and (max-width:420px){
	.section-header { font-size: 5.3vw; }
}
@media screen and (min-width:688px){
  .pc-break:before { content: "\A"; white-space: pre; }
}
@media screen and (min-width:990px){
	.section-header-ja { font-size: 210%; }
}
@media screen and (max-width:687px){
	.sp-break:before { content: "\A"; white-space: pre; }
}

/*
header
-------------------*/
.header { position: relative; z-index: 1000; text-align: right; background-color: #fff; width: 100%; }
.header.fix { position: fixed; top: 0; left: 0; border-bottom: #ddd 1px solid; }
.header-logo { padding-top: 1rem; padding-bottom: 1rem; }
.header-nav { 
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	display:-webkit-box; display:-ms-flexbox; display: flex;
	-webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
}
.header-nav li { display: block; }
.header-nav li:nth-of-type(1),
.header-nav li:nth-of-type(3) { margin-right: 1em; }
.header-nav li:nth-of-type(2) { margin-right: calc(130px + 3em); }
.header-nav a { color: #333; font-size: 100%; font-weight: 700; text-decoration: none; }
.header-contact { 
	display: inline-block; padding: 1em 1em 1.5em; margin-bottom: 1rem;
	background-color: #cd0a1f; color: #fff; font-size: 100%; font-weight: 700; line-height: 2; text-align: center; text-decoration: none;
}
.header-contact i { display: block; }
@media screen and (max-width:989px){
  .header-nav,
	.header-contact { display: none; }
	.header-logo { width: 22%; max-width: 80px; }
}
@media screen and (min-width:990px){
	.header-logo { position: absolute; top: 0; left: calc(50% - 58px); width: 116px; z-index: 1; }
	.fix .header-logo { left: calc(50% - 45px); width: 90px; }
	.fix .header-contact { padding-top: 0.5em; padding-bottom: 0.5em; }
}
@media screen and (min-width:1100px){
	.header-logo { left: calc(50% - 65px); width: 130px; }
	.header-nav li:nth-of-type(1),
	.header-nav li:nth-of-type(3) { margin-right: 2em; }
	.header-nav a { font-size: 112.5%; }
	.header-contact { padding-left: 2em; padding-right: 2em; font-size: 112.5%; }
}

/*
nav
-------------------*/
.nav-wrapper { position: absolute; top: 0; left: 0; width: 100%; z-index: 6000; }
.drawer-overlay { background-color: #023a93; z-index: 5999; }
.drawer-nav { background-color: #023a93; color: #fff; }

.menu-btn { 
  width: 25px; height: 25px; 
  position: fixed; top: 1rem; right: 5vw;
  transition: all 0.6s; z-index: 6001; cursor: pointer; 
}
.hamburger-bar { 
  position: absolute; top: 50%; left: 0;
  display: block; height: 3px; background-color: #cd0a1f; width: 25px;
  transform: rotate(0deg); 
  transition: width 0.4s, transform 0.6s, opacity 0.4s, background-color 0.4s; 
}
.hamburger-bar:nth-child(1) { margin-top: -8px; }
.hamburger-bar:nth-child(2) {  }
.hamburger-bar:nth-child(3) { margin-top: 8px; width: 15px; }
.menu-btn:hover .hamburger-bar:nth-child(3) { width: 25px; }
.drawer-open .hamburger-bar { background-color: #fff; }
.drawer-open .hamburger-bar:nth-child(1) { transform: rotate(45deg); margin-top: 0; }
.drawer-open .hamburger-bar:nth-child(2) { opacity: 0; }
.drawer-open .hamburger-bar:nth-child(3) { transform: rotate(-45deg); margin-top: 0; width: 25px; }

.drawer-nav-content { box-sizing: border-box; padding: 60px 0 2em; overflow-y: auto; }
.drawer-nav-item { border-bottom: #4770b0 1px solid; }
.drawer-nav-item:first-child { border-top: #4770b0 1px solid; }
.drawer-nav-item a { color: #fff; font-weight: 700; display: block; padding: 1em 0; text-align: center; text-decoration: none; }
.drawer-contact { margin-top: 2em; }
.drawer-contact a { box-sizing: border-box; display: block; margin-left: auto; margin-right: auto; text-align: center; }
.drawer-contact .btn { border: #fff 2px solid; background-color: transparent; }
@media screen and (min-width:990px){
  .menu-btn { display: none; }
}

/*
footer
-------------------*/
/* contact */
.footer-contact { 
	background-image: url("assets/img/footer_bg.jpg"); background-repeat: no-repeat; background-position: 50% 50%; background-size: cover;
	padding-top: 5em; padding-bottom: 5em;
	color: #fff; font-size: 112.5%; text-align: center;
}
.footer-contact-row {
	-ms-flex-align: start; align-items: flex-start;
	width: 100%; max-width: 38em; margin: auto;
}
.footer-contact p { width: 100%; }
.footer-contact .btn { display: block; background-color: #fff; color: #cb0b20; width: 100%; margin-top: 1em; }
@media screen and (min-width:990px){
	.footer-contact { font-size: 125%; }
	.footer-contact p,
	.footer-contact .btn { width: 48%; margin-top: 0; }
	.footer-contact p { text-align: left; }
}
/* footer */
.footer { background-color: #333; color: #fff; padding: 2em 0; }
.footer-copy { color: #fff; font-size: 75%; font-weight: 700; text-align: center; }

/*
cover
-------------------*/
/* cover */
.page-header { padding-top: 2em; padding-bottom: 2em; position:relative; }
.page-header-ja { font-size: 200%; font-weight: 700; text-align: center; }
.page-header-en { color: #d8f0fd; font-size: 16vw; font-weight: 700; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: -1; }
/* crumbs */
.crumbs { background-color: #e5e5e5; padding: 0.2em 0; position: relative; text-align: right; z-index: 2; }
.crumbs::before {
  content: ""; display: block; position: absolute; top: 0; right: 0;
  width: 100%; height: 0;
}
.crumbs a { color: #333; text-decoration: none; }
.crumbs-item { display: inline-block; line-height: 1.3; font-size: 75%; }
.crumbs-item::before { content: "\f105"; color: #333; font-weight: 900; font-family: "Font Awesome 5 Free"; pointer-events: none; display: inline-block; margin: 0 0.8em; }
.crumbs-item:first-child::before { content: ""; margin: 0; }
@media screen and (max-width:989px){
  .crumbs { display: none; }
}
@media screen and (min-width:688px){
	.page-header { padding-top: 3em; padding-bottom: 3em; }
}
@media screen and (min-width:990px){
  .page-header { padding-top: 4em; padding-bottom: 4em; }
	.page-header-ja { font-size: 225%; }
	.page-header-en { font-size: 800%; }
}
/* page-nav */
.page-nav { 
	display:-webkit-box; display:-ms-flexbox; display: flex;
	-webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start;
	-ms-flex-wrap: wrap; flex-wrap: wrap;
	margin-top: -1rem;
}
.page-nav li { width: 48%; margin-top: 1rem; }
.page-nav a { 
	display:-webkit-box; display:-ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center;
	box-sizing: border-box; text-decoration: none; padding: 0.5em 1em; height: 100%;
	border: #cd0a1f 2px solid; background-color: #fff; color: #cd0a1f; font-size: 87.5%; font-weight: 700; text-align: center;
}
.page-nav a:hover { opacity: 1; background-color: #cd0a1f; color: #fff; }
@media screen and (max-width:989px){
	.page-nav li:nth-of-type(odd) { margin-right: 4%; }
}
@media screen and (min-width:990px){
	.page-nav { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-wrap: nowrap; flex-wrap: nowrap; }
	.page-nav li { width: 100%; margin-left: 1em; }
	.page-nav li:first-child { margin-left: 0; }
}

/*
single
-------------------*/
/* header */
.entry.page-header { padding-bottom: 1em; }
.entry .page-header-en { top: 62%; }
.entry .page-header-ja { font-size: 175%; }
.entry-date { color: #05348e; font-size: 137.5%; text-align: center; }
.entry-cats { border-bottom: #ddd 1px solid; padding-bottom: 0.6em; text-align: center; }
.entry-cat { 
	display: inline-block; background-color: #41ace3; border-radius: 2em; padding: 0 1em; margin-bottom: 0.5em; vertical-align: middle;
	color: #fff; font-size: 87.5%; line-height: 2.2; text-decoration: none;
}
.entry-tag { 
	display: inline-block; padding: 0.2em 0; margin-bottom: 0.5em; vertical-align: middle;
	color: #898989; font-size: 87.5%; text-decoration: none;
}
.entry-tag::before { 
	content: "\f02b"; font-size: 114.2%; font-weight: 900; font-family: "Font Awesome 5 Free"; 
	pointer-events: none; display: inline-block; margin-right: 0.3em; vertical-align: middle;
}
.entry-cat:not(:last-of-type),
.entry-tag:not(:last-of-type) { margin-right: 1rem; }
/* pager */
.entry-pager { border-top: #ddd 1px solid; border-bottom: #ddd 1px solid; }
.entry-pager a { display: block; padding: 1.6em 1em; text-decoration: none; position: relative; }
.entry-pager a.next { padding-left: 2.5em; }
.entry-pager a.prev { padding-right: 2.5em; text-align: right; }
.entry-pager a::after { 
  display: block; position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; 
  font-family: "Font Awesome 5 Free"; font-size: 125%; font-weight: 900; color: #cf8a91; transition: color 0.3s;
}
.entry-pager a.next::after { content: "\f060"; left: 0; }
.entry-pager a.prev::after { content: "\f061"; right: 0; }
@media screen and (max-width:687px){
	a.next + a.prev { border-top: #ddd 1px solid; }
}
@media screen and (min-width:990px){
  .entry-pager { 
    display: -webkit-box; display:-ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between;
  }
  .entry-pager a { 
    width: 50%; box-sizing: border-box; 
    display: -webkit-box; display:-ms-flexbox; display: flex; -webkit-box-items: center; -ms-flex-align: center; align-items: center;
  }
  .entry-pager a.next { margin-right: auto; width: calc(50% - 1px); }
  .entry-pager a.prev { margin-left: auto; -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
}

/* entry */
.entry-body { line-height: 2; }
.entry-body p,
.entry-body ul,
.entry-body ol,
.entry-body dl,
.entry-body table,
.entry-body blockquote,
.entry-body hr { margin-top: 2em; margin-bottom: 2em; }
.entry-body h1,
.entry-body h2 { margin-top: 2em; margin-bottom: 1em; padding-bottom: 0.5em; line-height: 1.3; }
.entry-body h3,
.entry-body h4,
.entry-body h5,
.entry-body h6 { margin-top: 2em; margin-bottom: 1em; line-height: 1.5; }
.entry-body h1 { font-size: 175%; font-weight: 700; color: #05348e; }
.entry-body h2 { font-size: 175%; font-weight: 700; color: #05348e; }
.entry-body h3 { font-size: 150%; font-weight: 700; color: #05348e; }
.entry-body h4 { font-size: 131.25%; font-weight: 700; }
.entry-body h5 { font-size: 112.5%; font-weight: 700; }
.entry-body h6 { font-weight: 700; }
.entry-body ul li { list-style: disc outside; margin-left: 1em; }
.entry-body ol li { list-style: decimal outside; margin-left: 1em; }
.entry-body dl dt { font-weight: 700; }
.entry-body th,
.entry-body td { padding: 0.8em; border: #ddd 1px solid; }
.entry-body th { font-weight: 700; }
.entry-body img { max-width: 100%; height: auto!important; }
.entry-body img.alignleft { display: inline-block; float: left; margin-right: 15px; }
.entry-body img.aligncenter { clear: both; display: block; float: none; margin-left: auto; margin-right: auto; }
.entry-body img.alignright { display: inline-block; float: right; margin-left: 15px; }
.entry-body img.alignnone { float: none; }
.entry-body blockquote { background-color: #f1f8fc; padding: 2em 3em; position: relative; }
.entry-body blockquote::before,
.entry-body blockquote::after { 
  display: block; position: absolute; width: 1.2em; height: 1em; pointer-events: none; 
  color: #bcdaea;
	font-family: "Font Awesome 5 Free"; font-weight: 900; font-size: 150%; line-height: 1;
}
.entry-body blockquote::before { content: "\f10d"; top: 0.3em; left: 0.3em; }
.entry-body blockquote::after { content: "\f10e"; bottom: 0.3em; right: 0.3em; }
.entry-body hr { border: 0; border-top: #ddd 1px solid; }
.entry-body > *:first-child { margin-top: 0; }
.entry-body > *:last-child { margin-bottom: 0; }
.entry-body del { text-decoration: line-through; }
.entry-body strong,
.entry-body b { font-weight: 700; }
.entry-body em { font-style: italic; }
.entry-body a { cursor: pointer; display: inline-block; }
.entry-body a:hover { opacity: 1; text-decoration: none; }
.entry-body pre.wp-block-preformatted { white-space: break-spaces; overflow-wrap: break-word; }
@media screen and (max-width:687px){
  .entry-body img.alignleft,
  .entry-body img.alignright { margin-left: 0; margin-right: 0; }
}
@media screen and (min-width:688px){
  .entry-body img.alignleft,
  .entry-body img.alignright { max-width: 50%; margin-bottom: 0.3em; }
}
@media screen and (min-width:990px){
  .entry-body img.aligncenter { max-width: 80%; }
}

/*
archive
-------------------*/
.page-nav.news { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
.page-nav.news li { width: auto; margin-right: 1rem!important; margin-left: 0; }
.archive-header { font-size: 200%; font-weight: 700; margin-bottom: 0.3em; }
.archive-list li { border-bottom: #ddd 1px solid; padding-bottom: 0.6em; }
.archive-list li:first-child { border-top: #ddd 1px solid; }
.archive-anchor { 
	display:-webkit-box; display:-ms-flexbox; display: flex; text-decoration: none;
	padding: 1em 0 0.5em;
}
.archive-date { display: block; width: 5.5em; margin-right: 1em; color: #05348e; font-weight: 700; }
.archive-ttl { display: block; flex-grow: 1; }
@media screen and (min-width:990px){
	.archive-date { margin-right: 2em; }
}
/* pager */
.archive-pager { text-align: center; margin-top: 3em; }
.wp-pagenavi {  }
.wp-pagenavi span,
.wp-pagenavi a { 
  display: inline-block; margin-left: 0.5em; margin-top: 0.8em; border: #cd0a1f 2px solid; color: #cd0a1f;
  line-height: 2; width: 2em; text-align: center; text-decoration: none; overflow: hidden; 
  font-weight: 700;
}
.wp-pagenavi span:first-child,
.wp-pagenavi a:first-child { margin-left: 0; }
.wp-pagenavi .current { background-color: #cd0a1f; color: #fff; }
@media screen and (min-width:688px){
  .wp-pagenavi span,
  .wp-pagenavi a { line-height: 3; width: 3em; }
}

/*
contents
-------------------*/
/* home-kv */
.keyvisual { width: 100%; height: 60vh; position: relative; }
.kv-img { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }
.kv-img::after {
	content: ""; display: block; width: 100%; height: 100%; position: absolute; top: 0; left: 0;
	background-image: url("assets/img/kv_dot.png");
}
.kv-copy { 
	position: absolute; width: 90%; bottom: 1.5em; left: 5%;
	color: #fff; font-size: 6vw; font-weight: 700; line-height: 2.5;
}
.kv-copy-line { display: inline-block; position: relative; z-index: 1; }
.kv-copy-line::before {
	content: ""; display: block; width: calc(100% + 0.6em); height: 85%; position: absolute; top: 7%; left: -0.3em; z-index: -1;
	background-color: #333;
}
@media screen and (min-width:990px){
	.keyvisual { height: 740px; }
	.kv-copy { width: 86%; max-width: 1260px; left: 50%; transform: translateX(-50%); font-size: 300%; }
}
/* home-lead */
.home-lead-txt { position: relative; }
.home-lead-txt::before {
	content: ""; display: block; position: absolute; top: 0; left: 0; z-index: -1; 
	background-color: #f1f8fc;
}
.home-lead-inner { box-sizing: border-box; }
.home-lead-header { font-size: 150%; font-weight: 700; margin-bottom: 1em; }
.home-lead-ttl { font-size: 112.5%; font-weight: 700; margin-bottom: 1em; position: relative; overflow-x: hidden; }
.home-lead-ttl::before {
	content: ""; display: block; position: absolute; width: 100%; height: 0; bottom: 0.7em; left: 0;
	border-top: #01b2ed 1px solid; z-index: -1;
}
.home-lead-ttl .inner { background-color: #f1f8fc; padding-right: 0.5em; }
@media screen and (max-width:989px){
	.home-lead-img { width: 90%; margin: 2rem 0 0 auto; }
	.home-lead-txt { margin-top: 1em; width: 95%; }
	.home-lead-txt::before { width: 100%; height: calc(100% + 5em); top: -5em; }
	.home-lead-inner { padding: 0 5.2% 3em 5.2%; }
}
@media screen and (min-width:990px){
	.home-lead { display:-webkit-box; display:-ms-flexbox; display: flex;-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; }
	.home-lead-img,
	.home-lead-txt { width: 50%; }
	.home-lead-img { margin-top: 3rem; }
	
	.home-lead-txt::before {
		 width: 186%; max-width: calc(100% + 630px); height: calc(100% - 3rem); 
		
	}
	.home-lead-inner { width: 90%; max-width: 630px; margin-left: auto; padding: 3em 3em 4em 0; }
}
@media screen and (min-width:1400px){
	.home-lead-inner { padding-top: 6em; }
}
/* home-service-items */
.home-service-list { display:-webkit-box; display:-ms-flexbox; display: flex;-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: -1em; }
.home-service-list li { display: block; width: 100%; margin-top: 1em; }
.home-service-wrap { display: block; width: 100%; height: 0; padding-top: 75%; position: relative; }
.home-service-wrap::before {
	content: ""; display: block; width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;
	background-color: rgba(2,29,81, 0.08);
}
.home-service-wrap > img { position: absolute; top: 0; left: 0; }
.home-service-ttl {
	display: block; position: absolute; top: 0; left: 0; width: 100%; height: 5em; box-sizing: border-box;
	padding: 1em 1em 0 1em;
	color: #fff; font-size: 125%; font-weight: 700;
	background: -moz-linear-gradient(top,  rgba(0,0,0,0.6) 0%, rgba(0,0,0,0) 100%);
	background: -webkit-linear-gradient(top,  rgba(0,0,0,0.6) 0%,rgba(0,0,0,0) 100%);
	background: linear-gradient(to bottom,  rgba(0,0,0,0.6) 0%,rgba(0,0,0,0) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#99000000', endColorstr='#00000000',GradientType=0 );
}
@media screen and (min-width:990px){
	.home-service-list li { width: 31%; }
}
/* home-service-more */
.home-service-mores { margin-top: 3em; }
.home-service-sub { font-size: 175%; font-weight: 700; }
.home-service-subs { display:-webkit-box; display:-ms-flexbox; display: flex;-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; -ms-flex-wrap: wrap; flex-wrap: wrap; }
.home-service-subs li { 
	box-sizing: border-box; display: block; position: relative; padding-left: 1em; width: 48%; margin-top: 1em;
	font-weight: 700;
}
.home-service-subs li::before { 
	content: ""; display: block; position: absolute; top: 0.5em; left: 0; pointer-events: none; 
	width: 0.5em; height: 0.5em; border-radius: 50%; background-color: #01b2ed; 
}
@media screen and (min-width:990px){
	.home-service-mores { 
		width: 90%; max-width: 1100px; margin-left: auto; margin-right: auto; padding: 3.5em 0; position: relative;
		display:-webkit-box; display:-ms-flexbox; display: flex;-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between;
	}
	.home-service-sub { font-size: 200%; width: 5.5em; }
	.home-service-more { box-sizing: border-box; width: calc(100% - 11em); padding-right: 5%; }
	.home-service-mores::before { 
		content: ""; display: block; width: calc(100% - 5.5em); height: 100%; position: absolute; top: 0; right: 0; z-index: -1; pointer-events: none;
		background-color: #f3f6f7;
	}
	.home-service-subs { font-size: 125%; }
	.home-service-subs li { margin-top: 0.5em; }
}
/* home-info */
.home-info { background-image: url("assets/img/home_dot.png"); }
.archive-list.home li { border: 0!important; margin-top: 8px; background-color: #fff; padding-left: 1.5em; padding-right: 1.5em; }
@media screen and (min-width:990px){
	.home-info-row { display:-webkit-box; display:-ms-flexbox; display: flex;-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
	.home-info-header { width: 18em; }
	.archive-list.home { width: calc(100% - 18em); }
	.home-info-header .section-header { text-align: left; }
	
}

/* service-lead */
.service-lead { 
	color: #05348e; font-size: 150%; font-weight: 700; line-height: 2;
	padding-top: 2em; padding-bottom: 2em;
	background-image: url("assets/img/service_lead.png"); background-repeat: no-repeat; background-position: 100% 100%; background-size: 80% auto; 
}
@media screen and (min-width:480px){
	.service-lead { background-size: 50% auto; }
}
@media screen and (min-width:688px){
	.service-lead { text-align: center; }
}
@media screen and (min-width:1100px){
	.service-lead { padding-top: 4em; padding-bottom: 4em; background-size: 40% auto; }
}
/* service */
.service-row { margin-top: 6em; padding-top: 1px; }
.service-row:first-of-type { margin-top: 0; }
.service-photo { margin-bottom: 1em; }
.service-txt .section-header { text-align: left; }
@media screen and (min-width:990px){
	.service-row { 
		display:-webkit-box; display:-ms-flexbox; display: flex;-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start;
	}
	.service-row.even { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; }
	.service-photo { width: 38%; }
	.service-txt { box-sizing: border-box; width: 62%; margin-top: 6vw; padding: 3em 5%; position: relative; }
	.service-txt::before { 
		content: ""; display: block; position: absolute; width: 150%; height: 100%; bottom: 0;
		background-color: #f1f8fc; z-index: -1;
	}
	.service-row.odd .service-txt::before { right: 0; }
	.service-row.even .service-txt::before { left: 0; }
}
@media screen and (min-width:1460px){
	.service-txt { margin-top: 7.2em; }
}

/* company */
.page-nav.company li { width: 31%; }
.page-nav.company li:nth-of-type(odd),
.page-nav.company li { margin-right: 3.5%; }
.page-nav.company li:nth-of-type(3n) { margin-right: 0; }
/* company-message */
.company-message-ttl { font-size: 150%; font-weight: 700; margin-bottom: 1em; overflow-x: hidden; position: relative; }
.company-message-ttl::before {
	content: ""; display: block; position: absolute; width: 100%; height: 0; bottom: 0.7em; left: 0;
	border-top: #01b2ed 1px solid; z-index: -1;
}
.company-message-ttl .inner { background-color: #fff; }
@media screen and (max-width:989px){
	.company-message-photo { width: 100%; height: 0; padding-top: 56%; position: relative; margin-bottom: 1em; }
	.company-message-photo img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
}
@media screen and (min-width:990px){
	.company-message-photo { width: 38%; }
	.company-message-txt { width: 58%; }
}
/* company-table */
.history-table th { width: 5em; min-width: 5em; }
@media screen and (min-width:990px){
	.history-table th { width: 20%; }
}
/* map */
.map-wrapper { width: 100%; height: 0; padding-top: 65%; position: relative; }
.map-wrapper > iframe { width: 100%!important; height: 100%!important; position: absolute; top: 0; left: 0; }
@media screen and (min-width:990px){
	.map-wrapper { height: 500px; padding-top: 0; }
}

/* recruit */
.recruit-photo { position: relative; width: 100%; height: 0; padding-top: 43%; }
.recruit-photo > img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.recruit-lead { 
	background-color: #fff; box-sizing: border-box; padding: 1.5em; position: relative;
	width: 80%; margin: -2em auto 0;
}
.recruit-ttl { font-size: 150%; font-weight: 700; margin-bottom: 1em; }
@media screen and (min-width:688px){
	.recruit-lead { text-align: center; }
}
@media screen and (min-width:900px){
	.recruit-lead { width: 800px; padding: 2.5em 1em 0; margin-top: -5em; }
	.recruit-ttl { font-size: 200%; }
}

/* contact */
.contact-lead { margin-bottom: 4em; }
.mark .form-req { display: inline; }
.contact-phone { border: #f5a726 5px solid; box-sizing: border-box; width: 100%; padding: 1.5em; }
.contact-phone .dialbtn { 
	display: block; color: #cd0a1f; font-size: 262.5%; font-weight: 700; text-align: center; text-decoration: none;
	margin: 0.5em auto 0;  
}
.phone-note { display: block; color: #333; font-size: 40%; }
.contact-table { width: 100%; }
.contact-table th {  }
.contact-table th,
.contact-table td { vertical-align: middle; }
.contact-form-line { display: block; margin-top: 1rem; }
.contact-form-line:first-of-type { margin-top: 0; }
.contact-form-header-sub { font-size: 87.5%; }
.form-btn { 
  background-color: #ccc; color: #fff; font-weight: 700; text-align: center; text-decoration: none;
  display: block; padding: 1em; margin-left: auto; margin-right: auto; width: 90%; max-width: 700px;
}
.form-btn.bar:hover::after { left: 1.5em; }
.inlineblock.mt1 { margin-top: 0; }
@media screen and (max-width:687px){
	.contact-phone .dialbtn { border: #cd0a1f 2px solid; font-size: 200%; padding: 0.5em 0.3em; max-width: 400px; }
  .inlineblock.mt1 { display: block; margin-top: 1em; }
	.contact-table,
  .contact-table tbody,
  .contact-table tr,
  .contact-table th,
  .contact-table td { display: block; }
  .contact-table th,
  .contact-table td { padding: 1em 0; }
  .contact-table th { padding-bottom: 0; }
}
@media screen and (min-width:688px){
	.contact-phone .dialbtn { cursor: text; }
	.contact-phone .dialbtn:hover { opacity: 1; }
  .contact-phone { text-align: center; }
  .contact-table th,
  .contact-table td { padding: 1em 0; }
  .contact-table th { padding-left: 0; width: 17em; }
}
@media screen and (min-width:990px){
	.contact-phone { padding: 3em 1em; }
  .contact-table td { padding-right: 2em; }
	.contact-form-line.col2 { display: inline-block; margin-top: 0; width: 49%; }
}
@media screen and (min-width:1260px){
  .contact-table th { width: 20em; }
}
/* validate */
.formError .formErrorContent { 
  border: 0; border-radius: 0; 
  -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; box-shadow: none;
  font-size: 1.2rem; padding: 0.4em 1em; 
}
.formError .formErrorArrow div {
  -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; box-shadow: none;
}
@media screen and (min-width:688px){
  .formError .formErrorContent { font-size: 1.6rem; }
}
/* error */
.contact-err-item { color: #e11a49; font-size: 120%; font-weight: 700; margin: 1em auto; }
@media screen and (max-width:767px){
	.contact-err-list { margin-top: 3rem; text-align: left; }
}
@media screen and (min-width:768px){
	.contact-err-list { margin-top: 5rem; text-align: center; }
}

/* privacy */
.section-block.privacy { background-color: #fff5df; }
.privacy-container { background-color: #fff; border: #ddd 1px solid; height: 15em; padding: 1.5em; overflow-y: scroll; line-height: 2; }
.privacy-mark { width: 100%; max-width: 100px; }
.privacy.wrapper-s { max-width: 880px; }

/*
form item
-------------------*/
/* select */
.select-wrap select{ outline:none; text-indent: 0.01px; text-overflow: ''; background: none transparent; vertical-align: middle; font-size: inherit; color: inherit; -webkit-appearance: none; -moz-appearance: none; appearance: none; font-size: 16px; }
.select-wrap select option{ background-color: #fff; color: #342a21; }
.select-wrap select::-ms-expand { display: none; }
.select-wrap select:-moz-focusring { color: transparent; text-shadow: 0 0 0 #828c9a; }
.select-wrap select.form-input { padding-right: 30px; }
.select-wrap { display: inline-block; position: relative; }
.select-wrap::after { 
  content: "\f107"; color: #1787ca; font-family: "Font Awesome 5 Free"; font-weight: 900;
  display: inline-block; position: absolute; top: 50%; right: 0.5em; transform: translateY(-50%); pointer-events: none;
}
select.form-input { border: #e0e0e0 1px solid; background-color: #fafbfb; border-radius: 3px; padding: 0.7em 1.8em 0.7em 0.7em; }
select.form-input:focus { background-color: #fff; }
/* radio */
input[type=radio] { /*display: none;*/ opacity: 0; position: absolute; }
.form-radio { cursor: pointer; display: inline-block; position: relative; padding-left: 2em; vertical-align: middle; }
.form-radio::before,
.form-radio::after { 
  content: ""; display: inline-block; position: absolute; border-radius: 50%;
  transition: all .2s; 
}
.form-radio::before { 
  top: 50%; left: 0; margin-top: -8px;
  width: 16px; height: 16px; border: #e0e0e0 1px solid; background-color: #fafbfb;
}
.form-radio::after{
  top: 50%; left: 5px; margin-top: -3px;
  width: 8px; height: 8px; background-color: #1787ca; opacity: 0;
}
.form-radio:hover::before,
input[type=radio]:checked + .form-radio::before { background-color: #fff; }
input[type=radio]:checked + .form-radio::after { opacity: 1; }

/* check */
input[type=checkbox] { /*display: none;*/ opacity: 0; position: absolute; }
.form-check { cursor: pointer; display: inline-block; position: relative; padding-left: 1.5em; vertical-align: middle; margin-bottom: 0.5em; }
.form-check::before,
.form-check::after { 
  content: ""; display: inline-block; position: absolute; border-radius: 3px;
  transition: all .2s; 
}
.form-check::before { 
  top: 50%; left: 0; margin-top: -9px;
  width: 16px; height: 16px; border: #e0e0e0 1px solid; background-color: #fafbfb;
}
.form-check::after{
  top: 4px; left: 5px; opacity: 0;
  width: 5px; height: 10px; border-bottom: #1787ca 3px solid; border-right: #1787ca 3px solid; transform: rotate(40deg);
}
.form-check:hover::before,
input[type=checkbox]:checked + .form-check::before { background-color: #fff; }
input[type=checkbox]:checked + .form-check::after { opacity: 1; }
.form-sub-ttl { display: inline-block; padding-right: 0.5rem; }
.form-sub-ttl.type2 { width: 2em; }
.form-sub-ttl.type4 { width: 4em; }
.form-req { background: #cb0f0f; color: #fff; display: inline-block; font-weight: 700; font-size: 75%; padding: 0 0.5em; margin-left: 0.4em; margin-right: 0.4em; }
.form-sep { display: inline-block; padding-left: 0.5em; padding-right: 0.5em;}
.form-unit { display: inline-block; padding-right: 1.5em; }
.form-ser { display: inline-block; margin-left: 0.5em; }
.form-input { outline: none; display: inline-block; position: relative; border: #e0e0e0 1px solid; border-radius: 3px; background: #fafbfb; box-sizing: border-box; padding: 0.5em; }
.form-input:focus { background: #fff; }
.text-s { width: 5em; }
.text-m { width: 80%; }
.text-l { width: 100%; }
.text-m.type2 { width: calc(80% - 2em - 1rem); }
.text-l.type2 { width: calc(100% - 2em - 1rem); }
.text-m.type4 { width: calc(80% - 4em - 1rem); }
.text-l.type4 { width: calc(100% - 4em - 1rem); }
.text-l.type5 { width: calc(100% - 6.5em); }

.form-submit-block { text-align: center; margin-top: 3em; }
@media screen and (max-width:687px){
  /* file */
  input[type=file]{ transform: scale(0.8) translateX(-10%); }
	.text-s { width: 4em!important; }
	.text-m { width: 100%; }
	.text-m.type2 { width: calc(100% - 2em - 1rem); }
	.text-m.type4 { width: calc(100% - 4em - 1rem); }
  .text-l.type5 { width: 100%; }
}

/*
inview
-------------------*/
.inview { 
	opacity: 0;
	-moz-transform: translateY(50px);
	-webkit-transform: translateY(50px);
	-o-transform: translateY(50px);
	-ms-transform: translateY(50px);
	transform: translateY(50px);
	  -webkit-transition: all .7s;
     -moz-transition: all .7s;
      -ms-transition: all .7s;
          transition: all .7s;
}
.inview.inview-start {
	opacity: 1;
	-moz-transform: translateY(0);
	-webkit-transform: translateY(0);
	-o-transform: translateY(0);
	-ms-transform: translateY(0);
	transform: translateY(0);
}
.inview.rx {
	-moz-transform: translateY(0); -webkit-transform: translateY(0); -o-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0);
  -moz-transform: translateX(100px); -webkit-transform: translateX(100px); -o-transform: translateX(100px); -ms-transform: translateX(100px); transform: translateX(100px);
}
.inview.rx.inview-start {
  -moz-transform: translateX(0); -webkit-transform: translateX(0); -o-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0);
}
.inview.lx {
	-moz-transform: translateY(0); -webkit-transform: translateY(0); -o-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0);
  -moz-transform: translateX(-100px); -webkit-transform: translateX(-100px); -o-transform: translateX(-100px); -ms-transform: translateX(-100px); transform: translateX(-100px);
}
.inview.lx.inview-start {
  -moz-transform: translateX(0); -webkit-transform: translateX(0); -o-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0);
}


@media all and (-ms-high-contrast:none) {
  /* IE */
  body { overflow-x: hidden; }
}
