@charset "UTF-8";

.l-article {
    max-width: none !important;
}

/* Common Contents Wrapper */
.cmn-contents-wrapper {
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px;
}

.cmn-contents-margin {
    margin-bottom: 60px !important;
    margin-top: 60px !important;
}

/* Shogyo Page Custom Styles */

/* Section Heading Styles */
.section-heading-wrapper {
    text-align: center;
    margin: 0 0 20px 0;
}

.section-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
}

.section-heading__japanese {
    font-size: 2.2rem;
    font-weight: 700;
    color: #000;
    line-height: 1.2;
}

.section-heading__english {
    font-size: 0.9rem;
    font-weight: 400;
    color: #999;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1.2;
}

/* Responsive Styles for Section Heading */
@media screen and (max-width: 768px) {
    .section-heading-wrapper {
        margin: 65px 0 0 0;
    }

    .section-heading__japanese {
        font-size: 1.8rem;
    }

    .section-heading__english {
        font-size: 0.8rem;
    }
}

.shogyo-header {
    text-align: center;
    margin-bottom: 2em;
}


.shogyo-lead {
    font-weight: bold;
    margin-bottom: 1.5em;
}

.core-pdf-list {
    list-style-type: none;
    padding: 0;
    margin-top: 1.5em;
}

.core-pdf-list li {
    margin-bottom: 0.8em;
}

.core-pdf-list a {
    color: #0056b3;
    text-decoration: underline;
}

/* Course Card New Design */
.course-grid {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 2em;
    margin-bottom: 130px !important;
}

.course-grid-last {
    margin-bottom: 0 !important;
}

.course-card {
    display: flex;
    flex-direction: row;
    border: 2px solid #ddd;
    border-radius: 10px;
    padding: 20px;
    gap: 20px;
    align-items: flex-start;
}

.course-card__image {
    width: 300px;
    flex-shrink: 0;
    aspect-ratio: 4/3;
    background-color: #ccc;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.course-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.course-card__content {
    flex-grow: 1;
}

.course-card__title {
    font-size: 1.4rem;
    font-weight: bold;
    margin-bottom: 15px;
    padding: 10px 15px;
    border-radius: 6px;
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 15px;
    text-align: left;
}

.course-icon {
    width: 33px;
    height: 33px;
}

.course-card__catchphrase {
    font-weight: bold;
    font-size: 1.1rem;
    margin-bottom: 15px;
    color: #333;
}

.course-card__desc {
    background: #fff;
    padding: 15px;
    border-radius: 4px;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Course Subjects Styles */
.course-subjects {
    margin-top: 20px;
}

.course-subjects__heading {
    font-size: 0.9rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 12px 0;
    padding: 0 0 8px 0;
    border-bottom: 1px solid #ddd;
}

.course-subjects__list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}


/* Responsive Styles for Course Subjects */
@media screen and (max-width: 768px) {
    .course-subjects__list {
        gap: 8px;
    }

    .course-subjects__item {
        padding: 6px 12px;
        font-size: 0.85rem;
    }
}


/* Course Title Heading Styles */
.course-title-heading-wrapper {
    text-align: center;
    margin: 40px 0 30px 0;
}


.course-title-heading__icon {
    width: 33px;
    height: 33px;
    flex-shrink: 0;
}

.course-title-heading__japanese {
    font-size: 1.4rem;
    font-weight: bold;
    color: #fff;
}

.course-title-heading__separator {
    font-size: 1.4rem;
    font-weight: bold;
    color: #fff;
}

.course-title-heading__english {
    font-size: 0.9rem;
    font-weight: bold;
    color: #fff;
    letter-spacing: 0.05em;
}


/* Responsive Styles for Course Title Heading */
@media screen and (max-width: 768px) {
    .course-title-heading-wrapper {
        margin: 30px 0 20px 0;
        padding: 0 15px;
    }

    .course-title-heading {
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
        padding: 8px 12px;
        font-size: 0.9rem;
    }

    .course-title-heading__icon {
        width: 28px;
        height: 28px;
    }

    .course-title-heading__japanese {
        font-size: 1.1rem;
    }

    .course-title-heading__separator {
        font-size: 1.1rem;
    }

    .course-title-heading__english {
        font-size: 0.75rem;
    }
}

/* Responsive Styles for Course Title Heading */
@media screen and (max-width: 768px) {
    .course-title-heading-wrapper {
        margin: 30px 0 20px 0;
    }

    .course-title-heading {
        padding: 8px 12px;
    }

    .course-title-heading__japanese {
        font-size: 1.2rem;
    }

    .course-title-heading__separator {
        font-size: 1.2rem;
    }

    .course-title-heading__english {
        font-size: 0.8rem;
    }
}


