@charset "utf-8";

/* cfio
------------------------------------------------------------*/

#cfio-introduction {
background-image: url("../images/cfio/cfio_introduction_bg_sp.jpg");
background-position: center top;
background-repeat: no-repeat;
background-size: contain;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#cfio-introduction {
background-image: url("../images/cfio/cfio_introduction_bg_pc.jpg");
background-size: cover;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#cfio-introduction p {
text-align: center;
}
}

.cfio-introduction-area {
display: flex;
flex-direction: column;
background: #f5f5f5;
box-shadow: 0 0 6px 2px rgba(176,176,176,0.3) inset;
padding: 0 1em 2em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-introduction-area {
flex-direction: row;
justify-content: space-between;
padding: 0 2em 2em;
background: #fff;
box-shadow: 0 0 12px 4px rgba(176,176,176,0.3);
}
}

.cfio-introduction-area li {
position: relative;
margin: 3.25em 0 0 0;
background: #fff;
padding: 2.25em 1em 1em;
border: solid 1px #e1e1e1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-introduction-area li {
width: 31.25%;
background: #f5f5f5;
}
}

.cfio-introduction-area li span.cap {
position: absolute;
width: 9em;
text-align: center;
top: -1.25em;
right: 0;
left: 0;
margin: 0 auto;
padding: 0.5em;
color: #fff;
background: #00488c;
background: -webkit-linear-gradient(left, #002966, #336da3);
background: linear-gradient(to right, #002966, #336da3);
}

.cfio-introduction-area li span.title {
display: block;
border-bottom: solid 1px #00488c;
color: #00488c;
text-align: center;
}

.cfio-introduction-area li span.para {
display: block;
padding: 0.5em 0.5em 0;
}

#cfio-introduction p.closing {
margin-top: 3em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#cfio-introduction p.closing {
text-align: center;
}
}

#cfio-introduction p.closing span.bold {
color: #00488c;
font-size: 1.125rem;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#cfio-introduction p.closing span.bold {
font-size: 1.25rem;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#cfio-asset p {
text-align: center;
}
}

.cfio-asset-integration {
margin: 1em 0 2.5em;
position: relative;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-asset-integration {
display: flex;
justify-content: space-between;
}
}

.cfio-asset-integration:before {
content: "";
position: absolute;
width: 20px;
height: 80%;
top: 10%;
left: calc(50% - 10px);
background: #008cc8;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-asset-integration:before {
width: 80%;
height: 20px;
top: 60%;
left: 10%;
}
}

.cfio-asset-integration li {
position: relative;
margin: 3.25em 0 0 0;
background: #fff;
padding: 2.25em 2em 2em;
border-radius: 100vh;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-asset-integration li {
width: 31.25%;
}
}

.cfio-asset-integration li span.cap {
position: absolute;
width: 9em;
text-align: center;
top: -1.25em;
right: 0;
left: 0;
margin: 0 auto;
padding: 0.5em;
color: #fff;
background: #00488c;
background: -webkit-linear-gradient(left, #002966, #336da3);
background: linear-gradient(to right, #002966, #336da3);
border-radius: 100vh;
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-step-flow {
max-width: 700px;
margin: 0 auto;
}
}

.cfio-step-flow > li {
display: flex;
justify-content: space-between;
}

.cfio-step-flow > li:not(:last-of-type) {
margin: 0 0 50px;
}

.cfio-step-flow .icon {
width: 90px;
padding: 20px 8px 8px;
color: #fff;
text-align: center;
background: #00488c;
border-radius: 5px 5px 0 0;
position: relative;
margin: 0;
}

.cfio-step-flow .icon:after {
content: "";
width: 0;
height: 0;
border-left: 45px solid transparent;
border-right: 45px solid transparent;
border-top: 20px solid #00488c;
position: absolute;
bottom: -20px;
left: 0;
}

.cfio-step-flow dl {
padding: 0 0 0 1em;
flex: 1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-step-flow dl {
padding: 0 0 0 1.5em;
}
}

.cfio-step-flow dt {
border-bottom: 1px solid #00488c;
position: relative;
color: #00488c;
padding: 0 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-step-flow dt {
border-bottom: 1px solid #e1e1e1;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfio-step-flow dt:after {
content: "";
width: 14.5em;
height: 1px;
position: absolute;
bottom: -1px;
left: 0;
background-color: #00488c;
}
}

.cfio-step-flow dd {
margin: 0.5em 0.5em 0;
}

.cfio-step-flow dd span.block {
display: block;
}

.cfio-step-flow dd span.block + span.block {
padding: 0.5em 0 0 0;
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
#cfio-ai img {
margin-top: 2em;
}
}

#cfio-group {
padding-bottom: 0;
text-align: center;
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#cfio-group p {
text-align: center;
}
}

