/* ==========================================================================
   Home page design layer. Loaded after site.css, index.html only.
   Palette: school blue + yellow accent on white / pale blue.
   ========================================================================== */
:root {
  /* School theme: blue #1A73E8 / navy #0D47A1 with the yellow #FFC107 accent, on white and pale blue. */
  --kg-green: #1a73e8;      /* primary blue (name kept for older rules) */
  --kg-green-d: #0d47a1;    /* navy */
  --kg-gold: #FFC107;       /* yellow accent: small lines, stars, play button */
  --kg-gold-d: #1a73e8;     /* label / number text colour: blue */
  --kg-ink: #1f2937;
  --kg-muted: #5f6b7a;
  --kg-line: #dbe6f7;
  --kg-paper: #f6f9ff;      /* alternate section background */
  --kg-tile: #eaf1fd;       /* soft fills: icon tiles, image frames, tags */
  --kg-radius: 18px;
  --kg-shadow: 0 1px 2px rgba(15, 40, 90, .05), 0 12px 28px -14px rgba(15, 40, 90, .24);
}

/* ---------- shared section frame ------------------------------------------ */
.kg-sec { padding: 88px 0; background: #fff; position: relative; }
.kg-sec--paper { background: var(--kg-paper); }
.kg-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }

.kg-head { text-align: center; margin-bottom: 44px; }
.kg-head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; text-align: left; }
.kg-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px;
  font: 600 12px/1 'Inter', sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--kg-gold-d);
}
.kg-eyebrow::before, .kg-head:not(.kg-head--split) .kg-eyebrow::after { content: ''; width: 26px; height: 2px; background: var(--kg-gold); border-radius: 2px; }
.kg-head--split .kg-eyebrow::after { display: none; }
.kg-h2 {
  margin: 0; font: 700 clamp(28px, 3.1vw, 40px)/1.15 'Inter', sans-serif; letter-spacing: -.02em; color: var(--kg-ink);
}
.kg-sub { max-width: 560px; margin: 14px auto 0; color: var(--kg-muted); font-size: 16px; line-height: 1.6; }