/* Responsive */
@media screen and (max-width: 768px) {
    .course-card {
        flex-direction: column;
    }

    .course-card__image {
        width: 100%;
        margin-bottom: 15px;
        /* margin-bottom: 60px; */
    }
}

.event-link-box {
    margin-top: 1em;
    text-align: center;
}

.event-link-box a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 400px;
    padding: 1.25em 1em 1.25em 1em;
    border: 2px solid var(--child-purple-500);
    color: var(--child-purple-500);
    background-color: #fff;
    font-weight: bold;
    text-decoration: none;
    border-radius: 50px;
    position: relative;
    transition: all 0.3s ease;
}

/* Arrow Shaft */
.event-link-box a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 25px;
    width: 20px;
    height: 2px;
    background-color: currentColor;
    transform: translateY(-50%);
    transition: all 0.3s ease;
}

/* Arrow Head */
.event-link-box a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 25px;
    width: 8px;
    height: 8px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
    transition: all 0.3s ease;
}

.event-link-box a:hover {
    background-color: var(--child-purple-500);
    color: #fff;
}

.event-link-box a:hover::before,
.event-link-box a:hover::after {
    right: 15px;
    border-color: #fff;
}

.cert-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 1em;
    margin-bottom: 2em;
}

.cert-tag {
    background: #eef;
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 0.9rem;
    border: 1px solid #ccf;
}

/* Table Styles */
.cert-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1.5em;
    margin-bottom: 1.5em;
}

.cert-table th,
.cert-table td {
    border: 1px solid #ddd;
    padding: 12px;
    text-align: left;
}

.cert-table th {
    background-color: #f0f0f0;
    font-weight: bold;
    width: 70%;
}

.cert-table td {
    text-align: center;
    font-weight: bold;
}

.multi-cert-box {
    background: #fff8e1;
    border: 1px solid #ffe082;
    padding: 15px;
    border-radius: 8px;
    margin-top: 1em;
}

.multi-cert-title {
    font-weight: bold;
    color: #d66d00;
    margin-bottom: 10px;
    display: block;
}

.multi-cert-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    text-align: center;
}

.multi-cert-item {
    background: #fff;
    padding: 8px;
    border-radius: 4px;
    border: 1px solid #eee;
}

.multi-cert-count {
    display: block;
    font-size: 1.2rem;
    font-weight: bold;
    color: #333;
}

.multi-cert-label {
    display: block;
    font-size: 0.8rem;
    color: #666;
}


/* メインフレックスボックス（画像と説明文） */
.lib-arts-main-flex {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-bottom: 40px;
}

.lib-arts-image-wrapper {
    flex: 1;
}

.lib-arts-image-wrapper img {
    width: 100%;
    height: auto;
    display: block;
}

.lib-arts-text-content {
    flex: 1;
}

/* コンテンツフレックスボックス（テキストとターゲットボックス） */
.lib-arts-content-flex {
    display: flex;
    align-items: flex-start;
    gap: 25px;
}


.lib-arts-divider {
    border: none;
    border-top: 2px solid #ddd;
    width: 40px;
    margin: 15px 0;
}

.lib-arts-subtext {
    font-size: 20px;
    color: #666;
    font-weight: 500;
    line-height: 1.6;
    margin: 10px 0 20px 0;
    padding-left: 10px;
    font-weight: bold;
}

.lib-arts-description {
    font-size: 15px;
    text-align: justify;
    background-color: #ffffff;
    padding: 15px;
}

/* 下部のグレー背景ボックス */
.lib-arts-target-box {
    flex: 1;
    background-color: #ffffff;
    padding: 30px 25px;
}


/* 志向リストのグリッド */
.lib-arts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.lib-arts-grid-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    border-bottom: 1px dashed #ddd;
}

.lib-arts-grid-item p {
    margin: 0;
    font-size: 15px;
}


/* レスポンシブ対応（スマホサイズ） */
@media (max-width: 768px) {
    .lib-arts-main-flex {
        flex-direction: column;
    }

    .lib-arts-content-flex {
        flex-direction: column;
    }

    .lib-arts-grid {
        grid-template-columns: 1fr;
    }

    .lib-arts-target-box {
        padding: 25px;
    }
}

/* POINT Section Styles */
.point-section {
    /* padding: 60px 20px; */
    /* margin-top: 40px; */
    margin-bottom: 100px !important;
}

.point-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.point-item {
    display: flex;
    flex-direction: column;
}

.point-number {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin: 0 auto;
}

.point-label {
    font-size: 16px;
    font-weight: 700;
    color: #4a4a4a;
    margin-bottom: 5px;
    letter-spacing: 0.1em;
}

