:root{
    --navy:#033E73;
    --lightBlue:#F3F8FF;
    --red:#DF221B;
    --gray:#E7E7E7;
    --yellow:#F4EF66;
    --green:#30d2b9;
}

*{
    font-weight: 400;
    font-family: "YakuHanJPs", "Zen Kaku Gothic New", sans-serif;
}
.clRed{ color: var(--red);}
.clYel{ color: var(--yellow);}
.clWhi{ color: white;}

.bgYel{ background: var(--yellow);}

.fs20{ font-size:clamp(1.25rem, 1.141rem + 0.538vw, 1.625rem); }
.fs28{ font-size: clamp(1.5rem, 1.354rem + 0.717vw, 2rem); }
.fontBold{ font-weight: 900;}


.block{ display: block;}
.palt{ font-feature-settings: "palt";}

.pc{ display: block;}
.sp{ display: none;}
@media (max-width: 768px) {
    .pc{ display: none;}
    .sp{ display: block;}
}








/*----------------------------------- 
      新パーツ: 油断していませんか？
------------------------------------*/


.yudan-midashi{
    color: var(--navy);
    font-size: 36px;
    text-align: center;
    font-weight: bold;
    letter-spacing: 0.1em;
}

.underline{
    max-width: 460px;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    display: block;
    margin-top: 20px;
    padding: 0 1rem;
}

.yudan_{
    background-color: var(--gray);
    padding-top: 120px;
}

.yudan_h3_1{
    color: var(--navy);
    font-size: 28px;
    font-weight: bold;
}

.yudan_h3_2{
    background-color: var(--red);
    color: white;
    font-weight: bold;
    font-size: 28px;
    padding: 0 7px 0 10px;
    margin-left: 4px;
}

.yudan_h3_3{
    color: var(--navy);
    font-size: 20px;
    display: block;
    margin-top: 6px;
}

.yudan_ h3{
    text-align: center;
}

.yudan_list{
    background-color: white;
    padding: 40px 30px 40px 30px;
    border-radius: 20px;
    margin-bottom: 40px;
    margin-top: 40px;

}

.yudan_waku{
    display: flex;
    margin: 30px 20px 30px 20px;
    gap: 20px;
}

.yudan_img1{
    height: auto;
    border-radius: 5%;
    margin: 30px 0 30px 0;
}

.yudan_check{
    width: 1em;
    height: auto;
    vertical-align: middle;
    margin-top: -10px;
}

.yudan_p_1{
    display: inline;
}

.yudan_li_p{
    margin-bottom: 15px;
}

.yudan_p_2{
    font-weight: bold;
    color: var(--navy);
    display: inline;
}

@media (max-width: 768px) {
    .yudan_waku{
        display: block;
    }
    .yudan-midashi{
        font-size: 20px;
    }
    .yudan_h3_1{
        font-size: 24px;
    }
    .yudan_h3_2{
        font-size: 24px;
    }
    .yudan_h3_3{
        font-size: 16px;
    }
    .yudan_p_1{
        font-size: 16px;
    }
    .yudan_p_2{
        font-size: 16px;

    }
}


/*----------------------------------- 
      新パーツ: 被害が大きくなる前に 
------------------------------------*/
.prevent_section{
    background: var(--lightBlue);
    padding: 80px 100px;
}

.prevent_img{
    max-width: 150px;
    height: auto;
}

.prevent_p_1{
    color: var(--navy);
    text-align: center;
    font-weight: bold;
    font-size: 16px;
}

.prevent_h2{
    text-align: center;
    margin-bottom: 15px;
    text-decoration-line: underline;   /* 下線を引く */
    text-decoration-color: var(--yellow);    /* 下線の色 */
    text-decoration-thickness: 3px;    /* 下線の太さ */
    text-underline-offset: 5px;  /* 下線の位置（文字との距離） */
}

.prevent_h2_1{
    text-align: center;
    font-weight: bold;
    font-size: 40px;
    transform: rotate(-5deg);
}

.prevent_h2_2{
    text-align: center;
    font-weight: bold;
    font-size: 28px;
}

.prevent_p_2{
    text-align: center;
    font-size: 16px;
}

.prevent_ul{
    display: flex;
    justify-content: center;
    margin: 50px;
}

.prevent_li{
    display: flex;
    width: 33%;
    flex-direction: column; /* ← 縦に並べる！ */
    align-items: center;    /* 中央寄せ（横方向） */
    justify-content: center;/* 必要なら縦方向の中央寄せも */
    text-align: center;     /* テキスト中央寄せ */
    padding: 20px;
    border-right: 1px dashed;
    
}

.prevent_li:last-child{
    border-right: none;
}

