/* ==========================================================================
   Subpage Header
   ========================================================================== */
.subpage-header {
    width: 100%;
}

.subpage-header img {
    width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================================
   Case Section
   ========================================================================== */
.case {
    padding: 80px 0 0;
    margin-top: 50px;
}

.case__inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
}

.case__title {
    text-align: center;
    margin-bottom: 20px;
}

.case__title img {
    max-width: 500px;
    width: 100%;
    height: auto;
}

.case__note {
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin: 0;
}

/* Tabs */
.case-tabs {
    display: flex;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 40px auto;
    max-width: 1000px;
}

.case-tab {
    flex: 1;
    text-align: center;
    padding: 15px 10px;
    background-color: #fff;
    border: 1px solid #99c2ff;
    color: #333;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s;
}

.case-tab:not(:last-child) {
    border-right: none;
}

.case-tab:first-child {
    border-radius: 8px 0 0 8px;
}

.case-tab:last-child {
    border-radius: 0 8px 8px 0;
}

.case-tab.is-active, .case-tab:hover {
    background-color: #99c2ff;
    color: #fff;
    border-color: #99c2ff;
}

/* Case Content & Background */
.case-content {
    background: url('../img/subpage/case_bg.webp') no-repeat center top / cover;
    padding: 60px 0 100px;
    width: 100%;
}

.case-content__inner {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 40px;
}

.case-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
}

