.admission-page {
    --admission-main:#202b68;
    --admission-light:#168cc8;
    --admission-soft:#eef6fc;
    --admission-bg:#f7fbff;
    --admission-dark:#131d48;
    --admission-text:#172b42;
    --admission-sub:#66717f;
    --admission-border:#e2e7ec;
    width:100%;
    overflow:hidden;
    background:#fff;
}

.admission-page * {
    box-sizing:border-box;
}

.admission-container {
    width:min(1180px,calc(100% - 80px));
    margin:0 auto;
}

/* =========================
   HERO
========================= */
.admission-hero {
    position:relative;
    padding:105px 0 95px;
    overflow:hidden;
    background:
        radial-gradient(circle at 85% 15%,rgba(22,140,200,.14),transparent 36%),
        radial-gradient(circle at 8% 85%,rgba(32,43,104,.08),transparent 32%),
        linear-gradient(135deg,#f9fbff 0%,#f5f9ff 55%,#eef6fc 100%);
}

.admission-hero-bg {
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.4;
    background-image:
        linear-gradient(rgba(32,43,104,.04) 1px,transparent 1px),
        linear-gradient(90deg,rgba(32,43,104,.04) 1px,transparent 1px);
    background-size:52px 52px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent);
}

.admission-hero .admission-container {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);
    gap:75px;
    align-items:center;
}

.hero-label,
.section-label,
.cta-label {
    display:inline-block;
    color:var(--admission-light);
    font-size:13px;
    font-weight:800;
    letter-spacing:.16em;
}

.hero-content h1 {
    margin:17px 0 28px;
    color:var(--admission-text);
    font-size:clamp(48px,5vw,68px);
    font-weight:900;
    line-height:1.18;
    letter-spacing:-2.8px;
    word-break:keep-all;
}

.hero-content h1 span {
    color:var(--admission-main);
}

.hero-description {
    margin:0;
    color:var(--admission-sub);
    font-size:18px;
    line-height:1.9;
    word-break:keep-all;
}

.hero-description strong {
    color:var(--admission-main);
    font-weight:800;
}

.hero-actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:38px;
}

.hero-button {
    min-height:54px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 27px;
    border-radius:11px;
    font-size:15px;
    font-weight:800;
    text-decoration:none;
    transition:.23s ease;
}

.hero-button.primary {
    border:1px solid var(--admission-main);
    background:var(--admission-main);
    color:#fff;
    box-shadow:0 10px 25px rgba(32,43,104,.18);
}

.hero-button.primary:hover {
    transform:translateY(-2px);
    box-shadow:0 14px 30px rgba(32,43,104,.23);
}

.hero-button.secondary {
    border:1px solid rgba(32,43,104,.16);
    background:rgba(255,255,255,.85);
    color:var(--admission-main);
}

.hero-button.secondary:hover {
    border-color:var(--admission-main);
    background:#fff;
}

/* =========================
   HERO PROCESS CARD
========================= */
.hero-card {
    padding:36px;
    border:1px solid rgba(32,43,104,.1);
    border-radius:26px;
    background:rgba(255,255,255,.9);
    box-shadow:0 30px 70px rgba(32,43,104,.12);
    backdrop-filter:blur(12px);
}

.hero-card-label {
    display:block;
    margin-bottom:28px;
    color:var(--admission-main);
    font-size:12px;
    font-weight:800;
    letter-spacing:.15em;
}

.hero-process {
    display:flex;
    flex-direction:column;
}

.process-item {
    display:grid;
    grid-template-columns:46px minmax(0,1fr);
    gap:17px;
    align-items:center;
}

.process-item > span {
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    background:var(--admission-soft);
    color:var(--admission-light);
    font-size:13px;
    font-weight:900;
}

.process-item strong {
    display:block;
    margin-bottom:4px;
    color:var(--admission-text);
    font-size:17px;
    font-weight:800;
}

.process-item p {
    margin:0;
    color:var(--admission-sub);
    font-size:14px;
    line-height:1.6;
}

