:root{
  --dark:#0d1b2a;     /* primary dark blue */
  --accent:#1b263b;   /* secondary */
  --highlight:#00aaff;/* bright accent */
  --white:#ffffff;
  --muted: #313131;
  --container:1100px;
  --radius:12px;
  --shadow: 0 6px 18px rgba(13,27,42,0.12);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color:var(--dark);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* container */
.container{max-width:var(--container);margin:0 auto;padding:0 18px}

/* HEADER */
.site-header{
  background:linear-gradient(90deg,var(--dark),var(--accent));
  color:var(--white);
  position:sticky;top:0;z-index:60;
  box-shadow: 0 6px 18px rgba(11,20,30,0.12);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{font-weight:700; margin: 18px;color:var(--white);text-decoration:none;font-size:1.05rem}
.nav {display:flex;align-items:center;gap:12px}
.nav-links{list-style:none;display:flex;gap:18px;margin:0;padding:0}
.nav-links a{color:var(--white);text-decoration:none;font-weight:500;opacity:0.95}
.nav-links a:hover{color:var(--highlight)}
.menu-btn{display:none;background:transparent;border:0;color:var(--white);font-size:1.25rem;cursor:pointer}

/* HERO */
.hero{padding:48px 0;background:linear-gradient(180deg,var(--dark),#123042);color:var(--white)}
.hero-grid{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.hero-text{flex:1;min-width:260px}
.hero-text h1{font-size:2rem;margin:0 0 10px}
.lead{margin:0 0 18px;opacity:0.95}
.hero-ctas{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.btn{display:inline-block;padding:10px 16px;border-radius:8px;border:2px solid transparent;font-weight:600;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--highlight);color:#022032;border-color:var(--highlight);box-shadow:0 6px 18px rgba(0,170,255,0.12)}
.btn-outline{background:transparent;color:var(--white);border-color:rgba(255,255,255,0.12)}
.btn.small{padding:6px 10px;font-size:0.9rem}

/* quick info */
.quick-info{display:flex;gap:18px;flex-wrap:wrap;color:rgba(255,255,255,0.9);font-size:0.95rem;margin-top:6px}

/* hero image card */
.hero-image-card{width:260px;text-align:center}
.avatar{width:220px;height:210px;border-radius:50%;object-fit:cover;border:6px solid var(--highlight);box-shadow:var(--shadow);}

/* SECTION */
.section{padding:54px 0}
.section-alt{background:#f6f9ff}
.section h2{font-size:1.6rem;margin-bottom:8px;color:var(--dark)}
.muted{color:var(--muted);
  font-family:Verdana, Geneva, Tahoma, sans-serif;
  
  margin-bottom:18px}

/* ABOUT GRID */
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:20px}
.about-card{background:var(--white);padding:18px;border-radius:var(--radius);box-shadow:var(--shadow)}

/* CLASSES */
.classes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:18px}
.class-card{background:linear-gradient(180deg,#f8fbff,#ffffff);padding:18px;border-radius:10px;box-shadow:0 6px 18px rgba(2,20,40,0.06);transition:transform .22s}
.class-card:hover{transform:translateY(-6px)}

/* GALLERY */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.gallery-grid .tile {
  overflow: hidden;
  border-radius: 10px;
}

.gallery-grid img {
  width: 100%;
  height: 170px;
  object-fit: cover;
  object-position: top; /* FIX: Anchors the image to show the upper part */
  display: block;
  cursor: pointer;
  transition: transform .2s;
}

.gallery-grid img:hover {
  transform: scale(1.04);
}


/* MAP */
.map-section{padding:22px 0;background:#f8fbff}
.map-wrap{border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}

/* FOOTER */
.footer{background:linear-gradient(90deg,var(--dark),#0b2b3b);color:var(--white);padding:28px 0;margin-top:28px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;align-items:start}
.footer a{color:var(--highlight);text-decoration:none}
.social-icons{display:flex;gap:12px;flex-direction:column}
.icon{display:flex;align-items:center;gap:8px;color:var(--white);opacity:0.95}
.credits{opacity:.9;font-size:0.95rem}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,0.75);z-index:120}
.lightbox-inner{position:relative;max-width:95%;max-height:90%}
.lightbox img{max-width:100%;max-height:90vh;border-radius:8px;display:block}
.lb-close{position:absolute;right:-6px;top:-36px;font-size:22px;background:transparent;border:0;color:white;cursor:pointer}

/* toast */
.toast{position:fixed;right:18px;bottom:18px;background:rgba(2,20,40,0.95);color:white;padding:10px 14px;border-radius:8px;box-shadow:0 6px 18px rgba(2,20,40,0.24);font-weight:600;z-index:200;opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s}
.toast.show{opacity:1;transform:translateY(0)}

/* responsive */
@media (max-width:980px){
  .hero-grid{gap:18px}
  .hero-text h1{font-size:1.6rem}
  .avatar{width:180px;height:180px}
}
@media (max-width:720px){
  .nav-links{display:none}
  .menu-btn{display:inline-block}
  .hero-image-card{order:2}
  .hero-text{order:1}
  .gallery-grid img{height:150px}
}
@media (max-width:420px){
  .hero-text h1{font-size:1.3rem}
  .avatar{width:140px;height:140px}
  .quick-info{font-size:0.95rem}
}

/* Desktop tweaks for better large-screen layout */
@media (min-width:1200px){
  .hero-grid{gap:40px;align-items:center}
  .hero-text{max-width:62%;}
  .hero-image-card{width:320px}
  .avatar{width:260px;height:260px}
  .container{padding:0 28px}
}
