:root{
  --brand-red: #f25a20;
  --nav-border: rgba(0,0,0,0.08);
}

body {
  font-family: 'Montserrat', sans-serif;
  font-display: swap;
}
h1{
   color: #54595F;
}

/*body, header, section, footer {*/
/*  overflow-x: hidden;*/
/*}*/

.page-wrapper {
  /* This rule now safely prevents the horizontal overflow
     without creating a stacking context on the body tag. */
  overflow-x: hidden;
  width: 100%;
  position: relative; /* This is important for containing elements */
}

/* headline email, phone, loc  */
.headline {
  background-color: #264A6F;
  height: 7vh;
}
.headline a:hover,
.headline h6:hover {
  color: #D5D4D7;
  cursor: pointer;
  transition: color 0.3s ease;
}

.headline a i:hover,
.headline h6 i:hover {
  transform: scale(1.2);
  transition: transform 0.3s ease, color 0.3s ease;
  color: #D5D4D7;
}

/* ---------- SCHOOL LOGO ---------- */
/* Default logo */
.slogo, .navbar-brand img, .navbar img[alt="schoollogo"] {
  object-fit: contain !important;
  height: auto !important;
  max-height: 15vh !important;
  width: auto !important;
  transition: max-height 0.3s ease;
}

/* Logo responsive breakpoints */
@media (max-width: 991px) {
  .slogo, .navbar-brand img {
    max-height: 70px !important;
  }
}
@media (max-width: 575px) {
  .slogo, .navbar-brand img {
    max-height: 50px !important;
  }
}

/* ---------- HEADER / NAVBAR ---------- */
/* ================================================= */
/*  FINAL - Unified & Clean Navigation Bar
/* ================================================= */

/* --- General Header & Navbar Structure --- */
.site-header {
  position: relative;
  z-index: 1030;
  background-color: white;
}
.navbar {
  padding: 0.5rem 0;
}
.navbar .container {
  position: relative;
}

/* --- Mobile Logo --- */
.nav-logo {
  height: 60px;
  width: auto;
  object-fit: contain;
}

/* --- General Nav Link Styling --- */
.nav-link.navh {
  color: black;
  font-weight: 700;
  padding: 8px 12px;
  border-radius: 6px;
  transition: background-color 0.2s ease, color 0.2s ease;
  white-space: nowrap; /* Prevents text wrapping */
}

/* --- Highlight Rules (Controlled by JS via the '.open' class) --- */
/* This highlights the parent link when the menu is open */
.nav-item.open > .nav-link {
  background-color: #f25a20;
  color: black;
}
/* This highlights non-dropdown links on simple hover */
.nav-item:not(.dropdown):hover > .nav-link {
  background-color: #f25a20;
  color: black;
}

/* --- Dropdown Menu Styling --- */
.dropdown-menu {
  margin-top: 0;
  min-width: 240px;
  border: 1px solid pink;
  background-color: #fff8f9;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 4px;
  z-index: 1010;
}
.dropdown-item {
  padding: 10px 16px;
  border-radius: 6px;
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent; /* Removes blue flash on touch */
}
.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.touch-active {
  background-color: #f25a20;
  color: white;
  outline: none;
}


/*@media (min-width: 992px) {*/
/*  .dropdown:hover > .dropdown-menu {*/
/*    display: block;*/
/*  }*/
/*  .dropdown:hover > .nav-link {*/
/*    background-color: #ed1d26;*/
/*    color: black;*/
/*  }*/
/*}*/


@media (min-width: 992px) {
  /* base: keep menu in document flow but hidden */
  .dropdown .dropdown-menu {
    display: block;             /* necessary so transitions work */
    background-color: #fff8f9;
    border: 1px solid pink;
    color: #212529;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms;
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    z-index: 2000;
    min-width: 240px;
  }

  /* When .show is present (Bootstrap uses this), make it visible */
  .nav-item.dropdown.show > .dropdown-menu,
  .dropdown.show > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  /* Make hover visual only (not display control) — still add red bg */
  .nav-item.dropdown > .nav-link:hover {
    background-color: var(--brand-red);
    color: #fff;
  }

  /* Preserve the parent .nav-link color when its dropdown is open */
  .nav-item.dropdown.show > .nav-link {
    background-color: var(--brand-red);
    color: #fff;
  }

  /* ensure items are visible and readable */
  .dropdown-menu .dropdown-item {
    color: #212529;
  }
}


