/* コースのベースレイアウト */
.course_contents {
    width: min(1200px, 95%);
    padding: min(50px, 5%);
    background: #FAF2E9;
}

.course_title {
    font-size: 35px;
    text-align: center;
    line-height: 3rem;
    font-weight: 800;
}

.course_subtitle {
    font-size: 22px;
    line-height: 4rem;
    text-shadow: 2px 2px 3px rgba(155, 155, 155, 0.5);
}

.course_description {
    margin-bottom: 50px;
    padding-left: 15px;
    border-left: 11px solid #555;
    line-height: 2.5rem;
}

.course_recommended {
    margin: 50px auto;
}

.heading_ribbon_style {
    display: flex;
    justify-content: center;
    flex-direction: column;
    position: relative;
    width: 200px;
    height: 40px;
    margin-left: 20px;
    background: #555;
    color: #FAF2E9;
    font-size: 20px;
    text-align: center;
}

.heading_ribbon_style::before {
    position: absolute;
    content: '';
    top: 0;
    right: -20px;
    border-top: 20px solid #555;
    border-bottom: 20px solid #555;
    border-right: 20px solid transparent;
}

.heading_ribbon_style::after {
    content: '';
    position: absolute;
    top: 0;
    left: -20px;
    border-top: 20px solid #555;
    border-bottom: 20px solid #555;
    border-left: 20px solid transparent;
}

.simple_bullet_points {
    margin-left: 35px;
}

.simple_bullet_points li {
    position: relative;
}

.simple_bullet_points li::before {
    content: '\025cf';
    position: absolute;
    margin-right: 5px;
    left: -30px;
    color: #555;
    border-radius:  50%;
}

.details_link a {
    width: 200px;
    line-height: 1rem;
}
/* コースのベースレイアウト */

/* グループ・区切り */
.contents_width {
    width: min(1200px, 95%);
    margin: 0 auto;
}

.course_group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px;
    width: 100%;
    margin-top: 50px;
}

.put_together {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 0 auto;
    margin-bottom: 0;
}

.contents_separate {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    gap: 5px;
    width: min(1200px, 95%);
    margin: 0 auto;
    padding: 2%;
}
/* 区切り・グループ */

/* 各コースのベースレイアウト */
.hook_course {
    padding: 100px 5%;
}

.hook_course .course_title {
    width: min(1200px, 100%);
    margin: 0 auto;
    padding: 15px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 10px;
    backdrop-filter: blur(10px);
}

.hook_course .course_description {
    width: min(1200px, 100%);
    margin: 25px auto;
    padding: 30px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 10px;
    backdrop-filter: blur(10px);
}

h2.simple_underline {
    font-size: 30px;
    font-weight: 600;
    line-height: 3rem;
    border-bottom: 0.5px solid #79584A;
}

.course_group details {
    width: 100%;
    margin: 5px 0;
}

.course_group details p {
    margin: 5px 25px;
}

.course_group summary {
    width: 100%;
    padding-left: 20px;
    color: #FAF2E9;
    background: #555;
    border-radius: 5px;
}

.course_group summary:hover {
    color: #555;
    background: #FAF2E9;
    cursor: pointer;
}

.group_contents {
    margin: 150px auto;
    padding: min(50px, 5%);
    background:
     linear-gradient(90deg,
      rgb(255,255,255) 0%,
      transparent 57%),
     repeating-linear-gradient(135deg,
      rgba(152, 152, 152,0.1) 0px, rgba(152, 152, 152,0.1) 1px,
      transparent 1px, transparent 13px),
     repeating-linear-gradient(45deg,
      rgba(152, 152, 152,0.1) 0px, rgba(152, 152, 152,0.1) 1px,
      transparent 1px, transparent 13px),
     linear-gradient(90deg,
      rgb(255,255,255),rgb(255,255,255));
}