.point-number-digit {
    font-size: 3rem;
    font-weight: 900;
    color: #4a4a4a;
    line-height: 1;
    margin-bottom: 3px;
}

.point-underline {
    width: 100px;
    height: 2px;
    background-color: #4a4a4a;
    border-radius: 50px;
    margin-bottom: 20px;
    margin: 0 auto;
}

.point-title {
    margin-bottom: 15px;
    display: inline-block;
    width: fit-content;
    margin: 0 auto;
    margin-top: 20px;
}

.point-title img {
    width: 250px;
    height: auto;
    max-width: 100%;
    display: block;
}

.point-description {
    color: #4a4a4a;
    line-height: 1.8;
    margin: 0;
    margin-top: 25px;
    padding: 0 25px;
}

/* Responsive Styles for POINT Section */
@media screen and (max-width: 768px) {
    .point-section {
        padding: 0;
        margin-top: 30px;
    }

    .point-container {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .point-number-digit {
        font-size: 50px;
    }
}


/* Tokusen Hero Banner Styles */
.tokusen-hero__left-block {
    position: absolute;
    left: 0;
    top: 40px;
    height: auto;
    min-height: 250px;
    z-index: 5;
    padding: 2rem 2rem;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.tokusen-hero {
    position: relative;
    width: 100%;
    margin-bottom: 3rem;
    overflow: hidden;
}


.tokusen-hero__container {
    position: relative;
    width: 100%;
    background-color: #fff;
}

.tokusen-hero__school-name {
    text-align: center;
    font-size: 1rem;
    font-weight: 700;
    color: #5c4033;
    padding: 1rem 0;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.tokusen-hero__content {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    overflow: hidden;
    max-width: 1200px;
    margin: 0 auto;
}

.tokusen-hero__badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 10;
    width: 100px;
    height: 100px;
    background-color: #ffd700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.tokusen-hero__badge-text {
    font-size: 1rem;
    font-weight: 700;
    color: #5c4033;
    writing-mode: horizontal-tb;
    text-align: center;
}


.tokusen-hero__subtitle {
    font-size: 20px;
    color: #fff;
    margin-bottom: 1rem;
    font-weight: 500;
}

.tokusen-hero__title {
    font-size: 32px;
    font-weight: 900;
    color: #fff;
    margin-bottom: 0.5rem;
    line-height: 1.2;
}

.tokusen-hero__underline {
    width: 100%;
    height: 1px;
    background-color: #fff;
    margin-top: 0.5rem;
    border-radius: 2px;
}

.tokusen-hero__image-wrapper {
    width: 60%;
    flex-shrink: 0;
    position: relative;
    height: 100%;
    min-height: 400px;
    overflow: hidden;
}

.tokusen-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Responsive Styles */
@media screen and (max-width: 768px) {
    .tokusen-hero__school-name {
        padding: 0.5rem 1rem;
    }

    .tokusen-hero__content {
        flex-direction: column-reverse;
        min-height: auto;
        /* align-items: baseline; */
    }

    .tokusen-hero__badge {
        width: 80px;
        height: 80px;
        top: 0.5rem;
        left: 0.5rem;
    }

    .tokusen-hero__badge-text {
        font-size: 0.8rem;
    }

    .tokusen-hero__left-block {
        position: absolute;
        left: 0;
        top: 0px;
        width: 100%;
        max-width: none;
        padding: 1.5rem 1.5rem;
        height: auto;
        min-height: 0 !important;
        box-sizing: border-box;
    }

    .tokusen-hero__title {
        font-size: 28px;
    }

    .tokusen-hero__subtitle {
        font-size: 0.9rem;
    }

    .tokusen-hero__image-wrapper {
        width: 100%;
        margin-top: 0;
        order: 1;
    }

    .tokusen-hero__image {
        position: absolute;
        left: 0;
        top: 40px;
    }

}

/* Point Card Section Styles */
.point-card-section {
    /* margin: 40px 0; */
    display: flex;
    justify-content: center;
    padding: 0 20px;
    margin-bottom: 100px;
}



.point-card__banner-subtitle {
    color: #fff;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.2;
}

.point-card__banner-title {
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
}

.point-card__banner {
    position: absolute;
    top: var(--point-card-banner-top, -30px);
    left: var(--point-card-banner-left, 20%);
    transform: var(--point-card-banner-transform, translateX(-50%));
    padding: 16px 32px;
    text-align: center;
    border-radius: 50px;
    width: fit-content;
    max-width: 90%;
    display: flex;
    flex-direction: column;
    gap: 4px;
    z-index: 10;
}

.point-card__illustration {
    padding: 70px 20px 0 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    /* background-color: #fff; */
    flex-wrap: wrap;
}

.point-card__button {
    background-color: #e8d5f0;
    border: 2px solid #9b7bb8;
    border-radius: 50px;
    padding: 12px 24px;
    color: #4a4a4a;
    font-size: 1rem;
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
    min-width: 80px;
}

/* Text Area Styles */
.point-card__text-area {
    padding: 30px 20px 20px 20px;
    text-align: center;
}

.point-card__text-area p {
    font-size: 1rem;
    line-height: 1.8;
    color: #333;
    margin: 0;
}

/* Interview Grid Styles */
.point-card__interview-grid {
    display: grid;
    gap: 30px;
    padding: 0 20px 40px 20px;
}

/* Point Card Interview Group Styles */
.point-card__interview-group {
    display: flex;
    flex-direction: column;
}

.point-card__interview-item {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s ease, opacity 0.3s ease;
    /* background-color: #fff; */
}

/* Point Card Interview Heading Styles */
.point-card__interview-heading {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    position: relative;
    padding-left: 1.5rem;
}

.point-card__interview-heading::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--heading-dot-color, #333);
}

.point-card__interview-heading::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--heading-underline-color, #333);
}