/* ================================================= */
/*  RESPONSIVE STYLES
/* ================================================= */

/* --- All Mobile/Tablet Views (below 992px) --- */
@media (max-width: 991.98px) {

  /*
    Step 1: This is the MAIN FIX. It forces the top row (logo and burger)
    to stay locked to the top and aligns them correctly.
  */
  .navbar .container {
    display: flex;
    justify-content: space-between; /* Pushes logo left and burger right */
    align-items: center; /* Vertically centers them on the same line */
    width: 100% !important;
    max-width: none !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /*
    Step 2: This ensures the burger button stays in the normal layout flow
    so it can be positioned by the flex container. It will NOT move when clicked.
  */
  .navbar-toggler {
    position: static;
    transform: none;
    border: 1px solid #ccc;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
  }
  
  .navbar-toggler i {
  font-size: 1.4rem;
  transition: opacity 0.25s ease-in-out, transform 0.25s ease-in-out;
}

#bars_icon,
#times_icon {
  color: black;
  opacity: 1;
}

#times_icon {
  transform: rotate(180deg);
}

  


  /*
    Step 3: This ensures the opened menu appears full-width on a new line,
    below the logo/burger row, and that its content is aligned left.
  */
  .navbar-collapse {
    width: 100%;
    margin-top: 1rem;
  }
  .navbar-nav {
    align-items: flex-start;
    gap: 0px;
  }
  
  /* NAV: mobile separators on the link itself — prevents white gap on hover */
.navbar-collapse .nav-item {
  width: 100%;
  margin: 0;            /* ensure no collapsing gap */
  padding: 0;           /* nav-link handles padding */
  list-style: none;
  border: none;
}

/* Put separator on the link so hover-bg touches the line */
.navbar-collapse .nav-link {
  display: flex;
  width: 100%;
  padding: 1rem 1rem;
  margin: 0;
  border: 0;                /* remove any existing border */
  border-bottom: 1px solid rgba(242, 90, 32, 0.7);
  border-radius: 0;         /* avoid rounded corners that create white gaps */
  box-sizing: border-box;
  justify-content: space-between;
  align-items: center;
  background-clip: border-box;
  /*min-height: 3.5rem;*/
}


/* Remove bottom border for last link so it doesn't create an extra line */
.navbar-collapse .nav-item:last-child .nav-link {
  border-bottom: none;
}

/* When dropdown is open, keep same separator behavior (optional tweak) */
.navbar-collapse .nav-item.dropdown.show > .nav-link {
  background-color: var(--brand-red);
  color: #fff;
  /* keep the line under it so spacing stays consistent */
  border-bottom: 1px solid rgba(242, 90, 32, 0.7);
}

/* In case you had any top-border rules hanging around, neutralize them */
.navbar-collapse .nav-item,
.navbar-collapse .nav-item * {
  border-top: none !important;
}

  
  
  .navbar-collapse .dropdown-menu {
    /*padding: 0.9px; */
    position: static;
    display: block !important;
    padding: 0px;
    margin: 0px; 
    border: 1px solid pink;
    background-color: #fff8f9;
    /*border: none;*/
    border-radius: 0;
    box-shadow: none;
    width: 100%;
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    transition: 
      max-height 0.5s ease-in-out,
      opacity 0.35s ease-in-out 0.1s,
      visibility 0s 0.5s,
      padding 0.4s ease;
    box-shadow: none;
  }
  
  
  .navbar-collapse .nav-item.dropdown.show > .dropdown-menu {
  max-height: 800px;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: 
      max-height 0.5s ease-in-out,
      opacity 0.25s ease-in-out,
      visibility 0s,
      padding 0.3s ease;
}

