/* block */
.block-head__txt {
    color: #E72809;
    font-size: 20px;
    font-weight: 500;
    margin: 0 0 15px;
}
.block-head__title {
    font-size: 48px;
    font-weight: 700;
}
.block-head.w .block-head__txt {
    color: #fff;
}
.block-head.w .block-head__title {
    color: #fff;
}
@media screen and (max-width: 968px) {
    .block-head__txt {
        font-size: 16px;
        margin: 0 0 10px;
    }
    .block-head__title {
        font-size: 32px;
    }
}
@media screen and (max-width: 768px) {
    .block-head__txt {
        font-size: 14px;
    }
    .block-head__title {
        font-size: 26px;
    }
}

/* btn */
.btn {
    border: 1px solid #1F1F1F;
    border-radius: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
    height: 48px;
    text-align: center;
    width: 100%;
}
.btn.blue {
    border: 1px solid #1B2275;
    color: #1B2275;
}
.btn.white {
    border: 1px solid #fff;
    color: #fff;
}
.btn::after {
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    content: "";
    display: block;
    height: 24px;
    margin-left: 8px;
    width: 28px;
}
.btn.black::after {
    background-image: url(../images/icon-arrow-r-bk.svg);
}
.btn.blue::after {
    background-image: url(../images/icon-arrow-r-b.svg);
}
.btn.white::after {
    background-image: url(../images/icon-arrow-r-w.svg);
}
@media screen and (max-width: 968px) {}
@media screen and (max-width: 768px) {}

/* fv */
.fv {
	width: 100%;
}
.fv-inner {
    aspect-ratio: 16 / 9;
    height: auto;
    overflow: hidden;
	position: relative;
	width: 100%;
}
/* 動画はコンテナいっぱいにカバー */
.fv-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	/* iOSでのフルスクリーン化抑止系（互換のある端末で効く） */
	-webkit-playsinline: true;
}

/* about */
.about {
    margin-top: -104px;
    padding: calc(93px + 104px) 0 142px;
}
.about-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 auto;
    width: 92%;
    max-width: 1200px;
}
.about-head {
    width: 50%;
}
.about-txt {
    margin: 56px 0 0;
}
.about-txt p {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.8em;
}
.about-body {
    flex: 1;
    margin-right: calc(50% - 50vw);
    margin-left: 50px;
}
.about-btn {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin: 45px 0 0 auto;
    width: 136px;
}
@media screen and (max-width: 968px) {
    .about {
        margin-top: -70px;
        padding: calc(45px + 70px) 0 85px;
    }
    .about-inner {
        flex-direction: column;
    }
    .about-head {
        width: 100%;
    }
    .about-txt {
        margin: 35px 0 0;
    }
    .about-txt p {
        font-size: 16px;
    }
    .about-body {
        flex: inherit;
        margin: 35px 0 0;
    }
}
@media screen and (max-width: 768px) {}

/* service */
.service {
    background: #1B2275;
    margin-top: -104px;
    padding: calc(80px + 104px) 0;
}
.service-inner {
    margin: 0 auto;
    width: 92%;
    max-width: 1200px;
}
.service-head {
    margin: 0 0 45px;
}
.service-card {
    background: #fff;
    border-radius: 20px;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
    padding: 55px 57px 57px;
}
.service-card__text {
    width: 53%;
}
.service-card__image {
    width: 45%;
}
.service-card__text h3 {
    font-size: 36px;
    font-weight: 700;
    margin: 0 0 25px;
}
.service-card__text p {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.8em;
}
.service-card__btn {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin: 35px 0 0 auto;
    width: 152px;
}
@media screen and (max-width: 968px) {
    .service {
        margin-top: -70px;
        padding: calc(45px + 70px) 0 45px;
    }
    .service-head {
        margin: 0 0 25px;
    }
    .service-card {
        flex-direction: column-reverse;
        padding: 35px;
    }
    .service-card__text {
        width: 100%;
    }
    .service-card__image {
        margin: 0 0 15px;
        width: 100%;
    }
    .service-card__text h3 {
        font-size: 26px;
        margin: 0 0 20px;
    }
    .service-card__text p {
        font-size: 16px;
    }
}
@media screen and (max-width: 768px) {
    .service-card {
        padding: 25px 20px;
    }
    .service-card__text h3 {
        font-size: 22px;
    }
}