.point-card__interview-item:hover {
    transform: translateY(-8px);
    opacity: 0.85;
}

.point-card__interview-item:hover .point-card__interview-button {
    background-color: var(--button-hover-bg-color, #4a3faf);
    color: var(--button-hover-text-color, #fff);
}

.point-card__interview-image-wrapper {
    position: relative;
    width: 100%;
    /* aspect-ratio: 3/4; */
    /* overflow: hidden; */
    margin-bottom: 20px;
}

.point-card__interview-image {
    width: 100%;
    height: 100%;
    /* object-fit: cover; */
    display: block;
}

.point-card__interview-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);
    padding: 20px 15px 15px;
    color: #fff;
}

.point-card__interview-company {
    font-size: 0.85rem;
    margin-bottom: 4px;
    opacity: 0.9;
}

.point-card__interview-name {
    font-size: 1.1rem;
    font-weight: 700;
}

.point-card__interview-quote {
    flex-grow: 1;
    margin-bottom: 20px;
    padding: 0 10px;
}

.point-card__interview-quote p {
    font-size: 0.95rem;
    line-height: 1.8;
    color: #333;
    margin: 0;
}

.point-card__interview-button {
    display: inline-block;
    padding: 12px 24px;
    border: 2px solid #4a3faf;
    color: #4a3faf;
    text-align: center;
    font-size: 0.95rem;
    font-weight: 500;
    border-radius: 4px;
    margin: 0 auto;
    width: fit-content;
}

/* Responsive Styles for Interview Grid */
@media screen and (max-width: 768px) {
    .point-card__interview-grid {
        grid-template-columns: 1fr !important;
        gap: 25px;
        padding: 0 15px 30px 15px;
    }

    .page-shogyo .point-card__interview-grid,
    .page-evening .point-card__interview-grid,
    .page-clothing .point-card__interview-grid {
        grid-template-columns: 1fr;
    }

    .teacher-message-section {
        margin-top: var(--teacher-message-section-sp-margin-top, 90px);
    }
}

.point-card__text {
    padding: 24px 20px;
    /* text-align: center; */
    /* background-color: #fff; */
    margin-top: 10px;
}


.point-card__text-line:first-child {
    margin-bottom: 4px;
}

/* Responsive Styles for Point Card */
@media screen and (max-width: 768px) {
    .point-card {
        max-width: 100%;
    }

    .point-card__banner {
        padding: 12px 24px;
        margin: 15px auto;
        position: absolute;
        top: -40px;
        left: 50%;
        transform: translateX(-50%);
        width: 280px;
    }

    .point-card__banner-subtitle {
        font-size: 0.8rem;
    }

    .point-card__banner-title {
        font-size: 1.2rem;
    }

    .point-card__illustration {
        flex-direction: column;
        padding: var(--point-card-illustration-sp-padding, 30px 15px 5px);
        gap: 15px;
    }

    .point-card__button {
        width: 100%;
        max-width: 200px;
    }

    .point-card__text {
        padding: 20px 15px;
        /* padding-top: 50px; */
    }

    .point-card__text-line {
        font-size: 1rem;
    }
}

/* Teacher Message Section Styles */
.teacher-message-section {
    position: relative;
    /* padding: 60px 20px; */
    /* padding-top: 150px; */
    margin: 40px 0;
    margin-top: 90px;
}

.teacher-message-section.aos-animate::before {
    -webkit-transform: translateX(200px) scale(1, 1);
    -ms-transform: translateX(200px) scale(1, 1);
    -o-transform: translateX(200px) scale(1, 1);
    transform: translateX(200px) scale(0.6, 0.8);
    /* margin-bottom: 50px; */
    position: absolute;
    top: -160px;
    left: -600px;
}