.course_annotation {
    width: 80%;
    margin: 150px auto;
    padding: min(50px, 5%);
    border-radius: 15px;
    background: #aaa;
    background: 
    linear-gradient(90deg, 
    rgba(165, 165, 165, 0.03) 0%, rgba(165, 165, 165, 0.03) 8%,
    rgba(235, 235, 235, 0.03) 8%, rgba(235, 235, 235, 0.03) 9%,
    rgba(7, 7, 7, 0.03) 9%, rgba(7, 7, 7, 0.03) 14%,
    rgba(212, 212, 212, 0.03) 14%, rgba(212, 212, 212, 0.03) 17%,
    rgba(219, 219, 219, 0.03) 17%, rgba(219, 219, 219, 0.03) 95%,
    rgba(86, 86, 86, 0.03) 95%, rgba(86, 86, 86, 0.03) 100%),
    linear-gradient(67.5deg, 
    rgba(80, 80, 80, 0.03) 0%, rgba(80, 80, 80, 0.03) 11%,
    rgba(138, 138, 138, 0.03) 11%, rgba(138, 138, 138, 0.03) 17%,
    rgba(122, 122, 122, 0.03) 17%, rgba(122, 122, 122, 0.03) 24%,
    rgba(166, 166, 166, 0.03) 24%, rgba(166, 166, 166, 0.03) 27%,
    rgba(245, 245, 245, 0.03) 27%, rgba(245, 245, 245, 0.03) 89%,
    rgba(88, 88, 88, 0.03) 89%, rgba(88, 88, 88, 0.03) 100%),
    linear-gradient(67.5deg, rgba(244, 244, 244, 0.03) 0%, 
    rgba(244, 244, 244, 0.03) 4%,rgba(16, 16, 16, 0.03) 4%, 
    rgba(16, 16, 16, 0.03) 10%,rgba(157, 157, 157, 0.03) 10%, 
    rgba(157, 157, 157, 0.03) 20%,rgba(212, 212, 212, 0.03) 20%, 
    rgba(212, 212, 212, 0.03) 83%,rgba(5, 5, 5, 0.03) 83%, 
    rgba(5, 5, 5, 0.03) 84%,rgba(237, 237, 237, 0.03) 84%, 
    rgba(237, 237, 237, 0.03) 100%),
    linear-gradient(90deg, #ffffff,#ffffff);
}

.course_contents_emphasis { 
    width: 80%;
    margin: 150px auto;
    padding: min(50px, 5%);
    color: #e9fae9;
    background: 
    repeating-linear-gradient(90deg, 
    rgba(200,200,200,0.05) 0px, rgba(200,200,200,0.05) 1px,
    transparent 1px, transparent 104px),
    repeating-linear-gradient(0deg, 
    rgba(200,200,200,0.05) 0px, rgba(200,200,200,0.05) 1px,
    transparent 1px, transparent 104px),
    repeating-linear-gradient(0deg, 
    rgba(200,200,200,0.05) 0px, rgba(200,200,200,0.05) 1px,
    transparent 1px, transparent 26px),
    repeating-linear-gradient(90deg, 
    rgba(200,200,200,0.05) 0px, rgba(200,200,200,0.05) 1px,
    transparent 1px, transparent 26px),
    linear-gradient(135deg, 
    rgb(49, 55, 125),rgb(49, 55, 125));
}
/* 各コースのベースレイアウト */

/* 装飾 */
.heading_striped_underline {
    position: relative;
    margin-bottom: 25px;
    font-size: 28px;
    font-weight: 500;
    text-align: center;
    line-height: 4rem;
}

.heading_striped_underline::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 10px;
    bottom: 0;
    left: 0;
    background: #79584A;
}

.simple_doubleline_style {
    border-bottom: 3px double #79584A;
}

.simple_triangle_Heading {
    position: relative;
    margin-bottom: 25px;
    padding-left: 30px;
    font-size: 24px;
    font-weight: 800;
    line-height: 3rem;
    border-bottom: 2px dashed #79584A;
}

.simple_triangle_Heading::before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    top: 12px;
    left: 0;
    border-style: solid;
    border-width: 15px 0 15px 15px;
    border-color: transparent transparent transparent rgb(221, 0, 66);
}

.simple_parenthesis_style {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    margin-bottom: 50px;
    font-weight: 700;
    font-size: 50px;
    line-height: 4rem;
    text-align: center;
}