#cfio-group img {
margin-top: 2em;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#cfio-group img {
max-width: 900px;
}
}

#cfio-btn {
padding: 60px 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#cfio-btn {
padding: 80px 0;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#cfio-btn {
padding: 100px 0;
}
}

/* End cfio */


/* service
------------------------------------------------------------*/

#service-introduction {
background-image: url("../images/service/service_introduction_bg_sp.jpg");
background-position: center bottom;
background-repeat: no-repeat;
background-size: cover;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-introduction {
background-image: url("../images/service/service_introduction_bg_pc.jpg");
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-introduction p {
text-align: center;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-list .inner {
margin: 0 24px;
}
}
@media only screen and (min-width: 1248px) { /* 1248px以上で適用、PCフルサイズ用CSS */
#service-list .inner {
max-width: 1200px;
margin: 0 auto;
}
}

#service-list .block {
position: relative;
z-index: 1;
padding-bottom: 3em;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-list .block {
display: flex;
justify-content: space-between;
}
}

#service-list .block:before {
content: "";
position: absolute;
width: calc(100% - 32px);
height: 100%;
bottom: 0;
left: 16px;
background: #fff;
z-index: -1;
box-shadow: 0 2px 12px 4px rgba(176,176,176,0.3);
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#service-list .block:before {
width: calc(100% - 48px);
left: 24px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-list .block:before {
left: auto;
right: 0;
height: calc(100% - 48px);
}
}

#service-list .block + .block {
margin-top: 60px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#service-list .block + .block {
margin-top: 80px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-list .block + .block {
margin-top: 110px;
}
}

#service-list .img {
margin: 0 16px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#service-list .img {
margin: 0 24px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-list .img {
margin: 0;
width: 48%;
}
}

#service-list .img img {
width: 100%;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-list .img img {
box-shadow: 0 2px 12px 4px rgba(176,176,176,0.3);
}
}

#service-list .para {
margin: 0 30px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#service-list .para {
margin: 0 48px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#service-list .para {
margin: 48px 0 0 0;
padding-right: 48px;
width: 48%;
}
}

#service-list h3.line span.en {
display: block;
font-size: 0.75rem;
color: #008cc8;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#service-list h3.line span.en {
font-size: 0.875rem;
}
}

/* End service */


/* cfio-consulting
------------------------------------------------------------*/

#cfiocon-introduction {
background-image: url("../images/cfio-consulting/cfiocon_introduction_bg_sp.jpg");
background-position: center bottom;
background-repeat: no-repeat;
background-size: cover;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#cfiocon-introduction {
background-image: url("../images/cfio-consulting/cfiocon_introduction_bg_pc.jpg");
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#cfiocon-introduction p {
text-align: center;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfiocon-feature-list {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
}

.cfiocon-feature-list li {
background: #fff;
box-shadow: 0 2px 12px 4px rgba(176,176,176,0.3);
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfiocon-feature-list li {
width: 48%;
margin-bottom: 4%;
}
.cfiocon-feature-list li:last-of-type,
.cfiocon-feature-list li:nth-last-of-type(2) {
margin-bottom: 0; 
}
}

@media only screen and (max-width: 767px) { /* 767px以下で適用、スマホ専用CSS */
.cfiocon-feature-list li + li {
margin: 3em 0 0 0;
}
}

.cfiocon-feature-list li img {
width: 100%;
}