/* message */
.message {
    margin-top: -104px;
    padding: calc(104px + 104px) 0 164px;
}
.message-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    margin: 0 auto;
    width: 92%;
    max-width: 1200px;
}
.message-head {
    width: 495px;
}
.message-txt {
    margin: 56px 0 0;
}
.message-txt p {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.8em;
}
.message-body {
    width: calc(100% - (495px + 80px));
}
@media screen and (max-width: 1168px) {
    .message-head {
        width: 400px;
    }
    .message-body {
        width: calc(100% - 445px);
    }
}
@media screen and (max-width: 968px) {
    .message {
        margin-top: -70px;
        padding: calc(45px + 70px) 0 55px;
    }
    .message-head {
        margin: 0 0 25px;
        width: 100%;
    }
    .message-body {
        width: 100%;
    }
    .message-image {
        margin: 0 auto;
        width: 85%;
    }
    .message-txt {
        margin: 25px 0 0;
    }
    .message-txt p {
        font-size: 16px;
    }
}
@media screen and (max-width: 768px) {}

/* company */
.company {
    margin-top: -104px;
    padding: 104px 0 95px;
}
.company-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    margin: 0 auto;
    width: 92%;
    max-width: 1088px;
}
.company-head {
    width: 200px;
}
.company-body {
    width: calc(100% - 250px);
    max-width: 816px;
}
.company-list__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    padding: 15px 0;
}
.company-list__item:first-child {
    padding-top: 0;
}
.company-list__item:not(:last-child) {
    border-bottom: 1px solid #DBDBDB;
}
.company-list__item dt,
.company-list__item dd {
    font-size: 18px;
    font-weight: 400;
    line-height: 2em;
}
.company-list__item dt {
    width: 150px;
}
.company-list__item dd {
    width: calc(100% - 150px);
}
@media screen and (max-width: 968px) {
    .company {
        margin-top: -70px;
        padding: calc(45px + 70px) 0 45px;
    }
    .company-list__item dt,
    .company-list__item dd {
        font-size: 16px;
    }
    .company-list__item dt {
        width: 120px;
    }
    .company-list__item dd {
        width: calc(100% - 120px);
    }
}
@media screen and (max-width: 768px) {
    .company-head {
        margin: 0 0 25px;
        width: 100%;
    }
    .company-body {
        width: 100%;
    }
    .company-list__item dt {
        margin: 0 0 8px;
        width: 100%;
    }
    .company-list__item dd {
        width: 100%;
    }
}

/* news */
.news {
    background: url(../images/news-bg.jpg) no-repeat;
    background-position: center;
    background-size: cover;
    border-radius: 40px;
    margin: auto;
    padding: 120px 0;
    width: 92%;
    max-width: 1760px;
}
.news-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    margin: 0 auto;
    width: 92%;
    max-width: 1200px;
}
.news-head {
    width: 200px;
}
.news-body {
    background: #fff;
    border-radius: 20px;
    padding: 45px;
    width: calc(100% - 200px);
}
.news-btn {
    margin: 50px 0 0;
    width: 136px;
}
.news-list__item a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    padding: 20px 0;
}
.news-list__item:first-child {
    padding-top: 0;
}
.news-list__item:not(:last-child) {
    border-bottom: 1px solid #DBDBDB;
}
.news-list__item dt,
.news-list__item dd {
    font-size: 18px;
}
.news-list__item dt {
    font-family: var(--ft-jost);
    font-weight: 600;
    width: 150px;
}
.news-list__item dd {
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: calc(100% - 150px);
}
@media screen and (max-width: 968px) {
    .news {
        border-radius: 0;
        padding: 45px 0;
        width: 100%;
    }
    .news-head {
        width: 180px;
    }
    .news-body {
        padding: 35px;
        width: calc(100% - 180px);
    }
    .news-list__item dt,
    .news-list__item dd {
        font-size: 16px;
    }
}
@media screen and (max-width: 768px) {
    .news-head {
        margin: 0 0 25px;
        width: 100%;
    }
    .news-body {
        padding: 25px;
        width: 100%;
    }
    .news-btn {
        margin: 35px auto 0;
    }
}

