/* --------------------
 About us
-------------------- */
.overview {
    margin: 0 0 10.6666666667vw;
    padding: 3.2vw 0 0;
}

@media (min-width: 768px) {
    .overview {
        margin: 0 0 50px;
        padding: 12px 0 0;
    }
}

.overview-container {
    align-items: stretch;
    display: flex;
    flex-flow: row wrap;
    gap: 10.6666666667vw;
    margin: 0 auto;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

@media (min-width: 768px) {
    .overview-container {
        flex-wrap: nowrap;
        gap: 40px;
    }
}

.overview__list {
    flex: 0 0 100%;
    list-style: none;
    margin: 0;
    min-width: 0px;
    padding: 0;
}

@media (min-width: 768px) {
    .overview__list {
        flex: 1 1 auto;
    }
}

@media (min-width: 992px) {
    .overview__list {
        padding: 20px 0 0;
    }
}

.overview__list > li {
    border-bottom: 1px solid #b9bec2;
    font-size: var(--fs18);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.4;
    margin: 0;
    padding: 5.3333333333vw 0 5.3333333333vw 9.8666666667vw;
    position: relative;
}

@media (min-width: 768px) {
    .overview__list > li {
        font-size: var(--fs22);
        padding: 23px 0 23px 42px;
    }
}

@media (min-width: 992px) {
    .overview__list > li {
        font-size: var(--fs26);
        padding: 28px 0 28px 52px;
    }
}

.overview__list > li:before {
    background-color: var(--color-peach);
    background-image: url(../images/icons/icon-black-check.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 4.5333333333vw 3.7333333333vw;
    border: 0.5333333333vw solid var(--color-onyx);
    border-radius: 50%;
    bottom: 0;
    content: "";
    display: block;
    height: 7.2vw;
    left: 0;
    margin: auto 0;
    position: absolute;
    top: 0;
    width: 7.2vw;
}

@media (min-width: 768px) {
    .overview__list > li:before {
        background-size: 20px 16px;
        border-width: 2px;
        height: 31px;
        width: 31px;
    }
}

@media (min-width: 992px) {
    .overview__list > li:before {
        background-size: 24px 20px;
        height: 38px;
        width: 38px;
    }
}

.overview__fig {
    flex: 0 0 100%;
    min-width: 0px;
    text-align: center;
}

@media (min-width: 768px) {
    .overview__fig {
        align-self: flex-end;
        flex: 0 0 232px;
        padding: 0 0 12px 0;
        text-align: right;
    }
}

@media (min-width: 992px) {
    .overview__fig {
        flex: 0 0 290px;
    }
}

.overview__fig img {
    width: 42.6666666667vw;
}

@media (min-width: 768px) {
    .overview__fig img {
        width: 100%;
    }
}

.detail {
    overflow: hidden;
    position: relative;
}

.detail:before {
    background-image: url(../images/commons/com-shape-02.svg);
    background-position: center bottom;
    background-repeat: repeat-x;
    background-size: 512vw 10.6666666667vw;
    content: "";
    display: block;
    height: 10.6666666667vw;
    left: 0;
    margin: 0 auto;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: -0.2666666667vw;
    z-index: 1;
}

@media (min-width: 768px) {
    .detail:before {
        background-size: 1920px 40px;
        height: 40px;
        top: -1px;
    }
}

.detail:after {
    background-image: url(../images/commons/com-shape-01.svg);
    background-position: center bottom;
    background-repeat: repeat-x;
    background-size: 512vw 10.6666666667vw;
    bottom: -0.2666666667vw;
    content: "";
    display: block;
    height: 10.6666666667vw;
    left: 0;
    margin: 0 auto;
    pointer-events: none;
    position: absolute;
    right: 0;
    z-index: 1;
}

@media (min-width: 768px) {
    .detail:after {
        background-size: 1920px 40px;
        bottom: -1px;
        height: 40px;
    }
}

.detail-container {
    background-color: var(--color-cream);
    margin: 0 auto;
    max-width: 1535px;
    padding: 21.3333333333vw var(--c-pad);
    position: relative;
    width: 100%;
}

@media (min-width: 768px) {
    .detail-container {
        padding: 100px var(--c-pad) 120px;
    }
}

.detail__about {
    margin: 0 auto 21.3333333333vw;
    max-width: 1115px;
    width: 100%;
}

@media (min-width: 768px) {
    .detail__about {
        margin: 0 auto 110px;
    }
}

.detail__about__main {
    align-items: stretch;
    display: flex;
    flex-flow: row wrap;
    gap: 8vw 0;
}

@media (min-width: 768px) {
    .detail__about__main {
        flex-wrap: nowrap;
        gap: 0;
        margin: -8px 0 0;
    }
}

.detail__about__main__contents {
    flex: 0 0 100%;
    min-width: 0px;
    padding: 0;
}

@media (min-width: 768px) {
    .detail__about__main__contents {
        flex: 0 0 56%;
    }
}

.detail__about__main__contents__content p {
    font-size: var(--fs16);
    font-weight: 500;
    letter-spacing: 0.01em;
    line-height: 1.9;
    margin: 0;
}

@media (min-width: 768px) {
    .detail__about__main__contents__content p {
        font-size: var(--fs18);
    }
}

@media (min-width: 992px) {
    .detail__about__main__contents__content p {
        font-size: var(--fs20);
    }
}

.detail__about__main__fig {
    flex: 0 0 100%;
    min-width: 0px;
    position: relative;
    text-align: center;
}

@media (min-width: 768px) {
    .detail__about__main__fig {
        flex: 0 0 44%;
    }
}

@media (min-width: 768px) {
    .detail__about__main__fig img {
        max-width: 377px;
        position: absolute;
        right: 16px;
        top: 0;
    }
}

@media (min-width: 992px) {
    .detail__about__main__fig img {
        max-width: 464px;
    }
}

@media (min-width: 1240px) {
    .detail__about__main__fig img {
        max-width: 580px;
        top: -28px;
    }
}

.detail__service {
    margin: 0 0 21.3333333333vw;
    width: 100%;
}

@media (min-width: 768px) {
    .detail__service {
        margin: 0 0 100px;
    }
}

.detail__service__list {
    background-color: var(--color-white);
    border: 0.5333333333vw solid var(--color-onyx);
    border-radius: 4vw;
    margin: 0 auto 21.3333333333vw;
    max-width: 1115px;
    padding: 8vw 5.3333333333vw 8vw;
}

@media (min-width: 768px) {
    .detail__service__list {
        border-radius: 15px;
        border-width: 2px;
        margin: 0 auto 100px;
        padding: 40px 20px 30px;
    }
}

.detail__service__list-inner {
    margin: 0 auto;
    position: relative;
}

@media (min-width: 768px) {
    .detail__service__list-inner {
        max-width: 670px;
    }
}

@media (min-width: 992px) {
    .detail__service__list-inner {
        max-width: 920px;
    }
}

.detail__service__list ul {
    display: grid;
    gap: 8.5333333333vw 0;
    grid-gap: 8.5333333333vw 0;
    grid-template-columns: repeat(2, 1fr);
    list-style: none;
    margin: 0 0 5.3333333333vw;
    padding: 0;
    width: 100%;
}

@media (min-width: 768px) {
    .detail__service__list ul {
        gap: 32px 0;
        grid-template-columns: 24% 24% 27% 25%;
        margin: 0 0 50px;
        padding: 0 53px 0 0;
    }
}

@media (min-width: 992px) {
    .detail__service__list ul {
        padding: 0 70px 0 0;
    }
}

.detail__service__list ul > li {
    font-size: var(--fs17);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.4;
    margin: 0;
    padding: 0 0 0 9.8666666667vw;
    position: relative;
}

@media (min-width: 768px) {
    .detail__service__list ul > li {
        font-size: var(--fs21);
        padding: 0 0 0 39px;
    }
}

@media (min-width: 992px) {
    .detail__service__list ul > li {
        font-size: var(--fs26);
        padding: 0 0 0 52px;
    }
}

.detail__service__list ul > li:before {
    background-color: var(--color-peach);
    background-image: url(../images/icons/icon-black-check.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 4.5333333333vw 3.7333333333vw;
    border: 0.5333333333vw solid var(--color-onyx);
    border-radius: 50%;
    bottom: 0;
    content: "";
    display: block;
    height: 7.2vw;
    left: 0;
    margin: auto 0;
    position: absolute;
    top: 0;
    width: 7.2vw;
}

@media (min-width: 768px) {
    .detail__service__list ul > li:before {
        background-size: 18px 15px;
        border-width: 2px;
        height: 29px;
        width: 29px;
    }
}

@media (min-width: 992px) {
    .detail__service__list ul > li:before {
        background-size: 24px 20px;
        height: 38px;
        width: 38px;
    }
}

.detail__service__list em {
    display: block;
    font-size: var(--fs17);
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.4;
    text-align: center;
}

@media (min-width: 768px) {
    .detail__service__list em {
        bottom: 0;
        font-size: var(--fs21);
        position: absolute;
        right: 0;
    }
}

@media (min-width: 992px) {
    .detail__service__list em {
        font-size: var(--fs26);
    }
}

.detail__service__list p {
    font-size: var(--fs17);
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.4;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .detail__service__list p {
        font-size: var(--fs21);
    }
}

@media (min-width: 992px) {
    .detail__service__list p {
        font-size: var(--fs26);
    }
}

.detail__service__main {
    align-items: stretch;
    display: flex;
    flex-flow: row wrap;
    gap: 0;
    margin: 0 auto;
    max-width: 1195px;
}

.detail__service__main__contents {
    flex: 0 0 100%;
    min-width: 0px;
    padding: 0 0 0 5.3333333333vw;
}

@media (max-width: 767px) {
    .detail__service__main__contents {
        order: 1;
    }
}

@media (min-width: 768px) {
    .detail__service__main__contents {
        flex: 0 0 55%;
        padding: 0 0 0 40px;
    }
}

.detail__service__main__contents__title {
    font-size: var(--fs26);
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.35;
    margin: 0 0 6.4vw;
    padding: 4.2666666667vw 0 0;
    position: relative;
}

@media (min-width: 768px) {
    .detail__service__main__contents__title {
        font-size: var(--fs28);
        margin: 0 0 32px;
        padding: 20px 0 0;
    }
}

@media (min-width: 992px) {
    .detail__service__main__contents__title {
        font-size: var(--fs40);
    }
}

@media (min-width: 1240px) {
    .detail__service__main__contents__title {
        font-size: 2.625rem;
    }
}

.detail__service__main__contents__title:before {
    background-image: url(../images/commons/com-bracket-left-mb.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: 13.8666666667vw;
    left: -5.3333333333vw;
    position: absolute;
    top: 0;
    width: 5.6vw;
}

@media (min-width: 768px) {
    .detail__service__main__contents__title:before {
        background-image: url(../images/commons/com-bracket-left.svg);
        height: 82px;
        left: -40px;
        width: 32px;
    }
}

.detail__service__main__contents__content p {
    font-size: var(--fs16);
    font-weight: 500;
    letter-spacing: 0.01em;
    line-height: 1.9;
    margin: 0 0 2em;
}

@media (min-width: 768px) {
    .detail__service__main__contents__content p {
        font-size: var(--fs18);
    }
}

@media (min-width: 992px) {
    .detail__service__main__contents__content p {
        font-size: var(--fs20);
    }
}

.detail__service__main__contents__content p:last-child {
    margin-bottom: 0;
}

.detail__service__main__fig {
    flex: 0 0 100%;
    min-width: 0px;
    position: relative;
    text-align: center;
}

@media (max-width: 767px) {
    .detail__service__main__fig {
        order: 3;
    }
}

@media (min-width: 768px) {
    .detail__service__main__fig {
        flex: 0 0 45%;
    }
}

@media (min-width: 768px) {
    .detail__service__main__fig img {
        bottom: -40px;
        left: 20px;
        max-width: 440px;
        position: absolute;
    }
}

@media (min-width: 992px) {
    .detail__service__main__fig img {
        max-width: 495px;
    }
}

@media (min-width: 1240px) {
    .detail__service__main__fig img {
        bottom: -50px;
        left: 50px;
        max-width: 550px;
    }
}

.detail__service__main__content {
    flex: 0 0 100%;
    margin: 0 0 8vw;
    min-width: 0px;
    padding: 0 0 0 5.3333333333vw;
}

@media (max-width: 767px) {
    .detail__service__main__content {
        order: 2;
    }
}

@media (min-width: 768px) {
    .detail__service__main__content {
        margin: 50px 0 0;
        padding: 0 40px;
    }
}

@media (min-width: 768px) {
    .detail__service__main__content-inner {
        margin: 0 -40px 0 0;
    }
}

.detail__service__main__content p {
    font-size: var(--fs16);
    font-weight: 500;
    letter-spacing: 0.01em;
    line-height: 1.9;
    margin: 2em 0;
}

@media (min-width: 768px) {
    .detail__service__main__content p {
        font-size: var(--fs18);
    }
}

@media (min-width: 992px) {
    .detail__service__main__content p {
        font-size: var(--fs20);
    }
}

@media (min-width: 768px) {
    .detail__service__main__content p:first-child {
        margin-top: 0;
    }
}

.detail__service__main__content p:last-child {
    margin-bottom: 0;
}

.detail__other {
    margin: 0 auto;
    max-width: 1070px;
    width: 100%;
}

@media (min-width: 768px) {
    .detail__other {
        display: grid;
        gap: 54px;
        grid-gap: 54px;
        grid-template-columns: 1fr 1fr;
    }
}

.detail__other__item {
    margin: 0 0 21.3333333333vw;
}

.detail__other__item:last-child {
    margin-bottom: 0;
}

@media (min-width: 768px) {
    .detail__other__item {
        display: grid;
        gap: 0;
        grid-gap: 0;
        grid-row: span 3;
        grid-template-rows: subgrid;
        margin: 0;
    }
}

@media (min-width: 768px) {
    .detail__other__item .com-title {
        margin-bottom: 55px;
    }
}

.detail__other__item__content {
    margin: 0 auto 6.4vw;
}

@media (min-width: 768px) {
    .detail__other__item__content {
        margin: 0 auto 24px;
        max-width: 430px;
    }
}

.detail__other__item__content p {
    font-size: var(--fs16);
    font-weight: 500;
    letter-spacing: 0.025em;
    line-height: 1.66;
    margin: 0;
}

@media (min-width: 768px) {
    .detail__other__item__content p {
        font-size: var(--fs18);
    }
}

.detail__other__item__action {
    margin: 0 auto;
    width: 100%;
}

@media (min-width: 768px) {
    .detail__other__item__action {
        max-width: 424px;
    }
}

.detail__other__item__actions {
    align-items: flex-end;
    display: flex;
    flex-flow: column nowrap;
    gap: 4.2666666667vw;
    justify-content: stretch;
    margin: 0 auto;
    width: 100%;
}

@media (min-width: 768px) {
    .detail__other__item__actions {
        gap: 16px;
        justify-content: flex-end;
        max-width: 490px;
    }
}

@media (min-width: 992px) {
    .detail__other__item__actions {
        align-items: center;
        flex-direction: row;
    }
}

.detail__other__item__actions__item {
    flex: 0 0 calc(50% - 2.13333vw);
}

@media (min-width: 768px) {
    .detail__other__item__actions__item {
        flex: 0 0 auto;
    }
}

@media (min-width: 992px) {
    .detail__other__item__actions__item {
        flex: 0 0 calc(50% - 8px);
    }
}

@media (min-width: 992px) and (max-width: 1239px) {
    .detail__other__item__actions__item .com-button {
        font-size: var(--fs15);
        max-width: 100%;
        width: 100%;
    }
}

@media (min-width: 1240px) {
    .detail__other__item__actions__item .com-button {
        width: 100%;
    }
}