.kg-btn-sq {
  width: 46px; height: 46px; display: inline-grid; place-items: center; border-radius: 12px; cursor: pointer;
  border: 1px solid var(--kg-line); background: #fff; color: var(--kg-ink); font-size: 15px;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.kg-btn-sq:hover { background: var(--kg-green); border-color: var(--kg-green); color: #fff; }
.kg-btn-sq:active { transform: scale(.94); }
.kg-btn-sq:focus-visible, .kg-ach-thumb:focus-visible, .kg-tour-tab:focus-visible { outline: 3px solid var(--kg-gold); outline-offset: 2px; }
.kg-ctrl { display: flex; align-items: center; gap: 10px; }
.kg-link {
  display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; color: var(--kg-green);
  text-decoration: none; margin-right: 8px;
}
.kg-link i { transition: transform .2s; font-size: 12px; }
.kg-link:hover { color: var(--kg-gold-d); }
.kg-link:hover i { transform: translateX(4px); }
.kg-link--light { color: #fff; margin: 0; }
.kg-link--light:hover { color: var(--kg-gold); }

/* ---------- About ---------------------------------------------------------- */
body .property3-section-area { padding: 88px 0 !important; background: #fff; }

/* ---------- Infrastructure ------------------------------------------------- */
body .service3-section-area { padding: 88px 0 !important; background: var(--kg-paper) !important; }
body .service3-section-area .heading3 { margin-bottom: 44px !important; }
body .service3-section-area .space40 { display: none !important; }
body .service3-section-area .row > [class*="col-"] { margin-bottom: 24px; }
body .service3-section-area .amenities-boxarea {
  height: 100%; margin: 0 !important; padding: 0 !important; background: #fff !important;
  border: 1px solid var(--kg-line) !important; border-radius: var(--kg-radius) !important; overflow: visible !important;
  box-shadow: var(--kg-shadow) !important; position: relative; transition: transform .25s, box-shadow .25s;
}
body .service3-section-area .amenities-boxarea:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(15,40,90,.06), 0 22px 36px -16px rgba(15,40,90,.3) !important; }
body .service3-section-area .amenities-boxarea .space32 { display: none; }
body .service3-section-area .amenities-boxarea .img1 {
  aspect-ratio: 4 / 3; width: 100% !important; height: auto !important; margin: 0 !important; padding: 0 !important;
  border-radius: var(--kg-radius) var(--kg-radius) 0 0 !important; overflow: hidden !important; border: 0 !important; background: var(--kg-tile) !important;
}
body .service3-section-area .amenities-boxarea .img1 img {
  width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 0 !important; transition: transform .6s;
}
body .service3-section-area .amenities-boxarea:hover .img1 img { transform: scale(1.05); }
body .service3-section-area .amenities-boxarea .content-area { padding: 28px 22px 26px !important; text-align: left !important; position: relative; }
body .service3-section-area .amenities-boxarea .content-area a {
  display: block; font: 700 19px/1.3 'Inter', sans-serif !important; color: var(--kg-ink) !important; pointer-events: none;
}
body .service3-section-area .amenities-boxarea .space18 { height: 10px; }
body .service3-section-area .amenities-boxarea p { margin: 0 !important; font-size: 14.5px !important; line-height: 1.65 !important; color: var(--kg-muted) !important; }
body .service3-section-area .amenities-boxarea p br { display: none; }
body .service3-section-area .amenities-boxarea h3 {
  position: absolute !important; top: -22px !important; right: 20px !important; left: auto !important; bottom: auto !important;
  width: 44px; height: 44px; margin: 0 !important; display: grid; place-items: center; border-radius: 12px;
  background: var(--kg-green) !important; color: #fff !important; font: 700 15px/1 'Inter', sans-serif !important;
  border: 3px solid #fff; box-shadow: 0 6px 14px -6px rgba(15,40,90,.5); opacity: 1 !important; -webkit-text-stroke: 0 !important;
}

/* ---------- Facilities ----------------------------------------------------- */
body .about3-section-area { padding: 88px 0 !important; background: #fff !important; }
body .about3-section-area .about-header { margin-bottom: 44px !important; }
body .about3-section-area .facility-card {
  height: 100%; background: #fff !important; border: 1px solid var(--kg-line) !important; border-radius: var(--kg-radius) !important;
  padding: 34px 26px 30px !important; box-shadow: none !important; text-align: left !important; position: relative; overflow: hidden;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
body .about3-section-area .facility-card::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--kg-gold);
  transform: scaleX(0); transform-origin: left; transition: transform .35s;
}
body .about3-section-area .facility-card:hover { transform: translateY(-4px); border-color: transparent !important; box-shadow: var(--kg-shadow) !important; }
body .about3-section-area .facility-card:hover::after { transform: scaleX(1); }
body .about3-section-area .facility-card .icon-box {
  width: 64px !important; height: 64px !important; margin: 0 0 22px !important; display: grid; place-items: center;
  border-radius: 16px !important; background: var(--kg-tile) !important; border: 0 !important;
}
body .about3-section-area .facility-card .icon-box img { width: 34px !important; height: 34px !important; object-fit: contain; }
body .about3-section-area .facility-card h3 { font: 700 18px/1.35 'Inter', sans-serif !important; color: var(--kg-ink) !important; margin: 0 0 10px !important; }
body .about3-section-area .facility-card p { font-size: 14.5px !important; line-height: 1.65 !important; color: var(--kg-muted) !important; margin: 0 !important; }

/* ---------- Gallery : scroll strip ----------------------------------------- */
.kg-gal { background: #fff; }
.gallery-carousel.kg-strip {
  display: flex !important; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; padding: 6px 2px 34px; margin: -6px -2px -22px; outline: none; max-width: none;
}
.kg-strip::-webkit-scrollbar { display: none; }
.kg-strip .gallery-item {
  flex: 0 0 calc((100% - 60px) / 4); scroll-snap-align: start; margin: 0 !important; padding: 0 !important;
  background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  cursor: zoom-in; position: relative; transform: none !important; overflow: visible !important;
}
.kg-strip .gallery-img {
  width: 100% !important; height: auto !important; aspect-ratio: 1; object-fit: contain !important; display: block;
  background: var(--kg-tile); border: 1px solid var(--kg-line); border-radius: 16px; padding: 10px; transition: transform .35s, box-shadow .35s;
}
.kg-strip .gallery-item:hover .gallery-img { transform: translateY(-5px); box-shadow: var(--kg-shadow); }
.kg-strip .gallery-caption {
  position: static !important; background: none !important; opacity: 1 !important; transform: none !important; padding: 14px 4px 0 !important;
  display: flex; align-items: center; gap: 10px;
}
.kg-strip .gallery-caption::before { content: ''; flex: 0 0 18px; height: 2px; background: var(--kg-gold); }
.kg-strip .gallery-caption h3 {
  margin: 0 !important; font: 600 14px/1.3 'Inter', sans-serif !important; letter-spacing: .02em; text-transform: none !important; color: var(--kg-ink) !important;
}
.kg-strip-track { height: 3px; margin-top: 44px; background: var(--kg-line); border-radius: 3px; overflow: hidden; }
.kg-strip-track i { display: block; height: 100%; width: 25%; background: var(--kg-green); border-radius: 3px; transform-origin: left; }
.gallery-lightbox .lightbox-nav, .gallery-lightbox .lightbox-close { background: rgba(255,255,255,.12) !important; }

/* ---------- Parent testimonials -------------------------------------------- */
.kg-testi-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 28px; align-items: stretch; }
.kg-video { position: relative; border-radius: 24px; overflow: hidden; cursor: pointer; min-height: 420px; background: var(--kg-green-d); box-shadow: var(--kg-shadow); }
.kg-video img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.kg-video:hover img { transform: scale(1.04); }
.kg-video::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,30,70,.05) 40%, rgba(6,30,70,.75)); }
.kg-play-btn {
  position: absolute; z-index: 2; left: 50%; top: 50%; width: 78px; height: 78px; margin: -39px 0 0 -39px; border-radius: 50%;
  display: grid; place-items: center; background: var(--kg-gold); color: var(--kg-green-d); font-size: 24px; padding-left: 4px;
  box-shadow: 0 0 0 10px rgba(255, 193, 7,.28); transition: transform .25s, box-shadow .25s;
}
.kg-video:hover .kg-play-btn { transform: scale(1.08); box-shadow: 0 0 0 16px rgba(255, 193, 7,.22); }
.kg-video:focus-visible { outline: 3px solid var(--kg-gold); outline-offset: 3px; }
.kg-video-cap { position: absolute; z-index: 2; left: 24px; bottom: 22px; color: #fff; font: 600 16px/1.3 'Inter', sans-serif; }
.kg-quotes { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.kg-quote {
  margin: 0; padding: 26px 24px 22px; background: #fff; border: 1px solid var(--kg-line); border-radius: var(--kg-radius);
  display: flex; flex-direction: column; position: relative; transition: transform .25s, box-shadow .25s;
}
.kg-quote:hover { transform: translateY(-3px); box-shadow: var(--kg-shadow); }
.kg-quote-mark { position: absolute; top: 22px; right: 22px; font-size: 26px; color: var(--kg-tile); }
.kg-stars { color: var(--kg-gold); font-size: 13px; display: flex; gap: 3px; margin-bottom: 14px; }
.kg-quote blockquote { margin: 0; flex: 1; }
.kg-quote strong { display: block; font: 700 16px/1.35 'Inter', sans-serif; color: var(--kg-ink); margin-bottom: 8px; }
.kg-quote p { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--kg-muted); }
.kg-quote figcaption { display: flex; align-items: center; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--kg-line); }
.kg-quote figcaption img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.kg-quote figcaption b { display: block; font: 700 14px/1.3 'Inter', sans-serif; color: var(--kg-ink); }
.kg-quote figcaption small { font-size: 12.5px; color: var(--kg-muted); }

