/*===========================================================================*/
/*  mv  */
/*===========================================================================*/
.p-topMv {
    height: 768px;
    overflow: hidden;
    position: relative;
}

.p-topMv__bg {
    position: absolute;
    z-index: 0;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
}

.p-topMv__bg img {
    height: 100%;
    object-fit: cover;
}

.p-topMv__head {
    position: absolute;
    width: 1366px;
    left: -378px;
    bottom: -77px;
}

@media screen and (max-width: 1000px) {
    .p-topMv__head {
        left: -444px;
    }
}

@media screen and (max-width: 900px) {
    .p-topMv {
        height: 612px;
    }

    .p-topMv__head {
        position: absolute;
        width: 687px;
        left: -305px;
        bottom: -39px;
    }
}

/*===========================================================================*/
/*  sv  */
/*===========================================================================*/
.p-topSv {
    padding-top: 54px;
}

.p-topSv__txt {
    font-size: 28px;
    font-weight: 700;
    line-height: 2.1;
    text-align: center;
}

.p-topSv__btn {
    margin: 66px auto 0;
}

@media screen and (max-width: 900px) {
    .p-topSv {
        padding-top: 40px;
    }

    .p-topSv__txt {
        font-size: 20px;
    }

    .p-topSv__btn {
        margin: 24px auto 0;
    }
}

/*===========================================================================*/
/*  news  */
/*===========================================================================*/
.p-topNews {
    padding-bottom: 135px;
    overflow: hidden;
}

