@charset "utf-8";

/*    ------------------------------------------------
headerArea
------------------------------------------------    */

.headerNavDetailTrigger {
    display: inline;
    position: relative;
}

.headerNavDetailTrigger::after {
    content: "\f107";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;

    margin-left: 8px;
    font-size: 14px;
    color: #555555;
}

.headerNavDetailTrigger:before {
    content: "";
    position: absolute;
    bottom: -16px;
    z-index: 2;
    width: 100%;
    height: 4px;
    background-color: #369ddc;
    transition: transform 0.3s ease;
    transform: scaleX(0);
}

.headerNavDetailTrigger.active:before {
    transform: scaleX(1);
}

.headerNavDetail {
    display: none;
    position: absolute;
    top: 80px;
    left: 0;
    width: 100%;
    height: 120px;
    background: rgba(255, 255, 255, 0.97);
}

.headerArea .headerNavDetail .secInner {
    justify-content: center;
}

.headerNavDetailBox {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.headerNavDetailBlock {
    margin: 0 40px;
}

.headerNavDetailBlock a {
    font-size: 14px;
    text-decoration: none;
}



/*    ------------------------------------------------
mainVisualArea
------------------------------------------------    */
.mainVisualArea {
    display: flex;
    position: relative;
    overflow: hidden;
    align-items: center;
    z-index: 0;
    height: 540px;
    background: #369ddc;
    color: #ffffff;
}

.mainVisualArea::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    transform: skewY(-30deg) translateY(-50px);
    transform-origin: top right;
    z-index: -1;
    width: 100%;
    height: 120%;
    background: #4cb2f0;
}

.mainVisualArea .secInner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mainVisualCatchcopy {
    width: 14em;
    line-height: 1.3;
    font-size: 40px;
    font-weight: bold;
    text-align: justify;
    text-justify: inter-ideograph;
    letter-spacing: -0.01em;
}

@media (max-width:750px) {
    .mainVisualArea {
        height: auto;
    }

    .mainVisualArea::after {
        top: 25%;
    }

    .mainVisualCatchcopy {
        margin: 0 auto;
        line-height: 1.4;
        font-size: 21px;
        font-size: 5.6vw;
    }

    .cvContentsWrap {
        margin: 0 3%;
        width: auto;
    }

    .mainVisualImg {
        width: 60%;
        margin: 16px auto 0;
    }
}

/*    ------------------------------------------------
reduceQuestionArea
------------------------------------------------    */

.reduceQuestionBox {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 40px;
}

.reduceQuestionBlock {
    margin-top: 136px;
    width: 300px;
    padding: 48px 24px;
    background: #ffffff;
}

.reduceQuestionImg {
    margin: -144px auto 0;
    height: 120px;
    text-align: center;
}

.reduceQuestionImg img {
    width: auto;
    height: inherit;
}

.reduceQuestionTtl {
    padding-bottom: 24px;
    margin-top: 24px;
    text-align: center;
    font-size: 24px;
    font-weight: bold;
    color: #369ddc;
}

.reduceQuestionDetail {
    margin-top: 40px;
    text-align: center;
    font-size: 16px;
}

.reduceQuestionListBox {
    display: table;
    margin: 0 auto;
}

.reduceQuestionList {
    margin-top: 16px;
    padding-left: 1em;
    line-height: 1.3;
    text-align: left;
}

.reduceQuestionList:first-child {
    margin-top: 0;
}

.reduceQuestionList::before {
    content: "・";
    margin-left: -1em;
}

@media (max-width:750px) {
    .reduceQuestionBox {
        margin-top: 0;
    }

    .reduceQuestionBlock {
        margin-top: 72px;
        width: 48%;
        padding: 24px 16px;
    }

    .reduceQuestionImg {
        margin: -72px auto 0;
        height: 80px;
    }

    .reduceQuestionImg img {
        width: auto;
        max-width: 100%;
    }

    .reduceQuestionTtl {
        padding-bottom: 8px;
        margin-top: 16px;
        font-size: 16px;
    }

    .reduceQuestionDetail {
        margin-top: 24px;
        font-size: 14px;
    }
}

/*    ------------------------------------------------
reduceAnswerArea
------------------------------------------------    */
.reduceAnswerArea {
    position: relative;
    background: #369ddc;
    color: #ffffff;
}

.reduceAnswerArea::before {
    content: "";
    position: absolute;
    top: -40px;
    right: 0;
    left: 0;
    margin: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 80px 80px 0 80px;
    border-color: #fcbc0d transparent transparent transparent;
}

.reduceAnswerBox {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 40px;
    line-height: 1;
    color: #333333;
    text-align: center;
}