/* ---------- News & events -------------------------------------------------- */
.kg-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.kg-news-card {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--kg-line); border-radius: var(--kg-radius);
  overflow: hidden; text-decoration: none; color: inherit; transition: transform .25s, box-shadow .25s;
}
.kg-news-card:hover { transform: translateY(-4px); box-shadow: var(--kg-shadow); }
.kg-news-img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--kg-tile); }
.kg-news-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.kg-news-card:hover .kg-news-img img { transform: scale(1.05); }
.kg-news-pill {
  position: absolute; left: 14px; top: 14px; padding: 6px 12px; border-radius: 999px; background: #fff; color: var(--kg-green);
  font: 600 11.5px/1 'Inter', sans-serif; letter-spacing: .06em; text-transform: uppercase;
}
.kg-news-body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.kg-news-date { font: 500 13px/1 'Inter', sans-serif; color: var(--kg-gold-d); }
.kg-news-body h3 { margin: 10px 0 10px; font: 700 18px/1.4 'Inter', sans-serif; color: var(--kg-ink); }
.kg-news-body p { margin: 0 0 18px; font-size: 14.5px; line-height: 1.65; color: var(--kg-muted); flex: 1; }
.kg-news-more { font: 600 14px/1 'Inter', sans-serif; color: var(--kg-green); display: inline-flex; gap: 8px; align-items: center; }
.kg-news-more i { font-size: 12px; transition: transform .2s; }
.kg-news-card:hover .kg-news-more i { transform: translateX(4px); }

