/* Shared inner-page hero */
.page-hero {
    position: relative;
    overflow: hidden;
    padding: 95px 0;
    background:
        radial-gradient(circle at 90% 15%, rgba(242,140,69,.18), transparent 28%),
        var(--indigo-dark);
    color: white;
}

.page-hero h1 { max-width: 850px; font-size: clamp(2.7rem, 6vw, 5rem); }
.page-hero h1 em { color: var(--orange); font-style: normal; }
.page-hero p { max-width: 650px; margin-top: 20px; color: rgba(255,255,255,.76); }
.page-hero .eyebrow { color: #FFD0AD; }

.page-hero-inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 35px;
}

.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
    color: rgba(255,255,255,.65);
    font-size: .82rem;
}

.breadcrumbs a { color: #FFD0AD; }

.content-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 55px;
    align-items: center;
}

.content-image {
    overflow: hidden;
    border-radius: 22px;
    min-height: 360px;
    background: var(--indigo-light);
}

.content-image img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.content-copy h2 { color: var(--indigo-dark); }
.content-copy p { margin-top: 17px; }

.info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.info-card {
    padding: 28px;
    background: white;
    border: 1px solid var(--border);
    border-radius: 17px;
    transition: transform .25s, box-shadow .25s;
}

.info-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.info-card .point-icon { margin-bottom: 20px; }
.info-card h3 { color: var(--indigo-dark); }
.info-card p { margin-top: 12px; font-size: .9rem; }

.process-list {
    counter-reset: process;
    display: grid;
    gap: 18px;
}

.process-item {
    counter-increment: process;
    display: flex;
    gap: 20px;
    padding: 25px;
    border: 1px solid var(--border);
    background: white;
    border-radius: 15px;
}

.process-item::before {
    content: "0" counter(process);
    color: var(--orange-dark);
    font-family: "Manrope", sans-serif;
    font-weight: 800;
    font-size: 1.45rem;
}

.process-item h3 { color: var(--indigo-dark); }
.process-item p { margin-top: 7px; }

.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 32px;
}

.filter-btn {
    padding: 10px 17px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: white;
    color: var(--indigo);
    font-weight: 700;
    font-size: .85rem;
}

.filter-btn.active,
.filter-btn:hover {
    background: var(--indigo);
    color: white;
    border-color: var(--indigo);
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.gallery-item {
    position: relative;
    min-height: 260px;
    overflow: hidden;
    border-radius: 15px;
    background: var(--indigo-light);
    cursor: pointer;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    transition: transform .45s;
}

.gallery-item:hover img { transform: scale(1.06); }

.gallery-item figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 30px 18px 18px;
    background: linear-gradient(transparent, rgba(37,41,95,.88));
    color: white;
    font-weight: 700;
}

.form-layout {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 45px;
    align-items: start;
}

.form-aside {
    padding: 32px;
    border-radius: 20px;
    background: var(--indigo);
    color: white;
}

.form-aside h2 { font-size: 2rem; }
.form-aside p { color: rgba(255,255,255,.75); margin-top: 15px; }
.form-aside a { display: inline-block; color: #FFD0AD; margin-top: 15px; }

.form-card {
    padding: 35px;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: white;
    box-shadow: var(--shadow);
}

.form-card h2 { color: var(--indigo-dark); font-size: 1.8rem; margin-bottom: 24px; }

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.form-field { display: flex; flex-direction: column; gap: 8px; }
.form-field.full { grid-column: 1 / -1; }

.form-field label {
    color: var(--text);
    font-size: .85rem;
    font-weight: 700;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #DCDD E9;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #FCFCFF;
    color: var(--text);
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: var(--indigo);
    box-shadow: 0 0 0 3px rgba(52,58,139,.1);
}

.form-field textarea { min-height: 145px; resize: vertical; }

.form-status {
    display: none;
    padding: 13px;
    margin-bottom: 18px;
    border-radius: 9px;
    background: #E6F5E9;
    color: #236333;
    font-size: .9rem;
}

.form-status.visible { display: block; }

@media (max-width: 850px) {
    .content-grid, .form-layout { grid-template-columns: 1fr; }
    .info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .page-hero { padding: 70px 0; }
}

@media (max-width: 560px) {
    .info-grid, .gallery-grid, .form-grid { grid-template-columns: 1fr; }
    .form-field.full { grid-column: auto; }
    .form-card, .form-aside { padding: 24px; }
    .gallery-item, .gallery-item img { min-height: 230px; }
}


/* ABOUT PAGE */
.about-hero {
    padding: 70px 0 85px;
}

.about-hero-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    align-items: center;
    gap: 55px;
}

.about-hero-grid h1 {
    font-size: clamp(2.8rem, 5.5vw, 4.8rem);
}

.about-hero-grid p {
    margin: 22px 0 28px;
    font-size: 1rem;
    max-width: 480px;
}

.about-hero-image {
    position: relative;
    padding: 0 0 25px 25px;
}

.about-hero-image > img {
    width: 100%;
    height: 440px;
    object-fit: cover;
    border-radius: 18px 100px 18px 18px;
}

.about-image-caption {
    position: absolute;
    left: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 13px;
    max-width: 330px;
    padding: 17px 20px;
    border-radius: 13px;
    background: white;
    color: var(--indigo);
    box-shadow: var(--shadow);
}

.caption-mark {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    flex-shrink: 0;
    border-radius: 11px;
    background: var(--orange);
    font-family: "Manrope", sans-serif;
    font-weight: 800;
}

.about-image-caption strong,
.about-image-caption small {
    display: block;
}

.about-image-caption strong { font-size: .84rem; }
.about-image-caption small { color: var(--muted); font-size: .7rem; }

.about-story-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 85px;
}

.about-story-label h2 {
    color: var(--indigo-dark);
    font-size: clamp(2rem, 3.8vw, 3.2rem);
}

.story-index {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 40px;
    color: var(--orange-dark);
    font-family: "Manrope", sans-serif;
    font-weight: 800;
}

.story-index span {
    color: var(--muted);
    font-family: "DM Sans", sans-serif;
    font-size: .7rem;
    letter-spacing: .1em;
}

.about-story-copy p { margin-bottom: 18px; }
.about-story-copy .story-lead {
    color: var(--indigo-dark);
    font-family: "Manrope", sans-serif;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.55;
}

.about-belief {
    padding: 85px 0;
    background: #FFF0E4;
}

.belief-inner {
    max-width: 900px;
    margin-inline: auto;
    text-align: center;
}

.belief-symbol {
    color: var(--orange-dark);
    font-family: Georgia, serif;
    font-size: 5.5rem;
    line-height: .8;
}

.belief-inner > p {
    margin: 20px auto 25px;
    color: var(--indigo-dark);
    font-family: "Manrope", sans-serif;
    font-size: clamp(1.45rem, 3vw, 2.35rem);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: -.03em;
}

.belief-label {
    color: var(--indigo);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.about-purpose-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.purpose-card {
    position: relative;
    overflow: hidden;
    padding: 34px;
    border-radius: 20px;
    background: white;
    border: 1px solid var(--border);
    transition: transform .3s, box-shadow .3s;
}

.purpose-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
}

.purpose-vision {
    background: var(--indigo);
    border-color: var(--indigo);
    color: white;
}

.purpose-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 35px;
}

.purpose-number {
    color: var(--orange-dark);
    font-family: "Manrope", sans-serif;
    font-size: 1rem;
    font-weight: 800;
}

.purpose-vision .purpose-number { color: #FFC18F; }

.purpose-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #FFF0E4;
    color: var(--indigo);
    font-size: 1.35rem;
}

.purpose-vision .purpose-icon {
    background: rgba(255,255,255,.12);
    color: var(--orange);
}

.purpose-kicker {
    color: var(--orange-dark);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .15em;
}

.purpose-vision .purpose-kicker { color: #FFC18F; }

.purpose-card h3 {
    margin: 13px 0 17px;
    color: var(--indigo-dark);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    line-height: 1.4;
}

.purpose-vision h3 { color: white; }
.purpose-vision p { color: rgba(255,255,255,.73); }
.purpose-card p { font-size: .93rem; }

.purpose-line {
    width: 48px;
    height: 4px;
    margin-top: 28px;
    border-radius: 5px;
    background: var(--orange);
}

.about-values-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 35px;
    margin-bottom: 35px;
}

.about-values-heading h2 { color: var(--indigo-dark); }
.about-values-heading > p { max-width: 370px; }

.values-list { border-top: 1px solid var(--border); }

.value-row {
    display: grid;
    grid-template-columns: 60px 60px 1fr 35px;
    align-items: center;
    gap: 20px;
    padding: 23px 8px;
    border-bottom: 1px solid var(--border);
    transition: padding .25s, background .25s;
}

.value-row:hover {
    padding-left: 18px;
    padding-right: 18px;
    background: #FAFAFF;
}

.value-number {
    color: var(--orange-dark);
    font-size: .83rem;
    font-weight: 800;
}

.value-symbol {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: 1.3rem;
}

.value-main h3 {
    color: var(--indigo-dark);
    font-size: 1.2rem;
}

.value-main p { margin-top: 5px; font-size: .88rem; }
.value-arrow { color: var(--orange-dark); font-size: 1.25rem; }

.about-environment {
    overflow: hidden;
    background: var(--indigo-dark);
    color: white;
    padding: 90px 0;
}

.environment-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 70px;
}

.environment-image {
    position: relative;
    padding-bottom: 25px;
}

.environment-image > img {
    width: 100%;
    height: 490px;
    object-fit: cover;
    border-radius: 18px;
}

.environment-badge {
    position: absolute;
    bottom: 0;
    right: -20px;
    display: flex;
    gap: 15px;
    padding: 17px 21px;
    border-radius: 12px;
    background: var(--orange);
    color: var(--indigo-dark);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.environment-copy h2 { color: white; }
.environment-copy h2 em { color: var(--orange); font-style: normal; }
.environment-copy > p { margin-top: 19px; color: rgba(255,255,255,.72); }

.environment-features {
    display: grid;
    gap: 22px;
    margin: 30px 0;
}

.environment-features > div {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.environment-features > div > span {
    color: var(--orange);
    font-weight: 800;
    font-size: .8rem;
}

.environment-features p strong,
.environment-features p small { display: block; }

.environment-features p strong { color: white; font-size: .93rem; }
.environment-features p small { margin-top: 4px; color: rgba(255,255,255,.65); font-size: .81rem; }

.about-leadership-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.leadership-card {
    padding: 29px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: white;
    transition: border-color .25s, transform .25s, box-shadow .25s;
}

.leadership-card:hover {
    border-color: var(--orange);
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.leadership-icon {
    display: grid;
    place-items: center;
    width: 49px;
    height: 49px;
    margin-bottom: 24px;
    border-radius: 14px;
    background: var(--indigo);
    color: var(--orange);
    font-family: "Manrope", sans-serif;
    font-weight: 800;
}

.leadership-card h3 { color: var(--indigo-dark); }
.leadership-card p { margin-top: 12px; font-size: .9rem; }

.about-final-cta { background: #FFF0E4; }

.about-final-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 35px;
}

.about-final-inner h2 {
    max-width: 720px;
    color: var(--indigo-dark);
}

.about-final-inner p { margin-top: 13px; }

.about-final-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    flex-shrink: 0;
}

@media (max-width: 850px) {
    .about-hero-grid,
    .about-story-grid,
    .environment-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .about-hero-image { max-width: 650px; }
    .about-story-grid { gap: 25px; }
    .about-purpose-grid { gap: 18px; }
    .about-values-heading { align-items: flex-start; flex-direction: column; }
    .about-leadership-grid { grid-template-columns: 1fr 1fr; }
    .environment-image { max-width: 650px; }
    .about-final-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
    .about-hero { padding: 48px 0 60px; }
    .about-hero-image > img { height: 330px; border-radius: 15px 70px 15px 15px; }
    .about-image-caption { max-width: calc(100% - 10px); padding: 12px; }
    .about-purpose-grid,
    .about-leadership-grid { grid-template-columns: 1fr; }
    .purpose-card { padding: 25px; }
    .value-row { grid-template-columns: 28px 42px 1fr 20px; gap: 10px; padding: 18px 0; }
    .value-symbol { width: 38px; height: 38px; font-size: 1rem; }
    .value-main h3 { font-size: 1rem; }
    .value-main p { font-size: .78rem; }
    .environment-image > img { height: 340px; }
    .environment-badge { right: -5px; gap: 8px; padding: 13px; font-size: .62rem; }
    .about-final-actions { width: 100%; flex-direction: column; }
    .about-final-actions .btn { width: 100%; }
}



/* ==========================================
   ACADEMICS PAGE
========================================== */

.academics-hero {
    overflow: hidden;
}

.academics-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: 65px;
}

.academics-hero .inner-hero-content h1 {
    max-width: 700px;
    font-size: clamp(2.8rem, 5vw, 4.6rem);
    line-height: 1.08;
    letter-spacing: -2.5px;
}

.academics-hero .inner-hero-content > p {
    max-width: 570px;
    line-height: 1.9;
}

.academics-hero-note {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 34px;
}

.note-icon {
    display: grid;
    place-items: center;
    width: 47px;
    height: 47px;
    flex-shrink: 0;
    border-radius: 15px;
    background: var(--indigo-light);
    color: var(--orange-dark);
    font-size: 24px;
}

.academics-hero-note strong {
    display: block;
    color: var(--indigo-dark);
    margin-bottom: 5px;
}

.academics-hero-note p {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
}

.academics-hero-visual {
    position: relative;
    padding: 30px 15px 35px 25px;
}

.academic-visual-main {
    position: relative;
    padding: 34px 28px 25px;
    border-radius: 30px;
    background: linear-gradient(145deg, #292e75, #454ba4);
    color: white;
    box-shadow: 0 25px 65px rgba(37, 41, 95, .23);
}

.visual-label {
    font-size: .7rem;
    letter-spacing: 2px;
    font-weight: 800;
    color: #d9dcff;
    margin-bottom: 30px;
}

.learning-path {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.learning-step {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 17px 15px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 17px;
    background: rgba(255,255,255,.08);
    transition: transform .3s ease, background .3s ease;
}

.learning-step:hover {
    transform: translateX(7px);
    background: rgba(255,255,255,.15);
}

.step-number {
    display: grid;
    place-items: center;
    width: 39px;
    height: 39px;
    border-radius: 12px;
    background: rgba(255,255,255,.14);
    font-size: .75rem;
    font-weight: 800;
}

.learning-step strong,
.learning-step small {
    display: block;
}

.learning-step strong {
    margin-bottom: 5px;
    font-size: .98rem;
}

.learning-step small {
    color: #d9dcff;
    font-size: .78rem;
}

.step-symbol {
    margin-left: auto;
    color: #ffb878;
    font-size: 24px;
}

.path-connector {
    height: 20px;
    width: 2px;
    margin-left: 34px;
    background: repeating-linear-gradient(
        to bottom,
        #ffb878 0,
        #ffb878 4px,
        transparent 4px,
        transparent 8px
    );
}

.visual-bottom-note {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 25px;
    font-size: .8rem;
    color: #e1e3ff;
}

.pulse-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ffad6a;
    box-shadow: 0 0 0 5px rgba(255,173,106,.15);
}

.floating-academic-card {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px 17px;
    border: 1px solid var(--border);
    border-radius: 17px;
    background: white;
    box-shadow: var(--shadow);
    animation: academicFloat 4s ease-in-out infinite;
}

.floating-academic-card > span {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 12px;
    background: #fff0e5;
    color: var(--orange-dark);
    font-size: 20px;
}

.floating-academic-card strong,
.floating-academic-card small {
    display: block;
}

.floating-academic-card strong {
    color: var(--indigo-dark);
    font-size: .82rem;
    margin-bottom: 4px;
}

.floating-academic-card small {
    color: var(--muted);
    font-size: .7rem;
}

.floating-card-top {
    top: 4px;
    right: -10px;
}

.floating-card-bottom {
    bottom: 0;
    left: -15px;
    animation-delay: -2s;
}

@keyframes academicFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}


/* INTRODUCTION */

.academics-intro-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 85px;
    align-items: start;
}

.academics-intro-heading h2,
.section-heading h2,
.approach-content h2,
.student-development-heading h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.2;
    letter-spacing: -1.4px;
    color: var(--indigo-dark);
}

.academics-intro-copy > p,
.approach-description {
    color: var(--muted);
    line-height: 1.9;
    margin-top: 0;
}

.intro-points {
    display: grid;
    gap: 20px;
    margin-top: 28px;
}

.intro-point {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.intro-point-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    border-radius: 13px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: .78rem;
    font-weight: 800;
}

.intro-point strong {
    display: block;
    color: var(--indigo-dark);
    margin-bottom: 5px;
}

.intro-point p {
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.7;
    margin: 0;
}


/* ACADEMIC PROGRAM TABS */

.academics-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 35px;
    margin-bottom: 38px;
}

.academics-section-heading > p {
    max-width: 390px;
    line-height: 1.8;
    color: var(--muted);
}

