@charset "utf-8";
#main_img {
    background-color: rgb(255, 255, 255, 0);
    border: none;
    padding: 0;
    position: relative;
    z-index: 3;
}
#internship {
    margin-top: -50px;
    .copy {
        position: relative;
        &::before,
        &::after {
            content: "";
            display: block;
            width: 100%;
            aspect-ratio: 2000/1123;
            background: url(../images/cecis_hhp.png) center center/cover no-repeat;
        }
        &::after {
            background-image: url(../../images/cec0dot.svg);
            background-size: 24px auto;
            background-repeat: repeat;
            position: absolute;
            top: 0;
            left: 0;
            z-index: 2;
        }
        >.area {
            margin-top: 30px;
            .box {
                font-size: 1.4rem;
                font-weight: bold;
                color: var(--color_red);
            }
            ul.link {
                margin-top: 30px;
                display: flex;
                flex-flow: wrap;
                row-gap: 10px;
                >li {
                    width: 100%;
                    >a {
                        display: flex;
                        justify-content: flex-start;
                        align-items: center;
                        height: 90px;
                        border: 2px solid var(--color_red);
                        background-color: var(--color_red);
                        color: #FFFFFF;
                        padding: 12px;
                        position: relative;
                        p {
                            display: flex;
                            flex-flow: column;
                            align-items: center;
                            justify-content: center;
                            row-gap: 8px;
                            font-size: 1.8rem;
                            font-weight: bold;
                            line-height: 1.3;
                            text-align: center;
                        }
                        .arrow {
                            position: absolute;
                            background-color: rgb(255, 255, 255);
                            right: 0px;
                            bottom: 0px;
                            aspect-ratio: 1 / 1;
                            width: 40px;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            &::before {
                                content: "";
                                display: block;
                                aspect-ratio: 59 / 50;
                                width: 14px;
                                mask: url(../../common/images/cecyaji1.svg) center / 100% no-repeat;
                                background: var(--color_red);
                                transition: var(--duration) all;
                                margin: 0;
                            }
                        }
                    }
                }
            }
        }
    }
    .download {
        margin-top: 20px;
        a {
            display: flex;
            justify-content: flex-start;
            align-items: center;
            height: 90px;
            border: 2px solid var(--color_red);
            background-color: #FFFFFF;
            color: var(--color_red);
            padding: 12px;
            position: relative;
            p {
                display: flex;
                flex-flow: column;
                align-items: center;
                justify-content: flex-start;
                row-gap: 8px;
                font-size: 1.8rem;
                font-weight: bold;
                line-height: 1.3;
            }
            .icon {
                position: absolute;
                background-color: var(--color_red);
                right: 0px;
                bottom: 0px;
                aspect-ratio: 1 / 1;
                width: 40px;
                display: flex;
                justify-content: center;
                align-items: center;
                &::before {
                    content: "";
                    display: block;
                    aspect-ratio: 89 / 75;
                    width: 14px;
                    mask: url(../../common/images/cectab.svg) center / 100% no-repeat;
                    background: #FFFFFF;
                }
            }
        }
    }
    @media only screen and (min-width:768px) {
        .copy {
            padding-top: calc(80px + 50px);
            padding-bottom: 80px;
            background: url(../images/cecis_hhp.png) center center/cover no-repeat;
            &::before {
                background-size: 0;
                background:linear-gradient(to right, rgb(0, 0, 0, 0.0), rgb(0, 0, 0, 0.4));
                position: absolute;
                top: 0;
                left: 0;
                height: 100%;
                width: 100%;
            }
            &::after {
                height: 100%;
            }
            >.area {
                margin-top: 0;
                position: relative;
                z-index: 3;
                .box {
                    color: #FFFFFF;
                    font-size: 1.8rem;
                    text-align: center;
                    text-shadow: 1px 1px 10px rgb(0, 0, 0, 0.3);
                }
                ul.link {
                    margin-top: 35px;
                    justify-content: center;
                    >li {
                        width: calc(480/980 * 100%);
                        a {
                            border-color: #FFFFFF;
                        }
                    }
                }
            }
        }
        .download {
            display: flex;
            flex-flow: wrap;
            justify-content: center;
            a {
                width: calc(480 / 980 * 100%);
            }
        }
    }
    dl.content {
        margin-top: 60px;
        display: flex;
        flex-flow: column;
        row-gap: 60px;
        >.block {
            display: flex;
            flex-flow: column;
            row-gap: 20px;
            >dt {
                text-align: center;
                img {
                    box-shadow: var(--base_shadow);
                }
            }
            &.program > dt img {
                width: calc(243/352 * 100%);
            }
            &.schedule > dt img {
                width: calc(203/352 * 100%);
            }
        }
        .step {
            display: grid;
            grid-template-columns: repeat(2, calc(50% - 15px/2));
            gap: 15px 15px;
            >a {
                grid-row: span 4;
                gap: 0;
                display: grid;
                grid-template-rows: subgrid;
                background-color: #FFFFFF;
                border: 2px solid var(--color_red);
                padding-top: 8px;
                >.title {
                    display: flex;
                    flex-flow: wrap;
                    justify-content: center;
                    >span {
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        width: 95px;
                        height: 22px;
                        font-size: 1.2rem;
                        background-color: var(--color_red);
                        color: #FFFFFF;
                        border-radius: 22px;
                    }
                }
                >.img {
                    margin-top: 20px;
                    text-align: center;
                    >img {
                        width: calc(106/165 * 100%);
                    }
                }
                >p {
                    margin: 20px auto 0 auto;
                    width: calc(100% - 12px*2);
                    font-size: 1.4rem;
                    line-height: 1.6;
                    color: #000000;
                }
                >.anchor {
                    display: flex;
                    flex-flow: wrap;
                    justify-content: center;
                    align-items: center;
                    background-color: var(--color_red);
                    color: #FFFFFF;
                    margin-top: 8px;
                    padding: 10px 12px 10px 12px;
                    text-align: center;
                    line-height: 1.6;
                }
            }
        }
        dl.day {
            display: flex;
            flex-flow: column;
            row-gap: 40px;
            padding-top: 20px;
            position: relative;
            &::before {
                content: "";
                display: block;
                height: 100%;
                width: 2px;
                background-color: var(--color_red);
                position: absolute;
                top: 0;
                left: calc(9px - 1px);
            }
            >.block {
                display: flex;
                flex-flow: wrap;
                row-gap: 20px;
                >dt {
                    width: 100%;
                    position: relative;
                    padding-left: calc((352 - 314)/352 * 100%);
                    &::before {
                        content: "";
                        display: block;
                        aspect-ratio: 1/1;
                        width: 18px;
                        border-radius: 100%;
                        background-color: var(--color_red);
                        position: absolute;
                        left: 0;
                        top: 0.15em;
                    }
                    >.days {
                        font-size: 2.4rem;
                        font-weight: bold;
                        color: var(--color_red);
                        line-height: 1;
                    }
                    >ul.list {
                        margin-top: 12px;
                    }
                }
                >dd {
                    margin-left: auto;
                    width: calc(314/352 * 100%);
                    padding: 20px 0 20px 0;
                    background-color: #FFFFFF;
                    >.box {
                        display: flex;
                        flex-flow: column;
                        row-gap: 15px;
                        width: calc(274/314 * 100%);
                        margin: 0 auto 0 auto;
                        &:nth-of-type(n+2) {
                            margin-top: 20px;
                            padding-top: 20px;
                            border-top: 1px solid #CCCCCC;
                        }
                        >.body {
                            display: flex;
                            flex-flow: column;
                            row-gap: 15px;
                            >.title {
                                font-weight: bold;
                                span {
                                    font-size: 1.4rem;
                                    font-weight: normal;
                                    display: block;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    @media only screen and (min-width:768px) {
        dl.content {
            margin-top: 80px;
            >.block {
                row-gap: 40px;
                &.program > dt img {
                    width: calc(340/980 * 100%);
                }
                &.schedule > dt img {
                    width: calc(285/980 * 100%);
                }
                >dt {
                    text-align: left;
                }
            }
            .step {
                grid-template-columns: repeat(4, auto);
                gap: 20px 20px;
                >a {
                    padding-top: 12px;
                    >.title > span {
                        font-size: 1.6rem;
                        width: 130px;
                        height: 30px;
                        border-radius: 30px;
                    }
                    .img {
                        margin-top: 8px;
                        img {
                            width: calc(140/226 * 100%);
                        }
                    }
                    >p {
                        margin-top: 15px;
                        width: calc(100% - 15px * 2);
                    }
                    >.anchor {
                        padding: 8px 15px 8px 15px;
                        margin-top: 15px;
                        font-size: 1.8rem;
                    }
                }
            }
            dl.day {
                row-gap: 20px;
                padding-top: 0;
                >.block {
                    flex-flow: nowrap;
                    >dt {
                        padding: 20px 0 0 calc(18px + 16px);
                        width: calc((980 - 700 - 30)/980 * 100%);
                        &::before {
                            top: calc(20px + 0.2em);
                        }
                        .days {
                            font-size: 2.8rem;
                        }
                        >ul.list {
                            margin-top: 18px;
                            font-size: 1.8rem;
                        }
                    }
                    >dd {
                        width: calc(700/980 * 100%);
                        padding-top: 30px;
                        >.box {
                            width: calc(640/700 * 100%);
                            display: flex;
                            flex-flow: nowrap;
                            justify-content: space-between;
                            &:nth-of-type(n+2) {
                                padding-top: 30px;
                                margin-top: 30px;
                            }
                            >.body {
                                width: calc((640 - 30 - 240)/640 * 100%);
                                row-gap: 10px;
                                .title {
                                    font-size: 1.8rem;
                                    span {
                                        font-size: 1.6rem;
                                        line-height: 1.3;
                                    }
                                }
                            }
                            >.img {
                                width: calc(240/640 * 100%);
                            }
                        }
                    }
                }
            }
        }
    }
    .overview {
        margin-top: 60px;
        padding: 20px 0 20px 0;
        background-color: #FFFFFF;
        span.red {
            color: var(--color_red);
        }
        ul.atte {
            margin-top: 1em;
        }
        .link {
            margin-bottom: 5px;
            >a.button {
                font-size: 1.4rem;
                background-color: var(--color_red);
                color: #FFFFFF !important;
                height: 40px;
                max-width: 216px;
                padding: 0 12px 0 12px;
                justify-content: space-between;
                .arrow::before {
                    margin-top: 0;
                }
                &:hover {
                    opacity: 0.7;
                }
            }
        }
    }
    @media only screen and (min-width:768px) {
        .overview {
            margin-top: 80px;
            padding: 30px 0 30px 0;
            .link {
                display: flex;
                flex-flow: wrap;
                column-gap: 10px;
                >a.button {
                    margin-top: 0;
                }
            }
        }
    }
}
/***********************************************/
@media only screen and (min-width:768px) {}
@media only screen and (min-width:1200px) {}
/***********************************************/

/* ul.list ************/
ul.list {
    display: flex;
    flex-flow: column;
    /****/
    >li {
        line-height: 1.6;
        display: flex;
        flex-flow: nowrap;
        align-items: flex-start;
    }
    &.base {
        padding-left: 1.2em;
        /****/
        >li {
            display: list-item;
            list-style: disc;
        }
    }
    &.atte >li::before {
        content: "※";
        white-space: nowrap;
    }
    &.number {
        counter-reset: number 0;
        padding-left: 1.5em;
        /****/
        >li {
            display: list-item;
            list-style: decimal;
        }
        &[class*="type"] {
            padding-left: 0;
            /****/
            >li {
                list-style: none;
                display: flex;
                flex-flow: nowrap;
                column-gap: 0.5em;
                position: relative;
                /****/
                &::before {
                    counter-increment: number 1;
                    width: 1.2em;
                    display: flex;
                    justify-content: center;
                    white-space: nowrap;
                }
                >.body {
                    width: calc(100% - 0.5em - 1.2em);
                }
            }
            &:has(> :nth-child(10)) > li {
                /****/
                &::before {
                    justify-content: flex-end;
                }
            }
        }
        &.type1 {
            /****/
            >li::before {
                content: counter(number)"）";
            }
            &:has(> :nth-child(10)) > li {
                /****/
                &::before {
                    width: 1.8em;
                }
                >.body {
                    width: calc(100% - 0.5em - 1.8em);
                }
            }
        }
        &.type2>li::before {
            content: counter(number);
        }
        &.type3 {
            /****/
            >li {
                /****/
                &::before {
                    content: counter(number);
                    justify-content: center !important;
                    transform: scale(0.8);
                    margin-top: -0.4em;
                }
                &::after {
                    content: "";
                    display: block;
                    aspect-ratio: 1/1;
                    width: 1.2em;
                    border: 1px solid #000000;
                    border-radius: 100%;
                    position: absolute;
                    top: 0.15em;
                    left: 0;
                    margin-top: -0.35em;
                }
            }
        }
    }
    &.circle {
        /****/
        >li {
            justify-content: space-between;
            /****/
            &::before {
                content: "";
                display: block;
                aspect-ratio: 1/1;
                width: 1em;
                border: 1px solid #000000;
                border-radius: 100%;
            }
            >.body {
                width: calc(100% - 1.3em);
            }
        }
    }
}
/**********************/