.process-line {
    width:1px;
    height:27px;
    margin:5px 0 5px 22px;
    background:linear-gradient(var(--admission-light),rgba(22,140,200,.15));
}

/* =========================
   KEY POINT
========================= */
.admission-points {
    position:relative;
    z-index:2;
    padding:52px 0 100px;
    background:#fff;
}

.point-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.point-card {
    min-height:220px;
    padding:30px 27px;
    border:1px solid var(--admission-border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 28px rgba(28,43,61,.05);
    transition:.23s ease;
}

.point-card:hover {
    transform:translateY(-4px);
    border-color:rgba(22,140,200,.4);
    box-shadow:0 16px 35px rgba(28,43,61,.08);
}

.point-number {
    display:block;
    margin-bottom:23px;
    color:var(--admission-light);
    font-size:13px;
    font-weight:900;
}

.point-card strong {
    display:block;
    margin-bottom:12px;
    color:var(--admission-text);
    font-size:19px;
    font-weight:800;
    line-height:1.45;
    word-break:keep-all;
}

.point-card p {
    margin:0;
    color:var(--admission-sub);
    font-size:15px;
    line-height:1.8;
    word-break:keep-all;
}

/* =========================
   SECTION HEAD
========================= */
.section-head {
    margin-bottom:48px;
}

.section-head h2 {
    margin:11px 0 14px;
    color:var(--admission-text);
    font-size:38px;
    font-weight:900;
    line-height:1.35;
    letter-spacing:-1.5px;
    word-break:keep-all;
}

.section-head > p {
    margin:0;
    color:var(--admission-sub);
    font-size:16px;
    line-height:1.85;
    word-break:keep-all;
}

.section-head.light h2 {
    color:#fff;
}

.section-head.light > p {
    color:rgba(255,255,255,.68);
}

.section-head.light .section-label {
    color:#68c8f1;
}

/* =========================
   CHECK
========================= */
.admission-check {
    padding:105px 0;
    background:#fff;
}

.check-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.check-item {
    display:flex;
    align-items:flex-start;
    gap:19px;
    padding:27px 28px;
    border:1px solid var(--admission-border);
    border-radius:15px;
    background:var(--admission-bg);
    transition:.22s ease;
}

.check-item:hover {
    transform:translateY(-2px);
    border-color:rgba(22,140,200,.5);
    background:#fff;
    box-shadow:0 10px 25px rgba(28,43,61,.06);
}

.check-icon {
    flex:0 0 auto;
    color:var(--admission-light);
    font-size:13px;
    font-weight:900;
}

.check-item p {
    margin:0;
    color:var(--admission-text);
    font-size:16px;
    font-weight:700;
    line-height:1.7;
    word-break:keep-all;
}

/* =========================
   ROADMAP
========================= */
.admission-roadmap {
    position:relative;
    padding:110px 0 120px;
    overflow:hidden;
    background:
        radial-gradient(circle at 85% 20%,rgba(22,140,200,.12),transparent 28%),
        var(--admission-dark);
}

.admission-roadmap::before {
    content:"";
    position:absolute;
    inset:0;
    opacity:.08;
    background-image:
        linear-gradient(rgba(255,255,255,.25) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px);
    background-size:56px 56px;
}

.admission-roadmap .admission-container {
    position:relative;
    z-index:1;
}

.roadmap-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.roadmap-card {
    min-height:420px;
    padding:30px 27px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:18px;
    background:rgba(255,255,255,.055);
    backdrop-filter:blur(8px);
    transition:.25s ease;
}

.roadmap-card:hover {
    transform:translateY(-5px);
    border-color:rgba(104,200,241,.45);
    background:rgba(255,255,255,.085);
}

.roadmap-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:36px;
}

.roadmap-number {
    color:#68c8f1;
    font-size:30px;
    font-weight:900;
}

.roadmap-type {
    color:rgba(255,255,255,.42);
    font-size:10px;
    font-weight:800;
    letter-spacing:.1em;
}

