 :root {
      --primary:    #1a4899;
      --primary-dk: #0d2d6b;
      --gold:       #e8a020;
      --gold-lt:    #f5c05a;
      --dark:       #0a1a3a;
      --text:       #2c3e50;
      --light-bg:   #f0f4fc;
      --white:      #ffffff;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', sans-serif;
      color: var(--text);
      overflow-x: hidden;
    }

    h1,h2,h3,h4,h5 { font-family: 'Playfair Display', serif; }

    /* ── TOP HEADER ── */
    .top-header {
      background: var(--primary-dk);
      padding: 8px 0;
      font-size: .82rem;
      color: #cdd8f0;
    }
    .top-header a { color: #cdd8f0; text-decoration: none; }
    .top-header a:hover { color: var(--gold); }
    .btn-admission {
      background: linear-gradient(135deg, var(--gold), #f0a800);
      color: var(--dark) !important;
      font-weight: 700;
      border: none;
      padding: 6px 20px;
      border-radius: 30px;
      font-size: .82rem;
      letter-spacing: .5px;
      animation: pulse-btn 2.5s infinite;
      transition: transform .2s;
    }
    .btn-admission:hover { transform: scale(1.05); color: var(--dark); }
    @keyframes pulse-btn {
      0%,100% { box-shadow: 0 0 0 0 rgba(232,160,32,.5); }
      50%      { box-shadow: 0 0 0 10px rgba(232,160,32,0); }
    }

    /* ── LOGO SECTION ── */
    .logo-section {
      background: var(--white);
      padding: 18px 0;
      border-bottom: 4px solid var(--gold);
      box-shadow: 0 4px 20px rgba(26,72,153,.12);
    }
    .logo-section img { max-height: 90px; }

    /* ── NAVBAR ── */
    .main-nav {
      background: var(--primary);
      position: sticky;
      top: 0;
      z-index: 1050;
      box-shadow: 0 4px 20px rgba(0,0,0,.3);
    }
    .main-nav .navbar-nav .nav-link {
      color: rgba(255,255,255,.9) !important;
      font-weight: 500;
      font-size: .9rem;
      padding: 14px 16px !important;
      letter-spacing: .3px;
      transition: color .2s, background .2s;
      position: relative;
    }
    .main-nav .navbar-nav .nav-link::after {
      content: '';
      position: absolute;
      bottom: 0; left: 50%;
      width: 0; height: 3px;
      background: var(--gold);
      transition: all .3s;
      transform: translateX(-50%);
    }
    .main-nav .navbar-nav .nav-link:hover::after,
    .main-nav .navbar-nav .nav-link.active::after { width: 70%; }
    .main-nav .navbar-nav .nav-link:hover { color: var(--gold) !important; }
    .dropdown-menu {
      background: var(--primary-dk);
      border: none;
      border-top: 3px solid var(--gold);
      border-radius: 0 0 8px 8px;
      box-shadow: 0 8px 30px rgba(0,0,0,.3);
    }
    .dropdown-item {
      color: rgba(255,255,255,.85) !important;
      font-size: .88rem;
      padding: 10px 20px;
      transition: background .2s, padding-left .2s;
    }
    .dropdown-item:hover {
      background: rgba(232,160,32,.2) !important;
      color: var(--gold) !important;
      padding-left: 28px;
    }
    .navbar-toggler { border-color: var(--gold); }
    .navbar-toggler-icon { filter: invert(1); }

    /* ── HERO ── */
    .hero {
      min-height: 92vh;
      background: linear-gradient(135deg, var(--dark) 0%, var(--primary-dk) 50%, var(--primary) 100%);
      position: relative;
      display: flex;
      align-items: center;
      overflow: hidden;
    }
    .hero::before {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M50 50c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10zM10 10c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10c0 5.523-4.477 10-10 10S0 25.523 0 20s4.477-10 10-10z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }
    .hero-orb {
      position: absolute;
      border-radius: 50%;
      filter: blur(80px);
      opacity: .15;
    }
    .orb1 { width:500px;height:500px;background:var(--gold);top:-100px;right:-100px; }
    .orb2 { width:350px;height:350px;background:#4a90d9;bottom:-80px;left:-80px; }
    .hero-content { position: relative; z-index: 2; }
    .hero h1 {
      font-size: clamp(2.4rem,5vw,4rem);
      color: var(--white);
      line-height: 1.15;
    }
    .hero h1 span { color: var(--gold); }
    .hero .lead { color: rgba(255,255,255,.75); font-size: 1.1rem; }
    .hero-badge {
      display: inline-block;
      background: rgba(232,160,32,.15);
      border: 1px solid rgba(232,160,32,.4);
      color: var(--gold);
      border-radius: 30px;
      padding: 6px 18px;
      font-size: .82rem;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      margin-bottom: 20px;
      animation: fadeInUp .8s ease both;
    }
    .btn-hero-primary {
      background: linear-gradient(135deg,var(--gold),#f0a800);
      color: var(--dark);
      font-weight: 700;
      padding: 14px 36px;
      border-radius: 50px;
      border: none;
      font-size: 1rem;
      transition: all .3s;
      box-shadow: 0 8px 30px rgba(232,160,32,.4);
    }
    .btn-hero-primary:hover { transform: translateY(-3px); box-shadow: 0 14px 40px rgba(232,160,32,.5); color: var(--dark); }
    .btn-hero-outline {
      background: transparent;
      color: var(--white);
      border: 2px solid rgba(255,255,255,.4);
      padding: 13px 36px;
      border-radius: 50px;
      font-weight: 500;
      font-size: 1rem;
      transition: all .3s;
    }
    .btn-hero-outline:hover { border-color: var(--white); background: rgba(255,255,255,.1); color: var(--white); }
    .hero-img-card {
      background: rgba(255,255,255,.08);
      backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,.15);
      border-radius: 20px;
      padding: 30px;
      animation: float 4s ease-in-out infinite;
    }
    .hero-stat-pill {
      background: rgba(255,255,255,.1);
      border: 1px solid rgba(255,255,255,.2);
      border-radius: 50px;
      padding: 10px 20px;
      color: #fff;
      text-align: center;
    }
    .hero-stat-pill strong { display: block; font-size: 1.5rem; color: var(--gold); font-family: 'Playfair Display', serif; }
    @keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-16px)} }

    /* ── ANIMATIONS ── */
    @keyframes fadeInUp {
      from { opacity:0; transform:translateY(30px); }
      to   { opacity:1; transform:translateY(0); }
    }
    @keyframes fadeInLeft {
      from { opacity:0; transform:translateX(-30px); }
      to   { opacity:1; transform:translateX(0); }
    }
    @keyframes fadeInRight {
      from { opacity:0; transform:translateX(30px); }
      to   { opacity:1; transform:translateX(0); }
    }
    .anim-up   { animation: fadeInUp   .9s ease both; }
    .anim-left { animation: fadeInLeft .9s ease both; }
    .anim-right{ animation: fadeInRight .9s ease both; }
    .d1 { animation-delay: .1s; } .d2 { animation-delay: .25s; }
    .d3 { animation-delay: .4s; } .d4 { animation-delay: .55s; }
    .d5 { animation-delay: .7s; }

    /* ── SECTION TITLES ── */
    .section-label {
      font-size: .78rem;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 700;
      font-family: 'DM Sans', sans-serif;
      display: block;
      margin-bottom: 8px;
    }
    .section-title {
      font-size: clamp(1.8rem,3vw,2.6rem);
      color: var(--primary-dk);
      position: relative;
      display: inline-block;
    }
    .section-title::after {
      content: '';
      display: block;
      width: 60px; height: 4px;
      background: linear-gradient(90deg,var(--gold),var(--gold-lt));
      border-radius: 2px;
      margin: 12px auto 0;
    }
    .text-start .section-title::after { margin-left: 0; }

    /* ── ABOUT ── */
    #about { background: var(--light-bg); padding: 100px 0; }
    .about-img-wrap {
      position: relative;
    }
    .about-img-wrap img {
      border-radius: 20px;
      width: 100%;
      object-fit: cover;
      height: 420px;
      box-shadow: 0 20px 60px rgba(26,72,153,.2);
    }
    .about-badge-float {
      position: absolute;
      bottom: -20px; right: -20px;
      background: var(--primary);
      color: #fff;
      padding: 20px 24px;
      border-radius: 16px;
      text-align: center;
      box-shadow: 0 10px 30px rgba(26,72,153,.35);
    }
    .about-badge-float strong { font-size: 2rem; font-family:'Playfair Display',serif; color:var(--gold); display:block; }
    .about-text p { color: #5a6a80; line-height: 1.8; }
    .about-feature {
      display: flex; gap: 14px; align-items: flex-start; margin-top: 20px;
    }
    .about-feature-icon {
      width: 48px; height: 48px; flex-shrink: 0;
      background: linear-gradient(135deg,var(--primary),var(--primary-dk));
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      color: var(--gold); font-size: 1.2rem;
    }
    .about-feature h6 { font-family:'Playfair Display',serif; color:var(--primary-dk); margin-bottom:4px; }
    .about-feature p  { font-size:.88rem; color:#6a7a90; margin:0; }

    /* ── CARDS ROW: vision/mission/values/services ── */
    #pillars { padding: 90px 0; background: var(--white); }
    .pillar-card {
      background: var(--white);
      border-radius: 18px;
      padding: 36px 28px;
      text-align: center;
      box-shadow: 0 4px 24px rgba(26,72,153,.08);
      border: 1px solid rgba(26,72,153,.07);
      transition: all .35s;
      height: 100%;
    }
    .pillar-card:hover { transform: translateY(-10px); box-shadow: 0 20px 50px rgba(26,72,153,.15); border-color: var(--gold); }
    .pillar-icon {
      width: 72px; height: 72px; margin: 0 auto 20px;
      background: linear-gradient(135deg,var(--primary),var(--primary-dk));
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.8rem; color: var(--gold);
      position: relative;
    }
    .pillar-icon::before {
      content:'';
      position:absolute;inset:-5px;
      border-radius:50%;
      border: 2px dashed rgba(232,160,32,.35);
      animation: spin 12s linear infinite;
    }
    @keyframes spin { to { transform:rotate(360deg); } }
    .pillar-card h5 { color:var(--primary-dk); margin-bottom:12px; }
    .pillar-card p  { color:#6a7a90; font-size:.9rem; line-height:1.7; }

    /* ── SERVICES ── */
    #services { padding: 90px 0; background: var(--light-bg); }
    .service-card {
      border-radius: 18px; overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,.08);
      transition: all .35s;
      background: var(--white);
      height: 100%;
    }
    .service-card:hover { transform: translateY(-8px); box-shadow: 0 20px 50px rgba(26,72,153,.15); }
    .service-card img {
      width: 100%; height: 220px; object-fit: cover;
      transition: transform .5s;
    }
    .service-card:hover img { transform: scale(1.07); }
    .service-card-body { padding: 22px 24px; }
    .service-card-body h5 { color:var(--primary-dk); margin-bottom:10px; }
    .service-card-body p  { color:#6a7a90; font-size:.88rem; line-height:1.7; margin:0; }
    .service-tag {
      display:inline-block;
      background:rgba(26,72,153,.08);
      color:var(--primary);
      padding:3px 12px;
      border-radius:20px;
      font-size:.76rem;
      font-weight:600;
      margin-bottom:10px;
    }

    /* ── STATS ── */
    #stats {
      padding: 90px 0;
      background: linear-gradient(135deg,var(--primary-dk),var(--primary));
      position: relative; overflow: hidden;
    }
    #stats::before {
      content:'';
      position:absolute;inset:0;
      background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }
    .stat-item { text-align:center; position:relative; z-index:2; }
    .stat-num {
      font-family:'Playfair Display',serif;
      font-size:clamp(2.5rem,5vw,4rem);
      font-weight:900;
      color:var(--gold);
      display:block;
      line-height:1;
    }
    .stat-label { color:rgba(255,255,255,.8); font-size:.9rem; margin-top:8px; letter-spacing:.5px; }
    .stat-item + .stat-item::before {
      content:'';
      position:absolute;
      left:0;top:50%;transform:translateY(-50%);
      width:1px;height:60%;
      background:rgba(255,255,255,.15);
    }

    /* ── ADMISSIONS ── */
    #admissions { padding: 90px 0; background: var(--white); }
    .admission-card {
      border-radius: 18px;
      overflow: hidden;
      background: linear-gradient(135deg,var(--primary-dk),var(--primary));
      color: #fff;
      padding: 36px 28px;
      height: 100%;
      transition: transform .3s;
      position: relative;
    }
    .admission-card:hover { transform: translateY(-8px); }
    .admission-card::after {
      content:'';
      position:absolute;
      right:-30px;bottom:-30px;
      width:140px;height:140px;
      background:rgba(255,255,255,.05);
      border-radius:50%;
    }
    .admission-card h5 { color:var(--gold); margin-bottom:12px; }
    .admission-card p  { color:rgba(255,255,255,.8); font-size:.9rem; line-height:1.7; }
    .admission-step {
      display:flex; gap:14px; align-items:flex-start; margin-bottom:16px;
    }
    .step-num {
      width:36px;height:36px;flex-shrink:0;
      background:var(--gold);color:var(--dark);
      border-radius:50%;display:flex;align-items:center;justify-content:center;
      font-weight:700;font-size:.9rem;
    }
    .step-text { color:rgba(255,255,255,.85); font-size:.9rem; line-height:1.5; }
    .btn-gold {
      background: linear-gradient(135deg,var(--gold),#f0a800);
      color: var(--dark);
      font-weight: 700;
      border: none;
      padding: 12px 30px;
      border-radius: 50px;
      transition: all .3s;
    }
    .btn-gold:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(232,160,32,.4); color:var(--dark); }

    /* ── INFRASTRUCTURE ── */
    #infrastructure { padding: 90px 0; background: var(--light-bg); }
    .infra-card {
      border-radius: 18px; overflow: hidden;
      box-shadow: 0 4px 20px rgba(0,0,0,.08);
      transition: all .35s; background: var(--white);
      height: 100%;
    }
    .infra-card:hover { transform: translateY(-8px); box-shadow: 0 20px 50px rgba(26,72,153,.15); }
    .infra-card img { width:100%;height:200px;object-fit:cover; transition:transform .5s; }
    .infra-card:hover img { transform:scale(1.08); }
    .infra-card-body { padding:20px; }
    .infra-card-body h6 { color:var(--primary-dk); margin-bottom:8px; font-family:'Playfair Display',serif; font-size:1.1rem; }
    .infra-card-body p  { color:#7a8a9a; font-size:.85rem; line-height:1.6; margin:0; }
    .infra-icon-badge {
      display:inline-flex;align-items:center;gap:6px;
      background:rgba(26,72,153,.08);color:var(--primary);
      padding:4px 12px;border-radius:20px;
      font-size:.78rem;font-weight:600;margin-bottom:10px;
    }

    /* ── GALLERY ── */
    #gallery { padding: 90px 0; background: var(--white); }
    .gallery-carousel .carousel-item img {
      width: 100%; height: 460px; object-fit: cover; border-radius: 18px;
    }
    .carousel-control-prev, .carousel-control-next {
      width: 50px; height: 50px;
      background: var(--primary);
      border-radius: 50%;
      top: 50%; transform: translateY(-50%);
      opacity: 1;
      position: absolute;
    }
    .carousel-control-prev { left: -25px; }
    .carousel-control-next { right: -25px; }
    .carousel-caption-custom {
      background: linear-gradient(0deg,rgba(10,26,58,.8),transparent);
      border-radius: 0 0 18px 18px;
      position:absolute;bottom:0;left:0;right:0;
      padding:30px 24px 18px;
      color:#fff;
    }
    .gallery-thumb {
      border-radius: 10px; overflow: hidden; cursor: pointer;
      border: 3px solid transparent; transition: border-color .3s;
    }
    .gallery-thumb img { width:100%; height:80px; object-fit:cover; transition:transform .3s; }
    .gallery-thumb:hover img  { transform:scale(1.1); }
    .gallery-thumb.active { border-color: var(--gold); }

    /* ── CTA SECTION ── */
    #cta {
      padding: 90px 0;
      background: linear-gradient(135deg,var(--dark),var(--primary-dk));
      position: relative; overflow: hidden;
    }
    #cta::before {
      content:'';
      position:absolute;
      width:600px;height:600px;
      background:radial-gradient(circle,rgba(232,160,32,.12),transparent 70%);
      top:-200px;right:-200px;border-radius:50%;
    }
    .cta-card {
      background: rgba(255,255,255,.06);
      backdrop-filter: blur(10px);
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 20px;
      padding: 40px 30px;
      text-align: center;
      transition: all .35s;
      height: 100%;
    }
    .cta-card:hover { background:rgba(255,255,255,.1); transform:translateY(-8px); border-color:rgba(232,160,32,.4); }
    .cta-icon {
      width:80px;height:80px;margin:0 auto 20px;
      border-radius:50%;
      display:flex;align-items:center;justify-content:center;
      font-size:2rem;
    }
    .cta-call  .cta-icon { background:linear-gradient(135deg,#1e7e34,#28a745); color:#fff; }
    .cta-email .cta-icon { background:linear-gradient(135deg,#0056b3,#1a4899); color:#fff; }
    .cta-wa    .cta-icon { background:linear-gradient(135deg,#128c7e,#25d366); color:#fff; }
    .cta-card h5 { color:#fff; margin-bottom:8px; }
    .cta-card p  { color:rgba(255,255,255,.65); font-size:.88rem; margin-bottom:20px; }
    .btn-cta {
      border-radius:50px; padding:10px 28px;
      font-weight:600; font-size:.88rem;
      transition:all .3s; border:none;
    }
    .cta-call  .btn-cta { background:#28a745; color:#fff; }
    .cta-email .btn-cta { background:var(--primary); color:#fff; }
    .cta-wa    .btn-cta { background:#25d366; color:#fff; }
    .btn-cta:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.3); }

    /* ── FOOTER ── */
    footer {
      background: var(--dark);
      padding: 70px 0 0;
      color: rgba(255,255,255,.7);
    }
    footer h5 {
      color: #fff;
      font-family:'Playfair Display',serif;
      margin-bottom: 24px;
      position: relative;
      padding-bottom: 12px;
    }
    footer h5::after {
      content:'';
      position:absolute;bottom:0;left:0;
      width:40px;height:3px;
      background:var(--gold);border-radius:2px;
    }
    footer a { color:rgba(255,255,255,.6); text-decoration:none; transition:color .2s; display:block; margin-bottom:8px; }
    footer a:hover { color:var(--gold); }
    .footer-bottom {
      background: rgba(0,0,0,.3);
      padding: 18px 0;
      margin-top: 50px;
      text-align: center;
      color: rgba(255,255,255,.45);
      font-size: .84rem;
    }
    .footer-logo img { max-height: 70px; margin-bottom: 16px; }
    .social-icons a {
      display:inline-flex;align-items:center;justify-content:center;
      width:38px;height:38px;
      border-radius:50%;
      border:1px solid rgba(255,255,255,.2);
      color:rgba(255,255,255,.6) !important;
      margin-right:8px;
      transition:all .3s;
    }
    .social-icons a:hover { background:var(--gold); border-color:var(--gold); color:var(--dark) !important; }
    .footer-contact-item { display:flex; gap:12px; align-items:flex-start; margin-bottom:16px; }
    .footer-contact-item i { color:var(--gold); margin-top:3px; }

    /* ── FIXED BOTTOM BUTTONS ── */
    .fixed-bottom-btns {
      position:fixed; bottom:24px; right:20px;
      z-index:9999;
      display:flex; flex-direction:column; gap:12px;
    }
    .fab {
      width:54px;height:54px;
      border-radius:50%;
      display:flex;align-items:center;justify-content:center;
      font-size:1.4rem;
      color:#fff;
      text-decoration:none;
      box-shadow:0 6px 20px rgba(0,0,0,.3);
      transition:transform .25s,box-shadow .25s;
      animation: pop-in .5s ease both;
    }
    .fab:hover { transform:scale(1.12); box-shadow:0 10px 30px rgba(0,0,0,.4); color:#fff; }
    .fab-call { background:linear-gradient(135deg,#1e7e34,#28a745); animation-delay:.2s; }
    .fab-wa   { background:linear-gradient(135deg,#128c7e,#25d366); animation-delay:.4s; }
    @keyframes pop-in {
      from { transform:scale(0) rotate(-30deg); opacity:0; }
      to   { transform:scale(1) rotate(0); opacity:1; }
    }
    .fab-label {
      position:absolute; right:64px;
      background:rgba(10,26,58,.9);
      color:#fff;
      padding:4px 12px;
      border-radius:20px;
      font-size:.78rem;
      white-space:nowrap;
      pointer-events:none;
      opacity:0; transform:translateX(10px);
      transition:all .25s;
    }
    .fab:hover .fab-label { opacity:1; transform:translateX(0); }
    .fab { position:relative; }

    /* ── SCROLL REVEAL ── */
    .reveal { opacity:0; transform:translateY(40px); transition:opacity .7s ease,transform .7s ease; }
    .reveal.visible { opacity:1; transform:translateY(0); }

    /* ── RESPONSIVE ── */
    @media(max-width:768px){
      .about-badge-float { display:none; }
      .carousel-control-prev { left:0; }
      .carousel-control-next { right:0; }
      .stat-item+.stat-item::before { display:none; }
    }