/* ---------- App section: bring it onto the same palette ------------------- */
.fg-app-section { background: var(--kg-green-d) !important; }

/* ---------- Responsive ----------------------------------------------------- */
@media (max-width: 1100px) {
  .kg-strip .gallery-item { flex-basis: calc((100% - 40px) / 3); }
  .kg-testi-grid { grid-template-columns: 1fr; }
  .kg-video { min-height: 340px; }
}
@media (max-width: 900px) {
  .kg-ach-slide { grid-template-columns: 1fr; gap: 28px; }
  .kg-ach-slider { --kg-stage: 400px; }
  .kg-news-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .kg-sec, body .property3-section-area, body .service3-section-area, body .about3-section-area { padding: 56px 0 !important; }
  .kg-wrap { padding: 0 18px; }
  .kg-head { margin-bottom: 30px; }
  .kg-head--split { flex-direction: column; align-items: flex-start; gap: 16px; }
  .kg-head--split .kg-link { display: none; }
  .kg-ach-slider { --kg-stage: 340px; }
  .kg-ach-stage { padding: 14px; border-radius: 18px; }
  .kg-ach-stage img { max-height: calc(var(--kg-stage) - 28px); }
  .kg-ach-count b { font-size: 34px; }
  .kg-ach-bar { gap: 14px; }
  .kg-ach-thumb { width: 58px; height: 58px; }
  .kg-ctrl .kg-btn-sq { width: 42px; height: 42px; }
  .kg-strip .gallery-item { flex-basis: 72%; }
  .kg-quotes { grid-template-columns: 1fr; }
  .kg-news-grid { grid-template-columns: 1fr; }
  .kg-video { min-height: 260px; border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .kg-ach-slide, .kg-strip { transition: none !important; scroll-behavior: auto; }
}

/* ---------- Infrastructure / headings: tidy-ups ---------------------------- */
body .service3-section-area .container, body .about3-section-area .container, body .property3-section-area .container { max-width: 1240px; }
body .service3-section-area .heading3 h2::after, body .about3-section-area .about-header h2::after { display: none !important; }
body .service3-section-area .heading3 h2, body .about3-section-area .about-header h2 { padding: 0 !important; }
body .service3-section-area .amenities-boxarea .img1, body .service3-section-area .amenities-boxarea .img1 img {
  box-shadow: none !important; outline: 0 !important; transform: none !important; inset: auto !important; position: static !important;
}
body .service3-section-area .amenities-boxarea:hover .img1 img { transform: scale(1.05) !important; }
body .service3-section-area .amenities-boxarea .img1::before, body .service3-section-area .amenities-boxarea .img1::after { display: none !important; }
body .service3-section-area .amenities-boxarea h3 { line-height: 38px !important; text-align: center; padding: 0 !important; }

body .service3-section-area .amenities-boxarea h3 {
  display: flex !important; align-items: center; justify-content: center; line-height: 1 !important; padding: 0 !important; box-sizing: border-box;
}


/* ---------- Achievements: card strip (same mechanics as the gallery) ------ */
.kg-strip { cursor: grab; }
.kg-strip.is-drag { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.kg-ach-strip {
  display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 6px 2px 34px; margin: -6px -2px -22px; outline: none;
}
.kg-ach-strip::-webkit-scrollbar { display: none; }
.kg-ach-card {
  flex: 0 0 calc((100% - 48px) / 3); scroll-snap-align: start; display: flex; flex-direction: column; background: #fff;
  border: 1px solid var(--kg-line); border-radius: 20px; overflow: hidden; transition: transform .3s, box-shadow .3s;
}
.kg-ach-card:hover { transform: translateY(-5px); box-shadow: var(--kg-shadow); }
.kg-ach-card figure { margin: 0; position: relative; aspect-ratio: 1; flex: 0 0 auto; background: var(--kg-tile); }
.kg-ach-card img { position: absolute; inset: 14px; width: calc(100% - 28px); height: calc(100% - 28px); object-fit: contain; border-radius: 10px; box-shadow: 0 14px 26px -16px rgba(15,40,90,.5); -webkit-user-drag: none; user-select: none; }
.kg-ach-meta { padding: 20px 22px 22px; display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.kg-ach-cat { padding: 6px 12px; border-radius: 999px; background: var(--kg-tile); font: 600 11.5px/1 'Inter', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--kg-gold-d); }
.kg-ach-name { margin: 12px 0 0; font: 700 19px/1.3 'Inter', sans-serif; color: var(--kg-ink); }
.kg-ach-res { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--kg-line); width: 100%; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.kg-ach-res small { font: 600 11.5px/1 'Inter', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--kg-muted); }
.kg-ach-res strong { font: 700 20px/1.2 'Inter', sans-serif; color: var(--kg-green-d); }
@media (max-width: 1100px) { .kg-ach-card { flex-basis: calc((100% - 24px) / 2); } }
@media (max-width: 767px) { .kg-ach-card { flex-basis: 78%; } .kg-ach-name { font-size: 17px; } }

/* ---------- Strips: centred text, controls row, primary button ------------ */
.kg-strip { -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.kg-strip .gallery-caption { justify-content: center; text-align: center; padding: 14px 6px 0 !important; }
.kg-strip .gallery-caption::before { display: none; }
.kg-strip .gallery-caption h3 { text-align: center; }
.kg-ach-meta { align-items: center; text-align: center; }
.kg-ach-res { flex-direction: column; align-items: center; justify-content: center; gap: 8px; }
.kg-strip-foot { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 32px; }
.kg-btn-primary {
  display: inline-flex; align-items: center; gap: 10px; padding: 14px 30px; border-radius: 999px; text-decoration: none;
  background: var(--kg-green); color: #fff !important; font: 600 15px/1 'Inter', sans-serif;
  box-shadow: 0 12px 24px -12px rgba(13,71,161,.7); transition: background .2s, transform .2s, box-shadow .2s;
}
.kg-btn-primary i { font-size: 12px; transition: transform .2s; }
.kg-btn-primary:hover { background: var(--kg-green-d); transform: translateY(-2px); box-shadow: 0 16px 26px -12px rgba(13,71,161,.8); }
.kg-btn-primary:hover i { transform: translateX(4px); }
.kg-btn-primary:focus-visible { outline: 3px solid var(--kg-gold); outline-offset: 3px; }
@media (max-width: 767px) { .kg-strip-foot { gap: 10px; } .kg-btn-primary { padding: 13px 20px; font-size: 14px; } }
.kg-strip img { -webkit-user-drag: none; user-select: none; }
.kg-strip .gallery-item:hover { box-shadow: none !important; filter: none !important; }

/* ---------- Virtual campus tour (6 campuses) ------------------------------- */
:root { --kg-tint: #eef4fd; --kg-tint-2: #dce9fb; --kg-tint-line: #c6dcf8; }
.kg-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease var(--d, 0ms), transform .7s cubic-bezier(.2,.7,.2,1) var(--d, 0ms); }
.kg-reveal.is-in { opacity: 1; transform: none; }
.kg-tour-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: stretch; }
.kg-tour-view { display: grid; background: #fff; border: 1px solid var(--kg-line); border-radius: 24px; overflow: hidden; box-shadow: var(--kg-shadow); }
.kg-tour-slide { grid-area: 1 / 1; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s .6s; }
.kg-tour-slide.is-active { opacity: 1; visibility: visible; transition-delay: 0s; }
.kg-tour-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--kg-tile); }
.kg-tour-media::before { content: ''; position: absolute; inset: -30px; background: var(--bg) center / cover; filter: blur(26px) saturate(1.1); opacity: .7; }
.kg-tour-media img { position: relative; width: 100%; height: 100%; object-fit: contain; display: block; transform: scale(1.07); transition: transform 7s cubic-bezier(.2,.6,.2,1); }
.kg-tour-slide.is-active .kg-tour-media img { transform: scale(1); }
.kg-tour-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.kg-tour-map::before { display: none; }
.kg-tour-mapnote { position: absolute; left: 16px; top: 16px; padding: 7px 12px; border-radius: 999px; background: #fff; color: var(--kg-ink); font: 600 12px/1 'Inter', sans-serif; box-shadow: var(--kg-shadow); }
.kg-tour-mapnote i { color: var(--kg-green); margin-right: 6px; }
.kg-tour-info { padding: 26px 32px 28px; display: flex; flex-direction: column; gap: 8px; }
.kg-tour-info > * { opacity: 0; transform: translateY(14px); }
.kg-tour-slide.is-active .kg-tour-info > * { animation: kgUp .6s cubic-bezier(.2,.7,.2,1) forwards; }
.kg-tour-slide.is-active .kg-tour-info > :nth-child(2) { animation-delay: .08s; }
.kg-tour-slide.is-active .kg-tour-info > :nth-child(3) { animation-delay: .16s; }
.kg-tour-slide.is-active .kg-tour-info > :nth-child(4) { animation-delay: .24s; }
@keyframes kgUp { to { opacity: 1; transform: none; } }
.kg-tour-meta { font: 600 12px/1 'Inter', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--kg-gold-d); }
.kg-tour-info strong { font: 700 clamp(24px, 2.4vw, 30px)/1.2 'Inter', sans-serif; letter-spacing: -.02em; color: var(--kg-ink); }
.kg-tour-info p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--kg-muted); max-width: 640px; }
.kg-tour-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-top: 10px; padding-top: 16px; border-top: 1px solid var(--kg-line); }
.kg-tour-addr { font-size: 13.5px; color: var(--kg-muted); display: inline-flex; gap: 8px; align-items: flex-start; }
.kg-tour-addr i { color: var(--kg-gold-d); margin-top: 3px; }
.kg-tour-row .kg-link { margin: 0; }