.prevent_p_3{
    text-align: center;
    font-size: 16px;
}

.prevent_p_4{
    font-weight: bold;
    color: var(--navy);
    font-size: 16px;
}

.prevent_h2:after {
    content: '';
    width: 500px;
    height: 20px;
    display: block;
    margin: -16px auto 0;
    background: var(--yellow);
}

@media (max-width: 768px){
    .prevent_ul{
        display: block;
        width: auto;
        margin: 20px 1rem 0;

    }
    .prevent_li{
        width: auto;
        border-right: none;
        border-bottom: 1px dashed;
    }

    .prevent_li:last-child{
    border-bottom: none;
    }

    .prevent_section{
        padding: 4rem 0;
    }

    .prevent_h2:after {
    content: '';
    width: 300px;
    height: 15px;
    display: block;
    margin: -16px auto 0;
    background: var(--yellow);
    }

    .prevent_h2_1{
        font-size: 20px;
    }

    .prevent_h2_2{
        font-size: 16px;
    }

    .prevent_p_2{
        font-size: 12px;
    }

    .prevent_p_3{
        font-size: 12px;
    }
}

/*----------------------------------- 
      新パーツ: 3つのメリット
------------------------------------*/
.merit_section{
    background: var(--green);
    padding: 100px 0 50px 0;
}

.merit_img{
    width: 70px;
}

.merit_h2{
    text-align: center;
}

.merit_h2_1{
    color: white;
}

.merit_h2_2{
    color: var(--yellow);
    font-size: 40px;
    font-weight: bold;
}

.merit_number{
    color: var(--green);
    font-weight: bold;
    font-size: 64px;
}

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

.merit_h3{
    font-weight: bold;
    margin-bottom: 30px;
    font-size: 24px;
}

.merit_waku{
    display: flex;
    gap: 20px;
    margin: 60px;
    justify-content: center;
}

.merit_li{
    background-color: white;
    border-radius: 20px;
    padding: 36px 36px 48px 36px;
    margin-bottom: 40px;
    max-width: 300px;
}


@media (max-width: 768px) {
    .merit_waku{
        display: block;
        margin:60px 1rem;
    }
    .merit_li{
        max-width: none;
        width: auto;
        padding: 36px 16px 48px;
    }
    .merit_h2_1{
        font-size: 20px;
    }
    .merit_h2_2{
        font-size: 28px;
    }
}






.l-header__logo {
    width: 135px;
}
.l-header__list li a {
    color: #000;
}

/*-----------------------------------
      アイキャッチ
------------------------------------*/
.mainWrap {
    position: relative;
    z-index: 3;
    top: 35%;
    left: 5%;
    padding-top: 3rem;
    transform: translateY(-35%);
    width: calc(100% - 10%);
}

