/*
Theme Name: iSchool Theme
Author: Elite Architect
Description: A custom WordPress theme for ischool.
Version: 1.0.0
Text Domain: ischool
*/

/**
 * Global Variables
 */
:root {
    --color-text-black: #1B1B1B;
    --color-white: #ffffff;
    --color-main-blue: #074BA0;
    --color-cta-orange-start: #FE9C21;
    --color-cta-orange-end: #FF6717;
    --color-accent-yellow: #FAF215;
    --color-accent-green-start: #12D212;
    --color-accent-green-end: #00C300;
    --color-red: #E60012;
    --font-base: "DIN 2014", "Noto Sans JP", sans-serif;
    --header-height: 80px;
    --container-max-width: 1440px;
    --container-padding: 40px;
}

@media screen and (max-width: 768px) {
    :root {
        --container-padding: 20px;
    }
}

/**
 * Reset & Base
 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    font-family: var(--font-base);
    color: var(--color-text-black);
    line-height: 1.6;
    background-color: var(--color-white);
    scroll-behavior: smooth;
}

a {
    text-decoration: none;
    color: inherit;
}

li {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

/**
 * Layout Components
 */
.p-reasons__inner.l-container {
    padding: 80px var(--container-padding);
}


.l-container {
    width: 100%;
    margin: 0 auto;
}

.l-header {
    width: 100%;
    height: var(--header-height);
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.l-header__inner {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    align-items: center;
}

.l-header__logo {
    width: auto;
    display: flex;
    align-items: center;
}

/* Size limit for custom and image logos */
.l-header__logo img,
.l-header__logo .custom-logo {
    max-height: 48px;
    /* Limit to appropriate height within heading */
    width: auto;
    max-width: 200px;
    object-fit: contain;
    display: block;
}

/* Text logo styles */
.l-header__logo-text {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-main-blue);
    /* Use designated main blue */
    letter-spacing: 0.05em;
}

.l-header__nav {
    display: flex;
    align-items: center;
    margin-left: auto;
    /* Align navigation to the right */
}

.l-nav__list {
    display: flex;
    gap: 25px;
    margin-right: 30px;
    /* Distance between navigation and CTA */
}

.l-nav__list li {
    font-size: 14px;
    white-space: nowrap;
    position: relative;
}

.l-nav__list li a {
    display: block;
    font-family: var(--font-base);
    font-weight: 600 !important;
    transition: color 0.3s, transform 0.3s;
}

.l-nav__list li a:hover {
    color: var(--color-cta-orange-end);
    transform: translateY(-2px);
}

/* Mega Menu Styles */
.p-mega-menu {
    position: absolute;
    top: calc(100% + 25px);
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    width: 640px;
    background-color: var(--color-white);
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(7, 75, 160, 0.25);
    z-index: 1000;
    padding: 40px 50px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    pointer-events: none;
}

/* Balloon Arrow */
.p-mega-menu::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-bottom: 12px solid var(--color-white);
}

/* Hover to show */
.l-nav__list li:hover .p-mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}

/* Hover protection gap */
.l-nav__list li::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 20px;
    display: none;
}

.l-nav__list li:hover::after {
    display: block;
}

.p-mega-menu__title {
    text-align: center;
    font-size: 28px;
    font-weight: 600;
    color: var(--color-main-blue);
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.p-mega-menu__content {
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

.l-nav__list li .p-mega-menu__item {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 1;
    text-decoration: none;
    padding: 0;
    border-bottom: none;
    transition: opacity 0.3s;
}

.p-mega-menu__item:hover {
    opacity: 0.7;
    transform: none;
    /* Reset header hover transform */
}

.p-mega-menu__icon {
    width: 68px;
    height: 68px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
}

/* Icon within mega menu */
.p-mega-menu__icon-inner {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.p-mega-menu__text {
    display: flex;
    flex-direction: column;
    text-align: left;
    border-bottom: 2px solid var(--color-main-blue);
    padding-bottom: 8px;
}

.p-mega-menu__name {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-main-blue);
    line-height: 1.2;
}

.p-mega-menu__sub {
    font-size: 13px;
    color: var(--color-main-blue);
    font-weight: 600;
    margin-top: 4px;
}

.p-mega-menu__arrow {
    margin-left: auto;
    width: 18px;
    height: 2px;
    background-color: var(--color-main-blue);
    position: relative;
    display: inline-block;
    flex-shrink: 0;
}

.p-mega-menu__arrow::after {
    content: '';
    position: absolute;
    right: 0;
    top: -4px;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--color-main-blue);
    border-right: 2px solid var(--color-main-blue);
    transform: rotate(45deg);
}

.l-header__cta {
    flex-shrink: 0;
}

/* Hide drawer CTA on PC */
.l-header__nav-cta {
    display: none;
}

/* Premium hamburger button design */
.l-header__hamburger {
    display: none;
    width: 70px;
    height: 70px;
    position: absolute;
    right: 0;
    top: 0;
    background-color: var(--color-main-blue);
    border-radius: 0 0 0 16px;
    border: none;
    cursor: pointer;
    z-index: 2000;
    transition: background-color 0.3s;
}

.l-header__hamburger:hover {
    background-color: #064088;
}

.l-header__hamburger span {
    display: block;
    position: absolute;
    left: 23px;
    width: 24px;
    /* Fixed to the same length */
    height: 2px;
    background-color: var(--color-white);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    border-radius: 2px;
}

.l-header__hamburger span:nth-child(1) {
    top: 20px;
}

.l-header__hamburger span:nth-child(2) {
    top: 26px;
}

.l-header__hamburger span:nth-child(3) {
    top: 32px;
}

.l-header__hamburger-text {
    position: absolute;
    bottom: 12px;
    left: 0;
    width: 100%;
    color: var(--color-white);
    font-size: 10px;
    font-weight: 600;
    text-align: center;
    line-height: 1;
    letter-spacing: 0.05em;
}

/* Opening/Closing animation */
.is-open .l-header__hamburger {
    background-color: var(--color-main-blue);
}

.is-open .l-header__hamburger span {
    background-color: var(--color-white);
}

.is-open .l-header__hamburger span:nth-child(1) {
    top: 26px;
    transform: rotate(45deg);
    width: 24px;
    left: 23px;
}

.is-open .l-header__hamburger span:nth-child(2) {
    opacity: 0;
}

.is-open .l-header__hamburger span:nth-child(3) {
    top: 26px;
    transform: rotate(-45deg);
    width: 24px;
    left: 23px;
}

/**
 * UI Components
 */
.c-button--cta {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 30px;
    background: linear-gradient(to right, var(--color-cta-orange-start), var(--color-cta-orange-end));
    color: var(--color-white);
    border-radius: 50px;
    font-weight: 600;
    font-size: 14px;
    transition: opacity 0.3s;
    position: relative;
    padding-right: 45px;
    white-space: nowrap;
}

.c-button--cta::after {
    content: '';
    position: absolute;
    right: 26px;
    width: 6px;
    height: 6px;
    border-top: 2px solid var(--color-white);
    border-right: 2px solid var(--color-white);
    transform: rotate(45deg);
    /* Draw subtle arrow with CSS instead of text */
}

.c-button--cta:hover {
    opacity: 0.9;
}

/**
 * Responsive Adjustments
 */

/*  */
@media screen and (max-width: 1024px) {
    .l-nav__list {
        gap: 15px;
        /* Narrow Spacing */
        margin-right: 20px;
    }
}

/*  */
@media screen and (max-width: 960px) {
    :root {
        --header-height: 70px;
        /* Smaller height */
    }

    /* Hide CTA in header */
    .l-header__cta {
        display: none;
    }

    /* Show hamburger button */
    .l-header__hamburger {
        display: block;
    }

    .l-header__inner {
        padding-right: 70px;
    }

    /* Change navigation to fullscreen header */
    .l-header__nav {
        position: fixed;
        top: var(--header-height);
        right: -100%;
        width: min(320px, calc(100% - 24px));
        height: calc(100dvh - var(--header-height));
        background-color: var(--color-white);
        box-shadow: -8px 12px 28px rgba(0, 0, 0, 0.14);
        transition: right 0.35s ease, visibility 0.35s ease;
        z-index: 1500;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: stretch;
        margin-left: 0;
        visibility: hidden;
        opacity: 1;
        overflow-y: auto;
    }

    /*  */
    @supports (backdrop-filter: blur(10px)) {
        .l-header__nav {
            background-color: var(--color-white);
            backdrop-filter: none;
        }
    }

    .is-open .l-header__nav {
        right: 0;
        visibility: visible;
    }

    .l-header__overlay {
        position: fixed;
        top: var(--header-height);
        left: 0;
        width: 100%;
        height: calc(100dvh - var(--header-height));
        background-color: rgba(0, 0, 0, 0.6);
        z-index: 1400;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.35s ease, visibility 0.35s ease;
    }

    .is-open .l-header__overlay {
        opacity: 1;
        visibility: visible;
    }

    /* WordPress Admin Bar adjustment for fixed elements */
    .admin-bar .l-header__nav,
    .admin-bar .l-header__overlay {
        top: calc(var(--header-height) + 32px);
        height: calc(100dvh - var(--header-height) - 32px);
    }

    @media screen and (max-width: 782px) {
        .admin-bar .l-header__nav,
        .admin-bar .l-header__overlay {
            top: calc(var(--header-height) + 46px);
            height: calc(100dvh - var(--header-height) - 46px);
        }
    }


    .l-nav__list {
        flex-direction: column;
        width: 100%;
        gap: 0;
        margin-right: 0;
        text-align: center;
    }

    .l-nav__list li {
        width: 100%;
        opacity: 1;
        transform: none;
        transition: none;
    }

    .is-open .l-nav__list li {
        opacity: 1;
        transform: none;
    }

    /* Sequential navigation entry */
    .is-open .l-nav__list li:nth-child(1) {
        transition-delay: 0.1s;
    }

    .is-open .l-nav__list li:nth-child(2) {
        transition-delay: 0.15s;
    }

    .is-open .l-nav__list li:nth-child(3) {
        transition-delay: 0.2s;
    }

    .is-open .l-nav__list li:nth-child(4) {
        transition-delay: 0.25s;
    }

    .is-open .l-nav__list li:nth-child(5) {
        transition-delay: 0.3s;
    }

    .l-nav__list li a {
        letter-spacing: 0;
    }

    .l-nav__list>li>a,
    .l-nav__list li .p-mega-menu__item {
        min-height: 51px;
        padding: 0 22px 0 28px;
        border-bottom: 1px solid #e8e8e8;
        color: var(--color-text-black);
        font-size: 13px;
        font-weight: 700 !important;
        line-height: 1.4;
        display: flex;
        align-items: center;
        justify-content: space-between;
        position: relative;
        transition: none !important;
        transform: none !important;
    }

    .l-nav__list>li>a:hover,
    .l-nav__list>li>a:active,
    .l-nav__list>li>a:focus,
    .l-nav__list li .p-mega-menu__item:hover,
    .l-nav__list li .p-mega-menu__item:active,
    .l-nav__list li .p-mega-menu__item:focus {
        color: var(--color-text-black);
        background-color: #f7faff;
        transform: none !important;
        transition: none !important;
        opacity: 1;
    }

    .l-nav__list>li>a::after,
    .l-nav__list li .p-mega-menu__item::after {
        content: '';
        width: 7px;
        height: 7px;
        border-top: 1.5px solid #333;
        border-right: 1.5px solid #333;
        transform: rotate(45deg);
        flex-shrink: 0;
    }

    .l-nav__list li::after {
        display: none !important;
    }

    .l-nav__list li .p-mega-menu {
        position: static;
        width: 100%;
        padding: 0;
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        pointer-events: auto;
    }

    .l-nav__list li:hover .p-mega-menu {
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .l-nav__list li .p-mega-menu::before,
    .p-mega-menu__title,
    .p-mega-menu__icon,
    .p-mega-menu__sub,
    .p-mega-menu__arrow {
        display: none;
    }

    .p-mega-menu__content {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .p-mega-menu__text {
        display: block;
        border-bottom: none;
        padding-bottom: 0;
    }

    .p-mega-menu__name {
        color: var(--color-text-black);
        font-size: 13px;
        font-weight: 600;
        line-height: 1.4;
    }

    .l-nav__list li .p-mega-menu__item {
        padding-left: 50px;
    }

    /* Mobile CTA in header */
    .l-header__nav-cta {
        display: block;
        margin: 12px auto 0;
        width: calc(100% - 56px);
        max-width: 220px;
        opacity: 1;
        transform: none;
        transition: none;
    }

    .is-open .l-header__nav-cta {
        opacity: 1;
        transform: none;
    }

    .l-header__nav-cta .c-button--cta {
        width: 100%;
        min-height: 48px;
        padding: 0 34px;
        background: #06c700;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: 0;
        box-shadow: none;
        gap: 8px;
    }

    .l-header__nav-cta .c-button--cta::after {
        right: 18px;
        width: 5px;
        height: 5px;
        border-top-width: 1.5px;
        border-right-width: 1.5px;
    }

    .l-header__line-icon {
        width: 20px;
        height: 20px;
        display: inline-block;
        flex-shrink: 0;
        line-height: 1;
    }

    .l-header__line-icon img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        display: block;
    }

    .l-header__logo img,
    .l-header__logo .custom-logo {
        max-height: 36px;
    }
}

/*  */
@media screen and (max-width: 480px) {
    .l-header__inner {
        padding: 0 70px 0 10px;
    }

    .c-button--cta {
        padding: 6px 10px;
        padding-right: 22px;
        font-size: 11px;
    }

    .c-button--cta::after {
        right: 26px;
    }

    .p-main-visual__image {
        min-height: 250px;
        /*  */
    }
}

/**
 * Project Components
 */
.p-main-visual {
    width: 100%;
    background-color: var(--color-main-blue);
    line-height: 0;
    /* Avoid margin under image */
    overflow: hidden;
}

.p-main-visual__inner {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0;
    position: relative;
}

.p-main-visual__image {
    width: 100%;
    height: auto;
    display: block;
}

/* Adjustments for mobile display */
@media screen and (max-width: 960px) {
    .p-main-visual__image {
        /* Do not set min-height here to fix adjustment */
        min-height: auto;
    }
}

/**
 * 
 */
.p-trouble {
    background-color: var(--color-white);
    text-align: center;
    overflow: hidden;
    /* Clip overflowing action elements */
}

.p-trouble__upper {
    padding: 80px var(--container-padding);
}

/* Switch to bottom background */
.p-trouble__lower {
    background-color: var(--color-main-blue);
    padding: 0 var(--container-padding) 80px;
    /* No padding-top */
    position: relative;
    color: var(--color-white);
}

/* Overlap content on action background */
.p-trouble__lower .p-trouble__inner {
    position: relative;
    z-index: 1;
    top: -80px;
    margin-bottom: -80px;
    /* Push up and remove bottom overlap space */
}

/* Create curved background */
.p-trouble__lower::before {
    content: "";
    position: absolute;
    top: -140px;
    left: 50%;
    transform: translateX(-50%);
    width: 144%;
    /* Expand width for curve */
    height: 500px;
    /* Increase height to blend into background */
    background-color: var(--color-main-blue);
    border-radius: 50% 50% 0 0;
}

.p-trouble__heading {
    font-size: clamp(20px, 4.5vw, 40px);
    font-weight: 600;
    color: var(--color-text-black);
    margin-bottom: 40px;
    line-height: 1.4;
    white-space: nowrap;
}

.p-trouble__emphasis {
    display: inline-flex;
    gap: 0;
}

.p-trouble__emphasis span {
    position: relative;
    display: inline-block;
}

/* Create dots above text */
.p-trouble__emphasis span::before {
    content: "";
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 8px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
}

/* Solution card area */
.p-trouble__lead {
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 20px;
    position: relative;
}

.p-trouble__arrow {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
}

.p-trouble__arrow-line {
    width: 1px;
    height: 40px;
    background-color: var(--color-white);
    position: relative;
}

/* Content */
.p-trouble__arrow-line::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 12px;
    height: 1px;
    background-color: var(--color-white);
    transform: rotate(-135deg);
    /* Content */
    transform-origin: left center;
}

.p-trouble__solution {
    font-size: 36px;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1.2;
    margin-bottom: 60px;
}

.p-trouble__highlight {
    display: inline-flex;
    gap: 0;
}

.p-trouble__highlight span {
    position: relative;
    display: inline-block;
}

/* Content */
.p-trouble__highlight span::before {
    content: "";
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    background-color: var(--color-accent-yellow);
    border-radius: 50%;
}

/* Content */
.p-trouble__card {
    background-color: var(--color-white);
    border-radius: 20px;
    padding: 10px;
    /*  */
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    color: var(--color-text-black);
    border: none;
    /* Content */
    margin-bottom: 60px;
    /* Content */
}

.p-trouble__selection-text {
    color: var(--color-white);
    font-weight: 600;
    text-align: center;
    font-size: 24px;
}

.p-trouble__card-inner {
    border: 1px solid #dfdfdf;
    border-radius: 12px;
    padding: 44px 30px 48px;
    /*  */
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 16px 16px;
    background-repeat: repeat;
}

.p-trouble__card-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-black);
    margin-bottom: 36px;
    text-align: center;
}

/* Content */
.u-color-main-blue {
    color: var(--color-main-blue) !important;
}

.p-trouble__card-list {
    display: inline-flex;
    flex-direction: column;
    gap: 18px;
    text-align: left;
}

.p-trouble__card-item {
    display: flex;
    align-items: center;
    gap: 18px;
}

.p-trouble__card-icon {
    width: 28px;
    /* Content */
    height: 28px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
}

.p-trouble__card-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 10px;
    border: solid var(--color-white);
    border-width: 0 2.5px 2.5px 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

.p-trouble__card-text {
    font-size: 24px;
    font-weight: 600;
    line-height: 1;
}

.p-trouble__image-wrap {
    width: 100%;
    max-width: 900px;
    /* Content */
    margin: 0 auto;
}

.p-trouble__image {
    width: 100%;
    height: auto;
    display: block;
}

.p-trouble__placeholder {
    padding: 60px;
    background-color: #f5f5f5;
    border: 2px dashed #ddd;
    border-radius: 10px;
    color: #888;
}

/**
 * 
 */
.p-reasons {
    width: 100%;
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
    position: relative;
}

.p-reasons__heading {
    text-align: center;
}

.p-reasons__sub-title {
    display: block;
    font-size: 28px;
    font-weight: bold;
    color: var(--color-text-black);
    margin-bottom: 26px;
    line-height: 1;
}

.p-reasons__main-title {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    font-weight: bold;
    color: var(--color-text-black);
    letter-spacing: 1.6px;
    line-height: normal;
}

.p-reasons__main-title-num {
    font-family: var(--font-base);
    /* DIN 2014 */
    font-size: 48px;
    font-weight: bold;
    letter-spacing: 2px;
    margin-right: 4px;
    line-height: 1;
}

.p-reasons__main-title-accent {
    color: var(--color-main-blue);
}

/* Content */
.p-reasons__list {
    display: flex;
    flex-direction: column;
    gap: 64px;
    padding-top: 60px;
}

/* Content */
.p-reasons__item:nth-child(even) {
    flex-direction: row-reverse;
}

.p-reasons__item {
    display: flex;
    align-items: flex-start;
    width: 840px;
    margin: 0 auto;
    background-color: transparent;
    position: relative;
}

.p-reasons__item-image-wrap {
    width: 352px;
    aspect-ratio: 16 / 10;
    flex: 0 0 352px;
    overflow: hidden;
    border-radius: 40px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    position: relative;
    z-index: 1;
}

.p-reasons__item:nth-child(even) .p-reasons__item-image-wrap {
    margin: 13px 0 30px 0;
}

.p-reasons__item-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-reasons__item-content {
    width: 488px;
    flex: 0 0 488px;
    position: relative;
    margin-left: 0;
    padding-right: 24px;
    /*  */
    z-index: 2;
}

.p-reasons__item:nth-child(even) .p-reasons__item-content {
    margin-left: 0;
    margin-right: 0;
}

.p-reasons__item-number-wrap {
    position: absolute;
    top: -12px;
    /*  */
    left: -18px;
    display: flex;
    align-items: flex-start;
    z-index: 2;
    pointer-events: none;
}

.p-reasons__item:nth-child(even) .p-reasons__item-number-wrap {
    left: -18px;
}

.p-reasons__item-point-label {
    writing-mode: vertical-rl;
    font-size: 16px;
    font-weight: bold;
    color: rgba(7, 75, 160, 0.6);
    margin: 4px 4px 0 0;
    /*  */
    line-height: 1;
}

.p-reasons__item-number {
    font-family: "DIN 2014", sans-serif;
    font-size: 92px;
    font-weight: bold;
    color: rgba(7, 75, 160, 0.45);
    line-height: 0.75;
    margin-top: -6px;
    /* Content */
    letter-spacing: -3.68px;
    margin-left: 0;
}

.p-reasons__item-title-group {
    position: relative;
    z-index: 3;
    margin-top: 32px;
    /* Content */
    margin-left: 56px;
    /* Content */
    margin-bottom: 25px;
}

.p-reasons__item:nth-child(even) .p-reasons__item-title-group {
    margin-left: 56px;
}

.p-reasons__item-title-block {
    display: block;
    width: fit-content;
    background-color: var(--color-main-blue);
    padding: 5px 16px;
    margin-bottom: 12px;
}

.p-reasons__item-title-block.is-second {
    margin-top: 0;
    margin-bottom: 0;
}

.p-reasons__item-title-text {
    color: var(--color-white);
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 1.92px;
    line-height: 1;
}

.p-reasons__item-description {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.64px;
    color: var(--color-text-black);
    margin-bottom: 24px;
    margin-left: 56px;
}

.p-reasons__item-checklist {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 24px;
    margin-left: 56px;
}

.p-reasons__item-check-item {
    display: flex;
    align-items: center;
    background-color: var(--color-main-blue);
    padding: 3px 15px 2px 14px;
    width: fit-content;
}

.p-reasons__item-check-icon {
    display: block;
    width: 10.2px;
    height: 8px;
    border-left: 3px solid var(--color-white);
    border-bottom: 3px solid var(--color-white);
    transform: rotate(-45deg);
    margin-right: 12px;
    margin-top: -3px;
    /* Content */
}

.p-reasons__item-check-text {
    color: var(--color-white);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.64px;
}

.p-reasons__item-footer-text {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.63;
    letter-spacing: 0.32px;
    color: var(--color-text-black);
    margin-left: 56px;
}

/**
 * Introduction Section
 */
.p-introduction {
    position: relative;
    width: 100%;
    padding: 80px var(--container-padding);
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
    border-bottom: 1px solid #dfdfdf;
    overflow: hidden;
}

.p-introduction__box {
    position: relative;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
    text-align: center;
}

.p-introduction__content-frame {
    position: relative;
    padding: 0px 40px;
    margin-bottom: 20px;
}

.p-introduction__corner {
    position: absolute;
    width: 18px;
    height: 18px;
    border: 3px solid var(--color-main-blue);
    pointer-events: none;
}

.p-introduction__corner--top-left {
    top: -20px;
    left: clamp(20px, 8vw, 116px);
    border-right: none;
    border-bottom: none;
}

.p-introduction__corner--top-right {
    top: -20px;
    right: clamp(20px, 8vw, 116px);
    border-left: none;
    border-bottom: none;
}

.p-introduction__corner--bottom-left {
    bottom: -16px;
    left: clamp(20px, 8vw, 116px);
    border-right: none;
    border-top: none;
}

.p-introduction__corner--bottom-right {
    bottom: -16px;
    right: clamp(20px, 8vw, 116px);
    border-left: none;
    border-top: none;
}

@media screen and (max-width: 1186px) {
    .p-introduction__content-frame {
        max-width: 720px;
        margin: 0 auto;
    }
}

.p-introduction__logo {
    margin-bottom: 36px;
}

.p-introduction__logo img,
.p-introduction__logo .custom-logo {
    max-width: 170px;
}

.p-introduction__logo-text {
    font-size: 25px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--color-main-blue);
}