/* hover visual on the link itself (mobile) — won't open submenu, only visual feedback */
.navbar-collapse .nav-link:hover {
  background-color: rgba(0,0,0,0.03);
}
  
  
   /* A class for our JS to add/remove to force-close the menu */
  .navbar-collapse .dropdown-menu.force-close {
    max-height: 0 !important;
    opacity: 0 !important;
  }
  
  .navbar-collapse .dropdown-item {
    padding: 1rem;
    color: #212529; /* Standard black text */
  }


.navbar-collapse .dropdown-menu li:last-child .dropdown-item {
  border-bottom: none;
}

  
  /*.navbar-collapse .nav-item:last-child{*/
  /*    border-bottom: none;*/
  /*}*/
}

/* =========================
   NAVBAR INTERACTION LOGIC
   ========================= */

/* --- Desktop hover behaviour (>=992px) --- */
/* Desktop: open on hover (>=992px) */
@media (min-width: 992px) {
  /* keep the menu in the flow but hidden so transitions work */
  .nav-item.dropdown .dropdown-menu {
    display: block; /* necessary for transitions */
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    /*transition: opacity .18s ease, transform .18s ease, visibility .18s;*/
    pointer-events: none;
    max-height: 0;
    overflow: hidden;
    
    /* Smooth transition */
    transition: 
      opacity 0.3s ease-in-out,
      transform 0.3s ease-in-out,
      visibility 0s 0.3s,
      max-height 0.4s ease-in-out;
  }

  /* show when Bootstrap adds .show or on hover (visual only) */
  .nav-item.dropdown.show > .dropdown-menu,
  .nav-item.dropdown:hover > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
     max-height: 800px; /* Large enough for all items */
    
    /* Faster when opening */
    transition: 
      opacity 0.25s ease-in-out,
      transform 0.25s ease-in-out,
      visibility 0s,
      max-height 0.35s ease-in-out;
  }
  
  .dropdown-menu .dropdown-item {
    opacity: 0;
    transform: translateX(-5px);
    transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
  }

  /* When dropdown is visible, items appear */
  .nav-item.dropdown.show .dropdown-item,
  .nav-item.dropdown:hover .dropdown-item {
    opacity: 1;
    transform: translateX(0);
  }

  /* hover visual feedback for parent link */
  .nav-item.dropdown > .nav-link:hover,
  .nav-item.dropdown.show > .nav-link {
    background-color: var(--brand-red);
    color: #fff;
  }
}

/* Mobile/tablet: do NOT open on hover (<992px). Show only when .show toggled via JS */
@media (max-width: 991.98px) {
  .navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .navbar-collapse {
    width: 100%;
    margin-top: 1rem;
  }

  .navbar-collapse .dropdown-menu {
    position: static;
    display: block !important;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: max-height .36s ease, opacity .25s ease, visibility .25s;
     background: #fff8f9;
     border: 1px solid pink;
    box-shadow: none;
    border-radius: 0;
    background: #fff;
    pointer-events: none;
  }

  /* when JS (or bootstrap) adds .show to the parent <li> */
  .navbar-collapse .nav-item.dropdown.show > .dropdown-menu {
    max-height: 900px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* Visual mobile parent active state */
  .navbar-collapse .nav-item.dropdown.show > .nav-link {
    background-color: var(--brand-red);
    color: #fff;
  }

  /* Neutralize hover rules on mobile so hovering doesn't open submenu */
  .navbar-collapse .dropdown:hover > .nav-link,
  .navbar-collapse .dropdown:hover > .dropdown-menu {
    background: none;
  }
}



/*
  This rule for medium-large screens can stay separate as it does not conflict.
*/
@media (min-width: 992px) and (max-width: 1199.98px) {
  .navbar-nav {
    gap: 0.5rem !important;
  }
}




/*text*/
.ftext {
  color: #E70C0C;
  text-align: center;
  padding: 0 1.5rem;  /* Prevents text touching edges */
  margin: 1rem auto;  /* Centers and adds spacing */
}

/* Extra padding on very small screens */
@media (max-width: 575.98px) {
  .ftext {
    padding: 0 2rem;  /* More padding on mobile */
    font-size: 0.95rem;  /* Slightly smaller text if needed */
  }
}

/*vedio*/
.v {
   /* border-top-left-radius: 20px;
   border-top-right-radius: 20px;
   border-bottom-left-radius:20px ;
   border-bottom-right-radius:20px ; */
   border-radius:2%;
}

/* scholtext */
.scholtext {
    /*background-color: #CBD3DC;*/
    /*height: 70vh;*/
    /*font-family: 'Montserrat', sans-serif;*/
}
.scholtext h1{
    color: #54595F;
}
.scholtext .HI{
    color: red;
}
.slocation{
    color: #54595F
}
#b {
    color: white;
    height: 45px;
    width: 120px;
    border-top-left-radius: 50px;
    border-bottom-left-radius: 50px;
    background-color: #203F5F;
}
#b:hover {
  background-color: #800404;
  color: white;
  transition: background-color 0.6s ease, color 0.6s ease;
}
#bt {
    height: 45px;
    width: 120px;
    border-top-right-radius: 50px;
    border-bottom-right-radius: 50px;
    background-color: #800404;
    color: white;
}
#bt:hover {
  background-color: #203F5F;
  color: white;
  transition: background-color 0.6s ease, color 0.6s ease;
}
a {
  text-decoration: none;
  color: inherit; 
}

