*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:'Fredoka',sans-serif;
}

body{
  background:#f6f9ff;
  color:#0f172a;
}

/* TOP BAR */
.topbar{
  background:#ff5c8a;
  color:#fff;
  font-size:14px;
  padding:6px 0;
}
.container{
  width:90%;
  max-width:1200px;
  margin:auto;
}
.topbar .container{
  display:flex;
  justify-content:space-between;
}

/* NAVBAR */
.navbar{
  background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 0;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
}
.logo span:first-child{
  width:42px;
  height:42px;
  border-radius:50%;
  background:linear-gradient(135deg,#ff8a00,#ff5c8a);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
}

nav a{
  margin:0 10px;
  padding:8px 16px;
  border-radius:999px;
  text-decoration:none;
  color:#475569;
}
nav .active{
  background:#ffe4ec;
  color:#ff5c8a;
}
nav .admission{
  background:#ffc83d;
  color:#000;
}

/* HERO */
.hero{
  padding:90px 0;
  background:
    radial-gradient(circle at 80% 30%, #e9f2ff, transparent 45%),
    linear-gradient(135deg,#f6f9ff,#ffffff);
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:80px;
  align-items:center;
}

/* LEFT */
.badge{
  display:inline-block;
  background:#ffe4ec;
  color:#ff5c8a;
  padding:8px 18px;
  border-radius:999px;
  font-size:13px;
}
.hero h1{
  font-size:56px;
  line-height:1.15;
  margin:26px 0 20px;
}
.hero h1 span{
  background:linear-gradient(90deg,#ff5c8a,#ffb703);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero p{
  max-width:520px;
  color:#64748b;
  line-height:1.7;
}

.actions{
  margin-top:34px;
  display:flex;
  gap:18px;
}
.btn{
  padding:14px 32px;
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
}
.btn.primary{
  background:#ff5c8a;
  color:#fff;
  box-shadow:0 14px 30px rgba(255,92,138,.35);
}
.btn.secondary{
  background:#fff;
  border:1px solid #e5e7eb;
  color:#0f172a;
}

/* RIGHT IMAGE */
.hero-img{
  position:relative;
}
.hero-img img{
  width:100%;
  border-radius:34px;
  padding:10px;
  background:#fff;
  box-shadow:
    0 30px 70px rgba(0,0,0,.18),
    0 0 0 14px #ffffff;
}



.safe{
  position:absolute;
  bottom:-26px;
  left:-36px;
  background:#fff;
  display:flex;
  gap:12px;
  align-items:center;
  padding:14px 20px;
  border-radius:20px;
  box-shadow:0 20px 45px rgba(0,0,0,.2);
}
.safe strong{
  display:block;
}
.safe span{
  font-size:13px;
  color:#64748b;
}

/* RESPONSIVE */
@media(max-width:900px){
  .hero-grid{
    grid-template-columns:1fr;
    text-align:center;
  }
  .actions{
    justify-content:center;
  }
  .safe{
    left:50%;
    transform:translateX(-50%);
  }
  nav{
    display:none;
  }
}

/* FOOTER */
.footer{
  background:linear-gradient(135deg,#0f172a,#020617);
  color:#cbd5f5;
  padding:80px 0 0;
  margin-top:80px;
}

.footer-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.4fr;
  gap:50px;
}

.footer h3{
  font-size:26px;
  color:#fff;
  margin-bottom:18px;
}

.footer h4{
  font-size:18px;
  color:#fff;
  margin-bottom:16px;
}

.footer p{
  font-size:15px;
  line-height:1.7;
  color:#cbd5f5;
}

.footer ul{
  list-style:none;
}

.footer ul li{
  margin-bottom:10px;
  font-size:15px;
}

.footer ul li a{
  text-decoration:none;
  color:#cbd5f5;
  transition:.3s;
}

.footer ul li a:hover{
  color:#ffb703;
  padding-left:6px;
}

.contact li{
  display:flex;
  gap:8px;
  align-items:center;
}

/* NEWSLETTER */
.newsletter{
  display:flex;
  gap:10px;
  margin-top:14px;
}

.newsletter input{
  flex:1;
  padding:12px 14px;
  border-radius:999px;
  border:none;
  outline:none;
}

.newsletter button{
  padding:12px 22px;
  border-radius:999px;
  border:none;
  background:#ffb703;
  font-weight:600;
  cursor:pointer;
  transition:.3s;
}

.newsletter button:hover{
  background:#ff9f1c;
}

/* FOOTER BOTTOM */
.footer-bottom{
  margin-top:60px;
  padding:20px 0;
  text-align:center;
  font-size:14px;
  color:#94a3b8;
  border-top:1px solid rgba(255,255,255,.1);
}

/* RESPONSIVE FOOTER */
@media(max-width:900px){
  .footer-grid{
    grid-template-columns:1fr;
    text-align:center;
  }
  .newsletter{
    justify-content:center;
  }
}


/* WHY CHOOSE SECTION */
.why-choose{
  padding:100px 0;
  background:#fffdf8;
  text-align:center;
}

.why-choose h2{
  font-size:42px;
  margin-bottom:12px;
}

.section-sub{
  max-width:620px;
  margin:0 auto 60px;
  color:#64748b;
  line-height:1.6;
}

.why-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
}

.why-card{
  background:#ffffff;
  padding:42px 30px;
  border-radius:22px;
  box-shadow:0 20px 50px rgba(0,0,0,.08);
  transition:.3s;
}

.why-card:hover{
  transform:translateY(-8px);
}

.icon{
  width:56px;
  height:56px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  margin:0 auto 20px;
}

.icon.blue{background:#e0edff;color:#2563eb;}
.icon.pink{background:#ffe4ec;color:#ec4899;}
.icon.yellow{background:#fff4cc;color:#f59e0b;}

.why-card h3{
  margin-bottom:12px;
  font-size:20px;
}

.why-card p{
  color:#64748b;
  line-height:1.6;
}

/* Responsive */
@media(max-width:900px){
  .why-grid{
    grid-template-columns:1fr;
  }
}

/* CTA STRIP */
.cta-strip{
  background:#55c1f3;
  padding:60px 0;
}

.cta-flex{
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:#fff;
}

.cta-flex h2{
  font-size:32px;
  margin-bottom:6px;
}

.cta-btn{
  background:#fff;
  color:#55c1f3;
  padding:14px 36px;
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
}

@media(max-width:900px){
  .cta-flex{
    flex-direction:column;
    text-align:center;
    gap:20px;
  }
}


/* =================================================
   ABOUT PAGE – LONDON KIDS
   ================================================= */

/* ---------- ABOUT HERO ---------- */
.about-hero-ui{
  padding: 80px 20px;
  background: linear-gradient(135deg, #f8fbff, #ffffff);
}

.about-wrap{
  max-width: 1200px;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
  flex-wrap: wrap;
}

.about-left{
  flex: 1;
  min-width: 300px;
}

.about-left h1{
  font-size: 44px;
  line-height: 1.2;
  color: #0f172a;
  margin-bottom: 20px;
}

.about-left p{
  font-size: 16px;
  color: #475569;
  line-height: 1.7;
  margin-bottom: 15px;
  max-width: 520px;
}

.tag{
  display: inline-block;
  background: #ffe5ec;
  color: #ff4f87;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  margin-bottom: 15px;
}

.highlight-pink{
  color: #ff5c8a;
}

/* ---------- BUTTON ---------- */
.btn-primary{
  display: inline-block;
  background: #ff5c8a;
  color: #ffffff;
  padding: 14px 30px;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 600;
  margin-top: 10px;
  transition: 0.3s;
}

.btn-primary:hover{
  background: #ff3f75;
}

/* ---------- RIGHT IMAGE ---------- */
.about-right{
  flex: 1;
  display: flex;
  justify-content: center;
}

.about-right img{
  width: 100%;
  max-width: 420px;
  border-radius: 30px;
  box-shadow: 0 25px 50px rgba(0,0,0,0.15);
}

/* ---------- MISSION / VISION / VALUES ---------- */
.about-mvv{
  padding: 70px 20px;
  background: #ffffff;
  display: flex;
  justify-content: center;
  gap: 25px;
  flex-wrap: wrap;
}

.mvv-box{
  width: 300px;
  padding: 30px;
  border-radius: 25px;
  background: #fdf2f7;
  text-align: center;
}

.mvv-box h3{
  color: #ff5c8a;
  margin-bottom: 10px;
  font-size: 20px;
}

.mvv-box p{
  color: #475569;
  line-height: 1.6;
  font-size: 15px;
}

/* ---------- WHY CHOOSE US ---------- */
.about-why{
  padding: 70px 20px;
  text-align: center;
  background: #f8fbff;
}

.about-why h2{
  font-size: 34px;
  margin-bottom: 35px;
  color: #0f172a;
}

/* =========================================
   WHY CHOOSE – PERFECT BALANCED GRID
   ========================================= */

.why-grid{
  max-width: 1100px;
  margin: auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 30px;
  justify-items: center;
}

/* Cards same width & center aligned */
.why-card{
  width: 100%;
  max-width: 300px;
  text-align: center;
}


/* ---------- MOBILE RESPONSIVE ---------- */
@media (max-width: 768px){
  .about-wrap{
    flex-direction: column;
    text-align: center;
  }

  .about-left p{
    margin-left: auto;
    margin-right: auto;
  }

  .about-left h1{
    font-size: 34px;
  }

  .about-why h2{
    font-size: 28px;
  }
}

/* =================================================
   PROGRAMS PAGE – LONDON KIDS
   ================================================= */

   /* ================= PROGRAMS SECTION ================= */

.programs-section{
  padding: 100px 0;
  background: #f8fbff;
}

.programs-grid{
  max-width: 1100px;
  margin: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}

.program-card{
  background: #ffffff;
  border-radius: 26px;
  padding: 28px;
  box-shadow: 0 20px 45px rgba(0,0,0,.08);
}

.program-card img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 18px;
  margin-bottom: 18px;
}

.program-age{
  background: #ffe4ec;
  color: #ff5c8a;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 13px;
  display: inline-block;
  margin-bottom: 10px;
}

@media(max-width:900px){
  .programs-grid{
    grid-template-columns: 1fr;
  }
}

/* ================= PROGRAM CARDS HOVER EFFECT ================= */

.program-card{
  transition: 
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
  position: relative;
  overflow: hidden;
}

/* Card lift + shadow */
.program-card:hover{
  transform: translateY(-12px);
  box-shadow: 0 30px 70px rgba(0,0,0,0.15);
}

/* Image zoom effect */
.program-card img{
  transition: transform 0.4s ease;
}

.program-card:hover img{
  transform: scale(1.08);
}

/* Soft color glow on hover */
.program-card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(255,92,138,0.08),
    rgba(255,184,3,0.08)
  );
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}

.program-card:hover::after{
  opacity: 1;
}

/* Age badge highlight */
.program-card:hover .program-age{
  background: #ff5c8a;
  color: #fff;
}


/* ===== PROGRAMS PAGE TITLE FIX ===== */

/* Our Programs heading */
.programs-section .section-title{
  font-size: 52px;          /* bada */
  font-weight: 700;
  text-align: center;       /* center */
  margin-bottom: 18px;
  color: #0f172a;
}

/* Subtitle text */
.programs-section .section-sub{
  font-size: 18px;          /* text bada */
  text-align: center;       /* center */
  max-width: 750px;
  margin: 0 auto 70px;      /* center + gap */
  color: #64748b;
  line-height: 1.7;
}

/* Mobile responsive */
@media(max-width:768px){
  .programs-section .section-title{
    font-size: 36px;
  }

  .programs-section .section-sub{
    font-size: 16px;
    margin-bottom: 50px;
  }
}


/* =================================================
   FACILITIES PAGE
   ================================================= */

/* HERO */
.facilities-hero{
  padding: 90px 0 70px;
  background: linear-gradient(135deg, #f8fbff, #ffffff);
  text-align: center;
}

.fac-title{
  font-size: 52px;
  margin-bottom: 16px;
  color: #0f172a;
}

.fac-sub{
  max-width: 720px;
  margin: auto;
  font-size: 18px;
  color: #64748b;
  line-height: 1.7;
}

/* SECTION */
.facilities-section{
  padding: 100px 0;
  background: #ffffff;
}

/* GRID */
.facilities-grid{
  max-width: 1100px;
  margin: auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 40px;
}

/* CARD */
.facility-card{
  background: #f8fbff;
  padding: 36px 28px;
  border-radius: 26px;
  text-align: center;
  box-shadow: 0 20px 45px rgba(0,0,0,.08);
  transition: 0.35s ease;
}

.facility-card:hover{
  transform: translateY(-10px);
  box-shadow: 0 30px 70px rgba(0,0,0,.15);
}

/* ICON */
.fac-icon{
  width: 70px;
  height: 70px;
  margin: 0 auto 18px;
  border-radius: 18px;
  background: #ffe4ec;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
}

/* TEXT */
.facility-card h3{
  font-size: 22px;
  margin-bottom: 10px;
  color: #0f172a;
}

.facility-card p{
  color: #64748b;
  font-size: 15px;
  line-height: 1.6;
}

/* MOBILE */
@media(max-width:768px){
  .fac-title{
    font-size: 36px;
  }

  .facilities-section{
    padding: 70px 0;
  }
}


/* =================================================
   GALLERY PAGE – FIXED 4 COLUMN GRID
   ================================================= */

/* HERO */
.gallery-hero{
  padding: 90px 0 70px;
  background: linear-gradient(135deg, #f8fbff, #ffffff);
  text-align: center;
}

.gallery-title{
  font-size: 52px;
  margin-bottom: 14px;
  color: #0f172a;
}

.gallery-sub{
  max-width: 720px;
  margin: auto;
  font-size: 18px;
  color: #64748b;
  line-height: 1.7;
}

/* SECTION */
.gallery-section{
  padding: 100px 0;
  background: #ffffff;
}

/* FIXED 4 COLUMN GRID */
.gallery-grid-4{
  max-width: 1200px;
  margin: auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 🔥 ALWAYS 4 PER ROW */
  gap: 30px;
}

/* CARD */
.gallery-card{
  overflow: hidden;
  border-radius: 22px;
  box-shadow: 0 20px 45px rgba(0,0,0,.08);
  transition: 0.35s ease;
}

/* IMAGE */
.gallery-card img{
  width: 100%;
  height: 230px;
  object-fit: cover;
  transition: transform 0.45s ease;
}

/* HOVER EFFECT */
.gallery-card:hover img{
  transform: scale(1.12);
}

/* TABLET */
@media(max-width:1024px){
  .gallery-grid-4{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* MOBILE */
@media(max-width:600px){
  .gallery-grid-4{
    grid-template-columns: 1fr;
  }

  .gallery-title{
    font-size: 36px;
  }
}


/* COMMON */
.hero-soft{
  background:#fdecee;
  padding:70px 20px;
  text-align:center;
}
.hero-soft h1{
  font-size:42px;
  color:#ff6b8a;
}
.hero-soft p{
  color:#666;
  margin-top:10px;
}
.hero-soft.blue{
  background:#eaf6fb;
  color:#333;
}

.form-section{
  padding:80px 20px;
  display:flex;
  justify-content:center;
}

.form-card{
  background:#fff;
  padding:40px;
  max-width:520px;
  width:100%;
  border-radius:18px;
  box-shadow:0 25px 50px rgba(0,0,0,0.08);
}

.lk-form label{
  font-weight:600;
  margin:15px 0 6px;
  display:block;
}

.lk-form input,
.lk-form textarea{
  width:100%;
  padding:14px;
  border-radius:10px;
  border:1px solid #ddd;
}

.lk-form textarea{
  height:120px;
  resize:none;
}

.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.btn-primary{
  width:100%;
  margin-top:25px;
  padding:15px;
  border:none;
  border-radius:30px;
  background:#ff6b8a;
  color:#fff;
  font-size:16px;
  cursor:pointer;
}
.btn-primary.blue{
  background:#4bbdf6;
}

/* CONTACT */
.contact-section{
  padding:80px 20px;
}
.contact-grid{
  max-width:1100px;
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}
.contact-info .info-box{
  background:#fff;
  padding:20px;
  border-radius:14px;
  margin-bottom:20px;
  box-shadow:0 15px 30px rgba(0,0,0,0.06);
}

/* RESPONSIVE */
@media(max-width:768px){
  .grid-2,
  .contact-grid{
    grid-template-columns:1fr;
  }
}


/* CONTACT LEFT INFO – FINAL FIX */

.contact-info{
  max-width:480px;
}

.info-card{
  display:flex;
  gap:16px;
  background:#ffffff;
  padding:22px;
  border-radius:16px;
  margin-bottom:20px;
  box-shadow:0 15px 35px rgba(0,0,0,0.06);
  align-items:flex-start;
}

.icon-circle{
  width:46px;
  height:46px;
  border-radius:50%;
  background:#eaf6ff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

.icon-circle i{
  font-size:18px;
  color:#4bbdf6;
}

.info-text h4{
  margin:0 0 4px;
  font-size:16px;
  font-weight:600;
}

.info-text p{
  margin:0;
  font-size:14px;
  color:#555;
  line-height:1.4;
}

/* =================================================
   HERO IMAGE – HORIZONTAL HOVER EFFECT
   ================================================= */

.hero-img img{
  transition: transform 0.6s ease;
}

.hero-img:hover img{
  transform: translateX(18px); /* horizontal move */
}


/* =================================================
   SAFE BADGE – SOFT FLOATING MOTION
   ================================================= */

.safe{
  animation: floatSafe 3.5s ease-in-out infinite;
}

@keyframes floatSafe{
  0%{ transform: translateY(0); }
  50%{ transform: translateY(-10px); }
  100%{ transform: translateY(0); }
}


/* =================================================
   LOGO TEXT COLOR – LONDON KIDS GRADIENT
   ================================================= */

.logo span:last-child{
  background: linear-gradient(90deg,#ff5c8a,#ffb703);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}


/* =================================================
   LK LOGO – SUBTLE HOVER EFFECT
   ================================================= */

.logo span:first-child{
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.logo:hover span:first-child{
  transform: scale(1.08) rotate(-4deg);
  box-shadow: 0 10px 25px rgba(255,92,138,.45);
}


/* ================================
   MOBILE TOGGLE MENU – FINAL FIX
   ================================ */

@media (max-width:900px){

  /* show hamburger */
  .menu-toggle{
    display:flex;
    flex-direction:column;
    gap:6px;
    cursor:pointer;
  }

  .menu-toggle span{
    width:26px;
    height:3px;
    background:#0f172a;
    border-radius:4px;
  }

  /* navbar position fix */
  .navbar{
    position:relative;
  }

  /* hidden by default */
  nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    width:100%;
    background:#ffffff;
    flex-direction:column;
    align-items:center;
    gap:14px;
    padding:24px 0;
    box-shadow:0 20px 40px rgba(0,0,0,0.12);
    z-index:999;
  }

  /* 🔥 THIS WAS MISSING */
  nav.show{
    display:flex;
  }
}