.simple_parenthesis_style::before,
.simple_parenthesis_style::after {
    content: '';
    position: absolute;
    width: 70%;
    height: 50%;
}

.simple_parenthesis_style::before {
    left: -10px;
    top: -10px;
    border-top: 1px solid;
    border-left: 1px solid;
}

.simple_parenthesis_style::after {
    right: -10px;
    bottom: -10px;
    border-bottom: 1px solid;
    border-right: 1px solid;
}

.simple_side_line_style {
    position: relative;
    margin: 0 auto;
    margin-bottom: 50px;
    font-size: 28px;
    font-weight: 500;
    line-height: 4rem;
    text-align: center;
}

.simple_side_line_style::before,
.simple_side_line_style::after {
    content: '';
    position: absolute;
    width: 10%;
    border-top:1px solid;
    top: 50%;
}

.simple_side_line_style::before {
    left: 0;
}

.simple_side_line_style::after {
    right: 0;
}

.highlighted {
    width: 100%;
    color: #fff;
    font-weight: 500;
    background: #79584A;
}
/* 装飾 */

/* 注意事項 */
.note_caution {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
    padding: 5%;
    background: 
    radial-gradient(circle at 13% 47%, 
    rgba(140, 140, 140,0.03) 0%, rgba(140, 140, 140,0.03) 25%,
    transparent 25%, transparent 100%),
    radial-gradient(circle at 28% 63%, 
    rgba(143, 143, 143,0.03) 0%, rgba(143, 143, 143,0.03) 16%,
    transparent 16%, transparent 100%),
    radial-gradient(circle at 81% 56%, rgba(65, 65, 65,0.03) 0%, 
    rgba(65, 65, 65,0.03) 12%,
    transparent 12%, transparent 100%),
    radial-gradient(circle at 26% 48%, rgba(60, 60, 60,0.03) 0%, 
    rgba(60, 60, 60,0.03) 6%,
    transparent 6%, transparent 100%),
    radial-gradient(circle at 97% 17%, 
    rgba(150, 150, 150,0.03) 0%, rgba(150, 150, 150,0.03) 56%,
    transparent 56%, transparent 100%),
    radial-gradient(circle at 50% 100%, 
    rgba(25, 25, 25,0.03) 0%, rgba(25, 25, 25,0.03) 36%,
    transparent 36%, transparent 100%),
    radial-gradient(circle at 55% 52%, 
    rgba(69, 69, 69,0.03) 0%, rgba(69, 69, 69,0.03) 6%,
    transparent 6%, transparent 100%),
    linear-gradient(90deg, rgb(255,255,255),rgb(255,255,255));
}

.note_caution h3 {
    position: relative;
    width: 100%;
    font-size: 30px;
    line-height: 2.5rem;
    text-shadow: 0.5px 0.5px 2px #79584A;
    border-bottom: 3px solid;
}

.note_caution h3::before {
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    right: 0;
    bottom: -10px;
    background: #79584A;
    transform: rotate(45deg);
}
/* 注意事項 */

/* 768px以下 */
@media screen and (max-width:768px) {
    .hook_course .course_title, 
    .hook_course .course_description {
        padding: 10px;
    }

    .note_caution h3::before {
        content: none;
    }

    .details_link a {
        width: 90%;
    }

    .course_title {
        font-size: 28px;
        line-height: 2rem;
    }

    .course_subtitle {
        font-size: 18px;
        line-height: 1rem;
    }

    .course_description {
        margin: 25px auto;
        padding: 0;
        border: none;
        border-top: 11px solid #555;
        line-height: 2rem;
    }

    .course_recommended {
        margin: 25px auto;
    }

    .heading_ribbon_style {
        margin: 0 auto;
    }

    .simple_bullet_points {
        line-height: 1.8rem;
    }

    .simple_side_line_style {
        width: 100%;
    }

    .simple_side_line_style::before {
        top: 0;
    }

    .simple_side_line_style::after {
        top: inherit;
        bottom: 0;
    }
}