/* Card Styling */
.case-card {
    background-color: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.case-card__header {
    background-color: #2b8ee3;
    color: #fff;
    font-size: 20px;
    font-weight: 900;
    text-align: center;
    padding: 15px 20px;
    letter-spacing: 0.05em;
}

.case-card__body {
    padding: 30px;
    display: flex;
    gap: 30px;
}

.case-card__left {
    width: 220px;
    flex-shrink: 0;
}

.case-card__tags {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
    flex-wrap: wrap;
}

.case-card__tag {
    color: #ff3b30;
    border: 1px solid #ff3b30;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
}

.case-card__type {
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 5px;
}

.case-card__icon {
    color: #ff3b30;
}

.case-card__thumb {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.case-card__thumb img {
    width: 100%;
    height: auto;
    display: block;
}

.case-card__right {
    flex: 1;
}

.case-card__profile {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.case-card__profile-img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.case-card__profile-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-card__name {
    font-size: 16px;
    font-weight: 900;
}

/* Timeline */
.case-time {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.case-time__group {
    width: 100%;
    margin-bottom: 15px;
}

.case-time__line {
    text-align: center;
    position: relative;
    margin-bottom: 15px;
}

.case-time__line::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background-color: #ccc;
    z-index: 1;
}

.case-time__line span {
    background-color: #fff;
    padding: 0 15px;
    position: relative;
    z-index: 2;
    font-size: 13px;
    font-weight: 700;
    color: #666;
}

.case-time__row {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    justify-content: flex-start;
}

.case-time__badge {
    background-color: #f3ebd4;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    min-width: 70px;
    text-align: center;
}

.case-time__badge--yellow {
    background-color: #ffe600;
}

.case-time__badge--light {
    background-color: #f5f5f5;
}

.case-time__text {
    font-size: 13px;
    font-weight: 700;
    flex: 1;
    line-height: 1.4;
}

.text-red {
    color: #ff3b30;
}

.case-time__arrow {
    font-size: 10px;
    color: #666;
    margin: 5px 0;
}

.case-card__socials {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    justify-content: flex-start;
}

.case-card__socials img {
    width: 24px;
    height: 24px;
}

.case-more {
    text-align: center;
    margin-top: 60px;
}

.btn-view-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: opacity 0.3s;
}

.btn-view-more:hover {
    opacity: 0.8;
}

.btn-view-more__text {
    font-size: 14px;
    font-weight: 900;
    color: #3b4257;
    margin-right: 15px;
    letter-spacing: 0.1em;
}

.btn-view-more__icon {
    width: 56px;
    height: 28px;
    border-radius: 14px;
    background-color: #6b82ce;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 900px) {
    .case-list {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 768px) {
    .case {
        padding: 50px 0 0;
        margin-top: 30px;
    }
    .case__inner {
        padding: 0 20px;
    }
    .case__title {
        margin-bottom: 15px;
    }
    .case__title img {
        max-width: 250px;
    }
    
    .case-tabs {
        flex-wrap: wrap;
        border-radius: 8px;
        overflow: hidden;
        margin: 30px auto;
    }
    .case-tab {
        flex: 1 1 33.333%;
        border: 1px solid #99c2ff;
        border-radius: 0 !important;
        font-size: 14px;
        padding: 10px 5px;
    }
    
    .case-content {
        padding: 40px 0 60px;
    }
    .case-content__inner {
        padding: 0 20px;
    }
    .case-card__header {
        font-size: 16px;
    }
    .case-card__body {
        flex-direction: column;
        padding: 20px;
        gap: 20px;
    }
    .case-card__left {
        width: 100%;
    }
    .case-card__thumb {
        max-width: 300px;
        margin: 0 auto;
    }
    .case-time__text {
        font-size: 12px;
    }
    .case-more {
        margin-top: 40px;
    }
}

/* ==========================================================================
   Special Instructor Section
   ========================================================================== */
.special-instructor {
    padding: 80px 0 0;
    margin-top: 50px;
}

.special-instructor__inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
}

.special-instructor__title {
    text-align: center;
    margin-bottom: 60px;
}

.special-instructor__title img {
    max-width: 500px;
    width: 100%;
    height: auto;
}

.special-instructor__list {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.instructor-card {
    background-color: #fff;
    border-radius: 20px;
    box-shadow: 0 0px 30px rgba(255, 28, 32, 0.14);
    padding: 40px 30px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.instructor-card__img {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 20px;
}

.instructor-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.instructor-card__name {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin-bottom: 20px;
}

.instructor-card__sns {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin: 0 0 30px;
    padding: 0;
    list-style: none;
}

.instructor-card__sns li {
    display: block;
}

.instructor-card__sns img {
    width: 24px;
    height: 24px;
    transition: opacity 0.3s;
}

.instructor-card__sns a:hover img {
    opacity: 0.7;
}

.instructor-card__link {
    font-size: 12px;
    font-family: inherit;
    font-weight: 900;
    color: #333;
    display: inline-flex;
    align-items: center;
    align-self: flex-end;
    transition: opacity 0.3s;
    letter-spacing: 0.05em;
}

.instructor-card__link span {
    margin-left: 5px;
    font-size: 14px;
}

.instructor-card__link:hover {
    opacity: 0.7;
}

@media screen and (max-width: 768px) {
    .special-instructor {
        padding: 50px 0 0;
        margin-top: 30px;
    }
    .special-instructor__inner {
        padding: 0 20px;
    }
    .special-instructor__title {
        margin-bottom: 40px;
    }
    .special-instructor__title img {
        max-width: 250px;
    }
    .special-instructor__list {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ==========================================================================
   Instructor Section
   ========================================================================== */

.instructor {
    padding: 80px 0 0;
    margin-top: 50px;
}

.instructor__inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
}

.instructor__title {
    text-align: center;
    margin-bottom: 60px;
}

.instructor__title img {
    max-width: 500px;
    width: 100%;
    height: auto;
}

.instructor__list {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

@media screen and (max-width: 768px) {
    .instructor {
        padding: 50px 0 0;
        margin-top: 30px;
    }
    .instructor__inner {
        padding: 0 20px;
    }
    .instructor__title {
        margin-bottom: 40px;
    }
    .instructor__title img {
        max-width: 250px;
    }
    .instructor__list {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ==========================================================================
   Manager Section
   ========================================================================== */
.manager {
    padding: 80px 0 0;
    margin-top: 50px;
}

.manager__inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
}

.manager__title {
    text-align: center;
    margin-bottom: 60px;
}

.manager__title img {
    max-width: 500px;
    width: 100%;
    height: auto;
}

.manager__list-main {
    max-width: 1180px;
    margin: 0 auto 50px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.manager__list-sub {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}

.manager-card-sm {
    background-color: #fff;
    border-radius: 20px;
    box-shadow: 0 0px 30px rgba(255, 28, 32, 0.14);
    padding: 30px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.manager-card-sm__img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 15px;
}

.manager-card-sm__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.manager-card-sm__name {
    font-size: 14px;
    font-weight: 700;
    color: #333;
}

@media screen and (max-width: 900px) {
    .manager__list-main {
        grid-template-columns: repeat(2, 1fr);
    }
    .manager__list-sub {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (max-width: 768px) {
    .manager {
        padding: 50px 0 0;
        margin-top: 30px;
    }
    .manager__inner {
        padding: 0 20px;
    }
    .manager__title {
        margin-bottom: 40px;
    }
    .manager__title img {
        max-width: 250px;
    }
    .manager__list-main {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 30px;
    }
    .manager__list-sub {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
}

/* ==========================================================================
   Profile Section
   ========================================================================== */
.profile {
    position: relative;
    width: 100%;
    background: url('../img/subpage/profile_bg.webp') no-repeat right bottom / 100% auto;
    padding: 70px 0 150px;
    margin-top: 100px;
    overflow: hidden;
}

.profile__inner {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 40px;
}

.profile__title {
    margin-bottom: 40px;
    margin-left: -35px;
}

.profile__title img {
    max-width: 400px;
    width: 100%;
    height: auto;
}

.profile__content {
    position: relative;
    z-index: 1;
}

.profile__box {
    background-color: #fff;
    border-radius: 20px;
    padding: 30px 118px;
    width: 60%;
    max-width: 840px;
    box-shadow: 0 0px 40px rgba(255,58,23,0.15);
    position: relative;
    z-index: 2;
}

.profile__role {
    font-size: 16px;
    font-weight: 900;
    margin-bottom: 10px;
    color: #333;
}

.profile__name {
    font-size: 48px;
    font-weight: 900;
    line-height: 1;
    color: #FF3B30;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.profile__text {
    font-size: 15px;
    line-height: 2.2;
    font-weight: 700;
    color: #333;
}

@media screen and (max-width: 768px) {
    .profile {
        margin-top: 30px;
        padding: 60px 0;
        background: none;
    }
    .profile::before {
        content: '';
        position: absolute;
        top: 30%;
        bottom: 15%;
        left: 5px;
        right: 5px;
        background: linear-gradient(135deg, #ff6351, #ff3b30);
        transform: skewY(-2deg);
        z-index: 1;
    }
    .profile__inner {
        padding: 0 20px;
    }
    .profile__title {
        text-align: center;
        margin-left: 0;
    }
    .profile__title img {
        max-width: 250px;
    }
    .profile__box {
        padding: 30px;
        width: 100%;
        max-width: 100%;
        position: relative;
    }
    .profile__box::after {
        content: '';
        position: absolute;
        top: -30px;
        right: -20px;
        width: 220px;
        height: 300px;
        background: url('../img/subpage/profile-sp_bg.webp') no-repeat right top / 220px auto;
        pointer-events: none;
        z-index: 10;
    }
    .profile__name {
        font-size: 28px;
    }
    .profile__text{
        margin-top:140px;
    }
}

/* ==========================================================================
   Message Section
   ========================================================================== */
.message {
    width: 100%;
    background: #fff url('../img/subpage/message_bg.webp') no-repeat bottom center / 100% auto;
    padding: 100px 0 200px;
    margin-top: 100px;
}

.message__inner {
    width: 100%;
    max-width: 924px;   /* 924px（パディングも含む場合など考慮だが、コンテンツ幅のMAXとして指定） */
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}

.message__title-area {
    text-align: center;
    margin-bottom: 60px;
}

.message__title-img {
    max-width: 500px;
    width: 100%;
    height: auto;
}

.message__content {
    font-size: 15px;
    line-height: 2.2;
    font-weight: 700;
    color: #333;
}

.message__content p {
    margin-bottom: 2em;
}

.message__content p:last-child {
    margin-bottom: 0;
}

.message__highlight {
    background-color: #FF3B30;
    color: #fff;
    padding: 2px 4px;
    display: inline-block;
}

@media screen and (max-width: 768px) {
    .message {
        padding: 60px 0 100px;
        margin-top: 60px;
    }
    .message__inner {
        padding: 0 20px;
    }
    .message__title-img {
        max-width: 280px;
    }
    .message__title-area {
        margin-bottom: 40px;
    }
    .message__content {
        font-size: 14px;
        line-height: 2;
    }
}

/* ==========================================================================
   Teacher Profile Section
   ========================================================================== */
.teacher-profile {
    position: relative;
    width: 100%;
    padding: 100px 0 150px;
}

.teacher-profile__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
}

.teacher-profile__title {
    text-align: center;
    margin-bottom: 50px;
}

.teacher-profile__title img {
    max-width: 400px;
    width: 100%;
    height: auto;
}

.teacher-profile__box {
    background-color: #fff;
    border-radius: 20px;
    padding: 60px;
    box-shadow: 0 0 40px rgba(255, 58, 23, 0.15);
    position: relative;
}

.teacher-profile__top {
    display: flex;
    justify-content: space-between;
    gap: 60px;
    margin-bottom: 50px;
}

.teacher-profile__info {
    flex: 1;
}

.teacher-profile__role {
    font-size: 14px;
    font-weight: 900;
    margin-bottom: 15px;
    color: #333;
}

.teacher-profile__name {
    font-size: 32px;
    font-weight: 900;
    color: #111;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.teacher-profile__text {
    font-size: 11px;
    line-height: 2.2;
    font-weight: 700;
    color: #333;
    margin-bottom: 40px;
}

/* SNS */
.teacher-profile__sns {
    display: flex;
    align-items: center;
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.teacher-profile__sns li {
    display: block;
}

.teacher-profile__sns img {
    width: 24px;
    height: 24px;
    transition: opacity 0.3s;
}

.teacher-profile__sns a:hover img {
    opacity: 0.7;
}

/* Image */
.teacher-profile__image {
    width: 320px;
    height: 320px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
}

.teacher-profile__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Genres (bottom blue box) */
.teacher-profile__genres {
    background-color: #5a6693;
    border-radius: 12px;
    padding: 24px 40px;
    display: flex;
    align-items: center;
    gap: 40px;
}

.teacher-profile__genres-title {
    font-size: 18px;
    font-weight: 900;
    color: #fff;
    white-space: nowrap;
}

.teacher-profile__genres-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.teacher-profile__genre {
    background-color: #fff;
    color: #333;
    font-size: 11px;
    font-weight: 700;
    padding: 8px 24px;
    border-radius: 4px;
}

/* Responsive */
@media screen and (max-width: 900px) {
    .teacher-profile__top {
        flex-direction: column-reverse;
        align-items: center;
        gap: 40px;
    }
    .teacher-profile__image {
        width: 260px;
        height: 260px;
    }
    .teacher-profile__genres {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 24px;
    }
}

@media screen and (max-width: 768px) {
    .teacher-profile {
        padding: 60px 0;
        margin-top: 30px;
    }
    .teacher-profile__inner {
        padding: 0 20px;
    }
    .teacher-profile__title img {
        max-width: 250px;
    }
    .teacher-profile__box {
        padding: 30px 20px;
    }
    .teacher-profile__name {
        font-size: 24px;
    }
    .teacher-profile__text {
        font-size: 14px;
    }
    .teacher-profile__image {
        width: 200px;
        height: 200px;
    }
}

/* ==========================================================================
   Interview Section
   ========================================================================== */
.interview {
    padding: 80px 0 100px;
    background-color: #f6f7f9;
}

.interview__inner {
    width: 100%;
    margin: 0 auto;
    max-width: 1448px;
}

.interview__title {
    text-align: center;
    margin-bottom: 60px;
}

.interview__title img {
    max-width: 500px;
    width: 100%;
    height: auto;
}

.interview-list {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.interview-card {
    background-color: #fff;
    border-radius: 12px;
    padding: 50px;
    display: flex;
    gap: 50px;
    align-items: center;
    box-shadow: 0 0 40px rgba(255, 60, 60, 0.12);
    box-sizing: border-box;
}

.interview-card--reverse {
    flex-direction: row-reverse;
}

.interview-card__media {
    width: 320px;
    flex-shrink: 0;
}

.interview-card__img-wrap {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}

.interview-card__img {
    width: 100%;
    height: auto;
    display: block;
}

.interview-card__label {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #ff5034;
    color: #fff;
    text-align: center;
    padding: 12px 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.interview-card__role {
    font-size: 11px;
    font-weight: 700;
}

.interview-card__name {
    font-size: 13px;
    font-weight: 900;
}

.interview-card__sns {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 15px;
}

.interview-card__sns img {
    width: 24px;
    height: 24px;
}

.interview-card__content {
    flex: 1;
}

.interview-card__title {
    margin-bottom: 30px;
    line-height: 1.4;
    font-size: 24px;
    font-weight: 900;
    letter-spacing: 0.05em;
}

.text-color-1 { color: #61A4F4; }
.text-color-2 { color: #FF855D; }
.text-color-3 { color: #8C9EFF; }
.text-color-4 { color: #61A4F4; }

.interview-card__text {
    font-size: 14px;
    font-weight: 700;
    line-height: 2;
    color: #333;
}

@media screen and (max-width: 900px) {
    .interview-card {
        flex-direction: column;
        padding: 40px 30px;
        gap: 30px;
    }
    .interview-card--reverse {
        flex-direction: column;
    }
    .interview-card__media {
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }
    .interview-card__title {
        font-size: 20px;
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    .interview {
        padding: 60px 0 60px;
        margin-top: 30px;
    }
    .interview__title img {
        max-width: 250px;
    }
    .interview__inner {
        padding: 0 20px;
    }
    .interview-card {
        padding: 30px 20px;
    }
    .interview-card__title {
        font-size: 18px;
    }
    .interview-card__text {
        font-size: 13px;
    }
}

/* ==========================================================================
   Media Section
   ========================================================================== */
.media {
    padding: 100px 0;
    background-color: #fff;
}

.media__inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
    max-width: 1200px;
}

.media__title {
    text-align: center;
    margin-bottom: 60px;
}

.media__title img {
    max-width: 300px;
    width: 100%;
    height: auto;
}

.media__list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 80px;
}

.media__item img {
    max-width: 250px;
    height: auto;
    display: block;
}

@media screen and (max-width: 768px) {
    .media {
        padding: 60px 0;
    }
    .media__inner {
        padding: 0 20px;
    }
    .media__title {
        margin-bottom: 40px;
    }
    .media__title img {
        max-width: 200px;
    }
    .media__list {
        flex-direction: column;
        gap: 40px;
    }
    .media__item img {
        max-width: 200px;
    }
}

/* ==========================================================================
   Curriculum Intro Section
   ========================================================================== */
.curriculum-intro {
    padding: 80px 0;
    margin-top: 50px;
}

.curriculum-intro__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center;
    gap: 60px;
    box-sizing: border-box;
}

.curriculum-intro__left {
    flex: 1;
}

.curriculum-intro__title {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.5;
    color: #0b122e;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.curriculum-intro__text {
    font-size: 14px;
    font-weight: 700;
    line-height: 2;
    color: #333;
}

.curriculum-intro__right {
    flex: 1;
    border-radius: 20px;
    overflow: hidden;
}

.curriculum-intro__right img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 20px;
    object-fit: cover;
}

@media screen and (max-width: 900px) {
    .curriculum-intro__inner {
        flex-direction: column;
        gap: 40px;
    }
}

@media screen and (max-width: 768px) {
    .curriculum-intro {
        padding: 50px 0;
        margin-top: 30px;
    }
    .curriculum-intro__inner {
        padding: 0 20px;
    }
    .curriculum-intro__title {
        font-size: 24px;
        margin-bottom: 20px;
    }
    .curriculum-intro__text {
        font-size: 13px;
    }
}

/* ==========================================================================
   Support Section
   ========================================================================== */
.support {
    background: url('../img/subpage/support_bg.webp') no-repeat center center / cover;
    padding: 150px 0;
    margin-top: 100px;
    text-align: center;
}

.support__inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
}

.support__title img {
    max-width: 500px;
    width: 100%;
    height: auto;
}

@media screen and (max-width: 768px) {
    .support {
        padding: 80px 0;
        margin-top: 60px;
    }
    .support__inner {
        padding: 0 20px;
    }
    .support__title img {
        max-width: 280px;
    }
}

.support__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    margin-top: 120px;
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

.support-card {
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05); /* very soft shadow */
    padding: 70px 20px 40px; /* pad top to make room for absolute icon */
    position: relative;
    text-align: center;
    display: flex;
    flex-direction: column;
}

.support-card__icon {
    position: absolute;
    top: -70px; /* shift up according to icon size */
    left: 50%;
    transform: translateX(-50%);
    width: 140px; 
    height: 140px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.support-card__icon img {
    max-width: 100%;
    max-height: 100%;
    height: auto;
    display: block;
}

.support-card__content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.support-card__subtitle {
    color: #ff5034;
    font-size: 13px;
    font-weight: 900;
    margin-bottom: 20px;
    letter-spacing: 0.1em;
}

.support-card__title {
    font-size: 16px;
    font-weight: 900;
    color: #0b122e;
    margin-bottom: 20px;
    line-height: 1.5;
    min-height: 48px; /* To align all descriptions properly */
    display: flex;
    align-items: center;
    justify-content: center;
}

.support-card__text {
    font-size: 13px;
    font-weight: 700;
    color: #333;
    line-height: 1.8;
}

@media screen and (max-width: 1000px) {
    .support__list {
        grid-template-columns: repeat(2, 1fr);
        gap: 100px 30px;
        margin-top: 100px;
    }
}

@media screen and (max-width: 600px) {
    .support__list {
        grid-template-columns: 1fr;
        gap: 100px 20px;
    }
    .support-card__title {
        min-height: auto;
    }
}

/* ==========================================================================
   Support Detail Section
   ========================================================================== */
.support-detail {
    background-color: #ffffff;
    background-image: url('../img/subpage/support-01_bg.webp');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;
    padding: 100px 0 120px;
}

.support-detail__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
}

.support-detail__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 80px;
}

.support-detail__header-left {
    padding-top: 40px;
}

.support-detail__title {
    font-size: 32px;
    font-weight: 900;
    color: #0b122e;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
}

.support-detail__lead {
    font-size: 14px;
    font-weight: 900;
    color: #0b122e;
    line-height: 1.8;
}

.support-detail__header-right {
    width: 500px;
    max-width: 50%;
}

.support-detail__header-right img {
    width: 100%;
    height: auto;
    display: block;
}

/* Feature middle block */
.support-detail__feature {
    display: flex;
    align-items: center;
    gap: 60px;
    margin-bottom: 80px;
}

.support-detail__feature-img {
    flex: 1;
    border-radius: 16px;
    overflow: hidden;
}

.support-detail__feature-img img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 3/2;
    object-fit: cover;
    background-color: #ddd;
}

.support-detail__feature-content {
    flex: 1;
}

.support-detail__feature-title {
    font-size: 20px;
    font-weight: 900;
    color: #ff5034;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.support-detail__feature-text {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    line-height: 2;
}

/* Points bottom block */
.support-detail__points {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.support-point__img {
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 25px;
}

.support-point__img img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4/3;
    object-fit: cover;
    background-color: #ddd;
}

.support-point__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}

.support-point__badge {
    background-color: #ff5034;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    padding: 6px 10px;
    border-radius: 4px;
    display: inline-block;
    line-height: 1;
}

.support-point__name {
    font-size: 14px;
    font-weight: 900;
    color: #36a1ea;
}

.support-point__text {
    font-size: 12px;
    font-weight: 700;
    color: #333;
    line-height: 1.8;
}

@media screen and (max-width: 900px) {
    .support-detail__header {
        flex-direction: column-reverse;
        gap: 40px;
    }
    .support-detail__header-right {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }
    .support-detail__header-left {
        padding-top: 0;
        text-align: center;
    }
    .support-detail__feature {
        flex-direction: column;
        gap: 30px;
    }
    .support-detail__points {
        grid-template-columns: 1fr;
        gap: 50px;
    }
}

@media screen and (max-width: 768px) {
    .support-detail {
        padding: 60px 0 80px;
        background-size: cover;
    }
    .support-detail__inner {
        padding: 0 20px;
    }
    .support-detail__title {
        font-size: 24px;
    }
    .support-detail__lead {
        font-size: 13px;
    }
    .support-detail__feature-title {
        font-size: 18px;
    }
    .support-detail__feature-text {
        font-size: 13px;
    }
    .support-point__text {
        font-size: 12px;
    }
}

/* ==========================================================================
   Support 02 Section
   ========================================================================== */
.support-02 {
    background-color: #ffffff;
    background-image: url('../img/subpage/support-02_bg.webp');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;
    padding: 120px 0 100px;
}

.support-02__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
}

.support-02__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 80px;
}

.support-02__header-left {
    padding-top: 50px;
}

.support-02__title {
    font-size: 28px;
    font-weight: 900;
    color: #0b122e;
    margin-bottom: 25px;
    letter-spacing: 0.05em;
}

.support-02__lead {
    font-size: 14px;
    font-weight: 900;
    color: #0b122e;
    line-height: 1.8;
}

.support-02__header-right {
    width: 450px;
    max-width: 50%;
}

.support-02__header-right img {
    width: 100%;
    height: auto;
    display: block;
}

.support-02__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 50px 30px;
    margin-bottom: 60px;
}

.support-02-item {
    text-align: center;
}

.support-02-item__img {
    width: 180px;
    height: 180px;
    margin: 0 auto 20px;
    border-radius: 50%;
    position: relative;
    box-shadow: 0 0 30px rgba(255, 60, 60, 0.2);
    background-color: #fff;
    padding: 2px;
}

.support-02-item__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

.support-02-item__name {
    font-size: 14px;
    font-weight: 900;
    color: #0b122e;
}

.support-02__more {
    text-align: center;
}

@media screen and (max-width: 900px) {
    .support-02__header {
        flex-direction: column-reverse;
        gap: 40px;
    }
    .support-02__header-right {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }
    .support-02__header-left {
        padding-top: 0;
        text-align: center;
    }
    .support-02__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (max-width: 768px) {
    .support-02 {
        padding: 60px 0;
        background-size: cover;
    }
    .support-02__inner {
        padding: 0 20px;
    }
    .support-02__title {
        font-size: 22px;
    }
    .support-02__lead {
        font-size: 13px;
    }
    .support-02__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px 20px;
    }
    .support-02-item__img {
        width: 120px;
        height: 120px;
    }
}

/* ==========================================================================
   Support 03 Section
   ========================================================================== */
.support-03 {
    background-color: #ffffff;
    background-image: url('../img/subpage/support-03_bg.webp');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;
    padding: 120px 0 100px;
}

@media screen and (max-width: 768px) {
    .support-03 {
        padding: 60px 0;
        background-size: cover;
    }
}

/* ==========================================================================
   Support 03 Benefits
   ========================================================================== */
.support-03__benefits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 60px;
}

.support-03-benefit {
    text-align: left;
}

.support-03-benefit__img {
    margin-bottom: 25px;
    text-align: center;
}

.support-03-benefit__img img {
    width: 100%;
    max-width: 240px;
    height: auto;
    margin: 0 auto;
    display: block;
}

.support-03-benefit__title {
    font-size: 18px;
    font-weight: 900;
    color: #61A4F4;
    margin-bottom: 15px;
}

.support-03-benefit__text {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    line-height: 1.8;
}

@media screen and (max-width: 900px) {
    .support-03__benefits {
        grid-template-columns: 1fr;
        gap: 50px;
    }
    .support-03-benefit__img img {
        max-width: 300px;
    }
}

@media screen and (max-width: 768px) {
    .support-03-benefit__title {
        font-size: 16px;
    }
    .support-03-benefit__text {
        font-size: 13px;
    }
}

/* ==========================================================================
   Support 03 Examples
   ========================================================================== */
.support-03__examples {
    margin-top: 80px;
    background: linear-gradient(180deg, #fadbd8 0%, #fef0da 100%);
    border-radius: 30px;
    padding: 60px 80px;
}

.support-03-examples__title {
    font-size: 24px;
    font-weight: 900;
    color: #0b122e;
    text-align: center;
    margin-bottom: 40px;
    letter-spacing: 0.05em;
}

.support-03-examples__list {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.support-03-example {
    background-color: #fff;
    border-radius: 16px;
    padding: 30px;
    display: flex;
    gap: 40px;
    align-items: stretch;
}

.support-03-example__img {
    width: 320px;
    flex-shrink: 0;
}

.support-03-example__img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.support-03-example__content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.support-03-example__name {
    font-size: 18px;
    font-weight: 900;
    color: #0b122e;
    line-height: 1.6;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #ccc;
}

.support-03-example__text {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.8;
    color: #333;
    margin-bottom: 20px;
    flex: 1;
}

.support-03-example__teacher {
    font-size: 13px;
    font-weight: 700;
    color: #333;
    margin-top: auto;
}

@media screen and (max-width: 900px) {
    .support-03__examples {
        padding: 50px 40px;
    }
    .support-03-example {
        flex-direction: column;
        gap: 20px;
        padding: 25px;
    }
    .support-03-example__img {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }
}

@media screen and (max-width: 768px) {
    .support-03__examples {
        padding: 40px 20px;
        border-radius: 20px;
        margin-top: 60px;
    }
    .support-03-examples__title {
        font-size: 20px;
        margin-bottom: 30px;
    }
    .support-03-example__name {
        font-size: 16px;
        padding-bottom: 15px;
        margin-bottom: 15px;
    }
}

/* ==========================================================================
   Learning Environment Section
   ========================================================================== */
.learning-env {
    padding: 100px 0 150px;
}

.learning-env__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
}

.learning-env__title-area {
    text-align: center;
    margin-bottom: 80px;
}

.learning-env__title {
    font-size: 28px;
    font-weight: 900;
    color: #ff5034;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
}

.learning-env__lead {
    font-size: 15px;
    font-weight: 900;
    color: #333;
}

.learning-env__box {
    background: linear-gradient(90deg, #6ba5d9 0%, #87a1f8 100%);
    border-radius: 20px;
    display: flex;
    align-items: center;
    position: relative;
    padding: 40px 80px; /* Reduced vertical padding */
}

.learning-env__box-content {
    color: #fff;
    width: 45%;
    position: relative;
    z-index: 2;
}

.learning-env__box-title {
    font-size: 28px;
    font-weight: 900;
    margin-bottom: 30px;
    position: relative;
    padding-bottom: 20px;
    display: inline-block;
}

.learning-env__box-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #fff;
}

.learning-env__box-title .u-text-large {
    font-size: 56px;
    line-height: 1;
    margin-right: 5px;
}

.learning-env__box-text {
    font-size: 15px;
    font-weight: 700;
    line-height: 2;
}

.learning-env__box-img {
    position: absolute;
    right: -40px;
    top: 50%;
    transform: translateY(-50%);
    width: 60%;
    max-width: 800px;
    z-index: 1;
}

.learning-env__box-img img {
    width: 100%;
    height: auto;
    display: block;
}

@media screen and (max-width: 900px) {
    .learning-env__box {
        flex-direction: column;
        padding: 50px 30px 0;
        text-align: center;
    }
    .learning-env__box-content {
        width: 100%;
        margin-bottom: 0;
    }
    .learning-env__box-title::after {
        left: 50%;
        transform: translateX(-50%);
    }
    .learning-env__box-img {
        position: static;
        transform: none;
        width: 100%;
        max-width: 500px;
        margin: 40px auto -60px;
    }
}

@media screen and (max-width: 768px) {
    .learning-env {
        padding: 60px 0 100px;
    }
    .learning-env__inner {
        padding: 0 20px;
    }
    .learning-env__title {
        font-size: 24px;
        margin-bottom: 15px;
    }
    .learning-env__lead {
        font-size: 13px;
    }
    .learning-env__box-title {
        font-size: 20px;
    }
    .learning-env__box-title .u-text-large {
        font-size: 40px;
    }
    .learning-env__box-text {
        font-size: 13px;
    }
    .learning-env__box-img {
        margin: 30px auto -50px; 
    }
}

/* ==========================================================================
   Support 04 Section
   ========================================================================== */
.support-04 {
    background-color: #ff6a4a;
    background-image: url('../img/subpage/support-04_bg.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    padding: 120px 0;
    position: relative;
    overflow: hidden;
}

.support-04__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
}

.support-04__bg-title {
    position: absolute;
    top: -50px;
    right: 40px;
    width: 480px;
    max-width: 50%;
    z-index: 1;
}

.support-04__bg-title img {
    width: 100%;
    height: auto;
    display: block;
}

.support-04__content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
    position: relative;
    z-index: 2;
}

.support-04__left {
    flex: 1;
}

.support-04__title {
    font-size: 32px;
    font-weight: 900;
    color: #fff;
    margin-bottom: 40px;
    letter-spacing: 0.05em;
    line-height: 1.5;
}

.support-04__text {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    line-height: 2;
    margin-bottom: 25px;
}

.support-04__text:last-child {
    margin-bottom: 0;
}

.support-04__right {
    width: 50%;
    max-width: 550px;
}

.support-04__right img {
    width: 100%;
    height: auto;
    display: block;
}

@media screen and (max-width: 900px) {
    .support-04__content {
        flex-direction: column;
        gap: 40px;
    }
    .support-04__right {
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
    }
    .support-04__bg-title {
        top: -30px;
        right: 20px;
        width: 300px;
    }
}

@media screen and (max-width: 768px) {
    .support-04 {
        padding: 60px 0;
    }
    .support-04__inner {
        padding: 0 20px;
    }
    .support-04__bg-title {
        position: static;
        width: 250px;
        margin: 0 0 -20px auto; 
    }
    .support-04__title {
        font-size: 24px;
        margin-bottom: 20px;
    }
    .support-04__text {
        font-size: 13px;
    }
}

/* ==========================================================================
   Roadmap Section
   ========================================================================== */
.roadmap {
    padding: 120px 0;
    background-color: #fff;
}

.roadmap__inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
}

.roadmap__header {
    text-align: center;
    margin-bottom: 40px;
}

.roadmap__header img {
    width: 100%;
    max-width: 900px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.roadmap__lead {
    text-align: center;
    font-size: 14px;
    font-weight: 900;
    color: #333;
    line-height: 2;
    margin-bottom: 80px;
}

.roadmap__steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    position: relative;
    z-index: 1;
}

.roadmap__steps::before {
    content: '';
    position: absolute;
    bottom: 110px;
    left: 0px;
    right: 0px;
    height: 24px;
    background: linear-gradient(105deg, #CCE6FE 0%, #B3D8FE 47%, #96C1ED 100%);
    z-index: 1;
}

.roadmap-step {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.roadmap-step__icon {
    width: 140px;
    height: 140px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin-bottom: 30px;
    position: relative;
    z-index: 2;
}

.roadmap-step__icon img {
    max-width: 100%;
    max-height: 100%;
    height: auto;
}

.roadmap-step__card {
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.06);
    padding: 30px 25px;
    width: 100%;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.roadmap-step__period {
    font-size: 11px;
    font-weight: 900;
    color: #555;
    margin-bottom: 12px;
}

.roadmap-step__name {
    font-size: 16px;
    font-weight: 900;
    color: #ff5034;
    margin-bottom: 20px;
}

.roadmap-step__list {
    list-style: none;
    padding: 0;
    margin: 0;
    flex: 1;
}

.roadmap-step__list li {
    font-size: 12px;
    font-weight: 700;
    color: #333;
    line-height: 1.6;
    margin-bottom: 12px;
}

.roadmap-step__list li:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 1000px) {
    .roadmap__steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 60px 30px;
    }
    .roadmap__steps::before {
        display: none;
    }
}

@media screen and (max-width: 768px) {
    .roadmap {
        padding: 60px 0;
    }
    .roadmap__inner {
        padding: 0 20px;
    }
    .roadmap__header img {
        max-width: 100%;
    }
    .roadmap__lead {
        font-size: 13px;
        text-align: center; 
        margin-bottom: 40px;
    }
    .roadmap__steps {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .roadmap__steps::before {
        display: block;
        width: 24px;
        height: auto;
        top: 60px; /* Start behind the first card */
        bottom: 0;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        background: linear-gradient(180deg, #CCE6FE 0%, #B3D8FE 47%, #96C1ED 100%);
    }
    .roadmap-step {
        background-color: #fff;
        border-radius: 12px;
        box-shadow: 0 10px 40px rgba(0,0,0,0.06);
        padding: 30px 20px;
        position: relative;
        z-index: 2;
        width: 100%;
        box-sizing: border-box;
    }
    .roadmap-step__icon {
        width: 120px;
        height: 120px;
        margin-bottom: 20px;
    }
    .roadmap-step__card {
        padding: 0;
        background-color: transparent;
        box-shadow: none;
    }
}

/* ==========================================================================
   FAQ Section
   ========================================================================== */
.faq {
    padding: 80px 0 120px;
    background-color: #f5f7fd;
}

.faq__inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

/* Tabs */
.faq-tabs {
    display: flex;
    justify-content: center;
    gap: 15px;
    list-style: none;
    margin: 0;
    padding: 0;
    margin-bottom: 50px;
    flex-wrap: wrap;
}

.faq-tab {
    background-color: #99c2ff;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    padding: 15px 30px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
    user-select: none;
    min-width: 180px;
    text-align: center;
}

.faq-tab:hover {
    opacity: 0.9;
}

.faq-tab.is-active {
    background-color: #fff;
    color: #333;
    font-weight: 900;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

.faq-tab.is-active::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 10px 10px 0;
    border-style: solid;
    border-color: #fff transparent transparent transparent;
}

/* Content Panels */
.faq-panel {
    display: none;
}

.faq-panel.is-active {
    display: block;
    animation: fadeIn 0.4s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

.faq-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.faq-item {
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.03);
    overflow: hidden;
    transition: all 0.3s;
}

.faq-item__q {
    display: flex;
    align-items: center;
    padding: 25px 30px;
    cursor: pointer;
    position: relative;
}

.faq-item__icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    flex-shrink: 0;
    margin-right: 20px;
}

.faq-item__icon--q {
    background-color: #3b76e1;
}

.faq-item__icon--a {
    background-color: #ff6854;
}

.faq-item__text {
    flex: 1;
    font-size: 15px;
    font-weight: 900;
    color: #333;
    line-height: 1.6;
    padding-right: 40px;
}

.faq-item__toggle {
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
}

.faq-item__toggle::before,
.faq-item__toggle::after {
    content: '';
    position: absolute;
    background-color: #999;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 2px;
}

.faq-item__toggle::before {
    width: 100%;
    height: 2px;
}

.faq-item__toggle::after {
    width: 2px;
    height: 100%;
    transition: transform 0.3s;
}

.faq-item.is-open .faq-item__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item__a {
    display: none;
    padding: 0 30px 30px;
    align-items: flex-start;
}

.faq-item.is-open .faq-item__a {
    display: flex;
    animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

.faq-item__a .faq-item__text {
    font-weight: 700;
    font-size: 14px;
    color: #555;
    margin: 0;
}

.faq-item__a .faq-item__text p {
    margin: 0;
}

.faq-item__a .faq-item__icon {
    margin-top: -5px;
}

@media screen and (max-width: 768px) {
    .faq {
        padding: 50px 0 80px;
    }
    .faq__inner {
        padding: 0 20px;
    }
    .faq-tabs {
        gap: 10px;
    }
    .faq-tab {
        flex: 1 1 calc(50% - 10px);
        min-width: 0;
        padding: 12px 10px;
        font-size: 13px;
    }
    .faq-item__q {
        padding: 20px;
    }
    .faq-item__a {
        padding: 0 20px 20px;
    }
    .faq-item__icon {
        width: 30px;
        height: 30px;
        font-size: 14px;
        margin-right: 15px;
    }
    .faq-item__text {
        font-size: 14px;
        padding-right: 20px;
    }
    .faq-item__a .faq-item__text {
        font-size: 13px;
    }
    .faq-item__toggle {
        right: 20px;
    }
}

/* ==========================================================================
   Contact Section
   ========================================================================== */
.contact {
    padding: 100px 0;
    background-color: #fff;
}

.contact__inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
    max-width: 1200px;
}

.contact__header {
    text-align: center;
    margin-bottom: 50px;
}

.contact__header img {
    max-width: 600px;
    width: 100%;
    height: auto;
}

.contact__lead {
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    line-height: 2;
    color: #333;
}

@media screen and (max-width: 768px) {
    .contact {
        padding: 60px 0;
    }
    .contact__inner {
        padding: 0 20px;
    }
    .contact__header {
        margin-bottom: 30px;
    }
    .contact__header img {
        max-width: 280px;
    }
    .contact__lead {
        font-size: 13px;
        text-align: left;
    }
}

/* ==========================================================================
   Contact Form
   ========================================================================== */
.contact-form {
    max-width: 800px;
    margin: 60px auto 0;
    text-align: left;
}
.wpcf7-form-control-wrap{
    width: 100%;
}

.contact-form__row {
    margin-bottom: 40px;
}

.contact-form__label {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
    color: #333;
}

.contact-form__inputs {
    display: flex;
    gap: 20px;
}

.contact-form__inputs--name .contact-form__input {
    flex: 1;
}

.contact-form__input,
.contact-form__textarea {
    width: 100%;
    background-color: #f4f6fa;
    border: none;
    border-radius: 6px;
    padding: 16px 20px;
    font-size: 14px;
    color: #333;
    font-family: inherit;
    transition: background-color 0.3s;
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
    color: #9aa1b3;
}

.contact-form__input:focus,
.contact-form__textarea:focus {
    outline: none;
    background-color: #ebf0f7;
}

.contact-form__textarea {
    height: 200px;
    resize: vertical;
}

.contact-form__inputs--checkboxes {
    flex-wrap: wrap;
    gap: 15px 30px;
}

.contact-form__checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #333;
    cursor: pointer;
}

.contact-form__checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: #507bed;
}

.contact-form__checkbox--full {
    width: 100%;
}

.contact-form__privacy {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    margin-bottom: 12px;
}

.privacy-link {
    color: #507bed;
    text-decoration: none;
}

.privacy-link:hover {
    text-decoration: underline;
}

.contact-form__privacy-check {
    margin-bottom: 60px;
}

.contact-form__submit {
    text-align: center;
}

.btn-submit {
    background-color: #507bed;
    color: #fff;
    border: none;
    border-radius: 30px;
    padding: 16px 50px;
    font-size: 15px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 0.3s;
    min-width: 260px;
}

.btn-submit:hover {
    opacity: 0.8;
}

@media screen and (max-width: 768px) {
    .contact-form {
        margin-top: 40px;
    }
    .contact-form__row {
        margin-bottom: 30px;
    }
    .contact-form__inputs {
        flex-direction: column;
        gap: 15px;
    }
    .contact-form__inputs--checkboxes {
        flex-direction: column;
        gap: 15px;
    }
    .btn-submit {
        width: 100%;
    }
}

/* ==========================================================================
   Legal Note Section
   ========================================================================== */
.legal {
    padding: 80px 0;
}

.legal__inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 40px;
}

.legal__title {
    text-align: center;
    font-size: 32px;
    font-weight: 900;
    margin-bottom: 60px;
    color: #333;
}

.legal__list {
    border-top: 1px solid #ddd;
}

.legal__row {
    display: flex;
    border-bottom: 1px solid #ddd;
    padding: 30px 0;
}

.legal__row dt {
    width: 300px;
    flex-shrink: 0;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
}

.legal__row dd {
    flex: 1;
    font-size: 15px;
    line-height: 1.8;
    color: #333;
}

@media screen and (max-width: 768px) {
    .legal {
        padding: 50px 0;
    }
    .legal__inner {
        padding: 0 20px;
    }
    .legal__title {
        font-size: 24px;
        margin-bottom: 40px;
    }
    .legal__row {
        flex-direction: column;
        padding: 20px 0;
    }
    .legal__row dt {
        width: 100%;
        margin-bottom: 10px;
    }
}

/* ==========================================================================
   Privacy Policy Section
   ========================================================================== */
.privacy {
    padding: 80px 0;
}

.privacy__inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 40px;
    font-size: 15px;
    line-height: 1.8;
    color: #333;
}

.privacy h2 {
    font-size: 20px;
    font-weight: 700;
    margin: 60px 0 30px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ddd;
}

.privacy h3 {
    font-size: 16px;
    font-weight: 700;
    margin: 40px 0 20px;
}

.privacy p {
    margin-bottom: 20px;
}

.privacy ul {
    margin: 0 0 30px 20px;
    list-style-type: disc;
}

.privacy ul.privacy__list-none {
    list-style-type: none;
    margin-left: 0;
}

.privacy li {
    margin-bottom: 10px;
}

@media screen and (max-width: 768px) {
    .privacy {
        padding: 50px 0;
    }
    .privacy__inner {
        padding: 0 20px;
    }
    .privacy h2 {
        font-size: 18px;
        margin: 40px 0 20px;
    }
    .privacy h3 {
        font-size: 15px;
        margin: 30px 0 15px;
    }
}

.privacy-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin-bottom: 30px;
}

.privacy-table {
    width: 100%;
    min-width: 600px;
    border-collapse: collapse;
    font-size: 14px;
    background-color: #fff;
}

.privacy-table th,
.privacy-table td {
    border: 1px solid #ddd;
    padding: 15px;
    text-align: left;
    vertical-align: middle;
    line-height: 1.6;
}

.privacy-table th {
    background-color: #f9f9f9;
    font-weight: 700;
    color: #333;
}

.privacy-table--vertical th {
    width: 35%;
}

.privacy a {
    color: #2b8ee3;
    text-decoration: underline;
    word-break: break-all;
}

.privacy a:hover {
    text-decoration: none;
}

/* ==========================================================================
   Company Section
   ========================================================================== */
.company {
    padding: 80px 0;
    background-color: #fff;
}

.company__inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 40px;
}

