.instructor-section {
    .content-wrapper {
        max-width: 1300px;
        @media (max-width: 680px) {
            width: 80%;
        }
    }

    .instructor-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 4rem 5rem;

        .instr-card {
            position: relative;
            background: #fff;
            box-shadow: 0 10px 26px rgba(0, 0, 0, .15);
            padding-bottom: 16px;

            .instr-image {
                position: relative;
                width: 100%;
                aspect-ratio: 3 / 4;
                background: #000;
                overflow: hidden;

                &>img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    object-position: center 60%;
                    display: block;
                }
            }

            .instr-body {
                position: relative;
                padding-top: 34px;

                .instr-ribbon {
                    position: absolute;
                    top: 0;
                    left: -20px;
                    width: calc(100% + 40px) ;
                    height: 34px;
                    color: #fff;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 12px;
                    font-weight: 700;

                    /* 帯の結び目（右端） */
                    .instr-ribbon-tail {
                        span {
                            position: absolute;
                            display: block;
                            width: 22px;
                            height: 50px;
                            background: var(--ribbon-color, #2b2b2b);
                            border: 1px solid #ffffff;
                            border-radius: 2px;
                            top: 0;
                            right: 0;

                            &:nth-child(1) {
                                top: 10px;
                                right: 50px;
                                width: 22px;
                                height: 70px;
                                transform: rotate(-18deg);
                                transform-origin: top left;
                            }
                            &:nth-child(2) {
                                top: 10px;
                                right: 50px;
                                width: 22px;
                                height: 80px;
                                transform: rotate(18deg);
                                transform-origin: top left;
                            }
                            &:nth-child(3) {
                                width: 45px;
                                height: 100%;
                                top: 0px;
                                right: 38px;
                                transform-origin: top right;
                            }
                        }
                    }
                }

                .instr-name {
                    margin: 1rem 0;
                    padding-left: 25px;
                    font-weight: 800;
                    text-align: left;
                    font-size: 1.4rem;
                }

                .instr-bullets {
                    text-align: left;
                    margin: 0 0 14px;
                    padding: 0 10px 0 25px;
                    font-size: 12px;
                    line-height: 1.8;
                }

            }

        }

        @media (max-width: 1100px) {
            grid-template-columns: repeat(2, 1fr);
        }

        @media (max-width: 680px) {
            grid-template-columns: 1fr;
        }
    }

}