.academic-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 22px;
}

.academic-tab {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 19px 17px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: white;
    color: var(--indigo-dark);
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: .25s ease;
}

.academic-tab > span {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 10px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: .75rem;
}

.academic-tab:hover {
    border-color: var(--orange);
    transform: translateY(-3px);
}

.academic-tab.active {
    background: var(--indigo-dark);
    border-color: var(--indigo-dark);
    color: white;
    box-shadow: 0 12px 28px rgba(37,41,95,.17);
}

.academic-tab.active > span {
    background: var(--orange);
    color: white;
}

.academic-tab-content {
    padding: 38px;
    border: 1px solid var(--border);
    border-radius: 25px;
    background: white;
    box-shadow: var(--shadow);
}

.academic-panel {
    display: grid;
    grid-template-columns: 55px 1fr .75fr;
    align-items: center;
    gap: 27px;
    animation: academicPanelIn .35s ease;
}

.academic-panel[hidden] {
    display: none !important;
}

@keyframes academicPanelIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.academic-panel-number {
    align-self: start;
    color: var(--orange-dark);
    font-size: .85rem;
    font-weight: 800;
    letter-spacing: 1px;
}

.panel-kicker {
    color: var(--orange-dark);
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.academic-panel-info h3 {
    margin: 10px 0 13px;
    color: var(--indigo-dark);
    font-size: 2rem;
    letter-spacing: -1px;
}

.academic-panel-info > p {
    color: var(--muted);
    line-height: 1.85;
    font-size: .92rem;
}

.subject-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 22px 0;
}

.subject-tags span {
    padding: 8px 11px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--cloud-white);
    color: var(--indigo-dark);
    font-size: .75rem;
    font-weight: 600;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--indigo);
    font-weight: 800;
    text-decoration: none;
}

.text-link span {
    transition: transform .25s ease;
}

.text-link:hover span {
    transform: translateX(5px);
}

.academic-panel-aside {
    align-self: stretch;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px;
    border-radius: 20px;
}

.panel-peach { background: #fff0e5; }
.panel-lavender { background: #efefff; }
.panel-blue { background: #e9f4ff; }
.panel-indigo { background: #e8eaff; }

.panel-aside-icon {
    display: grid;
    place-items: center;
    width: 51px;
    height: 51px;
    margin-bottom: 23px;
    border-radius: 16px;
    background: white;
    color: var(--orange-dark);
    font-size: 25px;
}

.academic-panel-aside h4 {
    color: var(--indigo-dark);
    font-size: 1.25rem;
    margin: 0 0 10px;
}

.academic-panel-aside p {
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.8;
}

.panel-decoration {
    align-self: flex-end;
    margin-top: 20px;
    color: var(--indigo);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: 1.5px;
}


/* SUBJECT CARDS */

.subjects-section {
    overflow: hidden;
}

.subject-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 40px;
}

.subject-card {
    position: relative;
    overflow: hidden;
    padding: 28px;
    min-height: 260px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: white;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.subject-card:hover {
    transform: translateY(-7px);
    border-color: #d2d4f5;
    box-shadow: var(--shadow);
}

.subject-card-featured {
    background: var(--indigo-dark);
    border-color: var(--indigo-dark);
    color: white;
}

.subject-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 28px;
}

.subject-icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: 25px;
    font-weight: 800;
}

.subject-card-featured .subject-icon {
    background: rgba(255,255,255,.13);
    color: #ffbd86;
}

.subject-number {
    color: #a3a7bd;
    font-size: .8rem;
    font-weight: 800;
}

.subject-card-featured .subject-number {
    color: #c9cbf4;
}

.subject-card h3 {
    margin: 0 0 12px;
    color: var(--indigo-dark);
    font-size: 1.17rem;
}

.subject-card-featured h3 {
    color: white;
}

.subject-card p {
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.8;
}

.subject-card-featured p {
    color: #d9dcff;
}

.subject-card-line {
    height: 3px;
    width: 42px;
    margin-top: 22px;
    border-radius: 10px;
    background: var(--orange);
    transition: width .3s ease;
}

.subject-card:hover .subject-card-line {
    width: 75px;
}

.subject-card-label {
    display: block;
    margin-top: 19px;
    color: var(--muted);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: 1.3px;
}

.subject-card-featured .subject-card-label {
    color: #c9cbf4;
}


/* LEARNING APPROACH */

.learning-approach-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    align-items: center;
    gap: 80px;
}

.approach-visual {
    min-height: 440px;
    position: relative;
    display: grid;
    place-items: center;
}

.approach-orbit {
    position: absolute;
    border: 1px dashed #c8cae7;
    border-radius: 50%;
}

.orbit-one {
    width: 340px;
    height: 340px;
}

.orbit-two {
    width: 245px;
    height: 245px;
    border-style: solid;
    border-color: #e2e3f3;
}

.approach-center {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 185px;
    height: 185px;
    border-radius: 50%;
    background: linear-gradient(145deg, var(--indigo-dark), #454ba4);
    color: white;
    text-align: center;
    box-shadow: 0 20px 45px rgba(37,41,95,.2);
}

.approach-center > span {
    display: grid;
    place-items: center;
    width: 37px;
    height: 37px;
    margin-bottom: 10px;
    border-radius: 12px;
    background: var(--orange);
    font-weight: 800;
}

.approach-center strong {
    font-size: 1.1rem;
    line-height: 1.35;
}

.approach-bubble {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 17px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: white;
    color: var(--indigo-dark);
    box-shadow: var(--shadow);
    font-size: .85rem;
    font-weight: 800;
}

.approach-bubble > span {
    color: var(--orange-dark);
    font-size: 20px;
}

.bubble-one { top: 40px; left: 3%; }
.bubble-two { right: 0; top: 46%; }
.bubble-three { bottom: 38px; left: 5%; }

.approach-content h2 {
    margin: 15px 0 22px;
}

.approach-list {
    display: grid;
    gap: 22px;
    margin-top: 30px;
}

.approach-item {
    display: flex;
    gap: 17px;
    align-items: flex-start;
}

.approach-item-number {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    flex-shrink: 0;
    border-radius: 13px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: .78rem;
    font-weight: 800;
}

.approach-item h3 {
    margin: 2px 0 7px;
    color: var(--indigo-dark);
    font-size: 1rem;
}

.approach-item p {
    margin: 0;
    color: var(--muted);
    font-size: .87rem;
    line-height: 1.75;
}


/* STUDENT DEVELOPMENT */

.student-development-heading {
    max-width: 760px;
    margin-bottom: 40px;
}

.student-development-heading h2 {
    margin: 14px 0;
}

.student-development-heading > p {
    color: var(--muted);
    line-height: 1.85;
}

.development-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.development-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 45px;
    min-height: 300px;
    padding: 30px;
    border-radius: 23px;
    overflow: hidden;
    transition: transform .3s ease;
}

.development-card:hover {
    transform: translateY(-6px);
}

.development-card-one { background: #fff0e5; }
.development-card-two { background: #efefff; }
.development-card-three { background: #e9f4ff; }

.development-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 17px;
    background: white;
    color: var(--orange-dark);
    font-size: 25px;
}

.development-label {
    color: var(--indigo);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: 1.2px;
}

.development-card h3 {
    margin: 11px 0;
    color: var(--indigo-dark);
    font-size: 1.25rem;
}

.development-card p {
    margin: 0;
    color: var(--muted);
    font-size: .89rem;
    line-height: 1.8;
}

.development-index {
    position: absolute;
    right: 25px;
    top: 24px;
    color: rgba(37,41,95,.2);
    font-size: 1rem;
    font-weight: 800;
}


/* FINAL CTA */

.academics-cta {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 45px;
    padding: 65px;
    border-radius: 30px;
    background: linear-gradient(120deg, #25295f, #41479b);
    color: white;
}

.academics-cta-content {
    position: relative;
    z-index: 2;
    max-width: 660px;
}

.eyebrow-light {
    color: #ffbd86;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.academics-cta h2 {
    margin: 18px 0;
    font-size: clamp(2rem, 4vw, 3.3rem);
    line-height: 1.15;
    letter-spacing: -1.5px;
}

.academics-cta-content > p {
    max-width: 560px;
    color: #d9dcff;
    line-height: 1.85;
}

.btn-light {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 22px;
    border-radius: 10px;
    background: white;
    color: var(--indigo-dark);
    font-weight: 800;
    text-decoration: none;
    transition: transform .25s ease;
}

.btn-light:hover {
    transform: translateY(-3px);
}

.btn-cta-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 22px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 10px;
    color: white;
    font-weight: 700;
    text-decoration: none;
    transition: background .25s ease;
}

.btn-cta-outline:hover {
    background: rgba(255,255,255,.1);
}

.academics-cta-mark {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.academics-cta-mark > span {
    display: grid;
    place-items: center;
    width: 145px;
    height: 145px;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 40px;
    color: #ffbd86;
    font-family: Georgia, serif;
    font-size: 6rem;
    transform: rotate(-7deg);
}

.academics-cta-mark small {
    max-width: 170px;
    color: #d9dcff;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-align: center;
}

.academics-cta-decoration {
    position: absolute;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 50%;
    pointer-events: none;
}

.cta-decoration-one {
    width: 400px;
    height: 400px;
    right: 7%;
    top: -220px;
}

.cta-decoration-two {
    width: 250px;
    height: 250px;
    right: -70px;
    bottom: -170px;
}


/* RESPONSIVE */

@media (max-width: 1000px) {
    .academics-hero-grid {
        gap: 35px;
    }

    .academics-intro-grid,
    .learning-approach-grid {
        gap: 45px;
    }

    .academic-tab {
        gap: 8px;
        padding: 15px 10px;
        font-size: .88rem;
    }

    .academic-panel {
        grid-template-columns: 35px 1fr;
    }

    .academic-panel-aside {
        grid-column: 2;
    }

    .subject-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .approach-visual {
        transform: scale(.9);
    }

    .academics-cta {
        padding: 45px;
    }
}

@media (max-width: 700px) {
    .academics-hero-grid,
    .academics-intro-grid,
    .learning-approach-grid {
        grid-template-columns: 1fr;
    }

    .academics-hero-grid {
        gap: 25px;
    }

    .academics-hero .inner-hero-content h1 {
        font-size: clamp(2.45rem, 10vw, 3.5rem);
        letter-spacing: -1.5px;
    }

    .academics-hero-visual {
        margin: 10px 0 15px;
        padding: 22px 12px 28px;
    }

    .floating-card-top {
        right: -3px;
    }

    .floating-card-bottom {
        left: -4px;
    }

    .academic-visual-main {
        padding: 25px 18px 20px;
        border-radius: 23px;
    }

    .academics-section-heading {
        display: block;
    }

    .academic-tabs {
        grid-template-columns: repeat(2, 1fr);
    }

    .academic-tab {
        font-size: .82rem;
    }

    .academic-tab-content {
        padding: 22px 17px;
    }

    .academic-panel {
        grid-template-columns: 30px 1fr;
        gap: 12px;
    }

    .academic-panel-info h3 {
        font-size: 1.7rem;
    }

    .academic-panel-aside {
        padding: 23px;
    }

    .subject-grid,
    .development-grid {
        grid-template-columns: 1fr;
    }

    .subject-card {
        min-height: 235px;
    }

    .approach-visual {
        min-height: 350px;
        transform: scale(.85);
        margin: -15px 0;
    }

    .orbit-one {
        width: 310px;
        height: 310px;
    }

    .orbit-two {
        width: 225px;
        height: 225px;
    }

    .bubble-one { left: -2%; }
    .bubble-two { right: -3%; }
    .bubble-three { left: -2%; }

    .academics-cta {
        display: block;
        padding: 35px 25px;
        border-radius: 23px;
    }

    .academics-cta-mark {
        display: none;
    }

    .academics-cta h2 {
        font-size: 2.2rem;
    }

    .academics-cta .hero-actions {
        flex-wrap: wrap;
    }
}

@media (max-width: 420px) {
    .academic-tab {
        padding: 12px 9px;
        font-size: .76rem;
    }

    .academic-tab > span {
        width: 27px;
        height: 27px;
    }

    .floating-academic-card {
        padding: 10px;
        gap: 7px;
    }

    .floating-academic-card > span {
        width: 30px;
        height: 30px;
    }

    .floating-academic-card strong {
        font-size: .72rem;
    }

    .floating-academic-card small {
        font-size: .62rem;
    }

    .approach-visual {
        margin-left: -15px;
        margin-right: -15px;
        transform: scale(.76);
    }

    .academics-cta .btn-light,
    .academics-cta .btn-cta-outline {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .floating-academic-card {
        animation: none;
    }

    .academic-panel {
        animation: none;
    }

    .learning-step,
    .subject-card,
    .development-card {
        transition: none;
    }
}




/* ==========================================
   ADMISSIONS PAGE
========================================== */

.admission-hero {
    position: relative;
    overflow: hidden;
    padding: 75px 0 85px;
    background:
        radial-gradient(ellipse at 90% 20%, rgba(242,140,69,.12), transparent 35%),
        linear-gradient(135deg, #f8f9ff 0%, #ffffff 55%, #f5f4ff 100%);
}

.admission-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: 65px;
}

.admission-hero-content h1 {
    max-width: 650px;
    margin: 18px 0 22px;
    color: var(--indigo-dark);
    font-size: clamp(2.8rem, 5vw, 4.7rem);
    line-height: 1.07;
    letter-spacing: -2.5px;
}

.admission-highlight {
    display: block;
    color: var(--orange-dark);
}

.admission-hero-content > p {
    max-width: 560px;
    color: var(--muted);
    font-size: 1.02rem;
    line-height: 1.9;
}

.admission-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 17px;
    margin-top: 30px;
}

.admission-text-link {
    color: var(--indigo);
    font-size: .88rem;
    font-weight: 700;
    text-decoration: none;
}

.admission-text-link:hover {
    color: var(--orange-dark);
}

.admission-hero-trust {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 32px;
    color: var(--muted);
    font-size: .82rem;
}

.trust-check {
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #e4f5e9;
    color: #25844a;
    font-weight: 900;
}

.admission-hero-art {
    position: relative;
    min-height: 440px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 28px;
    border-radius: 28px;
    background: linear-gradient(145deg, #292e75, #464ba1);
    box-shadow: 0 25px 65px rgba(37,41,95,.19);
    color: white;
}

.admission-art-top,
.admission-art-bottom {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.art-overline {
    color: #d9dcff;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: 2px;
}

.art-star {
    color: #ffbd86;
    font-size: 28px;
}

.admission-art-circle {
    position: absolute;
    width: 310px;
    height: 310px;
    top: 50%;
    left: 50%;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.admission-art-circle::before,
.admission-art-circle::after {
    position: absolute;
    content: "";
    border: 1px dashed rgba(255,255,255,.22);
    border-radius: 50%;
}

.admission-art-circle::before {
    inset: 23px;
}

.admission-art-circle::after {
    inset: 47px;
}

.admission-art-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: var(--orange);
    color: white;
    text-align: center;
    box-shadow: 0 15px 40px rgba(0,0,0,.12);
}

.art-book {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 10px;
    border-radius: 12px;
    background: rgba(255,255,255,.2);
    font-size: 25px;
}

.admission-art-inner strong {
    font-size: 1.2rem;
    line-height: 1.3;
}

.admission-art-inner small {
    margin-top: 12px;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: 2px;
}

.admission-art-note {
    position: absolute;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 15px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 15px;
    background: rgba(255,255,255,.97);
    color: var(--indigo-dark);
    box-shadow: 0 12px 30px rgba(0,0,0,.12);
}

.art-note-one {
    top: 110px;
    left: 15px;
}

.art-note-two {
    right: 13px;
    bottom: 91px;
}

.art-note-icon {
    display: grid;
    place-items: center;
    width: 37px;
    height: 37px;
    border-radius: 11px;
    background: #fff0e5;
    color: var(--orange-dark);
    font-size: .76rem;
    font-weight: 900;
}

.admission-art-note strong,
.admission-art-note small {
    display: block;
}

.admission-art-note strong {
    margin-bottom: 4px;
    font-size: .78rem;
}

.admission-art-note small {
    color: var(--muted);
    font-size: .67rem;
}

.admission-art-bottom {
    justify-content: center;
    gap: 12px;
    color: #d9dcff;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.admission-art-bottom i {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--orange);
}


/* WELCOME */

.admission-welcome-grid {
    display: grid;
    grid-template-columns: .65fr 1.35fr;
    gap: 90px;
}

.admission-welcome-label {
    padding-top: 8px;
}

.welcome-big-number {
    display: block;
    margin-top: 32px;
    color: var(--indigo-dark);
    font-size: 5rem;
    font-weight: 800;
    letter-spacing: -4px;
}

.welcome-big-number span {
    color: #b4b7d6;
    font-size: 1.3rem;
    letter-spacing: 0;
}

.welcome-number-line {
    width: 75px;
    height: 4px;
    margin: 14px 0;
    border-radius: 10px;
    background: var(--orange);
}

.admission-welcome-label > p {
    max-width: 230px;
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.8;
}

.admission-welcome-copy h2 {
    margin: 0 0 22px;
    color: var(--indigo-dark);
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.2;
    letter-spacing: -1.5px;
}

.admission-welcome-copy > p {
    color: var(--muted);
    line-height: 1.9;
}

.admission-inline-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    color: var(--indigo);
    font-weight: 800;
    text-decoration: none;
}

.admission-inline-link span {
    color: var(--orange-dark);
    transition: transform .2s ease;
}

.admission-inline-link:hover span {
    transform: translate(4px, -4px);
}


/* TIMELINE */

.admission-heading {
    max-width: 760px;
    margin-bottom: 50px;
}

.admission-heading h2 {
    margin: 15px 0;
    color: var(--indigo-dark);
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.2;
    letter-spacing: -1.5px;
}

.admission-heading > p {
    color: var(--muted);
    line-height: 1.9;
}

.admission-timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
}

.admission-timeline::before {
    position: absolute;
    content: "";
    top: 0;
    bottom: 0;
    left: 50%;
    border-left: 1px dashed #cfd1e9;
}

.admission-step {
    position: relative;
    display: flex;
    gap: 18px;
    align-items: flex-start;
}

.timeline-marker {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 49px;
    height: 49px;
    flex-shrink: 0;
    border: 5px solid var(--cloud-white);
    border-radius: 50%;
    background: var(--indigo-dark);
    color: white;
    font-size: .68rem;
    font-weight: 800;
    box-shadow: 0 0 0 1px #dfe1f3;
}

.admission-step:nth-child(2) .timeline-marker,
.admission-step:nth-child(3) .timeline-marker {
    background: var(--orange);
}

.timeline-card {
    flex: 1;
    min-width: 0;
    padding: 27px;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: white;
    transition: transform .3s ease, box-shadow .3s ease;
}

.timeline-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.timeline-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.timeline-kicker {
    color: var(--orange-dark);
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: 1.2px;
}

.timeline-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 13px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: 20px;
}

.timeline-card h3 {
    margin: 22px 0 10px;
    color: var(--indigo-dark);
    font-size: 1.25rem;
}

.timeline-card > p {
    min-height: 80px;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.85;
}

.timeline-card .text-link {
    margin-top: 10px;
    font-size: .84rem;
}


/* DOCUMENT CHECKLIST */

.admission-documents-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 75px;
    align-items: center;
}

.documents-content h2 {
    margin: 16px 0 20px;
    color: var(--indigo-dark);
    font-size: clamp(2rem, 4vw, 3.15rem);
    line-height: 1.2;
    letter-spacing: -1.4px;
}

.documents-content > p {
    color: var(--muted);
    line-height: 1.9;
}

.document-note {
    display: flex;
    gap: 13px;
    margin: 25px 0;
    padding: 17px;
    border: 1px solid #f5d8c3;
    border-radius: 14px;
    background: #fff7f0;
}

.document-note-icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #ffe2cb;
    color: var(--orange-dark);
    font-weight: 900;
}

.document-note strong {
    color: var(--indigo-dark);
    font-size: .85rem;
}

.document-note p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.7;
}