.p-introduction__sub-catch {
    font-size: clamp(16px, 2vw + 6px, 25px);
    font-weight: bold;
    color: var(--color-text-black);
    margin-bottom: clamp(12px, 2vw, 20px);
}

.p-introduction__concept-graphics {
    display: flex;
    justify-content: center;
    align-items: center;
}

.p-introduction__concept-img {
    max-width: 288px;
    max-height: 144px;
    display: block;
}

.p-introduction__main-catch {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(8px, 2vw, 27px);
    font-size: clamp(20px, 3.5vw + 10px, 43px);
    font-weight: bold;
    margin-top: 48px;
    margin-bottom: clamp(24px, 4vw, 54px);
    line-height: 1.4;
}

.p-introduction__catch-text {
    position: relative;
    display: inline-block;
}

.p-introduction__badge-new {
    position: absolute;
    width: 96px;
    height: 96px;
    flex-shrink: 0;
    left: -95px;
    top: -85px;
    z-index: 5;
}

.p-introduction__badge-blue-ring {
    position: absolute;
    inset: 0;
    border: 3px solid var(--color-main-blue);
    border-radius: 50%;
    -webkit-mask-image: radial-gradient(circle at 80.3px 80.3px, transparent 6px, black 6px);
    mask-image: radial-gradient(circle at 80.3px 80.3px, transparent 6px, black 6px);
    z-index: 2;
}

.p-introduction__badge-yellow {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 96px;
    height: 96px;
    background-color: rgba(250, 242, 21, 0.5);
    border-radius: 50%;
    z-index: 1;
}

.p-introduction__badge-tail {
    position: absolute;
    top: 80.3px;
    left: 80.3px;
    width: 25px;
    height: 2px;
    background-color: var(--color-main-blue);
    transform-origin: left center;
    transform: rotate(30deg);
    z-index: 3;
    border-radius: 2px;
}

.p-introduction__badge-text-area {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 4;
}

.p-introduction__badge-text-group {
    display: flex;
    align-items: baseline;
}

.p-introduction__badge-main-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 26px;
    font-weight: bold;
    color: var(--color-main-blue);
    line-height: 1;
    letter-spacing: 1.2px;
}

.p-introduction__badge-small-text {
    font-size: 18px;
    font-weight: bold;
    color: var(--color-main-blue);
    letter-spacing: 0.8px;
    line-height: 1;
    transform: translateY(1px);
}

.p-introduction__main-catch .is-small {
    font-size: clamp(13px, 2vw + 5px, 28px);
    font-weight: bold;
    padding-left: clamp(0px, 0.5vw, 6px);
}

.p-introduction__cta {
    display: flex;
    justify-content: center;
}

.p-introduction__cta .c-button--cta {
    font-size: 16px;
    padding: 18px 58px;
    box-shadow: 0 4px 15px rgba(254, 156, 33, 0.3);
}

.u-color-blue {
    color: var(--color-main-blue);
    font-weight: 600;
}

.u-show-sp {
    display: none;
}

.u-color-red {
    color: var(--color-red);
}

.u-color-yellow {
    color: var(--color-accent-yellow);
}

.u-fw-600 {
    font-weight: 600;
}

@media screen and (max-width: 852px) {
    .p-introduction {
        padding: 40px 20px;
        background-size: 20px 20px;
    }

    .p-introduction__box {
        padding: 0;
    }

    .p-introduction__content-frame {
        padding: 0;
    }

    .p-introduction__corner--top-left,
    .p-introduction__corner--bottom-left {
        left: 0;
    }

    .p-introduction__corner--top-right,
    .p-introduction__corner--bottom-right {
        right: 0;
    }

    .p-introduction__sub-catch {
        font-size: 20px;
        margin-bottom: 24px;
    }

    .p-introduction__catch-text {
        white-space: nowrap;
    }

    .p-introduction__badge-new {
        transform: scale(0.56);
        left: -74px;
        top: -68px;
        margin: 0;
    }

    .p-introduction__cta {
        margin-top: 56px;
    }

    .u-show-sp {
        display: inline;
    }
}





@media screen and (max-width: 852px) {
    .p-reasons {
        background-size: 20px 20px;
    }

    .p-reasons__heading {
        margin-bottom: 40px;
    }

    .p-reasons__sub-title {
        font-size: 20px;
        margin-bottom: 16px;
    }

    .p-reasons__main-title {
        font-size: 32px;
    }

    .p-reasons__main-title-num {
        font-size: 38px;
    }

    .p-reasons__list {
        gap: 48px;
        padding-top: 40px;
    }

    .p-reasons__item {
        flex-direction: column !important;
        align-items: flex-start;
        width: 100%;
        margin: 0;
    }

    .p-reasons__item:nth-child(even) {
        flex-direction: column !important;
    }

    .p-reasons__item-image-wrap {
        width: 100%;
        flex: none;
        aspect-ratio: 16 / 10;
        border-radius: 24px;
        margin: 0 0 20px 0;
    }

    .p-reasons__item:nth-child(even) .p-reasons__item-image-wrap {
        margin: 0 0 20px 0;
    }

    .p-reasons__item-content {
        width: 100%;
        flex: none;
        padding-right: 0;
        margin-top: -36px;
        z-index: 2;
    }

    .p-reasons__item:nth-child(even) .p-reasons__item-content {
        margin-left: 0;
        margin-right: 0;
    }

    .p-reasons__item-number-wrap {
        left: 0px;
        top: 0px;
    }

    .p-reasons__item:nth-child(even) .p-reasons__item-number-wrap {
        left: 0px;
        top: 0px;
    }

    .p-reasons__item-point-label {
        writing-mode: vertical-rl;
        font-size: 13px;
        font-weight: bold;
        color: rgba(7, 75, 160, 0.6);
        margin: 4px 4px 0 0;
        line-height: 1;
    }

    .p-reasons__item-number {
        font-family: "DIN 2014", sans-serif;
        font-size: 72px;
        font-weight: bold;
        color: rgba(7, 75, 160, 0.45);
        line-height: 0.75;
        margin-top: -4px;
        letter-spacing: -2px;
        margin-left: 0;
    }

    .p-reasons__item-title-group {
        position: relative;
        z-index: 3;
        margin-top: 32px;
        margin-left: 48px;
        margin-bottom: 20px;
    }

    .p-reasons__item:nth-child(even) .p-reasons__item-title-group {
        margin-top: 32px;
        margin-left: 48px;
    }

    .p-reasons__item-title-block {
        display: block;
        width: fit-content;
        background-color: var(--color-main-blue);
        padding: 4px 12px;
        margin-bottom: 8px;
    }

    .p-reasons__item-title-block.is-second {
        margin-top: 0;
        margin-bottom: 0;
    }

    .p-reasons__item-title-text {
        color: var(--color-white);
        font-size: 18px;
        font-weight: 600;
        letter-spacing: 1px;
    }

    .p-reasons__item-description {
        font-size: 15px;
        font-weight: 600;
        letter-spacing: 0.5px;
        color: var(--color-text-black);
        margin-bottom: 20px;
        margin-left: 0;
    }

    .p-reasons__item-checklist {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 20px;
        margin-left: 0;
    }

    .p-highschool-reasons .p-reasons__item-checklist {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        gap: 6px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
    }

    .p-reasons__item-check-item {
        display: flex;
        align-items: center;
        background-color: var(--color-main-blue);
        padding: 4px 12px 4px 10px;
        width: fit-content;
    }

    .p-highschool-reasons .p-reasons__item-check-item {
        flex: 1 !important;
        width: auto !important;
        min-width: 0 !important;
        justify-content: center !important;
        padding: 4px 6px !important;
        white-space: nowrap !important;
        font-size: 11px !important;
    }

    .p-reasons__item-check-icon {
        display: block;
        width: 10px;
        height: 7px;
        border-left: 2px solid var(--color-white);
        border-bottom: 2px solid var(--color-white);
        transform: rotate(-45deg);
        margin-right: 8px;
        margin-top: -3px;
    }

    .p-reasons__item-check-text {
        color: var(--color-white);
        font-size: 15px;
        font-weight: 500;
        letter-spacing: 0.5px;
    }

    .p-reasons__item-footer-text {
        font-size: 15px;
        font-weight: 600;
        line-height: 1.6;
        letter-spacing: 0.3px;
        color: var(--color-text-black);
        margin-left: 0;
    }
}

.p-trouble__card-item {
    display: flex;
    align-items: center;
    gap: 18px;
}

.p-trouble__card-icon {
    width: 28px;
    /* Content */
    height: 28px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
}

.p-trouble__card-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 10px;
    border: solid var(--color-white);
    border-width: 0 2.5px 2.5px 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

.p-trouble__card-text {
    font-size: 24px;
    font-weight: 600;
    line-height: 1;
}

.p-trouble__image-wrap {
    width: 100%;
    max-width: 900px;
    /* Content */
    margin: 0 auto;
}

.p-trouble__image {
    width: 100%;
    height: auto;
    display: block;
}

.p-trouble__placeholder {
    padding: 60px;
    background-color: #f5f5f5;
    border: 2px dashed #ddd;
    border-radius: 10px;
    color: #888;
}

@media screen and (max-width: 852px) {
    .p-trouble__upper {
        padding-left: 0;
        padding-right: 0;
    }

    .p-trouble__lower::before {
        width: 180%;
    }

    .p-trouble__heading {
        font-size: 24px;
    }

    .p-trouble__lead {
        font-size: 18px;
    }

    .p-trouble__solution {
        font-size: 22px;
    }

    .p-trouble__card-inner {
        padding: 24px 16px;
        background-size: 12px 12px;
    }

    .p-trouble__card-inner,
    .p-trouble__card-inner * {
        font-weight: normal;
    }

    .p-trouble__card-title {
        margin-bottom: 16px;
    }

    .p-trouble__card-text {
        font-size: 18px;
    }

    .p-trouble__selection-text {
        font-size: 20px;
    }
}


/**
 * Reasons Summary Section
 */
.p-reasons__summary-container {
    position: relative;
    width: 100%;
}

.p-reasons__summary-inner {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 80px var(--container-padding);
    text-align: center;
    position: relative;
    border-radius: 0;
    z-index: 5;
    /*  */
    clip-path: polygon(0 0, calc(50% - 56px) 0, 50% 32px, calc(50% + 56px) 0, 100% 0, 100% 100%, 0 100%);
}

/*  */

.p-reasons__summary-title {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 48px;
    letter-spacing: 0.08em;
    line-height: 1.5;
}

.p-reasons__summary-title:last-of-type {
    margin-bottom: 0;
}

.p-reasons__summary-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    max-width: 960px;
    margin: 0 auto 48px;
}

.p-reasons__summary-card {
    background-color: var(--color-white);
    color: var(--color-text-black);
    width: calc(33.333% - 14px);
    min-width: 280px;
    padding: 24px 20px;
    border-radius: 12px;
    position: relative;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.p-reasons__summary-card-icon {
    width: 24px;
    height: 24px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
    position: absolute;
    /*  */
    top: 23px;
    left: 18px;
}

.p-reasons__summary-card-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -65%) rotate(45deg);
    width: 6px;
    height: 10px;
    border-right: 2px solid var(--color-white);
    border-bottom: 2px solid var(--color-white);
}

.p-reasons__summary-card-text {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}

/*  */
.p-reasons__summary-illust {
    position: absolute;
    bottom: -80px;
    right: calc(50% - 600px);
    width: 260px;
    z-index: 20;
    line-height: 0;
}

@media screen and (max-width: 1200px) {
    .p-reasons__summary-illust {
        right: 20px;
    }
}

@media screen and (max-width: 960px) {
    .p-reasons__summary-inner {
        padding-bottom: 240px;
    }

    .p-reasons__summary-illust {
        left: 50%;
        right: auto;
        bottom: -24px;
        transform: translateX(-50%);
        width: 240px;
        max-width: 80%;
    }
}

.p-reasons__summary-illust img {
    width: 100%;
    height: auto;
    display: block;
}

@media screen and (max-width: 852px) {
    .p-reasons__summary-title {
        font-size: 20px;
    }

    .p-reasons__summary-grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 12px;
        margin-bottom: 32px;
    }

    .p-reasons__summary-card {
        width: calc(50% - 6px);
        min-width: 0;
        padding: 12px 8px 12px 32px;
        text-align: left;
    }

    .p-reasons__summary-card-icon {
        width: 16px;
        height: 16px;
        top: 12px;
        transform: none;
        left: 8px;
    }

    .p-reasons__summary-card-icon::after {
        width: 4px;
        height: 6px;
        border-right-width: 1.5px;
        border-bottom-width: 1.5px;
        transform: translate(-50%, -60%) rotate(45deg);
    }

    .p-reasons__summary-card-text {
        font-size: 12px;
        font-weight: normal;
    }
}

.p-reasons__method-footer-accent {
    font-size: 20px;
}

/*  */
.p-reasons__method {
    padding: 100px 0;
    text-align: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

.p-reasons__method-text {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.6;
    color: var(--color-text-black);
}

.p-reasons__method-accent {
    font-size: 26px;
    font-weight: 600;
    color: var(--color-main-blue);
}

.p-reasons__method-diagram {
    margin: 60px auto;
    max-width: 460px;
    /* Content */
}

.p-reasons__method-diagram img {
    width: 100%;
    height: auto;
}

.p-reasons__method-footer {
    margin-bottom: 60px;
}

.p-reasons__method-card {
    max-width: 960px;
    margin: 40px auto 0;
}

.p-reasons__method-card img {
    width: 100%;
    height: auto;
    /* Content */
    border-radius: 20px;
}

/* Content */
@media screen and (max-width: 768px) {
    .p-reasons__method {
        padding: 60px 0;
    }

    .p-reasons__method-text {
        font-size: 20px;
    }

    .p-reasons__method-accent {
        font-size: 22px;
    }

    .p-reasons__method-diagram,
    .p-reasons__method-card {
        padding: 0 20px;
    }
}

/**
 * 
 */
.p-voices {
    padding: 80px var(--container-padding);
    background-color: #e5f2fe;
    background-image: repeating-linear-gradient(222deg, white 0, #ffffffa1 1px, transparent 0, transparent 24px);
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.p-voices__title {
    font-size: 32px;
    font-weight: 600;
    text-align: center;
    color: var(--color-text-black);
    margin-bottom: 48px;
}

.p-voices__title-accent {
    color: var(--color-main-blue);
    margin-left: 0.2em;
}

.p-voices__slider-container {
    position: relative;
    padding: 0 60px;
    /* Content */
    max-width: 1280px;
    margin: 0 auto;
}

.p-voices__item {
    scroll-snap-align: center;
    display: flex;
    flex-direction: column;
    width: 380px;
    /* Content */
    flex-shrink: 0;
    /* Content */
}

.splide__list {
    display: flex;
    gap: 20px;
}

/* Content */
.p-voices__arrows {
    display: flex;
    justify-content: space-between;
    width: 100%;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    z-index: 10;
    pointer-events: none;
}

.p-voices__arrow {
    width: 48px;
    height: 48px;
    background-color: var(--color-main-blue);
    border: 2px solid var(--color-main-blue);
    /* Section */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    pointer-events: auto;
    transition: background-color 0.3s, border-color 0.3s;
    opacity: 1;
}

.p-voices__arrow:hover {
    background-color: var(--color-white);
}

.p-voices__arrow:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.p-voices__arrow--prev {
    margin-left: 0;
}

.p-voices__arrow--next {
    margin-right: 0;
}

/* Content */
.p-voices__arrow-icon {
    width: 12px;
    height: 12px;
    border-top: 3px solid var(--color-white);
    border-right: 3px solid var(--color-white);
    display: block;
    transition: border-color 0.3s;
}

.p-voices__arrow--prev .p-voices__arrow-icon {
    transform: rotate(-135deg);
    margin-left: 4px;
}

.p-voices__arrow--next .p-voices__arrow-icon {
    transform: rotate(45deg);
    margin-right: 4px;
}

.p-voices__arrow:hover .p-voices__arrow-icon {
    border-color: var(--color-main-blue);
    /* Content */
}


/*  */
.p-voices__slider-container .splide__pagination {
    position: relative;
    bottom: auto;
    margin-top: 40px;
    display: flex;
    gap: 8px;
    justify-content: center;
    padding: 0;
}

.p-voices__slider-container .splide__pagination__page {
    width: 40px;
    height: 4px;
    background-color: #eeeeee;
    border-radius: 2px;
    border: none;
    padding: 0;
    margin: 0;
    opacity: 1;
    transform: none !important;
    /* overide splide default */
    transition: background-color 0.3s ease-out;
    cursor: pointer;
}

.p-voices__slider-container .splide__pagination__page.is-active,
.p-voices__slider-container .splide__pagination__page:hover {
    background-color: var(--color-main-blue);
}

/* Content */
.splide__track {
    overflow: visible;
    /* Content */
}



.p-voices__card-top {
    background-color: var(--color-white);
    padding: 16px 16px 16px 84px;
    margin-left: 72px;
    /*  */
    width: calc(100% - 72px);
    /* Content */
    position: relative;
    z-index: 2;
}

.p-voices__growth-arrows {
    position: absolute;
    bottom: 0;
    /* Content */
    right: 8px;
    display: flex;
    align-items: flex-end;
    z-index: -2;
    /*  */
    opacity: 0.15;
    line-height: 0;
    /* Content */
}

.p-voices__growth-arrow {
    width: 42px;
    height: 158px;
    background-color: var(--color-main-blue);
    /*  */
    clip-path: polygon(50% 0, 100% 20%, 75% 20%, 75% 100%, 25% 100%, 25% 20%, 0 20%);
    display: block;
}

.p-voices__growth-arrow:nth-child(2) {
    height: 180px;
}

.p-voices__student-photo {
    position: absolute;
    bottom: 0;
    left: -72px;
    /*  */
    width: 144px;
    height: 144px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--color-white);
    background-color: var(--color-white);
    z-index: 10;
}

.p-voices__student-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-voices__header-content {
    position: relative;
}

.p-voices__item-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-text-black);
}

.p-voices__score-group {
    font-size: 0;
    display: inline-block;
    position: relative;
    z-index: 1;
    margin-bottom: 8px;
}

/* Content */
.p-voices__score-group::after {
    content: "";
    position: absolute;
    bottom: 4px;
    left: -5%;
    width: 110%;
    height: 12px;
    background-color: #faf215;
    z-index: -1;
    border-radius: 2px;
}

.p-voices__score-subject {
    font-size: 18px;
    font-weight: 600;
}

.p-voices__score-plus {
    font-size: 20px;
    font-weight: 800;
    margin: 0 4px;
}

.p-voices__score-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--color-red);
    line-height: 1;
}

.p-voices__score-unit {
    font-size: 18px;
    font-weight: 800;
    margin-left: 4px;
}

.p-voices__student-info {
    font-size: 14px;
}

/*  */
.p-voices__card-bottom {
    background-color: var(--color-white);
    border: 2px solid var(--color-main-blue);
    padding: 16px;
    border-radius: 20px;
    margin-top: 20px;
    margin-left: 0 !important;
    /* Content */
    width: 100%;
    /* Content */
    position: relative;
}

.p-voices__content-text {
    font-size: 16px;
    line-height: 1.6;
    height: 8em;
    /*  */
    color: var(--color-text-black);
    font-weight: 500;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    line-clamp: 5;
    /* Content */
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 8px;
}

.p-voices__more-link {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    font-size: 14px;
    color: var(--color-text-black);
    text-decoration: none;
    transition: color 0.3s;
}

.p-voices__more-link:hover {
    color: var(--color-main-blue);
}

.p-voices__more-arrow {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5px 0 5px 7px;
    /* Content */
    border-color: transparent transparent transparent #1b1b1b;
    display: inline-block;
    margin-left: 4px;
}

/* Content */
@media screen and (max-width: 960px) {
    .p-voices__item {
        flex: 0 0 340px;
    }

    .p-voices__card-top {
        margin-left: 55px;
        width: calc(100% - 71px);
        padding-left: 76px;
    }

    .p-voices__student-photo {
        width: 110px;
        height: 110px;
        left: -55px;
    }

    .p-voices__score-value {
        font-size: 32px;
    }

    .p-voices__card-bottom {
        width: calc(100% - 16px);
    }
}

@media screen and (max-width: 852px) {
    .p-voices {
        padding: 80px 0;
    }

    .p-voices__arrow {
        width: 32px;
        height: 32px;
    }

    .p-voices__arrow-icon {
        width: 8px;
        height: 8px;
        border-top-width: 2px;
        border-right-width: 2px;
    }

    .p-voices__arrow--prev .p-voices__arrow-icon {
        margin-left: 2px;
    }

    .p-voices__arrow--next .p-voices__arrow-icon {
        margin-right: 2px;
    }

    .p-voices__content-text {
        font-size: 15px;
    }

    .p-voices__more-link {
        font-size: 12px;
    }

    .p-voices__item-title {
        font-size: 16px;
    }
}

/* Background Image for method area */
.p-reasons__method {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #ededee 0%, #f6f6f7 50%, #f8f9f8 100%);
}

/*  */
.p-reasons__method-bg-area {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0;
}