.cfiocon-feature-list li span.serif {
display: inline-block;
margin: 1em 1em 0;
padding: 0 1em;
border-radius: 5px;
color: #fff;
background: #00488c;
background: -webkit-linear-gradient(left, #002966, #336da3);
background: linear-gradient(to right, #002966, #336da3);
}

.cfiocon-feature-list li h3 {
margin: 0 1em;
padding: 1em 0.5em 0.5em;
color: #00488c;
border-bottom: solid 1px #00488c;
}

.cfiocon-feature-list li p {
margin: 0 1em;
padding: 1em 0.5em 1.5em;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cfiocon-feature-list li p {
padding: 1em 0.5em 2em;
}
}

.cfiocon-flow-step {
max-width: 500px;
margin: 0 auto;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cfiocon-flow-step {
max-width: none;
margin: 0;
display: flex;
justify-content: space-between;
}
}

.cfiocon-flow-step li {
display: flex;
position: relative;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cfiocon-flow-step li {
width: 18%;
flex-direction: column;
}
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.cfiocon-flow-step li + li {
margin-top: 60px;
}
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.cfiocon-flow-step li + li:before {
content: "";
display: block;
width: 0;
height: 0;
border-left: solid 12px transparent;
border-right: solid 12px transparent;
border-top: solid 20px #00488c;
position: absolute;
top: -40px;
left: 50%;
margin-left: -12px;
}
}

.cfiocon-flow-step li .img {
width: 32%;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cfiocon-flow-step li .img {
width: 100%;
}
}

.cfiocon-flow-step li .img img {
border-radius: 5px;
}

.cfiocon-flow-step li .para {
flex: 1;
padding: 1em 0 0 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cfiocon-flow-step li .para {
padding: 1.5em 0 0 1.5em;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cfiocon-flow-step li .para {
padding: 1em 0 0 0;
}
}

.cfiocon-flow-step li .para span.en {
color: #00488c;
display: block;
border-bottom: solid 1px #00488c;
position: relative;
padding: 0 0.5em;
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cfiocon-flow-step li .para span.en:after {
content: "";
display: block;
width: 0;
height: 0;
border-left: solid 12px #00488c;
border-top: solid 10px transparent;
position: absolute;
bottom: 0;
right: 0;
}
}

.cfiocon-flow-step li .para p {
padding: 0.5em 0 0 0;
margin: 0 0.5em;
}

#cfiocon-strong {
text-align: center;
background-image: url("../images/cfio-consulting/cfiocon_strong_bg_sp.jpg");
background-position: center top;
background-repeat: no-repeat;
background-size: cover;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#cfiocon-strong {
background-image: url("../images/cfio-consulting/cfiocon_strong_bg_pc.jpg");
}
}

.cfiocon-strong-list {
display: inline-flex;
flex-direction: column;
}

.cfiocon-strong-list li {
position: relative;
border-bottom: solid 1px #00488c;
}

.cfiocon-strong-list li + li {
margin-top: 2em;
}

.cfiocon-strong-list li span.num {
position: absolute;
font-size: 2em;
top: 0;
left: 0;
color: #00488c;
line-height: 1.8;
}

.cfiocon-strong-list li p {
padding: 1.4em 0.5em 0.5em 2.5em;
margin: 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cfiocon-strong-list li p {
text-align: center;
}
}


/* End cfio-consulting */


/* company
------------------------------------------------------------*/

#company-profile dl {
border-bottom: 1px solid #e1e1e1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#company-profile dl {
margin: 0 auto;
max-width: 900px;
display: flex;
flex-wrap: wrap;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#company-profile dl {
margin: 60px auto 0;
}
}

#company-profile dt {
line-height: 1.8;
border-top: 1px solid #e1e1e1;
padding: 1em 0.5em 0;
color: #00488c;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#company-profile dt {
box-sizing: border-box;
width: 30%;
padding: 1.5em 1em 1em 2em;
}
}

#company-profile dd {
line-height: 1.8;
padding: 0.5em 0.5em 1em 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#company-profile dd {
box-sizing: border-box;
border-top: 1px solid #e1e1e1;
width: 70%;
padding: 1.5em 0.5em 1em 0;
}
}

.map-wrap {
height: 0;
overflow: hidden;
padding-bottom: 300px;
position: relative;
margin: 1em 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.map-wrap {
margin: 1.5em 0;
padding-bottom: 400px;
}
}

.map-wrap iframe {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}

/* End company */


/* greeting
------------------------------------------------------------*/

.greeting-cont,
.greeting-profile {
margin: 0 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.greeting-cont,
.greeting-profile {
max-width: 900px;
margin: 0 auto;
}
}

.greeting-cont p,
.greeting-profile p {
margin-right: 0;
margin-left: 0;
}

@media only screen and (max-width: 767px) { /* 767px以下で適用、スマホ専用CSS */
#greeting h3 {
font-size: 1.125rem;
}
}

.greeting-cont span.em-dash {
display: inline-block;
width: 2em;
height: 1px;
background: #121212;
vertical-align: middle;
margin: -2px 0.2em 0;
}

.greeting-cont ul {
margin: 0.5em 0 1em;
}

.greeting-cont li {
position: relative;
padding: 0.5em 0 0 1em;
}

.greeting-cont li:before {
position: absolute;
content: "";
display: block;
width: 0.5em;
height: 0.5em;
top: 1em;
left: 0;
background: #00488c;
border-radius: 50%;
}