/* 2番目のteacher-message-section用のカスタムプロパティ */
.teacher-message-section--color-2 {
    --teacher-message-color-2: #52b2c1;
}

/* 3番目のteacher-message-section用のカスタムプロパティ */
.teacher-message-section--color-3 {
    --teacher-message-color-3: #b980b7;
}


.teacher-message-section::before {
    content: '';
    position: absolute;
    z-index: -1;
    top: 0;
    width: 1400px;
    transition: transform 0.5s ease-out;
    height: 150%;
}

/* .course-section:nth-of-type(even) .course-main::before {
    left: auto;
    right: 50%;
    -webkit-transform-origin: left;
    -moz-transform-origin: left;
    -ms-transform-origin: left;
    -o-transform-origin: left;
    transform-origin: left;
    -webkit-transform: translateX(10vw) scale(0, 1);
    -ms-transform: translateX(10vw) scale(0, 1);
    -o-transform: translateX(10vw) scale(0, 1);
    transform: translateX(10vw) scale(0, 1);
} */

.teacher-message-background {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.teacher-message-background::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #f0f8f0;
    z-index: 0;
    /* 任意の位置に変更可能 */
    /* top: 50px; */
    /* left: 100px; */
    /* width: 500px; */
    /* height: 300px; */
}

.teacher-message-container {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}

.teacher-message-flex {
    display: flex;
    align-items: flex-start;
    gap: 40px;
}

.teacher-message-image-wrapper {
    flex: 0 0 220px;
    /* width: 300px; */
}

.teacher-message-image-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.teacher-message-content {
    flex: 1;
}

.teacher-message-title-group {
    margin-bottom: 30px;
}


.teacher-message-title-line2 {
    font-size: 28px;
    font-weight: 700;
    color: #4a90e2;
    margin: 0 0 15px 0;
    line-height: 1.4;
}

.teacher-message-subtitle {
    font-size: 16px;
    color: #333;
    margin: 0;
    font-weight: 500;
}

.teacher-message-description-wrapper {
    position: relative;
    /* padding: 10px; */
    border-radius: 8px;
    margin-top: 0;
}

.teacher-message-description-heading {
    position: relative;
    z-index: 1;
    font-size: 20px;
    font-weight: 700;
    color: #333;
    margin: 0 0 15px 0;
    padding-bottom: 10px;
    border-bottom: 2px solid #4a90e2;
}

.teacher-message-description {
    position: relative;
    z-index: 1;
    padding: 0;
}

.teacher-message-description p {
    font-size: 15px;
    line-height: 1.8;
    color: #333;
    margin: 0;
    text-align: justify;
}

/* Responsive Styles for Teacher Message Section */
@media screen and (max-width: 768px) {
    .teacher-message-section {
        padding: 40px 15px;
        margin-top: 0;
        margin-bottom: 0;
        padding-bottom: 0;
        overflow-x: hidden;
    }

    .teacher-message-section::before {
        width: 1400px;
    }

    .teacher-message-flex {
        flex-direction: column;
        gap: 30px;
    }

    .teacher-message-image-wrapper {
        flex: 0 0 auto;
        width: 100%;
        max-width: 180px;
        margin: 0 auto;
    }

    .teacher-message-title-line1,
    .teacher-message-title-line2 {
        font-size: 22px;
    }

    .teacher-message-subtitle {
        font-size: 14px;
    }

    .teacher-message-description-wrapper {
        padding: 20px;
    }

    .teacher-message-description-heading {
        font-size: 18px;
    }

    .teacher-message-description {
        padding: 0;
    }

    .teacher-message-description p {
        font-size: 14px;
    }

    .teacher-message-section.aos-animate::before {
        -webkit-transform: translateX(200px) scale(1, 1);
        -ms-transform: translateX(200px) scale(1, 1);
        -o-transform: translateX(200px) scale(1, 1);
        transform: translateX(200px) scale(0.3, 0.6);
        /* margin-bottom: 50px; */
        position: absolute;
        top: -160px;
        right: -200px !important;
        height: 100%;
    }

    .course-title-heading-wrapper {
        padding: 0 15px;
    }

    .course-title-heading {
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
        padding: 8px 12px;
    }

    .course-title-heading__icon {
        width: 28px;
        height: 28px;
    }

    .course-title-heading__japanese {
        font-size: 20px;
    }

    .course-title-heading__separator {
        font-size: 1.1rem;
    }

    .course-title-heading__english {
        font-size: 0.75rem;
    }

    .course-subjects {
        margin-top: 15px;
    }

    .course-subjects__heading {
        font-size: 0.85rem;
        margin: 0 0 10px 0;
        padding: 0 0 6px 0;
    }

    .course-subjects__list {
        gap: 8px;
    }

    .course-subjects__item {
        padding: 6px 12px;
        font-size: 0.8rem;
    }
}