.p-reasons__method-arrow-wrap {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-reasons__method-lower-wrap {
    z-index: 1;
}

.p-reasons__method-upper-wrap {
    z-index: 2;
}

.p-reasons__method-arrow {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

/* Content */
.p-reasons__method-lower-shape {
    background: linear-gradient(to right, #fefefe 15%, #f9f9f9 65%, #f7f7f7 100%);
    clip-path: polygon(200% -245%, 15% 88%, 200% 421%);
}

/* Content */
.p-reasons__method-upper-shape {
    background:
        linear-gradient(to right, #ffffff 20%, rgba(255, 255, 255, 0) 70%),
        linear-gradient(to bottom, #ededed 0%, #f5f4f5 100%);
    clip-path: polygon(200% -286%, 20% 38%, 200% 362%);
}

.p-reasons__method-bg-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 3;
    pointer-events: none;
}

.p-reasons__method .l-container {
    position: relative;
    z-index: 10;
}

/* ==========================================================================
   
   ==========================================================================*/

.p-pricing {
    padding: 100px 0;
    position: relative;
    background-color: var(--color-white);
}

.p-pricing__inner.l-container {
    max-width: 960px;
}

.p-pricing__header {
    text-align: center;
    margin-bottom: 60px;
}

.p-pricing__title {
    font-size: 32px;
    font-weight: 600;
    position: relative;
    display: inline-block;
}

/* Content */
.p-pricing__tab-nav {
    display: flex;
    justify-content: center;
    margin-bottom: 0;
}

.p-pricing__tab-btn {
    flex: 1;
    max-width: 240px;
    background-color: var(--color-white);
    color: var(--color-main-blue);
    border: 2px solid var(--color-main-blue);
    border-bottom: none;
    padding: 15px 10px;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: 12px 12px 0 0;
    text-align: center;
}

.p-pricing__tab-btn.is-active {
    background-color: var(--color-main-blue);
    color: var(--color-white);
}

.p-pricing__tab-btn:not(:last-child) {
    border-right: none;
}

/* Content */
.p-pricing__tab-panel {
    display: none;
    position: relative;
    overflow: hidden;
}

/* Section */
.p-pricing__price-panel {
    background-color: var(--color-main-blue);
    padding: 40px 20px;
    text-align: center;
    color: var(--color-white);
    position: relative;
    overflow: hidden;
}

/*  */
.p-pricing__price-panel::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('assets/images/pricing-bg-pattern.png');
    background-size: cover;
    background-position: center;
    opacity: 0.15;
    pointer-events: none;
}

.p-pricing__tab-panel.is-active {
    display: block;
}

.p-pricing__panel-inner {
    position: relative;
    z-index: 1;
}

.p-pricing__catch {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
}

.u-br-sp {
    display: none;
}

.p-pricing__detail-tags {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 8px;
}

.p-pricing__tag {
    display: inline-block;
    padding: 0px 16px;
    border: 1px solid var(--color-white);
    font-size: 18px;
    font-weight: 600;
}

.p-pricing__price-area {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    font-weight: 600;
}

.p-pricing__price-label {
    font-size: 40px;
    color: var(--color-accent-yellow);
}

.p-pricing__price-number {
    font-size: 40px;
    color: var(--color-accent-yellow);
    line-height: 1;
}

.p-pricing__price-unit {
    font-size: 20px;
    color: var(--color-accent-yellow);
}

/* --- */
.p-pricing__feature-area {
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
    padding: 100px 20px;
    border: 2px solid #074BA0;
}

.p-pricing__feature-grid {
    display: flex;
    justify-content: center;
    gap: 30px;
    max-width: 100%;
}

.p-pricing__feature-card {
    flex: 1;
    max-width: 320px;
    background-color: var(--color-white);
    border: 2px solid var(--color-main-blue);
    border-radius: 12px;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: visible;
    /* Content */
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}

/* Content */
.p-pricing__feature-inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 10px;
    /*  */
}

/* Content */
.p-pricing__feature-badge {
    position: absolute;
    top: -42px;
    /* Section */
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 80px;
    background-color: var(--color-main-blue);
    color: var(--color-white);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 10;
    /* Content */
}

.p-pricing__feature-badge-label {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
}

.p-pricing__feature-badge-num {
    font-size: 32px;
    font-weight: 600;
    line-height: 1;
}

.p-pricing__feature-image-area {
    position: relative;
    padding: 24px 24px 0;
    width: 100%;
    overflow: visible;
}

.p-pricing__feature-shape {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 120px;
    background-color: var(--color-main-blue);
    border-radius: 100% 100% 0 0 / 50% 50% 0 0;
    z-index: 1;
}

.p-pricing__feature-image-wrap {
    position: relative;
    z-index: 2;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 12px;
}

.p-pricing__feature-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-pricing__feature-image-placeholder {
    width: 100%;
    height: 100%;
    background-color: #e0e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-pricing__feature-content {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 20px 20px 30px;
    flex-grow: 1;
    text-align: center;
    position: relative;
    z-index: 2;
}

.p-pricing__feature-title {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
}

.p-pricing__feature-highlight {
    color: var(--color-accent-yellow);
}

.p-pricing__feature-line {
    border: none;
    border-top: 2px solid #fff;
    margin: 15px auto;
    width: 100%;
}

.p-pricing__feature-desc {
    font-size: 15px;
    line-height: 1.8;
    text-align: center;
    word-break: break-all;
}

/* Section */
.p-pricing__table-wrap {
    margin: 60px auto 0;
    max-width: 700px;
    width: 100%;
}

.p-pricing__table {
    width: 100%;
    border-collapse: collapse;
    background-color: var(--color-white);
    border: 1px solid #e0e8f0;
}

.p-pricing__table th {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 15px;
    font-weight: 500;
    /* Content */
    text-align: center;
    border: 1px solid #e0e8f0;
}

.p-pricing__table td {
    padding: 15px 20px;
    border: 1px solid #e0e8f0;
    font-size: 16px;
    color: var(--color-text-black);
    text-align: center;
    font-weight: 400;
    /* Content */
}

.p-pricing__tax {
    font-size: 13px;
    font-weight: normal;
}

/* Content */
.p-pricing__table th:nth-child(1),
.p-pricing__table td:nth-child(1) {
    width: 25%;
}

.p-pricing__table th:nth-child(2),
.p-pricing__table td:nth-child(2) {
    width: 40%;
}

.p-pricing__table th:nth-child(3),
.p-pricing__table td:nth-child(3) {
    width: 35%;
}

.p-pricing__notes {
    font-size: 14px;
    line-height: 1.6;
    font-weight: 500;
    margin-top: 16px;
}

.p-pricing__cta {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

.p-pricing__cta .c-button--cta {
    min-width: 360px;
    padding: 18px 60px;
    font-size: 18px;
    border-radius: 100px;
    box-shadow: 0 4px 15px rgba(254, 156, 33, 0.4);
}

.p-pricing__cta-icon {
    margin-right: 15px;
    flex-shrink: 0;
    width: 26px;
    height: auto;
}

/*  */
.p-pricing__reason {
    margin-top: 100px;
    text-align: center;
}

.p-pricing__sub-title {
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 60px;
}

/* Content */
.p-course-features__header {
    text-align: center;
    margin-bottom: 30px;
}

.p-course-features__lead {
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    margin-top: 60px;
    line-height: 1.6;
}

.p-course-features__lead .u-marker span {
    color: var(--color-main-blue);
    background: linear-gradient(transparent 40%, var(--color-accent-yellow) 40%);
}

/* Content */
.u-marker {
    display: inline-block;
    position: relative;
    z-index: 1;
}

.u-marker span {
    display: inline-flex;
    align-items: baseline;
    background: linear-gradient(transparent 70%, var(--color-accent-yellow) 70%);
}

.p-pricing__reason-box {
    position: relative;
    max-width: 760px;
    margin: 0 auto;
    padding: 24px 60px;
}

.p-pricing__reason-text {
    font-size: 18px;
    line-height: 2;
    color: var(--color-text-black);
    font-weight: 600;
}

.p-pricing__badge {
    background-color: var(--color-main-blue);
    color: var(--color-accent-yellow);
    /* Content */
    padding: 2px 16px;
    font-weight: 600;
    margin: 0 4px;
    display: inline-block;
    line-height: 1.6;
}

.p-pricing__corner {
    position: absolute;
    width: 24px;
    height: 24px;
    border: 3px solid var(--color-main-blue);
    pointer-events: none;
}

.p-pricing__corner--top-left {
    top: 0;
    left: 0;
    border-right: none;
    border-bottom: none;
}

.p-pricing__corner--top-right {
    top: 0;
    right: 0;
    border-left: none;
    border-bottom: none;
}

.p-pricing__corner--bottom-left {
    bottom: 0;
    left: 0;
    border-right: none;
    border-top: none;
}

.p-pricing__corner--bottom-right {
    bottom: 0;
    right: 0;
    border-left: none;
    border-top: none;
}

/* --- Pricing Comparison --- */
.p-pricing__comparison {
    margin-top: 100px;
    text-align: center;
}

.p-pricing__comparison-grid {
    display: flex;
    justify-content: center;
    gap: 30px;
}

.p-pricing__comparison-item {
    flex: 1;
    max-width: 320px;
}

.p-pricing__comparison-image {
    width: 100%;
    margin-bottom: 24px;
    border-radius: 12px;
    overflow: hidden;
}

.p-pricing__comparison-image img {
    width: 100%;
    height: auto;
    display: block;
}

.p-pricing__image-placeholder {
    width: 100%;
    aspect-ratio: 4 / 3;
    background-color: #f0f3f5;
    position: relative;
}

.p-pricing__image-placeholder::after {
    content: "Image Area";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #a0a8b0;
    font-weight: 600;
}

.c-button--blue {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 14px 20px;
    border-radius: 100px;
    font-weight: 600;
    font-size: 15px;
    transition: opacity 0.3s;
    text-decoration: none;
    position: relative;
    width: 90%;
}

@media screen and (max-width: 960px) and (min-width: 853px) {
    .c-button--blue {
        font-size: 12px;
    }
}

.c-button--blue::after {
    content: "";
    position: absolute;
    right: 18px;
    width: 7px;
    height: 7px;
    border-top: 2px solid var(--color-white);
    border-right: 2px solid var(--color-white);
    transform: rotate(45deg);
}

.c-button--blue:hover {
    opacity: 0.9;
}

/* Content */
@media screen and (max-width: 852px) {
    .p-pricing {
        padding: 60px 0;
    }

    .p-pricing__tab-nav {
        display: flex;
        flex-wrap: nowrap;
        gap: 0;
        padding: 0;
        margin-bottom: 0;
    }

    .p-pricing__tab-btn {
        flex: 1;
        width: auto;
        max-width: none;
        background-color: var(--color-white);
        color: var(--color-main-blue);
        border: 2px solid var(--color-main-blue);
        border-bottom: none;
        padding: 14px 2px;
        font-size: 15px;
        font-weight: 600;
        border-radius: 8px 8px 0 0;
        margin-bottom: 0;
    }

    .p-pricing__tab-btn.is-active {
        background-color: var(--color-main-blue);
        color: var(--color-white);
    }

    .p-pricing__tab-btn:not(:last-child) {
        border-right: none;
    }

    .p-pricing__price-panel {
        padding: 24px 16px;
    }

    .p-pricing__catch {
        font-size: 16px;
        margin-bottom: 12px;
    }

    .u-br-pc {
        display: none;
    }

    .u-br-sp {
        display: initial;
    }

    .p-pricing__detail-tags {
        margin-bottom: 12px;
        gap: 10px;
    }

    .p-pricing__price-label,
    .p-pricing__price-number {
        font-size: 30px;
    }

    .p-pricing__price-unit {
        font-size: 20px;
    }

    .p-pricing__feature-area {
        padding: 80px 16px 60px;
        background-size: 20px 20px;
    }

    .p-pricing__table td {
        padding: 8px;
        font-size: 12px;
    }

    .p-pricing__tax {
        font-size: 8px;
    }

    .p-pricing__notes {
        font-size: 10px;
    }

    .p-pricing__cta .c-button--cta {
        width: 290px;
        max-width: 90%;
        min-width: 0;
        padding: 14px 0;
        font-size: 14px;
    }

    .p-pricing__sub-title {
        font-size: 22px;
        margin-bottom: 24px;
    }



    .p-pricing__reason-box {
        padding: 24px 0px;
    }

    .p-pricing__reason-text {
        font-size: 15px;
    }

    .p-pricing__badge {
        padding: 2px 4px;
        line-height: 1.4;
    }

    .p-pricing__comparison {
        margin-top: 60px;
    }

    .p-pricing__comparison-grid {
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .p-pricing__comparison-item {
        width: 100%;
        max-width: none;
    }

    .p-pricing__comparison-image {
        margin-bottom: 0;
        box-shadow: none;
    }

    .p-pricing__comparison-cta {
        margin: 32px 0 40px;
        display: flex;
        justify-content: center;
    }

    .p-pricing__comparison-item .c-button--blue {
        font-size: 14px;
        padding: 14px 0;
    }

    .p-pricing__comparison-item .c-button--blue::after {
        right: 25px;
    }

    .p-faq__more-btn {
        width: 290px;
        max-width: 90%;
        padding: 14px 0;
        font-size: 14px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 100px;
    }
}

/* ==========================================================================
   
   ==========================================================================*/

.p-flow {
    padding: 100px 0;
    background-image: linear-gradient(to bottom, #fff, #e5f2fe, #93c2fd);
    overflow: hidden;
}

.p-flow__title {
    font-size: 40px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 80px;
}

.p-flow__steps {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 30px;
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
}

.p-flow__step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.p-flow__step-indicator {
    position: relative;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.p-flow__step-label {
    position: absolute;
    left: calc(50% - 80px);
    /* Content */
    top: 50%;
    transform: translate(-50%, -50%);
    /* Content */
    display: flex;
    flex-direction: column;
    align-items: center;
    color: var(--color-main-blue);
    line-height: 1;
    z-index: 2;
}

.p-flow__step-label-sub {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 2px;
}

.p-flow__step-label-main {
    font-size: 32px;
    font-weight: 800;
}

.p-flow__image-wrap {
    width: 160px;
    height: 160px;
    background-color: var(--color-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    box-shadow: 8px 0 0 0 var(--color-main-blue);
    /* Content */
}

.p-flow__image {
    max-width: 70px;
    height: auto;
}

.p-flow__line {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    /* Content */
    height: 2px;
    background-color: var(--color-main-blue);
    z-index: 0;
    margin-left: 88px;
    /*  */
}

/* Content */
.p-flow__step:last-child .p-flow__line {
    display: none;
}

.p-flow__step-title {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    margin-bottom: 15px;
    color: var(--color-text-black);
}

.p-flow__step-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--color-text-black);
    text-align: left;
    max-width: 220px;
    margin: 0 auto;
}

/* Responsive */
@media screen and (max-width: 1024px) {
    .p-flow__line {
        width: 150%;
    }
}

@media screen and (max-width: 852px) {
    .p-flow {
        padding: 60px 0;
    }

    .p-flow__title {
        font-size: 30px;
        margin-bottom: 50px;
    }

    .p-flow__steps {
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .p-flow__step {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
        width: 100%;
    }

    .p-flow__step-indicator {
        flex-shrink: 0;
        width: 120px;
        height: 100px;
        position: relative;
        margin-bottom: 0;
        display: flex;
        justify-content: flex-end;
        align-items: center;
    }

    .p-flow__step-label {
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        align-items: flex-start;
    }

    .p-flow__step-label-sub {
        font-size: 10px;
    }

    .p-flow__step-label-main {
        font-size: 24px;
    }

    .p-flow__image-wrap {
        width: 100px;
        height: 100px;
        box-shadow: 5px 0 0 0 var(--color-main-blue);
    }

    .p-flow__image {
        max-width: 45px;
    }

    .p-flow__line {
        position: absolute;
        top: 100%;
        left: 70px;
        width: 2px;
        height: 40px;
        margin-left: 0;
        margin-top: 0;
    }

    .p-flow__content {
        flex: 1;
        margin-left: 20px;
        padding-top: 10px;
    }

    .p-flow__step-title {
        font-size: 16px;
        margin-bottom: 8px;
        text-align: left;
    }

    .p-flow__step-title br {
        display: none;
    }

    .p-flow__step-text {
        font-size: 13px;
        text-align: left;
        max-width: 100%;
        margin: 0;
    }
}

/* ==========================================================================
   
   ==========================================================================*/

.p-faq {
    padding: 100px 0;
    background-color: #fff;
}

.p-faq__title {
    font-size: 40px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 60px;
    color: var(--color-text-black);
}

.p-faq__title-accent {
    color: var(--color-main-blue);
}

.p-faq__list {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.p-faq__item,
.p-course-qna__item {
    width: 100%;
}

.p-faq__card,
.p-course-qna__card {
    border: 2px solid var(--color-main-blue);
    border-radius: 12px;
    overflow: hidden;
    background-color: #fff;
    position: relative;
}

/* Content */
.p-faq__card::after,
.p-course-qna__card::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 64px;
    background-color: var(--color-main-blue);
    pointer-events: none;
    z-index: 1;
}

.p-faq__question-btn,
.p-course-qna__question-btn {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 24px 30px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    position: relative;
    padding-right: 90px;
    /* Content */
}

.p-faq__q-icon,
.p-course-qna__q-icon {
    width: 36px;
    height: 36px;
    background-color: var(--color-main-blue);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-family: var(--font-base);
    margin-right: 20px;
    flex-shrink: 0;
}

.p-faq__question-text,
.p-course-qna__question-text {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
}

.p-faq__toggle,
.p-course-qna__toggle {
    position: absolute;
    top: 0;
    right: 0;
    width: 64px;
    height: 100%;
    background-color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.p-faq__toggle-line,
.p-course-qna__toggle-line {
    width: 16px;
    height: 2px;
    background-color: #fff;
    position: relative;
    transition: transform 0.3s;
}

/*  */
.p-faq__item:not(.is-open) .p-faq__toggle-line::after,
.p-course-qna__item:not(.is-open) .p-course-qna__toggle-line::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 16px;
    height: 2px;
    background-color: #fff;
    transform: rotate(90deg);
}

.p-faq__answer,
.p-course-qna__answer {
    background-color: #e5f2fe;
    /* Content */
    border-top: 2px solid #074ba0;
    margin-right: 64px;
    /* Content */
}

.p-faq__answer-inner,
.p-course-qna__answer-inner {
    padding: 24px 30px;
    display: flex;
    align-items: flex-start;
}

.p-faq__a-icon,
.p-course-qna__a-icon {
    width: 36px;
    height: 36px;
    background-color: #fff;
    color: var(--color-main-blue);
    border: 1px solid #c5dcf7;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-family: var(--font-base);
    margin-right: 20px;
    flex-shrink: 0;
}

.p-faq__answer-content,
.p-course-qna__answer-content {
    font-size: 16px;
    line-height: 1.8;
}

.p-faq__answer-content strong,
.p-faq__answer-content b,
.p-course-qna__answer-content strong,
.p-course-qna__answer-content b {
    color: var(--color-main-blue);
}

.p-faq__footer {
    text-align: center;
    margin-top: 60px;
}

.p-faq__more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 18px 60px;
    background-color: var(--color-main-blue);
    color: #fff;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    position: relative;
    transition: opacity 0.3s;
}

.p-faq__more-btn:hover {
    opacity: 0.9;
}

.p-faq__more-arrow {
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg);
    margin-left: 15px;
    margin-top: -2px;
}

.p-faq__banner {
    margin-top: 160px;
    text-align: center;
}

.p-faq__banner-img {
    max-width: 680px;
    width: 100%;
    height: auto;
    border-radius: 20px;
    vertical-align: bottom;
}

/* Responsive FAQ */
@media screen and (max-width: 768px) {
    .p-faq {
        padding: 60px 0;
    }

    .p-faq__title {
        font-size: 30px;
        margin-bottom: 40px;
    }

    .p-faq__question-btn,
    .p-course-qna__question-btn {
        padding: 16px 20px;
        padding-right: 70px;
    }

    .p-faq__question-text,
    .p-course-qna__question-text {
        font-size: 16px;
    }

    .p-faq__toggle,
    .p-course-qna__toggle {
        width: 50px;
    }

    .p-faq__card::after,
    .p-course-qna__card::after {
        width: 50px;
    }

    .p-faq__answer,
    .p-course-qna__answer {
        margin-right: 50px;
    }

    .p-faq__answer-inner,
    .p-course-qna__answer-inner {
        padding: 16px 20px;
    }

    .p-faq__banner {
        margin: 50px 0 60px;
    }

    .p-faq__banner-img {
        border-radius: 12px;
    }

    .p-faq__q-icon,
    .p-faq__a-icon,
    .p-course-qna__q-icon,
    .p-course-qna__a-icon {
        width: 30px;
        height: 30px;
        font-size: 14px;
        margin-right: 12px;
    }

    .p-faq__answer-content,
    .p-course-qna__answer-content {
        font-size: 14px;
    }

    .p-faq__more-btn {
        padding: 14px 40px;
        font-size: 14px;
    }
}

/* ==========================================================================
   
   ==========================================================================*/

.p-breadcrumb__inner {
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 12px var(--container-padding);
}

.p-breadcrumb__list {
    display: flex;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}

.p-breadcrumb__item {
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-black);
}

/*  */
.p-breadcrumb__item+.p-breadcrumb__item {
    position: relative;
    padding-left: 22px;
}

.p-breadcrumb__item+.p-breadcrumb__item::before {
    content: '';
    position: absolute;
    left: 6px;
    width: 6px;
    height: 6px;
    border-top: 2px solid var(--color-text-black);
    border-right: 2px solid var(--color-text-black);
    transform: rotate(45deg);
}

.p-breadcrumb__link {
    color: var(--color-text-black);
    text-decoration: none;
    font-weight: 600;
    transition: opacity 0.2s;
}

.p-breadcrumb__link:hover {
    opacity: 0.6;
    text-decoration: underline;
}

.p-breadcrumb--pass-results {
    width: 100%;
}

.p-breadcrumb__item--current {
    color: var(--color-text-black);
    font-weight: 600;
}

.single-post .p-breadcrumb__inner {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.single-post .p-breadcrumb__list {
    flex-wrap: nowrap;
    min-width: 100%;
    width: max-content;
}

.single-post .p-breadcrumb__item {
    flex: 0 0 auto;
    color: #777777;
    font-weight: 400;
    white-space: nowrap;
}

.single-post .p-breadcrumb__item+.p-breadcrumb__item::before {
    border-color: #777777;
}

.single-post .p-breadcrumb__link {
    color: inherit;
    font-weight: inherit;
}

.single-post .p-breadcrumb__item--current {
    color: var(--color-text-black);
    font-weight: 400;
}

/* ==========================================================================
   FAQ Category Navigation
   ==========================================================================*/

.p-faq-category-nav,
.p-course-category-nav {
    padding: 40px 0 30px;
    background: #fff;
}

.p-faq-category-nav__inner,
.p-course-category-nav__inner {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

@media screen and (max-width: 768px) {
    .p-faq-category-nav__inner,
    .p-course-category-nav__inner {
        gap: 10px;
    }

    .p-faq-category-btn,
    .p-course-category-btn {
        padding: 8px 12px;
        font-size: 13px;
        flex: 1;
        justify-content: center;
    }
}

.p-faq-category-btn,
.p-course-category-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 32px;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.2s, background 0.2s;
    cursor: pointer;
}

.p-faq-category-btn--primary,
.p-course-category-btn--primary {
    background-color: var(--color-main-blue);
    color: #fff;
    border: 2px solid var(--color-main-blue);
}

.p-faq-category-btn--primary:hover,
.p-course-category-btn--primary:hover {
    opacity: 0.85;
}

.p-faq-category-btn--secondary,
.p-course-category-btn--secondary {
    background-color: #fff;
    color: var(--color-main-blue);
    border: 2px solid var(--color-main-blue);
}

.p-faq-category-btn--secondary:hover,
.p-course-category-btn--secondary:hover {
    background-color: #f0f4fb;
}

/*  */
.p-faq-category-btn__arrow,
.p-course-category-btn__arrow {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -3px;
}

/* Section */
.p-faq-section,
.p-elementary-section {
    margin-bottom: 60px;
    scroll-margin-top: 100px;
    /* Content */
}

.p-faq-section__title {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-text-black);
    padding-left: 14px;
    border-left: 4px solid var(--color-main-blue);
    margin-bottom: 24px;
}

/* FAQ Page Styles / Course Page Styles */
.p-faq-page-header,
.p-course-page-header {
    background-color: var(--color-main-blue);
    padding: 80px 0;
    text-align: center;
    color: #fff;
}

.p-faq-page-header__sub,
.p-course-page-header__sub {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 10px;
    letter-spacing: 0.1em;
}

.p-faq-page-header__title,
.p-course-page-header__title {
    font-size: 36px;
    font-weight: 500;
    margin: 0;
}

.p-faq-page-header--left,
.p-course-page-header--left {
    text-align: left;
}

.p-faq-page-header--left .p-faq-page-header__title,
.p-course-page-header--left .p-course-page-header__title {
    max-width: 960px;
    margin: 0 auto;
}

.p-faq-page-container,
.p-course-page-container {
    max-width: 960px;
    margin: 0 auto;
    padding-bottom: 60px;
}

/* ==========================================================================
   
   ==========================================================================*/

.p-course-features__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-course-features__title {
    font-size: 36px;
    font-weight: bold;
    line-height: 1.2;
    color: var(--color-text-black);
}

.p-course-features__title-large {
    font-size: 48px;
    color: var(--color-main-blue);
    line-height: 1;
}

.p-course-features__title-sub {
    font-size: 28px;
    line-height: 1;
}

/* Content */
.p-course-features__title .u-marker span {
    display: inline-flex;
    align-items: baseline;
    background: linear-gradient(transparent 70%, var(--color-accent-yellow) 70%);
}

@media screen and (max-width: 852px) {
    .p-course-features__header {
        margin-bottom: 100px;
        /* Content */
    }

    .p-course-features__title {
        font-size: 20px;
    }

    .p-course-features__title-large {
        font-size: 40px;
    }

    .p-pricing__feature-grid {
        flex-direction: column;
        align-items: center;
        gap: 80px;
    }

    .p-pricing__feature-card {
        max-width: none;
    }
}

.p-faq-page-empty {
    text-align: center;
    color: #888;
    padding: 40px 0;
}

/* FAQ Accordion Toggle / Course Q&A Accordion Toggle */
.p-faq__answer,
.p-course-qna__answer {
    display: none;
}

.p-faq__item.is-open .p-faq__answer,
.p-course-qna__item.is-open .p-course-qna__answer {
    display: block;
}

/* Utility Classes for Content */

/* ==========================================================================
   
   ==========================================================================*/

.p-course-pricing {
    padding: 100px 0;
    background-color: var(--color-white);
}

.p-course-pricing__title {
    text-align: center;
    font-size: 32px;
    font-weight: 600;
    color: var(--color-text-black);
    margin-bottom: 60px;
}

.p-course-pricing__tab-nav {
    display: flex;
    justify-content: center;
    max-width: 960px;
    margin: 0 auto;
    position: relative;
}

.p-course-pricing__tab-btn {
    flex: 1;
    background-color: var(--color-white);
    color: var(--color-main-blue);
    border: 2px solid var(--color-main-blue);
    padding: 15px 10px;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: 12px 12px 0 0;
    text-align: center;
    position: relative;
}

.p-course-pricing__tab-btn.is-active {
    background-color: var(--color-main-blue);
    color: var(--color-white);
}

.p-course-pricing__tab-btn:not(:last-child) {
    border-right: none;
}

.p-course-pricing__tab-panel {
    display: none;
    max-width: 960px;
    margin: 0 auto;
    border: 2px solid var(--color-main-blue);
    overflow: hidden;
}

.p-course-pricing__tab-panel.is-active {
    display: block;
}

/* Section */
.p-course-pricing__main {
    background-color: var(--color-main-blue);
    padding: 40px 20px;
    text-align: center;
    color: var(--color-white);
    position: relative;
}

@media screen and (max-width: 768px) {

    .p-faq-section {
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }

    .p-faq-category-btn,
    .p-course-category-btn {
        padding: 8px 0px;
    }

    .p-course-pricing__main {
        padding: 24px 16px;
    }

    .p-course-pricing__tab-btn {
        font-size: 16px;
    }

    .p-course-pricing__option-box {
        padding: 12px 16px;
    }

    .p-course-comparison {
        padding: 60px 0;
    }
}

.p-course-pricing__catch {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 16px;
}

.p-course-pricing__pill {
    display: inline-block;
    background-color: var(--color-white);
    color: var(--color-main-blue);
    padding: 6px 30px;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 24px;
}

.p-course-pricing__info {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 8px;
}

.p-course-pricing__info-item {
    padding: 2px 12px;
    border: 1px solid var(--color-white);
    font-size: 18px;
    font-weight: 600;
}

.p-course-pricing__price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
}

.p-course-pricing__price-label {
    font-size: 40px;
    font-weight: 600;
    color: var(--color-accent-yellow);
}

.p-course-pricing__price-number {
    font-size: 40px;
    font-weight: 600;
    color: var(--color-accent-yellow);
    line-height: 1;
}

.p-course-pricing__price-unit {
    font-size: 20px;
    font-weight: 600;
    color: var(--color-accent-yellow);
}

/* Section */
.p-course-pricing__detail {
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    padding: 60px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Content */
.p-course-pricing__option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 540px;
    /* Content */
    margin-bottom: 60px;
    gap: 15px;
}

.p-course-pricing__option-box {
    border: 1.5px solid var(--color-main-blue);
    padding: 18px 24px;
    background-color: #fff;
    flex: 1;
    max-width: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.p-course-pricing__option-title {
    font-size: 17px;
    font-weight: 600;
    color: var(--color-main-blue);
    line-height: 1.4;
}

.p-course-pricing__option-info {
    display: flex;
    align-items: center;
    gap: 20px;
}

.p-course-pricing__option-tags {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.p-course-pricing__option-tag {
    font-size: 12px;
    font-weight: 600;
    border: 1px solid var(--color-text-black);
    padding: 2px 8px;
    text-align: center;
    min-width: 64px;
}

.p-course-pricing__option-price {
    text-align: left;
}

.p-course-pricing__option-price-sub {
    display: block;
    font-size: 14px;
    font-weight: 600;
}

.p-course-pricing__option-price-main {
    display: block;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

/* Content */
.p-course-pricing__table-wrap {
    width: 100%;
    max-width: 700px;
}

.p-course-pricing__table {
    width: 100%;
    border-collapse: collapse;
    background-color: #fff;
    border: 1px solid #e0e8f0;
}

.p-course-pricing__table th {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 15px;
    border: 1px solid #e0e8f0;
    font-size: 16px;
    font-weight: 500;
}

.p-course-pricing__table td {
    padding: 15px 20px;
    border: 1px solid #e0e8f0;
    text-align: center;
    font-size: 16px;
    color: var(--color-text-black);
    font-weight: 400;
}

.u-sp-br {
    display: none;
}

.p-course-pricing__table th:nth-child(1),
.p-course-pricing__table td:nth-child(1) {
    width: 25%;
}

.p-course-pricing__table th:nth-child(2),
.p-course-pricing__table td:nth-child(2) {
    width: 40%;
}

.p-course-pricing__table th:nth-child(3),
.p-course-pricing__table td:nth-child(3) {
    width: 35%;
    font-size: 16px;
}

.p-course-pricing__table tr td:first-child {
    background-color: #fff;
}



/* Balloon (Speech Bubble) */
.c-balloon {
    position: absolute;
    top: -50px;
    left: -20px;
    background-color: var(--color-accent-yellow);
    color: var(--color-main-blue);
    width: 76px;
    height: 76px;
    border-radius: 50% 50% 0 50%;
    border: 1px solid var(--color-main-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    box-shadow: none;
    z-index: 5;
}

.c-balloon::after {
    display: none;
}

.p-course-pricing__tab-btn.has-recommend-balloon {
    position: static;
}

.c-balloon--recommend {
    left: 316px;
}

.p-course-pricing__lead-box {
    background-color: var(--color-main-blue);
    padding: 24px 40px;
    border-radius: 4px;
    text-align: center;
    color: var(--color-white);
    margin-bottom: 40px;
    width: 100%;
    max-width: 540px;
}

.p-course-pricing__lead-text {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 12px;
}

.p-course-pricing__lead-text.is-no-pill {
    margin-bottom: 0;
}

.p-course-pricing__lead-pill {
    display: inline-block;
    background-color: var(--color-white);
    color: var(--color-main-blue);
    padding: 4px 30px;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 600;
}

.p-course-pricing__tax {
    font-size: 13px;
    font-weight: normal;
}

@media screen and (max-width: 768px) {
    .c-balloon {
        top: -44px;
        left: -6px;
        width: 56px;
        height: 56px;
        font-size: 12px;
    }

    .c-balloon--recommend {
        left: 110px;
    }

    .p-course-pricing__tax {
        font-size: 8px;
    }

    .p-faq-page-header,
    .p-course-page-header {
        padding: 40px 0;
    }

    .p-faq-page-header__title,
    .p-course-page-header__title,
    .p-faq-page-header--left .p-faq-page-header__title,
    .p-course-page-header--left .p-course-page-header__title {
        text-align: center;
        font-size: 24px;
        font-weight: 600;
    }

    .p-course-pricing {
        padding: 60px 0 0;
    }

    .p-course-pricing__title {
        font-size: 24px;
        margin-bottom: 46px;
    }

    .p-course-pricing__tab-nav {
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 0;
        padding: 0;
        margin-bottom: 0;
    }

    .p-course-pricing__tab-btn {
        flex: 1;
        width: auto;
        max-width: none;
        border-radius: 8px 8px 0 0;
        border-bottom: none;
        padding: 14px 2px;
        font-size: 12px;
        font-weight: 600;
        margin-bottom: 0;
        border-right: none !important;
    }

    .p-course-pricing__tab-btn:last-child {
        border-right: 2px solid var(--color-main-blue) !important;
    }


    .p-course-pricing__detail {
        padding: 40px 20px;
        background-size: 20px 20px;
    }

    .p-course-pricing__tax {
        font-size: 8px;
    }

    .p-course-pricing__tab-btn-main {
        font-size: 15px !important;
    }

    .p-course-pricing__option {
        flex-direction: column;
        align-items: center;
        gap: 20px;
        margin-bottom: 30px;
    }

    .p-course-pricing__catch {
        font-size: 16px;
        margin-bottom: 16px;
    }

    .p-course-pricing__pill {
        padding: 4px 20px;
        font-size: 14px;
        margin-bottom: 15px;
    }

    .p-course-pricing__info {
        margin-bottom: 15px;
    }

    .p-course-pricing__price-label,
    .p-course-pricing__price-number {
        font-size: 30px;
    }

    .p-course-pricing__table td,
    .p-course-pricing__table th {
        padding: 8px;
        font-size: 12px;
    }

    .p-course-pricing__table th:nth-child(2),
    .p-course-pricing__table td:nth-child(2) {
        width: auto;
    }

    .p-course-pricing__table th:nth-child(3),
    .p-course-pricing__table td:nth-child(3) {
        width: auto;
        font-size: 12px;
    }




    .p-course-comparison {
        padding: 60px 0;
    }

    .p-course-comparison__title {
        font-size: 22px;
        margin-bottom: 24px;
    }

    .p-course-comparison__content {
        margin-bottom: 0;
    }


    /* コースページ内のCTAボタン幅をホームと統一 */
    .p-course-comparison__action .c-button--cta,
    .p-pricing__cta .c-button--cta,
    .p-course-pricing__tab-panel .c-button--cta {
        width: 290px;
        max-width: 90%;
        min-width: 0;
        padding: 14px 0;
        font-size: 14px;
        display: inline-flex;
    }
}

.p-course-pricing__placeholder {
    text-align: center;
    padding: 40px;
    font-weight: 600;
    color: var(--color-main-blue);
}

.u-color-orange {
    color: #FF6717;
    font-weight: 600;
}

.u-color-blue {
    color: var(--color-main-blue);
}

.u-bg-yellow {
    background-color: rgba(250, 242, 21, 0.3);
    font-weight: 600;
    padding: 0 4px;
}

/* ==========================================================================
   Course Comparison (Pricing Comparison)
   ==========================================================================*/

.p-course-comparison {
    padding: 100px 0;
    text-align: center;
    background-color: var(--color-white);
}

.p-course-comparison__title {
    display: inline-block;
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 60px;
}

.p-course-comparison__content {
    max-width: 960px;
    margin: 0 auto;
}

.p-course-comparison__image-wrap {
    width: 100%;
}

.p-course-comparison__image-wrap img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.p-course-comparison__action {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

/*  */
.icon-mail {
    display: inline-block;
    width: 22px;
    height: 22px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-right: 10px;
    vertical-align: middle;
}

/* ==========================================================================
   Footer Styles
   ==========================================================================*/

/* CTA Section */
.p-footer-cta {
    background-color: var(--color-main-blue);
    padding: 60px 0;
    color: var(--color-white);
}

.p-footer-cta__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 960px;
    margin: 0 auto;
}

.p-footer-cta__left {
    flex: 1;
}

.p-footer-cta__lead {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
}

.p-footer-cta__title {
    font-size: 32px;
    font-weight: 600;
    color: var(--color-accent-yellow);
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
    padding-bottom: 14px;
}

.p-footer-cta__features {
    font-size: 14px;
    margin-top: 16px;
    padding-left: 24px;
    /* Indentation to align with sitemap links */
}

.p-footer-cta__features-title {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 16px;
}

.p-footer-cta__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-footer-cta__list li {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    position: relative;
}

.p-footer-cta__list li .icon-check {
    display: inline-block;
    width: 16px;
    height: 16px;
    background-color: var(--color-white);
    background-image: none;
    border-radius: 50%;
    margin-right: 8px;
    position: absolute;
    left: -24px;
    /* Position to the left of the alignment line */
    top: 3px;
}

.p-footer-cta__list li .icon-check::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 5px;
    width: 4px;
    height: 7px;
    border-right: 2px solid var(--color-main-blue);
    border-bottom: 2px solid var(--color-main-blue);
    transform: rotate(45deg);
}

.p-footer-cta__right {
    width: 450px;
    margin-left: 40px;
}

.p-footer-cta__action {
    background-color: var(--color-white);
    background-image: url('assets/images/無料体験ボタン.png');
    background-repeat: no-repeat;
    /* Content */
    background-size: cover;
    background-position: center;
    border-radius: 10px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    min-height: 220px;
}

.c-button--cta-orange,
.c-button--cta-green {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 240px;
    padding: 12px 30px;
    padding-right: 45px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    color: var(--color-white);
    margin-bottom: 15px;
    transition: opacity 0.3s;
    text-decoration: none;
    position: relative;
}

.c-button--cta-orange::after,
.c-button--cta-green::after {
    content: '';
    position: absolute;
    right: 20px;
    width: 6px;
    height: 6px;
    border-top: 2px solid var(--color-white);
    border-right: 2px solid var(--color-white);
    transform: rotate(45deg);
}

.c-button--cta-orange:hover,
.c-button--cta-green:hover {
    opacity: 0.9;
}

.c-button--cta-orange {
    background: linear-gradient(to right, var(--color-cta-orange-start), var(--color-cta-orange-end));
}

.c-button--cta-green {
    background: linear-gradient(to right, var(--color-accent-green-start), var(--color-accent-green-end));
    margin-bottom: 0;
}

/* Sitemap Section */
.p-footer-sitemap {
    background-color: var(--color-main-blue);
    padding: 40px 0 60px;
}

.p-footer-sitemap__nav {
    display: flex;
    justify-content: space-between;
    max-width: 960px;
    margin: 0 auto;
}

.p-footer-sitemap__col {
    flex: 1;
}

.p-footer-sitemap__col--schools {
    flex: 2;
}

.p-footer-sitemap__list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-left: 1px solid #fff;
    padding-left: 24px;
}

.p-footer-sitemap__list li {
    margin-bottom: 15px;
}

.p-footer-sitemap__list a {
    color: var(--color-white);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.3s;
}

.p-footer-sitemap__list a:hover {
    opacity: 0.7;
}

.p-footer-sitemap__schools-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 40px;
}

.p-footer-sitemap__schools-col {
    border-left: 1px solid #fff;
    padding-left: 24px;
}

.p-footer-sitemap__accordion {
    margin-bottom: 15px;
}

.p-footer-sitemap__accordion-btn {
    background: none;
    border: none;
    color: var(--color-white);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    padding: 0;
    font-family: inherit;
}

.p-footer-sitemap__accordion-btn .icon-arrow {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-top: 2px solid var(--color-white);
    border-right: 2px solid var(--color-white);
    transform: rotate(135deg);
    margin-left: 10px;
    transition: transform 0.3s;
}

.p-footer-sitemap__accordion-btn[aria-expanded="true"] .icon-arrow {
    transform: rotate(-45deg);
    margin-top: 4px;
}

.p-footer-sitemap__accordion-content {
    list-style: none;
    padding: 10px 0 0 15px;
    margin: 0;
    display: none;
}

.p-footer-sitemap__accordion-content li {
    margin-bottom: 10px;
}

.p-footer-sitemap__accordion-content a {
    color: var(--color-white);
    font-size: 13px;
    text-decoration: none;
}

/* Submenu Section */
.p-footer-submenu {
    background-color: #074BA0;
    /* Content */
    padding: 20px 0;
}

.p-footer-submenu__list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 30px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-footer-submenu__list a {
    color: var(--color-white);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

/* Copyright & Logo Section */
.p-footer-info {
    background-color: var(--color-white);
    padding: 40px 0 20px;
}

.p-footer-info__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto;
    margin-bottom: 20px;
}

.p-footer-info__logo img,
.p-footer-info__logo .custom-logo {
    max-height: 40px;
    width: auto;
}

.p-footer-info__logo-text {
    font-size: 28px;
    font-weight: 600;
    color: var(--color-main-blue);
}

.p-footer-info__company {
    flex: 1;
    margin-left: 40px;
    font-size: 13px;
    color: var(--color-text-black);
    font-weight: 600;
}

.p-footer-info__company-name {
    margin-bottom: 5px;
}

.p-footer-info__sns {
    display: flex;
    gap: 15px;
    align-items: center;
}

.p-footer-info__sns img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.p-footer-info__copyright {
    text-align: right;
    max-width: 1000px;
    margin: 0 auto;
    font-size: 12px;
    color: var(--color-text-black);
    font-weight: 600;
    padding-right: 20px;
}


/*  */
.p-course-pricing--exam {
    padding: 100px 0;
}

.p-course-pricing--exam .p-course-pricing__tab-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: -2px;
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
}

.p-course-pricing--exam .p-course-pricing__tab-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    background-color: var(--color-white);
    border: 2px solid var(--color-main-blue);
    border-radius: 12px 12px 0 0;
    cursor: pointer;
    transition: all 0.3s ease;
    color: var(--color-main-blue);
}

.p-course-pricing--exam .p-course-pricing__tab-btn:not(:last-child) {
    border-right: none;
}

.p-course-pricing--exam .p-course-pricing__tab-btn.is-active {
    background-color: var(--color-main-blue);
    color: var(--color-white);
}

.p-course-pricing--exam .p-course-pricing__tab-btn-sub {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 6px;
    display: block;
}

.p-course-pricing--exam .p-course-pricing__tab-btn-main {
    font-size: 22px;
    font-weight: 600;
    padding: 6px 15px;
    background-color: transparent;
    border: 1px solid var(--color-main-blue);
    display: block;
    width: auto;
    transition: all 0.3s ease;
}

.p-course-pricing--exam .p-course-pricing__tab-btn.is-active .p-course-pricing__tab-btn-main {
    background-color: var(--color-white);
    color: var(--color-main-blue);
    border: 1px solid var(--color-white);
    /* Content */
}

.p-course-pricing__tab-content {
    min-height: 540px;
    /* Content */
}

.p-course-pricing--exam .p-course-pricing__panel {
    display: none;
    border: none;
    overflow: visible;
}

.p-course-pricing--exam .p-course-pricing__panel.is-active {
    display: block;
}

.p-course-pricing--exam .p-course-pricing__panel-header {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 40px 20px;
    text-align: center;
    border: 2px solid var(--color-main-blue);
    border-bottom: none;
}

.p-course-pricing--exam .p-course-pricing__panel-title {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 20px;
}

.p-course-pricing--exam .p-course-pricing__panel-badges {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 20px;
}

.p-course-pricing--exam .p-course-pricing__panel-badge {
    background-color: transparent;
    border: 1px solid var(--color-white);
    padding: 4px 15px;
    font-size: 16px;
    font-weight: 600;
}

.p-course-pricing--exam .p-course-pricing__panel-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    font-weight: 600;
}