/*harmonyFacilities*/
/*.HarmonyFacilities{*/
/*    font-family: 'Montserrat', sans-serif;*/
/*}*/


/* Harmony Facilities heading - Always centered with padding */
.HarmonyFacilities {
  text-align: center;
  padding: 0 1rem;  /* Prevents text touching edges */
}

/* Extra padding on very small screens */
@media (max-width: 575.98px) {
  .HarmonyFacilities {
    padding: 0 1.5rem;  /* More padding on mobile */
  }
}

/*8box*/

.card-img-top {
  height: 200px;
  object-fit: cover;
}

.card-title {
  color: #54595F;
}

/* Responsive Image Fixes */
/* Responsive Image Fixes */
.carousel-item img {
  object-fit: contain !important;
  width: 100% !important;
  height: auto !important; /* Enables proportional shrinking without fixed height or white space */
  min-height: 300px; /* Minimum visibility; adjust if needed for your images */
}

@media (max-width: 991px) and (min-width: 576px) { /* 576–991px range */
  .carousel-item img.d-none.d-sm-block {
    min-height: 250px; /* Scaled minimum for tablets to reduce potential gaps */
  }
}

@media (max-width: 575px) {
  .carousel-item img.d-block.d-sm-none {
    min-height: 150px;
  }
}

.slogo,
.navbar img[alt="schoollogo"] {
  object-fit: contain !important;
  height: auto !important;
  max-height: 15vh !important;
  width: auto !important;
}

@media (max-width: 991px) {
  .navbar img[alt="schoollogo"] {
    max-height: 70px !important;
  }
}

/*meet our management*/
  .mcard {
    min-height: 450px;
  }

  @media (min-width: 768px) {
    .mcard {
      /*height: 65vh;*/
    }
  }
  .no-wrap-heading {
    white-space: nowrap;
  }

.manage {
    /*background-color: #F5F5F5;*/
}

.mcard {
    border-top-left-radius: 200px;
    border-top-right-radius: 200px;
    border-bottom-right-radius: 200px;
    border-bottom-left-radius: 200px;
}