.kg-tour-tabs { display: flex; flex-direction: column; gap: 10px; }
.kg-tour-tab {
  position: relative; flex: 1; display: flex; align-items: center; gap: 16px; text-align: left; cursor: pointer; padding: 12px 18px; overflow: hidden;
  background: #fff; border: 1px solid var(--kg-line); border-radius: 16px; color: var(--kg-ink);
  transition: background .3s, border-color .3s, box-shadow .3s, transform .3s, opacity .7s ease var(--d, 0ms);
}
.kg-tour-tab b {
  flex: 0 0 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--kg-tile); color: var(--kg-gold-d);
  font: 700 13px/1 'Inter', sans-serif; transition: background .3s, color .3s, transform .3s;
}
.kg-tour-tab span { flex: 1; font: 700 15.5px/1.25 'Inter', sans-serif; }
.kg-tour-tab small { display: block; margin-top: 4px; font: 500 12.5px/1.3 'Inter', sans-serif; color: var(--kg-muted); }
.kg-tour-tab i { font-size: 13px; color: #9aa6a2; transition: transform .3s, color .3s; }
.kg-tour-tab:hover { background: var(--kg-tint); border-color: var(--kg-tint-line); transform: translateX(-4px); }
.kg-tour-tab:hover b { background: #fff; color: var(--kg-green); }
.kg-tour-tab:hover i { color: var(--kg-green); transform: translateX(3px); }
.kg-tour-tab.is-active { background: var(--kg-tint); border-color: var(--kg-tint-line); box-shadow: inset 4px 0 0 var(--kg-green), 0 10px 22px -16px rgba(26,115,232,.55); }
.kg-tour-tab.is-active b { background: var(--kg-green); color: #fff; transform: scale(1.06); }
.kg-tour-tab.is-active i { color: var(--kg-green); transform: translateX(3px); }
.kg-tour-tab::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--kg-green); transform: scaleX(0); transform-origin: left; opacity: .55; }
.kg-tour.is-playing .kg-tour-tab.is-active::after { animation: kgTab var(--kg-tour-delay, 6500ms) linear forwards; }
.kg-tour.is-paused .kg-tour-tab.is-active::after { animation-play-state: paused; }
@keyframes kgTab { to { transform: scaleX(1); } }
.kg-tour-tab:focus-visible { outline: 3px solid var(--kg-gold); outline-offset: 2px; }

/* lighter, calmer hovers on the shared controls too */
.kg-btn-sq:hover { background: var(--kg-tint); border-color: var(--kg-tint-line); color: var(--kg-green); }
.kg-cf-arrow:hover { background: var(--kg-tint); color: var(--kg-green); border-color: var(--kg-tint-line); }
.kg-btn-primary:hover { background: #3b86ee; box-shadow: 0 16px 26px -12px rgba(26,115,232,.65); }

@media (max-width: 1100px) {
  .kg-tour-grid { grid-template-columns: 1fr; }
  .kg-tour-tabs { flex-direction: row; overflow-x: auto; scrollbar-width: none; padding: 4px 2px 8px; margin: -4px -2px 0; }
  .kg-tour-tab { flex: 0 0 auto; min-width: 250px; }
  .kg-tour-tab:hover { transform: none; }
}
@media (max-width: 767px) {
  .kg-tour-media { aspect-ratio: 16 / 10; }
  .kg-tour-info { padding: 20px 20px 22px; }
  .kg-tour-info p { font-size: 14.5px; }
  .kg-tour-tab { min-width: 220px; }
}
@media (prefers-reduced-motion: reduce) {
  .kg-reveal { opacity: 1; transform: none; transition: none; }
  .kg-tour-info > * { opacity: 1; transform: none; animation: none !important; }
  .kg-tour-media img { transform: none !important; transition: none; }
}

/* ---------- Section rhythm: one padding, strictly alternating backgrounds -- */
:root { --kg-sec-pad: 88px; }
.kg-sec, body .property3-section-area, body .service3-section-area, body .about3-section-area, body .fg-app-section {
  padding-top: var(--kg-sec-pad) !important; padding-bottom: var(--kg-sec-pad) !important;
}
body .property3-section-area { background: #fff !important; }      /* About */
body .service3-section-area  { background: var(--kg-paper) !important; } /* Infrastructure */
body .about3-section-area    { background: #fff !important; }      /* Facilities */
.kg-ach.kg-sec               { background: var(--kg-paper); }      /* Achievements */
.kg-gal.kg-sec               { background: #fff; }                 /* Gallery */
.kg-tour.kg-sec              { background: var(--kg-paper); }      /* Campus tour */
/* app download band keeps its own tint */
.kg-testi.kg-sec             { background: #fff; }                 /* Testimonials */
.kg-news.kg-sec              { background: var(--kg-paper); }      /* News */
@media (max-width: 767px) {
  :root { --kg-sec-pad: 56px; }
}

/* ---------- Final order: About, Facilities, Infrastructure, Tour, Achievements, Gallery, Testimonials, News, App ---------- */
body .property3-section-area { background: #fff !important; }
body .about3-section-area    { background: var(--kg-paper) !important; } /* Facilities */
body .service3-section-area  { background: #fff !important; }            /* Infrastructure */
.kg-tour.kg-sec              { background: var(--kg-paper); }
.kg-ach.kg-sec               { background: #fff; }
.kg-gal.kg-sec               { background: var(--kg-paper); }
.kg-testi.kg-sec             { background: #fff; }
.kg-news.kg-sec              { background: var(--kg-paper); }

/* ---------- Campus tour: compact, fits on one screen ---------------------- */
.kg-tour .kg-head { margin-bottom: 26px; }
.kg-tour .kg-sub { max-width: none; margin-top: 10px; }
.kg-tour-grid { display: flex; flex-direction: column; gap: 18px; }
.kg-tour-tabs { order: -1; flex-direction: row; gap: 10px; overflow: visible; padding: 0; margin: 0; }
.kg-tour-tab { flex: 1 1 0; min-width: 0; padding: 12px 14px; gap: 10px; }
.kg-tour-tab b { flex: 0 0 32px; height: 32px; font-size: 12px; }
.kg-tour-tab span { font-size: 14px; line-height: 1.25; }
.kg-tour-tab small { font-size: 12px; }
.kg-tour-tab > i { display: none; }
.kg-tour-tab:hover { transform: translateY(-3px); }
.kg-tour-tab.is-active { box-shadow: inset 0 -4px 0 var(--kg-green), 0 10px 22px -16px rgba(26,115,232,.55); }
.kg-tour-tab::after { display: none; }
.kg-tour-slide { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.kg-tour-media { aspect-ratio: auto; min-height: 380px; height: 100%; }
.kg-tour-info { justify-content: center; padding: 34px 40px; gap: 10px; }
.kg-tour-info p { max-width: none; }
/* progress line moves to the bottom of the photo card instead of the tab */
.kg-tour-view { position: relative; }
.kg-tour-view::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--kg-green); opacity: .6; transform: scaleX(0); transform-origin: left; z-index: 3; }
.kg-tour.is-playing .kg-tour-view::after { animation: kgTab var(--kg-tour-delay, 6500ms) linear forwards; }
.kg-tour.is-paused .kg-tour-view::after { animation-play-state: paused; }
@media (max-width: 1100px) {
  .kg-tour-tabs { overflow-x: auto; scrollbar-width: none; padding: 4px 2px 8px; margin: -4px -2px -4px; }
  .kg-tour-tab { flex: 0 0 auto; min-width: 200px; }
  .kg-tour-tab:hover { transform: none; }
  .kg-tour-slide { grid-template-columns: 1fr; }
  .kg-tour-media { min-height: 0; height: auto; aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  .kg-tour-media { aspect-ratio: 16 / 10; }
  .kg-tour-info { padding: 20px 20px 22px; }
  .kg-tour-tab { min-width: 190px; }
}
.kg-tour-media { height: auto; min-height: 380px; }
.kg-tour-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
@media (max-width: 1100px) { .kg-tour-media { min-height: 0; aspect-ratio: 16 / 9; } }
@media (max-width: 767px) { .kg-tour-media { aspect-ratio: 16 / 10; } }

/* ---------- Testimonials: scrolling slider (two rows, any number of quotes) - */
.kg-quotes-wrap { display: flex; flex-direction: column; min-width: 0; }
.kg-quotes.kg-strip {
  display: grid; grid-template-rows: repeat(2, 1fr); grid-auto-flow: column; grid-auto-columns: calc((100% - 20px) / 2); gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; outline: none; flex: 1;
  padding: 6px 2px 16px; margin: -6px -2px -16px;
}
.kg-quotes.kg-strip::-webkit-scrollbar { display: none; }
.kg-quotes .kg-quote { scroll-snap-align: start; min-width: 0; }
.kg-testi .kg-strip-track { margin-top: 30px; }
.kg-testi .kg-strip-foot { margin-top: 22px; }
@media (max-width: 1100px) { .kg-quotes.kg-strip { grid-template-rows: auto; grid-auto-columns: calc((100% - 20px) / 2); } }
@media (max-width: 767px) { .kg-quotes.kg-strip { grid-template-rows: auto; grid-auto-columns: 86%; } }
/* testimonials slider: flex columns (grid auto-columns collapsed in Chrome once there were >4 cards) */
.kg-quotes.kg-strip { display: flex; grid-template-rows: none; grid-auto-flow: row; grid-auto-columns: auto; gap: 20px; align-items: stretch; }
.kg-qcol { flex: 0 0 calc((100% - 20px) / 2); display: flex; flex-direction: column; gap: 20px; scroll-snap-align: start; min-width: 0; }
.kg-qcol .kg-quote { flex: 1; }
.kg-strip { user-select: none; -webkit-user-select: none; }
@media (max-width: 767px) { .kg-quotes.kg-strip { grid-auto-columns: auto; } .kg-qcol { flex-basis: 88%; } }