.roadmap-card h3 {
    margin:0 0 14px;
    color:#fff;
    font-size:23px;
    font-weight:800;
}

.roadmap-card > p {
    min-height:78px;
    margin:0 0 25px;
    color:rgba(255,255,255,.65);
    font-size:15px;
    line-height:1.75;
    word-break:keep-all;
}

.roadmap-card ul {
    display:grid;
    gap:11px;
    margin:0;
    padding:0;
    list-style:none;
}

.roadmap-card li {
    position:relative;
    padding-left:17px;
    color:rgba(255,255,255,.86);
    font-size:14px;
    line-height:1.65;
    word-break:keep-all;
}

.roadmap-card li::before {
    content:"";
    position:absolute;
    top:8px;
    left:0;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#68c8f1;
}

/* =========================
   TARGET SCHOOL
========================= */
.target-school {
    padding:110px 0 120px;
    background:#fff;
}

.school-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
}

.school-card {
    position:relative;
    min-height:290px;
    padding:36px 33px;
    overflow:hidden;
    border:1px solid var(--admission-border);
    border-radius:19px;
    background:#fff;
    transition:.25s ease;
}

.school-card::before {
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:3px;
    background:var(--admission-light);
    transform:scaleX(0);
    transform-origin:left;
    transition:.25s ease;
}

.school-card:hover {
    transform:translateY(-5px);
    border-color:rgba(22,140,200,.4);
    box-shadow:0 20px 45px rgba(28,43,61,.08);
}

.school-card:hover::before {
    transform:scaleX(1);
}