.p-course-pricing--exam .p-course-pricing__panel-price-label,
.p-course-pricing--exam .p-course-pricing__panel-price-number {
    font-size: 40px;
    color: var(--color-accent-yellow);
    line-height: 1;
}

.p-course-pricing--exam .p-course-pricing__panel-price-unit {
    font-size: 20px;
    color: var(--color-accent-yellow);
}

.p-course-pricing--exam .p-course-pricing__panel-body {
    padding: 60px 20px;
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 2px solid var(--color-main-blue);
    border-top: none;
}

@media screen and (max-width: 768px) {

    /* 中学受験コース料金エリアのレスポンシブ追加 */
    .p-course-pricing--exam .p-course-pricing__tab-nav {
        gap: 0;
    }

    .p-course-pricing--exam .p-course-pricing__tab-btn-sub {
        font-size: 12px;
        margin-bottom: 6px;
    }

    .p-course-pricing--exam .p-course-pricing__tab-btn {
        min-width: 0;
        overflow: hidden;
        padding: 10px 6px;
    }

    .p-course-pricing--exam .p-course-pricing__tab-btn-main {
        padding: 6px 4px;
        width: 100%;
        display: block;
    }

    .p-course-pricing--exam .p-course-pricing__tab-btn-title {
        font-size: 15px;
    }

    .p-course-pricing--exam .p-course-pricing__tab-btn-text {
        font-size: 12px;
    }

    .p-course-pricing--exam .p-course-pricing__panel-header {
        padding: 24px 16px;
    }

    .p-course-pricing--exam .p-course-pricing__panel-title {
        font-size: 16px;
        margin-bottom: 12px;
    }

    .p-course-pricing--exam .p-course-pricing__panel-badges {
        margin-bottom: 12px;
    }

    .p-course-pricing--exam .p-course-pricing__panel-badge {
        display: inline-block;
        padding: 0px 16px;
        border: 1px solid var(--color-white);
        font-size: 18px;
        font-weight: 600;
    }

    .p-course-pricing--exam .p-course-pricing__panel-price {
        display: flex;
        align-items: baseline;
        justify-content: center;
        gap: 8px;
        font-weight: 600;
    }

    .p-course-pricing--exam .p-course-pricing__panel-price-label,
    .p-course-pricing--exam .p-course-pricing__panel-price-number {
        font-size: 30px;
        color: var(--color-accent-yellow);
        line-height: 1;
    }

    .p-course-pricing--exam .p-course-pricing__panel-price-unit {
        font-size: 20px;
        color: var(--color-accent-yellow);
    }

    .p-course-pricing--exam .p-course-pricing__panel-body {
        padding: 40px 16px 60px;
    }

    .p-course-pricing--exam .p-course-pricing__panel-header {
        padding: 24px 20px;
    }
}

/* Content */
.p-course-pricing__recommend {
    width: 100%;
    max-width: 700px;
    margin-bottom: 60px;
    background-color: #fff4d8;
    border-radius: 30px;
    padding: 24px;
    position: relative;
}

.p-course-pricing__recommend-inner {
    position: relative;
    z-index: 2;
}

.p-course-pricing__recommend-title {
    text-align: center;
    font-size: 22px;
    font-weight: 600;
    color: var(--color-main-blue);
    margin-bottom: 30px;
}

.p-course-pricing__recommend-image {
    position: absolute;
    top: -40px;
    right: 20px;
    width: 120px;
    z-index: 10;
}

.p-course-pricing__recommend-list {
    display: grid;
    grid-template-columns: repeat(2, auto);
    /* Content */
    justify-content: center;
    gap: 15px 40px;
    background-color: var(--color-white);
    padding: 24px 40px;
    border-radius: 24px;
}

.p-course-pricing__recommend-list li {
    font-size: 16px;
    font-weight: 500;
    position: relative;
    padding-left: 28px;
    display: flex;
    align-items: center;
    white-space: nowrap;
    /* Content */
}

.p-course-pricing__recommend-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background-image: url("assets/images/電球.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

@media screen and (max-width: 768px) {
    .p-course-pricing__recommend {
        padding: 16px 12px;
        margin-bottom: 40px;
        border-radius: 20px;
        position: relative;
    }

    .p-course-pricing__recommend-title {
        font-size: 16px;
        margin-bottom: 20px;
        text-align: center;
        font-weight: 600;
    }

    .p-course-pricing__recommend-image {
        display: block;
        position: absolute;
        top: -14px;
        right: 4px;
        width: 60px;
        height: auto;
    }

    .p-course-pricing__recommend-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
        background-color: transparent !important;
        padding: 0;
        border-radius: 0;
    }

    .p-course-pricing__recommend-list li {
        background-color: var(--color-white);
        border-radius: 10px;
        padding: 10px 6px 10px 22px;
        font-size: 11px;
        font-weight: 600;
        line-height: 1.4;
        white-space: normal;
        display: flex;
        align-items: center;
        text-align: left;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
        box-sizing: border-box;
        min-height: 58px;
    }

    .p-course-pricing__recommend-list li::before {
        content: "";
        position: absolute;
        left: 5px;
        top: 50%;
        transform: translateY(-50%);
        width: 13px;
        height: 13px;
    }

    .u-sp-br {
        display: block;
        content: "";
    }
}

/*  */
.p-exam-detail-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

.p-exam-detail-card {
    background-color: var(--color-white);
    border: 2px solid var(--color-main-blue);
    border-radius: 20px;
    overflow: visible;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
}

.p-exam-detail-card__header {
    background-color: var(--color-main-blue);
    padding: 20px 25px;
    position: relative;
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px 18px 0 0;
}

.p-exam-detail-card__tag {
    position: absolute;
    top: -8px;
    left: 40px;
    background-color: var(--color-accent-yellow);
    color: var(--color-text-black);
    font-weight: 600;
    padding: 16px;
    font-size: 16px;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 88%, 0 100%);
    z-index: 10;
    width: 70px;
    text-align: center;
    line-height: 1.2;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 96px;
    /* Content */
}

/* Content */
.p-exam-detail-card__tag::before {
    content: "";
    position: absolute;
    top: 0;
    left: -8px;
    border-top: 8px solid transparent;
    border-right: 8px solid #d4c000;
    /* Content */
    border-bottom: 0 solid transparent;
    z-index: -1;
}

