@charset "utf-8";



/* business
------------------------------------------------------------*/

.business-block .img img {
width: 100%;
}

.business-block .para {
margin: 2em 0 0 0;
text-align: center;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.business-block .para {
margin: auto 0;
text-align: left;
}
}

.business-block .para h3 {
font-weight: 500;
color: #00207f;
font-size: 1.125rem;
margin: 0 0 1em 0;
position: relative;
display: inline-block;
padding: 0.2em 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.business-block .para h3 {
font-size: 1.375rem;
margin: 0 0 1.5em 0;
}
}

.business-block .para h3:before,
.business-block .para h3:after {
content: "";
width: 0.5em;
height: 1em;
position: absolute;
display: inline-block;
}

.business-block .para h3:before {
border-left: solid 1px #00207f;
border-top: solid 1px #00207f;
top: 0;
left: 0;
}

.business-block .para h3:after {
border-right: solid 1px #00207f;
border-bottom: solid 1px #00207f;
bottom: 0;
right: 0;
}

.business-block .para ul {
margin: 1em 0 0 0;
}

.business-block .para li {
position: relative;
margin: 0.5em 0 0 0;
padding: 0 0 0 1em;
}

.business-block .para li:before {
content: "";
display: block;
position: absolute;
width: 0.5em;
height: 0.5em;
top: 0.5em;
left: 0;
border-radius: 50%;
background: #0080ff;
}

#business-details h2 {
color: #00207f;
margin: 0 0 2em 0;
line-height: 1.2;
text-align: center;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#business-details h2 {
margin: 0 0 4em 0;
}
}

#business-details h2 .jp {
display: inline-block;
font-weight: 500;
font-size: 1.125rem;
padding: 0 2em;
position: relative;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#business-details h2 .jp {
font-size: 1.375rem;
}
}

#business-details h2 .jp:before,
#business-details h2 .jp:after {
content: "";
display: block;
position: absolute;
width: 1.5em;
height: 1px;
background: #00207f;
top: 50%;
}

#business-details h2 .jp:before {
left: 0;
}

#business-details h2 .jp:after {
right: 0;
}

.business-details-list {
text-align: center;
}

.business-details-list ul {
display: inline-flex;
flex-direction: column;
text-align: left;
border-top: solid 1px #e1e1e1;
}

.business-details-list li {
position: relative;
padding: 1em 2em;
border-bottom: solid 1px #e1e1e1;
}

.business-details-list li:before {
content: "";
display: block;
position: absolute;
width: 0.5em;
height: 0.5em;
top: 1.5em;
left: 1em;
background: #0080ff;
border-radius: 50%;
}

/* End business */


/* company
------------------------------------------------------------*/

.company-profile-list {
border: solid 1px #e1e1e1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.company-profile-list {
display: flex;
flex-wrap: wrap;
}
}

.company-profile-list dt {
background: #0080ff;
color: #fff;
padding: 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.company-profile-list dt {
width: 9em;
border-bottom: solid 1px #e1e1e1;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.company-profile-list dt {
width: 20%;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.company-profile-list dt:last-of-type {
border-bottom: none;
}
}

.company-profile-list dd {
background: #fff;
padding: 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.company-profile-list dd {
width: calc(100% - 9em);
border-bottom: solid 1px #e1e1e1;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.company-profile-list dd {
width: 80%;
padding: 1em 2em;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.company-profile-list dd:last-of-type {
border-bottom: none;
}
}

.company-profile-list dd li {
position: relative;
padding: 0 0 0 1em;
}

.company-profile-list dd li + li {
margin-top: 0.5em;
}

.company-profile-list dd li:before {
content: "";
display: block;
position: absolute;
width: 0.5em;
height: 0.5em;
top: 0.5em;
left: 0;
background: #333;
}

.company-profile-list dd li span.num {
display: inline-block;
min-width: 1.5em;
text-align: center;
}

.company-map-wrap {
height: 0;
overflow: hidden;
padding-bottom: 375px;
position: relative;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.company-map-wrap {
padding-bottom: 500px;
}
}

.company-map-wrap iframe {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}

.company-map-info {
margin: 1em 0 0 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.company-map-info {
display: flex;
justify-content: space-between;
margin: 1.5em 0 0;
}
}

.company-map-info .para p {
text-align: left;
}

.company-map-info .para p + p {
margin-top: 0.5em;
}

.company-map-info .link {
text-align: center;
margin: 2em 0 0 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.company-map-info .link {
margin: auto 0;
}
}

/* End company */


/* recruit
------------------------------------------------------------*/

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#recruit-message p {
text-align: center;
}
}

