@charset "UTF-8";

/* Reset styles */
blockquote,body,dd,dl,figure,h1,h2,h3,h4,p {
    margin: 0
}

ol[role=list],ul[role=list] {
    list-style: none
}

html:focus-within {
    scroll-behavior: smooth
}

a:not([class]) {
    text-decoration-skip-ink: auto
}

button,input,select,textarea {
    font: inherit
}

html {
    font-size: 10px;
    scroll-behavior: smooth;
    scroll-padding-top: 70px; /* sticky header offset for smooth scroll */
}

@media screen and (max-width: 768px) {
    html {
        scroll-padding-top: 26vw;
    }
}

body {
    min-width: 360px;
    color: #000;
    word-break: normal;
    font-weight: 500;
    font-size: 1.4rem;
    font-family: "M PLUS Rounded 1c", sans-serif;
    line-height: 1.7;
    text-rendering: optimizeSpeed;
    overflow-wrap: anywhere;
    line-break: strict;
    padding: 0px 1.6%;
}

.ua-sp body {
    -webkit-text-size-adjust: 100%
}

footer,header,main {
    display: block
}

a {
    color: #0279be;
    text-decoration: none;
    transition: color .3s,background-color .3s
}

a img {
    opacity: 1;
    transition: opacity .3s
}

p:not(:last-child) {
    margin-bottom: 1em
}

img {
    max-width: 100%;
    height: auto;
    outline: 0;
    border: 0;
    vertical-align: bottom;
    image-rendering: -webkit-optimize-contrast
}

button:focus {
    outline: 0
}

sub,sup {
    position: relative;
    height: 0;
    vertical-align: baseline;
    line-height: 1
}

sup {
    bottom: .3em
}

table {
    width: 100%
}

/* Layout */
.sec_inner,main {
    box-sizing: border-box;
    margin: 0 auto;
    max-width: 1170px;
    width: 100%;
}

.content_box {
    box-sizing: border-box;
    border-radius: 0 0 50px 50px;
    padding: 75px 30px 15px;
    background: #fff;
    box-shadow: 0 0 10px 0 rgba(0,0,0,.35);
}

/* Header styles */
header {
    position: relative;
}

.header_main {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 0 0 30px;
    background-color: #fff;
    border-radius: 50px 50px 0 0;
    height: 110px;
    margin-top: 50px;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, .35);
}

.header_main h1 {
    width: 206px;
}