/* 3box parent  */
.card-body-p {
  min-height: 55vh;
}
@media (min-width: 768px) {
  .card-body-p {
    /*min-height: 70vh;*/
  }
}
.pmain {
    background-color: #F0F4FA;
    /*font-family: 'Montserrat', sans-serif;*/
    color: #ebe8e8 ;
}
.card-p {
    border: none;
    border-bottom: 4px solid #6f42c1;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease;
    background-color: white ;
}
.card-text-p{
    color: #555;
    text-align: center;
    line-height: 1.7;
}
.card-body-p {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

/* Admission */
.banner {
      background: linear-gradient(to right, #1e3c72, #d31e44, #ff3f3f);
      color: white;
      padding: 6px;
    }

    .banner-text {
      font-weight: 700;
    }
.btn-custom {
    background-color: white;
    color: black;
    padding: 10px;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
}

/* footer */
.foter {
    background-color: #264A6F;
    /*font-family: 'Montserrat', sans-serif;*/
}

.f a {
    text-decoration: none;
    color: white;
    line-height: 30px;
}
.f a:hover,
.f h6:hover {
  color: #D5D4D7;
  cursor: pointer;
  transition: color 0.3s ease;
}

/*contact*/
.contact {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: linear-gradient(#C01014);
  color: white;
  height: 27vh;
  padding: 5px;
  text-decoration: none;
  font-weight: bold;
  border-radius: 10px 0 0 10px;
  writing-mode: sideways-lr;
  text-align: center;
  z-index: 1000;
}

/*Get in touch*/
.fab-wrapper {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 999;
  display: flex;
  align-items: center;
  flex-direction: column;
}

.fab-label {
  background: white;
  color: black;
  padding: 6px 12px;
  border-radius: 20px;
  font-weight: 600;
  margin-right: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  transition: opacity 0.3s ease;
}

.fab-main-container {
  display: flex;
  align-items: center;
}

.fab-main {
  width: 50px;
  height: 50px;
  background-color: #f44336;
  border-radius: 50%;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  cursor: pointer;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transition: background 0.3s;
}

.fab-options {
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.fab-btn {
  position: relative;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  color: white;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  cursor: pointer;
}

.fab-btn.phone {
  background-color: #4CAF50;
}

.fab-btn.whatsapp {
  background-color: #25D366;
}

.fab-btn.close {
  background-color: #f44336;
}

/* Tooltip style */
.fab-btn .tooltip-text {
  position: absolute;
  right: 60px;
  background-color: white;
  color: black;
  padding: 4px 10px;
  border-radius: 16px;
  font-size: 14px;
  white-space: nowrap;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.fab-btn .tooltip-text::after {
  content: '';
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: white;
}

.fab-btn:hover .tooltip-text {
  opacity: 1;
}


/* --- Hover color effect for all devices (visual only) --- */
.nav-item.dropdown > .nav-link:hover {
  background-color: var(--brand-red);
  color: #fff;
}

.dropdown-menu .dropdown-item:hover {
  background-color: var(--brand-red);
  color: #fff;
}



#videoModal .modal-content {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}



/*
  This positions and styles the close button to be
  perfectly in the top-right corner.
*/
#videoModal .btn-close {
  /* Positioning */
  position: absolute;
  top: -15px;      /* Move it UP, just outside the video */
  right: -15px;     /* Move it RIGHT, just outside the video */
  z-index: 999;    /* Keeps it on top of everything */

  /* Styling for high visibility */
  background-color: white;
  border-radius: 50%;
  padding: 0.5rem;
  opacity: 1;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
}

.navbar .dropdown-menu {
  background-color: #fff8f9 !important;
  border: 1px solid pink !important;
}

/* Optional: keep dropdown text readable */
.navbar .dropdown-menu .dropdown-item {
  color: #212529;
}

.navbar .dropdown-menu .dropdown-item:hover {
  background-color: var(--brand-red);
  color: #fff;
}



/*  Remove dark background/focus box when clicked */
.navbar-toggler:focus,
.navbar-toggler:active,
.navbar-toggler[aria-expanded="true"] {
  outline: none !important;
  box-shadow: none !important;
  background-color: transparent !important; /* no dark square */
  border-color: transparent !important;
}

/*  Consistent icon sizing and alignment */
.navbar-toggler i {
  font-size: 1.5rem;
  width: 1.5rem;
  text-align: center;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* 3 Subtle click feedback */
.navbar-toggler:active i {
  transform: scale(0.92);
}


/*  Same look when open (so no persistent dark box) */
.navbar-toggler[aria-expanded="true"]:hover {
  background-color: rgba(242, 90, 32, 0.15);
  border-color: rgba(242, 90, 32, 0.5);
}
.page-wrapper {
  overflow: visible !important;
}