/* Content */
.p-exam-detail-card__tag::after {
    content: "";
    position: absolute;
    top: 0;
    right: -8px;
    border-top: 8px solid transparent;
    border-left: 8px solid #d4c000;
    border-bottom: 0 solid transparent;
    z-index: -1;
}

.p-exam-detail-card__tag-num {
    font-size: 26px;
    font-weight: 800;
    margin: 0 2px;
    line-height: 1;
}

.p-exam-detail-card__header-inner {
    display: flex;
    align-items: center;
    position: relative;
}

.p-exam-detail-card__header-title {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.p-exam-detail-card__pencil {
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 12px;
    width: 32px;
    height: 32px;
}

.p-exam-detail-card__pencil-img {
    width: 100%;
    height: auto;
    filter: brightness(0) invert(1);
    /* Content */
}

.p-exam-detail-card__body {
    padding: 40px 30px;
    background-color: var(--color-white);
    position: relative;
    flex: 1;
}

/* Content */
.p-exam-detail-card__body::after {
    content: "";
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 15px solid var(--color-white);
    z-index: 5;
}

.p-exam-detail-card__title {
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 30px;
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
}

.p-exam-detail-card__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-left: 0;
    width: fit-content;
    margin: 0 auto;
}

.p-exam-detail-card__list li {
    font-size: 15px;
    font-weight: 600;
    position: relative;
    padding-left: 30px;
    display: flex;
    align-items: center;
}

/* Content */
.p-exam-detail-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    width: 20px;
    height: 20px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
}

.p-exam-detail-card__list li::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 7px;
    width: 8px;
    height: 5px;
    border-left: 2px solid var(--color-white);
    border-bottom: 2px solid var(--color-white);
    transform: rotate(-45deg);
}

.p-exam-detail-card__footer {
    background-color: #d7e9ff;
    padding: 50px 30px 40px;
    position: relative;
    border-radius: 0 0 16px 16px;
}

.p-exam-detail-card__footer-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 25px;
    position: relative;
    padding-bottom: 0;
}

/*  */
.p-exam-detail-card__footer-header::before {
    content: "";
    position: absolute;
    bottom: 1px;
    left: 22px;
    right: 2px;
    height: 2px;
    background-color: var(--color-main-blue);
    z-index: 1;
}

/* Content */
.p-exam-detail-card__footer-header::after {
    content: "";
    position: absolute;
    bottom: -3px;
    right: 0;
    width: 8px;
    height: 8px;
    border: 2px solid var(--color-main-blue);
    background-color: var(--color-white);
    border-radius: 50%;
    z-index: 3;
}

.p-exam-detail-card__feature-badge {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    font-size: 14px;
    font-weight: 600;
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
    /* Content */
}

.p-exam-detail-card__footer-title {
    font-size: 24px;
    /* Content */
    font-weight: 600;
    color: var(--color-main-blue);
    line-height: 1.1;
    position: relative;
    z-index: 2;
    margin-bottom: 0;
    /*  */
}

.p-exam-detail-card__footer-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: fit-content;
    margin: 0 auto;
}

.p-exam-detail-card__footer-list li {
    font-size: 15px;
    font-weight: 600;
    position: relative;
    padding-left: 30px;
}

/* Content */
.p-exam-detail-card__footer-list li::before {
    content: "";
    position: absolute;
    left: 0;
    width: 20px;
    height: 20px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
}

.p-exam-detail-card__footer-list li::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 5px;
    width: 8px;
    height: 5px;
    border-left: 2px solid var(--color-white);
    border-bottom: 2px solid var(--color-white);
    transform: rotate(-45deg);
}

.u-text-bold {
    font-weight: 600;
}

.u-text-blue {
    color: var(--color-main-blue);
}

/* Content */
@media screen and (max-width: 768px) {
    .p-exam-detail-cards {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .p-exam-detail-card__header {
        padding: 15px;
    }

    .p-exam-detail-card__tag {
        left: 16px;
        width: 60px;
        padding: 12px;
        font-size: 14px;
    }

    .p-exam-detail-card__header-title {
        font-size: 16px;
    }

    .p-exam-detail-card__body {
        padding: 30px 20px;
    }

    .p-exam-detail-card__title {
        font-size: 16px;
    }

    .p-exam-detail-card__list li {
        font-size: 14px;
        font-weight: normal;
    }

    .p-exam-detail-card__footer {
        padding: 20px;
    }

    .p-exam-detail-card__footer-title {
        font-size: 16px;
    }

    .p-exam-detail-card__footer-list li {
        font-size: 13px;
        font-weight: normal;
    }
}

@media screen and (max-width: 768px) {

    .p-footer-cta__lead,
    .p-footer-cta__title {
        text-align: center;
    }

    .p-footer-cta__inner {
        flex-direction: column;
    }

    .p-footer-cta__right {
        width: 100%;
        margin-left: 0;
        margin-top: 30px;
    }

    .p-footer-cta__action {
        align-items: center;
        background-image: url('assets/images/ボタン_SP.png');
        background-position: top center;
        background-size: contain;
        background-repeat: no-repeat;
        padding: 70% 20px 30px;
        min-height: auto;
    }

    .p-footer-sitemap__nav {
        flex-direction: column;
        gap: 30px;
    }

    .p-footer-sitemap__list {
        border-left: none;
        padding-left: 0;
    }

    .p-footer-sitemap__schools-grid {
        grid-template-columns: 1fr;
    }

    .p-footer-sitemap__schools-col {
        border-left: none;
        padding-left: 0;
        border-bottom: 1px solid #fff;
        padding-bottom: 20px;
        margin-bottom: 20px;
    }

    .p-footer-sitemap__schools-col:last-child {
        border-bottom: none;
        padding-bottom: 0;
        margin-bottom: 0;
    }

    .p-footer-sitemap__accordion-btn {
        width: 100%;
        justify-content: space-between;
        padding: 12px 0;
        border-bottom: 1px solid #fff;
    }

    .p-footer-sitemap__accordion-btn .icon-arrow {
        margin-left: 0;
    }

    .p-footer-sitemap__accordion-btn[aria-expanded="true"]+.p-footer-sitemap__accordion-content {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px 20px;
        padding: 15px 0 10px 0;
    }

    .p-footer-submenu__list {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .p-footer-info {
        padding: 40px 0 120px;
    }

    .p-footer-info__inner {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }

    .p-footer-info__company {
        margin-left: 0;
    }

    .p-footer-info__copyright {
        text-align: center;
        padding-right: 0;
    }
}

/* ==========================================================================
   Error Page (404)
   ==========================================================================*/
.p-error-page {
    padding: 100px 20px;
    text-align: center;
}

.p-error-page__title {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 20px;
}

.p-error-page__text {
    margin-bottom: 40px;
    font-size: 16px;
    line-height: 1.6;
}

.p-error-page__action {
    display: flex;
    justify-content: center;
}

.p-error-page__action .c-button--cta {
    max-width: 300px;
    width: 100%;
}

/* High School Support Section */
.p-highschool-support {
    width: 100%;
    padding: 40px 0;
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
    position: relative;
    overflow: hidden;
    z-index: 0;
}

/*  */
.p-highschool-support::after {
    content: "";
    position: absolute;
    inset: 0;
    /*  */
    background-color: rgba(255, 255, 255, 0.45);
    z-index: 2;
    pointer-events: none;
}

.p-highschool-support__inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 4;
    /* Content */
}

.p-highschool-support__content {
    flex: 0 0 auto;
    text-align: center;
    display: inline-block;
    margin-right: auto;
}

.p-highschool-support__text {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 8px;
    color: var(--color-text-black);
    text-align: center;
}

.p-highschool-support__heading {
    font-size: 28px;
    font-weight: 500;
    margin-bottom: 40px;
    line-height: 1.6;
    display: block;
    white-space: nowrap;
    text-align: center;
}

.p-highschool-support__badges {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 20px;
    width: 100%;
}

.p-highschool-support__and {
    font-size: 20px;
    font-weight: 500;
    flex-shrink: 0;
}

.c-badge-support {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 12px 60px;
    font-size: 24px;
    font-weight: 600;
    position: relative;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    white-space: nowrap;
    line-height: 1.4;
}

.c-badge-support::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 24px;
    height: 24px;
    background-color: var(--color-accent-yellow);
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.c-badge-support::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background-color: var(--color-accent-yellow);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.p-highschool-support__image {
    position: absolute;
    right: calc((100% - var(--container-max-width)) / 2);
    top: 0;
    bottom: 0;
    height: 100% !important;
    z-index: 1;
    /* Content */
}

/*  */
.p-highschool-support__image::after {
    content: "";
    position: absolute;
    inset: 0;
    /*  */
    background: linear-gradient(to right, #ffffff 0%, rgba(255, 255, 255, 0) 50%);
    z-index: 2;
}

.p-highschool-support__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media screen and (max-width: 1440px) {
    .p-highschool-support__image {
        right: 0;
    }
}

@media screen and (max-width: 768px) {
    .p-highschool-support {
        padding: 60px 0 240px;
    }

    .p-highschool-support__inner {
        flex-direction: column;
        padding: 0 20px;
    }

    .p-highschool-support__content {
        margin-right: 0;
        width: 100%;
        text-align: center;
    }

    .p-highschool-support__heading {
        font-size: 18px;
        white-space: normal;
        margin-bottom: 24px;
    }

    .p-highschool-support__badges {
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: 12px;
        width: 100%;
        margin-bottom: 24px;
    }

    .p-highschool-support__and {
        font-size: 16px;
        font-weight: 500;
        margin: 0;
    }

    .c-badge-support {
        font-size: 16px;
        padding: 10px 16px;
        width: auto;
        flex: 1;
        max-width: 150px;
        text-align: center;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    }

    .p-highschool-support__image {
        position: absolute;
        width: 100%;
        height: 280px !important;
        left: 0;
        right: 0;
        bottom: 0;
        top: auto;
        margin-top: 0;
        z-index: 1;
    }

    .p-highschool-support__image::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
        z-index: 2;
    }

    .p-highschool-support__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: bottom center;
        mask-image: none;
        -webkit-mask-image: none;
    }

    .p-highschool-support::after {
        background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.4) 100%);
    }
}

/* 高校生ページのみ合格実績のpadding設定を上書き */
.page-template-template-highschool .p-pass-results {
    padding: 0;
}

.page-template-template-highschool .p-pass-results .l-container {
    padding: 60px 20px;
}

.p-pass-results {
    background-color: #e5f1fd;
    padding: 0px 0px 80px;
    position: relative;
    overflow: hidden;
}

.p-pass-results--elementary {
    padding: 60px 0;
}

.p-pass-results__title {
    text-align: center;
    font-size: 36px;
    font-weight: bold;
    margin-bottom: 36px;
    position: relative;
    z-index: 2;
}

.p-pass-results__subtitle {
    text-align: center;
    font-size: 20px;
    color: #444;
    margin-bottom: 40px;
    position: relative;
    z-index: 2;
}

.p-pass-results__frame {
    background-color: transparent;
    background-color: #074BA0;
    position: relative;
    z-index: 1;
    padding: 30px 40px 10px;
    border-radius: 16px;
    max-width: 900px;
    margin: 0 auto;
}



.p-pass-results__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-pass-results__item {
    position: relative;
    background-color: #ffffff;
    padding: 14px 65px;
    border-radius: 6px;
    font-weight: 500;
    display: flex;
    justify-content: center;
    align-items: center;
}

.p-pass-results__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background-image: url("assets/images/icon (3).png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.p-pass-results__item::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background-image: url("assets/images/icon (2).png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.p-pass-results__item.is-hidden {
    display: none;
}

.p-pass-results__item.is-show {
    display: flex;
    animation: fadeIn 0.4s ease forwards;
}

.p-pass-results__footer {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    min-height: 40px;
}

.p-pass-results__etc {
    font-size: 14px;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
}

.p-pass-results__more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    color: #fff;
    border: none;
    font-size: 24px;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 10px 20px;
    line-height: 1;
    transform: scaleX(1.4);
    transform-origin: center;
}

.p-pass-results__more-btn:hover {
    transform: scaleX(1.4) translateY(-2px);
    opacity: 0.8;
}

@media (max-width: 768px) {
    .p-pass-results__list {
        grid-template-columns: repeat(2, 1fr);
    }

    .p-pass-results__title {
        font-size: 28px;
    }

    .p-pass-results__subtitle {
        font-size: 16px;
    }

    .p-pass-results__frame {
        padding: 40px 14px 24px;
    }

    .p-pass-results__item {
        padding: 8px;
        font-size: 14px;
    }

    .p-pass-results__item::before,
    .p-pass-results__item::after {
        width: 35px;
        height: 35px;
    }
}

@media (max-width: 480px) {
    .p-pass-results__list {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Voice of Graduates Section */
.p-voice {
    margin-top: 100px;
}

.p-voice__list {
    display: flex;
    flex-direction: column;
    gap: 100px;
}

.p-voice__item {
    position: relative;
    --image-size: 200px;
    --image-pos-x: 40px;
    /* Content */
    --image-overlap-y: 50px;
    /* Content */
    /*  */
    --align-point: 140px;
}

.p-voice__card {
    background-color: var(--color-white);
    border-radius: 40px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
    padding: 24px 40px 24px;
    position: relative;
    max-width: 960px;
    margin: 0 auto;
}

.p-voice__image-wrap {
    position: absolute;
    top: calc(var(--image-overlap-y) * -1);
    width: var(--image-size);
    height: var(--image-size);
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid var(--color-main-blue);
    z-index: 3;
    background-color: #f5f5f5;
}

.p-voice__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-voice__item--left .p-voice__image-wrap {
    left: var(--image-pos-x);
}

.p-voice__item--right .p-voice__image-wrap {
    right: var(--image-pos-x);
}

.p-voice__body {
    position: relative;
    z-index: 2;
}

/*  */
.p-voice__item--left .p-voice__heading,
.p-voice__item--left .p-voice__subtext {
    padding-left: 220px;
    /*  */
}

/*  */
.p-voice__item--right .p-voice__heading,
.p-voice__item--right .p-voice__subtext {
    padding-left: 100px;
    /*  */
}

.p-voice__item--right .p-voice__heading,
.p-voice__item--right .p-voice__subtext {
    padding-right: 220px;
}

.p-voice__item--right .p-voice__subtext {
    text-align: right;
}

.p-voice__header {
    border-bottom: 2px solid #2b6cb0;
    padding-bottom: 24px;
    margin-bottom: 12px;
}

.p-voice__heading {
    margin-bottom: 16px;
}

.p-voice__heading-line {
    margin-bottom: 8px;
}

.p-voice__heading-line span {
    background-color: var(--color-main-blue);
    color: var(--color-white);
    padding: 6px 20px;
    font-weight: 600;
    font-size: 20px;
    display: inline-block;
    line-height: 1.2;
}

.p-voice__subtext {
    font-size: 16px;
    font-weight: bold;
    color: var(--color-text-black);
    margin: 0;
}

.p-voice__text {
    font-size: 16px;
    line-height: 2;
    color: var(--color-text-black);
    margin: 0;
}

/* Responsive */

@media (max-width: 1000px) {
    .p-voice__card {
        padding: 60px 40px 40px;
    }

    .p-voice__item--left .p-voice__body,
    .p-voice__item--right .p-voice__body {
        padding: 0;
        margin-top: 160px;
    }

    .p-voice__image-wrap {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%);
    }

    .p-voice__item--left .p-voice__heading,
    .p-voice__item--left .p-voice__subtext {
        padding-left: 0 !important;
    }

    .p-voice__item--right .p-voice__heading,
    .p-voice__item--right .p-voice__subtext {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .p-voice__item--right .p-voice__subtext {
        text-align: left !important;
    }
}

@media (max-width: 768px) {
    .p-voice__list {
        margin-top: 80px !important;
    }

    .p-voice__item {
        --image-size: 200px;
    }

    .p-voice__card {
        padding: 40px 20px;
        border-radius: 20px;
    }

    .p-voice__item--left .p-voice__body,
    .p-voice__item--right .p-voice__body {
        margin-top: 180px;
    }

    .page-template-template-highschool .p-voice__body {
        margin-top: 130px !important;
    }

    .p-voice__heading-line span {
        font-size: 18px;
        padding: 8px 12px;
    }
}

/**
 * 
 */
.p-highschool-trouble {
    width: 100%;
    background-color: #f4f4f4;
    padding: 80px 0 0;
    /* Content */
    position: relative;
    overflow: visible;
    /* Content */
}


.p-highschool-trouble__inner {
    width: 100%;
    max-width: var(--container-max-width);
    /* 1440px */
    margin: 0 auto;
    text-align: center;
}

.p-highschool-trouble__title {
    font-size: 36px;
    font-weight: 600;
    margin-bottom: 40px;
    line-height: 1.4;
    text-align: center;
}

.p-highschool-trouble__image {
    width: 100%;
    line-height: 0;
}

.p-highschool-trouble__image img {
    width: 100%;
    height: auto;
}

/* Content */
.c-section-arrow {
    position: absolute;
    left: 50%;
    bottom: -54px;
    /*  */
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    /* Content */
    z-index: 100;
}

.c-section-arrow__item {
    width: 0;
    height: 0;
    border-left: 45px solid transparent;
    border-right: 45px solid transparent;
}

.c-section-arrow__item--top {
    border-top: 30px solid var(--color-main-blue);
}

.c-section-arrow__item--bottom {
    border-top: 30px solid #BDE0F5;
    /* Content */
}

@media screen and (max-width: 768px) {
    .p-highschool-trouble {
        padding: 60px 0 0;
    }

    .p-highschool-trouble__title {
        font-size: 24px;
        padding: 0 20px;
    }

    .c-section-arrow__item {
        border-left: 30px solid transparent;
        border-right: 30px solid transparent;
    }

    .c-section-arrow__item--top {
        border-top: 20px solid var(--color-main-blue);
    }

    .c-section-arrow {
        bottom: -38px;
    }

    .c-section-arrow__item--bottom {
        border-top: 20px solid #BDE0F5;
    }
}

/**
 * 
 */
.p-highschool-solution {
    width: 100%;
    padding: 120px 0 80px;
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
}

.p-highschool-solution__inner {
    max-width: 960px;
    /* Content */
    margin: 0 auto;
    text-align: center;
}

.p-highschool-solution__lead {
    font-size: 22px;
    font-weight: 500;
    margin-bottom: 24px;
}

.u-slant-line {
    color: var(--color-main-blue);
    font-weight: 600;
    margin: 0 5px;
}

.p-highschool-solution__heading {
    font-size: 32px;
    font-weight: 500;
    margin-bottom: 30px;
    line-height: 1.6;
}

.p-highschool-solution__sublead {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 60px;
}

.u-marker-yellow {
    background: linear-gradient(transparent 60%, var(--color-accent-yellow) 60%);
    padding-bottom: 2px;
}

/* Content */
.p-highschool-solution__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    /* Content */
    margin-bottom: 80px;
}

.c-solution-card {
    background-color: rgba(234, 246, 253, 0.5);
    position: relative;
    padding: 30px 10px 20px;
    display: flex;
    flex-direction: column;
}

/*  */
.c-solution-card::before,
.c-solution-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 60px;
    /* Content */
    border: 2px solid var(--color-main-blue);
    pointer-events: none;
}

.c-solution-card::before {
    top: 0;
    border-bottom: none;
    /* Content */
}

.c-solution-card::after {
    bottom: 0;
    border-top: none;
    /* Content */
}

/* Content */
.c-solution-card__header {
    background-color: var(--color-white);
    padding: 6px 16px;
    font-size: 18px;
    font-weight: 600;
    color: var(--color-main-blue);
    border-radius: 4px;
    position: relative;
    margin: 0 auto 20px;
    width: fit-content;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.c-solution-card__header::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-top: 8px solid var(--color-white);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
}

.c-solution-card__body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.c-solution-card__text {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 30px;
    text-align: center;
    font-weight: 500;
    padding: 0 10px;
}