.documents-checklist {
    padding: 30px;
    border: 1px solid var(--border);
    border-radius: 24px;
    background: white;
    box-shadow: var(--shadow);
}

.checklist-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.checklist-overline {
    color: var(--orange-dark);
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: 1.3px;
}

.checklist-header h3 {
    margin: 8px 0 0;
    color: var(--indigo-dark);
    font-size: 1.25rem;
}

.checklist-icon {
    display: grid;
    place-items: center;
    width: 47px;
    height: 47px;
    border-radius: 15px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: 23px;
}

.document-check {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 17px 0;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
}

.document-check input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.custom-check {
    display: grid;
    place-items: center;
    width: 23px;
    height: 23px;
    flex-shrink: 0;
    border: 1.5px solid #c7c9dc;
    border-radius: 7px;
    color: white;
    transition: .2s ease;
}

.document-check input:checked + .custom-check {
    border-color: var(--indigo);
    background: var(--indigo);
}

.document-check input:checked + .custom-check::after {
    content: "✓";
    font-size: 13px;
    font-weight: 900;
}

.document-check input:focus-visible + .custom-check {
    outline: 3px solid #c5c8ff;
    outline-offset: 3px;
}

.document-check-copy strong,
.document-check-copy small {
    display: block;
}

.document-check-copy strong {
    color: var(--indigo-dark);
    font-size: .86rem;
}

.document-check-copy small {
    margin-top: 5px;
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.6;
}

.document-check input:checked ~ .document-check-copy strong {
    color: #8b8ea5;
    text-decoration: line-through;
}

.checklist-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    color: var(--muted);
    font-size: .76rem;
}

.checklist-footer button {
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: white;
    color: var(--indigo);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.checklist-footer button:hover {
    border-color: var(--orange);
}


/* QUESTIONS GRID */

.admission-question-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.admission-question-card {
    padding: 27px;
    border: 1px solid var(--border);
    border-radius: 19px;
    background: white;
    transition: border-color .25s ease, transform .25s ease;
}

.admission-question-card:hover {
    border-color: #c9ccef;
    transform: translateY(-4px);
}

.admission-question-card > span {
    color: var(--orange-dark);
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: 1.2px;
}

.admission-question-card h3 {
    margin: 16px 0 10px;
    color: var(--indigo-dark);
    font-size: 1.2rem;
}

.admission-question-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.85;
}


/* FAQ */

.admission-faq-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    align-items: start;
    gap: 75px;
}

.admission-faq-intro h2 {
    margin: 15px 0;
    color: var(--indigo-dark);
    font-size: clamp(2rem, 4vw, 3.1rem);
    line-height: 1.2;
    letter-spacing: -1.3px;
}

.admission-faq-intro > p {
    margin-bottom: 25px;
    color: var(--muted);
    line-height: 1.9;
}

.admission-faq-list {
    border-top: 1px solid var(--border);
}

.admission-faq-item {
    border-bottom: 1px solid var(--border);
}

.admission-faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
    padding: 23px 0;
    border: 0;
    background: transparent;
    color: var(--indigo-dark);
    font: inherit;
    font-size: .95rem;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

.admission-faq-plus {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 10px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: 20px;
}

.admission-faq-item.open .admission-faq-plus {
    background: var(--orange);
    color: white;
}

.admission-faq-answer {
    padding: 0 45px 20px 0;
}

.admission-faq-answer p {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.85;
}

.admission-faq-answer[hidden] {
    display: none !important;
}


/* FINAL CTA */

.admission-final-section {
    padding: 20px 0 90px;
}

.admission-final-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    padding: 60px;
    border-radius: 28px;
    background: linear-gradient(125deg, #25295f, #444aa0);
    color: white;
}

.admission-final-copy {
    position: relative;
    z-index: 2;
    max-width: 680px;
}

.admission-final-copy h2 {
    margin: 17px 0;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.17;
    letter-spacing: -1.4px;
}

.admission-final-copy > p {
    color: #d9dcff;
    line-height: 1.85;
}

.admission-final-decoration {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 180px;
    height: 180px;
    flex-shrink: 0;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 50%;
}

.admission-final-decoration > span {
    color: #ffbd86;
    font-family: Georgia, serif;
    font-size: 7rem;
}

.admission-final-decoration i {
    position: absolute;
    inset: 14px;
    border: 1px dashed rgba(255,255,255,.22);
    border-radius: 50%;
}

.admission-final-decoration i:nth-of-type(2) {
    inset: -15px;
}

.admission-final-decoration i:nth-of-type(3) {
    inset: -30px;
    opacity: .5;
}


/* RESPONSIVE */

@media (max-width: 1000px) {
    .admission-hero-grid {
        gap: 35px;
    }

    .admission-documents-grid,
    .admission-faq-grid {
        gap: 40px;
    }

    .admission-final-card {
        padding: 42px;
    }
}

@media (max-width: 760px) {
    .admission-hero {
        padding: 55px 0;
    }

    .admission-hero-grid,
    .admission-welcome-grid,
    .admission-documents-grid,
    .admission-faq-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .admission-hero-content h1 {
        font-size: clamp(2.5rem, 10vw, 3.7rem);
        letter-spacing: -1.6px;
    }

    .admission-hero-art {
        min-height: 400px;
    }

    .admission-welcome-grid {
        gap: 20px;
    }

    .welcome-big-number {
        margin-top: 18px;
        font-size: 3.7rem;
    }

    .admission-timeline {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .admission-timeline::before {
        left: 24px;
    }

    .timeline-card {
        padding: 22px;
    }

    .timeline-card > p {
        min-height: 0;
    }

    .admission-question-grid {
        grid-template-columns: 1fr;
    }

    .admission-final-card {
        padding: 35px 25px;
    }

    .admission-final-decoration {
        display: none;
    }
}

@media (max-width: 440px) {
    .admission-hero-art {
        min-height: 365px;
        padding: 20px;
    }

    .admission-art-circle {
        width: 260px;
        height: 260px;
    }

    .admission-art-inner {
        width: 160px;
        height: 160px;
    }

    .admission-art-inner strong {
        font-size: 1.05rem;
    }

    .art-note-one {
        left: 8px;
        top: 88px;
    }

    .art-note-two {
        right: 7px;
        bottom: 70px;
    }

    .admission-art-note {
        padding: 9px;
        gap: 7px;
    }

    .art-note-icon {
        width: 30px;
        height: 30px;
    }

    .admission-art-note strong {
        font-size: .68rem;
    }

    .admission-art-note small {
        font-size: .58rem;
    }

    .admission-hero-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .documents-checklist {
        padding: 20px 16px;
    }

    .checklist-header h3 {
        font-size: 1.05rem;
    }

    .admission-final-card {
        padding: 30px 20px;
    }

    .admission-final-copy h2 {
        font-size: 2.1rem;
    }

    .admission-final-card .admission-hero-actions {
        align-items: stretch;
    }

    .admission-final-card .btn-light,
    .admission-final-card .btn-cta-outline {
        width: 100%;
        justify-content: center;
    }
}



/* ==========================================
   CAMPUS PAGE
========================================== */

.campus-hero {
    position: relative;
    overflow: hidden;
    padding: 75px 0 85px;
    background:
        radial-gradient(circle at 85% 25%, rgba(242,140,69,.13), transparent 28%),
        linear-gradient(130deg, #f8f9ff, #fff 55%, #f2f1ff);
}

.campus-hero-grid {
    display: grid;
    grid-template-columns: 1fr .95fr;
    align-items: center;
    gap: 65px;
}

.campus-hero-content h1 {
    margin: 20px 0;
    color: var(--indigo-dark);
    font-size: clamp(2.8rem, 5vw, 4.6rem);
    line-height: 1.08;
    letter-spacing: -2.4px;
}

.campus-orange-text {
    display: block;
    color: var(--orange-dark);
}

.campus-hero-content > p {
    max-width: 560px;
    color: var(--muted);
    line-height: 1.9;
}

.campus-hero-actions,
.campus-visit-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
    margin-top: 30px;
}

.campus-secondary-link {
    color: var(--indigo);
    font-size: .85rem;
    font-weight: 800;
    text-decoration: none;
}

.campus-secondary-link:hover {
    color: var(--orange-dark);
}

.campus-mini-points {
    display: flex;
    flex-wrap: wrap;
    gap: 17px;
    margin-top: 30px;
}

.campus-mini-points span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--muted);
    font-size: .76rem;
}

.campus-mini-points i {
    display: grid;
    place-items: center;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #e3f4e8;
    color: #238448;
    font-size: .65rem;
    font-style: normal;
    font-weight: 900;
}

.campus-hero-visual {
    position: relative;
    padding: 22px 12px 25px 25px;
}

.campus-visual-backdrop {
    position: absolute;
    inset: 0 0 10px 35px;
    border-radius: 30px;
    background: #e8e9ff;
    transform: rotate(4deg);
}

.campus-visual-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(37,41,95,.08);
    border-radius: 24px;
    background: white;
    box-shadow: 0 25px 60px rgba(37,41,95,.14);
}

.campus-illustration {
    position: relative;
    min-height: 310px;
    overflow: hidden;
    background: linear-gradient(160deg, #fff0e4, #f6e8ff);
}

.classroom-window {
    position: absolute;
    top: 30px;
    left: 27px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    width: 100px;
    height: 95px;
    padding: 7px;
    border: 5px solid white;
    border-radius: 8px;
    background: white;
}

.classroom-window span {
    border-radius: 3px;
    background: #c9e7f6;
}

.classroom-board {
    position: absolute;
    top: 40px;
    right: 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 45%;
    height: 120px;
    padding: 20px;
    border: 7px solid #c58a59;
    border-radius: 8px;
    background: #343a6d;
    color: white;
}

.classroom-board > span {
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: 2px;
}

.classroom-board > i {
    position: absolute;
    top: 12px;
    right: 13px;
    color: #ffb56f;
    font-size: 19px;
    font-style: normal;
}

.classroom-board > small {
    margin-top: 9px;
    color: #e0e1ff;
    font-size: .56rem;
    letter-spacing: 1px;
}

.classroom-desk {
    position: absolute;
    z-index: 2;
    width: 100px;
    height: 40px;
    border: 4px solid #b9794d;
    border-radius: 7px;
    background: #e7ad77;
    box-shadow: 0 13px 0 -5px #b9794d;
}

.desk-one { bottom: 65px; left: 12%; }
.desk-two { bottom: 92px; left: 40%; }
.desk-three { bottom: 58px; right: 8%; }

.classroom-floor {
    position: absolute;
    right: -10%;
    bottom: -65px;
    left: -10%;
    height: 110px;
    background: #d9b9a0;
    transform: rotate(-5deg);
}

.campus-visual-caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 21px 23px;
}

.campus-visual-caption > div > span,
.campus-visual-caption strong {
    display: block;
}

.campus-visual-caption > div > span {
    margin-bottom: 8px;
    color: var(--orange-dark);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: 1.3px;
}

.campus-visual-caption strong {
    color: var(--indigo-dark);
    font-size: 1.05rem;
}

.caption-arrow {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    flex-shrink: 0;
    border-radius: 13px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: 21px;
}

.campus-floating-label {
    position: absolute;
    right: -10px;
    bottom: 70px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: white;
    box-shadow: var(--shadow);
    animation: campusFloat 4s ease-in-out infinite;
}

.campus-floating-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #fff0e5;
    color: var(--orange-dark);
    font-size: 23px;
}

.campus-floating-label strong,
.campus-floating-label small {
    display: block;
}

.campus-floating-label strong {
    margin-bottom: 5px;
    color: var(--indigo-dark);
    font-size: .78rem;
}

.campus-floating-label small {
    color: var(--muted);
    font-size: .68rem;
}

.campus-visual-index {
    position: absolute;
    top: 0;
    left: 25px;
    color: #8c90b8;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: 2px;
}

@keyframes campusFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-7px); }
}


/* INTRO */

.campus-intro-grid {
    display: grid;
    grid-template-columns: 1fr .85fr;
    gap: 85px;
}

.campus-intro-left h2 {
    margin: 17px 0 0;
    color: var(--indigo-dark);
    font-size: clamp(2rem, 4vw, 3.15rem);
    line-height: 1.2;
    letter-spacing: -1.4px;
}

.campus-intro-right > p {
    margin-top: 0;
    color: var(--muted);
    line-height: 1.9;
}

.campus-inline-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    color: var(--indigo);
    font-weight: 800;
    text-decoration: none;
}

.campus-inline-link span {
    color: var(--orange-dark);
    transition: transform .2s ease;
}

.campus-inline-link:hover span {
    transform: translate(4px, -4px);
}


/* GALLERY HEADING & FILTERS */

.campus-gallery-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 35px;
    margin-bottom: 35px;
}

.campus-gallery-heading h2,
.campus-principles-heading h2 {
    margin: 15px 0 0;
    color: var(--indigo-dark);
    font-size: clamp(2rem, 4vw, 3.1rem);
    line-height: 1.2;
    letter-spacing: -1.4px;
}

.campus-gallery-heading > p {
    max-width: 370px;
    color: var(--muted);
    line-height: 1.85;
}

.campus-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 30px;
}

.campus-filter {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 15px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: white;
    color: var(--indigo-dark);
    font: inherit;
    font-size: .8rem;
    font-weight: 800;
    cursor: pointer;
    transition: .25s ease;
}

.campus-filter > span {
    display: grid;
    place-items: center;
    min-width: 23px;
    height: 23px;
    padding: 0 5px;
    border-radius: 7px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: .67rem;
}

.campus-filter:hover {
    border-color: var(--orange);
}

.campus-filter.active {
    border-color: var(--indigo-dark);
    background: var(--indigo-dark);
    color: white;
}

.campus-filter.active > span {
    background: var(--orange);
    color: white;
}


/* GALLERY GRID */

.campus-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.campus-gallery-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: white;
    transition: transform .3s ease, box-shadow .3s ease;
}

.campus-gallery-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.campus-gallery-card.is-filtered-out {
    display: none;
}