.reduceAnswerBlock {
    position: relative;
    margin-top: 40px;
    width: 300px;
    padding: 0;
}

.reduceAnswerBlock::before {
    content: "";
    display: block;
    padding-bottom: 100%;
}

.reduceAnswerWrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
}

.js-bgGraph {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.reduceAnswerGraphInner {
    display: flex;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 80%;
    height: 80%;
    border-radius: 50%;
    background: #ffffff;
}

.reduceAnswerTtl {
    font-size: 22px;
}

.reduceAnswerImg {
    margin-top: 20px;
    height: 60px;
}

.reduceAnswerImg img {
    width: auto;
    height: inherit;
}

.reduceAnswerBlock .largeTxt {
    font-size: 60px;
}

.reduceAnswerSupplementTxt {
    margin-top: 40px;
    text-align: right;
    font-size: 14px;
}

@media (max-width:750px) {
    .reduceAnswerArea::before {
        top: -20px;
        border-width: 40px 40px 0 40px;
    }

    .reduceAnswerBox {
        margin-top: 8px;
    }

    .reduceAnswerBlock {
        margin-top: 24px;
        width: 48%;
    }

    .reduceAnswerGraph {
        transform: scale(1.14);
    }

    .reduceAnswerTtl {
        font-size: 12px;
        font-size: 3.2vw;
        letter-spacing: -0.04em;
    }

    .reduceAnswerImg {
        margin-top: 6%;
        height: 40px;
        height: 10.667vw;
    }

    .reduceAnswerDetail {
        margin-top: 2%;
        font-size: 12px;
        font-size: 3.2vw;
    }

    .reduceAnswerBlock .largeTxt {
        font-size: 32px;
        font-size: 8.533vw;
    }

    .reduceAnswerSupplementTxt {
        margin-top: 24px;
        text-align: left;
        font-size: 12px;
    }
}

/*    ------------------------------------------------
aboutArea
------------------------------------------------    */
.aboutBox {
    display: flex;
}

.aboutMain {
    width: 50%;
    padding: 40px 32px;
    background: #369ddc;
    color: #ffffff;
}

.aboutHd {
    margin-bottom: 40px;
    font-size: 30px;
    font-weight: bold;
}

.aboutLead {
    margin-top: 1em;
    font-size: 16px;
}

.aboutSub {
    width: 50%;
    padding: 24px 32px;
    background: #ffffff;
}

.meritArea {
    margin-top: 80px;
}

.meritBox {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 40px;
}

.meritBlock {
    margin-top: 40px;
    width: 480px;
    padding: 32px;
    background: #ffffff;
}

.meritTtlWrap {
    display: flex;
    justify-content: space-between;
}

.meritTtl {
    font-size: 22px;
    font-weight: bold;
    color: #369ddc;
}

.meritTtl.underLine::after {
    left: auto;
    transform: none;
}

.meritTtlImg {
    width: 150px;
}

.meritTxt {
    margin-top: 16px;
    font-size: 16px;
}

@media (max-width:750px) {
    .aboutBox {
        display: block;
    }

    .aboutMain {
        width: 100%;
        padding: 24px 16px;
    }

    .aboutHd {
        margin-bottom: 16px;
        font-size: 20px;
    }

    .aboutLead {
        margin-top: 1em;
        font-size: 16px;
    }

    .aboutSub {
        width: 100%;
        padding: 24px 16px;
    }

    .meritArea {
        margin-top: 80px;
    }

    .meritBox {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        margin-top: 16px;
    }

    .meritBlock {
        margin-top: 24px;
        width: 100%;
        padding: 24px 16px;
    }

    .meritTtlWrap {
        display: block;
    }

    .meritTtl {
        text-align: center;
        font-size: 18px;
    }

    .meritTtl.underLine::after {
        left: 50%;
        transform: translate(-50%);
    }

    .meritTtlImg {
        width: 200px;
        margin: 32px auto 0;
    }

    .meritTxt {
        margin-top: 16px;
        font-size: 16px;
    }
}

/*    ------------------------------------------------
reasonArea
------------------------------------------------    */
.reasonBox {
    margin-top: 80px;
}

.reasonBlock {
    margin-top: 40px;
    padding: 32px;
    background: #ffffff;
}

.reasonTtlWrap {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.reasonTtl {
    display: flex;
    align-items: center;
    font-size: 30px;
    color: #369ddc;
}

.reasonTtlNum {
    margin-right: 40px;
    line-height: 1.2;
    font-size: 60px;
}

.reasonTtlNum.underLine::after {
    margin-top: 0;
    width: 100%;
}

.reasonTtlImg {
    width: 180px;
}

.reasonTxt {
    margin-top: 16px;
    font-size: 16px;
}

.reasonDetail {
    margin-top: 40px;
}

.reasonListBox {
    display: flex;
    justify-content: space-between;
}

.reasonListBLock {
    width: 296px;
    padding: 32px;
    background: #c2e6ff;
}

.reason02 .reasonListBLock {
    width: 456px;
}

.reasonImg {
    text-align: center;
}

.reason01Img {
    width: 100px;
}

.reason01Txt {
    margin-top: 16px;
    text-align: center;
    font-weight: bold;
}

.reasonAucfanRobo {
    background: #369ddc;
    color: #ffffff;
}

.reason02 .reasonListBLock {
    position: relative;
    width: 456px;
    padding-bottom: 400px;
}

.reason02Img {
    position: absolute;
    bottom: 32px;
    width: calc(100% - 64px);
    padding: 24px;
    background: #ffffff;
}

.reason02Ttl {
    text-align: center;
    font-size: 26px;
    font-weight: bold;
}

.reason02Txt {
    margin-top: 24px;
    font-size: 16px;
}

.reason03SubTtl {
    margin: -48px 0 0;
    padding: 8px;
    background: #369ddc;
    line-height: 1.1;
    text-align: center;
    color: #ffffff;
    font-size: 16px;
}

.reason03Ttl {
    margin-top: 16px;
    text-align: center;
    font-weight: bold;
}

.reason03Img {
    margin-top: 16px;
}

.reason03Txt {
    margin-top: 16px;
    font-size: 16px;
}

.reason03List {
    margin-top: 8px;
}

.reason03ListTtl {
    font-size: 16px;
}

.reason03ListTxt {
    position: relative;
    margin-top: 4px;
    padding-left: 1em;
    font-size: 14px;
    line-height: 1.3;
}

.reason03ListTxt::before {
    content: '-';
    position: absolute;
    left: 4px;
}

@media (max-width:750px) {
    .reasonBox {
        margin-top: 32px;
    }

    .reasonBlock {
        margin-top: 24px;
        padding: 24px 16px;
    }

    .reasonTtlWrap {
        display: block;
    }

    .reasonTtl {
        display: block;
        text-align: center;
        font-size: 18px;
    }

    .reasonTtlNum {
        margin-right: 0;
        line-height: 1.4;
        font-size: 36px;
    }

    .reasonTtlNum.underLine::after {
        margin-top: 0;
        width: 100%;
    }

    .reasonTtlImg {
        width: 180px;
        margin: 16px auto 0;
    }

    .reasonTxt {
        margin-top: 16px;
        font-size: 16px;
    }

    .reasonTtl .emphasisTxt {
        display: block;
        margin-top: 16px;
        font-size: 22px;
    }

    .reasonDetail {
        margin-top: 0;
    }

    .reasonListBox {
        display: block;
    }

    .reasonListBLock {
        margin-top: 24px;
        width: 100%;
        padding: 24px 16px;
    }

    .reason01 .reasonListBLock {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .reason02 .reasonListBLock {
        width: 100%;
    }

    .reasonImg {
        width: 30%;
    }

    .reason01Img {
        width: 100%;
    }

    .reason01Txt {
        margin-top: 0;
        width: 65%;
        font-size: 16px;
    }

    .reason02 .reasonListBLock {
        padding-bottom: 24px;
    }

    .reason02Img {
        position: static;
        margin-top: 16px;
        width: 100%;
        padding: 16px;
    }

    .reason02Ttl {
        font-size: 20px;
    }

    .reason02Txt {
        margin-top: 16px;
    }

    .reason03 .reasonListBLock {
        margin-top: 40px;
    }

    .reason03SubTtl {
        margin: -40px 0 0;
        font-size: 16px;
    }

    .reason03Ttl {
        font-size: 20px;
    }

    .reason03Img {
        margin-top: 16px;
    }

    .reason03Txt {
        margin-top: 16px;
        font-size: 16px;
    }
}

/*    ------------------------------------------------
eitherArea
------------------------------------------------    */
.eitherTable {
    display: flex;
    margin-top: 80px;
}

@media (max-width:750px) {
    .eitherTable {
        display: flex;
        position: relative;
        margin-top: 32px;
        padding-top: 80%;
    }

    .eitherTableHd {
        position: absolute;
        top: 0;
        left: 0;
        width: 30%;
    }

    .eitherTableDetail {
        overflow-x: scroll;
        position: absolute;
        top: 0;
        left: 30%;
        width: 70%;
    }

    .eitherTableDetailImg {
        width: 142.8%;
    }

    .eitherTableScrollWrap {
        position: relative;
        margin-top: 24px;
    }

    .eitherTableScroll {
        display: inline-block;
        overflow: hidden;
        position: absolute;
        right: 0;
        bottom: 0;
        z-index: 2;
        width: 100%;
        line-height: 1;
        text-align: right;
        font-size: 11px;
    }

    .eitherTableScroll::before {
        content: "";
        position: absolute;
        top: 50%;
        right: 35%;
        width: 65%;
        height: 1px;
        background: #dddddd;
    }

    .eitherTableScroll::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 35%;
        width: 65%;
        height: 1px;
        background: #aaaaaa;
        animation: line 1.5s cubic-bezier(1, 0, 0, 1) infinite reverse;
    }

    @keyframes line {
        0% {
            transform: scale(0, 1);
            transform-origin: 0 0;
        }

        50% {
            transform: scale(1, 1);
            transform-origin: 0 0;
        }

        50.1% {
            transform: scale(1, 1);
            transform-origin: 100% 0;
        }

        100% {
            transform: scale(0, 1);
            transform-origin: 100% 0;
        }
    }
}

/*    ------------------------------------------------
documentArea
------------------------------------------------    */
.documentListBox {
    display: flex;
    flex-wrap: wrap;
    margin-top: 40px;
    margin-left: -24px;
}

.documentListBlock {
    display: flex;
    flex-direction: column;
    margin-top: 24px;
    margin-left: 24px;
    width: 317px;
    padding: 24px;
    background: #e5edf0;
}

.documentListName {
    flex: 1;
    margin-top: 16px;
    line-height: 1.4;
    font-size: 16px;
    font-weight: bold;
    text-align: center;
}

.documentListDescription {
    margin-top: 16px;
    font-size: 14px;
}

.documentListBtnWrap {
    margin: 16px 16px 0;
}

.documentListBtn {
    display: block;
    padding: 4px;
    border-radius: 24px;
    text-align: center;
    text-decoration: none;
    font-size: 14px;
}

@media (max-width:750px) {
    .documentListBox {
        margin-top: 0;
        margin-left: 0;
    }

    .documentListBlock {
        display: block;
        width: 100%;
        margin-left: 0;
    }

    .documentListBtn {
        padding: 8px 0;
    }

}

/*    ------------------------------------------------
caseArea
------------------------------------------------    */
.caseArea {
    background: #ffffff;
}

.caseArea .secLead {
    margin-top: 80px;
}

.caseArea .secHd {
    margin-top: 0;
}

.caseListBox {
    display: flex;
    flex-wrap: wrap;
    margin-top: 56px;
    margin-left: -24px;
}

.caseListBlock {
    margin-top: 24px;
    margin-left: 24px;
    width: 317px;
    background: #f1f6f8;
}

.caseListBoxLink {
    display: flex;
    flex-direction: column;
    padding: 16px;
    text-decoration: none;
}

.caseListImg {
    margin: -16px -16px 0;
}

.caseListImg img {
    height: 176px;
    object-fit: cover;
}

.caseListName {
    flex: 1;
    margin-top: 14px;
    height: 100%;
    min-height: 0%;
    font-size: 16px;
}

.caseListNote {
    flex: 2;
    margin-top: 8px;
    height: 100%;
    min-height: 0%;
    line-height: 1.4;
    font-size: 16px;
    font-weight: bold;
}

.caseListProfileBox {
    flex: 3;
    margin-top: 16px;
}

.caseListProfileBlock {
    display: flex;
    align-items: baseline;
    margin-top: 8px;
}

.caseListProfileBoxHd {
    margin-right: 8px;
    min-width: 6em;
    padding: 2px 4px;
    background: #369ddc;
    color: #ffffff;
    font-size: 14px;
    text-align: center;
}

.caseListProfileBoxTxt {
    font-size: 14px;
    line-height: 1.2;
}

.caseListBox .annotationTxt {
    margin-top: 8px;
    font-size: 12px;
}

@media (max-width:750px) {
    .caseArea .secInner {
        width: auto;
        padding: 40px 16px;
    }

    .caseListBox {
        flex-wrap: nowrap;
        margin-top: 0;
        margin-left: 0;
    }

    .caseListBlock {
        display: block;
        width: 100%;
        margin-left: 0;
    }

    .caseListBoxLink {
        padding: 16px 32px;
    }

    .caseListImg {
        margin: -16px -32px 0;
    }

    .caseListName {
        height: auto;
    }

    .caseListNote {
        height: auto;
    }

    .caseArea .caseSlider {
        overflow: hidden;
        padding-bottom: 40px;
    }

    .caseArea .swiper-button-next,
    .caseArea .swiper-rtl .caseArea .swiper-button-prev {
        right: 0;
    }

    .caseArea .swiper-button-prev,
    .caseArea .swiper-rtl .caseArea .swiper-button-next {
        left: 0;
    }

    .swiper-button-prev,
    .swiper-rtl .swiper-button-next,
    .swiper-button-next,
    .swiper-rtl .swiper-button-prev {
        transform: scale(0.6);
    }

}

/*    ------------------------------------------------
faqArea
------------------------------------------------    */
.faqArea {
    background: #ffffff;
}

.faqBlock {
    margin-top: 80px;
}

.faqQuestion {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    margin-top: 40px;
    padding: 32px 64px 32px 120px;
    background: #369ddc;
    line-height: 1.3;
    font-size: 24px;
    font-weight: bold;
    color: #ffffff;
    cursor: pointer;
}

.faqQuestion::before,
.faqAnswer::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 32px;
    margin: auto;
    width: 60px;
}

.faqQuestion::before {
    height: 60px;
    background: url(../image/index/index_faq_question.png) no-repeat;
    background-size: contain;
}

.faqAnswer::after {
    height: 57px;
    background: url(../image/index/index_faq_answer.png) no-repeat;
    background-size: contain;
}

.toggleIcon {
    position: absolute;
    right: 30px;
    width: 22px;
    height: 3px;
    background: #ffffff;
}

.toggleIcon::before {
    content: "";
    position: absolute;
    top: -9px;
    right: 9px;
    width: 3px;
    height: 22px;
    background: #ffffff;
}

.on .toggleIcon::before {
    display: none;
}

.faqAnswer {
    display: none;
    position: relative;
    padding: 24px 32px 24px 120px;
    background: #f1f6f8;
}

.faqAnswerNote {
    display: inline-block;
    margin: 16px 0;
    padding: 16px;
    background: #ffffff;
}

@media (max-width:750px) {
    .faqBlock {
        margin-top: 32px;
    }

    .faqQuestion {
        margin-top: 24px;
        padding: 16px 40px 16px 68px;
        font-size: 15px;
    }

    .faqQuestion::before {
        left: 16px;
        width: 40px;
        height: 40px;
    }

    .toggleIcon {
        right: 16px;
        width: 16px;
        height: 2px;
    }

    .toggleIcon::before {
        top: -7px;
        right: 7px;
        width: 2px;
        height: 16px;
    }

    .faqAnswer {
        padding: 16px 16px 16px 68px;
    }

    .faqAnswer::after {
        top: 16px;
        left: 16px;
        margin: unset;
        width: 40px;
        height: 40px;
    }

    .faqAnswerNote {
        width: 100%;
    }
}

/*    ------------------------------------------------
flowArea
------------------------------------------------    */
.flowArea {
    background: #f1f6f8;
}

.flowBlockWrap {
    margin: 80px auto 0;
    width: 800px;
}

.flowBlock {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.flowBox {
    display: flex;
    position: relative;
    justify-content: space-between;
    margin-top: 64px;
    width: 100%;
    padding: 32px;
    background: #ffffff;
}

.flowBox:first-child {
    margin-top: 0;
}

.flowBox::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -48px;
    left: 0;
    margin: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 32px 28px 0 28px;
    border-color: #fcbc0d transparent transparent transparent;
}

.flowBox:last-child::after {
    display: none;
}

.flowDetail {
    padding-right: 24px;
}

.flowHdWrap {
    display: flex;
    align-items: center;
}

.flowNum {
    margin-right: 40px;
    font-size: 24px;
    font-weight: bold;
    color: #369ddc;
}

.flowNum.underLine::after {
    margin-top: 0;
    width: 100%;
}

.flowHd {
    font-size: 24px;
    font-weight: bold;
    color: #369ddc;
}

.flowImg {
    width: 212px;
}

.flowTxt {
    margin-top: 24px;
    font-size: 16px;
}

@media (max-width:750px) {
    .flowBlockWrap {
        margin-top: 32px;
        width: auto;
    }

    .flowBlock {
        display: block;
    }

    .flowBox {
        display: block;
        padding: 24px 16px;
    }

    .flowBox:last-child::after {
        display: none;
    }

    .flowDetail {
        padding-right: 0;
    }

    .flowHdWrap {
        align-items: baseline;
    }

    .flowNum {
        margin-right: 24px;
        font-size: 20px;
    }

    .flowHd {
        line-height: 1.3;
        font-size: 20px;
    }

    .flowImg {
        margin-top: 24px;
        width: 100%;
    }

    .flowTxt {
        margin-top: 16px;
    }
}