.greeting-cont-profile {
margin: 2em 0 0 0
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.greeting-cont-profile {
max-width: 900px;
margin: 2em auto 0;
display: flex;
justify-content: space-between;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.greeting-cont-profile .greeting-cont {
flex: 1;
margin: 1.5em 4em 0 0;
}
}

.greeting-profile {
margin: 2em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.greeting-profile {
margin-top: auto;
width: 300px;
}
}

.greeting-profile .img {
max-width: 240px;
margin: 0 auto;
}

.greeting-profile .para {
margin: 1em 0 0 0;
}

.greeting-profile p {
text-align: center;
}

.greeting-profile p.name {
font-weight: 600;
font-size: 1rem;
padding-top: 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.greeting-profile p.name {
font-size: 1.125rem;
}
}

/* End greeting */


/* 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;
justify-content: space-between;
align-items:flex-start;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#contact dt {
box-sizing: border-box;
width: 35%;
padding: 2em 1em 0 2em;
}
}

#contact dt span.dt {
color: #00488c;
}

#contact dt span.label {
color: #ffffff;
padding: 0 1em;
border-radius: 2px;
}

#contact dt span.must {
background: #00488c;
}

#contact dt span.any {
background: #999;
}

#contact dd {
padding: 1em 0.5em;
line-height: 1.8;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#contact dd {
box-sizing: border-box;
border-top: 1px solid #e1e1e1;
width: 65%;
padding: 1.5em 2em 1.5em 0;
}
}

#contact dd .input-common {
display: block;
font-size: 1rem;
width: 100%;
box-sizing: border-box;
padding: 0.5em 1em;
border-radius: 2px;
border: solid 1px #888;
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 a {
color: #00488c;
}

#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 #121212;
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 #121212;
border-bottom: 2px solid #121212;
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: #00488c;
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 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { /* 送信ボタン下未入力警告 */
border: 1px solid #c13342;
border-radius: 4px;
color: #c13342;
box-sizing: border-box;
width: 90%;
padding: 8px;
margin: 1em 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 #00488c;
border-radius: 4px;
color: #00488c;
box-sizing: border-box;
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-cont {
margin: 0 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.policy-cont {
max-width: 900px;
margin: 0 auto;
}
}

#policy h2 {
text-align: justify;
font-size: 1.125rem;
margin: 2em 0 0;
padding: 4px 4px 4px 8px;
border-left: solid 4px #00488c;
border-bottom: solid 1px #00488c;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#policy h2 {
font-size: 1.25rem;
}
}

#policy h3 {
position: relative;
text-align: justify;
font-size: 1rem;
margin: 2em 0 0;
padding: 0 0 0 1.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#policy h3 {
font-size: 1.125rem;
}
}

#policy h3:before {
content: "";
position: absolute;
display: block;
width: 0.5em;
height: 0.5em;
top: 0.5em;
left: 0.25em;
background: #00488c;
border-radius: 2px;
}

#policy p {
padding: 1em 0 0 0;
margin: 0;
}

#policy ul {
padding: 0.5em 0 0 0;
}

#policy li {
padding: 0.5em 0 0 1em;
text-indent: -1em;
text-align: justify;
}

#policy li:before {
content: "\025a0";
}

#policy a {
font-weight: 700;
color: #00488c;
}

/* End policy */


/* business
------------------------------------------------------------*/

#business dl {
border-bottom: 1px solid #e1e1e1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#business dl {
margin: 0 auto;
max-width: 900px;
display: flex;
flex-wrap: wrap;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#business dl {
margin: 0 auto;
}
}

#business dt {
line-height: 1.8;
border-top: 1px solid #e1e1e1;
padding: 1em 0.5em 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#business dt {
box-sizing: border-box;
width: 35%;
padding: 1.5em 1em 1em 2em;
}
}

#business dd {
line-height: 1.8;
padding: 0.5em 0.5em 1em 1.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#business dd {
box-sizing: border-box;
border-top: 1px solid #e1e1e1;
width: 65%;
padding: 1.5em 2em 1em 0;
}
}

@media only screen and (max-width: 767px) { /* 767px以下で適用、スマホ専用CSS */
#business dd.p-note {
padding: 0.5em 0.5em 1em 0.5em;
}
}

#business dd p {
margin-right: 0;
margin-left: 0;
}

#business dd p.note + p.note {
padding-top: 0.5em;
}

/* End business */


/* not
------------------------------------------------------------*/

#not {
text-align: center;
}

#not h2 {
text-align: left;
color: #00488c;
margin: 0 7px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#not h2 {
text-align: center;
font-size: 1.125rem;
}
}

#not p {
padding: 2em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#not p {
text-align: center;
}
}

/* End not */