.campus-scene {
    position: relative;
    min-height: 260px;
    overflow: hidden;
}

.campus-gallery-large .campus-scene {
    min-height: 300px;
}

.campus-card-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 22px;
}

.campus-card-category {
    color: var(--orange-dark);
    font-size: .64rem;
    font-weight: 900;
    letter-spacing: 1.2px;
}

.campus-card-info h3 {
    margin: 9px 0;
    color: var(--indigo-dark);
    font-size: 1.15rem;
}

.campus-card-info p {
    margin: 0;
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.75;
}

.campus-view-button {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    flex-shrink: 0;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: white;
    color: var(--indigo);
    font-size: 20px;
    cursor: pointer;
    transition: .25s ease;
}

.campus-view-button:hover {
    border-color: var(--indigo);
    background: var(--indigo);
    color: white;
    transform: rotate(45deg);
}

.campus-gallery-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 35px;
    padding: 25px 0 0;
    border-top: 1px solid var(--border);
}

.campus-gallery-footer p {
    color: var(--muted);
    line-height: 1.7;
}


/* SCENE 1: CLASSROOM */

.scene-classroom {
    background: linear-gradient(145deg, #f9dfc8, #e7e5ff);
}

.scene-sun {
    position: absolute;
    top: 25px;
    right: 35px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #ffc47d;
}

.scene-window {
    position: absolute;
    top: 25px;
    left: 25px;
    display: flex;
    gap: 7px;
    width: 95px;
    height: 105px;
    padding: 7px;
    border: 5px solid white;
    border-radius: 7px;
    background: #d0e9f6;
}

.scene-window span {
    flex: 1;
    background: #add7ee;
    border-radius: 3px;
}

.scene-board {
    position: absolute;
    top: 35px;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 45%;
    height: 115px;
    border: 7px solid #c38b60;
    border-radius: 7px;
    background: #343a70;
    color: white;
    transform: translateX(-30%);
}

.scene-board > span {
    font-size: 1.3rem;
    font-weight: 900;
    letter-spacing: 2px;
}

.scene-board > small {
    margin-top: 8px;
    color: #e1e2ff;
    font-size: .52rem;
    letter-spacing: 1px;
}

.scene-book {
    position: absolute;
    z-index: 2;
    bottom: 48px;
    width: 100px;
    height: 32px;
    border: 3px solid #a86e4d;
    border-radius: 5px;
    background: #f6ad68;
}

.scene-book-one { left: 12%; transform: rotate(-5deg); }
.scene-book-two { right: 10%; background: #a5a6ef; border-color: #7375b5; transform: rotate(5deg); }

.scene-table {
    position: absolute;
    right: -5%;
    bottom: 0;
    left: -5%;
    height: 43px;
    background: #c58d69;
    transform: rotate(-2deg);
}

.scene-plant {
    position: absolute;
    right: 12px;
    bottom: 42px;
    color: #557b65;
    font-size: 30px;
}


/* SCENE 2: LIBRARY */

.scene-library {
    background: linear-gradient(135deg, #e9e5ff, #fce9d9);
}

.library-shelf {
    position: absolute;
    left: 10%;
    display: flex;
    align-items: end;
    gap: 5px;
    width: 80%;
    height: 76px;
    padding: 9px;
    border: 7px solid #b77f5a;
    border-top-width: 5px;
    border-radius: 7px;
    background: #f4c69e;
}

.shelf-one { top: 35px; }
.shelf-two { top: 130px; }

.library-shelf i {
    flex: 1;
    height: 75%;
    border-radius: 3px 3px 0 0;
    background: #5f68a8;
}

.library-shelf i:nth-child(2n) { height: 95%; background: #f08f58; }
.library-shelf i:nth-child(3n) { height: 60%; background: #6eaa96; }

.library-chair {
    position: absolute;
    right: 18%;
    bottom: 0;
    width: 75px;
    height: 75px;
    border-radius: 17px 17px 0 0;
    background: #686bb1;
}

.library-lamp {
    position: absolute;
    bottom: 80px;
    left: 20%;
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    border-radius: 50%;
    background: #fff5d7;
    color: #d78b43;
    font-size: 23px;
}

.library-book-stack {
    position: absolute;
    right: 10%;
    bottom: 15px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.library-book-stack i {
    width: 65px;
    height: 11px;
    border-radius: 3px;
    background: #f4a56b;
}

.library-book-stack i:nth-child(2) { width: 53px; background: #7277b9; }
.library-book-stack i:nth-child(3) { width: 72px; background: #7eaf9c; }


/* SCENE 3: ART */

.scene-art {
    background: linear-gradient(145deg, #ffead7, #e9e7ff);
}

.art-paper {
    position: absolute;
    display: grid;
    place-items: center;
    width: 120px;
    height: 145px;
    border: 7px solid white;
    border-radius: 9px;
    box-shadow: 0 12px 25px rgba(37,41,95,.1);
    font-size: 48px;
}

.paper-one {
    top: 35px;
    left: 20%;
    color: #f08d4b;
    background: #ffe1b9;
    transform: rotate(-10deg);
}

.paper-two {
    right: 18%;
    bottom: 28px;
    color: #565da5;
    background: #d8dcff;
    transform: rotate(9deg);
}

.art-pencil {
    position: absolute;
    z-index: 2;
    width: 14px;
    height: 100px;
    border-radius: 5px;
    background: #f08d4b;
}

.pencil-one {
    right: 20%;
    top: 30px;
    transform: rotate(30deg);
}

.pencil-two {
    left: 18%;
    bottom: 15px;
    background: #636ab1;
    transform: rotate(-25deg);
}

.art-palette {
    position: absolute;
    bottom: 15px;
    left: 42%;
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    border: 5px solid white;
    border-radius: 50%;
    background: #f7d0a9;
    color: #7a81be;
    font-size: 24px;
}

.art-spark {
    position: absolute;
    color: #e58b46;
    font-size: 30px;
}

.art-spark-one { top: 22px; right: 13%; }
.art-spark-two { bottom: 35px; left: 10%; }


/* SCENE 4: SPORTS */

.scene-sports {
    background: linear-gradient(165deg, #e5e9ff 0%, #e5f4e8 68%);
}

.sports-sun {
    position: absolute;
    top: 25px;
    right: 35px;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: #ffc16d;
}

.sports-field-line {
    position: absolute;
    right: -5%;
    bottom: -50px;
    left: -5%;
    height: 150px;
    border: 3px solid rgba(65,132,98,.35);
    border-radius: 50%;
    background: #b7d9ae;
}

.sports-cone {
    position: absolute;
    z-index: 2;
    bottom: 60px;
    width: 0;
    height: 0;
    border-right: 18px solid transparent;
    border-bottom: 48px solid #ed9255;
    border-left: 18px solid transparent;
}

.cone-one { left: 17%; }
.cone-two { right: 17%; bottom: 83px; }

.sports-ball {
    position: absolute;
    z-index: 3;
    top: 85px;
    left: 43%;
    display: grid;
    place-items: center;
    width: 55px;
    height: 55px;
    border: 3px solid white;
    border-radius: 50%;
    background: #fff7df;
    box-shadow: 0 9px 18px rgba(37,41,95,.12);
}

.sports-ball span {
    width: 18px;
    height: 18px;
    border: 2px solid #5d63a7;
    border-radius: 50%;
}

.sports-person {
    position: absolute;
    z-index: 2;
    bottom: 83px;
    width: 25px;
    height: 65px;
    border-radius: 15px;
    background: #646bb0;
}

.sports-person i {
    position: absolute;
    top: -24px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #f0b184;
}

.sports-person b {
    position: absolute;
    bottom: -15px;
    left: 3px;
    width: 8px;
    height: 27px;
    border-radius: 8px;
    background: #343a70;
    box-shadow: 12px 0 #343a70;
}

.person-one { left: 32%; transform: rotate(-13deg); }
.person-two { right: 30%; background: #ee985c; transform: rotate(12deg); }

.sports-caption {
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: 18px;
    left: 0;
    color: #355e49;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: 2px;
    text-align: center;
}


/* SCENE 5: TEAMWORK */

.scene-team {
    background: linear-gradient(145deg, #e9e8ff, #ffead7);
}

.team-circle {
    position: absolute;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    opacity: .55;
}

.team-circle-one {
    top: -40px;
    left: -20px;
    background: #c2c6ff;
}

.team-circle-two {
    right: -20px;
    bottom: -45px;
    background: #ffd2a7;
}

.team-table {
    position: absolute;
    z-index: 2;
    right: 12%;
    bottom: 47px;
    left: 12%;
    height: 32px;
    border-radius: 10px;
    background: #c48a60;
    box-shadow: 0 38px 0 -12px #ad7957;
}

.team-person {
    position: absolute;
    z-index: 3;
    bottom: 80px;
    width: 55px;
    height: 90px;
    border-radius: 28px 28px 12px 12px;
    background: #6269b0;
}

.team-person i {
    position: absolute;
    top: -32px;
    left: 9px;
    width: 37px;
    height: 37px;
    border-radius: 50%;
    background: #f0b184;
}

.team-person b {
    position: absolute;
    bottom: 4px;
    right: -12px;
    width: 35px;
    height: 10px;
    border-radius: 10px;
    background: #f0b184;
    transform: rotate(-30deg);
}

.team-person-one { left: 20%; transform: rotate(7deg); }
.team-person-two { left: 44%; background: #ef995f; }
.team-person-three { right: 17%; background: #73a994; transform: rotate(-7deg); }

.team-note {
    position: absolute;
    z-index: 4;
    top: 25px;
    left: 50%;
    padding: 10px 15px;
    border-radius: 9px;
    background: white;
    color: var(--indigo);
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: 1.2px;
    transform: translateX(-50%);
}


/* SCENE 6: COMMUNITY */

.scene-community {
    background: linear-gradient(180deg, #e9e8ff 0%, #e7f2e6 100%);
}

.community-sun {
    position: absolute;
    top: 20px;
    right: 35px;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #ffc06e;
    color: white;
    font-size: 25px;
}

.community-building {
    position: absolute;
    z-index: 2;
    top: 70px;
    left: 50%;
    width: 55%;
    transform: translateX(-50%);
}

.building-roof {
    width: 0;
    height: 0;
    margin: 0 auto;
    border-right: 95px solid transparent;
    border-bottom: 60px solid #ef9b62;
    border-left: 95px solid transparent;
}

.building-body {
    position: relative;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    height: 120px;
    padding: 12px;
    border: 7px solid white;
    border-radius: 6px;
    background: #777dc0;
}

.building-body span {
    width: 22px;
    height: 39px;
    border: 3px solid white;
    border-radius: 4px;
    background: #c7e7f4;
}

.building-body i {
    position: absolute;
    bottom: 0;
    width: 30px;
    height: 53px;
    border: 3px solid white;
    border-bottom: 0;
    border-radius: 20px 20px 0 0;
    background: #efb080;
}

.building-body i:nth-of-type(1) { left: 35%; }
.building-body i:nth-of-type(2) { right: 35%; }

.community-tree {
    position: absolute;
    z-index: 3;
    bottom: 48px;
    width: 20px;
    height: 70px;
    border-radius: 7px;
    background: #a87a56;
}

.community-tree i {
    position: absolute;
    top: -35px;
    left: -21px;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: #79ae8a;
}

.tree-one { left: 12%; }
.tree-two { right: 12%; }

.community-ground {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 43px;
    background: #b6d5a7;
}

.community-banner {
    position: absolute;
    z-index: 4;
    top: 30px;
    left: 20px;
    padding: 9px 13px;
    border-radius: 8px;
    background: white;
    color: var(--indigo);
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: 1.5px;
}


/* GALLERY FOOTER */

.campus-gallery-footer p {
    margin: 0;
}


/* CAMPUS PRINCIPLES */

.campus-principles-heading {
    max-width: 750px;
    margin-bottom: 38px;
}

.campus-principles-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.campus-principle {
    position: relative;
    padding: 25px 22px;
    border: 1px solid var(--border);
    border-radius: 19px;
    background: white;
    transition: transform .3s ease, box-shadow .3s ease;
}

.campus-principle:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.principle-number {
    position: absolute;
    top: 20px;
    right: 20px;
    color: #a7aac4;
    font-size: .7rem;
    font-weight: 900;
}

.principle-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 23px;
    border-radius: 14px;
    background: var(--indigo-light);
    color: var(--indigo);
    font-size: 24px;
}

.campus-principle h3 {
    margin: 0 0 10px;
    color: var(--indigo-dark);
    font-size: 1rem;
}

.campus-principle p {
    margin: 0;
    color: var(--muted);
    font-size: .83rem;
    line-height: 1.8;
}


/* VISIT CTA */

.campus-visit-section {
    padding-top: 15px;
}

.campus-visit-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 60px;
    border-radius: 29px;
    background: linear-gradient(125deg, #25295f, #454ba0);
    color: white;
}

.campus-visit-content {
    position: relative;
    z-index: 2;
    max-width: 650px;
}

.eyebrow-light {
    color: #ffbd86;
    font-size: .73rem;
    font-weight: 900;
    letter-spacing: 1.5px;
}

.campus-visit-content h2 {
    margin: 18px 0;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.18;
    letter-spacing: -1.4px;
}

.campus-visit-content > p {
    color: #d9dcff;
    line-height: 1.85;
}

.campus-visit-art {
    position: relative;
    display: grid;
    place-items: center;
    width: 205px;
    height: 205px;
    flex-shrink: 0;
}

.visit-art-ring {
    position: absolute;
    border: 1px solid rgba(255,255,255,.23);
    border-radius: 50%;
}

.ring-one { inset: 0; }
.ring-two { inset: 20px; border-style: dashed; }

.visit-art-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.visit-art-center > span {
    color: #ffbd86;
    font-family: Georgia, serif;
    font-size: 6rem;
}

.visit-art-center small {
    max-width: 130px;
    color: #d9dcff;
    font-size: .54rem;
    font-weight: 900;
    letter-spacing: 1px;
    text-align: center;
}

.visit-art-star {
    position: absolute;
    color: #ffbd86;
    font-size: 25px;
}

.star-one { top: 0; right: 8px; }
.star-two { bottom: 10px; left: 0; }


/* MODAL */

.campus-modal {
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.campus-modal.is-open {
    display: flex;
}

.campus-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20,23,57,.72);
    backdrop-filter: blur(5px);
}

.campus-modal-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    width: min(800px, 100%);
    max-height: 90vh;
    overflow: auto;
    border-radius: 23px;
    background: white;
    box-shadow: 0 25px 90px rgba(0,0,0,.25);
    animation: campusModalIn .25s ease;
}

@keyframes campusModalIn {
    from { opacity: 0; transform: translateY(12px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.campus-modal-close {
    position: absolute;
    z-index: 3;
    top: 13px;
    right: 13px;
    display: grid;
    place-items: center;
    width: 39px;
    height: 39px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: white;
    color: var(--indigo-dark);
    font-size: 25px;
    cursor: pointer;
}

.campus-modal-art {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 290px;
    padding: 25px;
    background: linear-gradient(145deg, #e9e8ff, #ffead7);
}

.campus-modal-art > span {
    padding: 15px 20px;
    border: 1px solid rgba(37,41,95,.18);
    border-radius: 12px;
    background: rgba(255,255,255,.8);
    color: var(--indigo);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: 1.5px;
    text-align: center;
}

.campus-modal-copy {
    align-self: center;
    padding: 45px 35px;
}

.campus-modal-copy h2 {
    margin: 13px 0;
    color: var(--indigo-dark);
    font-size: 1.8rem;
}

.campus-modal-copy > p {
    margin-bottom: 23px;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.9;
}

body.campus-modal-open {
    overflow: hidden;
}


/* RESPONSIVE */

@media (max-width: 1000px) {
    .campus-hero-grid {
        gap: 35px;
    }

    .campus-intro-grid {
        gap: 45px;
    }

    .campus-principles-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .campus-visit-card {
        padding: 42px;
    }
}

@media (max-width: 760px) {
    .campus-hero {
        padding: 55px 0;
    }

    .campus-hero-grid,
    .campus-intro-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .campus-hero-content h1 {
        font-size: clamp(2.55rem, 10vw, 3.7rem);
        letter-spacing: -1.5px;
    }

    .campus-hero-visual {
        margin-top: 10px;
    }

    .campus-floating-label {
        right: -2px;
    }

    .campus-gallery-heading {
        display: block;
    }

    .campus-gallery-grid {
        gap: 17px;
    }

    .campus-gallery-card-info {
        padding: 17px;
    }

    .campus-gallery-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .campus-visit-card {
        padding: 35px 25px;
    }

    .campus-visit-art {
        display: none;
    }
}

@media (max-width: 520px) {
    .campus-gallery-grid {
        grid-template-columns: 1fr;
    }

    .campus-filter-bar {
        gap: 8px;
    }

    .campus-filter {
        padding: 9px 10px;
        font-size: .73rem;
    }

    .campus-scene,
    .campus-gallery-large .campus-scene {
        min-height: 250px;
    }

    .campus-card-info {
        padding: 18px;
    }

    .campus-principles-grid {
        grid-template-columns: 1fr;
    }

    .campus-visit-card {
        padding: 30px 20px;
    }

    .campus-visit-content h2 {
        font-size: 2.1rem;
    }

    .campus-visit-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .campus-visit-actions .btn {
        justify-content: center;
        width: 100%;
    }

    .campus-modal {
        padding: 14px;
    }

    .campus-modal-dialog {
        grid-template-columns: 1fr;
        max-height: 92vh;
    }

    .campus-modal-art {
        min-height: 190px;
    }

    .campus-modal-copy {
        padding: 27px 23px;
    }

    .campus-modal-copy h2 {
        font-size: 1.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .campus-floating-label {
        animation: none;
    }

    .campus-gallery-card,
    .campus-principle {
        transition: none;
    }
}



/* ==========================================
   EVENTS PAGE — ROYAL INTERNATIONAL SCHOOL
========================================== */

.events-page {
    overflow: hidden;
    background: var(--white, #fff);
    color: var(--text, #30334A);
}

.events-page .eyebrow {
    display: inline-block;
    color: var(--indigo, #343A8B);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    line-height: 1.7;
}

.events-hero {
    position: relative;
    overflow: hidden;
    padding: 80px max(6%, calc((100% - 1200px) / 2)) 0;
    background: #F2F3FF;
}

.events-hero::before {
    position: absolute;
    top: -240px;
    right: -150px;
    width: 650px;
    height: 650px;
    content: "";
    border: 1px solid rgba(52, 58, 139, .10);
    border-radius: 50%;
}

.events-hero::after {
    position: absolute;
    right: -60px;
    bottom: -260px;
    width: 550px;
    height: 550px;
    content: "";
    border: 1px solid rgba(242, 140, 69, .24);
    border-radius: 50%;
}

.events-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: 55px;
    max-width: 1200px;
    margin: auto;
    padding-bottom: 80px;
}

.events-hero-copy h1 {
    margin: 18px 0 22px;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: clamp(40px, 5vw, 67px);
    font-weight: 800;
    letter-spacing: -2.8px;
    line-height: 1.12;
}

.events-hero-copy h1 span,
.events-intro h2,
.events-section-heading h2 span,
.events-experience-copy h2 span,
.events-cta-box h2 span {
    color: #F28C45;
}

.events-hero-copy > p {
    max-width: 490px;
    margin: 0 0 29px;
    color: #666B85;
    font-size: 15px;
    line-height: 1.9;
}

.events-hero-btn,
.events-cta-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    min-height: 52px;
    padding: 0 23px;
    border: 0;
    border-radius: 9px;
    background: #343A8B;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}

.events-hero-btn:hover,
.events-cta-primary:hover {
    transform: translateY(-3px);
    background: #25295F;
    box-shadow: 0 12px 25px rgba(52, 58, 139, .2);
}

.events-hero-btn span,
.events-cta-primary span {
    font-size: 20px;
}

.events-hero-note {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 30px;
    color: #73788E;
    font-size: 12px;
    font-weight: 600;
}

.events-note-dot,
.events-live-label > span {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: #F28C45;
}

.events-hero-art {
    position: relative;
    display: grid;
    min-height: 390px;
    place-items: center;
}

.events-art-orbit {
    position: absolute;
    width: min(360px, 85%);
    aspect-ratio: 1;
    border: 1px dashed rgba(52, 58, 139, .27);
    border-radius: 50%;
    animation: eventOrbit 35s linear infinite;
}

.events-art-card {
    position: relative;
    z-index: 1;
    width: 255px;
    padding: 17px;
    border: 1px solid rgba(52, 58, 139, .12);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 30px 70px rgba(37, 41, 95, .15);
    transform: rotate(-4deg);
    transition: transform .35s ease;
}

.events-art-card:hover {
    transform: rotate(0) translateY(-5px);
}

.art-card-top {
    display: block;
    margin-bottom: 13px;
    color: #343A8B;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
    text-align: center;
}

.art-calendar {
    overflow: hidden;
    border-radius: 10px;
    background: #F2F3FF;
}

.art-calendar-head {
    padding: 12px;
    background: #343A8B;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    text-align: center;
}

.art-calendar-body {
    display: flex;
    min-height: 205px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.art-calendar-star {
    color: #F28C45;
    font-size: 42px;
}

.art-calendar-body strong {
    color: #25295F;
    font-size: 32px;
    letter-spacing: 4px;
}

.art-calendar-body small {
    color: #73788E;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1px;
}

.events-art-sun {
    position: absolute;
    top: 30px;
    right: 55px;
    color: #F28C45;
    font-size: 40px;
    animation: eventPulse 3s ease-in-out infinite;
}

.art-confetti {
    position: absolute;
    font-size: 27px;
}

.confetti-one {
    top: 25px;
    left: 18px;
    color: #F28C45;
}

.confetti-two {
    right: 15px;
    bottom: 28px;
    color: #7378D8;
    font-size: 32px;
}

.confetti-three {
    bottom: 25px;
    left: 22px;
    color: #76B8A1;
    font-size: 17px;
}

.events-floating-label {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 13px 16px;
    border: 1px solid #ECECF5;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(37, 41, 95, .09);
    color: #30334A;
    font-size: 12px;
    font-weight: 800;
}

.events-floating-label span {
    color: #F28C45;
    font-size: 18px;
}

.floating-label-one {
    top: 75px;
    left: 0;
    transform: rotate(-5deg);
}

.floating-label-two {
    right: 0;
    bottom: 70px;
    transform: rotate(4deg);
}

.events-hero-bottom {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 0;
    border-top: 1px solid rgba(52, 58, 139, .15);
    color: #73788E;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.events-intro {
    padding: 70px 6%;
    background: #fff;
}

.events-intro-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 65px;
    max-width: 1100px;
    margin: auto;
}

.events-intro h2 {
    margin: 13px 0 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: clamp(28px, 3.2vw, 43px);
    font-weight: 800;
    letter-spacing: -1.4px;
    line-height: 1.22;
}

.events-intro-inner > p {
    margin: 0;
    padding-left: 25px;
    border-left: 3px solid #F28C45;
    color: #73788E;
    font-size: 14px;
    line-height: 2;
}

.events-calendar {
    padding-top: 78px;
    padding-bottom: 90px;
    background: #F8F9FC;
}

.events-page .container {
    width: min(1200px, 88%);
    margin-right: auto;
    margin-left: auto;
}

.events-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 35px;
}

.events-section-heading h2 {
    margin: 10px 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: clamp(32px, 4vw, 46px);
    font-weight: 800;
    letter-spacing: -1.5px;
}

.events-section-heading p {
    margin: 0;
    color: #73788E;
    font-size: 14px;
}

.events-live-label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 15px;
    border: 1px solid #E5E7F0;
    border-radius: 8px;
    background: #fff;
    color: #343A8B;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    white-space: nowrap;
}

.events-live-label > span {
    background: #67B89A;
}

.events-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px;
    border: 1px solid #E5E7F0;
    border-radius: 12px;
    background: #fff;
}

.events-filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.event-filter {
    padding: 10px 13px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    color: #73788E;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    transition: all .2s ease;
}

.event-filter:hover {
    border-color: #DCDFF6;
    color: #343A8B;
}

.event-filter.active {
    background: #343A8B;
    color: #fff;
}

.events-month-control {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #73788E;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.events-month-control select {
    max-width: 150px;
    padding: 10px 30px 10px 11px;
    border: 1px solid #E5E7F0;
    border-radius: 7px;
    outline: none;
    background: #fff;
    color: #343A8B;
    font: inherit;
    cursor: pointer;
}

.events-month-control select:focus {
    border-color: #7378D8;
    box-shadow: 0 0 0 3px rgba(115, 120, 216, .12);
}

.events-results-line {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin: 22px 0 18px;
    color: #85899B;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
}

.events-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 24px;
}

.event-card {
    overflow: hidden;
    border: 1px solid #E8E9F1;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 7px 24px rgba(37, 41, 95, .035);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.event-card:hover {
    transform: translateY(-6px);
    border-color: #D8DAF4;
    box-shadow: 0 18px 38px rgba(37, 41, 95, .10);
}

.event-card[hidden] {
    display: none !important;
}

.event-card-visual {
    position: relative;
    display: flex;
    overflow: hidden;
    min-height: 225px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 24px;
    isolation: isolate;
}

.event-card-visual::before,
.event-card-visual::after {
    position: absolute;
    z-index: -1;
    content: "";
    border-radius: 50%;
}

.event-card-visual::before {
    top: -50px;
    right: -30px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(255, 255, 255, .35);
}

.event-card-visual::after {
    right: 25px;
    bottom: -100px;
    width: 200px;
    height: 200px;
    background: rgba(255, 255, 255, .10);
}

.event-visual-science {
    background: linear-gradient(140deg, #343A8B, #7779D8);
}

.event-visual-sports {
    background: linear-gradient(140deg, #E77B35, #F7B76C);
}

.event-visual-arts {
    background: linear-gradient(140deg, #A950A4, #E59FCB);
}

.event-visual-community {
    background: linear-gradient(140deg, #397D70, #8BC7A8);
}

.event-visual-reading {
    background: linear-gradient(140deg, #376DAB, #80B8E7);
}

.event-visual-house {
    background: linear-gradient(140deg, #A74650, #E58A87);
}

.event-category-tag {
    position: absolute;
    top: 19px;
    left: 20px;
    padding: 7px 9px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 5px;
    background: rgba(255, 255, 255, .15);
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.1px;
    backdrop-filter: blur(5px);
}

.event-visual-icon {
    position: absolute;
    top: 55px;
    right: 28px;
    color: #fff;
    font-size: 54px;
    filter: drop-shadow(0 8px 15px rgba(0, 0, 0, .10));
    transition: transform .3s ease;
}

.event-card:hover .event-visual-icon {
    transform: rotate(-9deg) scale(1.08);
}

.event-visual-word {
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.5px;
    line-height: 1.2;
}

.event-visual-number {
    position: absolute;
    right: 20px;
    bottom: 16px;
    color: rgba(255, 255, 255, .65);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1px;
}

.event-card-content {
    padding: 23px 22px 21px;
}

.event-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 16px;
    border-bottom: 1px solid #F0F0F6;
}

.event-date-mini {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #73788E;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
}

.event-date-mini strong {
    color: #343A8B;
    font-family: "Manrope", sans-serif;
    font-size: 24px;
    letter-spacing: -1px;
}

.event-card-type {
    color: #85899B;
    font-size: 10px;
    text-align: right;
}

.event-card-content h3 {
    margin: 18px 0 9px;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.5px;
    line-height: 1.4;
}

.event-card-content > p {
    min-height: 49px;
    margin: 0 0 18px;
    color: #73788E;
    font-size: 12px;
    line-height: 1.8;
}

.event-details-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 0 0;
    border: 0;
    border-top: 1px solid #F0F0F6;
    background: transparent;
    color: #343A8B;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
}

.event-details-btn span {
    font-size: 18px;
    transition: transform .2s ease;
}

.event-details-btn:hover span {
    transform: translate(3px, -3px);
}

.events-empty {
    padding: 55px 20px;
    border: 1px dashed #D9DBEE;
    border-radius: 14px;
    background: #fff;
    text-align: center;
}

.events-empty[hidden] {
    display: none !important;
}

.events-empty > span {
    color: #F28C45;
    font-size: 35px;
}

.events-empty h3 {
    margin: 12px 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
}

.events-empty p,
.events-disclaimer {
    color: #85899B;
    font-size: 12px;
    line-height: 1.8;
}

.events-reset-btn {
    margin-top: 10px;
    padding: 12px 18px;
    border: 0;
    border-radius: 7px;
    background: #343A8B;
    color: #fff;
    cursor: pointer;
    font-family: inherit;
    font-weight: 700;
}

.events-disclaimer {
    margin: 23px 0 0;
    font-size: 11px;
}

.events-experience {
    position: relative;
    overflow: hidden;
    padding: 80px 0;
    background: #25295F;
    color: #fff;
}

.events-experience::after {
    position: absolute;
    top: -190px;
    right: -80px;
    width: 400px;
    height: 400px;
    content: "";
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
}

.events-experience-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: .7fr 1.3fr 1fr;
    align-items: center;
    gap: 45px;
}

.events-experience-symbol {
    position: relative;
    display: grid;
    width: 170px;
    height: 170px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 50%;
}

.events-experience-symbol span:first-child {
    color: #F28C45;
    font-size: 70px;
}

.events-experience-symbol span:nth-child(2) {
    position: absolute;
    top: 10px;
    right: 23px;
    color: #fff;
    font-size: 25px;
}

.events-experience-symbol span:nth-child(3) {
    position: absolute;
    bottom: 20px;
    left: 15px;
    color: #A6AAFF;
    font-size: 31px;
}

.events-experience-copy .eyebrow {
    color: #F6B17E;
}

.events-experience-copy h2 {
    margin: 14px 0;
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: clamp(30px, 3.5vw, 43px);
    font-weight: 800;
    letter-spacing: -1.5px;
    line-height: 1.22;
}

.events-experience-copy > p {
    max-width: 390px;
    margin: 0;
    color: #C9CBE1;
    font-size: 13px;
    line-height: 1.9;
}

.events-experience-points {
    display: grid;
    gap: 0;
}

.events-experience-points > div {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.events-experience-points > div:last-child {
    border-bottom: 0;
}

.events-experience-points span {
    color: #F6B17E;
    font-size: 11px;
    font-weight: 800;
}

.events-experience-points p {
    margin: 0;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.events-cta {
    padding-top: 85px;
    padding-bottom: 85px;
    background: #fff;
}

.events-cta-box {
    position: relative;
    overflow: hidden;
    padding: 65px 25px;
    border: 1px solid #E5E7F0;
    border-radius: 17px;
    background: #F2F3FF;
    text-align: center;
}

.events-cta-decoration {
    position: absolute;
    top: -45px;
    right: 35px;
    color: rgba(52, 58, 139, .09);
    font-size: 180px;
    line-height: 1;
}

.events-cta-box h2 {
    position: relative;
    margin: 14px 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: clamp(32px, 4vw, 47px);
    font-weight: 800;
    letter-spacing: -1.7px;
    line-height: 1.2;
}

.events-cta-box > p {
    max-width: 540px;
    margin: 0 auto 25px;
    color: #73788E;
    font-size: 13px;
    line-height: 1.9;
}

.events-cta-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 22px;
}

.events-cta-secondary {
    color: #343A8B;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.events-cta-secondary:hover {
    color: #F28C45;
}

/* Event detail modal */

.event-modal {
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: grid;
    padding: 22px;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    transition: opacity .25s ease, visibility .25s ease;
}

.event-modal.is-open {
    visibility: visible;
    opacity: 1;
}

.event-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(19, 21, 54, .72);
    backdrop-filter: blur(5px);
}

.event-modal-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    overflow: auto;
    width: min(780px, 100%);
    max-height: 90vh;
    grid-template-columns: .75fr 1.25fr;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .2);
    transform: translateY(18px) scale(.98);
    transition: transform .25s ease;
}

.event-modal.is-open .event-modal-dialog {
    transform: translateY(0) scale(1);
}

.event-modal-close {
    position: absolute;
    z-index: 2;
    top: 12px;
    right: 12px;
    display: grid;
    width: 37px;
    height: 37px;
    place-items: center;
    border: 1px solid #E5E7F0;
    border-radius: 50%;
    background: #fff;
    color: #343A8B;
    cursor: pointer;
    font-size: 25px;
}

.event-modal-art {
    display: grid;
    min-height: 330px;
    place-items: center;
    background: linear-gradient(145deg, #343A8B, #8589E7);
}

.event-modal-art span {
    color: #fff;
    font-size: 90px;
}

.event-modal-art[data-color="orange"] {
    background: linear-gradient(145deg, #E77B35, #F7B76C);
}

.event-modal-art[data-color="pink"] {
    background: linear-gradient(145deg, #A950A4, #E59FCB);
}

.event-modal-art[data-color="green"] {
    background: linear-gradient(145deg, #397D70, #8BC7A8);
}

.event-modal-art[data-color="blue"] {
    background: linear-gradient(145deg, #376DAB, #80B8E7);
}

.event-modal-art[data-color="red"] {
    background: linear-gradient(145deg, #A74650, #E58A87);
}

.event-modal-content {
    padding: 42px 32px 30px;
}

.event-modal-content h2 {
    margin: 12px 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: 27px;
    font-weight: 800;
    line-height: 1.3;
}

.event-modal-content > p {
    color: #73788E;
    font-size: 13px;
    line-height: 1.9;
}

.event-modal-info {
    display: grid;
    gap: 0;
    margin: 22px 0;
    border-top: 1px solid #E5E7F0;
}

.event-modal-info > div {
    display: grid;
    gap: 5px;
    padding: 12px 0;
    border-bottom: 1px solid #E5E7F0;
}

.event-modal-info span {
    color: #85899B;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.3px;
}

.event-modal-info strong {
    color: #343A8B;
    font-size: 12px;
    line-height: 1.6;
}

.event-modal-contact {
    display: inline-flex;
    gap: 12px;
    padding: 14px 18px;
    border-radius: 7px;
    background: #343A8B;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.event-modal-contact:hover {
    background: #25295F;
}

body.event-modal-open {
    overflow: hidden;
}

@keyframes eventOrbit {
    to { transform: rotate(360deg); }
}

@keyframes eventPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15) rotate(12deg); }
}

/* Tablet */
@media (max-width: 1000px) {
    .events-hero {
        padding-top: 60px;
    }

    .events-hero-inner {
        gap: 25px;
    }

    .events-hero-art {
        min-height: 340px;
    }

    .events-art-card {
        width: 225px;
    }

    .art-calendar-body {
        min-height: 170px;
    }

    .events-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .events-experience-inner {
        grid-template-columns: .6fr 1.4fr;
        gap: 35px;
    }

    .events-experience-points {
        grid-column: 2;
    }

    .events-experience-symbol {
        grid-row: span 2;
        width: 140px;
        height: 140px;
    }

    .events-controls {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Mobile */
@media (max-width: 650px) {
    .events-hero {
        padding: 48px 6% 0;
    }

    .events-hero-inner {
        grid-template-columns: 1fr;
        gap: 10px;
        padding-bottom: 25px;
    }

    .events-hero-copy h1 {
        font-size: clamp(38px, 10vw, 53px);
        letter-spacing: -1.8px;
    }

    .events-hero-copy > p {
        font-size: 13px;
    }

    .events-hero-art {
        min-height: 315px;
        margin-top: 5px;
    }

    .events-art-card {
        width: 215px;
    }

    .art-calendar-body {
        min-height: 155px;
    }

    .floating-label-one {
        top: 42px;
        left: 0;
    }

    .floating-label-two {
        right: 0;
        bottom: 43px;
    }

    .events-hero-bottom {
        flex-direction: column;
        gap: 8px;
        font-size: 9px;
    }

    .events-intro {
        padding: 52px 6%;
    }

    .events-intro-inner {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .events-intro-inner > p {
        padding-left: 17px;
        font-size: 13px;
    }

    .events-calendar {
        padding-top: 55px;
        padding-bottom: 60px;
    }

    .events-page .container {
        width: 90%;
    }

    .events-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .events-section-heading h2 {
        font-size: 35px;
    }

    .events-controls {
        padding: 12px;
    }

    .events-filter-group {
        gap: 5px;
    }

    .event-filter {
        padding: 9px 10px;
        font-size: 11px;
    }

    .events-month-control {
        justify-content: space-between;
        width: 100%;
    }

    .events-month-control select {
        flex: 1;
        max-width: 220px;
    }

    .events-results-line {
        font-size: 9px;
    }

    .events-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .event-card-visual {
        min-height: 210px;
    }

    .event-card-content > p {
        min-height: 0;
    }

    .events-experience {
        padding: 60px 0;
    }

    .events-experience-inner {
        grid-template-columns: 1fr;
        gap: 27px;
    }

    .events-experience-symbol {
        width: 115px;
        height: 115px;
        grid-row: auto;
    }

    .events-experience-symbol span:first-child {
        font-size: 50px;
    }

    .events-experience-points {
        grid-column: auto;
    }

    .events-cta {
        padding-top: 55px;
        padding-bottom: 55px;
    }

    .events-cta-box {
        padding: 48px 18px;
    }

    .events-cta-box h2 {
        font-size: 34px;
        letter-spacing: -1px;
    }

    .events-cta-actions {
        flex-direction: column;
        gap: 18px;
    }

    .event-modal {
        padding: 12px;
    }

    .event-modal-dialog {
        grid-template-columns: 1fr;
        max-height: 92vh;
    }

    .event-modal-art {
        min-height: 130px;
    }

    .event-modal-art span {
        font-size: 54px;
    }

    .event-modal-content {
        padding: 25px 22px;
    }

    .event-modal-content h2 {
        padding-right: 15px;
        font-size: 23px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .events-page *,
    .events-page *::before,
    .events-page *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}



/* ==========================================
   CONTACT PAGE — ROYAL INTERNATIONAL SCHOOL
========================================== */

.contact-page {
    overflow: hidden;
    background: #fff;
    color: #30334A;
}

.contact-page .container {
    width: min(1200px, 88%);
    margin-inline: auto;
}

.contact-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #343A8B;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.7px;
    line-height: 1.8;
}

.contact-eyebrow-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #F28C45;
    box-shadow: 0 0 0 4px rgba(242,140,69,.15);
}

.contact-hero {
    position: relative;
    overflow: hidden;
    padding-top: 67px;
    background: #F1F2FF;
}

.contact-hero-pattern {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(52,58,139,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(52,58,139,.055) 1px, transparent 1px);
    background-size: 40px 40px;
    mask-image: linear-gradient(90deg, black, transparent);
    pointer-events: none;
}

.contact-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr .95fr;
    align-items: center;
    gap: 40px;
    padding-bottom: 65px;
}

.contact-hero-copy h1 {
    margin: 19px 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: clamp(42px, 5.2vw, 66px);
    font-weight: 800;
    letter-spacing: -2.8px;
    line-height: 1.1;
}

.contact-hero-copy h1 span {
    color: #F28C45;
}

.contact-hero-copy > p {
    max-width: 490px;
    margin: 0;
    color: #73788E;
    font-size: 13px;
    line-height: 2;
}

.contact-primary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-height: 49px;
    margin-top: 27px;
    padding: 0 19px;
    border-radius: 7px;
    background: #343A8B;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    transition: transform .25s, background .25s, box-shadow .25s;
}

.contact-primary-btn:hover {
    transform: translateY(-3px);
    background: #25295F;
    box-shadow: 0 12px 25px rgba(37,41,95,.18);
}

.contact-primary-btn span {
    color: #F6B17E;
    font-size: 19px;
}

.contact-hero-bottom {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 35px;
    color: #73788E;
    font-size: 10px;
}

.contact-hero-avatars {
    display: flex;
    padding-left: 3px;
}

.contact-hero-avatars span {
    display: grid;
    width: 31px;
    height: 31px;
    margin-left: -3px;
    place-items: center;
    border: 2px solid #F1F2FF;
    border-radius: 50%;
    background: #343A8B;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.contact-hero-avatars span:nth-child(2) {
    background: #F28C45;
}

.contact-hero-avatars span:nth-child(3) {
    background: #7779D8;
}

.contact-hero-art {
    position: relative;
    display: grid;
    min-height: 405px;
    place-items: center;
}

.contact-art-orbit {
    position: absolute;
    width: 335px;
    max-width: 90%;
    aspect-ratio: 1;
    border: 1px solid rgba(52,58,139,.14);
    border-radius: 50%;
}

.orbit-b {
    width: 275px;
    border-style: dashed;
    animation: contactOrbit 45s linear infinite;
}

.contact-art-card {
    position: relative;
    z-index: 1;
    width: min(350px, 82%);
    padding: 19px;
    border: 1px solid rgba(52,58,139,.12);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 25px 65px rgba(37,41,95,.13);
    transform: rotate(2deg);
    transition: transform .3s ease;
}

.contact-art-card:hover {
    transform: rotate(0) translateY(-4px);
}

.contact-art-card-header {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #85899B;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1px;
}

.contact-art-logo {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 8px;
    background: #343A8B;
    color: #F6B17E;
    font-size: 17px;
}

.contact-art-status {
    width: 7px;
    height: 7px;
    margin-left: auto;
    border-radius: 50%;
    background: #56B58B;
    box-shadow: 0 0 0 4px #EAF6F0;
}

.contact-art-message {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 22px;
    padding: 17px 12px;
    border-radius: 8px;
    background: #F1F2FF;
}

.contact-art-message-icon {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border-radius: 11px;
    background: #343A8B;
    color: #fff;
    font-size: 23px;
}

.contact-art-message strong {
    color: #25295F;
    font-size: 11px;
}

.contact-art-message p {
    margin: 6px 0 0;
    color: #73788E;
    font-size: 9px;
    line-height: 1.6;
}

.contact-art-chat {
    display: flex;
    align-items: flex-end;
    gap: 9px;
    margin: 24px 0 19px;
}

.contact-chat-avatar {
    display: grid;
    width: 31px;
    height: 31px;
    flex: 0 0 31px;
    place-items: center;
    border-radius: 50%;
    background: #F28C45;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.contact-chat-bubble {
    display: grid;
    width: 72%;
    gap: 8px;
    padding: 14px;
    border: 1px solid #E8E9F1;
    border-radius: 10px 10px 10px 2px;
}

.chat-line {
    display: block;
    height: 6px;
    border-radius: 4px;
    background: #E8E9F1;
}

.chat-line-long { width: 95%; }
.chat-line-short { width: 60%; }

.contact-art-reply {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px;
    border: 1px solid #ECECF4;
    border-radius: 8px;
}

.contact-art-reply > span {
    color: #F28C45;
    font-size: 22px;
}

.contact-art-reply > div {
    display: grid;
    gap: 5px;
}

.contact-art-reply strong {
    color: #343A8B;
    font-size: 10px;
}

.contact-art-reply small {
    color: #85899B;
    font-size: 8px;
}

.contact-art-card-footer {
    display: flex;
    justify-content: space-between;
    margin-top: 17px;
    padding-top: 13px;
    border-top: 1px solid #ECECF4;
    color: #85899B;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1px;
}

.contact-art-card-footer span:last-child {
    color: #F28C45;
    font-size: 16px;
}

.contact-floating-note {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid #E7E8F1;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(37,41,95,.09);
    animation: contactFloat 4s ease-in-out infinite;
}

.contact-note-one {
    top: 60px;
    left: -5px;
}

.contact-note-two {
    right: -5px;
    bottom: 57px;
    animation-delay: 1s;
}

.contact-note-icon {
    display: grid;
    width: 35px;
    height: 35px;
    place-items: center;
    border-radius: 8px;
    font-size: 20px;
}

.note-orange {
    background: #FFF0E5;
    color: #E77B35;
}

.note-purple {
    background: #ECECFF;
    color: #555BC0;
}

.contact-floating-note > div {
    display: grid;
    gap: 4px;
}

.contact-floating-note strong {
    color: #25295F;
    font-size: 10px;
}

.contact-floating-note small {
    color: #85899B;
    font-size: 9px;
}

.contact-hero-strip {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    gap: 15px;
    padding: 17px 5%;
    border-top: 1px solid rgba(52,58,139,.13);
    color: #73788E;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.3px;
}

.contact-strip-star {
    color: #F28C45;
    font-size: 14px;
}

.contact-channels {
    padding-top: 82px;
    padding-bottom: 82px;
}

.contact-section-heading {
    max-width: 690px;
    margin: 0 auto 38px;
    text-align: center;
}

.contact-section-heading h2,
.contact-faq-heading h2 {
    margin: 12px 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: clamp(30px, 4vw, 43px);
    font-weight: 800;
    letter-spacing: -1.7px;
    line-height: 1.25;
}

.contact-section-heading h2 span,
.contact-form-sidebar h2 span,
.contact-visit-copy h2 span,
.contact-faq-heading h2 span {
    color: #F28C45;
}

.contact-section-heading > p {
    max-width: 550px;
    margin: 0 auto;
    color: #73788E;
    font-size: 12px;
    line-height: 1.9;
}

.contact-channel-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 17px;
}

.contact-channel-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 23px;
    border: 1px solid #E6E7F0;
    border-radius: 11px;
    background: #fff;
    text-decoration: none;
    transition: transform .25s, box-shadow .25s, border-color .25s;
}

.contact-channel-card:hover {
    transform: translateY(-5px);
    border-color: #CDCEEB;
    box-shadow: 0 18px 38px rgba(37,41,95,.08);
}

.contact-channel-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 25px;
}

.contact-channel-icon {
    display: grid;
    width: 47px;
    height: 47px;
    place-items: center;
    border-radius: 11px;
    font-size: 24px;
}

.channel-phone .contact-channel-icon {
    background: #ECECFF;
    color: #343A8B;
}

.channel-email .contact-channel-icon {
    background: #FFF0E5;
    color: #E77B35;
}

.channel-visit .contact-channel-icon {
    background: #EAF6F0;
    color: #397D70;
}

.contact-channel-arrow {
    color: #A2A5B8;
    font-size: 21px;
    transition: color .2s, transform .2s;
}

.contact-channel-card:hover .contact-channel-arrow {
    color: #F28C45;
    transform: translate(3px, -3px);
}

.contact-channel-label {
    color: #85899B;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.contact-channel-card h3 {
    margin: 8px 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: 22px;
    font-weight: 800;
}

.contact-channel-card p {
    min-height: 43px;
    margin: 0 0 20px;
    color: #73788E;
    font-size: 11px;
    line-height: 1.8;
}

.contact-channel-action {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #ECECF4;
    color: #343A8B;
    font-size: 11px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.contact-form-section {
    padding-top: 88px;
    padding-bottom: 90px;
    background: #F8F9FC;
    scroll-margin-top: 35px;
}

.contact-form-layout {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    align-items: start;
    gap: 50px;
}

.contact-form-sidebar {
    padding-top: 14px;
}

.contact-form-sidebar h2,
.contact-visit-copy h2 {
    margin: 13px 0 17px;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: clamp(31px, 3.7vw, 43px);
    font-weight: 800;
    letter-spacing: -1.7px;
    line-height: 1.25;
}

.contact-form-sidebar > p,
.contact-visit-copy > p {
    margin: 0;
    color: #73788E;
    font-size: 12px;
    line-height: 2;
}

.contact-sidebar-points {
    display: grid;
    gap: 20px;
    margin-top: 30px;
}

.contact-sidebar-points > div {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.contact-check {
    display: grid;
    width: 29px;
    height: 29px;
    flex: 0 0 29px;
    place-items: center;
    border-radius: 8px;
    background: #EAF6F0;
    color: #397D70;
    font-size: 13px;
    font-weight: 900;
}

.contact-sidebar-points > div > div {
    display: grid;
    gap: 5px;
}

.contact-sidebar-points strong {
    color: #343A8B;
    font-size: 11px;
}

.contact-sidebar-points small {
    color: #85899B;
    font-size: 10px;
    line-height: 1.7;
}

.contact-sidebar-quote {
    position: relative;
    margin-top: 35px;
    padding: 20px;
    border-left: 3px solid #F28C45;
    border-radius: 0 8px 8px 0;
    background: #fff;
}

.contact-sidebar-quote > span:first-child {
    color: #F28C45;
    font-family: Georgia, serif;
    font-size: 42px;
    line-height: .8;
}

.contact-sidebar-quote p {
    margin: 8px 0 14px;
    color: #343A8B;
    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.8;
}

.contact-quote-mark {
    color: #85899B;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1px;
}

.contact-form-card {
    min-width: 0;
    padding: 29px;
    border: 1px solid #E7E8F1;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 16px 45px rgba(37,41,95,.055);
}

.contact-form-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.contact-form-step {
    color: #85899B;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.contact-form-card-heading h3 {
    margin: 8px 0 0;
    color: #25295F;
    font-family: "Manrope", sans-serif;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.6px;
}

.contact-form-heading-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 10px;
    background: #F1F2FF;
    color: #343A8B;
    font-size: 23px;
}

.contact-form-progress {
    height: 3px;
    margin: 22px 0 25px;
    overflow: hidden;
    border-radius: 10px;
    background: #ECECF4;
}

.contact-form-progress span {
    display: block;
    width: 35%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #343A8B, #F28C45);
    transition: width .25s ease;
}

.contact-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.contact-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 18px;
}

.contact-field label,
.contact-message-label label {
    color: #343A8B;
    font-size: 11px;
    font-weight: 800;
}

.contact-field label > span,
.contact-message-label label > span {
    color: #E77B35;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 12px;
    border: 1px solid #E1E3EE;
    border-radius: 6px;
    outline: none;
    background: #fff;
    color: #30334A;
    font-family: inherit;
    font-size: 12px;
    transition: border-color .2s, box-shadow .2s, background .2s;
}

.contact-field textarea {
    min-height: 125px;
    resize: vertical;
    line-height: 1.8;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
    color: #A1A4B4;
}

.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
    border-color: #7779D8;
    box-shadow: 0 0 0 3px rgba(119,121,216,.12);
}

.contact-field .is-invalid {
    border-color: #C74343;
    background: #FFFAFA;
}

.contact-field-error,
.contact-consent-error {
    min-height: 0;
    color: #C74343;
    font-size: 10px;
    line-height: 1.5;
}

.contact-message-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.contact-message-label > span {
    color: #85899B;
    font-size: 10px;
    font-weight: 700;
}

.contact-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 1px 0 7px;
    color: #73788E;
    cursor: pointer;
    font-size: 10px;
    line-height: 1.8;
}

.contact-consent input {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    margin: 2px 0 0;
    accent-color: #343A8B;
}

.contact-submit-btn {
    display: flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 16px;
    padding: 0 17px;
    border: 0;
    border-radius: 7px;
    background: #343A8B;
    color: #fff;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    transition: background .25s, transform .25s;
}

.contact-submit-btn:hover {
    transform: translateY(-2px);
    background: #25295F;
}

.contact-submit-btn:disabled {
    cursor: not-allowed;
    opacity: .65;
    transform: none;
}

.contact-submit-arrow {
    color: #F6B17E;
    font-size: 19px;
}

.contact-form-feedback {
    margin-top: 14px;
    padding: 13px;
    border: 1px solid #E7C6C6;
    border-radius: 7px;
    background: #FFF5F5;
    color: #A12F2F;
    font-size: 11px;
    line-height: 1.8;
}

.contact-form-feedback.success {
    border-color: #B9E0CE;
    background: #EFFAF4;
    color: #246849;
}

.contact-form-disclaimer {
    margin: 14px 0 0;
    color: #85899B;
    font-size: 9px;
    line-height: 1.8;
}

.contact-visit {
    padding-top: 88px;
    padding-bottom: 88px;
}

.contact-visit-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    align-items: center;
    gap: 55px;
}

.contact-visit-copy > p {
    max-width: 470px;
}

.contact-visit-details {
    display: grid;
    gap: 18px;
    margin-top: 27px;
}

.contact-visit-detail {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.visit-detail-icon {
    display: grid;
    width: 37px;
    height: 37px;
    flex: 0 0 37px;
    place-items: center;
    border-radius: 9px;
    background: #F1F2FF;
    color: #343A8B;
    font-size: 21px;
}

.contact-visit-detail > div {
    display: grid;
    gap: 5px;
}

.contact-visit-detail strong {
    color: #343A8B;
    font-size: 11px;
}

.contact-visit-detail p {
    margin: 0;
    color: #85899B;
    font-size: 10px;
    line-height: 1.8;
}

.contact-visit-btn {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    margin-top: 27px;
    color: #343A8B;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

.contact-visit-btn span {
    color: #F28C45;
    font-size: 18px;
}

.contact-visit-visual {
    position: relative;
    min-height: 390px;
    overflow: hidden;
    border: 1px solid #E7E8F1;
    border-radius: 13px;
    background: #F1F2FF;
}

.contact-map-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(52,58,139,.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(52,58,139,.07) 1px, transparent 1px);
    background-size: 32px 32px;
}

.contact-map-road {
    position: absolute;
    z-index: 1;
    width: 150%;
    height: 34px;
    border: 1px solid rgba(52,58,139,.09);
    background: rgba(255,255,255,.85);
}

.map-road-one {
    top: 43%;
    left: -15%;
    transform: rotate(-18deg);
}

.map-road-two {
    top: 45%;
    left: -22%;
    transform: rotate(47deg);
}

.map-road-three {
    top: 60%;
    left: 15%;
    transform: rotate(-49deg);
}

.contact-map-building {
    position: absolute;
    z-index: 2;
    top: 24%;
    left: 50%;
    width: 205px;
    transform: translateX(-50%);
    filter: drop-shadow(0 15px 15px rgba(37,41,95,.13));
}

.contact-building-roof {
    width: 0;
    height: 0;
    margin: 0 auto;
    border-right: 116px solid transparent;
    border-bottom: 42px solid #F28C45;
    border-left: 116px solid transparent;
}

.contact-building-main {
    position: relative;
    min-height: 155px;
    padding: 13px 15px;
    border: 5px solid #fff;
    background: #343A8B;
    text-align: center;
}

.contact-building-sign {
    display: inline-block;
    padding: 5px 15px;
    border-radius: 3px;
    background: #fff;
    color: #343A8B;
    font-family: "Manrope", sans-serif;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
}

.contact-building-windows {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 13px;
}

.contact-building-windows span {
    height: 22px;
    border: 2px solid rgba(255,255,255,.6);
    background: #A6AAFF;
}

.contact-building-door {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 31px;
    height: 43px;
    border: 3px solid #fff;
    border-bottom: 0;
    background: #F28C45;
    transform: translateX(-50%);
}

.contact-map-pin {
    position: absolute;
    z-index: 3;
    top: 13%;
    right: 18%;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 4px solid #fff;
    border-radius: 50% 50% 50% 5px;
    background: #F28C45;
    color: #fff;
    font-size: 22px;
    transform: rotate(-45deg);
    box-shadow: 0 9px 20px rgba(37,41,95,.15);
}

.contact-map-pin span {
    transform: rotate(45deg);
}

.contact-map-label {
    position: absolute;
    z-index: 4;
    right: 20px;
    bottom: 20px;
    left: 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px;
    border: 1px solid #E7E8F1;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(37,41,95,.07);
}

.contact-map-label-icon {
    display: grid;
    width: 39px;
    height: 39px;
    flex: 0 0 39px;
    place-items: center;
    border-radius: 8px;
    background: #343A8B;
    color: #F6B17E;
    font-family: "Manrope", sans-serif;
    font-size: 20px;
    font-weight: 800;
}

.contact-map-label > div {
    display: grid;
    gap: 5px;
}

.contact-map-label strong {
    color: #25295F;
    font-size: 11px;
}

.contact-map-label small {
    color: #85899B;
    font-size: 9px;
}

.contact-map-coordinate {
    position: absolute;
    z-index: 2;
    color: #73788E;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.map-coordinate-one {
    top: 17px;
    left: 18px;
}

.map-coordinate-two {
    right: 18px;
    bottom: 91px;
}

.contact-faq {
    padding-top: 80px;
    padding-bottom: 85px;
    background: #F8F9FC;
}

.contact-faq-layout {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    align-items: start;
    gap: 55px;
}

.contact-faq-heading > p {
    max-width: 350px;
    color: #73788E;
    font-size: 12px;
    line-height: 1.9;
}

.contact-faq-link {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 12px;
    color: #73788E;
    font-size: 11px;
    line-height: 1.8;
    text-decoration: none;
}

.contact-faq-link span {
    color: #343A8B;
    font-weight: 800;
}

.contact-faq-list {
    border-top: 1px solid #E0E2EE;
}

.contact-faq-item {
    border-bottom: 1px solid #E0E2EE;
}

.contact-faq-question {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 21px 0;
    border: 0;
    background: transparent;
    color: #25295F;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
}

.contact-faq-toggle {
    display: grid;
    width: 29px;
    height: 29px;
    flex: 0 0 29px;
    place-items: center;
    border: 1px solid #E0E2EE;
    border-radius: 50%;
    color: #343A8B;
    font-size: 19px;
    font-weight: 400;
    transition: background .2s, color .2s, transform .2s;
}

.contact-faq-question[aria-expanded="true"] .contact-faq-toggle {
    transform: rotate(45deg);
    border-color: #343A8B;
    background: #343A8B;
    color: #fff;
}

.contact-faq-answer {
    padding: 0 40px 20px 0;
}

.contact-faq-answer p {
    margin: 0;
    color: #73788E;
    font-size: 11px;
    line-height: 1.9;
}

.contact-bottom-cta {
    padding: 34px 0;
    background: #25295F;
}

.contact-bottom-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.contact-bottom-cta-inner > div > span {
    color: #F6B17E;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.contact-bottom-cta h2 {
    margin: 8px 0 0;
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: clamp(21px, 3vw, 32px);
    font-weight: 800;
    letter-spacing: -.8px;
    line-height: 1.35;
}

.contact-bottom-btn {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 17px;
    padding: 15px 18px;
    border-radius: 6px;
    background: #F28C45;
    color: #25295F;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    transition: background .2s, transform .2s;
}

.contact-bottom-btn:hover {
    transform: translateY(-2px);
    background: #FFB276;
}

.contact-bottom-btn span {
    font-size: 17px;
}

@keyframes contactOrbit {
    to { transform: rotate(360deg); }
}

@keyframes contactFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-7px); }
}

/* TABLET */
@media (max-width: 950px) {
    .contact-hero-grid {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .contact-hero-art {
        min-height: 350px;
    }

    .contact-art-card {
        width: 83%;
    }

    .contact-form-layout {
        grid-template-columns: .8fr 1.2fr;
        gap: 28px;
    }

    .contact-form-card {
        padding: 22px;
    }

    .contact-visit-grid,
    .contact-faq-layout {
        gap: 30px;
    }
}

/* MOBILE */
@media (max-width: 650px) {
    .contact-page .container {
        width: 90%;
    }

    .contact-hero {
        padding-top: 45px;
    }

    .contact-hero-grid {
        grid-template-columns: 1fr;
        gap: 5px;
        padding-bottom: 28px;
    }

    .contact-hero-copy h1 {
        font-size: clamp(39px, 10vw, 52px);
        letter-spacing: -1.8px;
    }

    .contact-hero-copy > p {
        font-size: 12px;
    }

    .contact-hero-art {
        min-height: 355px;
        margin-top: 12px;
    }

    .contact-art-card {
        width: 275px;
        max-width: 76%;
        padding: 14px;
    }

    .contact-art-message {
        margin-top: 16px;
        padding: 12px 9px;
    }

    .contact-art-chat {
        margin: 16px 0;
    }

    .contact-note-one {
        top: 39px;
        left: 0;
    }

    .contact-note-two {
        right: 0;
        bottom: 37px;
    }

    .contact-floating-note {
        gap: 7px;
        padding: 9px;
    }

    .contact-note-icon {
        width: 29px;
        height: 29px;
        font-size: 17px;
    }

    .contact-floating-note strong {
        font-size: 9px;
    }

    .contact-floating-note small {
        font-size: 8px;
    }

    .contact-hero-strip {
        justify-content: flex-start;
        gap: 10px;
        padding: 15px 5%;
        font-size: 8px;
    }

    .contact-hero-strip span:nth-of-type(2) {
        display: none;
    }

    .contact-channels,
    .contact-form-section,
    .contact-visit,
    .contact-faq {
        padding-top: 57px;
        padding-bottom: 60px;
    }

    .contact-section-heading {
        margin-bottom: 27px;
    }

    .contact-section-heading h2,
    .contact-faq-heading h2 {
        font-size: 32px;
    }

    .contact-channel-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .contact-channel-card {
        padding: 19px;
    }

    .contact-channel-top {
        margin-bottom: 17px;
    }

    .contact-channel-card p {
        min-height: 0;
    }

    .contact-form-layout,
    .contact-visit-grid,
    .contact-faq-layout {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .contact-form-sidebar h2,
    .contact-visit-copy h2 {
        font-size: 33px;
    }

    .contact-sidebar-points {
        gap: 15px;
    }

    .contact-sidebar-quote {
        margin-top: 25px;
    }

    .contact-form-card {
        padding: 20px 15px;
    }

    .contact-form-card-heading h3 {
        font-size: 22px;
    }

    .contact-form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .contact-field {
        margin-bottom: 16px;
    }

    .contact-field input,
    .contact-field select,
    .contact-field textarea {
        font-size: 16px;
    }

    .contact-visit-visual {
        min-height: 340px;
    }

    .contact-map-building {
        top: 20%;
        transform: translateX(-50%) scale(.88);
    }

    .contact-map-pin {
        top: 11%;
        right: 12%;
    }

    .contact-faq-layout {
        gap: 24px;
    }

    .contact-faq-question {
        padding: 18px 0;
        font-size: 11px;
    }

    .contact-faq-answer {
        padding-right: 8px;
    }

    .contact-bottom-cta {
        padding: 30px 0;
    }

    .contact-bottom-cta-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .contact-bottom-cta h2 {
        font-size: 25px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .contact-page *,
    .contact-page *::before,
    .contact-page *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}


/* ===========================
   ROYAL SCHOOL - APPLY PAGE
   =========================== */
.apply-page{--apply-indigo:#343a8b;--apply-indigo-dark:#252965;--apply-orange:#f28c45;--apply-ink:#202448;--apply-muted:#737891;--apply-pale:#f5f5ff;--apply-border:#e7e8f2;color:var(--apply-ink);overflow:hidden}
.apply-page *{box-sizing:border-box}
.apply-container{width:min(1160px,calc(100% - 48px));margin-inline:auto}
.apply-page a{text-decoration:none}
.apply-hero{position:relative;background:linear-gradient(115deg,#f8f8ff 0%,#f1f0ff 58%,#fff4eb 100%);padding:76px 0 0;isolation:isolate}
.apply-hero-grid{display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:44px;min-height:450px;position:relative;z-index:1}
.apply-hero-copy{padding:10px 0 52px}
.apply-eyebrow{display:inline-flex;align-items:center;gap:9px;color:var(--apply-indigo);font-size:11px;font-weight:800;letter-spacing:1.7px}
.apply-eyebrow>span{width:8px;height:8px;background:var(--apply-orange);border-radius:50%;box-shadow:0 0 0 4px #f28c4520}
.apply-hero h1,.apply-section-heading h2,.apply-form-aside h2,.apply-documents-heading h2,.apply-faq-heading h2,.apply-final-cta h2{font-size:clamp(38px,4.6vw,61px);line-height:1.08;letter-spacing:-2.5px;font-weight:800;margin:23px 0 19px;color:var(--apply-ink)}
.apply-hero h1 em,.apply-section-heading h2 em,.apply-form-aside h2 em,.apply-documents-heading h2 em,.apply-faq-heading h2 em,.apply-final-cta h2 em{font-style:normal;color:var(--apply-indigo);position:relative}
.apply-hero h1 em:after{content:"";position:absolute;height:7px;background:#f28c4555;left:2px;right:2px;bottom:0;border-radius:100%;z-index:-1;transform:rotate(-1.5deg)}
.apply-hero-copy>p,.apply-section-heading>p,.apply-documents-heading>p,.apply-faq-heading>p{max-width:510px;font-size:15px;line-height:1.9;color:var(--apply-muted);margin:0}
.apply-hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:30px}
.apply-btn{display:inline-flex;justify-content:center;align-items:center;gap:16px;padding:15px 21px;border:0;border-radius:10px;font-family:inherit;font-size:13px;font-weight:750;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s}
.apply-btn:hover{transform:translateY(-3px)}
.apply-btn-primary{background:var(--apply-indigo);color:white;box-shadow:0 12px 24px #343a8b26}
.apply-btn-primary:hover{background:var(--apply-indigo-dark);box-shadow:0 15px 28px #343a8b38}
.apply-btn span{font-size:18px;line-height:1}
.apply-text-link{display:inline-flex;align-items:center;gap:9px;color:var(--apply-indigo);font-size:13px;font-weight:750;transition:gap .2s}
.apply-text-link:hover{gap:14px}
.apply-hero-note{display:flex;align-items:center;gap:10px;margin-top:28px;font-size:12px;color:#676b86}
.apply-note-icon{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e4f5e9;color:#26874a;font-weight:800}
.apply-hero-art{position:relative;min-height:390px;max-width:480px;width:100%;margin:0 auto;overflow:hidden;border-radius:48% 48% 18px 18px;background:linear-gradient(145deg,#e3e1ff,#f4e9ff 62%,#ffe8d4)}
.apply-art-sun{position:absolute;width:190px;height:190px;border-radius:50%;background:#fff5ce;top:35px;right:57px}
.apply-art-ground{position:absolute;left:-10%;right:-10%;bottom:-45px;height:125px;background:#b9b7ed;border-radius:50% 50% 0 0}
.apply-art-person{position:absolute;z-index:2;bottom:32px;left:39%;width:145px;height:255px}
.apply-person-face{position:absolute;z-index:3;top:18px;left:35px;width:78px;height:91px;border-radius:44% 44% 48% 48%;background:#c9825e;box-shadow:inset -7px 0 #b56c4f}
.apply-person-hair{position:absolute;z-index:4;top:6px;left:29px;width:91px;height:54px;background:#34283d;border-radius:55% 50% 25% 25%;transform:rotate(-4deg)}
.apply-person-hair:after{content:"";position:absolute;right:-2px;top:25px;width:24px;height:56px;background:#34283d;border-radius:0 0 70% 40%;transform:rotate(-8deg)}
.apply-person-neck{position:absolute;z-index:2;top:94px;left:63px;width:31px;height:31px;background:#bd7959}
.apply-person-body{position:absolute;top:112px;left:9px;width:127px;height:145px;background:linear-gradient(90deg,#4548a1,#343a8b);border-radius:38px 38px 8px 8px;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%)}
.apply-shirt-collar{position:absolute;left:48px;top:0;width:32px;height:38px;background:#fff;border-radius:0 0 12px 12px;clip-path:polygon(0 0,100% 0,70% 100%,50% 72%,28% 100%)}
.apply-person-arm{position:absolute;z-index:4;top:131px;right:-2px;width:25px;height:100px;background:#c9825e;border-radius:15px;transform:rotate(-21deg)}
.apply-person-bag{position:absolute;z-index:5;top:133px;left:-1px;width:44px;height:81px;border:8px solid #f28c45;border-radius:18px 18px 13px 13px;transform:rotate(8deg)}
.apply-eye{position:absolute;top:43px;width:5px;height:7px;background:#35283b;border-radius:50%}
.apply-eye.eye-left{left:20px}.apply-eye.eye-right{right:19px}
.apply-smile{position:absolute;left:31px;top:61px;width:18px;height:9px;border-bottom:2px solid #6c3d36;border-radius:50%}
.apply-art-book{position:absolute;z-index:2;bottom:30px;width:128px;height:27px;border-radius:4px 8px 7px 4px;transform:rotate(-12deg);box-shadow:0 5px 0 #25296525}
.book-back{left:20px;background:#f28c45;bottom:51px}
.book-front{left:10px;background:#fff;bottom:29px;border-bottom:6px solid #9c9ee2}
.apply-art-label{position:absolute;z-index:4;left:20px;top:30px;background:#fff;padding:10px 13px;border-radius:10px;box-shadow:0 8px 22px #343a8b12;font-size:10px;font-weight:750;color:var(--apply-indigo)}
.apply-art-label span{color:var(--apply-orange);margin-right:5px}
.apply-art-star{position:absolute;z-index:4;color:var(--apply-orange);font-size:32px}
.star-one{top:108px;left:28px}.star-two{top:155px;right:24px;color:var(--apply-indigo);font-size:24px}
.apply-art-sticker{position:absolute;z-index:5;right:18px;bottom:75px;display:flex;flex-direction:column;gap:4px;padding:13px 17px;background:#fff;border-radius:12px;box-shadow:0 10px 25px #343a8b15;transform:rotate(4deg);font-size:13px;color:var(--apply-indigo)}
.apply-art-sticker strong:nth-child(2){color:var(--apply-orange)}
.apply-hero-shape{position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.apply-shape-one{width:270px;height:270px;border:1px solid #343a8b12;left:-120px;top:70px}
.apply-shape-two{width:340px;height:340px;border:1px solid #f28c4525;right:-170px;top:-100px}
.apply-hero-bottom{border-top:1px solid #343a8b10;margin-top:12px}
.apply-hero-bottom-inner{min-height:55px;display:flex;align-items:center;gap:16px;font-size:9px;letter-spacing:2px;font-weight:800;color:#777b99}
.apply-bottom-line{height:1px;max-width:90px;flex:1;background:#d5d5e9}
.apply-quick-info{background:#fff;border-bottom:1px solid #eeeef5}
.apply-info-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:24px 0;gap:20px}
.apply-info-item{display:flex;align-items:center;gap:13px;padding:5px 15px;border-right:1px solid #eeeef5}
.apply-info-item:last-child{border:0}
.apply-info-icon{display:grid;place-items:center;flex:0 0 43px;height:43px;background:#f0efff;border-radius:12px;color:var(--apply-indigo);font-size:13px;font-weight:850}
.apply-info-item strong,.apply-info-item small{display:block}
.apply-info-item strong{font-size:13px;margin-bottom:5px}
.apply-info-item small{font-size:11px;color:var(--apply-muted);line-height:1.6}
.section-pad{padding:88px 0}
.apply-section-heading{text-align:center;max-width:650px;margin:0 auto 39px}
.apply-section-heading h2,.apply-documents-heading h2,.apply-faq-heading h2{font-size:clamp(32px,3.7vw,46px);letter-spacing:-1.7px;margin:17px 0 14px}
.apply-section-heading>p{margin-inline:auto}
.apply-process{background:#fbfbff}
.apply-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.apply-process-card{position:relative;padding:25px 25px 29px;border:1px solid #e9e9f4;border-radius:17px;background:#fff;transition:transform .25s,box-shadow .25s}
.apply-process-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px #343a8b0d}
.apply-process-card.featured{background:#f2f1ff;border-color:#dedcff}
.apply-process-top{display:flex;justify-content:space-between;align-items:center;color:#9b9db5;font-size:12px;font-weight:800}
.apply-process-symbol{font-size:18px;color:var(--apply-orange)}
.apply-process-icon{display:grid;place-items:center;width:51px;height:51px;margin:27px 0 18px;border-radius:15px;font-size:22px;font-weight:700}
.icon-purple{background:#eeedff;color:#4546a0}.icon-orange{background:#fff0e5;color:#d66d25}.icon-blue{background:#e7f3ff;color:#3479b5}
.apply-process-card h3{font-size:18px;margin:0 0 10px;letter-spacing:-.4px}
.apply-process-card p{font-size:13px;line-height:1.8;color:var(--apply-muted);margin:0;max-width:290px}
.apply-form-section{background:#fff}
.apply-form-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:55px;align-items:start}
.apply-form-aside{position:relative;overflow:hidden;padding:24px 0}
.apply-form-aside h2{font-size:clamp(35px,4vw,49px);letter-spacing:-1.9px;margin:20px 0}
.apply-form-aside>p{font-size:14px;line-height:1.9;color:var(--apply-muted);margin:0;max-width:390px}
.apply-aside-highlight{display:flex;gap:14px;padding:18px;margin-top:30px;background:#f5f4ff;border-radius:13px;position:relative;z-index:1}
.apply-highlight-icon{display:grid;place-items:center;flex:0 0 36px;height:36px;background:#fff;color:var(--apply-orange);border-radius:10px}
.apply-aside-highlight strong,.apply-aside-contact strong{font-size:12px}
.apply-aside-highlight p,.apply-aside-contact p{font-size:11px;line-height:1.8;color:var(--apply-muted);margin:6px 0 0}
.apply-aside-contact{display:flex;gap:13px;margin-top:24px;position:relative;z-index:1}
.apply-aside-contact-icon{display:grid;place-items:center;flex:0 0 33px;height:33px;border:1px solid #e4e4f0;border-radius:50%;color:var(--apply-indigo);font-weight:800}
.apply-aside-contact a{display:inline-block;margin-top:10px;color:var(--apply-indigo);font-size:11px;font-weight:800}
.apply-aside-contact a span{margin-left:5px}
.apply-aside-decoration{position:absolute;bottom:-110px;left:-15px;color:#f4f3ff;font-size:230px;line-height:1;font-weight:900;pointer-events:none}
.apply-aside-decoration span,.apply-form-mark span{color:var(--apply-orange)}
.apply-form-card{border:1px solid #e9e9f3;border-radius:19px;padding:30px;background:#fff;box-shadow:0 18px 60px #2529650a}
.apply-form-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.apply-form-step{font-size:9px;letter-spacing:1.4px;font-weight:850;color:var(--apply-indigo)}
.apply-form-card-head h3{font-size:23px;letter-spacing:-.7px;margin:9px 0 6px}
.apply-form-card-head p{font-size:11px;color:var(--apply-muted);margin:0}
.apply-form-mark{font-size:30px;line-height:1;font-weight:900;color:var(--apply-indigo)}
.apply-form-progress{height:4px;background:#eeeefa;border-radius:10px;margin:24px 0 27px;overflow:hidden}
.apply-form-progress span{display:block;width:0;height:100%;border-radius:10px;background:linear-gradient(90deg,var(--apply-indigo),var(--apply-orange));transition:width .25s}
.apply-form-section-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.apply-form-section-title>span{display:grid;place-items:center;width:34px;height:34px;background:#f0efff;color:var(--apply-indigo);border-radius:10px;font-size:11px;font-weight:850}
.apply-form-section-title strong,.apply-form-section-title small{display:block}
.apply-form-section-title strong{font-size:13px}
.apply-form-section-title small{font-size:10px;color:var(--apply-muted);margin-top:4px}
.apply-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 14px}
.apply-field{min-width:0}
.apply-field-full{grid-column:1/-1}
.apply-field label{display:block;font-size:11px;font-weight:750;margin-bottom:8px;color:#333755}
.apply-field label>span,.apply-consent b{color:#e46f3b}
.apply-field label>small{font-weight:500;color:#9598ad}
.apply-field input,.apply-field select,.apply-field textarea{width:100%;display:block;border:1px solid #e2e3ee;border-radius:8px;background:#fcfcff;color:#292d4c;font:inherit;font-size:12px;padding:12px 13px;outline:none;transition:border-color .2s,box-shadow .2s}
.apply-field input,.apply-field select{min-height:43px}
.apply-field textarea{resize:vertical;min-height:82px;line-height:1.6}
.apply-field input::placeholder,.apply-field textarea::placeholder{color:#a3a5b8}
.apply-field input:focus,.apply-field select:focus,.apply-field textarea:focus{border-color:#7778c4;box-shadow:0 0 0 3px #343a8b12;background:#fff}
.apply-field.has-error input,.apply-field.has-error select,.apply-field.has-error textarea{border-color:#d94f59;background:#fffafa}
.apply-field-error{display:block;min-height:0;margin-top:5px;font-size:10px;color:#cf3f4a;line-height:1.4}
.apply-field-error:empty{display:none}
.apply-character-row{display:flex;justify-content:space-between;gap:10px}
.apply-character-row>small:last-child{font-size:10px;color:#8a8da4;white-space:nowrap;margin-top:5px}
.apply-form-divider{height:1px;background:#eeeef5;margin:27px 0}
.apply-consent{display:flex;align-items:flex-start;gap:10px;margin-top:22px;font-size:10px;line-height:1.8;color:#686d88;cursor:pointer}
.apply-consent input{accent-color:var(--apply-indigo);width:15px;height:15px;flex:0 0 15px;margin-top:2px}
.apply-consent-error{font-size:10px;color:#cf3f4a;margin:4px 0 0}
.apply-form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:22px;flex-wrap:wrap}
.apply-secure-note{display:flex;align-items:center;gap:7px;font-size:10px;color:#7a7e96}
.apply-secure-note span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e7f7ec;color:#2a8b4b;font-weight:800}
.apply-submit{padding:14px 17px;font-family:inherit}
.apply-form-feedback{margin-top:17px;padding:14px;border-radius:10px;font-size:12px;line-height:1.7}
.apply-form-feedback.is-success{background:#effaf2;color:#236b3b;border:1px solid #d5efdc}
.apply-form-feedback.is-warning{background:#fff7eb;color:#8a551e;border:1px solid #f8e3c3}
.apply-documents{background:#f8f8ff}
.apply-documents-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:center}
.apply-documents-heading .apply-text-link{margin-top:22px}
.apply-document-list{border:1px solid #e8e8f3;border-radius:15px;background:#fff;padding:7px 21px}
.apply-document-item{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid #eeeeF6}
.apply-document-item:last-child{border-bottom:0}
.apply-document-icon{display:grid;place-items:center;flex:0 0 43px;height:43px;border-radius:12px;background:#f0efff;color:var(--apply-indigo);font-size:18px}
.apply-document-item:nth-child(even) .apply-document-icon{background:#fff0e5;color:#d66d25}
.apply-document-item>div{flex:1;min-width:0}
.apply-document-item strong,.apply-document-item small{display:block}
.apply-document-item strong{font-size:12px;margin-bottom:5px}
.apply-document-item small{font-size:10px;line-height:1.6;color:var(--apply-muted)}
.apply-document-check{font-size:10px;color:#a5a7bc;font-weight:800}
.apply-faq-section{background:#fff}
.apply-faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;align-items:start}
.apply-faq-small-card{display:flex;gap:13px;padding:18px;background:#f7f6ff;border-radius:12px;margin-top:27px;max-width:340px}
.apply-faq-small-card>span{font-size:24px;color:var(--apply-orange)}
.apply-faq-small-card strong{font-size:12px}
.apply-faq-small-card p{font-size:11px;color:var(--apply-muted);line-height:1.7;margin:6px 0}
.apply-faq-small-card a{font-size:11px;color:var(--apply-indigo);font-weight:800}
.apply-faq-list{border-top:1px solid #e9e9f2}
.apply-faq-item{border-bottom:1px solid #e9e9f2}
.apply-faq-question{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:20px 0;border:0;background:transparent;text-align:left;font:inherit;font-size:13px;font-weight:750;color:var(--apply-ink);cursor:pointer}
.apply-faq-toggle{display:grid;place-items:center;flex:0 0 27px;height:27px;border-radius:8px;background:#f0efff;color:var(--apply-indigo);font-size:17px}
.apply-faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s}
.apply-faq-answer p{overflow:hidden;margin:0;font-size:12px;line-height:1.9;color:var(--apply-muted)}
.apply-faq-item.is-open .apply-faq-answer{grid-template-rows:1fr}
.apply-faq-item.is-open .apply-faq-answer p{padding:0 30px 20px 0}
.apply-final-cta{position:relative;overflow:hidden;background:linear-gradient(110deg,#292e78,#4248a0);padding:58px 0;color:#fff}
.apply-final-cta-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:35px}
.apply-eyebrow-light{color:#e7e6ff}
.apply-final-cta h2{color:#fff;font-size:clamp(30px,3.8vw,44px);letter-spacing:-1.5px;max-width:650px;margin:17px 0 10px}
.apply-final-cta h2 em{color:#ffb77f}
.apply-final-cta p{font-size:13px;line-height:1.8;color:#dedff7;margin:0;max-width:560px}
.apply-btn-light{background:#fff;color:var(--apply-indigo);white-space:nowrap;position:relative;z-index:1}
.apply-btn-light:hover{background:#fff3e9;box-shadow:0 12px 25px #171a4a30}
.apply-cta-decoration{position:absolute;right:6%;top:-70px;font-size:170px;color:#ffffff0c;pointer-events:none}
@media(max-width:1000px){
 .apply-hero-grid{gap:22px}.apply-hero-art{min-height:350px}.apply-art-person{transform:scale(.9);transform-origin:bottom center}
 .apply-form-layout{grid-template-columns:.65fr 1.35fr;gap:30px}.apply-form-card{padding:24px}
 .apply-documents-layout,.apply-faq-layout{gap:35px}
}
@media(max-width:760px){
 .apply-container{width:min(100% - 34px,560px)}
 .apply-hero{padding-top:48px}.apply-hero-grid{grid-template-columns:1fr;gap:15px;min-height:auto}
 .apply-hero-copy{padding:0 0 8px}.apply-hero h1{font-size:clamp(39px,10vw,54px);letter-spacing:-1.8px;margin-top:18px}
 .apply-hero-copy>p{font-size:14px}.apply-hero-actions{gap:17px;margin-top:24px}
 .apply-hero-art{min-height:330px;max-width:430px;width:100%;margin:0 auto}
 .apply-art-person{left:37%;transform:scale(.88);transform-origin:bottom center}
 .apply-hero-bottom-inner{min-height:48px;font-size:8px;letter-spacing:1.2px;gap:10px}
 .apply-info-grid{grid-template-columns:1fr;gap:0;padding:9px 0}
 .apply-info-item{padding:13px 3px;border-right:0;border-bottom:1px solid #eeeef5}
 .apply-info-item:last-child{border-bottom:0}
 .section-pad{padding:62px 0}
 .apply-section-heading{margin-bottom:28px}.apply-section-heading h2,.apply-documents-heading h2,.apply-faq-heading h2{font-size:36px;letter-spacing:-1.3px}
 .apply-process-grid{grid-template-columns:1fr;gap:13px}.apply-process-card{padding:20px}
 .apply-process-icon{margin:17px 0 13px}
 .apply-form-layout{grid-template-columns:1fr;gap:25px}.apply-form-aside{padding:0}
 .apply-form-aside h2{font-size:40px;max-width:470px}
 .apply-form-aside>p{max-width:520px}.apply-aside-decoration{font-size:140px;bottom:-70px;left:auto;right:0}
 .apply-form-card{padding:22px 18px;border-radius:15px}
 .apply-fields-grid{gap:14px 11px}
 .apply-documents-layout,.apply-faq-layout{grid-template-columns:1fr;gap:28px}
 .apply-document-list{padding:4px 15px}
 .apply-final-cta{padding:44px 0}
 .apply-final-cta-inner{align-items:flex-start;flex-direction:column;gap:23px}
 .apply-final-cta h2{font-size:36px;letter-spacing:-1.2px}
}
@media(max-width:460px){
 .apply-container{width:calc(100% - 28px)}
 .apply-hero-art{min-height:285px}
 .apply-art-person{left:34%;transform:scale(.76);transform-origin:bottom center}
 .apply-art-sun{width:150px;height:150px;right:32px}
 .apply-art-sticker{right:8px;bottom:65px;padding:10px 12px;font-size:11px}
 .apply-art-label{left:10px;top:17px;font-size:9px}
 .apply-hero-actions{align-items:flex-start;flex-direction:column;gap:15px}
 .apply-btn{padding:14px 17px}
 .apply-hero-bottom-inner{font-size:7px;letter-spacing:.8px}
 .apply-form-card{padding:20px 14px}
 .apply-form-card-head h3{font-size:21px}
 .apply-fields-grid{grid-template-columns:1fr}
 .apply-field-full{grid-column:auto}
 .apply-form-actions{align-items:stretch;flex-direction:column}
 .apply-submit{width:100%}
 .apply-secure-note{line-height:1.6}
 .apply-document-item{gap:10px}.apply-document-item strong{font-size:11px}
 .apply-document-icon{flex-basis:37px;height:37px}
}
@media(prefers-reduced-motion:reduce){
 .apply-page *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}