.header_sub {
    border-bottom: 10px solid #006122;
    background: #009836;
    width: 109.4%;
    margin-left: -5%;
    font-weight: 700;
    font-size: 3rem;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.header_sub_title {
    position: relative;
    padding-left: 160px;
    height: 60px;
    color: #fff;
    display: flex;
    align-items: center;
}

.header_sub_title .icon-03 {
    position: absolute;
    top: -21px;
    left: 4%;
}

.kouza_grade {
    width: 95px;
    margin: 0 10px;
}

.grade_word_count {
    align-self: flex-start;
    font-weight: 700;
    line-height: 1.1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin-top: 43px;
    font-size: 3rem;
    flex: 0 0 10em;
}

.kouza_id {
    flex: 0 1 247px
}


@media screen and (max-width: 768px) {

    .header_sub {
        width: 103.3%;
        margin-left: -1.6%;
    }

    .sec_inner,main {
        max-width: 91.67vw;
        width: 100%;
    }

    .header_main {
        height: 15.83vw;
        padding: 0.83vw 0 0.83vw 30px;
    }

    .header_main h1 {
        width: 40vw;
    }

    .kouza_grade {
        width: 17vw;
    }

    .header_sub_title {
        height: 8.33vw;
        padding-left: 22.83vw;
        font-size: 4.16vw;
    }

    .header_sub_title .icon-03 {
        width: 11.8vw;
        position: absolute;
        top: -26%;
        left: 9.5%;
    }

    .content_box {
        padding: 7.5vw 9.16vw 9.16vw;
    }
}

/* Footer styles */
.copyright {
    text-align: center;
    font-size: 1.2rem;
    letter-spacing: 0.15rem;
}

.list-txtMarker {
    margin: 1em 0 0;
    padding: 0;
    list-style-type: none
}

.list-txtMarker li {
    margin: 0;
    padding: 0 0 0 1em;
    text-indent: -1em
}

.list-txtMarker li:not(:last-child) {
    margin: 0 0 .1em
}


/* main */
.wrap-content {
    padding: 0 0 50px;
}

/* ===================================
    recorded-class-section
==================================== */

.toc_wrapper {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    flex-flow: row wrap;
    margin: 0;
    padding: .3em 10px
}

.toc_list {
    display: flex;
    align-items: center;
    flex-flow: row wrap;
    margin: 0 -5px;
    font-size: 1.6rem;
    gap: .5em .5em
}

.toc_quiz_list {
    display: flex;
    flex-flow: row wrap;
    margin: 0;
    padding: 0;
    list-style: none
}

.toc_quiz_list>li {
    margin-left: 5px
}

.toc_quiz_list a {
    display: inline-block;
    width: 1.9em;
    height: 1.9em;
    border-radius: 50%;
    background: #7fbe26;
    color: #fff;
    text-align: center;
    line-height: 1.8
}

.recorded-class-section {
    margin-bottom: 80px;
}

.recorded-class-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.recorded-class-title-link {
    color: #fff;
    background-color: #009836;
    padding: 1px 35px;
    font-size: 1.8rem;
    line-height: 1.5;
    font-weight: 500;
    border-radius: 16px;
    margin-right: 20px;
}

.recorded-class-title-link:hover {
    text-decoration: none;
    opacity: 0.8;
}

.recorded-class-list {
    display: flex;
    flex-direction: column;
    gap: 96px;
    margin-top: 55px;
}

.week-block {
    width: clamp(647px, 41.882352941176471vw, 712px);
    margin: auto;
    background-color: #6dad11;
    padding: 8px 25px 40px 25px;
    border-radius: 10px;
    color: #fff;
    box-sizing: border-box;
}

.week-title {
    font-size: 2.4rem;
    font-weight: 700;
}

.week-sub {
    font-size: 1.6rem;
    margin-left: 10px;
}

.week-thumb-list {
    display: flex;
    gap: 25px;
}

.week-thumb-item {
    position: relative;
    flex: 1 1 50%;
    max-width: 340px;
    text-decoration: none;
}

.week-thumb-img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
}

.week-date {
    position: absolute;
    bottom: -19px;
    left: 50%;
    transform: translateX(-50%);
    border: 3px solid #6dad11;
    background-color: #fff;
    color: #008c00;
    font-weight: 700;
    border-radius: 25px;
    padding: 0 31px;
    font-size: 1.8rem;
    letter-spacing: 0.2rem;
    text-wrap: nowrap;
}

@media screen and (max-width: 768px) {
    .toc_wrapper {
        top: 0.5%;
        margin: 0 0 0 -4%;
    }

    .recorded-class-section {
        margin-bottom:11.167vw;
    }

    .recorded-class-list {
        margin-top: 7.6vw;
        gap: 13vw;
    }

    .week-block {
        width: 73.33vw;
    }

    .week-thumb-list {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10.83vw;
    }

    .week-thumb-item {
        max-width: none;
    }

    .week-title {
        font-size: 5vw;
    }

    .week-sub {
        font-size: 3.33vw;
        margin-left: 0.83vw;
    }

    .week-date {
        font-size: 4.17vw;
        padding: 0.33vw 5.83vw;
        border-radius: 5vw;
        bottom: -4.17vw;
    }
}

/* ===================================
    TOC (Table of Contents for index_02.html)
==================================== */
.toc_list {
    display: flex;
    align-items: center;
    background-color: #00822a;
    border-radius: 50px;
    padding: 4px 130px 4px 6px;
    gap: 50px;
    width: fit-content;
    box-shadow: 0 0 10px 0 rgba(0,0,0,.35);
    position: sticky;
    top: 0;
    z-index: 10;
}

/* Seasons wrapper */
.toc_list_1 {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 2px 15px;
    background-color: #fff;
    border-radius: 999px;
    gap: 15px;
    font-size: 2rem;
}