#recruit-requirements h3 {
background: #00207f;
color: #fff;
padding: 1em;
text-align: center;
border: solid 1px #e1e1e1;
border-bottom: none;
}

.recruit-requirements-list + h3 {
margin-top: 4em;
}

.recruit-requirements-list {
border: solid 1px #e1e1e1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.recruit-requirements-list {
display: flex;
flex-wrap: wrap;
}
}

.recruit-requirements-list dt {
background: #0080ff;
color: #fff;
padding: 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.recruit-requirements-list dt {
width: 11em;
border-bottom: solid 1px #e1e1e1;
text-align: center;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.recruit-requirements-list dt {
width: 25%;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.recruit-requirements-list dt:last-of-type {
border-bottom: none;
}
}

.recruit-requirements-list dd {
background: #fff;
padding: 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.recruit-requirements-list dd {
width: calc(100% - 11em);
border-bottom: solid 1px #e1e1e1;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.recruit-requirements-list dd {
width: 75%;
padding: 1em 2em;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.recruit-requirements-list dd:last-of-type {
border-bottom: none;
}
}

/* End recruit */


/* contact
------------------------------------------------------------*/

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#contact p.head {
text-align: center;
}
}

#contact dl {
border-bottom: 1px solid #e1e1e1;
margin: 3em 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#contact dl {
margin: 4em 0 0;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#contact dl {
margin: 4em auto 0;
max-width: 900px;
display: flex;
flex-wrap: wrap;
}
}

#contact dt {
border-top: 1px solid #e1e1e1;
padding: 1em 0.5em 0;
line-height: 1.8;
display: flex;
align-items:flex-start;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#contact dt {
width: 35%;
padding: 2em 1em 2em 2em;
}
}

#contact dt span.dt {
color: #00207f;
}

#contact dt span.label {
color: #fff;
padding: 0 1em;
width: 4em;
text-align: center;
border-radius: 2px;
}

#contact dt span.must {
background: #00207f;
}

#contact dt span.any {
background: #999;
}

#contact dt span.item {
flex: 1;
padding: 0 0 0 1em;
}

#contact dd {
padding: 1em 0.5em;
line-height: 1.8;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#contact dd {
border-top: 1px solid #e1e1e1;
width: 65%;
padding: 1.5em 2em 1.5em 1em;
}
}

#contact dd .input-common {
display: block;
font-size: 1rem;
width: 100%;
padding: 0.5em 1em;
border-radius: 2px;
border: solid 1px #999;
background: #fff;
line-height: 1.8;
}

#contact .accept-policy {
margin: 2em 0 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#contact .accept-policy {
margin: 2em auto 0;
max-width: 900px;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#contact .accept-policy p {
text-align: center;
}
}

#contact .accept-policy p.accept-1 {
padding: 0 1em;
}

#contact .accept-policy p.accept-1 a {
color: #0080ff;
}

#contact .accept-policy p.accept-2 {
text-align: center;
}

#contact .accept-policy input[type=checkbox] { /* display:none;だとキーボード操作不可になるので注意 */
opacity: 0;
visibility: hidden;
position: absolute;
}

#contact .accept-policy .wpcf7-list-item { /* デフォルトcss上書き */
margin-left: 0;
}

#contact .accept-policy .wpcf7-list-item-label {
cursor: pointer;
display: inline-block;
padding: 0 12px 0 24px;
position: relative;
width: auto;
}