/* Content */
.c-solution-card__image {
    margin-top: auto;
    background-color: var(--color-white);
    border-radius: 10px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.c-solution-card__image img {
    width: auto;
    height: 120px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

.p-highschool-solution__closing {
    font-size: 28px;
    font-weight: 500;
    text-align: center;
}

@media screen and (max-width: 1024px) {
    .p-highschool-solution__cards {
        grid-template-columns: 1fr;
        max-width: 600px;
        margin: 0 auto 60px;
    }
}

@media screen and (max-width: 768px) {
    .p-highschool-solution {
        padding: 80px 0;
        background-size: 20px 20px;
    }

    .p-highschool-solution__lead {
        font-size: 18px;
    }

    .p-highschool-solution__heading {
        font-size: 22px;
    }

    .p-highschool-solution__sublead {
        font-size: 20px;
        margin-bottom: 40px;
    }

    .p-highschool-solution__closing {
        font-size: 20px;
    }
}


/*  */




/**
 * 
 */
.p-highschool-reason {
    --highschool-reason-bg: #dcdcdc;
    --highschool-reason-notch-width: clamp(128px, 16vw, 220px);
    --highschool-reason-notch-height: clamp(42px, 5vw, 72px);
    width: 100%;
    position: relative;
    z-index: 1;
    padding: 60px 0 120px;
    text-align: center;
    overflow: visible;
}

.p-highschool-reason::before,
.p-highschool-reason::after {
    content: "";
    position: absolute;
    z-index: 0;
    background-color: var(--highschool-reason-bg);
    pointer-events: none;
}

.p-highschool-reason::before {
    inset: 0 0 var(--highschool-reason-notch-height);
}

.p-highschool-reason::after {
    left: 50%;
    bottom: 0;
    width: var(--highschool-reason-notch-width);
    height: var(--highschool-reason-notch-height);
    transform: translateX(-50%);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.p-highschool-reason__inner {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
}

.p-highschool-reason__content {
    text-align: center;
}

.p-highschool-reason__lead {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-white);
    margin-bottom: 10px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.p-highschool-reason__title {
    font-size: 36px;
    font-weight: 600;
    color: #333;
    letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
    .p-highschool-reason {
        padding: 40px 0 60px;
    }

    .p-highschool-reason__lead {
        font-size: 18px;
    }

    .p-highschool-reason__title {
        font-size: 28px;
    }
}

/**
 * High School: Insight Section
 */
.p-highschool-insight {
    background-color: var(--color-white);
    padding: 100px 0;
    text-align: center;
}

.p-highschool-insight__inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 20px;
}

.p-highschool-insight__intro {
    font-size: 22px;
    font-weight: 600;
    color: var(--color-main-blue);
    margin-bottom: 20px;
}

.p-highschool-insight__heading {
    font-size: 32px;
    font-weight: 600;
    color: #333;
    line-height: 1.6;
    margin-bottom: 40px;
}

/* 縦の・・・（セパレーター） */
.p-highschool-insight__separator {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 40px auto;
}

.p-highschool-insight__separator span {
    width: 6px;
    height: 6px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
}

.p-highschool-insight__answer {
    margin-top: 40px;
}

.p-highschool-insight__answer-top {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-bottom: 10px;
}

/* 吹き出し「それは」 */
.p-highschool-insight__bubble {
    position: relative;
    width: 80px;
    height: 72px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
}

.p-highschool-insight__bubble svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* デフォルト：PC用SVG表示、スマホ用非表示 */
.p-highschool-insight__bubble-svg--sp {
    display: none;
}

.p-highschool-insight__bubble span {
    position: relative;
    z-index: 2;
    font-size: 16px;
    font-weight: 600;
    color: var(--color-main-blue);
    padding-bottom: 5px;
    /* 突起のバランス調整 */
}

.p-highschool-insight__main-text {
    font-size: 36px;
    font-weight: 600;
    color: var(--color-main-blue);
    line-height: 1.4;
}

.p-highschool-insight__sub-text {
    font-size: 36px;
    font-weight: 600;
    color: #333;
    line-height: 1.4;
    margin-top: 10px;
}

/* PC・タブレットでは heading-br を非表示 */
.p-highschool-insight__heading-br {
    display: none;
}

/* Responsive */
@media screen and (max-width: 960px) {
    .p-highschool-insight {
        padding: 60px 0;
    }

    /* 「実は、高校生の多くが」→ 18px */
    .p-highschool-insight__intro {
        font-size: 18px;
    }

    /* 「塾に通っても」「成績が上がらないのには理由があります。」→ 20px、改行あり */
    .p-highschool-insight__heading {
        font-size: 20px;
        line-height: 1.8;
        margin-bottom: 30px;
    }

    /* スマホ時に改行を表示 */
    .p-highschool-insight__heading-br {
        display: inline;
    }

    .p-highschool-insight__separator {
        margin: 30px auto;
        gap: 10px;
    }

    /* 吹き出しの絶対配置の基準となる親要素（余計なマージンを排除してここに1つに集約） */
    .p-highschool-insight .p-highschool-insight__answer {
        position: relative !important;
        margin-top: 30px !important;
    }

    /* テキストは完全に中央寄せを維持（ご要望①） */
    .p-highschool-insight .p-highschool-insight__answer-top {
        display: block !important;
        text-align: center !important;
        margin: 0 auto !important;
        width: 100% !important;
    }

    /* 吹き出しを「・・・」と全く同じ高さ（横並び）、かつ「勉強」の真上に絶対配置（ご要望②） */
    .p-highschool-insight .p-highschool-insight__bubble {
        position: absolute !important;
        top: -65px !important;
        /* 縦の「・・・」と完全に同じ水平線（同じ横の高さ）に揃える */
        left: calc(50% - 200px) !important;
        /* 中央寄せされた「勉強」の真上に完璧に配置 */
        margin-right: 0 !important;
        margin-bottom: 0 !important;
        z-index: 10 !important;
    }

    /* スマホ時：PC用SVGを非表示にしてスマホ用（下しっぽ）を表示 */
    .p-highschool-insight .p-highschool-insight__bubble-svg--pc {
        display: none !important;
    }

    .p-highschool-insight .p-highschool-insight__bubble-svg--sp {
        display: block !important;
    }


    /* 「勉強のやり方がわからないまま」→ 20px */
    .p-highschool-insight .p-highschool-insight__main-text {
        font-size: 20px !important;
        display: inline-block !important;
        text-align: center !important;
    }

    /* 「勉強しているからです。」→ 20px */
    .p-highschool-insight .p-highschool-insight__sub-text {
        font-size: 20px !important;
        text-align: center !important;
        margin-top: 8px !important;
    }
}


























.p-highschool-insight {
    padding: 80px 0;
    background-color: var(--color-white);
    text-align: center;
}

.p-highschool-insight__inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.p-highschool-insight__intro {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 15px;
    color: var(--color-text-black);
}

.p-highschool-insight__heading {
    font-size: 28px;
    font-weight: 500;
    line-height: 1.6;
    color: var(--color-text-black);
}


.p-highschool-insight__separator {
    margin: 40px 0 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.p-highschool-insight__separator span {
    display: block;
    width: 4px;
    height: 4px;
    background-color: var(--color-main-blue);
    border-radius: 50%;
}

.p-highschool-insight__answer {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-highschool-insight__answer-top {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

/* Bubble (Fixed Height: top: -15px per user request, Image 52 Style) */
.p-highschool-insight__bubble {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    /* Scaled width for 110 viewBox */
    height: 80px;
    position: relative;
    color: var(--color-main-blue);
}

.p-highschool-insight__bubble svg {
    position: absolute;
    top: -15px;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.p-highschool-insight__bubble span {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    font-size: 16px;
    font-weight: 600;
    white-space: nowrap;
    /* Center in circle: Offset -4px horizontal, -15px for SVG shift */
    transform: translate(calc(-50% - 4px), calc(-50% - 15px));
}

.p-highschool-insight__main-text {
    font-size: 32px;
    font-weight: 600;
    color: var(--color-main-blue);
    letter-spacing: 0.05em;
    line-height: 1.2;
}

.p-highschool-insight__sub-text {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-text-black);
}

@media screen and (max-width: 768px) {
    .p-highschool-insight {
        padding: 60px 0;
    }

    .p-highschool-insight__intro {
        font-size: 16px;
    }

    .p-highschool-insight__heading {
        font-size: 20px;
    }

    .p-highschool-insight__answer-top {
        flex-direction: column;
        gap: 20px;
    }

    .p-highschool-insight__bubble {
        margin-bottom: 10px;
    }

    .p-highschool-insight__main-text {
        font-size: 24px;
    }

    .p-highschool-insight__sub-text {
        font-size: 18px;
    }
}

/* ========================================================
   High School: Features & Reasons Unified Grid Background
========================================================*/
.p-highschool-features-reasons {
    --highschool-grid-overlap: max(72px, 5vw);
    position: relative;
    z-index: 0;
}

.p-highschool-features-reasons::before {
    content: "";
    position: absolute;
    inset: calc(var(--highschool-grid-overlap) * -1) 0 0;
    z-index: -1;
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
    background-position: center top;
    pointer-events: none;
}

@media screen and (max-width: 768px) {
    .p-highschool-features-reasons::before {
        background-size: 20px 20px;
    }
}

/*  */
.p-highschool-features,
.p-highschool-reasons,
.p-highschool-reasons .p-reasons {
    background-color: transparent !important;
    background-image: none !important;
}

/* Content */
.p-highschool-pricing-card {
    background-color: transparent;
    max-width: 960px;
    margin: 0 auto;
}

/* Content */
.p-highschool-pricing-card .p-pricing__tab-nav {
    display: flex;
    justify-content: stretch;
    border-bottom: none;
    margin-bottom: -2px;
}

.p-highschool-pricing-card .p-pricing__tab-panel {
    border: 2px solid var(--color-main-blue);
    border-top: none;
    overflow: hidden;
    background-color: #fff;
}

.p-highschool-pricing-card .p-pricing__tab-btn {
    flex: 1;
    max-width: none;
    background-color: var(--color-white);
    color: var(--color-main-blue);
    border: 2px solid var(--color-main-blue);
    border-radius: 12px 12px 0 0;
    padding: 20px 10px;
    font-size: 20px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* Content */
.p-highschool-pricing-card .p-pricing__tab-btn:not(:last-child) {
    border-right: none;
}

/* Content */
.p-highschool-pricing-card .p-pricing__tab-btn.is-active {
    background-color: var(--color-main-blue);
    color: #fff;
}

/* Section */

/* ========================================================
   High School: Features
========================================================*/
.p-highschool-features {
    padding: 80px 0 60px;
}

.p-highschool-features__inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 20px;
}

.p-highschool-features__lead {
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 30px;
}

.p-highschool-features__cards {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

/* Content */
.c-feature-card {
    background-color: var(--color-main-blue);
    border-radius: 0;
    padding: 30px 15px 20px;
    width: calc(25% - 15px);
    text-align: center;
    position: relative;
    margin-top: 30px;
    /* Content */
}

/* Content */
.c-feature-card::before {
    content: '';
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 30px;
    background-color: var(--color-main-blue);
    border-radius: 30px 30px 0 0;
    z-index: 1;
}

.c-feature-card__number {
    position: absolute;
    top: -24px;
    left: 49%;
    transform: translateX(-50%);
    font-size: 28px;
    font-weight: 900;
    font-style: italic;
    color: var(--color-accent-yellow);
    line-height: 1;
    z-index: 2;
    font-family: Arial, sans-serif;
}

.c-feature-card__icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 15px;
}

.c-feature-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.c-feature-card__text {
    font-size: 16px;
    font-weight: bold;
    color: #fff;
    line-height: 1.5;
}

.p-highschool-features__closing {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    color: var(--color-text-black);
}

/* PC/SP Utility for Line Breaks */
.u-sp-only {
    display: none;
}

@media screen and (max-width: 768px) {
    .u-pc-only {
        display: none;
    }

    .u-sp-only {
        display: inline;
    }

    br.u-sp-only {
        display: block;
    }
}

@media screen and (max-width: 768px) {
    .p-highschool-features {
        padding: 80px 0 0px !important;
    }

    .p-highschool-features__cards {
        gap: 15px;
    }

    .c-feature-card {
        width: calc(50% - 8px);
    }

    .p-highschool-features__closing {
        font-size: 20px;
    }
}

/* ========================================================
   High School: Reasons Overrides & Tags
 ======================================================== */
.p-highschool-reasons .p-reasons__item:nth-child(odd) .p-reasons__item-content {
    padding-right: 0;
}

/* PC時のチェックリスト横並び */
.p-highschool-reasons .p-reasons__item-checklist {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    margin-left: 56px;
    margin-top: 15px;
    margin-bottom: 15px;
}

/* スマホサイズ時のチェックリスト横3列中央寄せ強制（競合回避のため!important指定） */
@media screen and (max-width: 768px) {
    .p-highschool-reasons .p-reasons__item-checklist {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 6px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    .p-highschool-reasons .p-reasons__item-check-item {
        flex: 1 !important;
        min-width: 0 !important;
        text-align: center !important;
        justify-content: center !important;
        padding: 4px 6px !important;
        white-space: nowrap !important;
    }

    .p-highschool-reasons .p-reasons__item-check-text {
        font-size: 11px !important;
    }
}

.p-highschool-reasons .p-reasons__item-check-item {
    background-color: var(--color-main-blue);
    padding: 4px 12px;
    border-radius: 0;
    /* Content */
}

.p-highschool-reasons .p-reasons__item-check-text {
    color: #fff;
    font-size: 14px;
    font-weight: bold;
}

.p-highschool-reasons .p-reasons__item-check-icon {
    width: 10px;
    height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
    margin-right: 8px;
    margin-bottom: 0;
    margin-top: -2px;
}

/* Section */
.p-reasons__item-footer-image {
    max-width: 440px;
    margin: 30px 0 20px 56px;
}

.p-reasons__item-footer-image img {
    width: 100%;
    height: auto;
    display: block;
}

@media screen and (max-width: 768px) {
    .p-reasons__item-footer-image {
        max-width: 100%;
        margin: 20px 0 15px 0;
    }
}

/* ========================================================
   High School: Reason Header
========================================================*/
.p-highschool-reason-header {
    --highschool-reason-header-bg: #b4c9e2;
    --highschool-reason-header-notch-width: clamp(128px, 16vw, 220px);
    --highschool-reason-header-notch-height: clamp(42px, 5vw, 72px);
    width: 100%;
    position: relative;
    z-index: 1;
    padding: 60px 0 120px;
    text-align: center;
    overflow: visible;
}

.p-highschool-reason-header::before,
.p-highschool-reason-header::after {
    content: "";
    position: absolute;
    z-index: 0;
    background-color: var(--highschool-reason-header-bg);
    pointer-events: none;
}

.p-highschool-reason-header::before {
    inset: 0 0 var(--highschool-reason-header-notch-height);
}

.p-highschool-reason-header::after {
    left: 50%;
    bottom: 0;
    width: var(--highschool-reason-header-notch-width);
    height: var(--highschool-reason-header-notch-height);
    transform: translateX(-50%);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.p-highschool-reason-header__inner {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
}

.p-highschool-reason-header__content {
    text-align: center;
}

.p-highschool-reason-header__lead {
    font-size: 24px;
    color: #fff;
    font-weight: bold;
    margin-bottom: 10px;
}

.p-highschool-reason-header__title {
    font-size: 42px;
    color: var(--color-main-blue);
    font-weight: bold;
}

.p-highschool-reason-header__image {
    position: absolute;
    right: 0;
    bottom: 0;
    height: 100%;
    z-index: 1;
}

.p-highschool-reason-header__image img {
    height: 100%;
    width: auto;
    object-fit: cover;
    object-position: right bottom;
}

@media screen and (max-width: 768px) {
    .p-highschool-reason-header {
        padding: 40px 0 60px;
    }

    .p-highschool-reason-header__title {
        font-size: 28px;
    }
}

/* Section */
.p-highschool-price-comparison {
    padding: 100px 0;
    text-align: center;
    background-color: var(--color-white);
}

.p-highschool-price-comparison__title {
    display: inline-block;
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 60px;
}

.p-highschool-price-comparison__content {
    max-width: 960px;
    margin: 0 auto 60px;
}

.p-highschool-price-comparison__image-wrap {
    width: 100%;
}

.p-highschool-price-comparison__image-wrap img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.p-highschool-price-comparison__action {
    display: flex;
    justify-content: center;
    margin-top: 60px;
}

/* Section */

/* Section */
.p-highschool-message {
    padding: 100px 0;
    background-color: #e5f2fe;
    /* Content */
    text-align: center;
}

.p-highschool-message__image-wrap {
    max-width: 900px;
    margin: 0 auto 60px;
}

.p-highschool-message__image-wrap img {
    width: 100%;
    height: auto;
    display: block;
    box-shadow: 0 10px 30px rgba(0, 51, 153, 0.05);
    /* Content */
}

.p-highschool-message__lead {
    font-size: 18px;
    color: var(--color-text-black);
    margin-bottom: 16px;
}

.p-highschool-message__closing {
    font-size: 30px;
    font-weight: bold;
    color: var(--color-main-blue);
    line-height: 1.6;
}

@media screen and (max-width: 768px) {
    .p-highschool-message {
        padding: 60px 0;
    }

    .p-highschool-message__closing {
        font-size: 24px;
    }
}

.p-highschool-comparison {
    margin-top: 100px;
    padding-bottom: 60px;
}

/*  */
.p-highschool-pricing-section {
    padding: 100px 0;
    background-color: #fff;
}

.p-highschool-pricing-section-title {
    text-align: center;
    font-size: 32px;
    font-weight: bold;
    margin-bottom: 60px;
}

/* Section */
.p-highschool-pricing-detail-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-top: 40px;
}

.p-highschool-pricing-detail-info__item {
    display: flex;
    align-items: center;
    gap: 30px;
}

.p-highschool-pricing-detail-info__label {
    font-size: 32px;
    font-weight: bold;
    color: #fff;
    min-width: 130px;
    text-align: right;
}

.p-highschool-pricing-detail-info__value {
    border: 1px solid #fff;
    padding: 4px 16px;
    font-size: 18px;
    font-weight: bold;
    color: #fff;
    text-align: center;
    min-width: 100px;
}

/*  */
.p-highschool-pricing-tags {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    margin: 30px 0 40px;
}

.p-highschool-pricing-tags__row {
    display: flex;
    justify-content: center;
    gap: 15px;
}

.p-highschool-pricing-tag {
    background-color: #fff;
    color: var(--color-main-blue);
    padding: 10px 24px;
    border-radius: 4px;
    font-size: 18px;
    font-weight: bold;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.p-highschool-pricing-tags--hs-manage,
.p-highschool-pricing-tags--hs-full {
    gap: 15px;
    margin: 30px 0 40px;
}

.p-highschool-pricing-tags--hs-manage .p-highschool-pricing-tags__row,
.p-highschool-pricing-tags--hs-full .p-highschool-pricing-tags__row {
    gap: 15px;
    flex-wrap: wrap;
}

.icon-check {
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%230b63ad'/%3E%3Cpath d='M9.7 16.7 5.2 12.2l1.7-1.7 2.8 2.8 7.4-7.4 1.7 1.7z' fill='%23ffffff'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* Section */
.p-highschool-pricing-card .p-pricing__price-area {
    margin: 30px 0;
    color: var(--color-accent-yellow);
}

.p-highschool-pricing-card .p-pricing__price-label,
.p-highschool-pricing-card .p-pricing__price-number {
    font-size: 40px;
    font-weight: bold;
    color: inherit;
}

.p-highschool-pricing-card .p-pricing__price-unit {
    font-size: 20px;
    font-weight: bold;
    color: inherit;
}

.u-color-yellow {
    color: #fff000 !important;
}

/*  */
.p-highschool-pricing-card__bottom {
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
    background-position: center top;
    padding: 60px 40px;
}

/* Section */
.p-highschool-pricing-recommend {
    background-color: #FFF9E6;
    padding: 30px 40px 40px;
    border-radius: 15px;
    position: relative;
    max-width: 800px;
    margin: 0 auto;
}

.p-highschool-pricing-recommend__title {
    text-align: center;
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 20px;
}

.p-highschool-pricing-recommend__title span {
    color: var(--color-main-blue);
}

.p-highschool-pricing-recommend__title-text {
    position: relative;
    display: inline-block;
}

.p-highschool-pricing-recommend__title-img {
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 15px;
    width: 120px;
    height: auto;
    display: block;
}

.p-highschool-pricing-recommend__illust {
    position: absolute;
    top: -40px;
    right: 20px;
    width: 130px;
}

.p-highschool-pricing-recommend__list {
    background-color: #fff;
    border-radius: 15px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 40px 16px;
    gap: 20px 16px;
}

.p-highschool-pricing-recommend__item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.p-highschool-pricing-recommend__icon {
    flex: 0 0 20px;
    margin-top: 4px;
}

.p-highschool-pricing-recommend__icon-img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    display: block;
}

.p-highschool-pricing-recommend__text {
    font-size: 14px;
    line-height: 1.5;
}

.p-highschool-pricing-recommend__footer {
    text-align: center;
    font-weight: bold;
    font-size: 18px;
    margin-top: 30px;
}

@media screen and (max-width: 768px) {
    .p-highschool-pricing-reason .p-pricing__reason {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .p-highschool-pricing-section {
        padding: 100px 0 0 !important;
    }

    .p-highschool-pricing-section-title__sub {
        font-size: 26px !important;
    }

    /* 高校生料金カード全体 */
    .p-highschool-pricing-card {
        border: none !important;
        border-radius: 0 !important;
        overflow: visible !important;
    }

    .p-highschool-pricing-card__bottom {
        padding: 30px 16px !important;
    }

    /* タブメニュー */
    .p-highschool-pricing-card .p-pricing__tab-nav {
        display: flex !important;
        flex-wrap: nowrap !important;
        border-bottom: none !important;
    }

    .p-highschool-pricing-card .p-pricing__tab-btn {
        flex: 1 !important;
        font-size: 12px !important;
        line-height: 1.3 !important;
        padding: 10px 2px !important;
        background-color: var(--color-white) !important;
        color: var(--color-main-blue) !important;
        border: 2px solid var(--color-main-blue) !important;
        border-bottom: none !important;
        border-radius: 8px 8px 0 0 !important;
        white-space: normal !important;
        text-align: center !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .p-highschool-pricing-card .p-pricing__tab-btn.is-active {
        background-color: var(--color-main-blue) !important;
        color: var(--color-white) !important;
    }

    .p-highschool-pricing-card .p-pricing__tab-btn:not(:last-child) {
        border-right: none !important;
    }

    .p-highschool-pricing-card .p-pricing__tab-nav-wrap {
        margin-bottom: 0 !important;
    }

    .p-highschool-pricing-card .p-pricing__tab-panel {
        border-top: none !important;
    }

    /* キャッチコピー */
    .p-highschool-pricing-card .p-pricing__catch {
        font-size: 14px !important;
        line-height: 1.5 !important;
        margin-bottom: 20px !important;
    }

    /* 立体タグ */
    .p-highschool-pricing-tags {
        gap: 6px !important;
        margin: 15px 0 20px !important;
    }

    .p-highschool-pricing-tags__row {
        flex-direction: row !important;
        justify-content: center !important;
        gap: 4px !important;
        width: 100% !important;
    }

    .p-highschool-pricing-tag {
        font-size: 9.5px !important;
        padding: 5px 6px !important;
        border-radius: 6px !important;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
        white-space: nowrap !important;
        gap: 4px !important;
    }

    .p-highschool-pricing-tag .icon-check {
        width: 10px !important;
        height: 10px !important;
    }

    .p-highschool-pricing-tags--hs-manage,
    .p-highschool-pricing-tags--hs-full {
        gap: 6px !important;
        margin: 15px 0 20px !important;
    }

    .p-highschool-pricing-tags--hs-manage .p-highschool-pricing-tags__row,
    .p-highschool-pricing-tags--hs-full .p-highschool-pricing-tags__row {
        flex-wrap: wrap !important;
        gap: 4px !important;
    }

    /* 金額表示 */
    .p-highschool-pricing-card .p-pricing__price-area {
        margin: 20px 0 !important;
        color: var(--color-accent-yellow) !important;
    }

    .p-highschool-pricing-card .p-pricing__price-label,
    .p-highschool-pricing-card .p-pricing__price-number {
        font-size: 30px !important;
        color: inherit !important;
    }

    .p-highschool-pricing-card .p-pricing__price-unit {
        font-size: 20px !important;
        color: inherit !important;
    }

    /* 管理回数など詳細情報 */
    .p-highschool-pricing-detail-info {
        margin-top: 20px !important;
        gap: 6px !important;
    }

    .p-highschool-pricing-detail-info__item {
        gap: 15px !important;
    }

    .p-highschool-pricing-detail-info__label {
        font-size: 18px !important;
        min-width: 90px !important;
    }

    .p-highschool-pricing-detail-info__value {
        font-size: 14px !important;
        padding: 3px 12px !important;
        min-width: 80px !important;
    }

    /* おすすめリスト（スペルミス修正含む） */
    .p-highschool-pricing-recommend__list {
        grid-template-columns: 1fr !important;
        padding: 20px !important;
        gap: 15px !important;
    }

    .p-highschool-pricing-recommend__list br {
        display: none !important;
    }

    .p-highschool-pricing-recommend {
        padding: 24px 15px 30px !important;
    }

    .p-highschool-pricing-recommend__illust {
        display: none !important;
    }

    .p-highschool-pricing-recommend__title-img {
        display: none !important;
    }

    .p-highschool-pricing-recommend__title {
        font-size: 18px !important;
        margin-bottom: 15px !important;
    }
}

/* ===========================
   
   ===========================*/
.p-highschool-price-compare {
    padding: 80px 0;
    background-color: #fff;
}

.p-highschool-price-compare__inner {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}

.p-highschool-price-compare__label-note {
    display: inline-block;
    border: 1px solid #999;
    border-radius: 20px;
    padding: 4px 20px;
    font-size: 13px;
    color: #555;
    margin-bottom: 30px;
}

.p-highschool-price-compare__bars {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 0;
    margin-bottom: 30px;
}

/* Content */
.p-highschool-price-compare__bar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Content */
.p-highschool-price-compare__bar-head {
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 8px;
    background-color: #888;
    color: #fff;
    padding: 4px 16px;
    border-radius: 4px;
}

.p-highschool-price-compare__bar-head.is-ischool-head {
    background-color: var(--color-main-blue);
}

/* Content */
.p-highschool-price-compare__bar.is-competitor-bar {
    width: 180px;
    height: 200px;
    background-color: #bbb;
    border-radius: 8px 8px 0 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.p-highschool-price-compare__bar-text {
    font-size: 14px;
    line-height: 1.6;
}

.p-highschool-price-compare__bar-text strong {
    font-size: 20px;
    display: block;
}

.p-highschool-price-compare__bar-sub {
    font-size: 13px;
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.85);
}

/* Section */
.p-highschool-price-compare__bar.is-ischool-bar {
    width: 180px;
    height: 110px;
    border: 3px dashed var(--color-main-blue);
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
}

.p-highschool-price-compare__saving {
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-main-blue);
}

.p-highschool-price-compare__saving strong {
    font-size: 26px;
    font-weight: bold;
    display: block;
}

/* Content */
.p-highschool-price-compare__bar-bottom {
    width: 180px;
    background-color: var(--color-main-blue);
    color: #fff;
    padding: 12px 10px;
    text-align: center;
}

.p-highschool-price-compare__tag {
    font-size: 12px;
    background-color: rgba(255, 255, 255, 0.25);
    padding: 2px 10px;
    border-radius: 4px;
    display: inline-block;
    margin-bottom: 4px;
}

.p-highschool-price-compare__price-ischool {
    font-size: 22px;
    font-weight: bold;
}

/* Content */
.p-highschool-price-compare__yearly {
    background-color: #FFF000;
    border-radius: 8px;
    padding: 18px 30px;
    margin-bottom: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-highschool-price-compare__yearly p {
    font-size: 26px;
    font-weight: bold;
    color: #111;
    display: flex;
    align-items: center;
    gap: 8px;
}

.p-highschool-price-compare__yearly strong {
    font-size: 36px;
}

.p-highschool-price-compare__yearly-accent {
    font-size: 14px;
    font-weight: bold;
    background-color: #333;
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    display: inline-block;
}

/* Content */
.p-highschool-price-compare__cta {
    text-align: center;
}

@media screen and (max-width: 768px) {
    .p-highschool-price-compare__bars {
        gap: 10px;
    }

    .p-highschool-price-compare__yearly p {
        font-size: 18px;
    }

    .p-highschool-price-compare__yearly strong {
        font-size: 26px;
    }
}

/* Section */

.p-highschool-comparison {
    padding-bottom: 80px;
}

.p-highschool-comparison__title {
    text-align: center;
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 60px;
    color: var(--color-text-black);
}

.p-highschool-comparison__grid {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    /* Content */
    max-width: 900px;
    margin: 0 auto;
}

.p-highschool-comparison__col {
    display: flex;
    flex-direction: column;
}

/* Content */
.p-highschool-comparison__cell {
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dfdfdf;
    font-size: 16px;
    text-align: center;
    padding: 0 10px;
}

/* Content */
.is-attr {
    width: 180px;
}

.is-attr .p-highschool-comparison__cell {
    background-color: #E6F2FF;
    border-right: none;
    font-weight: bold;
}

/* Content */
.is-general {
    width: 240px;
}

.is-general .p-highschool-comparison__head {
    height: 60px;
    background-color: #A0A0A0;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    border-radius: 15px 15px 0 0;
}

.is-general .p-highschool-comparison__cell {
    background-color: #fff;
}

/* Content */
.is-ischool {
    width: 280px;
    border: 4px solid var(--color-main-blue);
    border-radius: 20px 20px 0px 0px;
    background-color: #fff;
    box-shadow: 0 10px 30px rgba(0, 51, 153, 0.1);
    position: relative;
    z-index: 10;
}

.is-ischool .p-highschool-comparison__head {
    height: 100px;
    /* Content */
    background-color: var(--color-main-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px 12px 0 0;
    /* Section */
}

.p-highschool-comparison__logo {
    width: 160px;
}

.p-highschool-comparison__logo img {
    width: 100%;
    height: auto;
}

.is-ischool-cell {
    color: var(--color-main-blue);
    font-weight: bold;
    border: none;
    /* Section */
    border-bottom: 1px solid #dfdfdf;
}

.is-ischool .p-highschool-comparison__cell:last-child {
    border-bottom: none;
}

@media screen and (max-width: 768px) {
    .p-highschool-comparison {
        margin-top: 60px !important;
        padding-bottom: 0px !important;
    }

    .p-highschool-comparison__grid {
        padding: 0 10px;
    }

    .is-attr {
        width: 110px;
    }

    .is-general {
        width: 120px;
    }

    .is-ischool {
        width: 140px;
    }

    .p-highschool-comparison__cell {
        height: 50px;
        font-size: 12px;
    }

    .is-general .p-highschool-comparison__head {
        height: 40px;
        font-size: 12px;
    }

    .is-ischool .p-highschool-comparison__head {
        height: 70px;
    }

    .p-highschool-comparison__logo {
        width: 100px;
    }
}

/* ===========================
   
   ===========================*/
.p-highschool-message {
    padding: 80px 0;
    background-color: #EBF3FA;
    /* Content */
    text-align: center;
}

.p-highschool-message__image-wrap {
    max-width: 800px;
    margin: 0 auto 40px;
}

.p-highschool-message__image-wrap img {
    width: 100%;
    height: auto;
    display: block;
    /*  */
}

.p-highschool-message__text-small {
    font-size: 16px;
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
}

.p-highschool-message__text-large {
    font-size: 24px;
    font-weight: bold;
    color: var(--color-main-blue);
    line-height: 1.6;
}

@media screen and (max-width: 768px) {
    .p-highschool-message {
        padding: 50px 0;
    }

    .p-highschool-message__text-small {
        font-size: 14px;
    }

    .p-highschool-message__text-large {
        font-size: 18px;
    }
}

/**
 * Roadmap Section
 */
.p-roadmap {
    padding: 100px 0 120px;
    background-color: var(--color-white);
    background-image: linear-gradient(to bottom, rgb(255 255 255 / 75%) 0%, rgb(255 255 255 / 95%) 200px, rgb(255 255 255) 340px), url(assets/images/AdobeStock_1870660713.jpeg);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 1200px auto;
    position: relative;
    overflow: hidden;
}

.p-roadmap__inner {
    text-align: center;
    position: relative;
    z-index: 2;
}

.p-roadmap__title {
    font-size: 40px;
    font-weight: 600;
    margin-bottom: 60px;
    letter-spacing: 0.05em;
    color: var(--color-text-black);
}

.p-roadmap__content {
    display: flex;
    flex-direction: column;
    gap: 35px;
    align-items: center;
}

.p-roadmap__text {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-black);
}

/* Light Keyword Box */
.p-roadmap__keyword--light {
    display: inline-block;
    background-color: var(--color-white);
    color: var(--color-main-blue);
    padding: 4px 14px;
    border: none;
    border-radius: 4px;
    margin: 0 4px;
    box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.12);
}

.p-roadmap__message {
    margin-top: 40px;
}

.p-roadmap__message-lead {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 20px;
    color: var(--color-text-black);
}

.p-roadmap__message-main {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-black);
}

/* Dark Keyword Box */
.p-roadmap__keyword--dark {
    display: inline-block;
    background-color: var(--color-main-blue);
    color: var(--color-accent-yellow);
    padding: 4px 14px;
    border-radius: 4px;
    margin: 0 4px;
    box-shadow: 0 4px 15px rgba(7, 75, 160, 0.25);
}

.p-roadmap__divider {
    width: 150px;
    height: 2px;
    background-color: var(--color-main-blue);
    margin: 40px auto 0;
    opacity: 0.4;
}

/* Illustration Area */
.p-roadmap__illustration {
    position: absolute;
    top: 153px;
    left: 50%;
    margin-left: 210px;
    width: 290px;
    z-index: 1;
}

.p-roadmap__person {
    width: 100%;
    height: auto;
    filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.05));
}

.u-text-blue {
    color: var(--color-main-blue);
}

/* Responsive Adjustments */
@media screen and (max-width: 1024px) {
    .p-roadmap__illustration {
        width: 280px;
        right: 2%;
    }
}

@media screen and (max-width: 768px) {
    .p-roadmap {
        padding: 70px 0 0;
        background-image: linear-gradient(to bottom, rgb(255 255 255 / 62%) 0%, rgb(255 255 255 / 88%) 118px, rgb(255 255 255) 235px), url(assets/images/AdobeStock_1870660713.jpeg);
        background-position: center top;
        background-size: 560px auto;
    }

    .p-roadmap__title {
        font-size: 26px;
        line-height: 1.55;
        max-width: 320px;
        margin: 0 auto 30px;
        letter-spacing: 0.02em;
    }

    .p-roadmap__content {
        max-width: 340px;
        gap: 0;
        margin: 0 auto;
    }

    .p-roadmap__text {
        max-width: 335px;
        font-size: 18px;
        font-weight: 400;
        line-height: 2.15;
        margin: 0 auto;
        white-space: normal;
    }

    .p-roadmap__message {
        margin-top: 0;
    }

    .p-roadmap__message-lead {
        font-size: 18px;
        font-weight: 400;
        line-height: 1.8;
        margin-bottom: 8px;
    }

    .p-roadmap__message-main {
        font-size: 18px;
        font-weight: 400;
        line-height: 2;
        white-space: nowrap;
    }

    .p-roadmap__divider {
        width: 106px;
        margin-top: 28px;
    }

    .p-roadmap__illustration {
        width: 140px;
        left: auto;
        right: 10px;
        transform: none;
        margin-left: 0;
        top: 300px;
        bottom: auto;
    }

    .p-roadmap__keyword--light,
    .p-roadmap__keyword--dark {
        padding: 1px 7px;
        margin: 0 2px;
        border-radius: 3px;
    }
}

/**
 * Roadmap Steps
 */
.p-roadmap-steps {
    margin-top: 80px;
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}

.p-roadmap-steps__header {
    position: relative;
    text-align: center;
}

.p-roadmap-steps__title {
    font-size: 32px;
    font-weight: 600;
    line-height: 1.4;
    display: inline-block;
    position: relative;
    text-align: center;
}

.p-roadmap-steps__megaphone {
    position: absolute;
    left: 32px;
    bottom: -20px;
    width: 156px;
    height: auto;
    z-index: 10;
}

.p-roadmap-steps__title span.u-text-large {
    font-size: 1.4em;
    vertical-align: baseline;
    margin: 0 4px;
}

.p-roadmap-steps__title::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 0;
    width: 100%;
    height: 12px;
    background-color: var(--color-accent-yellow);
    z-index: -1;
}

.p-roadmap-steps__list {
    background-color: var(--color-main-blue);
    border-radius: 30px;
}

.p-roadmap-steps__item {
    padding: 40px 40px;
    position: relative;
}

.p-roadmap-steps__item::after {
    content: '';
    position: absolute;
    bottom: -20px;
    left: 85px;
    /* Aligned with the center of the 90px STEP circle (40px padding + 45px) */
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    z-index: 10;
    pointer-events: none;
}

.p-roadmap-steps__item:last-child::after {
    display: none;
}

.p-roadmap-steps__item--dark {
    background-color: var(--color-main-blue);
    color: var(--color-white);
}

.p-roadmap-steps__item--dark::after {
    border-top: 20px solid var(--color-main-blue);
}

.p-roadmap-steps__item--light {
    background-color: #E8F2FF;
}

.p-roadmap-steps__item--light .p-roadmap-steps__item-title {
    color: var(--color-main-blue);
}

.p-roadmap-steps__item--light::after {
    border-top: 20px solid #E8F2FF;
}

.p-roadmap-steps__item:first-child {
    border-radius: 30px 30px 0 0;
}

.p-roadmap-steps__item:last-child {
    border-radius: 0 0 30px 30px;
}

.p-roadmap-steps__item-inner {
    display: grid;
    grid-template-columns: 90px minmax(0, auto) 100px 1fr;
    align-items: start;
    gap: 30px;
    text-align: left;
}

.p-roadmap-steps__step-box {
    width: 90px;
    height: 90px;
    background-color: var(--color-white);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.p-roadmap-steps__step-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-main-blue);
    line-height: 1;
}

.p-roadmap-steps__step-number {
    font-size: 36px;
    font-weight: 600;
    color: var(--color-main-blue);
    line-height: 1;
}

.p-roadmap-steps__content {
    display: contents;
}

.p-roadmap-steps__item-title {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 0;
    letter-spacing: 0.05em;
}

.p-roadmap-steps__item-desc {
    grid-column: 2 / 5;
    grid-row: 2;
    font-size: 16px;
    line-height: 1.8;
    font-weight: 500;
    margin-top: 15px;
}

.p-roadmap-steps__icon {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
    justify-self: start;
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    opacity: 0.2;
}

.p-roadmap-steps__icon img {
    width: 100%;
    height: auto;
}

.u-text-large {
    font-size: 1.4em;
}

/* Responsive Adjustments for Steps */
@media screen and (max-width: 960px) {
    .p-roadmap-steps {
        margin-top: 60px;
        padding: 0 15px;
    }

    .p-roadmap-steps__header {
        text-align: center;
    }

    .p-roadmap-steps__title {
        font-size: 20px;
        text-align: center;
    }

    .p-roadmap-steps__title::after {
        left: 0;
        width: 100%;
    }

    .p-roadmap-steps__megaphone {
        position: absolute;
        left: 14px;
        bottom: -12px;
        width: 104px;
        height: auto;
        z-index: 10;
    }

    .p-roadmap-steps__item {
        padding: 25px 20px;
    }

    .p-roadmap-steps__item::after {
        border-left-width: 20px;
        border-right-width: 20px;
        bottom: -15px;
        left: 50px;
        /* Aligned with the center of the 60px mobile STEP circle (20px padding + 30px) */
    }

    .p-roadmap-steps__item--dark::after,
    .p-roadmap-steps__item--light::after {
        border-top-width: 15px;
    }

    .p-roadmap-steps__item-inner {
        grid-template-columns: 60px minmax(0, auto) 54px 1fr;
        align-items: start;
        gap: 15px;
    }

    .p-roadmap-steps__step-box {
        width: 60px;
        height: 60px;
    }

    .p-roadmap-steps__step-number {
        font-size: 24px;
    }

    .p-roadmap-steps__item-title {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        font-size: 22px;
        margin-bottom: 0;
    }

    .p-roadmap-steps__item-desc {
        grid-column: 2 / 5;
        grid-row: 2;
        font-size: 14px;
        margin-top: 0;
    }

    .p-roadmap-steps__icon {
        display: block;
        grid-column: 3;
        grid-row: 1;
        align-self: center;
        justify-self: start;
        width: 54px;
        height: 54px;
        opacity: 0.35;
    }
}

@media screen and (max-width: 768px) {
    .p-roadmap-steps {
        margin-top: 110px;
    }

    .p-roadmap-steps__header {
        min-height: 95px;
    }

    .p-roadmap-steps__title {
        font-size: 21px;
        line-height: 1.35;
        margin-top: 12px;
        margin-left: 80px;
    }

    .p-roadmap-steps__title::after {
        bottom: 0;
        height: 10px;
    }

    .p-roadmap-steps__megaphone {
        left: 18px;
        bottom: 0;
        width: 96px;
    }

    .p-roadmap-steps__item {
        padding: 22px 14px 20px;
    }

    .p-roadmap-steps__item-inner {
        display: grid;
        grid-template-columns: 60px minmax(0, auto) 42px 1fr;
        gap: 8px 12px;
        align-items: start;
    }

    .p-roadmap-steps__step-box {
        grid-column: 1;
        grid-row: 1;
    }

    .p-roadmap-steps__content {
        display: contents;
    }

    .p-roadmap-steps__item-title {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        margin-bottom: 0;
        font-size: 20px;
        line-height: 1.35;
    }

    .p-roadmap-steps__item-desc {
        grid-column: 2 / 5;
        grid-row: 2;
        font-size: 14px;
        line-height: 1.75;
    }

    .p-roadmap-steps__icon {
        display: block;
        grid-column: 3;
        grid-row: 1;
        justify-self: start;
        align-self: center;
        width: 38px;
        height: 38px;
        opacity: 0.45;
    }

    .p-roadmap-steps__icon img {
        width: 100%;
        height: auto;
        display: block;
    }
}

/**
 * FAQ Banner (Standalone)
 */
.p-faq-banner-only .p-faq__banner {
    margin-top: 0;
    margin-bottom: 120px;
}

.p-school-list-banner .l-container {
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.p-school-pricing-reason .l-container {
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

@media screen and (max-width: 768px) {
    .p-faq-banner-only .p-faq__banner {
        margin: 50px 0 60px;
        padding: 0 20px;
    }

    .p-school-list-banner .p-faq__banner {
        padding-left: 0;
        padding-right: 0;
    }
}

/* Floating Banner */
.p-floating-banner {
    position: fixed;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    pointer-events: none;
}

.p-floating-banner.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.p-floating-banner__link {
    display: block;
}

.p-floating-banner__img {
    display: block;
    max-width: 100%;
    height: auto;
}

.p-floating-banner__img--pc {
    display: block;
    width: 100px;
}

.p-floating-banner__img--sp {
    display: none;
}

@media screen and (min-width: 769px) {
    .p-floating-banner {
        bottom: 0;
        right: 0;
    }
}

@media screen and (max-width: 768px) {
    .p-floating-banner {
        display: none !important;
    }
}

/* SP Floating Banner */
.p-floating-banner-sp {
    position: fixed;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    pointer-events: none;
}

.p-floating-banner-sp.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.p-floating-banner-sp__link {
    display: block;
}

.p-floating-banner-sp__img {
    display: block;
    max-width: 100%;
    height: auto;
    width: 100%;
}

@media screen and (min-width: 769px) {
    .p-floating-banner-sp {
        display: none !important;
    }
}

@media screen and (max-width: 768px) {
    .p-floating-banner-sp {
        bottom: 0;
        left: 0;
        width: 100%;
    }
}

/* SP Page Top Button */
.p-page-top-sp {
    position: fixed;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    pointer-events: none;
}

.p-page-top-sp.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.p-page-top-sp__img {
    display: block;
    width: 50px;
    height: 50px;
    object-fit: contain;
}

@media screen and (min-width: 769px) {
    .p-page-top-sp {
        display: none !important;
    }
}

@media screen and (max-width: 768px) {
    .p-page-top-sp {
        bottom: 90px;
        right: 16px;
    }
}

/* ========================================================
   School List Page (教室一覧)
   ========================================================*/
.p-school-list {
    background-color: var(--color-white);
    padding: 80px 0;
}

.p-school-list__inner {
    max-width: 1080px;
    margin: 0 auto;
}

.p-school-list__prefecture {
    margin-bottom: 80px;
}

.p-school-list__prefecture:last-child {
    margin-bottom: 0;
}

.p-school-list__prefecture-title {
    font-size: 28px;
    font-weight: 600;
    color: var(--color-main-blue);
    margin-bottom: 40px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--color-main-blue);
    display: inline-block;
    min-width: 200px;
}

.p-school-list__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

.p-school-list__card {
    background-color: #f8fbfd;
    border: 1px solid #e1e9f0;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
}

.p-school-list__card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
}

.p-school-list__card-content {
    padding: 30px;
}

.p-school-list__card-title {
    font-size: 22px;
    font-weight: 600;
    color: var(--color-text-black);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.p-school-list__card-title::before {
    content: "";
    display: block;
    flex-shrink: 0;
    width: 6px;
    height: 24px;
    background-color: var(--color-main-blue);
    border-radius: 3px;
}

.p-school-list__card-courses {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}

.c-course-tag {
    display: inline-block;
    padding: 2px 10px;
    background-color: #f0f7ff;
    color: var(--color-main-blue);
    border: 1px solid var(--color-main-blue);
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}

.p-school-list__card-info {
    margin-bottom: 20px;
}

.p-school-list__card-dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px 16px;
    align-items: baseline;
}

.p-school-list__card-dt {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-main-blue);
    white-space: nowrap;
    padding: 2px 8px;
    background-color: #e8f1fb;
    border-radius: 4px;
    align-self: start;
}

.p-school-list__card-dd {
    font-size: 14px;
    color: var(--color-text-black);
    line-height: 1.6;
    margin: 0;
}

.p-school-list__card-dd a {
    color: var(--color-main-blue);
    text-decoration: none;
}

.p-school-list__card-dd a:hover {
    text-decoration: underline;
}

.p-school-list__line-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #06c755;
    font-weight: 600;
    text-decoration: none;
    font-size: 14px;
}

.p-school-list__line-link::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2306c755'%3E%3Cpath d='M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.627-.63h2.386c.349 0 .63.285.63.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.627-.63.349 0 .631.285.631.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.281.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.p-school-list__line-link:hover {
    opacity: 0.8;
}

.p-school-list__card-action {
    margin-top: 16px;
}

.c-button--map {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: var(--color-main-blue);
    color: #fff;
    text-decoration: none;
    padding: 10px 24px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    transition: background-color 0.2s, opacity 0.2s;
}

.c-button--map::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.c-button--map:hover {
    background-color: #002080;
    opacity: 0.9;
}

@media screen and (max-width: 768px) {
    .p-school-list {
        padding: 50px 0;
    }

    .p-school-list__prefecture {
        margin-bottom: 50px;
    }

    .p-school-list__prefecture-title {
        font-size: 22px;
        margin-bottom: 25px;
    }

    .p-school-list__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .p-school-list__card-content {
        padding: 20px;
    }

    .p-school-list__card-title {
        font-size: 18px;
    }
}

/* ========================================== 
   Restored Missing Styles 
   ========================================== */



/* ========================================================
   High School: Features
========================================================*/
.p-highschool-features {
    padding: 80px 0 60px;
}

/**
 * Company Profile
 */
.p-company-header {
    background-color: var(--color-main-blue);
    padding: 80px 0;
    text-align: center;
}

.p-company-header__title {
    color: var(--color-white);
    font-size: 32px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.p-company-profile {
    background-color: #E6F2FF;
    padding: 80px 0;
}

.p-company-profile__inner {
    max-width: 960px;
    margin: 0 auto;
}

.p-company-profile__table {
    width: 100%;
    border-collapse: collapse;
    background-color: var(--color-white);
    border: none;
}

.p-company-profile__table th,
.p-company-profile__table td {
    padding: 25px 16px;
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-text-black);
    border: 1px solid #dfdfdf;
}

.p-company-profile__table th {
    width: 30%;
    background-color: #D1E7FF;
    /* Distinct color from section background */
    text-align: left;
    font-weight: 600;
    vertical-align: middle;
}

.p-company-profile__table td {
    background-color: #FFFFFF;
    /* White background for visibility */
}

/* Breadcrumb background for Company Page only */
.p-breadcrumb--company {
    background-color: #E6F2FF;
}

/* Remove outer borders */
.p-company-profile__table tr:first-child th,
.p-company-profile__table tr:first-child td {
    border-top: none;
}

.p-company-profile__table tr:last-child th,
.p-company-profile__table tr:last-child td {
    border-bottom: none;
}

.p-company-profile__table th:first-child,
.p-company-profile__table td:first-child {
    border-left: none;
}

.p-company-profile__table th:last-child,
.p-company-profile__table td:last-child {
    border-right: none;
}

.p-company-profile__table td a {
    color: var(--color-main-blue);
    text-decoration: underline;
    transition: opacity 0.3s;
}

.p-company-profile__table td a:hover {
    opacity: 0.7;
}

@media screen and (max-width: 768px) {
    .p-company-profile.l-section {
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }

    .p-company-header {
        padding: 40px 0;
    }

    .p-company-header__title {
        font-size: 24px;
    }
}

/**
 * Privacy Policy
 */
.p-privacy {
    background-color: var(--color-white);
    padding: 80px 0;
}

@media screen and (max-width: 768px) {
    .p-privacy {
        padding: 80px 20px;
    }
}

.p-privacy__inner {
    max-width: 960px;
    margin: 0 auto;
}

.p-privacy__content h2 {
    font-size: 24px;
    font-weight: 600;
    margin: 60px 0 30px;
    color: var(--color-text-black);
    line-height: 1.4;
}

.p-privacy__content h2:first-child {
    margin-top: 0;
}

.p-privacy__content h3 {
    font-size: 20px;
    font-weight: 600;
    margin: 40px 0 20px;
    color: var(--color-text-black);
    line-height: 1.4;
}

.p-privacy__content p {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 24px;
    color: var(--color-text-black);
}

.p-privacy__content p:last-child {
    margin-bottom: 0;
}

.p-privacy__content ul,
.p-privacy__content ol {
    margin: 0 0 24px 20px;
}

.p-privacy__content li {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 12px;
    color: var(--color-text-black);
}

/**
 * School List
 */
.p-school-list {
    background-color: var(--color-white);
    padding: 80px 0;
}

.p-school-list__card-title.u-color-blue {
    color: var(--color-main-blue);
}

/* ==========================================================================
   School Detail Page
   ========================================================================== */
.p-school-detail .l-container {
    max-width: 960px;
}

.p-school-detail__header {
    background-color: var(--color-main-blue);
    color: #fff;
    padding: 80px 0;
    text-align: center;
}

.p-school-detail__header-label {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 5px;
}

.p-school-detail__header-pref {
    font-size: 14px;
    opacity: 0.8;
}

.p-school-detail__header-title {
    font-size: 32px;
    font-weight: 900;
    margin-top: 5px;
}

@media screen and (max-width: 768px) {
    .p-school-detail__header {
        padding: 18px 0 16px;
        text-align: center;
    }

    .p-school-detail__header-inner {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
    }

    .p-school-detail__header-label {
        flex: 0 0 100%;
        font-size: 22px;
        line-height: 1.25;
        margin-bottom: 10px;
    }

    .p-school-detail__header-pref {
        flex: 0 0 auto;
        font-size: 13px;
        line-height: 1.4;
        opacity: 1;
        margin-right: 10px;
    }

    .p-school-detail__header-title {
        flex: 0 0 auto;
        font-size: 22px;
        line-height: 1.3;
        margin-top: 0;
    }
}

.p-school-detail__body-wrap {
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    padding: 80px 0;
}

.p-school-detail__section-title {
    font-size: 40px;
    font-weight: 900;
    text-align: center;
    margin-bottom: 50px;
    color: var(--color-text-black);
}

.p-school-detail__section-title span,
.p-school-detail__section-title .u-color-blue {
    color: var(--color-main-blue);
}

/* Info Section */
.p-school-detail__info {
    margin-bottom: 100px;
}

.p-school-detail__info-grid {
    display: grid;
    grid-template-columns: 400px 1fr;
    gap: 50px;
    align-items: start;
    max-width: 900px;
    margin: 0 auto;
}

@media screen and (max-width: 960px) {
    .p-school-detail__info-grid {
        grid-template-columns: 1fr;
    }
}

.p-school-detail__map {
    width: 400px;
    height: 300px;
    border-radius: 12px;
    overflow: hidden;
    background: #eee;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

@media screen and (max-width: 480px) {
    .p-school-detail__map {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
    }
}

.p-school-detail__map-iframe {
    width: 100%;
    height: 100%;
    border: 0;
    vertical-align: middle;
}

.p-school-detail__map-placeholder {
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #999;
}

.p-school-detail__contact {
    height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.p-school-detail__address-label {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 5px;
    color: var(--color-text-black);
}

.p-school-detail__address-text {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text-black);
}

.c-icon--map-pin {
    width: 16px;
    height: 16px;
    color: var(--color-text-black);
    display: inline-flex;
}

.c-icon--map-pin svg {
    width: 100%;
    height: 100%;
}

.p-school-detail__course-btns {
    display: flex;
    gap: 12px;
    margin-bottom: 0;
}

/* Action Buttons */
.p-school-detail__action-btns {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: calc((100% - 24px) / 3 * 2 + 12px);
    /* Matches width of 2 course buttons + 1 gap */
}

.c-button--school-blue,
.c-button--school-orange,
.c-button--school-blue-large,
.c-button--school-green {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    border-radius: 50px;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    transition: transform 0.2s, opacity 0.2s;
    position: relative;
    line-height: 1.2;
}

.c-button--school-blue:hover,
.c-button--school-orange:hover,
.c-button--school-blue-large:hover,
.c-button--school-green:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.c-button--school-blue::after,
.c-button--school-orange::after,
.c-button--school-blue-large::after,
.c-button--school-green::after {
    content: '';
    position: absolute;
    right: 25px;
    width: 6px;
    height: 6px;
    border-top: 2px solid var(--color-white);
    border-right: 2px solid var(--color-white);
    transform: rotate(45deg);
}

.c-icon--btn {
    width: 22px;
    height: 22px;
    margin-right: 15px;
    display: inline-flex;
}

.c-icon--btn svg {
    width: 100%;
    height: 100%;
}

.c-button--school-blue {
    background-color: var(--color-main-blue);
    flex: 1;
    font-size: 15px;
    padding: 12px 15px;
}

.c-button--school-orange {
    background-color: #ff7e00;
    font-size: 16px;
    padding: 18px 20px;
}

.c-button--school-blue-large {
    background-color: #004ea2;
    font-size: 20px;
    padding: 18px 20px;
}

.c-button--school-green {
    background-color: #00b900;
    font-size: 16px;
    padding: 15px 20px;
}

/* Greeting Section */
.p-school-detail__greeting {
    max-width: 900px;
    margin: 0 auto;
}

.p-school-detail__greeting-content {
    text-align: center;
}

.p-school-detail__greeting-photo {
    width: 240px;
    height: 240px;
    margin: 0 auto 20px;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.p-school-detail__greeting-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-school-detail__greeting-name {
    font-size: 16px;
    margin-bottom: 40px;
}

.p-school-detail__greeting-name span {
    font-size: 24px;
    font-weight: 600;
}

.p-school-detail__greeting-box {
    padding: 40px;
    position: relative;
    max-width: 760px;
    /* Aligned with p-pricing__reason-box */
    margin: 0 auto;
}

.p-school-detail__greeting-h3 {
    font-size: 28px;
    font-weight: 900;
    margin-bottom: 30px;
    color: var(--color-text-black);
}

.p-school-detail__greeting-h3 span {
    display: inline-block;
    background: linear-gradient(transparent 70%, #ffff99 70%);
}

.p-school-detail__greeting-text {
    font-size: 16px;
    line-height: 2;
    text-align: center;
}

.p-school-detail__greeting-text .u-color-blue {
    color: var(--color-main-blue);
    font-weight: 600;
}

@media screen and (max-width: 768px) {
    .p-school-detail__body-wrap {
        background-size: 20px 20px;
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }

    .p-school-detail__contact,
    .p-school-detail__action-btns {
        gap: 20px;
        width: 100%;
    }

    .p-school-detail__greeting-box {
        padding: 20px 8px;
    }

    .p-school-detail__greeting-h3 {
        font-size: 20px;
    }
}

@media screen and (max-width: 960px) {
    .p-school-list__grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================================
   School List (New Design) - Final Version
========================================================*/
.p-school-list-header {
    background-color: var(--color-main-blue);
    padding: 60px 0;
    text-align: center;
}

.p-school-list-header__title {
    color: var(--color-white);
    font-size: 32px;
    font-weight: 600;
}

.p-school-list-intro {
    padding: 60px 0 40px;
    text-align: center;
}

.p-school-list-intro__text {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 40px;
}

.p-school-list-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    max-width: 900px;
    margin: 0 auto;
}

.p-school-list-visual__illust {
    width: 450px;
}

.p-school-list-search {
    width: 320px;
}

.p-school-list-search__box {
    background-color: var(--color-main-blue);
    border-radius: 16px;
    padding: 24px 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.p-school-list-search__label {
    color: var(--color-white);
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 12px;
}

.p-school-list-search__input-wrap {
    position: relative;
    background-color: var(--color-white);
    border-radius: 50px;
    height: 44px;
    display: flex;
    align-items: center;
    padding: 0 15px;
}

.p-school-list-search__input {
    border: none;
    background: transparent;
    width: 100%;
    height: 100%;
    font-size: 16px;
    outline: none;
}

.p-school-list-search__btn {
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-school-list-search__btn .icon-search {
    display: block;
    width: 24px;
    height: 24px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23074BA0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E") no-repeat center;
    background-size: contain;
}

.p-school-list-search__suggest {
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    width: 100%;
    background-color: var(--color-white);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    z-index: 100;
    max-height: 300px;
    overflow-y: auto;
    display: none;
    padding: 10px 0;
}

.p-school-list-search__suggest-item {
    padding: 12px 20px;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.2s;
    border-bottom: 1px solid #f0f0f0;
}

.p-school-list-search__suggest-item:hover {
    background-color: #f7f9fc;
}

.p-school-list-search__suggest-name {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--color-main-blue);
    margin-bottom: 2px;
}

.p-school-list-search__suggest-info {
    display: block;
    font-size: 12px;
    color: #666;
}

.p-school-list-content {
    padding-bottom: 40px;
}

.p-school-area {
    max-width: 960px;
    margin: 0 auto 60px;
}

.p-school-area__title {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 20px;
    color: var(--color-text-black);
}

.p-school-area__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.p-school-card {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc((100% - 64px) / 5);
    height: 48px;
    background-color: var(--color-white) !important;
    border: 2px solid var(--color-main-blue) !important;
    border-radius: 8px;
    transition: all 0.3s;
    text-decoration: none;
}

.p-school-card:hover {
    background-color: var(--color-main-blue) !important;
}

.p-school-card__name {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-main-blue) !important;
    transition: color 0.3s;
}

.p-school-card:hover .p-school-card__name {
    color: var(--color-white) !important;
}

.p-school-list__no-result {
    display: none;
    text-align: center;
    padding: 40px 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--color-text-black);
}

@media screen and (max-width: 960px) {
    .p-school-list-visual {
        flex-direction: column;
        gap: 30px;
    }

    .p-school-card {
        width: calc((100% - 32px) / 3);
    }
}

@media screen and (max-width: 768px) {
    .p-school-list-intro {
        padding: 40px 20px;
    }

    .p-school-list-visual__illust {
        width: auto;
    }

    .p-school-list-search {
        width: 100%;
    }

    .p-school-area {
        max-width: none;
    }

    .p-school-area.js-school-area {
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }
}

@media screen and (max-width: 480px) {
    .p-school-list-header {
        padding: 40px 0;
    }

    .p-school-list-header__title {
        font-size: 24px;
    }

    .p-school-list-intro__text {
        font-size: 16px;
    }
}

/**
 * ==========================================================================
 * Blog & Single Post Section
 * ==========================================================================
 */



/* Page Layout */
.p-blog-page {
    background-color: var(--color-white);
    padding: 20px 0 100px;
}

.p-blog-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.p-blog-layout__main {
    flex: 1;
    min-width: 0;
}

.p-blog-layout__sidebar {
    width: 320px;
    flex-shrink: 0;
}

/* Blog Card List */
.p-blog-archive__header {
    margin-bottom: 40px;
    border-bottom: 2px solid var(--color-main-blue);
    padding-bottom: 15px;
}

.p-blog-archive__title {
    font-size: 32px;
    font-weight: 600;
    color: var(--color-main-blue);
    line-height: 1.2;
}

.p-blog-archive__list {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.p-blog-card {
    background-color: var(--color-white);
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
    overflow: hidden;
    border: 1px solid #f1f4f8;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.p-blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(7, 75, 160, 0.1);
}

.p-blog-card__link {
    display: flex;
    color: inherit;
    text-decoration: none;
}

.p-blog-card__thumb {
    width: 280px;
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
    aspect-ratio: 16 / 9;
}

.p-blog-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.p-blog-card:hover .p-blog-card__thumb img {
    transform: scale(1.05);
}

.p-blog-card__content {
    flex: 1;
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.p-blog-card__meta {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 12px;
    font-size: 13px;
}

.p-blog-card__date {
    color: #8898aa;
    font-family: var(--font-base);
    font-weight: 600;
}

.p-blog-card__category {
    background-color: #f1f4f8;
    color: var(--color-main-blue);
    padding: 2px 10px;
    border-radius: 20px;
    font-weight: 600;
    font-size: 11px;
}

.p-blog-card__title {
    font-size: 20px;
    font-weight: 600;
    color: var(--color-text-black);
    margin-bottom: 10px;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.p-blog-card__excerpt {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* Pagination */
.p-blog-archive__pagination {
    margin-top: 50px;
}

.p-blog-archive__pagination .pagination {
    display: flex;
    justify-content: center;
}

.p-blog-archive__pagination .nav-links {
    display: flex;
    align-items: center;
    gap: 8px;
}

.p-blog-archive__pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #e1e8ed;
    color: #555;
    font-weight: 600;
    font-size: 15px;
    font-family: var(--font-base);
    transition: all 0.3s ease;
    background-color: var(--color-white);
}

.p-blog-archive__pagination .page-numbers:hover {
    border-color: var(--color-main-blue);
    color: var(--color-main-blue);
}

.p-blog-archive__pagination .page-numbers.current {
    background-color: var(--color-main-blue);
    border-color: var(--color-main-blue);
    color: var(--color-white);
}

.p-blog-archive__pagination .prev-arrow,
.p-blog-archive__pagination .next-arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
}

.p-blog-archive__pagination .prev-arrow {
    transform: rotate(-45deg);
    margin-left: 2px;
}

.p-blog-archive__pagination .next-arrow {
    transform: rotate(135deg);
    margin-right: 2px;
}

/* Single Post Detail */
.p-blog-detail {
    background-color: var(--color-white);
    border-radius: 16px;
    margin-bottom: 60px;
}

.p-blog-detail__thumbnail {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.p-blog-detail__thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-blog-detail__header {
    border-bottom: 2px solid #f1f4f8;
    padding-bottom: 24px;
    margin-bottom: 30px;
}

.p-blog-detail__meta {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 15px;
}

.p-blog-detail__date {
    color: #8898aa;
    font-size: 14px;
    font-family: var(--font-base);
    font-weight: 400;
    margin-left: auto;
}

.p-blog-detail__category {
    background-color: #f1f4f8;
    color: var(--color-main-blue);
    padding: 3px 12px;
    border-radius: 20px;
    font-weight: 600;
    font-size: 12px;
}

.p-blog-detail__title {
    font-size: 32px;
    font-weight: 600;
    color: var(--color-text-black);
    line-height: 1.4;
}

/* Entry Content Styles - SCOPED to prevent bleeding into other pages */
.p-entry-content {
    font-size: 16px;
    line-height: 1.8;
    color: #2b3542;
}

.p-entry-content iframe,
.p-entry-content video,
.p-entry-content embed,
.p-entry-content object {
    max-width: 100%;
    height: auto;
}

/* Ensure WordPress embedded iframes keep their correct aspect ratio */
.p-entry-content .wp-block-embed iframe {
    height: 100%;
}

.p-entry-content p {
    margin-bottom: 24px;
}

.p-entry-content h2 {
    position: relative;
    padding-left: 15px;
    border-left: 6px solid var(--post-h2-color, var(--color-main-blue));
    font-size: 24px;
    font-weight: 600;
    margin: 50px 0 24px;
    line-height: 1.4;
    color: var(--color-text-black);
}

.p-entry-content h3 {
    border-bottom: 2px solid var(--post-h3-color, var(--color-main-blue));
    padding-bottom: 8px;
    font-size: 20px;
    font-weight: 600;
    margin: 40px 0 20px;
    line-height: 1.4;
    color: var(--color-text-black);
}

.p-entry-content ul,
.p-entry-content ol {
    margin: 0 0 24px 20px;
}

.p-entry-content ul li {
    list-style-type: disc;
    margin-bottom: 8px;
}

.p-entry-content ol li {
    list-style-type: decimal;
    margin-bottom: 8px;
}

/* Related Posts Section */
.p-blog-related {
    border-top: 2px solid #f1f4f8;
    padding-top: 40px;
    margin-bottom: 60px;
}

.p-blog-related__title {
    font-size: 22px;
    font-weight: 600;
    color: var(--color-text-black);
    margin-bottom: 25px;
}

.p-blog-related__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.p-blog-related__card {
    background-color: var(--color-white);
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #f1f4f8;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.p-blog-related__card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(7, 75, 160, 0.08);
}

.p-blog-related__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.p-blog-related__thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.p-blog-related__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.p-blog-related__card:hover .p-blog-related__thumb img {
    transform: scale(1.05);
}

.p-blog-related__content {
    padding: 15px;
}

.p-blog-related__date {
    font-size: 12px;
    color: #8898aa;
    font-family: var(--font-base);
    font-weight: 600;
    display: block;
    margin-bottom: 6px;
}

.p-blog-related__card-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text-black);
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* Blog Sidebar */
.p-blog-sidebar__widget {
    background-color: var(--color-white);
    border-radius: 12px;
    padding: 24px;
    border: 1px solid #f1f4f8;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
    margin-bottom: 30px;
}

.p-blog-sidebar__widget-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-text-black);
    border-bottom: 2px solid var(--color-main-blue);
    padding-bottom: 10px;
    margin-bottom: 20px;
}

/* Sidebar Banner */
.p-blog-sidebar__widget--banner {
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.p-blog-sidebar__banner-link {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.p-blog-sidebar__banner-link:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(7, 75, 160, 0.15);
}

.p-blog-sidebar__banner-img {
    width: 100%;
    height: auto;
    display: block;
}

/* Sidebar Recent Posts */
.p-blog-sidebar__recent-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.p-blog-sidebar__recent-item {
    border-bottom: 1px dashed #e9edf2;
    padding-bottom: 15px;
}

.p-blog-sidebar__recent-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.p-blog-sidebar__recent-link {
    display: flex;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.p-blog-sidebar__recent-thumb {
    width: 80px;
    aspect-ratio: 16 / 9;
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
}

.p-blog-sidebar__recent-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-blog-sidebar__recent-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.p-blog-sidebar__recent-date {
    font-size: 11px;
    color: #8898aa;
    font-family: var(--font-base);
    font-weight: 600;
    margin-bottom: 4px;
}

.p-blog-sidebar__recent-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-black);
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    transition: color 0.3s;
}

.p-blog-sidebar__recent-link:hover .p-blog-sidebar__recent-title {
    color: var(--color-main-blue);
}

/* Sidebar Category List */
.p-blog-sidebar__category-list {
    display: flex;
    flex-direction: column;
}

.p-blog-sidebar__category-item {
    border-bottom: 1px solid #f1f4f8;
}

.p-blog-sidebar__category-item:last-child {
    border-bottom: none;
}

.p-blog-sidebar__category-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 5px;
    color: #4a5568;
    font-size: 14px;
    font-weight: 600;
    transition: color 0.3s ease, padding-left 0.3s ease;
}

.p-blog-sidebar__category-link:hover {
    color: var(--color-main-blue);
    padding-left: 10px;
}

.p-blog-sidebar__category-count {
    color: #a0aec0;
    font-size: 12px;
    font-family: var(--font-base);
}

/* ==========================================================================
 * Responsive Adjustments
 * ==========================================================================
 */

@media screen and (max-width: 960px) {
    .p-blog-page {
        padding-bottom: 60px;
    }

    .p-blog-layout {
        flex-direction: column;
        gap: 50px;
    }

    .p-blog-layout__sidebar {
        width: 100%;
    }

    .p-blog-card__thumb {
        width: 220px;
    }

    .p-blog-card__title {
        font-size: 18px;
    }

    .p-blog-detail__title {
        font-size: 26px;
    }

    .p-blog-related__list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width: 640px) {
    .p-blog-card__link {
        flex-direction: column;
    }

    .p-blog-card__thumb {
        width: 100%;
    }

    .p-blog-card__content {
        padding: 20px;
    }

    .p-blog-detail__thumbnail {
        margin-bottom: 20px;
    }

    .p-blog-detail__title {
        font-size: 22px;
    }

    .p-blog-related__list {
        grid-template-columns: 1fr;
    }
}

/* No Image Placeholders */
.p-blog-card__no-image,
.p-blog-related__no-image,
.p-blog-sidebar__recent-no-image {
    width: 100%;
    height: 100%;
    background-color: #f7f9fc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #a0aec0;
    font-weight: 600;
    font-family: var(--font-base);
    letter-spacing: 0.05em;
}

.p-blog-card__no-image {
    font-size: 14px;
}

.p-blog-related__no-image {
    font-size: 12px;
    aspect-ratio: 16 / 9;
}

.p-blog-sidebar__recent-no-image {
    font-size: 9px;
}

/* Sidebar Child Categories */
.p-blog-sidebar__child-category-list {
    padding-left: 15px;
    list-style: none;
    background-color: #fafbfc;
}

.p-blog-sidebar__child-category-item {
    border-bottom: 1px solid #f1f4f8;
}

.p-blog-sidebar__child-category-item:last-child {
    border-bottom: none;
}

.p-blog-sidebar__child-category-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 5px;
    color: #718096;
    font-size: 13px;
    font-weight: 500;
    transition: color 0.3s ease, padding-left 0.3s ease;
    text-decoration: none;
}

.p-blog-sidebar__child-category-link:hover {
    color: var(--color-main-blue);
    padding-left: 10px;
}

/* Post Detail Tags */
.p-blog-detail__tags {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px dashed #e9edf2;
}

.p-blog-detail__tags-title {
    font-size: 14px;
    font-weight: 600;
    color: #4a5568;
}

.p-blog-detail__tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.p-blog-detail__tag-link {
    display: inline-block;
    background-color: #f1f4f8;
    color: #4a5568;
    font-size: 13px;
    padding: 4px 12px;
    border-radius: 15px;
    text-decoration: none;
    font-weight: 600;
    transition: background-color 0.2s, color 0.2s;
}

.p-blog-detail__tag-link:hover {
    background-color: var(--color-main-blue);
    color: var(--color-white);
}

/* Sidebar Tag Cloud */
.p-blog-sidebar__tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.p-blog-sidebar__tag-link {
    display: inline-block;
    background-color: #f7f9fc;
    border: 1px solid #eef2f6;
    color: #718096;
    font-size: 12px;
    padding: 5px 10px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.p-blog-sidebar__tag-link:hover {
    background-color: var(--color-main-blue);
    border-color: var(--color-main-blue);
    color: var(--color-white);
}

.p-blog-sidebar__no-tags {
    font-size: 14px;
    color: #a0aec0;
}

/* Container adjustments to match project guidelines without affecting other pages */
.p-blog-page__inner {
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

/* Responsive paddings for elements when screen width is <= 960px */
@media screen and (max-width: 960px) {

    .p-reasons__method-card,
    .p-pricing__inner.l-container,
    .p-flow .l-container,
    .p-faq .l-container,
    .p-footer-cta__inner,
    .p-footer-sitemap__inner,
    .p-footer-submenu__inner,
    .p-footer-info__inner,
    .p-course-page-container,
    .p-faq-category-nav,
    .p-course-category-nav,
    .p-pass-results--elementary .l-container {
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }
}

/**
 * High School: Solution Section
 */
.p-highschool-solution {
    width: 100%;
    padding: 120px 0 80px;
    background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h26v1H0zM0 0v26h1V0z' fill='%23dfdfdf'/%3E%3C/svg%3E");
    background-size: 26px 26px;
    background-repeat: repeat;
}

.p-highschool-solution__inner {
    max-width: 960px;
    margin: 0 auto;
    text-align: center;
}

.p-highschool-solution__lead {
    font-size: 22px;
    font-weight: 500;
    margin-bottom: 24px;
}

.u-slant-line {
    color: var(--color-main-blue);
    font-weight: 600;
    margin: 0 5px;
}

.p-highschool-solution__heading {
    font-size: 32px;
    font-weight: 500;
    margin-bottom: 30px;
    line-height: 1.6;
}

.p-highschool-solution__sublead {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 60px;
}

.u-marker-yellow {
    background: linear-gradient(transparent 60%, var(--color-accent-yellow) 60%);
    padding-bottom: 2px;
}

.p-highschool-solution__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 80px;
}

.c-solution-card {
    background-color: rgba(234, 246, 253, 0.5);
    position: relative;
    padding: 30px 20px 20px;
    display: flex;
    flex-direction: column;
}

.c-solution-card::before,
.c-solution-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 60px;
    border: 2px solid var(--color-main-blue);
    pointer-events: none;
}

.c-solution-card::before {
    top: 0;
    border-bottom: none;
}

.c-solution-card::after {
    bottom: 0;
    border-top: none;
}

.c-solution-card__header {
    background-color: var(--color-white);
    padding: 6px 16px;
    font-size: 18px;
    font-weight: 600;
    color: var(--color-main-blue);
    border-radius: 2px;
    position: relative;
    margin: 0 auto 20px;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    width: 80%;
}

.c-solution-card__header::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-top: 8px solid var(--color-white);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
}

.c-solution-card__body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.c-solution-card__text {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 30px;
    text-align: center;
    font-weight: 500;
    padding: 0 10px;
}

.c-solution-card__image {
    margin-top: auto;
    background-color: var(--color-white);
    border-radius: 2px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.c-solution-card__image img {
    width: auto;
    height: 120px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

.p-highschool-solution__closing {
    font-size: 28px;
    font-weight: 500;
    text-align: center;
}

@media screen and (max-width: 1024px) {
    .p-highschool-solution__cards {
        grid-template-columns: 1fr;
        max-width: 600px;
        margin: 0 auto 60px;
    }
}

@media screen and (max-width: 768px) {
    .p-highschool-solution {
        padding: 80px 20px;
        background-size: 20px 20px;
    }

    .p-highschool-solution__lead {
        font-size: 18px;
    }

    .p-highschool-solution__heading {
        font-size: 22px;
    }

    .p-highschool-solution__sublead {
        font-size: 20px;
        margin-bottom: 40px;
    }

    .p-highschool-solution__closing {
        font-size: 20px;
    }
}