.eyecatchSection {
    margin-top: -23px;
    height: 100vh;
    width: 100vw;
    position: relative;
    /* overflow: hidden; */

    & .phrase {
        max-width: 500px;
    }

    h2 > span {
        color: #0086b0;
        font-size: 52px;
        letter-spacing: -5px;
    }

    .subText {
        font-size: 20px;
    }

    & .logo {
        width: 70px;
        margin-right: 1rem;
    }

    .ctrBtn {
        margin: 0;
    }

    & .arrowIcon {
        width: 100px;
        margin: 0 1rem;
    }

    .dataWrap {
        display: flex;
        margin-top: 3rem;

        & li {
            width: 230px;
            padding: 0.5rem 0.5rem 1rem;
            margin-right: 1rem;
            text-align: center;
            border-radius: 150px;
            background: linear-gradient(120deg, #0D769C 0%, #0B5666 100%);
            border: 3px solid white;
            place-content: center;

            & .mainText {
                font-size: clamp(2rem, 1.927rem + 0.359vw, 2.25rem);
                line-height: 1;
            }

            & .titleText {
                font-size: 16px;
            }

            & .referenceMark {
                font-size: 10px;
            }
        }
    }

    & .referenceWrap {
        position: relative;
        z-index: 2;
    }

    & .reference {
        width: 70%;
        font-size: 12px;
        opacity: 0.7;
        word-wrap: break-word;
        line-height: 1;
        margin-top: 1rem;
    }

    & .ctrPart {
        position: absolute;
        z-index: 2;
        bottom: 0;
        left: 0;
        width: 100%;
        padding: 0rem 0 3rem 5%;
        margin-top: -1px;
        background: linear-gradient(90deg, #0B7595, #1177C5);

        & .ctrMain {
            display: flex;
            align-items: center;
        }

        & .curveBlu {
            position: absolute;
            bottom: 100%;
            left: 0;
            width: 100%;
            height: auto;
            display: block;
            pointer-events: none;
            bottom: calc(100% - 1px);
        }
    }

    .crisisWrap {
        position: absolute;
        z-index: 1;
        right: 5%;
        bottom: 0;
        width: 45vh;
        max-width: 550px;
    }
}

.eyecatchWrap {
    z-index: 0;
    position: relative;
    width: 100vw;
    height: 80vh;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;

    & .eyecatchPhoto {
        object-fit: cover;
        width: 100%;
        height: 100%;
    }

    &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(
            to right,
            white 0%,
            rgba(255, 255, 255, 0.6) 10%,
            rgba(255, 255, 255, 0.5) 35%,
            rgba(255, 255, 255, 0.3) 50%,
            rgba(255, 255, 255, 0) 100%
        );
        z-index: 1;
        pointer-events: none;
    }
}

.eyecatchBlue {
    position: absolute;
    bottom: 0;
    object-fit: cover;
    width: 100vw;
    height: auto;
    z-index: 0;
}

@media (min-width: 1200px) {
    .eyecatchSection {
        & h2 > span {
            font-size: 80px;
        }
    }
}

@media (max-width: 768px) {
    .l-drawer__icon--bar {
        background: #636363;
    }
    .c-btn.p-fv__btn.js-fixed.sp {
        opacity: 0;
        pointer-events: none;
        transition: opacity .3s ease;
    }

    .c-btn.p-fv__btn.js-fixed.sp.js-show {
        opacity: 1;
        pointer-events: auto;
    }
    .eyecatchSection {
        .mainWrap {
            text-align: center;
            top: 15%;
            transform: translateY(-15%);
        }

        .subText {
            font-size: clamp(1rem, 0.45rem + 2.709vw, 1.75rem);
        }

        h2 > span {
            font-size: clamp(2.25rem, 0.599rem + 8.126vw, 4.5rem);
        }

        .dataWrap {
            margin-top: 1rem;

            & li {
                margin-right: 5px;
                padding: 0.4rem 0.1rem 0.5rem;
                border-radius: 15px;

                & .titleText {
                    font-size: 14px;
                    letter-spacing: -2px;
                    line-height: 1.2;
                }

                & .mainText {
                    font-size: 18px;
                }
            }
        }

        & .ctrPart {
            text-align: center;
            padding-bottom: 1rem;

            & .reference {
                width: 100%;
            }

            & .referenceWrap {
                width: calc(100% - 5%);
            }

            & .crisisWrap {
                width: auto;
                height: 35vh;
            }

            & .ctrBtn {
                font-size: 16px;
                margin-top: 0.5rem;
            }

            & .ctrMain {
                margin-top: 0.5rem;
                flex-direction: column;
            }
        }
    }

    .eyecatchWrap {
        &::before {
            background: linear-gradient(
                to bottom,
                white 0%,
                rgba(255, 255, 255, 0.6) 20%,
                rgba(255, 255, 255, 0.8) 35%,
                rgba(255, 255, 255, 0.3) 70%,
                rgba(255, 255, 255, 0) 100%
            );
        }
    }

    @media (min-height: 950px) {
        .eyecatchSection {
            & .ctrPart {
                & .crisisWrap{
                    height: auto;
                    width: 100%;
                    right: 0;
                    left: 50%;
                    transform: translateX(-50%);
                    & img{
                        height: 40vh;
                        width: auto;
                    }
                }
            }
            @media (max-width: 520px) {
                & .dataWrap {
                    display: block;
                    & li {
                        margin-right: 0px;
                        margin-bottom: 5px;
                        width: 100%;
                        & br.sp{
                            display: none;
                        }
                    }
                }
            }
        }
    }

}


/*-----------------------------------
      データ漏えいセクション
------------------------------------*/
.yudan_transition_img {
    max-width: 500px;
    margin: auto;
    display: block;
}

.stripe-bg-resp {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: repeating-linear-gradient(150deg, #202020 0 53.5px, #000 53.5px 107px);

    &::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 30.575%;
        bottom: 31.795%;
        background: repeating-linear-gradient(
            150deg,
            #202020 0 calc(var(--stripe-period) * 0.5),
            #000000 calc(var(--stripe-period) * 0.5) var(--stripe-period)
        );
    }
}

.roeiData {
    position: relative;
    overflow: hidden;
    padding: 0rem 0 5rem 0;
    margin-top:-2px;

    .downArrowSvg {
        position: absolute;
    }

    & img {
        width: 100px;
        height: 100px;
    }

    & > *:not(.stripe-bg-resp) {
        position: relative;
        z-index: 1;
    }

    & .h2Wrap {
        display: flex;
        align-items: center;
        justify-content: center;
        padding-top: 5rem;
        color: white;
        font-size: clamp(1.5rem, 1.354rem + 0.717vw, 2rem);
    }
}

.examplePart {
    max-width: 500px;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.examplePartHeader {
    padding: 1rem;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
    background: #3f3f3f;

    .company {
        color: white;
    }

    h3 {
        font-size: clamp(1.25rem, 1.104rem + 0.717vw, 1.75rem);
        color: var(--yellow);
    }

    .cost {
        width: fit-content;
        background: var(--red);
        border-radius: 50px;
        margin: 1rem 0 0;
        padding: 5px 15px 5px 5px;
        display: flex;
        align-items: center;

        & .costLabel {
            color: var(--red);
            background: white;
            display: block;
            border-radius: 50px;
            padding: 5px 10px;
        }

        & .costNum {
            color: white;
            margin-left: 0.5rem;
        }
    }
}

.costExp {
    padding: 1rem 1rem 2rem;
    background: white;
    border-bottom-left-radius: 1rem;
    border-bottom-right-radius: 1rem;
    flex-grow: 1;
}

.roeiSwiper {
    width: 100%;
    padding: 4rem 0;

    & .swiper-wrapper {
        align-items: stretch;
    }

    & .swiper-slide {
        width: 80%;
        max-width: 500px;
        transition: transform 0.4s;
    }

    & .swiper-slide-prev,
    & .swiper-slide-next {
        opacity: 0.5;
        transform: scale(0.9);
    }

    & .swiper-slide-active {
        opacity: 1;
        transform: scale(1);
    }
}

.swiper-button-prev,
.swiper-button-next {
    color: white;
}
@media (max-width: 768px) {
    .roeiData {
        & .h2Wrap {
            flex-direction: column;
            padding: 1rem;
            text-align: center;
            & img{
                margin: 15px auto -10px;
            }
        }
    }
    .roeiSwiper{
        padding-top: 2rem;
    }
}

/*-----------------------------------
      CTR
------------------------------------*/
.ctrInner {
    max-width: 1000px;
    margin: 0 auto;
}

.ctrSection {
    padding: 3rem 0 0;
    position: relative;
    overflow: hidden;

    & h2 {
        border-radius: 10px;
        width: 80vw;
        max-width: 1000px;
        padding: 1rem;
        margin: 0 auto 2rem;
        text-align: center;
    }

    .ctrMain {
        display: flex;
        justify-content: center;
        align-items: center;
        padding-bottom: 3rem;
        margin-left: -10%;

        & .fs28 {
            letter-spacing: -3px;
        }
    }

    .ctrBtn {
        .return {
            display: none;
        }
    }

    & img {
        z-index: 0;

        &.ctrDocument {
            width: 15%;
            max-height: 200px;
            object-fit: contain;
        }

        &.ctrPerson {
            width: 235px;
            height: auto;
            position: absolute;
            bottom: 0;
            right: 5%;
            object-fit: contain;
        }
    }

    & > *:not(.stripe-blue) {
        position: relative;
        z-index: 1;
    }
}

@media (max-width: 768px) {

    .ctrMain {
        .dot {
            display: none;
        }
    }
}

.underBubble {
    position: relative;

    & ::after {
        content: "";
        position: absolute;
        bottom: -10px;
        left: 85%;
        transform: translateX(-50%);
        border-width: 10px 10px 0 10px;
        border-style: solid;
        border-color: var(--yellow) transparent transparent transparent;
    }
}

.stripe-blue {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: repeating-linear-gradient(
            150deg,
            rgba(255, 255, 255, 0.15) 0 80px,
            transparent 80px 160px
        ),
        linear-gradient(100deg, #1394bb 0%, #0084d2 100%);
}

.ctrBtn {
    background: linear-gradient(45deg, #f47e69, #f2233b);
    padding: 1rem 2rem;
    font-size: 20px;
    color: white;
    font-weight: 700;
    border-radius: 50px;
    margin-top: 1.5rem;
    filter: drop-shadow(0px 6px 0px #a42231);
}

@media (min-width: 769px) and (max-width: 1100px) {
    .ctrSection {
        & img.ctrPerson {
            width: 200px;
        }
    }
}

@media (max-width: 768px) {
    .ctrSection {
        & h2 {
            width: calc(100% - 2rem);
            margin-left: 1rem;
            margin-right: 1rem;
            letter-spacing: -2px;
        }

        & .ctrMain {
            margin: 0 1rem;
            text-align: center;
        }

        .underBubble {
            & ::after {
                left: 50%;
            }
        }

        & img.ctrPerson {
            width: 100px;
        }
        & .ctrBtn {
            font-size: 16px;
        }
    }
}