/* Senior Message Section Styles */
.senior-message-section {
    /* margin: 0 auto; */
    margin-top: 30px;
    padding: 30px;
    background-color: #ebebeb;
    margin-bottom: 100px;
}

.senior-message-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    gap: 20px;
    align-items: flex-start;
}

.senior-message-left {
    /* flex: 0 0 280px; */
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.senior-message-group-1 {
    display: flex;
    flex-direction: column;
}

.senior-message-label {
    font-size: 16px;
    font-weight: 700;
    color: #4a4a4a;
    letter-spacing: 0.1em;
    margin-bottom: 15px;
}

.senior-message-divider {
    width: 100%;
    height: 1px;
    background-color: #4a4a4a;
    margin-bottom: 20px;
    position: relative;
}

.senior-message-divider::before,
.senior-message-divider::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: #4a4a4a;
}

.senior-message-divider::before {
    top: -5px;
}

.senior-message-divider::after {
    top: 5px;
}

.senior-message-course {
    font-size: 14px;
    color: #4a4a4a;
    margin: 0;
    font-weight: 500;
}

.senior-message-group-2 {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.senior-message-image-wrapper {
    /* flex: 0 0 auto; */
    width: 100px;
    height: auto;
    border-radius: 50%;
    /* overflow: hidden; */
}

.senior-message-image-wrapper img {
    width: 100%;
    height: 100%;
    /* object-fit: cover; */
}

.senior-message-title-group {
    flex: 1;
    display: flex;
    flex-direction: column;
}


.senior-message-author {
    font-size: 14px;
    color: #4a4a4a;
    margin: 0;
    font-weight: 500;
}

.senior-message-right {
    /* flex: 1; */
    width: 60%;
    /* padding: 50px; */
}

.senior-message-content {
    background-color: #ffffff;
    padding: 20px;
}

.senior-message-content p {
    font-size: 15px;
    line-height: 1.8;
    color: #4a4a4a;
    margin: 0 0 20px 0;
}

.senior-message-content p:last-child {
    margin-bottom: 0;
}

/* Responsive Styles for Senior Message Section */
@media screen and (max-width: 768px) {
    .senior-message-section {
        margin: 40px 0;
        padding: 0 15px;
        margin-left: 10px;
        margin-right: 10px;
    }

    .senior-message-container {
        flex-direction: column;
        gap: 30px;
    }

    .senior-message-left {
        flex: 0 0 auto;
        width: 100%;
        gap: 20px;
    }

    .senior-message-group-2 {
        gap: 12px;
    }

    .senior-message-image-wrapper {
        width: 100px;
        height: 100px;
    }

    .senior-message-title {
        font-size: 20px;
    }

    .senior-message-content p {
        font-size: 14px;
    }

    .point-card-section {
        margin-top: 60px;
        margin-bottom: 0;
    }

    .point-title img {
        width: 250px;
    }

    .senior-message-right {
        width: 100%;
        padding-bottom: 15px;
    }

}

.inner-info-box-02 {/* background-color: #ffffff; *//* padding: 20px; */border-radius: 12px;display: flex;flex-direction: column; /* 項目を縦に並べる */gap: 11px; /* 項目間の隙間 *//* margin-bottom: 20px; *//* margin-top: 30px; *//* padding: 20px; */}

/* 追加：チェックとテキストを横並びにするためのラップ要素 */
.info-item-02 {display: flex;align-items: center; /* 上下中央揃え */gap: 10px;justify-content: center;/* チェックとテキストの間の距離 */}

/* パソコン表示時：左寄せ */
@media (min-width: 768px) {
  .info-item-02 {
    justify-content: flex-start;
  }
  
  .student-plan-text {
    text-align: left !important;
  }
}


.inner-text-02 strong {/* display: block; */margin-bottom: 5px;font-size: 17px;color: #4b4b4b;font-weight: bold;}


/* ==========================================================================
   公開授業バナーセクション
   ========================================================================== */
.open-class-banner {
    background-color: #fff;
    padding: 40px 20px;
    margin: 60px 0;
}

.open-class-banner__container {
    max-width: 750px;
    margin: 0 auto;
}

.open-class-banner__content {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 2px solid var(--child-course-fashion);
    border-radius: 8px;
    padding: 30px;
    background-color: #fff;
    color: var(--child-course-fashion);
}

.open-class-banner__text {
    width: 70%;
    min-width: 0;
}

.open-class-banner__title {
    font-size: 24px;
    font-weight: 700;
    color: #000;
    margin: 0 0 20px 0;
    line-height: 1.4;
}

.open-class-banner__description {
    font-size: 1rem;
    color: #000;
    line-height: 1.8;
    margin: 0;
}

.open-class-banner__button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: #ffd700;
    color: #000;
    padding: 12px 24px;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    transition: background-color 0.3s ease;
}

.open-class-banner__button:hover {
    background-color: #ffed4e;
    color: #000;
    text-decoration: none;
}

.open-class-banner__button-icon {
    font-size: 1.2rem;
    font-weight: 700;
}

.open-class-banner__images {
    position: absolute;
    top: -50px;
    right: 20px;
    display: flex;
    align-items: center;
    /* flex-shrink: 0; */
    /* overflow: hidden; */
}

.open-class-banner__image-item {
    width: 220px;
    height: auto;
    position: relative;
}

.open-class-banner__image {
    width: 100%;
    /* height: 100%; */
    /* object-fit: cover; */
    /* border-radius: 4px; */
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
    .open-class-banner {
        padding: 30px 15px;
        margin: 40px 0;
    }

    .open-class-banner__content {
        flex-direction: column;
        padding: 30px 20px;
        gap: 10px;
    }

    .open-class-banner__title {
        font-size: 1.5rem;
    }

    .open-class-banner__description {
        font-size: 0.9rem;
    }

    .open-class-banner__text {
        width: 100%;
    }

    .open-class-banner__images {
        position: static !important;
        width: 100%;
        justify-content: center;
    }

    .open-class-banner__image-item {
        /* width: 100%; */
        max-width: 300px;
        /* height: 200px; */
    }
}

.course-qa-container {max-width: 900px;margin: 20px auto;padding: 0 20px;font-family: "Helvetica Neue", Arial, sans-serif;margin-bottom: 100px !important;}


/* ヘッダー部分 */
.course-qa-header {
text-align: center;
margin-bottom: 10px;
}


.course-qa-sub {
display: block;
color: #218321;
font-weight: bold;
letter-spacing: 0.1em;
font-size: 14px;
margin-bottom: 5px;
}


.course-qa-title {
font-size: 28px;
color: #333;
position: relative;
display: inline-block;
padding-bottom: 15px;
}


.course-qa-title::after {
content: "";
position: absolute;
left: 50%;
bottom: 0;
transform: translateX(-50%);
width: 60px;
height: 2px;
border-radius: 5px;
background-color: #a0dba0; /* アクセントの緑色 */
}


/* 各質問の枠 */
.course-qa-item {
background: #fff;
border: 2px solid #e4cfee;
border-radius: 12px;
margin-bottom: 15px;
overflow: hidden;
transition: all 0.3s ease;
}


.course-qa-item[open] {
border-color: var(--child-purple-500);
box-shadow: 0 5px 15px rgba(45, 90, 39, 0.1);
}

.course-qa-list {
    margin-top: 20px;
}

/* 質問エリア */
.course-qa-question {
padding: 20px 25px;
list-style: none;
cursor: pointer;
font-weight: bold;
font-size: 17px;
color: #333;
display: flex;
align-items: center;
position: relative;
}


/* Qアイコン */
.course-qa-icon {
background: var(--child-purple-500);
color: #fff;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
margin-right: 15px;
font-size: 20px;
flex-shrink: 0;
}


/* 開閉の矢印 */
.course-qa-question::after {
content: "▼";
position: absolute;
right: 25px;
font-size: 12px;
color: var(--child-purple-500);
transition: transform 0.3s;
}


.course-qa-item[open] .course-qa-question::after {
transform: rotate(180deg);
}


.course-qa-question::-webkit-details-marker {
display: none;
}


/* 回答エリア */
.course-qa-answer {
padding: 0 25px 25px 68px; /* Qアイコンの幅に合わせて左余白を調整 */
font-size: 15px;
line-height: 1.8;
color: #555;
display: flex;
position: relative;
}


/* Aアイコン（テキストのみ） */
.course-qa-icon-a {
position: absolute;
left: 25px;
color: #e35122; /* Aは少し目立つオレンジ系で差別化（不要なら緑へ） */
font-weight: bold;
font-size: 25px;
line-height: 1;
}


.course-qa-answer p {
margin: 0;
}

.lib-arts-section {
    color: #333;
    max-width: 1000px;
    margin: 40px auto;
    padding: 25px;
    border-radius: 10px;
    line-height: 1.8;
    margin-bottom: 110px !important;
}

@media (max-width: 768px) {
    .lib-arts-section {
        width: calc(100% - (var(--lib-arts-section-sp-side-space, 15px) * 2));
        margin-left: auto;
        margin-right: auto;
        padding: 15px;
    }
}


/* スマホ調整 */
@media (max-width: 600px) {
.course-qa-question {
  font-size: 15px;
  padding: 15px;
}
.course-qa-answer {
  padding-left: 55px;
}
.course-qa-icon-a {
  left: 15px;
}

.course-qa-question::after {
  position: absolute;
  right: 5px;
}

.flexible-check {
padding: 0;
margin-top: 50px;
}
}

.section-margin-bottom {
    margin-bottom: 100px !important;
}

/* Feature Banner Styles（from clothing.css） */
.feature-banner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 40px 0;
}

