/* ==========================================================================
   Green Field Public School - Main Stylesheet
   ========================================================================== */

:root{
  --navy:#1b2440;
  --purple:#3b2a7c;
  --purple-dark:#2c1f5e;
  --teal:#2dd4d0;
  --gold:#f2a93b;
  --gray-bg:#f7f8fa;
  --text:#333333;
  --muted:#666666;
  --white:#ffffff;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Segoe UI', Arial, sans-serif;
  color:var(--text);
  line-height:1.6;
  background:#fff;
}
img{max-width:100%; height:auto; display:block;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0;}
.container{max-width:1200px; margin:0 auto; padding:0 20px;}

/* ---------- Top info bar ---------- */
.gfps-topbar{
  background:var(--navy);
  color:#fff;
  font-size:13px;
}
.gfps-topbar .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:8px; padding-bottom:8px; flex-wrap:wrap; gap:8px;
}
.gfps-topbar .affiliation{color:var(--teal); font-weight:600;}
.gfps-topbar .topbar-right{display:flex; gap:18px; flex-wrap:wrap;}
.gfps-topbar .topbar-right a{color:#fff; opacity:.9;}
.gfps-topbar .topbar-right a:hover{opacity:1; text-decoration:underline;}
.gfps-topbar .topbar-right span{display:inline-flex; align-items:center; gap:6px;}

/* ---------- Main nav ---------- */
.gfps-header{
  background:var(--gray-bg);
  border-bottom:1px solid #e5e7eb;
}
.gfps-header .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:14px; padding-bottom:14px; gap:20px;
}
.gfps-brand{display:flex; align-items:center; gap:14px;}
.gfps-brand img{width:60px; height:60px; border-radius:50%;}
.gfps-brand .site-title{font-size:24px; font-weight:800; color:#222; margin:0;}

.gfps-nav{display:flex; align-items:center; gap:26px; flex-wrap:wrap;}
.gfps-nav ul{display:flex; align-items:center; gap:26px; list-style:none;}
.gfps-nav li{position:relative;}
.gfps-nav a{font-weight:600; color:#444; font-size:15px;}
.gfps-nav > ul > li > a{padding:8px 0;}
.gfps-nav > ul > li:hover > a{color:var(--purple);}
.gfps-nav .sub-menu{
  display:none; position:absolute; top:100%; left:0; background:#fff;
  min-width:220px; box-shadow:0 10px 25px rgba(0,0,0,.12); border-radius:6px;
  padding:8px 0; z-index:50;
}
.gfps-nav li:hover > .sub-menu{display:block;}
.gfps-nav .sub-menu li a{display:block; padding:9px 18px; font-weight:500; font-size:14px; color:#444;}
.gfps-nav .sub-menu li a:hover{background:var(--gray-bg); color:var(--purple);}
.gfps-nav .menu-item-has-children > a:after{content:" \25BE"; font-size:11px;}

.gfps-cta{display:flex; align-items:center; gap:14px;}
.gfps-cta .admission-link{font-weight:600; font-size:13px; color:#333; text-align:center;}
.gfps-cta .btn-login{
  background:#1a73e8; color:#fff; padding:10px 18px; border-radius:6px; font-weight:600; font-size:14px;
}

.gfps-mobile-toggle{display:none; background:none; border:0; font-size:26px; cursor:pointer;}

/* ---------- Page banner ---------- */
.gfps-page-banner{
  background:var(--purple);
  color:#fff;
  text-align:center;
  padding:40px 20px;
}
.gfps-page-banner h1{margin:0; font-size:34px; font-weight:800;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block; padding:12px 26px; border-radius:6px; font-weight:700;
  background:var(--gold); color:#20140a; border:none; cursor:pointer; font-size:15px;
}
.btn:hover{opacity:.9;}
.btn-teal{background:var(--teal); color:#0a2b2a;}
.btn-purple{background:var(--purple); color:#fff;}

/* ---------- Generic content section ---------- */
.gfps-section{padding:60px 0;}
.gfps-section.bg-gray{background:var(--gray-bg);}
.section-title{font-size:28px; font-weight:800; color:var(--purple); margin-bottom:6px;}
.section-underline{width:60px; height:3px; background:var(--teal); margin:10px 0 24px;}

.two-col{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center;}
.two-col.reverse{direction:rtl;}
.two-col.reverse > *{direction:ltr;}

.circle-photo{
  /*border-radius:45% 55% 55% 45% / 55% 45% 55% 45%;*/
  overflow:hidden;
  aspect-ratio:1/1;
  object-fit:cover;
}

.values-list h3{color:var(--purple); margin-bottom:4px;}
.values-list p{color:var(--muted); margin-top:0;}

.info-strip{
  display:flex; justify-content:space-around; flex-wrap:wrap; gap:24px;
  padding:30px 0; border-top:1px solid #eee; margin-top:20px;
}
.info-strip .item{display:flex; align-items:center; gap:12px;}
.info-strip .item strong{display:block; color:var(--purple); font-size:16px;}
.info-strip .item span{color:var(--muted); font-size:14px;}
.info-strip .icon{font-size:22px;}

/* Facility / inner content pages */
.facility-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:flex-start;}
.facility-grid img{border-radius:10px; margin-bottom:16px;}
.facility-grid ul{padding-left:20px;}
.facility-grid li{margin-bottom:12px; color:var(--text);}

/* ---------- Gallery ---------- */
.gallery-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px;
}
.gallery-grid figure{margin:0; overflow:hidden; border-radius:10px; background:#eee; position:relative;}
.gallery-grid img{width:100%; height:230px; object-fit:cover; transition:transform .3s;}
.gallery-grid figure:hover img{transform:scale(1.06);}
.gallery-grid figcaption{
  position:absolute; left:0; right:0; bottom:0; background:linear-gradient(transparent,rgba(0,0,0,.65));
  color:#fff; padding:20px 12px 10px; font-size:14px; font-weight:600;
}

/* ---------- Team / Faculty ---------- */
.team-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:24px;
}
.team-card{background:var(--gray-bg); text-align:center; padding:0 0 16px; border-radius:6px; overflow:hidden;}
.team-card img{width:100%; height:280px; object-fit:cover; margin-bottom:14px;}
.team-card h4{margin:0 0 4px; font-size:16px; color:#222;}
.team-card span{color:var(--muted); font-size:13px;}

/* ---------- Contact form ---------- */
.contact-wrap{display:grid; grid-template-columns:1fr 1fr; gap:50px;}
.gfps-form input, .gfps-form textarea{
  width:100%; padding:12px 14px; margin-bottom:16px; border:1px solid #ddd; border-radius:6px; font-size:15px; font-family:inherit;
}
.gfps-form textarea{min-height:130px;}
.form-msg{padding:12px 16px; border-radius:6px; margin-bottom:20px; font-weight:600;}
.form-msg.success{background:#e5f8ee; color:#0d7a3f;}
.form-msg.error{background:#fdeaea; color:#b3261e;}
.map-embed iframe{width:100%; height:100%; min-height:340px; border:0; border-radius:8px;}

/* ---------- Footer ---------- */
.gfps-footer{background:var(--purple-dark); color:#e9e6f5; padding-top:50px;}
.gfps-footer .footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; padding-bottom:36px;
}
.gfps-footer h4{color:#fff; font-size:17px; margin-bottom:10px;}
.gfps-footer .footer-underline{width:40px; height:3px; background:var(--teal); margin-bottom:16px;}
.gfps-footer .about-col img{width:70px; margin-bottom:14px;}
.gfps-footer .about-col p{color:#cfc9e6; font-size:14px;}
.gfps-footer .social-links{display:flex; gap:10px; margin-top:14px;}
.gfps-footer .social-links a{
  width:36px; height:36px; border-radius:50%; background:#4a3a90; display:flex; align-items:center; justify-content:center; color:#fff;
}
.gfps-footer .links-col ul{list-style:none;}
.gfps-footer .links-col li{margin-bottom:10px;}
.gfps-footer .links-col a{color:#cfc9e6; font-size:14px;}
.gfps-footer .links-col a:hover{color:#fff; text-decoration:underline;}
.gfps-footer .subscribe-form{display:flex; margin-top:8px;}
.gfps-footer .subscribe-form input{flex:1; padding:12px; border:0; border-radius:4px 0 0 4px; font-size:14px;}
.gfps-footer .subscribe-form button{background:var(--teal); border:0; padding:0 18px; border-radius:0 4px 4px 0; cursor:pointer; font-weight:700;}
.gfps-bottom-bar{
  background:var(--navy); text-align:center; padding:16px 0; font-size:13px; color:#cfc9e6;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
}
.gfps-bottom-bar .container{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.gfps-bottom-bar a{color:#fff;}
.whatsapp-float{
  position:fixed; bottom:24px; right:24px; background:#25d366; width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:26px; box-shadow:0 4px 14px rgba(0,0,0,.25); z-index:99;
}

/* ---------- Responsive ---------- */
@media(max-width:960px){
  .two-col, .facility-grid, .contact-wrap{grid-template-columns:1fr;}
  .gfps-footer .footer-grid{grid-template-columns:1fr;}
}
@media(max-width:820px){
  .gfps-mobile-toggle{display:block;}
  .gfps-nav{
    display:none; position:absolute; top:100%; left:0; right:0; background:#fff;
    flex-direction:column; align-items:flex-start; padding:10px 20px 20px; box-shadow:0 10px 20px rgba(0,0,0,.1);
  }
  .gfps-nav.open{display:flex;}
  .gfps-nav ul{flex-direction:column; align-items:flex-start; width:100%; gap:0;}
  .gfps-nav .sub-menu{position:static; box-shadow:none; display:none; padding-left:14px;}
  .gfps-nav li.open > .sub-menu{display:block;}
  .gfps-nav li{width:100%; border-bottom:1px solid #f0f0f0;}
  .gfps-nav > ul > li > a{display:block; padding:12px 0;}
  .gfps-header .container{flex-wrap:wrap; position:relative;}
  .gfps-cta{margin-left:auto;}
}