.company__title {
    text-align: center;
    font-size: 36px;
    font-weight: 900;
    color: #2c355b;
    margin-bottom: 60px;
    letter-spacing: 0.05em;
}

.company__list {
    margin: 0;
    padding: 0;
    border-top: 1px solid #eaeaea;
}

.company__row {
    display: flex;
    align-items: flex-start;
    border-bottom: 1px solid #eaeaea;
    padding: 35px 20px;
}

.company__row dt {
    width: 40%;
    font-weight: 700;
    color: #333;
    font-size: 16px;
    margin: 0;
    padding-right: 20px;
}

.company__row dd {
    width: 60%;
    color: #555;
    font-size: 16px;
    margin: 0;
    line-height: 1.6;
}

.company__row dd a {
    color: #2b8ee3;
    text-decoration: underline;
}

.company__row dd a:hover {
    text-decoration: none;
}

@media screen and (max-width: 768px) {
    .company {
        padding: 50px 0;
    }
    .company__inner {
        padding: 0 20px;
    }
    .company__title {
        font-size: 28px;
        margin-bottom: 40px;
    }
    .company__row {
        flex-direction: column;
        padding: 25px 10px;
    }
    .company__row dt {
        width: 100%;
        margin-bottom: 10px;
        padding-right: 0;
    }
    .company__row dd {
        width: 100%;
    }
}