/* recruit */
.recruit {
    background: url(../images/recruit-bg.jpg) no-repeat;
    background-position: center;
    background-size: cover;
    margin: 150px 0 0;
    padding: 120px 0;
    position: relative;
}
.recruit-eyecatch {
    color: #E72809;
    font-family: var(--ft-jost);
    font-size: 130px;
    font-weight: 400;
    position: absolute;
    right: 20px;
    top: -115px;
}
.recruit-inner {
    margin: 0 auto;
    width: 92%;
    max-width: 1200px;
}
.recruit-btn {
    margin: 50px 0 0;
    width: 168px;
}
@media screen and (max-width: 1068px) {
    .recruit-eyecatch {
        font-size: 90px;
        right: 15px;
        top: -80px;
    }
}
@media screen and (max-width: 768px) {
    .recruit {
        margin: 100px 0 0;
        padding: 75px 0;
    }
    .recruit-eyecatch {
        font-size: 56px;
        right: 10px;
        top: -50px;
    }
}
@media screen and (max-width: 568px) {
    .recruit {
        margin: 80px 0 0;
    }
    .recruit-eyecatch {
        font-size: 36px;
        top: -32px;
    }
}

/* contact */
.contact {
    background: url(../images/contact-bg.jpg) no-repeat;
    background-position: center;
    background-size: cover;
    margin-top: -104px;
    padding: calc(120px + 104px) 0;
}
.contact-inner {
    margin: 0 auto;
    width: 92%;
    max-width: 960px;
}
.contact-head {
    margin: 0 0 35px;
    text-align: center;
}
.contact-txt {
    margin: 50px 0 0;
}
.contact-txt p {
    color: #fff;
    font-size: 18px;
    font-weight: 400;
}
.contact-body {
    background: #fff;
    border-radius: 20px;
    padding: 45px 45px 65px;
}
.contact-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin: 0 0 45px;
}
.contact-list__item dt {
    margin: 0 0 10px;
}
.contact-list__item dt label {
    font-size: 14px;
    font-weight: 400;
}
.contact-list__item dd input[type="text"],
.contact-list__item dd input[type="email"],
.contact-list__item dd input[type="tel"] {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    background: #F2F1F1;
    border: 1px solid #BCBCBC;
    border-radius: 8px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    font-size: 16px;
    font-weight: 400;
    height: 51px;
    outline: none;
    padding: 0 10px;
    width: 100%;
}
.contact-list__submit {
    height: 48px;
    margin: 0 auto;
    width: 136px;
}
.contact-list__submit label {
    background-color: #fff;
    border: 1px solid #1B2275;
    border-radius: 50px;
    color: #1B2275;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
    height: 100%;
    width: 100%;
}
.contact-list__submit label::after {
    background: url(../images/icon-arrow-r-b.svg) no-repeat;
    background-position: center;
    background-size: contain;
    content: "";
    display: block;
    height: 24px;
    margin-left: 8px;
    width: 28px;
}
.contact-list__submit label:hover {
    opacity: .8;
}
.contact-list__submit input,
.contact-list__submit span {
    display: none !important;
}
.wpcf7-form-control.wpcf7-radio {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 35px;
}
.wpcf7-list-item {
    margin: 0;
}
.wpcf7-list-item input {
    display: none;
}
.wpcf7-list-item .wpcf7-list-item-label {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    font-size: 16px;
    font-weight: 400;
    position: relative;
}
.wpcf7-list-item .wpcf7-list-item-label::before {
    background: #fff;
    border: 1px solid #1B2275;
    border-radius: 50%;
    height: 25px;
    margin-right: 10px;
    width: 25px;
}
.wpcf7-list-item input:checked + .wpcf7-list-item-label::after {
    background: #1B2275;
    border-radius: 50%;
    content: "";
    height: 15px;
    position: absolute;
    left: 6px;
    top: 6px;
    width: 15px;
}
@media screen and (max-width: 968px) {
    .contact {
        margin-top: -70px;
        padding: calc(65px + 70px) 0 65px;
    }
    .contact-txt {
        margin: 35px 0 0;
    }
    .contact-txt p {
        font-size: 16px;
    }
    .contact-body {
        padding: 25px 25px 35px;
    }
}
@media screen and (max-width: 768px) {
    .contact {
        margin-top: -70px;
        padding: calc(45px + 70px) 0 45px;
    }
    .contact-txt {
        margin: 25px 0 0;
    }
    .contact-body {
        padding: 25px 20px 35px;
    }

}
@media screen and (max-width: 568px) {
    .wpcf7-form-control.wpcf7-radio {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
    .wpcf7-list-item .wpcf7-list-item-label::before {
        height: 20px;
        width: 20px;
    }
    .wpcf7-list-item input:checked + .wpcf7-list-item-label::after {
        height: 12px;
        left: 5px;
        width: 12px;
    }
}
/* spacer */
.spacer {
    margin-top: -104px;
    padding-top: 104px;
}
@media screen and (max-width: 968px) {
    .spacer {
        margin-top: -70px;
        padding-top: 70px;
    }
}
@media screen and (max-width: 768px) {}