.toc_list_1 li a {
    color: #00822a;
    font-weight: bold;
    text-decoration: none;
    padding: 0 7px;
    border-radius: 20px;
    display: inline-block;
    transition: background-color 0.2s;
}

.toc_list_1 li a.active,
.toc_list_1 li a:hover {
    background-color: #00822a;
    color: #fff;
}

/* Numbers wrapper */
.toc_list_2 {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 27px;
    font-size: 2.4rem;
}

.toc_list_2 li a {
    width: 30px;
    height: 30px;
    background-color: #eafbe1;
    color: #000;
    border-radius: 50%;
    font-weight: bold;
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: transform 0.1s, box-shadow 0.1s;
}

.toc_list_2 li a:hover {
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.25);
}

@media screen and (max-width: 768px) {
    .toc_list {
        width: 100%;
        border-radius: 4vw;
        display: block;
        padding: 3vw 5vw;
    }

    .toc_list div:first-child {
        margin-bottom: 2vw;
    }

    .toc_list_1 li a {
        padding: 0 1.5vw;
        border-radius: 3.67vw;
    }

    .toc_list_1 {
        width: 31.5vw;
        font-size: 4.17vw;
        gap: 5.5vw;
    }

    .toc_list_2 {
        font-size: 4.83vw;
        gap: 5.67vw;
    }

    .toc_list_2 li a {
        width: 6.5vw;
        height: 6.5vw;
    }
}

/* ===================================
    sec-offer
==================================== */
.sec-offer {
    margin-top: 30px;
    margin-bottom: 28px;
    font-size: 1.4rem
}

/* Responsive styles */
@media screen and (min-width: 769px) {
    body {
        background-size: auto;
        font-size: 1.6rem
    }

    .word_count_num {
        font-size: 3.4rem
    }

    footer {
        padding: 2em 0
    }
}

@media (hover: hover) {
    a:hover {
        text-decoration: underline
    }

    a img:hover {
        opacity: .8
    }
}

@media (prefers-reduced-motion:reduce) {
    html:focus-within {
        scroll-behavior: auto
    }
}

@media print {
    body {
        background-size: auto;
        font-size: 1.6rem
    }

    .kouza_id {
        flex: 0 1 247px
    }

    .word_count_num {
        font-size: 3.4rem
    }

    .content_box+.content_box {
        margin-top: 45px
    }

    footer {
        padding: 2em 0
    }
}

.congrats {
    width: 115.3%;
    margin: 0 0 0 -7.5%;
}

@media screen and (max-width: 768px) {
    .sec-offer {
        width: 109%;
        margin-left: -3%;
        margin-top: 5.833333333vw;
        margin-bottom: 5.833333333vw;
        font-size: 2.833333333vw;
    }

    .copyright {
        font-size: 2vw;
    }

    .congrats {
        width: 96.33vw;
        margin: 0 0 0 -15.5%;
    }
}


/* back-to-top */
.back-to-top {
    text-align: center;
    margin-bottom: 60px;
}
.back-to-top a {
    background-color: #008c00;
    padding: 20px 200px;
    color: #fff;
    font-size: 3rem;
    border-radius: 50px;
    position: relative;
}

.back-to-top a:hover {
    text-decoration: none;
    opacity: 0.8;
}

.back-to-top a::before,
.back-to-top a::after {
    position: absolute;
    content: "";
    background-color: #fff;
    border-radius: 2px;
    top: 50%;
    left: 10%;
}

.back-to-top a::before {
    width: 16px;
    height: 4px;
    transform: translateY(-50%) rotate(-135deg);
    transform-origin: right center;
    top: 47.8%;
}

.back-to-top a::after {
    width: 16px;
    height: 4px;
    transform: translateY(-50%) rotate(135deg);
    transform-origin: right center;
}

@media screen and (max-width: 768px) {
    .back-to-top {
        margin-bottom: 9vw;
    }

    .back-to-top a {
        font-size: 4.16vw;
        padding: 3.33vw 26vw;
    }

    .back-to-top a::before {
        width: 2.5vw;
        height: 0.6vw;
    }

    .back-to-top a::after {
        width: 2.5vw;
        height: 0.6vw;
    }

}