.school-card.featured {
    border-color:rgba(32,43,104,.18);
    background:linear-gradient(145deg,#fff 0%,#f7fbff 100%);
}

.school-code {
    margin-bottom:31px;
    color:var(--admission-light);
    font-size:12px;
    font-weight:900;
    letter-spacing:.14em;
}

.school-card h3 {
    margin:0 0 19px;
    color:var(--admission-text);
    font-size:25px;
    font-weight:900;
    line-height:1.45;
    letter-spacing:-.7px;
}

.school-card > p {
    margin:0 0 29px;
    color:var(--admission-sub);
    font-size:15px;
    line-height:1.8;
    word-break:keep-all;
}

.school-tags {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.school-tags span {
    padding:7px 11px;
    border-radius:7px;
    background:var(--admission-soft);
    color:var(--admission-main);
    font-size:12px;
    font-weight:700;
}

/* =========================
   CTA
========================= */
.admission-cta {
    padding:0 0 110px;
    background:#fff;
}

.cta-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:50px;
    padding:60px 62px;
    overflow:hidden;
    border-radius:25px;
    background:
        radial-gradient(circle at 90% 10%,rgba(22,140,200,.4),transparent 33%),
        linear-gradient(135deg,var(--admission-main),var(--admission-dark));
    box-shadow:0 25px 55px rgba(32,43,104,.16);
}

.cta-label {
    color:#70cef4;
}

.cta-text h2 {
    margin:13px 0;
    color:#fff;
    font-size:34px;
    font-weight:900;
    line-height:1.42;
    letter-spacing:-1px;
}

.cta-text p {
    margin:0;
    color:rgba(255,255,255,.68);
    font-size:16px;
    line-height:1.8;
}

.cta-button {
    flex:0 0 auto;
    min-height:58px;
    display:flex;
    align-items:center;
    gap:25px;
    padding:0 25px;
    border-radius:11px;
    background:#fff;
    color:var(--admission-main);
    font-size:15px;
    font-weight:800;
    text-decoration:none;
    transition:.23s ease;
}

.cta-button span {
    font-size:21px;
    transition:.23s ease;
}

.cta-button:hover {
    transform:translateY(-2px);
    box-shadow:0 10px 25px rgba(0,0,0,.12);
}

.cta-button:hover span {
    transform:translateX(4px);
}

/* =========================
   TABLET
========================= */
@media(max-width:1000px) {
    .admission-container {
        width:calc(100% - 64px);
    }

    .admission-hero {
        padding:85px 0 75px;
    }

    .admission-hero .admission-container {
        grid-template-columns:1fr;
        gap:45px;
    }

    .hero-visual {
        max-width:700px;
    }

    .point-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .roadmap-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .roadmap-card {
        min-height:360px;
    }

    .school-grid {
        grid-template-columns:1fr;
    }

    .school-card {
        min-height:0;
    }
}

/* =========================
   MOBILE
========================= */
@media(max-width:640px) {
    .admission-container {
        width:calc(100% - 32px);
    }

    .admission-hero {
        padding:60px 0 58px;
    }

    .hero-content h1 {
        margin:13px 0 20px;
        font-size:38px;
        line-height:1.22;
        letter-spacing:-1.8px;
    }

    .hero-description {
        font-size:15px;
        line-height:1.8;
    }

    .hero-description br {
        display:none;
    }

    .hero-actions {
        display:grid;
        grid-template-columns:1fr 1fr;
        margin-top:28px;
    }

    .hero-button {
        min-height:49px;
        padding:0 10px;
        font-size:13px;
    }

    .hero-card {
        padding:25px 21px;
        border-radius:19px;
    }

    .hero-card-label {
        margin-bottom:22px;
        font-size:10px;
    }

    .process-item {
        grid-template-columns:40px 1fr;
        gap:13px;
    }

    .process-item > span {
        width:40px;
        height:40px;
        font-size:11px;
    }

    .process-item strong {
        font-size:15px;
    }

    .process-item p {
        font-size:12px;
    }

    .process-line {
        height:22px;
        margin-left:19px;
    }

    .admission-points {
        padding:35px 0 70px;
    }

    .point-grid {
        grid-template-columns:1fr;
        gap:12px;
    }

    .point-card {
        min-height:0;
        padding:24px 21px;
        border-radius:15px;
    }

    .point-number {
        margin-bottom:14px;
        font-size:12px;
    }

    .point-card strong {
        margin-bottom:9px;
        font-size:18px;
    }

    .point-card p {
        font-size:14px;
    }

    .admission-check,
    .target-school {
        padding:75px 0;
    }

    .section-head {
        margin-bottom:32px;
    }

    .section-head h2 {
        font-size:29px;
        letter-spacing:-1px;
    }

    .section-head > p {
        font-size:14px;
    }

    .section-head > p br {
        display:none;
    }

    .check-grid {
        grid-template-columns:1fr;
        gap:10px;
    }

    .check-item {
        padding:20px 18px;
    }

    .check-item p {
        font-size:14px;
    }

    .admission-roadmap {
        padding:80px 0 85px;
    }

    .roadmap-grid {
        grid-template-columns:1fr;
        gap:12px;
    }

    .roadmap-card {
        min-height:0;
        padding:26px 22px;
    }

    .roadmap-top {
        margin-bottom:24px;
    }

    .roadmap-card h3 {
        font-size:21px;
    }

    .roadmap-card > p {
        min-height:0;
        font-size:14px;
    }

    .roadmap-card li {
        font-size:13px;
    }

    .school-grid {
        gap:12px;
    }

    .school-card {
        padding:28px 24px;
        border-radius:16px;
    }

    .school-code {
        margin-bottom:21px;
    }

    .school-card h3 {
        font-size:22px;
    }

    .school-card > p {
        font-size:14px;
    }

    .admission-cta {
        padding:0 0 75px;
    }

    .cta-inner {
        flex-direction:column;
        align-items:flex-start;
        gap:28px;
        padding:37px 26px;
        border-radius:19px;
    }

    .cta-text h2 {
        font-size:26px;
    }

    .cta-text p {
        font-size:14px;
    }

    .cta-text p br {
        display:none;
    }

    .cta-button {
        width:100%;
        min-height:53px;
        justify-content:space-between;
        font-size:14px;
    }
}

@media(max-width:380px) {
    .admission-container {
        width:calc(100% - 28px);
    }

    .hero-content h1 {
        font-size:34px;
    }

    .hero-actions {
        grid-template-columns:1fr;
    }
}