.p-topNews__inner {
    position: relative;
    padding-top: 278px;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.p-topNews__heads {
    width: 262px;
}

.p-topNews__contents {
    width: calc(100% - 262px);
    max-width: 760px;
}

.p-topNews__list li {
    padding: 20px 0;
    border-bottom: #707070 solid 1px;
}
.p-topNews__list li:nth-of-type(1) {
    padding-top: 0;
}
.p-topNews__list li:last-of-type {
    padding-bottom: 0;
    border-bottom: none;
}

.p-topNews__list li a {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.p-topNews__list--date {
    width: 125px;
    font-size: 25px;
    font-weight: 700;
    line-height: 1;
}

.p-topNews__list--head {
    width: calc(100% - 125px);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.p-topNews__btn {
    margin: 48px 0 0 auto;
}

@media screen and (max-width: 900px) {
    .p-topNews {
        padding-top: 80px;
        padding-bottom: 60px;
    }

    .p-topNews__inner {
        padding-top: 0;
        display: block;
    }

    .p-topNews__heads {
        width: 100%;
    }

    .p-topNews__contents {
        width: 100%;
        max-width: unset;
        margin-top: 20px;
    }

    .p-topNews__list li {
        padding: 18px 0 20px;
    }
    .p-topNews__list li:last-of-type {
        padding-bottom: 20px;
        border-bottom: #707070 solid 1px;
    }

    .p-topNews__list li a {
        display: block;
    }

    .p-topNews__list--date {
        width: 100%;
        font-size: 15px;
    }

    .p-topNews__list--head {
        width: 100%;
        margin-top: 8px;
        font-size: 16px;
    }

    .p-topNews__btn {
        margin: 20px 0 0 auto;
    }
}

/*===========================================================================*/
/*  ability  */
/*===========================================================================*/
.p-topAbility {
    position: relative;
    overflow: hidden;
}

.p-topAbility__upper {
    padding-top: 115px;
    padding-bottom: 220px;
    position: relative;
}

.p-topAbility__bg {
    position: absolute;
    width: 100%;
    min-width: 1494px;
    height: 100%;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
}

.p-topAbility__bg img {
    height: 100%;
    object-fit: fill;
}

.p-topAbility__head {
    color: #fff;
    font-size: 40px;
    line-height: 1.4;
    font-weight: 700;
    text-align: center;
    position: relative;
    z-index: 2;
}

.p-topAbility__list {
    margin: 80px auto 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 80px;
    max-width: 960px;
    position: relative;
    z-index: 2;
}

.p-topAbility__list li {
    width: 44.7%;
}

.p-topAbility__list h3 {
    text-align: center;
    margin-top: 5px;
    font-size: 25px;
    line-height: 1.4;
    font-weight: 700;
    color: #fff;
}

.p-topAbility__txt {
    margin: 100px 0 155px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    font-size: 50px;
    font-weight: 900;
    line-height: 1.4;
    color: #fff;
}
.p-topAbility__txt.sp-only {
    display: none;
}

.p-topAbility__txt span {
    background-color: #005DAB;
    padding: 0 14px 2px;
}

@media screen and (max-width: 900px) {
    .p-topAbility__upper {
        padding-top: 60px;
        padding-bottom: 81px;
    }

    .p-topAbility__bg {
        min-width: 742px;
    }

    .p-topAbility__head {
        font-size: 26px;
    }

    .p-topAbility__list {
        margin: 20px auto 0;
        row-gap: 12px;
        max-width: 335px;
    }

    .p-topAbility__list li {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .p-topAbility__list li figure {
        width: 142px;
    }

    .p-topAbility__list h3 {
        width: calc(100% - 155px);
        text-align: left;
        margin-top: 0;
        font-size: 18px;
    }

    .p-topAbility__txt {
        margin: 24px 0 40px;
        gap: 7px;
        font-size: 32px;
    }
    .p-topAbility__txt.pc-only {
        display: none;
    }
    .p-topAbility__txt.sp-only {
        display: flex;
    }

    .p-topAbility__txt span {
        background-color: #005DAB;
        padding: 0 14px 2px;
    }
}

/*===========================================================================*/
/*  drone  */
/*===========================================================================*/
.p-topDrone {
    background: url('../img/top/merit-bg.webp') no-repeat center center/cover;
    padding-top: 376px;
    padding-bottom: 72px;
}

.p-topDrone__head span {
    color: #005DAB;
    font-size: 47px;
    line-height: 1.4;
    padding: 12px 30px 14px;
    background-color: #fff;
    font-weight: 900;
}

.p-topDrone__txt {
    margin-top: 47px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.4;
}
.p-topDrone__txt.sp-only {
    display: none;
}

.p-topDrone__txt span {
    padding: 8px 5px 8px 30px;
    background-color: #fff;
}

@media screen and (max-width: 900px) {
    .p-topDrone {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    .p-topDrone__head {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .p-topDrone__head.pc-only {
        display: none;
    }

    .p-topDrone__head span {
        font-size: 28px;
        padding: 3px 10px;
    }

    .p-topDrone__txt {
        margin-top: 34px;
        gap: 11px;
        font-size: 17px;
    }
    .p-topDrone__txt.pc-only {
        display: none;
    }
    .p-topDrone__txt.sp-only {
        display: flex;
    }

    .p-topDrone__txt span {
        padding: 3px 8px 3px 12px;
    }
}

@media screen and (max-width: 500px) {
    .p-topDrone {
        background: url('../img/top/merit-bg-sp.webp') no-repeat center center/cover;
    }
}

/*===========================================================================*/
/*  merit  */
/*===========================================================================*/
.p-topMerit {
    overflow: hidden;
    padding-bottom: 196px;
}

.p-topMerit__inner {
    padding-top: 278px;
    position: relative;
}

.p-topMerit__list {
    margin-top: 96px;
    display: flex;
    justify-content: space-between;
}

.p-topMerit__list li {
    width: 22.6%;
}

.p-topMerit__list--head {
    margin-top: 15px;
    color: #10A259;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.4;
    min-height: 70px;
}

.p-topMerit__list--txt {
    margin-top: 20px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
}

@media screen and (max-width: 900px) {
    .p-topMerit {
        padding-bottom: 60px;
        padding-top: 60px;
    }

    .p-topMerit__inner {
        padding-top: 0;
    }

    .p-topMerit__list {
        margin-top: 30px;
        flex-direction: column;
        gap: 25px;
    }

    .p-topMerit__list li {
        width: 100%;
    }

    .p-topMerit__list--heads {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .p-topMerit__list--img {
        width: 82px;
    }

    .p-topMerit__list--head {
        width: calc(100% - 98px);
        margin-top: 0;
        font-size: 20px;
        min-height: unset;
    }

    .p-topMerit__list--txt {
        margin-top: 12px;
        font-size: 15px;
    }
}

/*===========================================================================*/
/*  equipment  */
/*===========================================================================*/
.p-topEquipment {
    padding-bottom: 170px;
}

.p-topEquipment__list {
    margin-top: 70px;
    display: flex;
}

.p-topEquipment__list li {
    width: 50%;
}

.p-topEquipment__list--img {
    max-width: 433px;
    margin: 0 auto;
}

.p-topEquipment__list--head {
    margin-top: 20px;
    font-size: 30px;
    line-height: 1.4;
    font-weight: 500;
    text-align: center;
}

.p-topEquipment__list--table {
    max-width: 330px;
    margin: 16px auto 0;
    border-top: #48ACF0 solid 1px;
}

.p-topEquipment__list--table dl {
    display: flex;
    justify-content: space-between;
    padding: 7px 0;
    border-bottom: #48ACF0 solid 1px;
}

.p-topEquipment__list--table dl dt,
.p-topEquipment__list--table dl dd {
    font-size: 20px;
    line-height: 1.4;
    font-weight: 500;
}

@media screen and (max-width: 900px) {
    .p-topEquipment {
        padding-bottom: 60px;
    }

    .p-topEquipment__list {
        margin-top: 7px;
        flex-direction: column;
        gap: 16px;
    }

    .p-topEquipment__list li {
        width: 100%;
    }

    .p-topEquipment__list--img {
        max-width: 286px;
    }

    .p-topEquipment__list--head {
        margin-top: 0;
        font-size: 22px;
    }

    .p-topEquipment__list--table {
        max-width: unset;
        margin: 20px auto 0;
    }

    .p-topEquipment__list--table dl {
        padding: 8px 10px;
    }

    .p-topEquipment__list--table dl dt,
    .p-topEquipment__list--table dl dd {
        font-size: 16px;
    }
}

/*===========================================================================*/
/*  materials  */
/*===========================================================================*/
.p-topMaterials {
    padding-bottom: 66px;
}

.p-topMaterials__contents {
    margin-top: 40px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.p-topMaterials__txts {
    width: 73.9%;
}

.p-topMaterials__list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
    row-gap: 24px;
}

.p-topMaterials__list li {
    width: 165.8px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    position: relative;
    padding-left: 22px;
}
.p-topMaterials__list li::before {
    background-color: #005DAB;
    content: '';
    height: 18px;
    left: 0;
    position: absolute;
    top: 5px;
    width: 18px;
    border-radius: 100vh;
}

.p-topMaterials__txt {
    margin-top: 24px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
}

.p-topMaterials__img {
    width: 28.2%;
}

.p-topMaterials__btn {
    margin: 170px auto 0;
}

@media screen and (max-width: 900px) {
    .p-topMaterials {
        padding-bottom: 80px;
    }

    .p-topMaterials__contents {
        margin-top: 20px;
        display: block;
    }

    .p-topMaterials__txts {
        width: 100%;
    }

    .p-topMaterials__list {
        column-gap: 30px;
        row-gap: 12px;
    }

    .p-topMaterials__list li {
        width: calc(50% - 15px);
        font-size: 18px;
        padding-left: 22px;
    }
    .p-topMaterials__list li::before {
        height: 16px;
        top: 5px;
        width: 16px;
    }

    .p-topMaterials__txt {
        margin-top: 12px;
        font-size: 18px;
    }

    .p-topMaterials__img {
        width: 100%;
        margin-top: 20px;
    }

    .p-topMaterials__btn {
        margin: 24px auto 0;
    }
}

/*===========================================================================*/
/*  safety  */
/*===========================================================================*/
.p-topSafety {
    overflow: hidden;
    padding-bottom: 190px;
}

.p-topSafety__upper--inner {
    position: relative;
    padding-top: 278px;
}

.p-topSafety__lower {
    position: relative;
    overflow: hidden;
    margin-top: 96px;
    padding-top: 160px;
    padding-bottom: 429px;
}
.p-topSafety__lower::before {
    background: linear-gradient(#17a24d 0%, #0663a2 100%);
    opacity: 0.8;
    content: '';
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0;
}
.p-topSafety__lower::after {
    background-color: #235697;
    content: '';
    height: 132px;
    left: 0;
    position: absolute;
    bottom: 0;
    width: 100%;
    z-index: 1;
}

.p-topSafety__lower--inner {
    position: relative;
    z-index: 2;
}

.p-topSafety__lower--head {
    font-size: 40px;
    color: #fff;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    letter-spacing: -.02em;
}

.p-topSafety__lower--subHead {
    max-width: 1072px;
    margin: 30px auto 0;
}

.p-topSafety__lower--img {
    max-width: 1018px;
    margin: 121px auto 0;
    transform: translate(-23px, 0);
}

.p-topSafety__lower--img02 {
    width: 1100px;
    position: absolute;
    bottom: 99px;
    left: 50%;
    transform: translate(-50%, 0);
    z-index: 2;
}

@media screen and (max-width: 900px) {
    .p-topSafety {
        padding-bottom: 60px;
    }

    .p-topSafety__upper--inner {
        padding-top: 0;
    }

    .p-topSafety__lower {
        margin-top: 30px;
        padding-top: 40px;
        padding-bottom: 227px;
    }
    .p-topSafety__lower::after {
        height: 82px;
    }

    .p-topSafety__lower--inner {
        position: relative;
        z-index: 2;
    }

    .p-topSafety__lower--head {
        font-size: 23px;
    }

    .p-topSafety__lower--subHead {
        max-width: 335px;
        margin: 18px auto 0;
    }

    .p-topSafety__lower--img {
        max-width: 289px;
        margin: 20px auto 0;
        transform: translate(0, 0);
    }

    .p-topSafety__lower--list {
        margin-top: 25px;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .p-topSafety__lower--list li {
        display: flex;
    }

    .p-topSafety__lower--listNum {
        width: 32px;
        font-size: 20px;
        line-height: 1;
        font-weight: 500;
        color: #fff;
        padding-top: 1px;
    }

    .p-topSafety__lower--listTxt {
        width: calc(100% - 22px);
        font-size: 14px;
        font-weight: 500;
        line-height: 1.4;
        color: #fff;
    }

    .p-topSafety__lower--img02 {
        width: 870px;
        bottom: 41px;
    }
}

/*===========================================================================*/
/*  promise  */
/*===========================================================================*/
.p-topPromise {
    padding-bottom: 190px;
}

.p-topPromise__contents {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-top: 50px;
}

.p-topPromise__list {
    width: calc(100% - 375px);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.p-topPromise__list li {
    position: relative;
    font-size: 25px;
    font-weight: 500;
    line-height: 1.4;
    padding-left: 25px;
}
.p-topPromise__list li::before {
    content: '・';
    left: 0;
    position: absolute;
    top: 0;
}

.p-topPromise__badges {
    width: 350px;
}

.p-topPromise__img {
    margin-top: 90px;
    width: calc(100% + 60px);
    position: relative;
    left: -30px;
}

@media screen and (max-width: 900px) {
    .p-topPromise {
        padding-bottom: 60px;
    }

    .p-topPromise__contents {
        display: block;
        margin-top: 20px;
    }

    .p-topPromise__list {
        width: 100%;
        gap: 10px;
    }

    .p-topPromise__list li {
        font-size: 16px;
        padding-left: 16px;
    }

    .p-topPromise__badges {
        width: 100%;
        max-width: 350px;
        margin: 0 auto;
    }

    .p-topPromise__img {
        margin-top: 7px;
        width: 100%;
        left: 0;
    }
}

/*===========================================================================*/
/*  qualification  */
/*===========================================================================*/
.p-topQualification {
    padding-bottom: 90px;
}

.p-topQualification__txt {
    margin-top: 50px;
    font-size: 25px;
    font-weight: 500;
    line-height: 1.4;
}

.p-topQualification__list {
    margin-top: 100px;
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    height: 300px;
    overflow: hidden;
    position: relative;
}
.p-topQualification__list::before {
    background: linear-gradient(rgba(255, 255, 255, 0) 0%, #fff 100%);
    content: '';
    height: 258px;
    left: 0;
    position: absolute;
    bottom: 0;
    width: 100%;
}

.p-topQualification__list.js-active {
    height: auto;
}
.p-topQualification__list.js-active::before {
    opacity: 0;
}

.p-topQualification__list li {
    width: calc(100%/3 - 64px/3);
    padding: 9px 36px 10px;
    border: #4FB477 solid 2px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    display: flex;
    align-items: center;
}

.p-topQualification__list--more {
    margin-top: 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 11px 0 12px;
    border-top: #000 solid 1px;
    border-bottom: #000 solid 1px;
}

.p-topQualification__list--moreTxt {
    position: relative;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
}

.p-topQualification__list--more.js-active .p-topQualification__list--moreTxt #qualification-btn--txt {
    opacity: 0;
}

.p-topQualification__list--moreTxt #qualification-btn--txt02 {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
    opacity: 0;
}
.p-topQualification__list--more.js-active .p-topQualification__list--moreTxt #qualification-btn--txt02 {
    opacity: 1;
}

.p-topQualification__list--more #qualification-btn--plus {
    width: 12px;
    height: 12px;
    position: relative;
}

.p-topQualification__list--more #qualification-btn--plus::before {
    background-color: #000;
    content: '';
    height: 2px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 100%;
    transform: translate(-50%, -50%);
}
.p-topQualification__list--more #qualification-btn--plus::after {
    background-color: #000;
    content: '';
    height: 100%;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 2px;
    transform: translate(-50%, -50%);
}
.p-topQualification__list--more.js-active #qualification-btn--plus::after {
    opacity: 0;
}

.p-topQualification__btn {
    margin: 81px auto 0;
}

@media screen and (max-width: 900px) {
    .p-topQualification {
        padding-bottom: 60px;
    }

    .p-topQualification__txt {
        margin-top: 20px;
        font-size: 16px;
    }

    .p-topQualification__list {
        margin-top: 20px;
        gap: 8px;
        height: 216px;
    }
    .p-topQualification__list::before {
        height: 216px;
    }

    .p-topQualification__list li {
        width: calc(100%/2 - 8px/2);
        padding: 8px 5px 9px;
        font-size: 13px;
        text-align: center;
        justify-content: center;
    }

    .p-topQualification__list--more {
        gap: 6px;
        padding: 11px 0 12px;
    }

    .p-topQualification__list--moreTxt {
        font-size: 13px;
    }

    .p-topQualification__list--more #qualification-btn--plus {
        width: 10px;
        height: 10px;
    }

    .p-topQualification__btn {
        margin: 24px auto 0;
    }
}

/*===========================================================================*/
/*  flow  */
/*===========================================================================*/
.p-topFlow {
    overflow: hidden;
    padding-bottom: 117px;
}

.p-topFlow__inner {
    position: relative;
    padding-top: 278px;
}

.p-topFlow__list {
    margin-top: 70px;
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

.p-topFlow__list li {
    position: relative;
    width: calc(100%/4 - 120px/4);
}

.p-topFlow__list--img {
    position: relative;
}
.p-topFlow__list--img::before {
    background: url('../img/top/flow-arrow.webp') no-repeat center center/contain;
    content: '';
    height: 52px;
    left: 100%;
    position: absolute;
    top: 50%;
    width: 40px;
    transform: translate(0, -50%);
}
.p-topFlow__list li:last-of-type .p-topFlow__list--img::before {
    display: none;
}

.p-topFlow__list--head {
    margin-top: 12px;
    font-size: 25px;
    line-height: 1.4;
    font-weight: 700;
    color: #005DAB;
}

.p-topFlow__list--table {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.p-topFlow__list--table dl dt {
    background-color: #48ACF0;
    color: #fff;
    font-size: 14px;
    text-align: center;
    color: #fff;
    line-height: 1.4;
}

.p-topFlow__list--table dl dd {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    margin-top: 5px;
}

@media screen and (max-width: 900px) {
    .p-topFlow {
        padding-bottom: 60px;
    }

    .p-topFlow__inner {
        padding-top: 0;
    }

    .p-topFlow__list {
        margin-top: 27px;
        flex-direction: column;
        gap: 20px;
    }

    .p-topFlow__list li {
        width: 100%;
        padding-left: 114px;
    }

    .p-topFlow__list--img {
        position: absolute;
        width: 102px;
        left: 0;
        top: 0;
    }
    .p-topFlow__list--img::before {
        background: url('../img/top/flow-arrow-sp.webp') no-repeat center center/contain;
        height: 15px;
        left: 50%;
        top: 100%;
        width: 19px;
        transform: translate(-50%, 0);
    }
    .p-topFlow__list li:last-of-type .p-topFlow__list--img::before {
        display: none;
    }

    .p-topFlow__list--head {
        margin-top: 0;
        font-size: 20px;
    }

    .p-topFlow__list--table {
        margin-top: 7px;
        gap: 12px;
    }

    .p-topFlow__list--table dl dt {
        font-size: 12px;
    }

    .p-topFlow__list--table dl dd {
        font-size: 14px;
        margin-top: 4px;
    }
}

/*===========================================================================*/
/*  team  */
/*===========================================================================*/
.p-topTeam {
    padding-bottom: 189px;
}

.p-topTeam__inner {
    position: relative;
    padding-right: 510px !important;
}

.p-topTeam__list {
    margin-top: 26px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.p-topTeam__list li {
    font-size: 25px;
    line-height: 1.4;
    font-weight: 500;
    position: relative;
    padding-left: 25px;
}

.p-topTeam__list li::before {
    content: '・';
    left: 0;
    position: absolute;
    top: 0;
}

.p-topTeam__img {
    position: absolute;
    width: 479px;
    top: -29px;
    right: 20px;
}

@media screen and (max-width: 900px) {
    .p-topTeam {
        padding-bottom: 60px;
    }

    .p-topTeam__inner {
        padding-right: 0 !important;
    }

    .p-topTeam__list {
        margin-top: 20px;
        gap: 10px;
    }

    .p-topTeam__list li {
        font-size: 16px;
        padding-left: 16px;
    }

    .p-topTeam__img {
        position: relative;
        width: 100%;
        max-width: 360px;
        top: unset;
        right: unset;
        margin: 20px auto 0;
    }
}

/*===========================================================================*/
/*  price  */
/*===========================================================================*/
.p-topPrice {
    padding-bottom: 77px;
}

.p-topPrice__inner {
    position: relative;
    padding-right: 392px !important;
}

.p-topPrice__txt {
    margin-top: 36px;
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
}

.p-topPrice__txt .underline {
    position: relative;
    z-index: 2;
}
.p-topPrice__txt .underline::before {
    background-color: #4FB477;
    content: '';
    height: 8px;
    left: 0;
    position: absolute;
    bottom: 6px;
    width: 100%;
    border-radius: 100vh;
    z-index: -1;
}

.p-topPrice__txt .underline .--large {
    font-size: 30px;
    line-height: 1.2;
}

.p-topPrice__txt .underline .--small {
    font-size: 25px;
    line-height: 1.2;
}

.p-topPrice__img {
    position: absolute;
    width: 285px;
    top: 69px;
    right: 90px;
}

@media screen and (max-width: 900px) {
    .p-topPrice {
        padding-bottom: 80px;
    }

    .p-topPrice__inner {
        padding-right: 0 !important;
    }

    .p-topPrice__txt {
        margin-top: 20px;
        font-size: 16px;
        line-height: 1.8;
    }

    .p-topPrice__txt .underline::before {
        height: 5px;
        bottom: 5px;
    }

    .p-topPrice__txt .underline .--large {
        font-size: 20px;
    }

    .p-topPrice__txt .underline .--small {
        font-size: 20px;
    }

    .p-topPrice__img {
        position: relative;
        width: 242px;
        top: unset;
        right: unset;
        margin: 14px auto 0;
    }
}

/*===========================================================================*/
/*  work  */
/*===========================================================================*/
.p-topWorks {
    overflow: hidden;
    padding-bottom: 200px;
}

.p-topWorks__inner {
    position: relative;
    padding-top: 278px;
}

.p-topWorks__list {
    margin-top: 70px;
    display: flex;
    flex-wrap: wrap;
    column-gap: 120px;
    row-gap: 67px;
}

.p-topWorks__list li {
    width: calc(50% - 60px);
}

.p-topWorks__list--img {
    aspect-ratio: 490/278;
    overflow: hidden;
}

.p-topWorks__list--img img {
    height: 100%;
    object-fit: cover;
    transition: transform .6s 0s cubic-bezier(.44,.14,.09,1.02);
}

.p-topWorks__list--txts {
    position: relative;
    padding: 0 0 8px 19px;
}

.p-topWorks__list--txts::before {
    background: linear-gradient(180deg, #4fb477 0%, #48acf0 100%);
    content: '';
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 10px;
}

.p-topWorks__list--date {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
}

.p-topWorks__list--head {
    font-size: 25px;
    font-weight: 500;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.p-topWorks__list--location {
    margin-top: 17px;
    color: #4FB477;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 500;
}

.p-topWorks__list--location span {
    padding: 0 5px 1px;
    border: #4FB477 solid 1px;
}

.p-topWorks__btn {
    margin: 72px 0 0 auto;
}

@media screen and (min-width: 901px) {
    .p-topWorks__list--link:hover .p-topWorks__list--img img {
        transform: scale(1.07);
    }
}

@media screen and (max-width: 900px) {
    .p-topWorks {
        padding-bottom: 60px;
    }

    .p-topWorks__inner {
        position: relative;
        padding-top: 0;
    }

    .p-topWorks__list {
        margin-top: 25px;
        column-gap: 8px;
        row-gap: 16px;
    }

    .p-topWorks__list li {
        width: calc(50% - 4px);
    }

    .p-topWorks__list--txts {
        position: relative;
        padding: 0 0 0 14px;
    }

    .p-topWorks__list--txts::before {
        width: 4px;
    }

    .p-topWorks__list--date {
        font-size: 14px;
    }

    .p-topWorks__list--head {
        font-size: 18px;
        margin-top: 2px;
    }

    .p-topWorks__list--location {
        margin-top: 6px;
        color: #4FB477;
        font-size: 12px;
    }

    .p-topWorks__btn {
        margin: 28px 0 0 auto;
    }
}

/*===========================================================================*/
/*  contact  */
/*===========================================================================*/
.p-topContact {
    position: relative;
    overflow: hidden;
    padding-top: 235px;
    padding-bottom: 200px;
    background: linear-gradient(#17a24d 0%, #0663a2 100%);
}

.p-topContact__subHead {
    font-size: 300px;
    line-height: 1;
    font-weight: 700;
    color: #fff;
    opacity: .17;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
}

.p-topContact__inner {
    position: relative;
    z-index: 2;
}

.p-topContact__head {
    position: relative;
    padding-bottom: 31px;
    text-align: center;
    color: #fff;
    font-size: 45px;
    font-weight: 500;
    line-height: 1.4;
}
.p-topContact__head::before {
    background-color: #fff;
    content: '';
    height: 13px;
    left: 50%;
    position: absolute;
    bottom: 0;
    width: 140px;
    transform: translate(-50%, 0);
}

.p-topContact__txt {
    margin-top: 60px;
    text-align: center;
    line-height: 2;
    font-weight: 500;
    color: #fff;
}

.p-topContact__tels {
    margin-top: 30px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

.p-topContact__tel--head {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 500;
    color: #10A259;
}

.p-topContact__tel--head span {
    background-color: #fff;
    padding: 2px 8px 3px;
}

.p-topContact__tel--right {
    display: flex;
    align-items: center;
    gap: 10px;
}

.p-topContact__tel--link {
    display: flex;
    align-items: center;
    color: #fff;
}

.p-topContact__tel--link .--small {
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    transform: translate(0px, 2px);
}

.p-topContact__tel--link .--large {
    font-size: 35px;
    font-weight: 500;
    line-height: 1;
}

.p-topContact__tel--time {
    color: #fff;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 500;
    transform: translate(0, -2px);
}

.p-topContact__contents {
    max-width: 905px;
    margin: 60px auto 0;
}

.p-topContact__table {
    display: flex;
    flex-direction: column;
    gap: 68px;
}
#confirm .p-topContact__table {
    gap: 80px;
}

.p-topContact__table dl {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.p-topContact__table dl dt {
    width: 205px;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.4;
    color: #fff;
    padding-top: 11px;
}

#confirm .p-topContact__table dl dt {
    padding-top: 0;
}

.p-topContact__table dl dt .--required {
    font-size: 15px;
    transform: translate(0, -7px);
}

.p-topContact__table dl dd {
    width: calc(100% - 205px);
}
#confirm .p-topContact__table dl dd {
    color: #fff;
    font-size: 20px;
    line-height: 2;
    font-weight: 700;
}

.p-topContact__table dl dd .wpcf7-form-control-wrap {
    width: 100%;
}

.p-topContact__table dl dd input[type=text],
.p-topContact__table dl dd input[type=tel],
.p-topContact__table dl dd input[type=email],
.p-topContact__table dl dd input[type=url],
.p-topContact__table dl dd select,
.p-topContact__table dl dd textarea {
    background-color: #fff;
    width: 100%;
    padding: 17px 30px;
    font-size: 25px;
    line-height: 1.4;
    font-weight: 500;
}

.p-topContact__table dl dd textarea {
    resize: vertical;
    min-height: 439px;
}

.p-topContact__privacy {
    margin-top: 40px;
    padding-left: 205px;
}

.p-topContact__privacy .wpcf7-form-control-wrap label {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    color: #fff;
}

.p-topContact__privacy .wpcf7-form-control-wrap label input[type=checkbox] {
    display: none;
}

.p-topContact__privacy .wpcf7-form-control-wrap label .wpcf7-list-item-label {
    position: relative;
    padding-left: 26px;
}

.p-topContact__privacy .wpcf7-form-control-wrap label .wpcf7-list-item-label::before {
    background-color: #fff;
    content: '';
    height: 19px;
    left: 0;
    position: absolute;
    top: 1px;
    width: 19px;
    border: #707070 solid 1px;
}
.p-topContact__privacy .wpcf7-form-control-wrap label .wpcf7-list-item-label::after {
    background: url('../img/top/check.png') no-repeat center center/contain;
    content: '';
    height: 19px;
    left: 0;
    position: absolute;
    top: 1px;
    width: 19px;
    opacity: 0;
}
.p-topContact__privacy .wpcf7-form-control-wrap label input:checked + .wpcf7-list-item-label::after {
    opacity: 1;
}

.p-topContact__privacy a {
    text-decoration: underline;
}

.p-topContact__btn {
    position: relative;
    cursor: pointer;
    width: 340px;
    height: 70px;
    margin: 58px auto 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    color: #005DAB;
    font-size: 30px;
    line-height: 1.4;
    font-weight: 700;
    transition: box-shadow .6s 0s cubic-bezier(.44,.14,.09,1.02);
}

.p-topContact__btn.inactive {
    pointer-events: none;
    opacity: .5;
}

.p-topContact__btn input {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    opacity: 0;
}

.p-topContact__back--wrapper {
    text-align: center;
    margin-top: 30px;
    font-size: 20px;
    line-height: 1.4;
    font-weight: 500;
    color: #fff;
}

.p-topContact__back--wrapper span input {
    text-decoration: underline;
    cursor: pointer;
}

.wpcf7-spinner {
    display: none !important;
}

.confirm_area {
    display: none;
}

@media screen and (min-width: 901px) {
    .p-topContact__btn:hover {
        box-shadow: 6px 6px 6px rgba(0,0,0,.4);
    }
}

@media screen and (max-width: 900px) {
    .p-topContact {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    .p-topContact__subHead {
        font-size: 112px;
    }

    .p-topContact__head {
        padding-bottom: 20px;
        font-size: 32px;
    }
    .p-topContact__head::before {
        height: 6px;
        width: 92px;
    }

    .p-topContact__txt {
        margin-top: 20px;
        text-align: left;
        line-height: 1.8;
    }

    .p-topContact__tels {
        margin-top: 20px;
        align-items: center;
        flex-direction: column;
        gap: 9px;
    }

    .p-topContact__tel--head {
        font-size: 14px;
    }

    .p-topContact__tel--head span {
        padding: 2px 10px 3px;
    }

    .p-topContact__tel--right {
        justify-content: center;
        flex-direction: column;
        gap: 1px;
    }

    .p-topContact__tel--time {
        font-size: 14px;
        transform: translate(0, 0);
    }

    .p-topContact__contents {
        margin: 20px auto 0;
    }

    .p-topContact__table {
        gap: 16px;
    }
    #confirm .p-topContact__table {
        gap: 25px;
    }

    .p-topContact__table dl {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    #confirm .p-topContact__table dl {
        gap: 15px;
    }

    .p-topContact__table dl dt {
        width: 100%;
        font-size: 16px;
        padding-top: 0;
    }
    #confirm .p-topContact__table dl dd {
        padding-top: 0;
        font-size: 15px;
        line-height: 1.8;
    }

    .p-topContact__table dl dt .--required {
        font-size: 13px;
        transform: translate(0, 0);
        margin-left: 6px;
    }

    .p-topContact__table dl dd {
        width: 100%;
    }

    .p-topContact__table dl dd input[type=text],
    .p-topContact__table dl dd input[type=tel],
    .p-topContact__table dl dd input[type=email],
    .p-topContact__table dl dd input[type=url],
    .p-topContact__table dl dd select,
    .p-topContact__table dl dd textarea {
        padding: 10px 15px;
        font-size: 16px;
    }

    .p-topContact__table dl dd textarea {
        min-height: 144px;
    }

    .p-topContact__privacy {
        margin-top: 20px;
        padding-left: 0;
        text-align: center;
    }

    .p-topContact__privacy .wpcf7-form-control-wrap label {
        font-size: 13px;
    }

    .p-topContact__privacy .wpcf7-form-control-wrap label .wpcf7-list-item-label {
        padding-left: 20px;
    }

    .p-topContact__privacy .wpcf7-form-control-wrap label .wpcf7-list-item-label::before {
        height: 14px;
        top: 3px;
        width: 14px;
    }
    .p-topContact__privacy .wpcf7-form-control-wrap label .wpcf7-list-item-label::after {
        height: 14px;
        top: 3px;
        width: 14px;
    }

    .p-topContact__btn {
        width: 295px;
        height: 52px;
        margin: 20px auto 0;
        font-size: 22px;
    }

    .p-topContact__back--wrapper {
        margin-top: 20px;
        font-size: 16px;
    }
}