/* ==========================================================================
   GENESIS CLASSES â€” MAIN STYLESHEET
   ========================================================================== */
:root{
  --ink:#2f54a3;
  --ink-2:#95b0ea54;
  --ink-3:#182548;
  --paper:#F6F7FB;
  --paper-2:#FFFFFF;
  --slate:#787a7f;
  --slate-light:#8891A6;
  --line-on-dark:rgba(255,255,255,0.12);
  --line-on-light:rgba(10,17,40,0.1);
  --gold:#F2A93B;
  --gold-2:#D98F1E;
  --gold-soft:rgba(242,169,59,0.14);
  --signal:#33B78A;
  --white:#FFFFFF;
  --font-display:'Plus Jakarta Sans', 'Segoe UI', sans-serif;
  --font-body:'Inter', 'Segoe UI', sans-serif;
  --font-mono:'JetBrains Mono', 'Courier New', monospace;
  --radius:20px;
  --radius-sm:12px;
  --container:1240px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{ font-family:var(--font-body); background:var(--paper); color:var(--ink); overflow-x:hidden; -webkit-font-smoothing:antialiased; }
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
ul{list-style:none;}
.wrap{max-width:var(--container); margin:0 auto; padding:0 32px;}
section{position:relative;}
h1,h2,h3,h4{font-family:var(--font-display); font-weight:700; line-height:1.08; letter-spacing:-0.02em;}
.eyebrow{ font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase; display:inline-flex; align-items:center; gap:10px; color:var(--gold-2); font-weight:600; margin-bottom:18px; }
.eyebrow::before{content:""; width:22px; height:1.5px; background:var(--gold); display:inline-block;}
.eyebrow.on-dark{color:var(--gold);}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(30px,4vw,4px); margin-bottom:16px; line-height: 40px;}
.section-head p{font-size:17px; color:#dcdfe8; line-height:1.6;}
.section-head.on-dark p{color:#AEB6CC;}
.section-pad{padding:50px 0;}
@media(max-width:780px){ .section-pad{padding:72px 0;} .wrap{padding:0 20px;} }

/* Buttons */
.btn{ display:inline-flex; align-items:center; gap:10px; font-weight:600; font-size:15px; padding:15px 28px; border-radius:100px; transition:all .35s cubic-bezier(.2,.8,.2,1); white-space:nowrap; }
.btn-gold{ background:var(--gold); color:#1A1200; }
.btn-gold:hover{ background:var(--gold-2); transform:translateY(-2px); box-shadow:0 14px 28px -10px rgba(242,169,59,.55);}
.btn-outline{ border:1.5px solid var(--line-on-light); color:var(--ink); }
.btn-outline:hover{ border-color:var(--ink); background:var(--ink); color:#fff; }
.btn-outline.on-dark{ border-color:var(--line-on-dark); color:#fff; }
.btn-outline.on-dark:hover{ background:#fff; color:var(--ink); }
.btn-ghost{ color:var(--ink); font-weight:600; display:inline-flex; align-items:center; gap:8px; }
.btn-ghost.on-dark{color:#fff;}
.btn svg{ transition:transform .3s ease; }
.btn:hover svg{ transform:translateX(4px); }

/* ============ NAV ============ */
.nav{ position:fixed; top:0; left:0; right:0; z-index:1000; padding:22px 0; transition:all .4s cubic-bezier(.2,.8,.2,1); background:rgba(10,17,40,0.0); }
.nav::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(6,10,24,.55) 0%, transparent 100%); pointer-events:none; opacity:1; transition:opacity .4s ease; height:160%; }
.nav.scrolled::before{ opacity:0; }
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; }
.nav.scrolled{ padding:12px 0; background:rgba(10,17,40,0.78); backdrop-filter:blur(18px) saturate(160%); border-bottom:1px solid var(--line-on-dark); box-shadow:0 10px 30px -18px rgba(0,0,0,.4); }
/* non-transparent pages (inner pages without dark hero) keep readable nav always */
.nav.solid{ background:rgba(10,17,40,0.92); backdrop-filter:blur(14px); border-bottom:1px solid var(--line-on-dark); }
.logo{ display:flex; align-items:center; }
.logo-img{ height:46px; width:auto; display:block; background:#fff; padding:4px 10px; border-radius:10px; transition:height .4s ease; }
.nav.scrolled .logo-img{ height:38px; }
.nav-links{ display:flex; align-items:center; gap:30px; font-size:14.5px; font-weight:500; }
.nav-links > a, .nav-links > .has-dropdown > a{ color:#fff; }
.nav-links a{ position:relative; padding:6px 0; }
.nav-links a:hover{ color:var(--gold); }
.has-dropdown{ position:relative; display:flex; align-items:center; gap:5px; }
.has-dropdown svg{ width:12px; height:12px; transition:transform .25s; color:#fff; }
.has-dropdown:hover svg{ transform:rotate(180deg); }
.dropdown{ position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%) translateY(6px); background:#fff; border-radius:14px; box-shadow:0 24px 50px -14px rgba(10,17,40,.28); padding:10px; min-width:210px; opacity:0; visibility:hidden; transition:all .25s ease; border:1px solid var(--line-on-light); }
.has-dropdown:hover .dropdown{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.dropdown a{ display:block; padding:10px 14px; border-radius:8px; color:var(--ink) !important; font-size:14px; }
.dropdown a:hover{ background:var(--paper); color:var(--gold-2) !important; }
.nav-cta{ display:flex; align-items:center; gap:18px; }
.nav-login{ font-size:14.5px; font-weight:600; color:#fff; }
.nav-cta .btn{ padding:12px 22px; font-size:14px; }
.burger{ display:none; width:38px; height:38px; align-items:center; justify-content:center; }
.burger span, .burger::before, .burger::after{ content:""; display:block; width:20px; height:2px; background:#fff; position:relative; transition:all .3s;margin-bottom: 1px;}
@media(max-width:960px){ .nav-links{ display:none; } .nav-login{ display:none; } .burger{ display:block; } }

.mobile-menu{ position:fixed; inset:0; background:var(--ink); z-index:1100; padding:100px 32px 40px; transform:translateY(-100%); transition:transform .45s cubic-bezier(.2,.8,.2,1); overflow-y:auto; }
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu a{ display:block; color:#fff; font-family:var(--font-display); font-size:20px; font-weight:600; padding:12px 0; border-bottom:1px solid var(--line-on-dark); }
.mobile-menu .sub{ padding-left:16px; }
.mobile-menu .sub a{ font-size:16px; color:#AEB6CC; font-weight:500; border-bottom:none; padding:8px 0; }
.mclose{ position:absolute; top:26px; right:26px; width:40px; height:40px; }
.mclose::before, .mclose::after{ content:""; position:absolute; top:50%; left:50%; width:22px; height:2px; background:#fff; }
.mclose::before{ transform:translate(-50%,-50%) rotate(45deg); }
.mclose::after{ transform:translate(-50%,-50%) rotate(-45deg); }

.mobile-cta-bar{ display:none; position:fixed; bottom:0; left:0; right:0; z-index:900; background:var(--ink); padding:12px 14px; box-shadow:0 -10px 30px rgba(0,0,0,.25); }
@media(max-width:780px){ .mobile-cta-bar{ display:flex; gap:8px; } }
.mobile-cta-bar a{ flex:1; text-align:center; font-size:13px; font-weight:600; padding:12px 6px; border-radius:10px; color:#fff; border:1px solid var(--line-on-dark); display:flex; flex-direction:column; align-items:center; gap:4px;}
.mobile-cta-bar a.primary{ background:var(--gold); color:#1A1200; border:none; }

/* ============ HERO BANNER SLIDER (IMAGE ONLY) ============ */
.hero-banner{ position:relative; margin-top:0; overflow:hidden; background:var(--ink); }
.banner-track{ position:relative; width:100%; aspect-ratio:16/8.2; }
@media(max-width:780px){ }
.banner-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1s ease; }
.banner-slide.active{ opacity:1; }
.banner-slide img{ width:100%; height:100%; object-fit:cover; }
.banner-slide a{ display:block; width:100%; height:100%; }
.banner-nav{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); display:flex; gap:10px; z-index:5; }
.banner-nav button{ width:34px; height:4px; border-radius:4px; background:rgba(255,255,255,.35); }
.banner-nav button.active{ background:var(--gold); }
.banner-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; background:rgba(10,17,40,.45); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; z-index:5; border:1px solid rgba(255,255,255,.25); transition:background .3s ease; }
.banner-arrow:hover{ background:rgba(10,17,40,.75); }
.banner-arrow svg{ width:20px; height:20px; color:#fff; }
.banner-arrow.prev{ left:22px; } .banner-arrow.next{ right:22px; }
@media(max-width:600px){ .banner-arrow{ width:38px; height:38px; } }

/* ============ MARQUEE ============ */
.marquee-strip{ background:var(--ink-2); border-top:1px solid var(--line-on-dark); border-bottom:1px solid var(--line-on-dark); padding:16px 0; overflow:hidden; white-space:nowrap; position:relative; }
.marquee-track{ display:inline-flex; align-items:center; gap:0; animation:marquee-scroll 32s linear infinite; }
.marquee-track span{ display:inline-flex; align-items:center; gap:14px; font-family:var(--font-mono); font-size:13.5px; letter-spacing:.08em; text-transform:uppercase; color:#AEB6CC; padding:0 34px; }
.marquee-track span svg{ width:14px; height:14px; color:var(--gold); flex-shrink:0; }
@keyframes marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.marquee-strip:hover .marquee-track{ animation-play-state:paused; }

/* ============ PAGE HEADER (inner pages) ============ */
.page-header{ background:var(--ink); position:relative; overflow:hidden; padding:120px 0 50px; }
.page-header .grid-pattern{ opacity:.4; }
.page-header .wrap{ position:relative; z-index:2; }
.page-header .eyebrow{ color:var(--gold); }
.page-header h1{ color:#fff; font-size:clamp(32px,4.6vw,42px); margin-bottom:16px; }
.breadcrumb{ display:flex; gap:8px; align-items:center; color:#d8dde8; font-family:var(--font-mono); font-size:13px; margin-top:20px; }
.breadcrumb a{ color:#f5f6fa; } .breadcrumb a:hover{ color:var(--gold); }
.page-header p{ color:#f5f6fa; font-size:16.5px; max-width:600px; line-height:1.6; }

/* ============ SLIDER (generic reusable) ============ */
.slider-shell{ overflow:hidden;
    padding:12px 0;}
.slider-viewport{ overflow:visible; }
.slider-track{ display:flex; gap:22px; transition:transform .55s cubic-bezier(.2,.8,.2,1); will-change:transform; }
.slider-controls{ display:flex; justify-content:flex-end; gap:12px; margin-bottom:26px; }
.slider-controls button{ width:46px; height:46px; border-radius:50%; border:1.5px solid var(--line-on-light); display:flex; align-items:center; justify-content:center; transition:all .3s ease; }
.slider-controls button:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }
.slider-controls button svg{ width:18px; height:18px; }
.slider-controls.on-dark button{ border-color:var(--line-on-dark); color:#fff; }
.slider-controls.on-dark button:hover{ background:var(--gold); border-color:var(--gold); color:#1A1200; }
.slider-controls button:disabled{ opacity:.3; cursor:default; pointer-events:none; }
.slider-head-row{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; margin-bottom:36px;}

/* ============ COURSE DISCOVERY ============ */
/* =========================================
   3 CARDS PER ROW SLIDER
========================================= */

.slider-shell {
    overflow: hidden;
    padding: 12px 0;
}

.slider-viewport {
    width: 100%;
    overflow: hidden;
}

.slider-track {
    display: flex;
    gap: 22px;
    transition: transform .55s cubic-bezier(.2,.8,.2,1);
    will-change: transform;
}

/* DESKTOP - EXACTLY 3 CARDS */
.course-slide-card {
    flex: 0 0 calc((100% - 44px) / 3);
    min-width: 0;
}

/* Course card full width */
.course-slide-card .course-card {
    width: 100%;
    height: 100%;
}

/* =========================================
   TABLET - 2 CARDS
========================================= */

@media (max-width: 991px) {

    .course-slide-card {
        flex: 0 0 calc((100% - 22px) / 2);
    }

}

/* =========================================
   MOBILE - 1 CARD
========================================= */

@media (max-width: 575px) {

    .slider-track {
        gap: 15px;
    }

    .course-slide-card {
        flex: 0 0 100%;
    }

}
@media(max-width:600px){ .course-slide-card{ min-width:78vw; flex-basis:78vw; } }
.course-card{ position:relative; border-radius:24px; overflow:hidden; min-height:440px; background:var(--ink); display:flex; flex-direction:column; justify-content:flex-end; padding:30px 26px; isolation:isolate; transition:transform .5s cubic-bezier(.2,.8,.2,1); cursor:pointer; height:100%; }
.course-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .8s ease, filter .5s ease; filter:saturate(0.85) brightness(.72);}
.course-card::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(10,17,40,.15) 0%, rgba(10,17,40,.94) 88%); }
.course-card:hover img{ transform:scale(1.08); filter:saturate(1) brightness(.6); }
.course-card:hover{ transform:translateY(-10px); }
.course-tag{ font-family:var(--font-mono); font-size:11.5px; color:var(--gold); letter-spacing:.1em; text-transform:uppercase; margin-bottom:10px; }
.course-card h3{ color:#fff; font-size:25px; margin-bottom:8px; }
.course-card p{ color:#AEB6CC; font-size:14.5px; line-height:1.55; max-height:0; opacity:0; overflow:hidden; transition:all .45s ease; }
.course-card:hover p{ max-height:100px; opacity:1; margin-bottom:14px; }
.course-highlights{ display:flex; flex-wrap:wrap; gap:8px; max-height:0; opacity:0; overflow:hidden; transition:all .45s ease .05s; margin-bottom:0;}
.course-card:hover .course-highlights{ max-height:60px; opacity:1; margin-bottom:16px; }
.course-highlights span{ font-size:11.5px; font-family:var(--font-mono); color:#cfd5e6; border:1px solid rgba(255,255,255,.2); padding:4px 9px; border-radius:20px; }
.course-cta{ display:inline-flex; align-items:center; gap:8px; color:#fff; font-weight:600; font-size:14.5px; }
.course-cta svg{ width:16px; height:16px; transition:transform .35s ease;}
.course-card:hover .course-cta svg{ transform:translateX(6px); }

/* ============ ABOUT SPLIT ============ */
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
@media(max-width:900px){ .about-grid{ grid-template-columns:1fr; gap:40px; } }
.about-visual{ position:relative; }
.about-photo-a{ border-radius:22px; overflow:hidden; aspect-ratio:5/5; box-shadow:0 30px 60px -24px rgba(10,17,40,.35); }
.about-photo-b{ position:absolute; width:56%; border-radius:18px; overflow:hidden; bottom:-40px; right:-30px; aspect-ratio:4/3; box-shadow:0 30px 50px -20px rgba(10,17,40,.4); border:5px solid var(--paper); }
.since-badge{ position:absolute; top:-20px; left:-20px; background:var(--ink); color:#fff; border-radius:50%; width:96px; height:96px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:var(--font-mono); text-align:center; box-shadow:0 20px 40px -14px rgba(10,17,40,.5); z-index:3; }
.since-badge .yr{ font-size:17px; font-weight:700; color:var(--gold);}
.since-badge .txt{ font-size:8.5px; letter-spacing:.06em; color:#AEB6CC; margin-top:2px;}
.about-copy h2{ font-size:clamp(28px,3.6vw,40px); margin-bottom:20px; }
.about-copy p{ color:#787a7f; font-size:16px; line-height:1.75; margin-bottom:18px; }
.exp-badge{ position:absolute; background:#fff; border-radius:14px; padding:14px 18px; box-shadow:0 20px 40px -16px rgba(10,17,40,.25); display:flex; align-items:center; gap:12px; border:1px solid var(--line-on-light); z-index:3;}
.exp-badge svg{ width:26px; height:26px; color:var(--gold-2); flex-shrink:0;}
.exp-badge .num{ font-family:var(--font-display); font-weight:800; font-size:19px; }
.exp-badge .lbl{ font-size:11.5px; color:#787a7f;}
.exp-1{ bottom:14%; left:-14%; }
@media(max-width:600px){ .exp-1{ left:2%; } .about-photo-b{ right:0; width:60%;} .since-badge{ width:80px;height:80px;} }

/* ============ VIDEO (REAL YOUTUBE EMBED) ============ */
.video-section{ /*background:var(--ink);*/ padding:110px 0; }
.video-frame{ position:relative; border-radius:26px; overflow:hidden; max-width:var(--container); margin:0 auto; aspect-ratio:16/8; box-shadow:0 50px 90px -30px rgba(0,0,0,.6); background:#000; }
.video-frame img{ width:100%; height:100%; object-fit:cover; cursor:pointer; }
.video-frame iframe{ width:100%; height:100%; border:0; display:block; }
.video-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,17,40,.25), rgba(10,17,40,.65)); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:20px; cursor:pointer; }
.play-btn{ width:88px; height:88px; border-radius:50%; background:rgba(255,255,255,.14); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; border:1.5px solid rgba(255,255,255,.4); position:relative; }
.play-btn::before{ content:""; position:absolute; inset:-14px; border-radius:50%; border:1.5px solid rgba(255,255,255,.25); animation:ripple 2.4s infinite; }
@keyframes ripple{ 0%{ transform:scale(.9); opacity:1;} 100%{ transform:scale(1.5); opacity:0;} }
.play-btn svg{ width:30px; height:30px; color:#fff; margin-left:4px; }
.video-overlay h3{ color:#fff; font-size:clamp(20px,2.6vw,28px); text-align:center; padding:0 20px; }
.video-caption{ text-align:center; margin-top:36px; color:#0334b9; font-size:17px; font-family:var(--font-display); font-weight:600; }

/* ============ STATS / LEGACY ============ */
.legacy{ background:var(--ink); position:relative; overflow:hidden; }
.legacy .grid-pattern{ opacity:.35; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line-on-dark); border-radius:24px; overflow:hidden; margin-top:20px;}
@media(max-width:780px){ .stats-grid{ grid-template-columns:1fr 1fr; } }
.stat-card{ background:var(--ink-2); padding:44px 30px; text-align:center; position:relative; }
.stat-num{ font-family:var(--font-mono); font-weight:700; font-size:clamp(38px,4.2vw,56px); color:var(--gold); line-height:1; margin-bottom:14px; }
.stat-lbl{ color:#fff; font-family:var(--font-display); font-weight:600; font-size:16px; margin-bottom:6px; }
.stat-sub{ color:#bdcae8; font-size:13px; }

/* ============ WHY CHOOSE ============ */
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line-on-light); border:1px solid var(--line-on-light); border-radius:24px; overflow:hidden;}
@media(max-width:900px){ .why-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .why-grid{ grid-template-columns:1fr; } }
.why-card{ background:#fff; padding:0; position:relative; overflow:hidden; transition:all .4s ease; }
.why-photo{ aspect-ratio:16/10; overflow:hidden; }
.why-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.why-card:hover .why-photo img{ transform:scale(1.08); }
.why-body{ padding:26px 26px 30px; }
.why-icon{ width:44px; height:44px; border-radius:12px; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.why-icon svg{ width:22px; height:22px; color:var(--gold-2); }
.why-card h3{ font-size:18px; margin-bottom:8px; }
.why-card p{ color:#787a7f; font-size:14px; line-height:1.6; }
.why-line{ position:absolute; bottom:0; left:0; height:3px; width:0%; background:var(--gold); transition:width .5s ease; }
.why-card:hover .why-line{ width:100%; }

/* =========================================
   TOPPERS GRID
   4 CARDS DESKTOP
========================================= */

.topper-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
    box-sizing: border-box;
}

/* CARD */

.topper-grid .topper-card {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;

    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--line-on-light);

    position: relative;

    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.topper-grid .topper-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 50px -20px rgba(10,17,40,.20);
}


/* =========================================
   PHOTO
========================================= */

.topper-grid .topper-photo {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 4.2;
    overflow: hidden;
    background: #fff;
}

.topper-grid .topper-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}


/* =========================================
   TROPHY
========================================= */

.topper-grid .topper-seal {
    position: absolute;
    top: 15px;
    right: 15px;

    width: 48px;
    height: 48px;

    border-radius: 50%;

    background: linear-gradient(
        135deg,
        #f8c84a,
        #f59e0b
    );

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 10px 25px rgba(245,158,11,.35);

    color: #fff;
    z-index: 5;
}

.topper-grid .topper-seal i {
    font-size: 20px;
}


/* =========================================
   BODY
========================================= */

.topper-grid .topper-body {
    padding: 20px;
    position: relative;
}

.topper-grid .topper-body::before {
    content: "";

    position: absolute;
    top: 0;
    left: 20px;
    right: 20px;

    border-top: 1.5px dashed var(--line-on-light);
}

.topper-grid .topper-roll {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--slate-light);

    letter-spacing: .06em;

    padding-top: 14px;
    margin-bottom: 8px;

    line-height: 1.4;
}

.topper-grid .topper-name {
    font-family: var(--font-display);
    font-weight: 700;

    font-size: 18px;
    line-height: 1.25;

    margin-bottom: 4px;
}

.topper-grid .topper-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;

    gap: 8px;
    margin-top: 12px;
}

.topper-grid .topper-exam {
    font-size: 12.5px;
    color: var(--slate);

    min-width: 0;
}

.topper-grid .topper-rank {
    font-family: var(--font-mono);
    font-weight: 700;

    color: var(--gold-2);
    font-size: 15px;

    white-space: nowrap;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 991px) {

    .topper-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 575px) {

    .topper-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .topper-grid .topper-card {
        border-radius: 17px;
    }

    .topper-grid .topper-photo {
        aspect-ratio: 4 / 4.2 !important;
    }

    .topper-grid .topper-seal {
        width: 42px;
        height: 42px;

        top: 12px;
        right: 12px;
    }

    .topper-grid .topper-seal i {
        font-size: 17px;
    }

    .topper-grid .topper-body {
        padding: 17px;
    }

    .topper-grid .topper-name {
        font-size: 17px;
    }

}
/* ============ STUDENT TESTIMONIALS (carousel, light) ============ */
.testi-wrap{ position:relative; overflow:hidden; }
.testi-track{ display:flex; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.testi-slide{ min-width:100%; display:grid; grid-template-columns:auto 1fr; gap:34px; align-items:center; padding:8px; }
@media(max-width:700px){ .testi-slide{ grid-template-columns:1fr; text-align:center;gap:0px; } }
.testi-photo{ width:110px; height:110px; border-radius:50%; overflow:hidden; border:3px solid var(--gold-soft); margin:0 auto;}
.testi-photo img{ width:100%; height:100%; object-fit:contain; }
.testi-quote-mark{ font-family:var(--font-display); font-size:60px; color:rgb(242 169 59 / 87%); line-height:1; margin-bottom:6px; }
.testi-text{ font-size:19px; line-height:1.6; font-family:var(--font-display); font-weight:500; color:var(--ink); margin-bottom:20px; }
.testi-name{ font-weight:700; font-size:15px; }
.testi-role{ color:var(--slate); font-size:13.5px; }
.testi-nav{ display:flex; gap:10px; justify-content:center; margin-top:34px; }
.testi-nav button{ width:9px; height:9px; border-radius:50%; background:var(--line-on-light); transition:all .3s ease; }
.testi-nav button.active{ background:var(--gold-2); width:26px; border-radius:6px; }
.testi-card-bg{ background:#fff; border-radius:26px; padding:50px; border:1px solid var(--line-on-light); }

/* ============ PARENT TESTIMONIALS â€” distinct wall-of-quotes design (dark) ============ */
.parent-section{ background:var(--ink); position:relative; overflow:hidden; }
.parent-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:900px){ .parent-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .parent-grid{ grid-template-columns:1fr; } }
.parent-quote-card{ background:var(--ink-2); border:1px solid var(--line-on-dark); border-radius:20px; padding:30px 26px; position:relative; transition:all .35s ease; }
.parent-quote-card:hover{ background:var(--ink-3); transform:translateY(-6px); }
.parent-quote-mark{ font-family:var(--font-display); font-size:44px; color:var(--gold); opacity:.5; line-height:1; margin-bottom:6px; }
.parent-quote-text{ color:#DDE1EC; font-size:15px; line-height:1.7; margin-bottom:24px; min-height:110px; }
.parent-who{ display:flex; align-items:center; gap:12px; padding-top:18px; border-top:1px dashed var(--line-on-dark); }
.parent-who img{ width:48px; height:48px; border-radius:50%; object-fit:cover; }
.parent-who-name{ color:#fff; font-weight:700; font-size:14.5px; }
.parent-who-role{ color:#8891A6; font-size:12px; }

/* ============ ANNOUNCEMENTS ============ */
.announce-slide-card{ min-width:340px; flex:0 0 340px; }
@media(max-width:600px){ .announce-slide-card{ min-width:82vw; flex-basis:82vw; } }
.announce-card{ background:#fff; border:1px solid var(--line-on-light); border-radius:18px; padding:26px; position:relative; transition:all .35s ease; height:100%; }
.announce-card:hover{ border-color:var(--gold); transform:translateY(-4px); box-shadow:0 20px 40px -20px rgba(10,17,40,.2); }
.announce-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.announce-cat{ font-family:var(--font-mono); font-size:11px; color:var(--gold-2); text-transform:uppercase; letter-spacing:.06em; }
.announce-date{ font-size:12px; color:var(--slate-light); }
.new-badge{ background:var(--signal); color:#fff; font-size:10px; font-weight:700; padding:3px 9px; border-radius:20px; letter-spacing:.04em; animation:blinkbadge 2s infinite; }
@keyframes blinkbadge{ 0%,100%{opacity:1;} 50%{opacity:.55;} }
.announce-card h4{ font-size:17px; margin-bottom:8px; }
.announce-card p{ font-size:14px; color:#787a7f; line-height:1.55; margin-bottom:16px; }
.announce-more{ font-size:13.5px; font-weight:600; color:var(--ink); display:inline-flex; gap:6px; align-items:center; }

/* ============ RESOURCES ============ */
.resource-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media(max-width:900px){ .resource-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .resource-grid{ grid-template-columns:1fr; } }
.resource-card{ background:#2f54a3; border-radius:18px; padding:26px; display:flex; gap:16px; align-items:flex-start; transition:all .35s ease; border:1px solid var(--line-on-dark);}
.resource-card:hover{ background:var(--ink-3); transform:translateY(-4px); }
.resource-icon{ width:46px; height:46px; border-radius:12px; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.resource-icon svg{ width:22px; height:22px; color:var(--gold); }
.resource-card h4{ color:#fff; font-size:16px; margin-bottom:6px; }
.resource-card p{ color:#d2d6df; font-size:13px; }

/* ============ BLOG ============ */
.blog-slide-card{ min-width:340px; flex:0 0 340px; }
@media(max-width:600px){ .blog-slide-card{ min-width:82vw; flex-basis:82vw; } }
.blog-card{ border-radius:20px; overflow:hidden; background:#fff; border:1px solid var(--line-on-light); transition:all .35s ease; height:100%; }
.blog-card:hover{ box-shadow:0 24px 44px -20px rgba(10,17,40,.2); transform:translateY(-4px); }
.blog-img{ aspect-ratio:16/10; overflow:hidden; }
.blog-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.blog-card:hover .blog-img img{ transform:scale(1.08); }
.blog-body{ padding:22px; }
.blog-meta{ display:flex; gap:12px; align-items:center; font-size:11.5px; color:var(--slate-light); font-family:var(--font-mono); margin-bottom:12px; flex-wrap:wrap; }
.blog-cat{ color:var(--gold-2); font-weight:600; }
.blog-card h4{ font-size:18px; margin-bottom:10px; line-height:1.3; }
.blog-card p{ font-size:13.5px; color:#787a7f; line-height:1.6; margin-bottom:14px; }
.blog-read{ font-size:13.5px; font-weight:600; display:inline-flex; align-items:center; gap:6px; }

/* ============ FAQ ============ */
.faq-list{ max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.faq-item{ background:#fff; border:1px solid var(--line-on-light); border-radius:16px; overflow:hidden; transition:border-color .3s ease; }
.faq-item.open{ border-color:var(--gold); }
.faq-question{ display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 26px; cursor:pointer; }
.faq-question h4{ font-size:16px; font-weight:600; }
.faq-icon{ width:32px; height:32px; border-radius:50%; background:var(--paper); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .35s ease; }
.faq-item.open .faq-icon{ background:var(--gold); transform:rotate(135deg); }
.faq-icon svg{ width:16px; height:16px; color:var(--ink); }
.faq-item.open .faq-icon svg{ color:#1A1200; }
.faq-answer{ max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-answer-inner{ padding:0 26px 24px; color:var(--slate); font-size:14.5px; line-height:1.7; }

/* ============ TOPPERS BANNER STRIP (Our Toppers 2025 highlight) ============ */
.toppers-strip{ background:linear-gradient(120deg, var(--ink) 0%, var(--ink-3) 100%); border-radius:28px; padding:60px 50px; text-align:center; position:relative; overflow:hidden; }
.toppers-strip .trophy{ width:56px; height:56px; margin:0 auto 20px; color:var(--gold); }
.toppers-strip h2{ color:#fff; font-size:clamp(26px,3.4vw,38px); margin-bottom:14px; }
.toppers-strip p{ color:#AEB6CC; max-width:560px; margin:0 auto 30px; font-size:15.5px; line-height:1.6; }

/* ============ FINAL CTA ============ */
.final-cta{ background:#5b5756; position:relative; overflow:hidden; padding:50px 0; text-align:center; }
.final-cta h2{ color:#fff; font-size:clamp(30px,4.6vw,40px); max-width:780px; margin:0 auto 22px; line-height:55px;}
.final-cta p{ color:#AEB6CC; font-size:17px; max-width:560px; margin:0 auto 40px; line-height:1.6; }
.final-ctas{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:26px; }
.final-trust{ color:#8891A6; font-size:13.5px; font-family:var(--font-mono); }

/* ============ CONTACT / ENQUIRY ============ */
.contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; }
@media(max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:36px;} }
.contact-info h2{ font-size:clamp(26px,3.4vw,36px); margin-bottom:18px; }
.contact-info p{ color:var(--slate); font-size:15.5px; line-height:1.7; margin-bottom:32px; }
.contact-actions{ display:flex; flex-direction:column; gap:14px; }
.contact-action{ display:flex; align-items:center; gap:16px; padding:16px 18px; border:1px solid var(--line-on-light); border-radius:16px; transition:all .3s ease;}
.contact-action:hover{ border-color:var(--gold); background:var(--gold-soft); }
.contact-action .ico{ width:42px; height:42px; border-radius:11px; background:var(--ink); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.contact-action .ico svg{ width:20px; height:20px; color:var(--gold); }
.contact-action .txt-lbl{ font-size:11.5px; color:var(--slate-light); font-family:var(--font-mono); }
.contact-action .txt-val{ font-weight:600; font-size:15px; }
.enquiry-form{ background:#fff; border-radius:26px; padding:40px; border:1px solid var(--line-on-light); box-shadow:0 30px 60px -30px rgba(10,17,40,.2); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
@media(max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.field label{ display:block; font-size:12.5px; font-weight:600; margin-bottom:8px; color:var(--slate); }
.field input, .field select, .field textarea{ width:100%; padding:13px 15px; border:1.5px solid var(--line-on-light); border-radius:11px; font-family:inherit; font-size:14.5px; background:var(--paper); transition:all .25s ease; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); background:#fff; box-shadow:0 0 0 4px var(--gold-soft); }
.field{ margin-bottom:16px; }
.enquiry-form .btn-gold{ width:100%; justify-content:center; margin-top:6px; padding:16px; }
.form-note{ text-align:center; font-size:12px; color:var(--slate-light); margin-top:14px; }
.map-embed{ border-radius:20px; overflow:hidden; border:1px solid var(--line-on-light); aspect-ratio:16/9; }
.map-embed iframe{ width:100%; height:100%; border:0; }

/* ============ GENERIC CONTENT BLOCKS (inner pages) ============ */
.content-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
@media(max-width:900px){ .content-grid-2{ grid-template-columns:1fr; gap:36px; } }
.simple-card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:900px){ .simple-card-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .simple-card-grid{ grid-template-columns:1fr; } }
.simple-card{ background:#fff; border:1px solid var(--line-on-light); border-radius:20px; overflow:hidden; transition:all .3s ease; }
.simple-card:hover{ transform:translateY(-6px); box-shadow:0 24px 44px -20px rgba(10,17,40,.2); }
.simple-card img{ aspect-ratio:4/3; object-fit:cover; width:100%; }
.simple-card-body{ padding:22px; }
.simple-card-body h3{ font-size:18px; margin-bottom:8px; }
.simple-card-body p{ font-size:14px; color:var(--slate); line-height:1.6; }

.faculty-card{ text-align:center; }
.faculty-card img{ aspect-ratio:1; border-radius:50%; width:140px; height:140px; object-fit:cover; margin:0 auto 18px; border:4px solid var(--gold-soft); }
.faculty-card h4{ font-size:16px; margin-bottom:4px; }
.faculty-card .role{ color:var(--gold-2); font-size:13px; font-weight:600; margin-bottom:8px; }
.faculty-card p{ font-size:13px; color:var(--slate); }

.timeline{ max-width:760px; margin:0 auto; position:relative; padding-left:34px; border-left:2px dashed var(--line-on-light); }
.timeline-item{ position:relative; padding-bottom:38px; }
.timeline-item::before{ content:""; position:absolute; left:-40px; top:2px; width:14px; height:14px; border-radius:50%; background:var(--gold); border:3px solid #fff; box-shadow:0 0 0 2px var(--gold); }
.timeline-item h4{ font-size:16px; margin-bottom:6px; }
.timeline-item .yr{ font-family:var(--font-mono); color:var(--gold-2); font-size:13px; margin-bottom:6px; display:block; }
.timeline-item p{ color:var(--slate); font-size:14px; line-height:1.6; }

.gallery-grid{ columns:3 220px; column-gap:16px; }
@media(max-width:700px){ .gallery-grid{ columns:2 160px; } }
.gallery-grid img{ width:100%; margin-bottom:16px; border-radius:16px; break-inside:avoid; }

.download-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; background:#fff; border:1px solid var(--line-on-light); border-radius:14px; padding:18px 22px; margin-bottom:14px; transition:all .3s ease; }
.download-row:hover{ border-color:var(--gold); box-shadow:0 16px 30px -18px rgba(10,17,40,.2); }
.download-row .dl-info{ display:flex; align-items:center; gap:16px; }
.download-row .dl-icon{ width:44px; height:44px; border-radius:11px; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.download-row .dl-icon svg{ width:20px; height:20px; color:var(--gold-2); }
.download-row h4{ font-size:15px; margin-bottom:3px; }
.download-row span{ font-size:12.5px; color:var(--slate-light); }

.portal-card{ background:var(--ink-2); border:1px solid var(--line-on-dark); border-radius:20px; padding:34px; text-align:center; transition:all .3s ease; }
.portal-card:hover{ background:var(--ink-3); transform:translateY(-6px); }
.portal-card .p-icon{ width:56px; height:56px; border-radius:16px; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.portal-card .p-icon svg{ width:26px; height:26px; color:var(--gold); }
.portal-card h3{ color:#fff; font-size:18px; margin-bottom:10px; }
.portal-card p{ color:#8891A6; font-size:13.5px; margin-bottom:20px; }

.tab-row{ display:flex; gap:10px; margin-bottom:40px; flex-wrap:wrap; }
.tab-btn{ padding:12px 24px; border-radius:100px; border:1.5px solid var(--line-on-light); font-weight:600; font-size:14px; transition:all .3s ease; }
.tab-btn.active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }

/* fade-up utility for GSAP */
.fade-up{ opacity:0; transform:translateY(36px); }

/* Hero atmosphere reused on inner pages */
.hero-bg-fx{ position:absolute; inset:0; overflow:hidden; }
.blob{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.35; }
.blob-1{ width:520px; height:520px; background:radial-gradient(circle, #2b3f7a, transparent 70%); top:-160px; right:-120px; animation:float1 16s ease-in-out infinite; }
.blob-2{ width:420px; height:420px; background:radial-gradient(circle, var(--gold), transparent 70%); opacity:.14; bottom:-140px; left:-80px; animation:float2 20s ease-in-out infinite; }
@keyframes float1{ 0%,100%{ transform:translate(0,0);} 50%{ transform:translate(-40px,50px);} }
@keyframes float2{ 0%,100%{ transform:translate(0,0);} 50%{ transform:translate(50px,-40px);} }
.grid-pattern{ position:absolute; inset:0; background-image:linear-gradient(var(--line-on-dark) 1px, transparent 1px), linear-gradient(90deg, var(--line-on-dark) 1px, transparent 1px); background-size:64px 64px; mask-image:radial-gradient(ellipse 70% 60% at 50% 30%, black, transparent); opacity:.5;}

/* ============ FOOTER ============ */
footer{ background:var(--ink); color:#e0e1e4; padding:80px 0 30px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; margin-bottom:60px; }
@media(max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:#fff; font-size:14px; margin-bottom:20px; letter-spacing:.03em; }
.footer-grid ul{ display:flex; flex-direction:column; gap:12px; }
.footer-grid a{ font-size:14px; color:#e0e1e4; transition:color .25s; }
.footer-grid a:hover{ color:var(--gold); }
.footer-logo-img{ height:52px; width:auto; background:#fff; padding:6px 12px; border-radius:10px; margin-bottom:18px; display:inline-block; }
.footer-desc{ font-size:14px; line-height:1.7; margin-bottom:22px; max-width:300px; }
.social-row{ display:flex; gap:12px; }
.social-row a{ width:38px; height:38px; border-radius:10px; border:1px solid var(--line-on-dark); display:flex; align-items:center; justify-content:center; }
.social-row a:hover{ background:var(--gold); border-color:var(--gold); }
.social-row a:hover svg{ color:var(--ink); }
.social-row svg{ width:17px; height:17px; }
.footer-bottom{ border-top:1px solid var(--line-on-dark); padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:13px; }
.footer-bottom .links{ display:flex; gap:20px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}


/* ============ PARENT VOICES â€” VIDEO TESTIMONIALS ============ */
.parent-video-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:900px){ .parent-video-grid{ grid-template-columns:1fr; } }
.parent-video-card{
  position:relative; border-radius:20px; overflow:hidden; aspect-ratio:16/10; background:#000;
  box-shadow:0 30px 60px -24px rgba(0,0,0,.55); border:1px solid var(--line-on-dark);
}
.parent-video-card img{ width:100%; height:100%; object-fit:cover; cursor:pointer; transition:transform .6s ease; }
.parent-video-card:hover img{ transform:scale(1.06); }
.parent-video-card iframe{ width:100%; height:100%; border:0; display:block; }
.parent-video-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,17,40,.1) 40%, rgba(10,17,40,.88) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:20px; cursor:pointer; }
.parent-video-play{ width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.16); backdrop-filter:blur(6px); border:1.5px solid rgba(255,255,255,.45); display:flex; align-items:center; justify-content:center; margin-bottom:auto; }
.parent-video-play svg{ width:20px; height:20px; color:#fff; margin-left:2px; }
.parent-video-who{ display:flex; align-items:center; gap:10px; }
.parent-video-avatar{ width:38px; height:38px; border-radius:50%; overflow:hidden; border:1.5px solid var(--gold); flex-shrink:0; }
.parent-video-avatar img{ width:100%; height:100%; object-fit:cover; }
.parent-video-name{ color:#fff; font-weight:700; font-size:14.5px; }
.parent-video-role{ color:#AEB6CC; font-size:12px; }

/* ============ GENERIC GRIDS (inner pages) ============ */
.cards-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:900px){ .cards-grid-3{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .cards-grid-3{ grid-template-columns:1fr; } }
.cards-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media(max-width:700px){ .cards-grid-2{ grid-template-columns:1fr; } }

/* ============ BATCH CARDS (course pages) ============ */
.batch-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:900px){ .batch-grid{ grid-template-columns:1fr; } }
.batch-card{ background:#fff; border:1px solid var(--line-on-light); border-radius:22px; padding:34px 28px; position:relative; transition:all .35s ease; }
.batch-card:hover{ border-color:var(--gold); transform:translateY(-6px); box-shadow:0 30px 50px -24px rgba(10,17,40,.2); }
.batch-num{ font-family:var(--font-mono); font-size:13px; color:var(--gold-2); letter-spacing:.08em; margin-bottom:14px; display:block; }
.batch-card h3{ font-size:21px; margin-bottom:6px; }
.batch-for{ color:var(--slate); font-size:14px; margin-bottom:20px; }
.batch-meta{ display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
.batch-meta div{ display:flex; justify-content:space-between; font-size:13.5px; border-bottom:1px dashed var(--line-on-light); padding-bottom:8px; }
.batch-meta span:first-child{ color:var(--slate-light); }
.batch-meta span:last-child{ font-weight:600; }

/* ============ DOWNLOAD LIST (answer key / resources) ============ */
.download-list{ display:flex; flex-direction:column; gap:14px; }
.download-item{ display:flex; align-items:center; gap:18px; background:#fff; border:1px solid var(--line-on-light); border-radius:16px; padding:18px 22px; transition:all .3s ease; }
.download-item:hover{ border-color:var(--gold); background:var(--gold-soft); }
.download-icon{ width:46px; height:46px; border-radius:12px; background:var(--ink); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.download-icon svg{ width:20px; height:20px; color:var(--gold); }
.download-info{ flex:1; }
.download-info h4{ font-size:15.5px; margin-bottom:3px; }
.download-info span{ font-size:12.5px; color:var(--slate-light); font-family:var(--font-mono); }
.download-btn{ width:42px; height:42px; border-radius:50%; border:1.5px solid var(--line-on-light); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .3s ease; }
.download-btn:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }
.download-btn svg{ width:17px; height:17px; }

/* ============ STUDENT PORTAL ============ */
.portal-hero{ background:var(--ink); border-radius:28px; padding:56px; text-align:center; position:relative; overflow:hidden; }
.portal-hero .grid-pattern{ opacity:.4; }
.portal-hero-inner{ position:relative; z-index:2; max-width:520px; margin:0 auto; }
.portal-hero h2{ color:#fff; font-size:clamp(24px,3vw,32px); margin-bottom:14px; }
.portal-hero p{ color:#AEB6CC; margin-bottom:28px; font-size:15px; }
.portal-form{ display:flex; flex-direction:column; gap:14px; text-align:left; }
.portal-form input{ padding:14px 16px; border-radius:11px; border:1.5px solid var(--line-on-dark); background:rgba(255,255,255,.06); color:#fff; font-family:inherit; font-size:14.5px; }
.portal-form input::placeholder{ color:#8891A6; }
.portal-form input:focus{ outline:none; border-color:var(--gold); }
.portal-form .btn{ justify-content:center; margin-top:6px; }

/* ============ CENTERS ============ */
.centers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:900px){ .centers-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .centers-grid{ grid-template-columns:1fr; } }
.center-card{ background:#fff; border:1px solid var(--line-on-light); border-radius:18px; padding:24px; transition:all .3s ease; }
.center-card:hover{ border-color:var(--gold); transform:translateY(-4px); }
.center-card .tag{ font-family:var(--font-mono); font-size:11px; color:var(--gold-2); letter-spacing:.06em; text-transform:uppercase; margin-bottom:10px; display:block;}
.center-card h4{ font-size:17px; margin-bottom:8px; }
.center-card p{ color:var(--slate); font-size:13.5px; line-height:1.6; margin-bottom:14px; }
.center-card a{ font-size:13px; font-weight:600; display:inline-flex; align-items:center; gap:6px; }
.map-embed{ border-radius:22px; overflow:hidden; border:1px solid var(--line-on-light); }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }

/* ============ BLOG DETAIL / LISTING (inner pages) ============ */
.blog-filter-row{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:40px; }
.blog-filter-row button{ padding:10px 20px; border-radius:100px; border:1.5px solid var(--line-on-light); font-size:13.5px; font-weight:600; transition:all .25s ease;}
.blog-filter-row button.active, .blog-filter-row button:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }

/* ============ BLOG DETAIL PAGE ============ */
.post-hero-img{ border-radius:24px; overflow:hidden; aspect-ratio:16/7; margin-bottom:0; box-shadow:0 30px 60px -24px rgba(10,17,40,.35); }
.post-hero-img img{ width:100%; height:100%; object-fit:cover; }
.blog-detail-grid{ display:grid; grid-template-columns:1fr 340px; gap:60px; align-items:start; }
@media(max-width:900px){ .blog-detail-grid{ grid-template-columns:1fr; } }
.post-tag-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:18px; font-family:var(--font-mono); font-size:12.5px; color:var(--slate-light); }
.post-tag-row .cat-pill{ background:var(--gold-soft); color:var(--gold-2); padding:5px 14px; border-radius:100px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.prose{ color:var(--slate); font-size:16.5px; line-height:1.85; }
.prose h2{ color:var(--ink3); font-size:24px; margin:38px 0 16px; }
.prose h3{ color:var(--ink3); font-size:19px; margin:28px 0 12px; }
.prose p{ margin-bottom:18px; }
.prose ul, .prose ol{ margin:0 0 18px 22px; }
.prose li{ margin-bottom:10px; }
.prose blockquote{ border-left:3px solid var(--gold); padding:4px 0 4px 22px; margin:26px 0; font-family:var(--font-display); font-weight:600; font-size:18px; color:var(--ink); }
.author-row{ display:flex; align-items:center; gap:14px; padding:22px 0; border-top:1px solid var(--line-on-light); border-bottom:1px solid var(--line-on-light); margin:34px 0; }
.author-avatar{ width:48px; height:48px; border-radius:50%; overflow:hidden; flex-shrink:0; }
.author-avatar img{ width:100%; height:100%; object-fit:cover; }
.author-name{ font-weight:700; font-size:14.5px; }
.author-role{ font-size:12.5px; color:var(--slate-light); }
.share-row{ display:flex; align-items:center; gap:12px; margin-top:8px; }
.share-row span{ font-size:12.5px; color:var(--slate-light); font-family:var(--font-mono); }
.share-row a{ width:36px; height:36px; border-radius:50%; border:1px solid var(--line-on-light); display:flex; align-items:center; justify-content:center; transition:all .25s ease; }
.share-row a:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }
.share-row svg{ width:15px; height:15px; }
.blog-sidebar{ display:flex; flex-direction:column; gap:32px; position:sticky; top:110px; }
.sidebar-box{ background:var(--paper); border-radius:18px; padding:24px; border:1px solid var(--line-on-light); }
.sidebar-box h4{ font-size:14px; margin-bottom:18px; text-transform:uppercase; letter-spacing:.04em; }
.sidebar-post{ display:flex; gap:12px; margin-bottom:16px; }
.sidebar-post:last-child{ margin-bottom:0; }
.sidebar-post img{ width:64px; height:64px; border-radius:10px; object-fit:cover; flex-shrink:0; }
.sidebar-post h5{ font-size:13.5px; line-height:1.4; margin-bottom:4px; }
.sidebar-post span{ font-size:11.5px; color:var(--slate-light); font-family:var(--font-mono); }
.sidebar-cats{ display:flex; flex-wrap:wrap; gap:8px; }
.sidebar-cats a{ font-size:12.5px; padding:7px 13px; border-radius:100px; background:#fff; border:1px solid var(--line-on-light); }
.sidebar-cats a:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.sidebar-cta{ background:var(--ink); border-radius:18px; padding:26px; text-align:center; }
.sidebar-cta h4{ color:#fff; text-transform:none; letter-spacing:0; font-size:16px; margin-bottom:8px; }
.sidebar-cta p{ color:#AEB6CC; font-size:13px; margin-bottom:16px; }
.sidebar-cta .btn{ width:100%; justify-content:center; padding:12px; font-size:13.5px; }

/* ==========================================================================
   RESPONSIVE HARDENING â€” extra breakpoints & overflow-safety pass
   ========================================================================== */

/* Global safety: never allow horizontal scroll from any element */
html{ overflow-x:hidden; max-width:100%; }
body{ max-width:100%; }
*{ min-width:0; }

/* Flex text children need explicit min-width:0 to wrap instead of forcing overflow */
.download-info, .resource-card > div:last-child, .sidebar-post > div,
.contact-action > div:last-child, .parent-video-who > div, .center-card{ min-width:0; }

/* ---------- NAV: prevent overflow on small phones ---------- */
@media(max-width:480px){
  .nav{ padding:16px 0; }
  .nav.scrolled{ padding:10px 0; }
  .logo-img{ height:38px; padding:3px 8px; }
  .nav.scrolled .logo-img{ height:32px; }
  .nav-cta{ gap:10px; }
  .nav-cta .btn{ padding:10px 14px; font-size:12.5px; }
}
@media(max-width:360px){
  /* Enquire button duplicated by mobile-cta-bar below â€” free up header space */
  .nav-cta .btn-gold{ display:none; }
}

/* ---------- Section / container spacing ---------- */
@media(max-width:480px){
  .wrap{ padding:0 16px; }
  .section-pad{ padding:56px 0; }
  .section-head{ margin-bottom:36px; }
}

/* ---------- Page header (inner pages) ---------- */
@media(max-width:780px){ .page-header{ padding:140px 0 60px; } }
@media(max-width:480px){ .page-header{ padding:120px 0 48px; } .breadcrumb{ font-size:12px; flex-wrap:wrap; } }

/* ---------- Hero banner arrows / marquee ---------- */
@media(max-width:480px){
  .banner-arrow{ width:34px; height:34px; }
  .banner-arrow.prev{ left:10px; } .banner-arrow.next{ right:10px; }
  .banner-nav{ bottom:14px; }
  .marquee-track span{ font-size:12px; padding:0 22px; gap:10px; }
}

/* ---------- Stats grid: prevent number wrap/overflow on 2-col mobile ---------- */
@media(max-width:780px){
  .stat-card{ padding:30px 16px; }
  .stat-num{ font-size:clamp(26px,7vw,38px); margin-bottom:8px; }
  .stat-lbl{ font-size:13.5px; }
  .stat-sub{ font-size:11.5px; }
}
@media(max-width:420px){
  .stats-grid{ grid-template-columns:1fr; }
}

/* ---------- Large-padding cards: tighten on mobile ---------- */
@media(max-width:600px){
  .testi-card-bg{ padding:28px 22px; }
  .testi-text{ font-size:16.5px; }
  .enquiry-form{ padding:26px 20px; }
  .portal-hero{ padding:34px 22px; }
  .toppers-strip{ padding:40px 24px; }
  .batch-card{ padding:26px 22px; }
  .sidebar-cta{ padding:20px; }
}

/* ---------- Buttons: keep CTAs from overflowing tight flex rows ---------- */
@media(max-width:480px){
  .btn{ padding:13px 20px; font-size:14px; }
  .final-ctas, .slide-ctas{ flex-direction:column; align-items:stretch; }
  .final-ctas .btn, .slide-ctas .btn{ justify-content:center; }
}

/* ---------- Gallery masonry: avoid overflow below ~380px ---------- */
@media(max-width:420px){ .gallery-grid{ columns:2 130px; column-gap:10px; } .gallery-grid img{ margin-bottom:10px; } }

/* ---------- Blog detail sidebar: don't stay sticky once stacked under content ---------- */
@media(max-width:900px){ .blog-sidebar{ position:static; top:auto; } }

/* ---------- Download / resource rows: allow wrap gracefully ---------- */
@media(max-width:480px){
  .download-item{ padding:14px 16px; gap:12px; }
  .download-icon, .download-btn{ width:38px; height:38px; }
  .download-info h4{ font-size:14px; }
  .resource-card{ padding:20px; }
}

/* ---------- Footer: center-align on very small screens for tidier stack ---------- */
@media(max-width:480px){
  footer{ padding:56px 0 24px; }
  .footer-desc{ max-width:100%; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}

/* ---------- Toppers / course / announce / blog slide cards: avoid edge cramping ---------- */
@media(max-width:380px){
  .course-slide-card{ min-width:84vw; flex-basis:84vw; }
  .topper-slide-card{ min-width:80vw; flex-basis:80vw; }
  .announce-slide-card, .blog-slide-card{ min-width:88vw; flex-basis:88vw; }
}

/* ---------- Contact / centers ---------- */
@media(max-width:480px){
  .contact-action{ padding:14px; gap:12px; }
  .center-card{ padding:18px; }
}
/*==============================
Blog Pagination
===============================*/
.blog-pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    margin:0px 0px 40px;
    flex-wrap:wrap;
}

.blog-pagination .page-btn{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    border:1px solid #e7e7e7;
    border-radius:14px;
    background:#fff;
    color:#1b1b1b;
    font-size:16px;
    font-weight:600;
    transition:.35s ease;
    box-shadow:0 10px 30px rgba(0,0,0,.05);
}

.blog-pagination .page-btn:hover{
    background:var(--primary);
    border-color:var(--primary);
    color:#fff;
    transform:translateY(-3px);
}

.blog-pagination .page-btn.active{
    background:var(--gold);
    border-color:var(--gold);
    color:#1A1200;
}

.blog-pagination .page-btn.disabled{
    opacity:.45;
    pointer-events:none;
}

.blog-pagination .page-dots{
    font-size:22px;
    color:#888;
    letter-spacing:2px;
}

@media (max-width:576px){

    .blog-pagination{
        gap:8px;
        margin-top:45px;
    }

    .blog-pagination .page-btn{
        width:42px;
        height:42px;
        font-size:15px;
        border-radius:12px;
    }

}
.course-overview{

background:#f8fbff;

}

.overview-grid{

display:grid;
grid-template-columns:repeat(4,1fr);
gap:28px;
margin-top:55px;

}

.overview-card{

background:#fff;
padding:35px;
border-radius:24px;
border:1px solid #edf2f7;
box-shadow:0 15px 45px rgba(0,0,0,.06);
transition:.35s;
position:relative;
overflow:hidden;

}

.overview-card:hover{

transform:translateY(-10px);

}

.overview-card:before{

content:"";
position:absolute;
right:-70px;
top:-70px;

width:180px;
height:180px;

background:rgba(209,6,8,.05);

border-radius:50%;

}

.overview-card.featured{

background:linear-gradient(135deg,#071739,#103b8d);
color:#fff;

}

.overview-card.featured p{

color:#d7dff5;

}

.overview-icon{

width:70px;
height:70px;
border-radius:18px;
background:#f3f6ff;
display:flex;
align-items:center;
justify-content:center;
margin-bottom:28px;

}

.overview-card.featured .overview-icon{

background:rgba(255,255,255,.12);

}

.overview-icon svg{

width:34px;
height:34px;
stroke:#d10608;

}

.overview-card.featured svg{

stroke:#fff;

}

.overview-label{

font-size:13px;
text-transform:uppercase;
letter-spacing:2px;
color:#8b97a7;
display:block;
margin-bottom:10px;

}

.overview-card.featured .overview-label{

color:#fff;

}

.overview-card h3{

font-size:20px;
line-height:25px;
margin-bottom:14px;

}

.overview-card p{

margin:0;
line-height:1.8;
color:#667085;

}

@media(max-width:991px){

.overview-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:575px){

.overview-grid{

grid-template-columns:1fr;

}

.overview-card{

padding:28px;

}

}
/*.stats-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:25px;
margin-top:50px;
}

.stat-card{
background:#fff;
padding:35px;
border-radius:20px;
box-shadow:0 15px 40px rgba(0,0,0,.08);
transition:.4s;
text-align:left;
}

.stat-card:hover{
transform:translateY(-8px);
}

.stat-icon{
width:65px;
height:65px;
border-radius:16px;
background:#eef5ff;
display:flex;
align-items:center;
justify-content:center;
font-size:26px;
color:var(--primary);
margin-bottom:25px;
}

.stat-card h4{
font-size:20px;
margin-bottom:10px;
font-weight: 500;

}

.stat-card p{
margin:0;
color:#666;
line-height:1.8;
}

.feature-list{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:25px;
margin-top:35px;
}

.feature-item{
display:flex;
gap:15px;
align-items:flex-start;
}

.feature-item i{
font-size:22px;
color:#0d6efd;
margin-top:4px;
}

.feature-item h5{
margin-bottom:8px;
font-size:18px;
}

.feature-item p{
margin:0;
color:#666;
line-height:1.7;
}

@media(max-width:991px){

.stats-grid{
grid-template-columns:repeat(2,1fr);
}

.feature-list{
grid-template-columns:1fr;
}

}

@media(max-width:575px){

.stats-grid{
grid-template-columns:1fr;
}

}*/
.highlight-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:25px;
margin-top:50px;
}

.highlight-card{
background:#fff;
padding:35px 30px;
border-radius:20px;
transition:.35s;
box-shadow:0 10px 35px rgba(0,0,0,.08);
}

.highlight-card:hover{
transform:translateY(-10px);
}

.highlight-card .icon{
width:70px;
height:70px;
border-radius:18px;
background:rgba(13,110,253,.08);
display:flex;
align-items:center;
justify-content:center;
font-size:28px;
color:var(--primary);
margin-bottom:25px;
}

.highlight-card h4{
margin-bottom:12px;
font-size:20px;
}

.highlight-card p{
color:#666;
line-height:1.8;
margin:0;
}

.weekly-sec{
background:#f8fbff;
}

.weekly-grid{
/*display:grid;*/
grid-template-columns:repeat(3,1fr);
gap:28px;
margin-top:60px;

}

.week-card{

background:#fff;
padding:28px;
border-radius:24px;
border:1px solid #edf2f8;
box-shadow:0 15px 45px rgba(0,0,0,.05);
transition:.35s;

}

.week-card:hover{

transform:translateY(-8px);
box-shadow:0 25px 60px rgba(0,0,0,.10);

}

.week-card.active{

background:linear-gradient(135deg,#0e2f63,#164fa0);
color:#fff;

}

.week-top{

display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:25px;

}

.week-day{

font-size:22px;
font-weight:700;

}

.week-time{

padding:8px 18px;
border-radius:50px;
background:#f3a51d;
color:#111;
font-size:14px;
font-weight:700;

}

.week-card.active .week-time{

background:#fff;

}

.week-card ul{

margin:0;
padding:0;
list-style:none;

}

.week-card li{

position:relative;
padding-left:28px;
margin-bottom:18px;
line-height:1.7;
font-size:15px;
color:#667085;

}

.week-card.active li{

color:#fff;

}

.week-card li:before{

content:"";
position:absolute;
left:0;
top:8px;
width:10px;
height:10px;
border-radius:50%;
background:#f3a51d;

}

.week-card.active li:before{

background:#fff;

}

@media(max-width:991px){

.weekly-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:575px){

.weekly-grid{

grid-template-columns:1fr;

}

.week-card{

padding:22px;

}

.week-day{

font-size:19px;

}

}
.outcomes-sec{

background:#fff;

}

.outcome-layout{

display:grid;
grid-template-columns:repeat(3,1fr);
gap:28px;
margin-top:60px;

}

.out-card{

position:relative;
background:#fff;
padding:35px;
border-radius:26px;
border:1px solid #edf2f8;
overflow:hidden;
transition:.4s;
box-shadow:0 18px 50px rgba(15,23,42,.06);

}

.out-card:hover{

transform:translateY(-10px);
box-shadow:0 25px 60px rgba(15,23,42,.12);

}

.out-card.large{

grid-column:span 2;

}

.number{

display:inline-flex;
align-items:center;
justify-content:center;
width:60px;
height:60px;
border-radius:18px;

background:linear-gradient(135deg,#F7B731,#F39C12);

font-size:22px;
font-weight:700;
color:#fff;
margin-bottom:28px;

}

.out-card h3{

font-size:20px;
margin-bottom:16px;
line-height:1.3;

}

.out-card p{

font-size:15px;
line-height:1.9;
color:#667085;
margin:0;

}

.out-card:before{

content:"";
position:absolute;
right:-60px;
top:-60px;

width:180px;
height:180px;

background:rgba(243,165,29,.06);

border-radius:50%;

}

@media(max-width:991px){

.outcome-layout{

grid-template-columns:repeat(2,1fr);

}

.out-card.large{

grid-column:span 2;

}

}

@media(max-width:575px){

.outcome-layout{

grid-template-columns:1fr;

}

.out-card.large{

grid-column:auto;

}

.out-card{

padding:28px;

}

.out-card h3{

font-size:20px;

}

.number{

width:52px;
height:52px;
font-size:18px;

}

}

.mb-20 {
    margin-bottom: 20px;
}

/*==============================
Why Genesis
==============================*/

.bg-light{
    background:#f8fbff;
}

.content-grid-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:80px;
}

.content-grid-2 img{
    width:100%;
    height:700px;
    object-fit:cover;
    border-radius:28px;
    box-shadow:0 30px 70px rgba(0,0,0,.12);
    transition:.4s ease;
}

.content-grid-2 img:hover{
    transform:scale(1.02);
}

.feature-list{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:22px;
    margin-top:40px;
}

.feature-item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:22px;
    background:#fff;
    border-radius:20px;
    border:1px solid #edf2f7;
    box-shadow:0 12px 35px rgba(0,0,0,.05);
    transition:.35s ease;
}

.feature-item:hover{
    transform:translateY(-8px);
    box-shadow:0 20px 45px rgba(0,0,0,.10);
}

.feature-item i{
    width:48px;
    height:48px;
    min-width:48px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(209,6,8,.10);
    color:#d10608;
    font-size:18px;
}

.feature-item h5{
    font-size:16px;
    font-weight:700;
    margin:0 0 8px;
    color:#111827;
}

.feature-item p{
    margin:0;
    font-size:14px;
    line-height:1.8;
    color:#6b7280;
}

.content-grid-2 h2{
    font-size:32px;
    line-height:1.2;
    margin-bottom:20px;
}

.content-grid-2>.fade-up>p{
    font-size:16px;
    line-height:1.9;
    color:#6b7280;
}

/* Tablet */

@media(max-width:991px){

.content-grid-2{
    grid-template-columns:1fr;
    gap:50px;
}

.content-grid-2 img{
    height:520px;
}

.feature-list{
    grid-template-columns:repeat(2,1fr);
}
}

/* Mobile */

@media(max-width:767px){
    .tab-btn {
        padding: 8px 10px;
        font-size: 10px;
    }
    .portal-hero h2 {
        font-size: 20px;
    }
    .parent-video-card {
        min-height: auto !important;
    }
    .parent-video-play {
    width: 36px;
    height: 36px;
    }
    .parent-video-play svg {
    width: 15px;
    height: 15px;
    }
    .tab-row {
        margin-bottom: 20px;
        gap: 8px;
    }
    .faq-question h4 {
        line-height: 22px;
    }
    .final-cta h2 {
        font-size: 20px;
        line-height: 30px;
    }
    .course-card h3 {
    font-size: 18px;
    }
    .toppers-strip h2 {
       font-size: 20px;
    }
    .slider-controls button svg {
    width: 10px;
    height: 10px;
}
.slider-controls button {
    width: 25px;
    height: 25px;
}
    .slider-controls {
      justify-content: center;
    }
    .highlight-grid {
        display: block;
    }
    .section-head h2 {
        font-size: 20px;
        line-height: 30px;
    }
    .about-copy h2 {
     font-size: 20px;   
    }
    .slider-head-row {
        margin-bottom: 0px;
    }
    .blog-grid {
        margin-top: 20px;
    }
    .video-overlay h3 {
        font-size: 16px;
    }
    .play-btn svg {
    width: 20px;
    height: 20px;
    }
    .play-btn {
    width: 40px;
    height: 40px;
    }
.highlight-card {
    margin-bottom: 20px;
}
    #announceSlider {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    #announceSlider .slider-viewport {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    #announceSlider .slider-track {
        width: 100% !important;
        max-width: none !important;

        gap: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    #announceSlider .announce-slide-card {
        flex: 0 0 100% !important;

        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        box-sizing: border-box !important;
    }

    #announceSlider .announce-card {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }
    .slider-viewport {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .slider-track {
        width: 100% !important;
        max-width: none !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .course-slide-card {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    .course-card {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

.content-grid-2 img{
    height:360px;
    border-radius:22px;
}
.hero-banner {
    margin-top: 70px;
}
.page-header h1 {
    font-size: 25px;
}

.content-grid-2 h2{
    font-size:20px;
}

.feature-list{
    grid-template-columns:1fr;
    gap:18px;
}

.feature-item{
    padding:18px;
}

.feature-item h5{
    font-size:17px;
}

}
/*==============================
Vision Mission
==============================*/

.vision-mission-sec{
    background:#f8fbff;
}

.vm-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:35px;
    margin-top:60px;
}

.vm-card{
    background:#fff;
    padding:45px;
    border-radius:28px;
    border:1px solid #edf2f7;
    box-shadow:0 20px 60px rgba(15,23,42,.06);
    transition:.4s;
    position:relative;
    overflow:hidden;
}

.vm-card:hover{
    transform:translateY(-10px);
    box-shadow:0 30px 70px rgba(15,23,42,.12);
}

.vm-card::before{
    content:"";
    position:absolute;
    right:-70px;
    top:-70px;
    width:180px;
    height:180px;
    border-radius:50%;
    background:rgba(209,6,8,.05);
}

.vm-icon{
    width:74px;
    height:74px;
    border-radius:18px;
    background:rgba(209,6,8,.10);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:25px;
}

.vm-icon svg{
    width:34px;
    height:34px;
    stroke:#d10608;
}

.vm-tag{
    display:inline-block;
    padding:8px 18px;
    border-radius:50px;
    background:#fff4e5;
    color:#d10608;
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:1px;
    margin-bottom:18px;
}

.vm-card h3{
    font-size:28px;
    line-height:1.3;
    margin-bottom:22px;
    color: #182548;
}

.vm-card p{
    color:#667085;
    line-height:1.9;
    margin-bottom:16px;
}

@media(max-width:991px){

.vm-grid{
    grid-template-columns:1fr;
}

.vm-card{
    padding:35px;
}

}

@media(max-width:575px){

.vm-card{
    padding:25px;
}

.vm-card h3{
    font-size:24px;
}

.vm-icon{
    width:60px;
    height:60px;
}

.vm-icon svg{
    width:28px;
    height:28px;
}

}

.make {
    padding: 10px 0;
}
/*==============================
Director Message
==============================*/

.director-section{

    background:#fff;

}

.director-grid{

    display:grid;
    grid-template-columns:360px 1fr;
    gap:70px;
    align-items:center;

}

/* Left Side */

.director-photo{

    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 25px 60px rgba(0,0,0,.08);

}

.director-img{

    width:100%;
    height:450px;     /* Only Director Image */

    object-fit:cover;
    object-position:top;

    display:block;

}

.director-info{

    padding:28px;
    text-align:center;

}

.director-info h4{

    font-size:24px;
    margin-bottom:10px;
    color:#111827;

}

.director-info span{

    display:inline-block;

    padding:10px 22px;

    border-radius:50px;

    background:#FFF5E7;

    color:#D10608;

    font-weight:600;

    font-size:14px;

}

/* Right Side */

.director-content{

    position:relative;

}

.director-content h2{

    font-size:42px;
    line-height:1.2;
    margin:18px 0 25px;
    color: #182548;

}

.director-content h2 span{

    color:#D10608;

}

.quote-mark{

    font-size:70px;

    color:#F2A81D;

    line-height:1;

    margin-bottom:15px;

}

.director-content p{

    color:#667085;

    line-height:2;

    font-size:16px;

    margin-bottom:22px;

}

.director-sign{

    margin-top:35px;

    padding-top:25px;

    border-top:1px solid #e5e7eb;

}

.director-sign strong{

    display:block;

    font-size:22px;

    margin-bottom:8px;

    color:#111827;

}

.director-sign span{

    color:#D10608;

    font-weight:600;

}

/* Tablet */

@media(max-width:991px){

.director-grid{

    grid-template-columns:1fr;
    gap:45px;

}

.director-photo{

    max-width:380px;
    margin:auto;

}

.director-img{

    height:420px;

}

}

/* Mobile */

@media(max-width:575px){

.director-grid{

    gap:35px;

}

.director-photo{

    max-width:290px;

}

.director-img{

    height:340px;

}

.director-content h2{

    font-size:32px;

}

.quote-mark{

    font-size:55px;

}

.director-content p{

    font-size:15px;

    line-height:1.9;

}

.director-info h4{

    font-size:20px;

}

}
/*==============================
  Navneet Director Section
==============================*/

.navneet-section{
    background:#f8fbff;
    position:relative;
    overflow:hidden;
}

.navneet-grid{
    display:grid;
    grid-template-columns:1fr 380px;
    gap:70px;
    align-items:center;
}

/* Right Image */

.navneet-photo{
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 25px 60px rgba(10,17,40,.10);
    transition:.35s;
    border:1px solid rgba(0,0,0,.05);
}

.navneet-photo:hover{
    transform:translateY(-8px);
    box-shadow:0 35px 80px rgba(10,17,40,.15);
}

.navneet-img{
    width:100%;
    height:460px;
    object-fit:cover;
    object-position:top center;
    display:block;
}

.navneet-info{
    padding:28px;
    text-align:center;
}

.navneet-info h4{
    font-size:26px;
    font-weight:700;
    color:#111827;
    margin-bottom:10px;
}

.navneet-info span{
    display:inline-block;
    padding:10px 22px;
    border-radius:50px;
    background:#FFF3E6;
    color:#d10608;
    font-size:14px;
    font-weight:600;
}

/* Left Content */

.navneet-content{
    position:relative;
}

.navneet-content h2{
    font-size:44px;
    line-height:1.2;
    margin:18px 0 25px;
    color:#111827;
}

.navneet-content h2 span{
    color:#d10608;
}

.navneet-quote{
    font-size:75px;
    line-height:1;
    color:#F3A51D;
    margin-bottom:15px;
    font-family:Georgia, serif;
}

.navneet-content p{
    font-size:16px;
    line-height:2;
    color:#667085;
    margin-bottom:20px;
}

.navneet-sign{
    margin-top:35px;
    padding-top:25px;
    border-top:1px solid #e5e7eb;
}

.navneet-sign strong{
    display:block;
    font-size:22px;
    color:#111827;
    margin-bottom:8px;
}

.navneet-sign span{
    color:#d10608;
    font-weight:600;
    font-size:15px;
}

/* Decorative Background */

.navneet-section::before{
    content:"";
    position:absolute;
    width:320px;
    height:320px;
    border-radius:50%;
    background:rgba(209,6,8,.04);
    top:-120px;
    right:-100px;
}

.navneet-section::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(243,165,29,.08);
    bottom:-80px;
    left:-60px;
}

/* Tablet */

@media(max-width:991px){

    .navneet-grid{
        grid-template-columns:1fr;
        gap:45px;
    }

    .navneet-photo{
        max-width:380px;
        margin:0 auto;
        order:-1;
    }

    .navneet-content{
        text-align:center;
    }

    .navneet-sign{
        text-align:center;
    }

}

/* Mobile */

@media(max-width:575px){

    .navneet-photo{
        max-width:300px;
    }

    .navneet-img{
        height:360px;
    }

    .navneet-content h2{
        font-size:32px;
    }

    .navneet-content p{
        font-size:15px;
        line-height:1.9;
    }

    .navneet-info h4{
        font-size:22px;
    }

    .navneet-quote{
        font-size:60px;
    }

}
/*==================================
Announcement Wrapper
==================================*/

.announcement-wrapper{
    max-width:1250px;
    margin:0 auto;
    padding:0 20px;
}


/*==================================
Filter
==================================*/

.announcement-filter{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:15px;
    margin-bottom:40px;
}

.announcement-filter label{
    font-size:17px;
    font-weight:600;
    color:#111827;
}

.announcement-filter select{
    width:180px;
    height:48px;
    border:1px solid #e5e7eb;
    border-radius:12px;
    padding:0 18px;
    background:#fff;
    font-size:15px;
    font-weight:500;
    cursor:pointer;
    transition:.3s;
}

.announcement-filter select:focus{
    outline:none;
    border-color:#d10608;
    box-shadow:0 0 0 4px rgba(209,6,8,.08);
}


/*==================================
Announcement Card
==================================*/

.announcement-item{

    position:relative;

    background:#fff;

    padding:38px;

    margin-bottom:35px;

    border-radius:22px;

    border:1px solid #edf2f7;

    box-shadow:0 18px 50px rgba(0,0,0,.05);

    transition:.35s;

    overflow:hidden;

}

.announcement-item:hover{

    transform:translateY(-8px);

    box-shadow:0 30px 60px rgba(0,0,0,.08);

}


/* Left Gradient Line */

.announcement-item::before{

    content:"";

    position:absolute;

    left:0;

    top:30px;

    bottom:30px;

    width:6px;

    border-radius:20px;

    background:linear-gradient(180deg,#d10608,#f3a51d);

}


/*==================================
Category
==================================*/

.announcement-category{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:8px 18px;

    background:#fff3e8;

    border-radius:50px;

    color:#d10608;

    font-size:13px;

    font-weight:700;

    letter-spacing:.5px;

    margin-bottom:20px;

    text-transform:uppercase;

}

.announcement-category i{

    font-size:15px;

}


/*==================================
Title
==================================*/

.announcement-item h3{

    font-size:22px;

    line-height:1.3;

    margin-bottom:18px;

    color:#111827;

}


/*==================================
Description
==================================*/

.announcement-item p{

    font-size:16px;

    line-height:1.9;

    color:#667085;

    margin-bottom:25px;

}


/*==================================
Important Details Box
==================================*/

.announcement-details{

    background:#f8fafc;

    border-radius:18px;

    padding:22px 25px;

    margin-bottom:25px;

}

.announcement-details h5{

    font-size:18px;

    margin-bottom:15px;

    color:#111827;

}

.announcement-details ul{

    margin:0;

    padding-left:20px;

}

.announcement-details li{

    margin-bottom:12px;

    color:#4b5563;

    line-height:1.8;

}


/*==================================
Date
==================================*/

.announcement-date{

    display:inline-flex;

    align-items:center;

    gap:10px;

    font-weight:600;

    color:#d10608;

    font-size:15px;

}

.announcement-date i{

    color:#d10608;

}


/*==================================
Responsive
==================================*/

@media(max-width:991px){

.announcement-item{

padding:30px;

}

.announcement-item h3{

font-size:28px;

}

}


@media(max-width:767px){

.announcement-wrapper{

padding:0 15px;

}

.announcement-filter{

justify-content:flex-start;

flex-wrap:wrap;

}

.announcement-filter select{

width:100%;

}

.announcement-item{

padding:22px;

border-radius:18px;

}

.announcement-item h3{

font-size:24px;

}

.announcement-item p{

font-size:15px;

}

}
.marquee-strip{
    overflow:hidden;
    background:#0f172a;
    padding:10px 0;
    position:relative;
}

.marquee-track{
    display:flex;
    width:max-content;
    animation:marquee 35s linear infinite;
}

.marquee-item{
    display:flex;
    align-items:center;
    gap:30px;
    white-space:nowrap;
}

.marquee-item a{
    color:#fff;
    text-decoration:none;
    font-size:15px;
    font-weight:500;
}

.speaker-icon{
    width:18px !important;
    height:18px !important;
    min-width:18px;
    min-height:18px;
    fill:#f3a51d;
    flex-shrink:0;
    display:block;
}

@keyframes marquee{
    from{
        transform:translateX(0);
    }
    to{
        transform:translateX(-50%);
    }
}
/*==========================
TOPPERS GRID
==========================*/

.topper-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:28px;
    margin-top:45px;
}

/*==========================
TOPPER CARD
==========================*/

.topper-card{
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    border:1px solid #edf0f7;
    box-shadow:0 15px 40px rgba(0,0,0,.08);
    transition:.35s ease;
    height:100%;
}

.topper-card:hover{
    transform:translateY(-10px);
    box-shadow:0 25px 60px rgba(0,0,0,.12);
}

/*==========================
PHOTO
==========================*/

.topper-photo{
    position:relative;
    height:300px;
    overflow:hidden;
}

.topper-photo img{
    width:100%;
    height:100%;
    object-fit:contain;
    transition:.5s;
}

.topper-card:hover .topper-photo img{
    transform:scale(1.06);
}

/*==========================
TROPHY BADGE
==========================*/

.topper-seal{
    position:absolute;
    top:16px;
    right:16px;
    width:48px;
    height:48px;
    border-radius:50%;
    background:linear-gradient(135deg,#FFD54F,#F59E0B);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    box-shadow:0 10px 25px rgba(245,158,11,.35);
}

.topper-seal i{
    font-size:18px;
}

/*==========================
BODY
==========================*/

.topper-body{
    padding:22px;
}

.topper-roll{
    font-size:11px;
    color:#999;
    font-weight:700;
    letter-spacing:1px;
    margin-bottom:10px;
    text-transform:uppercase;
}

.topper-name{
    font-size:18px;
    font-weight:700;
    color:#111827;
    margin-bottom:15px;
}

.topper-meta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
}

.topper-exam{
    background:#eef5ff;
    color:#1d4ed8;
    padding:7px 14px;
    border-radius:30px;
    font-size:13px;
    font-weight:600;
}

.topper-rank{
    background:#fff4dd;
    color:#c17b00;
    padding:7px 14px;
    border-radius:30px;
    font-size:13px;
    font-weight:700;
}

/*==========================
RESPONSIVE
==========================*/

@media(max-width:1400px){

.topper-grid{
grid-template-columns:repeat(4,1fr);
}

}

@media(max-width:1199px){

.topper-grid{
grid-template-columns:repeat(3,1fr);
}

}

@media(max-width:991px){

.topper-grid{
grid-template-columns:repeat(2,1fr);
gap:22px;
}

.topper-photo{
height:260px;
}

}

@media(max-width:576px){

.topper-photo{
height:auto !important;
}

.topper-body{
padding:20px;
}

.topper-name{
font-size:20px;
}

.topper-meta{
flex-direction:column;
align-items:flex-start;
}

}
.faq p {
    color: rgb(120, 122, 127);
}

.legal h3 {
 color: #2f54a3;
    margin: 28px 0 12px;
    font-family: var(--font-display);
    font-size: 19px;
}

.footer-desc p {
 margin-bottom: 20px;
}

.sec p {
    color:  #49494c;
}
.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.blog-slide-card {
    width: 100%;
}

.blog-card {
    height: 100%;
}

/* Tablet */
@media (max-width: 991px) {
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Mobile */
@media (max-width: 575px) {
    .blog-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* =========================================
   COURSE HERO + ENQUIRY FORM
========================================= */

.course-hero {
    position: relative;
    overflow: hidden;
    padding: 90px 0 75px;
    min-height: 620px;
}

.course-hero .wrap {
    position: relative;
    z-index: 2;
}

.course-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, 480px);
    align-items: center;
    gap: 70px;
}

/* LEFT */

.course-hero-content {
    max-width: 720px;
}

.course-hero-content .eyebrow {
    display: inline-block;
    margin-bottom: 18px;
}

.course-hero-content h1 {
    font-size: clamp(38px, 5vw, 68px);
    line-height: 1.04;
    margin: 0 0 24px;
    max-width: 720px;
}

.course-hero-content > p {
    max-width: 650px;
    font-size: 17px;
    line-height: 1.75;
    margin-bottom: 25px;
}

.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.hero-points span {
    padding: 9px 15px;
    border-radius: 50px;
    background: rgba(255,255,255,.75);
    border: 1px solid rgba(10,17,40,.10);
    font-size: 13px;
    font-weight: 600;
}

/* =========================================
   ENQUIRY CARD
========================================= */

.course-enquiry-card {
    background: #fff;
    border-radius: 24px;
    padding: 30px;
    box-shadow:
        0 25px 70px rgba(10,17,40,.16),
        0 5px 20px rgba(10,17,40,.06);
    border: 1px solid rgba(10,17,40,.08);
    position: relative;
}

.course-enquiry-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 30px;
    right: 30px;
    height: 4px;
    border-radius: 0 0 10px 10px;
    background: var(--gold-2);
}

.enquiry-head {
    margin-bottom: 22px;
}

.enquiry-badge {
    display: inline-block;
    padding: 6px 11px;
    border-radius: 30px;
    background: var(--gold-soft);
    color: var(--gold-2);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    margin-bottom: 10px;
}

.enquiry-head h2 {
    margin: 0 0 7px;
    font-size: 30px;
    line-height: 1.15;
}

.enquiry-head p {
    margin: 0;
    color: var(--slate);
    font-size: 13.5px;
    line-height: 1.55;
}

/* FORM */

.enquiry-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.enquiry-field {
    margin-bottom: 14px;
}

.enquiry-field label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--ink);
}

.enquiry-field input,
.enquiry-field select,
.enquiry-field textarea {
    width: 100%;
    border: 1px solid #dfe3ea;
    background: #fafbfc;
    border-radius: 10px;
    padding: 11px 13px;
    font-family: inherit;
    font-size: 13px;
    color: var(--ink);
    outline: none;
    transition: .25s ease;
}

.enquiry-field input,
.enquiry-field select {
    height: 44px;
}

.enquiry-field textarea {
    resize: vertical;
    min-height: 65px;
}

.enquiry-field input:focus,
.enquiry-field select:focus,
.enquiry-field textarea:focus {
    border-color: var(--gold-2);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(218,165,32,.10);
}

.enquiry-submit {
    width: 100%;
    height: 48px;
    border: 0;
    border-radius: 11px;
    background: var(--gold-2);
    color: #111827;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    transition: .25s ease;
}

.enquiry-submit span {
    font-size: 20px;
    line-height: 1;
}

.enquiry-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 25px rgba(218,165,32,.25);
}

.enquiry-note {
    text-align: center;
    margin-top: 10px;
    font-size: 11px;
    color: #8a919d;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 991px) {

    .course-hero {
        padding: 70px 0 60px;
    }

    .course-hero-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .course-hero-content {
        max-width: 850px;
    }

    .course-enquiry-card {
        max-width: 600px;
        width: 100%;
        margin: 0 auto;
    }
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 575px) {

    .course-hero {
        padding: 50px 0 45px;
    }

    .course-hero-grid {
        gap: 30px;
    }

    .course-hero-content h1 {
        font-size: 34px;
        line-height: 1.08;
    }

    .course-hero-content > p {
        font-size: 14px;
        line-height: 1.65;
    }

    .hero-points {
        gap: 7px;
    }

    .hero-points span {
        font-size: 11px;
        padding: 7px 10px;
    }

    .course-enquiry-card {
        padding: 22px 18px;
        border-radius: 18px;
    }

    .course-enquiry-card::before {
        left: 20px;
        right: 20px;
    }

    .enquiry-head h2 {
        font-size: 25px;
    }

    .enquiry-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .enquiry-field {
        margin-bottom: 12px;
    }

    .enquiry-field input,
    .enquiry-field select {
        height: 42px;
    }
}

.view {
    margin-top: 30px;
}

.text-center {
    text-align: center;
}

.gallery .gallery-grid {
    margin-bottom: 30px;
}
/* =========================================================
   GENESIS REGISTRATION POPUP - FINAL
========================================================= */

.registration-popup {
    position: fixed;
    inset: 0;
    z-index: 999999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 10px;

    opacity: 0;
    visibility: hidden;

    transition: opacity .3s ease, visibility .3s ease;

    box-sizing: border-box;
}

.registration-popup.active {
    opacity: 1;
    visibility: visible;
}


/* ================= OVERLAY ================= */

.registration-popup-overlay {
    position: absolute;
    inset: 0;

    background: rgba(3, 10, 28, .72);

    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}


/* ================= POPUP BOX ================= */

.registration-popup-box {
    position: relative;
    z-index: 2;

    /*
       Width automatically follows image.
       Desktop maximum width = 500px
    */
    width: min(500px, calc(100vw - 20px));

    max-width: 500px;

    max-height: calc(100vh - 20px);

    background: #fff;

    border-radius: 18px;

    overflow: hidden;

    box-shadow: 0 25px 70px rgba(0,0,0,.35);

    display: flex;
    flex-direction: column;

    box-sizing: border-box;

    transform: scale(.94);

    transition: transform .3s ease;
}

.registration-popup.active .registration-popup-box {
    transform: scale(1);
}


/* ================= IMAGE AREA ================= */

.registration-popup-image {
    position: relative;

    width: 100% !important;

    padding: 0 !important;
    margin: 0 !important;

    background: #fff;

    line-height: 0;

    display: flex !important;

    align-items: center;
    justify-content: center;

    overflow: hidden;

    /*
       IMPORTANT:
       Image area gets available height
    */
    min-height: 0;

    flex: 0 1 auto;

    box-sizing: border-box;
}


/* ================= IMAGE ================= */

.registration-popup-image img {
    display: block !important;

    /*
       IMPORTANT:
       Don't force image smaller with max-height
    */
    width: 100% !important;
    height: auto !important;

    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    object-fit: contain !important;

    box-sizing: border-box;
}


/* ================= FOOTER ================= */

.registration-popup-footer {
    width: 100%;

    flex: 0 0 auto;

    padding: 10px 14px 14px;

    margin: 0;

    background: #fff;

    box-sizing: border-box;
}


/* ================= REGISTER BUTTON ================= */

.registration-popup-btn {
    width: 100% !important;

    height: 50px;
    min-height: 50px;

    padding: 0 20px;

    margin: 0 !important;

    border: 0 !important;

    border-radius: 9px;

    background: #e10600 !important;

    color: #fff !important;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    font-family: inherit;

    font-size: 16px;

    font-weight: 700;

    line-height: 1;

    text-align: center;

    text-decoration: none !important;

    cursor: pointer;

    box-sizing: border-box;

    transition: all .25s ease;
}

.registration-popup-btn:hover {
    background: #c90000 !important;

    color: #fff !important;

    transform: translateY(-1px);

    box-shadow: 0 8px 20px rgba(225,6,0,.25);
}


/* ================= CLOSE BUTTON ================= */

.registration-popup-close {
    position: absolute;

    top: 8px;
    right: 8px;

    z-index: 20;

    width: 36px;
    height: 36px;

    padding: 0;
    margin: 0;

    border: 0;

    border-radius: 50%;

    background: rgba(45,45,45,.78);

    color: #fff;

    font-family: Arial, sans-serif;

    font-size: 23px;

    line-height: 36px;

    display: flex;

    align-items: center;
    justify-content: center;

    cursor: pointer;

    transition: all .25s ease;
}

.registration-popup-close:hover {
    background: #e10600;

    transform: rotate(90deg);
}


/* ================= BODY ================= */

body.popup-open {
    overflow: hidden;
}


/* =========================================================
   DESKTOP / SHORT SCREEN FIX
========================================================= */

@media (min-width: 768px) {

    .registration-popup-box {
        /*
           Keeps complete popup inside screen.
           Width reduces automatically on short screens.
        */
        width: min(
            500px,
            calc((100vh - 90px) * .78)
        );

        max-width: calc(100vw - 20px);

        max-height: calc(100vh - 20px);
    }

    .registration-popup-image img {
        width: 100% !important;
        height: auto !important;

        max-height: calc(100vh - 90px) !important;

        object-fit: contain !important;
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 767px) {

    .registration-popup {
        padding: 6px;
    }

    .registration-popup-box {
        width: min(440px, calc(100vw - 12px));

        max-width: calc(100vw - 12px);

        max-height: calc(100vh - 12px);

        border-radius: 15px;
    }

    .registration-popup-image {
        width: 100% !important;

        padding: 0 !important;
        margin: 0 !important;
    }

    .registration-popup-image img {
        width: 100% !important;

        height: auto !important;

        max-width: 100% !important;

        max-height: calc(100vh - 70px) !important;

        object-fit: contain !important;
    }

    .registration-popup-footer {
        padding: 8px 10px 10px;
    }

    .registration-popup-btn {
        height: 46px;
        min-height: 46px;

        font-size: 15px;
    }

    .registration-popup-close {
        width: 33px;
        height: 33px;

        top: 6px;
        right: 6px;

        font-size: 21px;
        line-height: 33px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 480px) {

    .registration-popup {
        padding: 5px;
    }

    .registration-popup-box {
        /*
           Full available mobile width
        */
        width: calc(100vw - 10px);

        max-width: calc(100vw - 10px);

        max-height: calc(100vh - 10px);

        border-radius: 13px;
    }

    .registration-popup-image {
        width: 100% !important;

        padding: 0 !important;
        margin: 0 !important;

        line-height: 0 !important;
    }

    .registration-popup-image img {
        width: 100% !important;

        max-width: 100% !important;

        height: auto !important;

        max-height: calc(100vh - 65px) !important;

        object-fit: contain !important;
    }

    .registration-popup-footer {
        padding: 7px 8px 8px;
    }

    .registration-popup-btn {
        width: 100% !important;

        height: 44px;
        min-height: 44px;

        font-size: 14px;

        border-radius: 8px;
    }

    .registration-popup-close {
        width: 31px;
        height: 31px;

        top: 5px;
        right: 5px;

        font-size: 20px;
        line-height: 31px;
    }
}


/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width: 360px) {

    .registration-popup-box {
        width: calc(100vw - 8px);

        max-width: calc(100vw - 8px);

        border-radius: 11px;
    }

    .registration-popup-image img {
        width: 100% !important;

        max-width: 100% !important;

        height: auto !important;

        max-height: calc(100vh - 60px) !important;
    }

    .registration-popup-footer {
        padding: 6px 7px 7px;
    }

    .registration-popup-btn {
        height: 42px;
        min-height: 42px;

        font-size: 13px;
    }

    .registration-popup-close {
        width: 29px;
        height: 29px;

        top: 4px;
        right: 4px;

        font-size: 19px;
        line-height: 29px;
    }
}