.feature-banner__item {
    display: block;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    /* border-radius: 8px; */
    transition: transform 0.3s ease;
}

.feature-banner__item:hover {
    transform: translateY(-5px);
}

.feature-banner__image-wrapper {
    position: relative;
    width: 100%;
    height: auto;
    /* overflow: hidden; */
    /* border-radius: 8px; */
}

.feature-banner__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.feature-banner__item:hover .feature-banner__image {
    transform: scale(1.05);
}

.feature-banner__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    /* bottom: 0; */
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.5));
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 20px;
    transition: background 0.3s ease;
}

.feature-banner__item:hover .feature-banner__overlay {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
}

.feature-banner__text {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.feature-banner__japanese {
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
}

.feature-banner__english {
    font-size: 0.9rem;
    font-weight: 500;
    color: #fff;
    /* text-transform: uppercase; */
    letter-spacing: 0.05em;
    line-height: 1.2;
}

/* Responsive Styles for Feature Banner */
@media screen and (max-width: 768px) {
    .feature-banner {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .page-clothing .feature-banner.feature-banner--clothing {
        grid-template-columns: 1fr !important;
    }

    .feature-banner__image-wrapper {
        height: 250px;
    }

    .feature-banner__japanese {
        font-size: 1.2rem;
    }

    .feature-banner__english {
        font-size: 0.8rem;
    }
}

/* Point Feature Section Styles（from clothing.css） */
.point-feature {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    margin: 0 auto;
    /* min-height: 400px; */
    padding: 30px 50px;
}

.point-feature--reverse {
    flex-direction: row-reverse !important;
}

.point-feature__image-wrapper {
    flex: 1;
    position: relative;
    /* border-radius: 8px; */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.point-feature__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /* min-height: 350px; */
}

.point-feature__badge {
    position: absolute;
    top: -28px;
    left: -20px;
    width: 65px;
    height: 65px;
    border-radius: 50%;
    background-color: rgb(255 255 255);
    border: 2px solid var(--child-course-fashion);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    z-index: 10;
    font-weight: 700;
    color: var(--child-course-fashion);
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.3);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    line-height: 1;
    gap: 2px;
}

.point-feature__badge-number {
    font-size: 25px;
    line-height: 1;
}

.point-feature__badge-text {
    font-size: 18px;
    line-height: 1;
}

.point-feature__content {
    flex: 1;
    position: relative;
    /* padding: 40px; */
    /* background-color: #fff; */
    /* min-height: 400px; */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.point-feature__title {
    font-size: 1.8rem;
    font-weight: 700;
    color: #333;
    margin: 0 0 30px 0;
    line-height: 1.4;
}

.point-feature__text {
    font-size: 1rem;
    line-height: 1.8;
    color: #555;
    margin-bottom: 30px;
}

.point-feature__text p {
    margin: 0;
}

.point-feature__highlight {
    color: #56ad6a;
    font-weight: 700;
    font-size: 1.1rem;
}

/* Responsive Styles for Point Feature */
@media screen and (max-width: 768px) {
    .point-feature {
        flex-direction: column;
        gap: 20px;
        margin: 0;
        padding: 20px;
    }

    .point-feature--reverse {
        flex-direction: column;
    }

    .point-feature__image-wrapper {
        width: 100%;
    }

    .point-feature__image {
        min-height: 250px;
    }

    .point-feature__badge {
        top: -20px;
        left: -20px;
        width: 70px;
        height: 70px;
    }

    .point-feature__badge-number {
        font-size: 28px;
    }

    .point-feature__badge-text {
        font-size: 14px;
    }

    .point-feature__content {
        padding: 0;
        min-height: auto;
    }

    .point-feature__title {
        font-size: 1.5rem;
        margin-bottom: 20px;
    }

    .point-feature__text {
        font-size: 0.95rem;
        margin-bottom: 20px;
    }

    .course-grid {
        margin-bottom: 30px !important;
    }

    .cmn-contents-wrapper {
        padding: 10px;
    }

  .open-class-banner__image-item {
    width: 50%;
}

.point-feature--04 {
    margin-bottom: 50px;
}

}

.point-feature--04 {
    margin-bottom: 100px;
}

.shogyo-news-wrap {
    margin-top: 0;
}