#contact .accept-policy .wpcf7-list-item-label:before {
background: #ffffff;
border: 1px solid #333;
border-radius: 4px;
content: "";
display: block;
width: 18px;
height: 18px;
left: 0;
top: 3px;
position: absolute;
}

#contact .accept-policy .wpcf7-list-item-label:after {
border-right: 2px solid #333;
border-bottom: 2px solid #333;
content: "";
display: block;
width: 6px;
height: 10px;
top: 5px;
left: 6px;
opacity: 0;
position: absolute;
transform: rotate(45deg);
}

#contact .accept-policy input[type=checkbox]:checked + .wpcf7-list-item-label:after {
opacity: 1;
}

#contact .formbtn {
cursor: pointer;
font-size: 1rem; 
background: #0080ff;
color: #ffffff;
display: block;
width: 90%;
line-height: 50px;
border-radius: 2px;
border: none;
margin: 40px auto 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#contact .formbtn {
font-size: 1.125rem;
width: auto;
min-width: 250px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#contact .formbtn {
transition: 0.6s;
}
}

#contact .formbtn:hover {
opacity: 0.6;
}

/* for cf7 start */

.screen-reader-response { /* ページ上部の警告は非表示 */
display: none;
}

.wpcf7-not-valid-tip { /* 必須未入力項目下の文章 */
display: block;
padding: 8px;
color: #c13342;
font-size: 0.875rem;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.wpcf7-not-valid-tip { /* 必須未入力項目下の文章 */
font-size: 1rem;
}
}

.wpcf7-spinner { /* 送信時のスピナーは非表示 */
display: none !important;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { /* 送信ボタン下未入力警告 */
border: 1px solid #c13342;
border-radius: 4px;
color: #c13342;
width: 90%;
padding: 8px;
margin: 2em auto 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
text-align: center;
}
}

.wpcf7 form.sent .wpcf7-response-output { /* 送信ボタン下完了時 */
border: 1px solid #0080ff;
border-radius: 4px;
color: #0080ff;
width: 90%;
padding: 8px;
margin: 1em auto 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.wpcf7 form.sent .wpcf7-response-output {
text-align: center;
}
}

span.ajax-loader {
display: none;
}

/*  for cf7 end  */

/* for reCAPTCHA start */

.grecaptcha-badge {
margin-bottom: 64px;
z-index: 1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.grecaptcha-badge {
margin-bottom: 80px;
}
}

/*  for reCAPTCHA end  */

/* End contact */


/* policy
------------------------------------------------------------*/

#policy h2 {
position: relative;
text-align: justify;
font-weight: 500;
font-size: 1.125rem;
margin: 2em 0 0 0;
padding: 6px 14px;
border-bottom: solid 1px #00207f;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#policy h2 {
font-size: 1.375rem;
padding: 6px 16px;
}
}

#policy h2:after {
content: "";
display: block;
width: 4px;
height: 100%;
position: absolute;
left: 0;
top: 0;
background: #00207f;
background: -webkit-linear-gradient(top, #0080ff, #00207f);
background: linear-gradient(to bottom,  #0080ff, #00207f);
}

#policy ul {
margin: 0 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#policy ul {
margin: 0 1.5em;
}
}

#policy li {
position: relative;
padding: 0.5em 0 0 1em;
line-height: 1.8;
}

#policy li:before {
content: "";
display: block;
position: absolute;
width: 0.5em;
height: 0.5em;
top: 1.15em;
left: 0;
background: #333;
}

#policy p {
padding: 1em 1em 0;
}

#policy p.head {
padding: 0;
}

#policy p.contact {
text-align: left;
}

/* End policy */


/* not
------------------------------------------------------------*/

#not {
text-align: center;
}

#not h2 {
font-size: 1.125rem;
}
@media only screen and (max-width: 767px) { /* 767px以下で適用、スマホ専用CSS */
#not h2 {
text-align: left;
}
}

#not p {
margin-top: 2em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#not p {
text-align: center;
}
}

/* End not */







